0 引言
数字图像处理技术是将获得的低质量图像利用计算机处理成更适合人眼观察或仪器检测的图像的技术。嵌入式视觉技术是使用摄像机和计算机代替人眼对目标进行识别,跟踪和测量的技术。因此。数字图像处理技术和嵌入式视觉技术被广泛地应用在基于图像的识别控制系统中。
当前人机交互的主要信息输入方式有键盘输入、鼠标输入、触摸屏输入,语音输入、视觉输入。对于鼠标、键盘和触屏输入方式,信息输入者需要接触输入设备,而语音输入和视觉输入不需要接触输入设备。语音输入对特定语音识别率较高,非特定语音输入识别率低,因此语音输入普适性差;基于视觉的输入通过摄像头捕捉手部运动,将手语转换成对应的命令,实现手势输入,这就可以让人摆脱人机交互时接触的限制。本文介绍了一种基于ARM的操作图片的手势动态识别系统,利用数字图像处理技术和嵌入式视觉技术,通过摄像头捕捉手势动态来操作显示屏上的图片,实现以非接触的方式对图片进行放大、缩小、切换等操作。
1 系统硬件架构
如图1所示,手势动态识别的硬件系统主要由ARM S3C6410处理器、USB摄像头、USB控制器、LCD控制器、存储器控制器等组成。系统由摄像头获取手势动态的图片,经过S3C6410处理判断操作者意图,对显示屏的图片进行操作。
S3C6410处理器的部分硬件特性如下:采用ARM1176JZF-S核,包含16 KB的指令数据CACHE和16KB的指令数据TCM,主频最高可达667MHz;
支持TFT 24 b LCD屏,分辨率能支持到1 024×1 024;独立的USB Host控制器,支持USB Host 1.1;支持(Mobile)SDRAM和(Mobile)DDR SDRAM;具有图像处理模块;支持JPEG编解码功能,最大尺寸为4 096×4 096;支持对YUV420/422和RGB565/888的数据进行硬件翻转。
2 系统软件设计
系统软件架构主要由Linux操作系统,OpenCV,QT/E构成。Linux操作系统负责整个系统资源的分配和管理;OpenCV及QT/E完成图像采集、图像处理、动作识别、图像显示等功能。软件架构如图2所示。
2.1 实现原理
本系统以帧差法为基础,通过记录两帧中人手的坐标信息或者面积信息,判断人手的运动轨迹来操作显示屏上的图片。
以显示屏的左上角为坐标原点建立平面直角坐标系如图3所示。当人手进入摄像头捕捉区域后,摄像头对人手进行2次拍照,S3C6410对获取图像进行预处理,并获取人手图片的数据信息,将次时刻的图片数据与前一时刻的图片数据进行相应的运算处理,即可判断人手的运动方向,确定操作者的意图,从而操作显示屏上的图片。
】
本系统设置两种图片操作模式:切换和缩放。当处于切换模式时,根据图片中人手在前后两帧图片的中位置坐标A0和A1,确定人手的左右运动方向,实现图片的左或右切换,如图4所示。当处于缩放模式时,根据图片中人手在前后两帧图片的中的面积S0和S1,确定人手的前后运动方向,实现图片的放大或缩小,如图5,图6所示。
2.2 软件流程图
操作图片的手势动态识别系统程序设计基于嵌入式C语言,采用模块化结构,由主程序、图像采集子程序、图像预处理子程序、图像识别子程序、图片操作子程序等组成的。主程序流程图如图7所示。
3 测试结果
主要测试设备包括USB摄像头、S3C6410平台、320×240 TFT屏,测试结果如图8,图9所示。测试结果表明:在摄像头视野内,若人手从左向右划过,则TFT显示屏上的图片从左向右滑动切换至前一张图片;若人手从右到左划过,则TFT显示屏上的图片从右向从滑动切换至下一张图片。若人手靠近摄像头,则TFT显示屏上的图片放大一定倍数;若人手远离摄像头,则TFT显示屏上的图片缩小一定倍数。
4 结语
本文介绍了基于ARM芯片S3C6410的手势动态操作图片的识别系统,通过手势对图片进行切换与缩放操作,实现了非接触式的人机交互。本系统利用QT/E开发的人机界面美观,应用开源的OpenCV提供的各种视觉、图像处理算法,提高图片处理的效率。本文提出的手势输入系统,可以让用户摆脱鼠标、键盘输入的空间限制,利用“手语”“隔空”控制。本系统可以方便地移植到可用手势控制的系统,比如医生进出医院手术室的大门控制系统,另外本文的设计思想在聋哑人手语输入、机器人视觉输入等方面具有良好的应用前景和很大的实用价值。