徐 峰, 李党伟, 邓心欢, 冯英萍, 刘忠玲
(吉林大学 通信工程学院, 长春 130012)
体感游戏突破了以往单纯以手柄按键输入的操作方式, 是一种通过肢体动作变化进行操作的新型电子游戏。国外代表平台有Wii、 Iphone、 PlayStation Move和Xbox360, 国内代表平台有爱动推出的爱动体感运动机(17Vee)和康佳8000D系列云智能电视平台等[1]。上述平台主要通过xyz三维动作识别器, 采用光学式双目立体识别、 跟踪技术, 对人体真实运动进行识别, 将用户的运动行为实时反应在电子显示屏幕上。最新的文献研究表明, 体感游戏对提高老年人的生活健康品质和改善部分人群的躯体功能性障碍有很大帮助, 具有广阔的市场开发前景[2-5]。与前面提到的平台相比, 笔者所提出体感游戏, 结构简单, 成本低廉, 且具有很强的趣味性, 更容易被大众所接受。
显示屏上端有24个砖块, 共有4行, 每行6块, 各行有不同的颜色(见图1)。在显示屏的底端, 有个长约两个砖块的木板, 用户的手可以在CMOS(Complementory Metal Oxide Semiconductor)摄像头下控制该木板移动, 如玩家的手左移, 显示屏上的木板就向左移动。显示屏上还有一个红球, 红球碰到显示屏两边、 上方或木板时, 会发生弹性碰撞, 碰撞则产生反弹。当红球碰到各个砖块时, 方块渐渐褪色(当碰撞次数达到7次时, 方块完全褪色, 不再阻挡红球的运动, 即不与红球发生碰撞, 消失掉)。玩家的手上移时, 红球的运动会加速, 反之, 玩家的手向下移时, 红球运动减速。如果红球碰到屏幕下端, 游戏结束。
图1 游戏砖块示意图
CMOS传感器采用OV9650, 用于摄取手部移动图像。FPGA (Field Programmable Gate Array)读入数据后, 肤色检测模块通过肤色匹配识别手部的中心位置, 再将该位置坐标送到控制部分。由VGA控制模块控制滑块位置, 进而控制小球位置变化, 与砖块碰撞后引起其颜色变化。小球与砖块碰撞的同时, 通过声音编码控制声音输出[6-8]。系统结构如图2所示。
图2 系统结构图
图3 FPGA设计结构图
FPGA模块采用Altera公司的EP1C6Q240C8芯片, 游戏的核心控制流程如图3所示。FPGA主要包括控制模块、 肤色检测模块、 小球控制模块、 RGB模块、 声音模块、 VGA模块、 砖块匹配与颜色选择模块。控制模块用于完成整个游戏的控制, 接收肤色中心位置, 接收小球的中心位置, 控制小球的运动模式(左上, 右上, 左下, 右下), 输出实时的声音控制信息(是否发声)。肤色识别模块用于识别肤色并输出手的中心位置。小球位置模块用于完成小球位置生成功能, 并将球中心位置送至RGB进行显示器颜色合成。RGB模块用于接收肤色中心坐标、 小球中心坐标和颜色模块发送的颜色信息, 进而将实时行扫描的颜色信息送至VGA模块。声音模块用于完成声音编码和波形输出, 进而完成相应的声音合成。砖块匹配和颜色选择模块用于接收显示器扫描的坐标, 进而用于选择砖块颜色, 并将颜色信息送到RGB模块, 供RGB模块选择颜色。VGA控制模块用于显示器扫描控制。
小球有6种运动状态, 运动状态机如图4所示。状态0是开机复位状态, 停留在木板中心不动; 状态1是向左上方运动; 状态2是向右上方运动; 状态3是向右下方运动; 状态4是向左下方运动;状态5是游戏结束。
图4 小球运动状态机
MCU采用STC89C52, 通过I2C总线协议完成对CMOS传感器的配置, 使其工作在VGA模式, RAWRGB格式输出。COMS传感器输出行同步、 场同步、 像素时钟和数据信号。FPGA通过这些信号获取图像, 并通过RAW2RGB模块将Bayer矩阵数据转换成图像, 经肤色检测算法判断手的中心坐标, 进而控制游戏的运行[9-11]。肤色检测流程如图5所示。
图5 肤色检测流程图
样本选取4个人的右手(样本是上午11点拍摄的图像), 如图6所示, 肤色判断基本可覆盖中国人的肤色范围。
图6 样本肤色图
将每个图像的数值代入下式
(1)
(2)
进行均值和方差计算。得到R、G、B的均值分别为93、54、35, 标准差为29、26、24, 在识别过程中, 阈值选取范围采用如下公式
(3)
(4)
(5)
图7 Matlab仿真肤色图
计算。
根据计算得到的RGB均值画出Matlab图像[12-15], 如图7所示。
测试环境: 12月13日上午, 学院第1教学楼422房间(朝南、 室内光线柔和), 摄像头的背景为白色顶棚, 测试人选择非样本人群。实际运行结果: 使用Matlab仿真得到的阈值进行肤色判决, 进而进行游戏控制, 运行结果不稳定, 滑板会左右跳动。经过实际反复测试, 发现R的均值偏高, 当把R均值降至62时, 游戏操作流畅, 无Bug产生, 达到设计要求, 游戏场景如图8所示。
a 小球向右下方运动 b 小球反弹向右上方运动 c 小球反弹向右下方运动
笔者在FPGA开发板上设计了一款新的体感游戏。OV9650摄像头采用51单片机配置后, 获取的人体手部图像数据传送到FPGA模块。通过对肤色样本的Matlab仿真分析, 确定肤色的范围, 进而实现人手识别。移动空中的手可以控制滑板进行游戏操作。实验研究表明, 在一定的环境条件下, 游戏运行顺畅。同时, 肤色识别过程易受到环境因素影响, 例如光线强度、 摄像头背景颜色等。
参考文献:
[1]ZHANG Zheng-you. Microsoft Kinect Sensor and Its Effect [J]. Multimedia, IEEE, 2012, 19(2): 4-10.
[2]CHEN Shang-ti, HUANG Y, CHIANG I. Using Somatosensory Video Games to Promote Quality of Life for the Elderly with Disabilities [C]∥Digital Game and Intelligent Toy Enhanced Learning (DIGITEL), 2012 IEEE Fourth International Conference. Takamatsu: IEEE, 2012: 258-262.
[3]HU Hai, CUI Yi, HUANG Ben-xiong. Game System of Treadmill Based on Video Capture [C]∥Green Computing and Communications (GreenCom), 2010 IEEE/ACM Int’l Conference on & Int’l Conference on Cyber, Physical and Social Computing (CPSCom). Hangzhou, China: IEEE, 2010: 836-839.
[4]GAO Zhen-xing. Study and Implementation on Somatosensory Interaction in 3D Virtual Environments [C]∥Electrical & Electronics Engineering (EEESYM), 2012 IEEE Symposium. Kuala Lumpur: IEEE, 2012: 281-284.
[5]CHEN Ching-yi. Accelerometer-Based Hand Gesture Recognition Using Fuzzy Learning Vector Quantization [J]. Advanced Science Letters, 2012, 9(1): 38-44.
[6]ZHAO Zhen-hua, YANG Wei-fa, WANG Na, et al. A Hardware Design of Defect Detection System in Cloth Belt Based on Machine Vision [C]∥Electrical and Control Engineering (ICECE), 2010 International Conference. Wuhan, China: IEEE, 2010: 62-65.
[7]KUANG Shun-ming, HE Xiao-jian. Design and Application of CMOS Device Driver Based on S3C2440 [C]∥Electronic Measurement & Instruments (ICEMI), 2011 10th International Conference. Chengdu, China: IEEE, 2011: 110-114.
[8]LU Yin-li, YU Hong-li, ZHANG Peng-peng. The Implementation of Embedded Image Acquisition Based on V4L2 [C]∥Electronics, Communications and Control (ICECC), 2011 International Conference. Ningbo, China: IEEE, 2011: 549-552.
[9]FANG Xiao-ying, GU Wen-quan, HUANG Chang. A Method of Skin Color Identification Based on Color Classification [C]∥Computer Science and Network Technology (ICCSNT), 2011 International Conference. Harbin, China: IEEE, 2011: 2355-2358.
[10]YIN Li-jun, JIA Jing-rong, MORRISSEY J. Towards Race-Related Face Identification: Research on Skin Color Transfer [C]∥Automatic Face and Gesture Recognition, 2004. Proceedings Sixth IEEE International Conference. Wuhan, China: IEEE, 2004: 362-368.
[11]CHANDRASHEKAR C, SIVARAMAKRISHNA S, LEE G. Facial Information Retrieval Using Component-Based Classification and Scale Invariance [C]∥World Automation Congress (WAC). Kobe: IEEE, 2010: 1-6.
[12]LIU Le-yuan, SANG Nong, YANG Sai-yong, et al. Real-Time Skin Color Detection under Rapidly Changing Illumination Conditions [J]. Consumer Electronics, IEEE Transactions on, 2011, 57(3): 1295-1302.
[13]WANG Xin-yu, XU Huo-sheng, WANG Heng, et al. Robust Real-Time Face Detection with Skin Color Detection and the Modified Census Transform [C]∥Information and Automation, ICIA 2008, International Conference. Changsha, China: IEEE, 2008: 590-595.
[14]PAI Yu-ting, LEE LI-TE, RUAN Shang-jiang, et al. Honeycomb Model Based Skin Color Detector for Face Detection [C]∥Mechatronics and Machine Vision in Practice, 2008. 15th International Conference. Auckland: IEEE, 2008: 11-16.
[15]YANG Guo-liang, LI Huan, ZHANG Li, et al. Research on a Skin Color Detection Algorithm Based on Self-Adaptive Skin Color Model [C]∥Communications and Intelligence Information Security (ICCIIS), 2010 International Conference. Nanning, China: IEEE, 2010: 266-270.