APP下载

基于树莓派的手势交互六足机器人*

2021-03-26薛志峰留沧海王一田

传感器与微系统 2021年3期
关键词:树莓步态手势

薛志峰, 蒋 刚,2, 留沧海, 王一田

(1.西南科技大学 制造科学与工程学院,四川 绵阳 621000;2.成都理工大学 核技术与自动化工程学院,四川 成都 610039)

0 引 言

六足机器人自诞生以来,以其独特的高承载能力、地形适应能力强、灵活性好等特性在多个领域得到了广泛的应用,已经从传统的机器人延伸到智能机器人,并且在星球探测、深海探索等新的领域不断的拓展[1]。在六足机器人的智能化领域,大多研究都集中于机器人控制算法与机械结构的优化和创新,以提高机器人的环境适应能力和智能性等方面性能,但是在一些特殊环境中,因局部适应性等原因,六足机器人无法发挥出最优性能,需要通过人工干预手段以有效解决。此外,人机交互一般依赖于键盘、鼠标、遥控器、触摸屏等简单的装置,具有一定的固有缺陷。

在图像处理基础上的手势与姿态识别研究中,主要集中于以下几个方面:1) 传感器:基于Kinect,FDC2214电容式传感器等[2,3];2)深度学习:基于BP神经网络、卷积神经网络(convolutional neural network,CNN)等[4,5];3)机器学习:隐马尔科夫模型 (HMM)、贝叶斯网络(BN)、支持向量机 (support vector machine,SVM)等方法在识别问题中也被广泛采用[6,7]。彭玉青提出了一种基于YOLO v3的改进算法,结合了手势检测的特点,解决了原始YOLO对小物体检测效果差、定位准确度不高的问题,在识别阶段,利用CNN进行识别,并针对手势区域的尺寸多样性引入了空间金字塔池化(SPP)来解决 CNN 的多尺度输入问题.最后在训练过程中联合线下和实时2种数据增强方法避免过拟合问题,提升 HGDR-Net 的泛化能力。YOLO v3是目前检测领域最优秀的算法之一,检测准确率高且时效性好。

基于上述原因,本文提出了一种新型的人机交互模式,即基于树莓派的手势交互六足机器人,以更符合人类习惯的手势与机器人直接交互。实现了通过手势识别结果控制六足机器人的步态与动作,使六足机器人具备更好的环境适应能力、全方位移动能力和良好的通过性等性能[8]。

1 系统总体方案

本系统由摄像头、树莓派3B、STM32、舵机驱动板、六足机器人、传感器六部分组成。其中树莓派3B为图像处理模块,STM32单片机为控制模块,六足机器人为执行模块。树莓派一方面负责与摄像头连接进行环境图像采集与手势识别,另一方面利用串口通信方式将图像识别数据下发至STM32。当用户发起手势控制六足机器人事件请求,STM32响应这一事件,根据事件请求类型,要求树莓派读取摄像头采集到的图像信息并进行图片处理与手势识别,然后将手势识别结果发送到STM32,驱动板根据STM32计算得到的舵机数据进行六足机器人舵机控制,同时机器人自身传感器采集六足机器人状态,将状态信息发送至STM32,形成闭环控制,完成手势对六足机器人的控制。

2 YOLO算法简介

YOLO(you only look once) 算法最初是 Redmon J等人[9]在2016年提出的一种基于回归的目标识别方法,到2018年已经发展到了第3代YOLO v3,该算法在精确度相当情况下,速度是其他模型的3,4倍,只需一次前向运算就可以实现对多物体的识别检测。

YOLO v3网络继承了YOLO v2网络的快速检测的优点,同时大大提高了识别的正确率,特别是在检测与识别小目标方面,准确率有很大提升。YOLO v3借鉴了残差网络结构,形成更深的网络层次,以及多尺度检测,提升了mAP及小物体检测效果。YOLO v3的检测流程首先将输入图像整体缩放为 416×416,并将图像划分成13×13个网格,如果某一目标的中心落入某一网格,则该网格负责预测该目标[10]。

目前,有很多学者基于YOLO v3做了许多研究。其中,郭进祥和郑志强等人分别提出了飞机识别方法[11,12],钱弘毅等人实现了交通信号灯的快速检测与识别,徐晓涛等人在血细胞自动计数方面做出了研究,罗凡波等人实现了人群异常行为识别等。

3 手势数据集采集与处理

研究中,数据库由室内与室外复杂背景下采集的手势数据集组成,包括5中不同类型手势(1,2,3,4,5),每种类型样本400张,一共2 000张三原色(RGB)图片。数据集中的手势位于任意位置且采集角度不固定,由树莓派Camera V2拍摄视频文件,然后通过抽帧处理将视频文件转为连续图片。

为提高模型应对不同光照和方向模糊条件下检测的鲁棒性,丰富数据库并且防止过拟合,需要对原始数据集进行扩充。通过翻转、旋转、缩放和对比度变换等方法生成新的样本数据,通过这一步将训练数据扩充3倍,最终每类样本1 200张,一共6 000张,其中4 800张为训练集,1 200张为测试集。需要对生成的每一张图片归一化为416×416大小并进行人工标注,把图片中人的手势进行框选。本实验采用的标注工具为精灵标注助手。标注矩形框的大小会影响预测效果,不能太大或者太小。在对手势完成标注后,需要对生成的标签图片进行检查,保证每张图片只对应一个标签,导出为.xml文件。图1为5种手势数据样本分别在室内与室外自然场景下的示意。

图1 手势样本

4 实验验证与分析

4.1 手势识别模块

YOLO v3训练后得到的模型存储文件夹中,在树莓派运行时调用模型。在YOLO v3训练得到的模型中,测试集的手势识别mAP在室内与室外分别可以达到95.08 %与89 %,其中每种手势类别在室内与室外的手势识别准确率:手势1为96.25 %与89.58 %,手势2为95.42 %与89.17 %,手势3为94.58 %与87.92 %,手势4为95 %与88.75 %,手势5为94.17 %与89.58 %。每种手势类别在室内与室外的识别效果如图2所示,识别准确率如图3所示,其中横坐标为样本类型,纵坐标为准确率。

图2 手势识别效果

图3 准确率

4.2 六足机器人执行模块

本系统采用STM32单片机控制六足机器人。STM32控制机器人完成动作,六足机器人通过手势控制所需执行的动作有以下5种:前进、后退、左移、右移、步态切换,分别对应手势的1,2,3,4,5。

如图4所示,以黑色X为基准,在摄像头正面给出手势1时,六足机器人完成了前行动作,在给出手势5时,六足机器人完成了由三角步态到螃蟹步态的行走步态切换。六足机器人在接收到一种手势命令时,机器人会执行相应动作并维持该动作,直到接收到新的手势命令时才会进行动作切换。

图4 手势交互效果图

5 结 论

基于树莓派为核心的手势交互六足机器人,运用树莓派Camera V2进行图像采集,YOLO v3完成手势识别,识别结果由树莓派发送给STM32,再由STM32计算得到六足机器人每条腿舵机的转动信息并下发,实现手势与六足机器人的交互。手势识别准确率表明:手势1的准确率最高,手势5的准确率最低,当手势平面与摄像头平行时准确率最高,当手势平面与摄像头平面垂直时准确率最低。受光线以及其他背景影响,室内的手势识别准确率明显大于室外。实验结果中的对比分析将为机器人在自然环境下人机交互研究与实现提供数据支撑。但本实验中,手势距离摄像头保持在3 m以内,没有进行更远距离的实验,这是本次实验的不足,也是后续的研究方向。

猜你喜欢

树莓步态手势
步态异常,老年人应警惕这些疾病
基于步态参数分析的老年跌倒人群步态特征研究
挑战!神秘手势
基于树莓派的骑行智能头盔设计
V字手势的由来
基于面部和步态识别的儿童走失寻回系统
基于Kinect的学步期幼儿自然步态提取
基于树莓派的远程家居控制系统的设计
胜利的手势
响应面法优化红树莓酒发酵工艺