APP下载

深度视觉手势识别协作机械臂物体抓取系统

2023-02-28黄旭阳韩建海李向攀

智能计算机与应用 2023年11期
关键词:置信度关键点手势

黄旭阳,韩建海,2,李向攀,2

(1 河南科技大学机电工程学院,河南 洛阳 471023;2 河南科技大学河南省机器人与智能系统重点实验室,河南 洛阳 471023)

0 引 言

手势不仅是人与人之间的一种重要交流方式,同时也改变了人与机器之间的交流方式[1],手势识别目前被广泛应用在多种领域[2]。 在控制领域,手势识别系统取代了按键或者触摸屏控制,通过手势实现机器人运动过程中的目标辨识使用户感到更加自然[3]。在计算机交互领域,手势取代了鼠标、键盘对计算机的控制,使人与计算机之间的交互更加智能化[4]。 随着卷积神经网络的不断发展,基于深度学习的视觉手势识别系统的应用范围也会越来越广泛。

最初的手势识别方法主要有数据手套和视觉识别.。 第一种方法主要利用穿戴设备获取手部各个关节的角度信息,这些设备将手势信息传入识别系统中,精确度比较高,但是需要大量传感器辅助,佩戴繁琐且设备成本较高[5]。 视觉识别方法应用更加方便,通过图像处理、图像分割完成特征提取,然后通过分类算法对手势特征进行识别。 但是对数据集的依赖性大,容易受到环境光照、背景干扰,算法的局限性比较大。

随着卷积神经网络的发展,手势识别中的目标分类问题被转换成了目标检测的问题。 Girshick 等学者提出R-CNN 用于目标检测,随后又提出Fast R-CNN,Faster R-CNN 等基于区域建议的目标检测算法,提高了识别的速度和精度[5]。 Redmon 等学者[6]在2016年的CVPR 大会提出了基于回归的YOLO 算法,YOLO 算法不生成候选区域,直接利用检测网络生成目标的位置、类别信息,进一步提高了检测的速度。

YOLOv1 自2016年提出,因其检测速度较快而广受关注,但对目标的定位不够准确,随后又相继提出了YOLOv2,YOLOv3。 在2020年,Bochkovskiy 等学者[7]提出了YOLOv4,该网络在YOLOv3 的基础上结合了很多提高精度的技巧,包括加权残差链接(WRC)、跨阶段部分连接(CSP)、交叉小批量标准化(CmBN)、自对抗训练(SAT)等,最终在COCO 的数据集上的AP值为43.5%,在TeslaV100 上的实时监测速度达到了65 FPS,有效提高了识别速度和精度。

1 系统方案设计

基于深度视觉手势识别的协作机械臂物体抓取系统整体设计方案的设计共由2 部分组成,包括手势识别系统和协作机械臂物体抓取系统(图1)。

图1 系统整体方案设计Fig. 1 Overall scheme design of the system

手势识别系统是指通过数据集处理,将数据通过改进后的算法模型进行训练,训练后的网络模型对单目摄像机采集到的数据进行预测,再将预测的手势信息通过串口发送到PC 端。

在机械臂抓取物体的系统中,PC 端和sawyer 机器人会把自身的节点信息发送到ROS Master 中保存起来,ROS Master 会根据节点信息进行匹配,匹配成功后PC 端可以直接和Sawyer 机器人进行通信,PC端将通过串口获得的手势信息进行处理后,转换成相应的指令通过节点以话题、服务、动作的通讯方式发出,机器人节点接收指令后完成相应的动作。

2 手势识别系统设计

手势识别系统主要分为如下步骤。

(1)数据采集:采集不同背景,保存手势的数据信息,并对采集后的数据进行数据标定。

(2)算法设计:为了更加方便地控制机械臂的运动,基于YOLO v4 算法进行改进,增加输出信息的种类,可以实现机械臂的更全面地控制。

(3)网络模型训练:将处理后的图片通过卷积、池化、全连接进行特征提取和分类,通过不断地更新网络权值使预测值和真实值之间的loss小于某一期望值。

(4)手势识别:通过对相机采集到的数据进行识别,将手势的分类信息进行输出,获得有效的手势识别结果。

2.1 YOLOv4 检测原理

YOLOv4 算法是在原有YOLOv3 的基础上,结合了很多提升精度的技巧,优化了数据处理、基础网络的算法,使用了Mish激活函数,提高了识别的速度和精度,YOLOv4 的改进如图2 所示。 这里,可对图2 中的重要设计内容,展开阐释分述如下。

图2 YOLOv4 网络结构图Fig. 2 YOLOv4 network structure diagram

(1)YOLOv4 的主干网络使用了CSPDarkNet53网络,CSPNet 的核心思想是输入切分,通过分割梯度流,将基础层的特征图分为2 部分,然后利用跨阶段特征融合策略将其合并起来。 CSPNet 不仅减少了计算量,而且实现了更丰富的梯度组合。 YOLOv4 的主干网络使用Mish激活函数代替了Leaky_ReLU激活函数,平滑的激活函数取代了硬零边界,允许更好的信息深入神经网络,提高准确性和泛化能力[8]。

(2)YOLOv4 在CSPDarkNet53 结构后添加了SPP 模块,SPP 用最大池化来满足最后输入特征一致,解决输入图像尺寸不统一的问题,可以增加感受视野,分离出最显著的上下文特征,使算法适应不同分辨率的图像。

(3)YOLOv4 采用了FPN+PAN 模块,FPN+PAN一个非常重要的特点就是特征反复提取。 FPN 将高特征层通过上采样和低特征层做融合得到预测的特征图,增强了语义信息;PAN 自底向上传递定位特征,通过对FPN 模块的补充,进一步提高了特征提取的能力,从而加强了对目标的检测能力。

2.2 改进的YOLOv4 算法

YOLOv4 在YOLOv3 的基础上融合了提高精度的技巧,包括数据增强、加权残差连接、跨阶段部分连接、交叉小批量标准化、Mish 激活等,使得YOLOv4 在识别精度和识别速度方面有了很大的提升,但在最后网格的特征通道上只有先验框的位置、置信度和种类的信息,不能满足对机械臂灵活控制时的数据要求。针对这种情况,本文在YOLOv4 算法的基础上优化YOLOv4 的输出模型结构,将网格特征通道上加入2个手势关键点的分析,通过对这2 个关键点的训练和分析,得到手的水平方向,进而控制机械臂手爪的夹持方向,提高机械臂控制的灵活性。

YOLOv4 通过CSPDarkNet53 网络完成对输入图片特征的提取,并对输入图片提取3 个有效特征层,将3 个有效特征层分成大小不同的网格,比如特征层为(N,8,6,75)的格式就是将输入图像分成了8∗6 的网格;接下来在这些网格中心建立3 个先验框,再通过网络预测结果来判断哪些先验框中有所需要检测的物体,并判断出所检测到物体的种类。

以特征层(N,8,6,75)为例,由于每个网格中共同有3 个先验框,所以75 可以看作3×25,25 中包括4 个先验框调整参数(x,y,h,w),1 个置信度信息用来确定框内有没有检测到物体,20 是网络检测物体的种类。

为了更加灵活地控制机械臂,将特征层输出内容做出调整,如图3 所示,通过增加1,10 两个关键点的位置信息来判断手的水平方向,为此将特征层的输出结果改变为(N,8,6,3,29),新增的4 组数据表示2 个手势关键点的坐标信息,随即推得最后特征层的输出结果为(N,8,6,87)。

图3 手势关键点Fig. 3 Gesture key points

2.3 网络模型训练

深度神经网络中的损失是衡量训练出来的模型泛化能力好坏的重要指标。 损失是指训练后网络模型的预测值和目标值之间的差值,预测值和目标值之间的差值越小,损失值也就越小,说明训练的模型也就越准确,泛化能力也就越好。 当损失值比较高时,就需要通过优化函数不断地更新网络权值,使差值达到最小或者小于某一期望值,从而提高模型的准确度和泛化能力[8-9]。

2.3.1loss的计算

损失一般由3 部分组成。 第一部分是预测框x,y,w,h带来的误差,用CIoU loss计算;第二部分是置信度带来的误差,用BCE loss来计算;第三部分是类别和关键点带来的误差,用BCE loss来计算。

Intersection over Union (IoU) 是目标检测中的一种重要的评价值。IoU通过计算这2 个框A、B间的Intersection AreaI(相交的面积)和Union AreaU(总的面积)的比值来获得:

IoU是比值的概念,对尺度不敏感,而且当2 个框的重叠为0 时,IoU无法进行反向传播。CIoU将预测框和真实框距离、重叠率和惩罚项都考虑进去了,使目标回归更趋稳定[10]。CIoU的公式如下:

其中,ρ2b,bgt() 表示预测框和中心框的距离,c表示能同时包含预测框和真实框的对角线的距离。α和v的公式如下:

把1-CIoU就得到了lossbox,所以lossbox的公式如下:

其中,带“^” 的变量表示标签真值;s表示特征层的长宽;B表示每个网格点先验框的个数;表示预测框是否为正样本,是、为1,否、为0;表示该检测框是否是负样本,是、为1,否、为0,如果2 个值都为0,说明该检测框为忽略样本。

2.3.2 手势识别结果分析

使用改进后的YOLOv4 算法对自制数据集进行检测,手势检测结果如图如4 所示,各类手势的置信度见表1。 在图4 中,预测框在原图上的位置就是手势所在的位置,手势关键点的连线代表着各个手势点的坐标信息,预测框上面左边的标签表示检测出来的手势种类,右边的表示所识别手势的置信度。在表1 中,可以看到各类手势的置信度达到了98%,置信度表示该手势被正确识别的概率,根据实验数据显示,改进的YOLOv4 算法可以准确地识别出手势种类以及各个关键点的坐标信息。

表1 各类手势置信度Tab. 1 Gestures confidence

图4 手势检测结果Fig. 4 Gesture detection results

3 基于改进YOLOv4 改进算法的协作机械臂物体抓取实验

3.1 实验环境

实验所用平台来自实验室搭建的基于ROS 系统的Sawyer 协作机械臂控制系统,操作系统及版本:Ubuntu20.04;手势识别模块: PaddlePi-K210 AI开发套件。

3.2 机械臂抓取物体系统步骤

在手势识别系统中,根据识别到的不同手势信息,来实现机械臂的物体抓取动作,手势识别系统的步骤流程如图5 所示。 在图5 中,首先将机械臂处于使能状态,进入准备阶段,随后打开摄像头获取手势种类、手势关键点和手势水平方向的信息,通过手势的种类控制机械臂执行相应的动作,利用手势的关键点和水平方向的信息来实现机械臂跟踪手势以及抓取物体方向的控制。

图5 机械臂抓取物体系统步骤Fig. 5 Steps of mechanical arm grabbing object system

3.3 手势识别应用结果

将手势识别模块应用在机械臂控制中,本文主要设计了2 种应用模式,如图6 所示。 第一种为指令控制模式,也就是检测到触发类动作时输出该指令,随即控制机械臂做出相应的动作。 第二种为跟随模式,指检测到手势状态变化时输出该指令,接着使机械臂手爪跟随手势中心点移动,再通过检测手势水平方向控制跟随移动过程中机械臂的手爪夹持方向。

图6 应用模式图Fig. 6 Application pattern diagram

3.3.1 指令控制模式

在该控制模式中,由手势模块将手势信息通过串口的方式发送到PC 端,在PC 端对手势信息进行分析,通过手势分析将指令发送到Sawyer 机器人。当识别的手势为两指时,机械臂的手爪夹紧;当检测的手势为空鼠时候,机械臂的手爪张开,如图7 所示。 当检测的手势为张开手掌时,机械臂进行摇头操作。 指令模式下手势对应指令见表2。

表2 指令模式下手势对应指令Tab. 2 Instructions gesture correspond to gestures in instruction mode

图7 指令控制实验结果图Fig. 7 Command control experiment result chart

3.3.2 跟随控制模式

在这种控制模式下,机械臂不仅实现指令控制,而且可以跟随手势中心点移动,完成准确的物体夹取动作。 跟随模式实验结果如图8 所示。

图8 跟随模式实验结果图Fig. 8 Experiment result diagram of in follow-up mode

当检测的手势为手掌变OK 时,进入跟随模式,手爪跟随手势中心点移动同时根据手势水平方向的夹角来调整手爪的夹持方向。 当检测的手势为OK变手掌时,退出跟随控制,稍后就可以利用指令控制进行物体的夹取。 跟随模式下手势对应指令见表3。表3 中,GHA(Gesture horizontal angle)表示手势中1,10 两个关键点与水平方向的夹角。

表3 跟随模式下手势对应指令Tab. 3 Instructions corresponding to gestures in follow-up mode

4 结束语

本文利用视觉识别的方法实现了手势对机械臂的控制,最终的效果为机械臂跟随手掌移动到指定位置后完成抓取动作。 本文设计了多种手势动作,进行了机械臂的控制实验,而后通过对YOLOv4 算法的改进,在训练结果中引入了手势方向的训练,从而有效实现了在跟随手掌移动过程中手爪夹持方向的问题,让机械臂的控制更加灵活。

猜你喜欢

置信度关键点手势
聚焦金属关键点
硼铝复合材料硼含量置信度临界安全分析研究
肉兔育肥抓好七个关键点
挑战!神秘手势
V字手势的由来
正负关联规则两级置信度阈值设置方法
胜利的手势
置信度条件下轴承寿命的可靠度分析
医联体要把握三个关键点
锁定两个关键点——我这样教《送考》