前言:
眼前大家对“手势控制模式教学设计模板”大约比较关心,各位老铁们都需要了解一些“手势控制模式教学设计模板”的相关内容。那么小编同时在网摘上网罗了一些有关“手势控制模式教学设计模板””的相关文章,希望兄弟们能喜欢,姐妹们一起来学习一下吧!针对传统教学机器人可重构性差、系统综合应用性不足、人机交互功能简单等缺点,湖南工业大学轨道交通学院的邓广雯、梁娇娇、张驾祥、谭会生,在2023年第10期《电气技术》上撰文,设计开发一种基于现场可编程门阵列(FPGA)的可重构动静态手势交互教学机器人。
该机器人以Xilinx的Spartan6为控制器,通过OV5640摄像头对手势图像信息进行识别传输,利用I2C总线与FPGA控制芯片进行通信,利用WiFi模块进行数据传输,从而对机器人进行相应的手势指令控制,实现人机手势交互、机械臂抓物、自动循迹、超声避障、运动除障、语音播报等多种功能。同时,该手势控制机器人对测试者的数字手势和动作手势识别正确率达95.1%,实时识别响应时间小于0.5s。
本文设计的基于FPGA的可重构动静态手势交互教学机器人可应用于FPGA系统设计等研究类课程教学中,具有推广价值。
随着机器人教学方式逐渐多样化,基于图像处理的手势识别控制机器人在课程示教和人机交互中变得越来越重要,提高教学过程中人机交互的多样性至关重要。
近期关于人机交互控制技术的研究变得非常活跃,主要研究内容包括手势识别、语音识别等,与传统交互方式在灵活性和控制距离上有所不同,基于视觉的手势人机交互方式具有适应性强、直观方便等特点。手势识别系统需要实时性强、分辨率高和功耗低的图像处理能力,中央处理器(CPU)的架构性能无法满足实时图像处理要求,而传统图形处理器(GPU)的功耗较高,不利于移动式控制系统,所以本文采用现场可编程门阵列(FPGA)作为图像处理控制系统,不仅可以降低功耗,而且可显著提高实时处理速度。
基于手势识别的课程示教方式主要是通过一系列的图像处理将手势语言转换为其他指令语言。在手势信息中,最关键的特征是肤色和边缘信息,然而人的肤色各不相同、手势的具体含义多种多样,而且周围环境复杂、各种视觉摄像机硬件之间存在差异,因此基于手势识别控制的机器人在高校课程示教方面的应用有很大的研究空间。
相关学者对可重构教学机器人系统展开了相关研究。有文献针对语音识别和体育教学,研究了一种混合体育示教机器人,扩展了人工智能教学方式的多样性。有文献为了提高机器人示教动作的准确稳定性和直观性,利用基于视觉引导的图像处理来进行机械臂抓取实验,研究并实现了一种基于双目视觉的双臂协作教学机器人。有文献为了让学生更加直观深入地学习机器人的架构和原理,设计了一款易于拆卸和组装的可重构模块化教学机器人,以提高示教效率。有文献结合上位机软件和下位机硬件控制,分模块设计示教机器人的机械结构,研究并实现了一种基于上位机控制的拖动示教机器人系统。
在手势识别控制的相关研究中,何之源在ARM7开发板上使用嵌入式计算平台,利用模版匹配法设计实现了静态手势识别,但该手势识别控制系统对模板准确度的要求较高,且该手势识别系统稳定性较低。PATHAN A N等设计的机器人控制系统利用手指计数的方式达到静态手势识别,进而生成特定信号值来控制机器人执行命令,但该识别方式比较单一,未能将动静态手势结合来控制机器人。朱越等提出一种手势轮廓像素变化的静态手势识别方法,对手势进行实时检测并显示,虽然提高了控制系统的鲁棒性,但该方法只进行了Matlab仿真,未经实物验证,缺乏说服力。
本文针对FPGA系统综合训练类课程,设计开发一种基于FPGA的可重构动静态手势交互教学机器人,该机器人系统涉及多种传感器、手势交互图像处理、无线通信、机器人运动控制与循迹、机械臂操作控制等综合应用,具有人机手势交互、机械臂抓物、自动循迹、超声避障、运动除障、语音播报等多种功能,以期能有效激发学生的学习与创造兴趣,提高学生的FPGA应用能力。
1 动静态手势识别流程与相关算法
1.1 图像预处理
在摄像头实时采集手势图像的过程中,外界环境会导致各类图像噪声,所以需要利用手势处理算法对其进行图像预处理,保证信息可靠性。
手势图像处理流程如图1所示。首先对原始手势图像进行RGB转YCbCr操作,然后进行二值化处理,为了获取更清晰明确的图像边缘信息,利用形态学滤波操作中的腐蚀和膨胀对图像边缘信息做连通域处理,再进行Sobel边缘检测,经过特征值提取后,就可得到手势分割后的手势图像信息。
1.2 手势分割
手势分割至关重要,其处理结果直接影响手势信息的识别。手势分割的目标是将手势与背景分离,提取出手势中的关键像素,并去除干扰项,以获得更准确有效的手势图像,提高手势识别准确率。本文采用经多次实验改进后的肤色模型法,基本色彩空间有RGB、HSV和YCbCr。本文采用RGB转YCbCr,在RGB色彩空间中,人体肤色所在区间为
1.3 静态手势识别
手势识别的关键是提取和辨认手势特征值,它决定了系统的识别率。手势特征可用于描述不同手势之间的差异,通过归纳各种手势信息的特性,就可总结手势的信息特征。手势信息特征应具有代表性和鲁棒性,以确保手势识别结果的准确性。
手势在图像中的面积发生改变会造成几何矩变化,从而失去缩放不变性。为了解决这一问题,需要进行归一化处理,归一化计算公式为
1.4 动态手势检测
动态手势识别检测主要对图像质心的移动轨迹进行判断,动态手势识别检测判断如图2所示。首先将经式(6)计算得到的图像质心保存并定义为中心区域,并在其上下左右四个方向画出合适边界,定义为A区域,该区域被定义为移动区域,A区域上方被定义为E区域,其含义为向上移动,B区域表示向下移动,C、D区域分别表示左右两个方向移动。若动态手势经过某个区域,则表示向这个方向移动,按照这种区域检测判断方式,即可完成对手势方向的动态识别。
动态手势跟踪算法流程如图3所示。动态手势识别是对手的不同运动轨迹进行识别,通过改进的手势肤色模型和手势中心点方向向量法跟踪得到手势运动轨迹,然后提取手势运动轨迹的特征向量,就可以实现对手势质心轨迹的识别。确定跟踪手势目标后,利用锁定质心的方式对动态手势进行更精准的轨迹确定,然后就可以发出动态手势指令对机器人系统进行控制。
2 FPGA可重构教学机器人的设计与仿真
2.1 动静态手势FPGA控制系统设计
图4为该机器人的FPGA系统硬件总体框图。机器人系统包括数据采集模块、手势识别模块、控制指令译码模块和输出驱动模块。该手势控制机器人接收来自PC、红外和超声波传感器的控制信息,并通过数据采集模块传送到控制指令译码模块。同时,接收来自OV5640的手势信息,经过手势识别模块处理后也传送到控制指令译码模块。
指令译码模块根据指令,结合摄像头采集、处理后的手势识别结果,以及采集的红外传感器信号值和超声波传感器距离值,选择当前机器人的工作模式,在特定工作模式下,系统会根据红外传感器、超声波传感器及手势信息的识别结果产生控制信号,并发送给输出驱动模块。
在手势识别模块中,OV5640摄像头采集的图像数据经过RGB转YCbCr、高斯滤波、形态学处理、手势分割及边缘检测等预处理后存入同步动态随机存取内存(synchronous dynamic random access memory, SDRAM)中,然后被送到视频图形阵列(video graphics array, VGA)驱动模块用于显示,并进行特征值计算与特征匹配,得到的识别结果被送到指令译码模块,接着各输出驱动模块根据指令译码模块产生的控制信号来产生各个执行机构的驱动信号。
2.2 Sobel边缘检测模块
系统的图像边缘检测采用广泛应用于图像处理和计算机视觉的Sobel边缘检测算法。该算法利用两个3×3的矩阵对图像进行卷积运算,计算出图像在水平与竖直方向的灰度差分估计值。
图5为Sobel边缘检测流程,图6为Sobel边缘检测模块时序仿真结果。首先读取位图(bitmap, BMP)图像的数据信息并存入数组,同时模拟摄像头时序,按照行、场同步信号读取一帧图像的信息,将该信号作为图像处理模块的输入信号,接着将图像传入Sobel图像边缘处理模块得到处理后的数据,最后存入数组,将数据写入BMP图像。
图6中,iBmpFileId和oBmpFileId信号分别代表输入和输出的BMP图片数据信息,iBmpWidth、iBmp Hight及iBmpSize分别代表BMP图像的宽度、高度和图像总字节数,coms_vsync和coms_href信号是模拟摄像头产生的行、场同步信号。
2.3 手势特征计算模块
特征值计算是手势识别模块中至关重要的操作,用于提取经边缘检测后图像的特征,并用于特征匹配模块,实现动静态手势的准确识别。系统提取的图像特征包括周长、面积和前三阶的Hu不变矩。
图7为前三阶Hu不变矩计算模块,包括坐标计算模块、几何矩计算模块、质心计算模块、归一化几何矩计算模块及Hu不变矩计算模块五部分。其中,坐标计算模块计算当前像素信息的x、y坐标值,data_rdy信号用作后面计算模块的使能信号;几何矩计算模块与质心计算模块分别计算经边缘检测后图像的几何矩和质心,这两个模块的计算结果作为归一化几何矩计算模块的输入;Hu不变矩计算模块计算图像的前三阶Hu不变矩,用于提取手势图像的特征值。
图8为特征值计算模块流程。首先通过OV5640采集图像,经图像二值化操作和形态学去噪与滤波处理后进行手势图像分割,得到手势图像的数据信息,FPGA控制器的计算模块接收到图像信息后,将经Sobel边缘检测处理后的图像用于计算手势的周长,经图像膨胀算法处理后的二值化图像用于提取手势的面积信息。同时,计算图像几何矩、归一化几何距、质心位置坐标、中心距和归一化中心距,得到图像的前三阶Hu不变矩。
输入手势图像的类型决定是静态手势识别还是动态手势识别,其中静态手势识别的特征值主要利用手势的周长、面积及前三阶Hu不变矩,把提取到的特征值与训练好的各手势期望特征值做差,得到最小二范数,其手势数据即为图片手势信息;动态手势识别主要是对手势图像质心的移动轨迹进行判断检测并跟踪。
图9为前三阶Hu不变矩特征值计算仿真结果。其中HREF[0]信号置高代表一行有效像素开始传输,X_POS、Y_POS分别为图像的横、纵像素坐标,SUM_00为几何矩的原点矩,SUM_01为几何矩的一阶矩,经过公式计算验证后,该Hu不变矩特征值数据正确。
2.4 手势指令控制模块
图10为手势指令控制模块流程。首先通过摄像头获取图像数据流信息作为输入,然后进行图像预处理实现图像去噪、滤波并减少图像数据量,采用形态学中的腐蚀和膨胀操作对图像边界进行连通域处理,再利用肤色模型法对图像中的手势区域进行分割,由于Hu不变矩具有旋转、平移、裁剪等不变性,因此通过Sobel边缘检测后,再提取分割后手势图像的Hu不变矩、周长、面积作为特征值,利用最小二范数进行特征值匹配得到静态手势识别结果,同时通过质心检测和轨迹跟踪完成对动态手势的识别。
在手势信息数据识别成功后,将得到的结果送到指令译码模块进行处理,产生手势控制信号,从而控制机器人系统按指令进行相应动作。静态手势指令可以控制机器人前进或停止运动,同时也可以利用手势指挥机器人自动循迹和清除路面障碍物,并伴随相应语音播报提示;动态手势指令可以控制机械臂进行各个方位的操作,使机器人按照指令完成相应动作。
图11为手势指令控制仿真结果。其中,rst_n信号延迟20ns后拉高,表示数据可以正常且有效地输入,data_wifi信号用于接收来自上位机的数据,srecog和drecog信号分别表示静态手势和动态手势的控制指令,servo_mode和motor_mode信号表示当接收到静态或动态手势时,舵机和运动电机的动作指令数据信息。经计算验证后,该模块结果数据正确。
2.5 输出驱动模块
输出驱动部分包含电机驱动、舵机驱动及语音驱动模块,输出驱动控制模块可根据指令译码模块的控制信号产生各个执行机构的驱动信号。
图12为机器人控制系统工作流程。给机器人上电后,进行一段时间的初始化操作,确保系统上电稳定。初始化完成后,判断是否接收到来自上位机WiFi模块的命令信号,若没有则进入初始模式,若接收到命令则由命令解析模块对指令进行解析译码后输出对应命令的模式选择信号,使机器人进入相应模式。手势指令控制模式下机器人会根据不同手势信息执行相应命令。
图13为舵机输出驱动控制仿真结果,图14为运动电机输出控制仿真结果。其中,sel_servo1和sel_servo2信号表示机械臂两个舵机的选择执行方式,servo_out1和servo_out2信号分别表示上下两个舵机的输出转动角度,motor_mode信号用于选择两个运动电机的方向和角度,enzuo_cnt和enyou_cnt信号表示左右运动电机的速度计数值,speed_zuo和speed_you分别表示左右运动电机的实际速度。经计算验证后,该模块结果数据正确。
3 FPGA可重构教学机器人硬件制作与测试
3.1 FPGA系统硬件制作成本
包括FPGA开发板、运动小车和机械臂等在内的单台机器人制作成本可控制在4500元人民币左右。相对于单价在10000~20000元左右的类似成品教学机器人,本文的教学机器人的设计与制作成本较低。
3.2 FPGA系统硬件功能测试
图15所示为静态手势识别数字3,经过处理后可见显示屏左侧所识别出的图像,显示屏右上角蓝色矩形内显示对应的数字。在测试过程中,系统可识别多种手势状态,经过排列组合可以发出指令控制机器人前进、后退、循迹、除障等。
图16所示为识别手势指令2进行循迹。当发出静态手势指令2时,机器人进行循迹,当发出手势指令1时,机器人停止运动。图17所示为机器人在循迹过程中进行除障操作。
图18所示为机械臂跟随动态手势运动。机器人前端机械臂通过识别动态手势,可进行上、下、左、右方位的移动。
3.3 FPGA系统硬件资源消耗
芯片型号为XC6SLX9FPGA的FPGA控制系统整体硬件资源消耗数据见表1。
3.4 FPGA系统性能比较
在Matlab 2020b环境下,识别过程利用GUI按钮识别手势图片,从开始检测图片手势到最终识别手势信息的时间为1.1s,而本文利用实时检测手势图像算法,并在屏幕上显示识别结果,所用识别时间小于0.5s。图19为Matlab手势识别过程。
8种手势识别测试结果见表2,每种手势分别测试60次,实验者按照顺序依次进行测试。
由表2可得,8种不同手势的总平均识别率为95.1%。有文献利用STM32F103嵌入式平台进行手势识别的平均识别率仅为87.6%,比本文系统低7.5个百分点。有文献利用Matlab设计的手势识别系统的总体有效识别率为85.9%,比本文系统低9.2个百分点。
4 结论
针对传统教学机器人综合应用不足、功能简单、制作成本高、可重构性不足等缺点,本文采用可批量生产的普通硬件模块,利用模块化设计方法,设计开发了一种基于FPGA的可重构动静态手势交互教学机器人。该机器人设计制作成本较低,可实现人机手势交互、机械臂抓物、自动循迹、超声避障、运动除障、语音播报等多种功能,对测试者的数字手势和动作手势的平均识别正确率达95.1%,实时识别响应时间小于0.5s。
本文设计的基于FPGA的可重构动静态手势交互教学机器人具有综合应用性强、功能较齐全、系统可观性好、设计制作成本低、系统可重构性好等特点,提高了示教过程中的人机交互多样性,可用于FPGA系统设计等研究类课程教学使用,具有良好的应用推广价值。
本工作成果发表在2023年第10期《电气技术》,论文标题为“基于现场可编程门阵列的可重构手势交互教学机器人设计”,作者为邓广雯、梁娇娇 等。本研究得到湖南省学位与研究生教学改革研究项目和湖南省教育厅科学研究项目的支持。
标签: #手势控制模式教学设计模板