首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

基于手势识别的机器人控制系统(二)

基于手势识别的机器人控制系统(二)

2.2 动态手势识别流程
    上文识别出了手部区域,手心、指尖位置和手指个数,接下来通过帧差法对运动的手势信息进行识别处理,程序设置Hand和Count两个变量分别标记是否捕捉到手和手进入的帧数,程序流程图如图4所示。




图4 手势识别程序流程图


    情况一(Count=0,Hand=0):当前图像和上一帧图像中都没有手出现,表示这段时间内无手进出摄像头捕捉区域,不做任何处理。
    情况二(Count=0,Hand=1):当前图像无手出现,上一帧有手出现,表示手刚刚离开摄像头捕捉区域,保存该图像信息。
    情况三(Count=1,Hand=1):当前图像有手出现,且为第一帧图像,表示手刚刚进入图像捕捉区域,保存该图像信息。
    情况四(Count=K,Hand=1):表示手一直在图像捕捉区域中。
    2.3 动态手势识别
    2.3.1 上下左右的识别
    结合情况二和情况三,通过判断第一帧和最后一帧手势中心坐标的变化情况就可以识别出上、下、左、右这四种手势运动方向,其识别过程可由如下公式表示:





    C1(X,y)和Ccount-1(x,y)分别表示第一帧和最后一帧手势中心的坐标,θ为两点间的夹角,通过判断θ值就可以知道手势运动的大体方向。
    选取第一帧和最后一帧来代替手从进入捕捉区域到离开时系列图像帧,即具有代表性也简化了程序设计的复杂度,通过计算这两帧图像手心坐标的夹角的正切值,最多可识别出八种运动方向,考虑到系统的精确度和实际设计的需求,只选取了上、下、左、右这四种判别方向,识别效果较为理想。
    2.3.2 张手握拳的识别
    对于情况四,通过帧间差分的方法识别张手和握拳这两种动态手势信息,张手可定义为连续M帧手指个数为5且接下来的连续M帧手指个数保存不变,握拳可定义为连续N帧手指个数为5且接下来N帧内减少T个像素点。M、N和T的值都需要根据系统的具体情况进行设置,我们设置的阈值为M=N=20,T=1000。在此期间任何一帧不符合条件时M、N和T的值立即清零,重新计数。
    通过以上步骤就可以识别6种手势信息,进而可产生6种不同的控制信号。

3 手势控制机器人系统设计
    图5为手势控制机器人系统的原理图.实验者对摄像头做出动态手势,系统通过上文的手势识别流程识别出相应的手势动作,当符合条件时给无线蓝牙串口写一个数据发送给机器人,机器人接收该串口数据后执行相应的动作指令。




图5 手势控制机器人系统的原理图


    在实际设计过程中,机器人若要调整运动方向,必须先停止当前的运动再执行下一次运动,指令如果发错要有纠错的能力,发送指令之间要有一定的时间间隔,以防止控制信息重复多次发送而导致机器人无法正确处理相应信息。
    规定当发送前、后、左、右这四种指令时,下一次指令只能发送加速或停止,否则系统自动屏蔽不予发送,Hand和Count值自动清零,重新捕获图像,每个指令发送的时间间隔为三秒钟,三秒以内系统不对捕捉图像进行处理,如此以来,就可保证即使操作者错误发送一些指令信号,系统在识别的过程中也可以予以屏蔽,避免影响机器人正常工作。




4 实验结果分析
    实验者按照较快、正常、较慢这三种速度对每种动作进行了20次测试,实验结果和识别率如表2所示,可以发现手势运动速度的快慢对实验结果并没有太大的影响,除握拳这一手势动作以外,其他动作的平均识别率都能达到90%以上,如果操作者动作更加规范,其识别准确度更高,通过计算其时间复杂度,系统对不同手势动作的平均响应时间小于50ms,具有较高的实时性,可以满足对机器人进行实时控制的要求。








5 总结与展望
    基于计算机视觉的手势识别系统对环境较为敏感,手势识别易受到光照亮度、周围环境颜色和人体肤色的影响,从实验结果来看只要在正常光照条件下,周围没有大面积整块的与肤色接近的物体时系统是不会受到太大影响的,当环境背景较为复杂,特别是当手势区域和近似于肤色颜色区域重合时,系统会将手势部分和噪声区域整块的视为一个连通区域而影响手势的识别,如何消除这一点的影响,取得更好的鲁棒性将是我们下一步重点解决的问题。

羿戓LOGO.webp.jpg
上海.羿歌,主要立足于物联网之感知层的解决方案和组件设计制造。  18918134319
返回列表