一种基于静态手势识别的机械臂远程控制方法
技术领域
本发明涉及机械臂控制的技术领域,具体涉及一种基于静态手势识别的机械臂远程控制方法。
背景技术
随着机器人产业的快速发展,各种机器人层出不穷。语音对话机器人、陪伴机器人、遥控机器人开始普及,让普通百姓体验高科技产品带来的乐趣和方便性。而作为机器人产业中的支柱机械臂,一直应用于工厂,不断重复相同的工作。
目前,基于传感器的手势识别遥控需依赖昂贵的外接设备来实现对手势的识别从而控制机械臂,如在论文《人机交互手势的超声波检测及其HMM融合SVM识别算法》中,利用超声波多普勒频移的SVM-HMM手势识别算法对提取到的手势特征序列进行识别分类,最终总体手势识别率达到94.625%。或者,在专利专利公开号为CN110695990A,专利名称为一种基于Kinect手势识别的机械臂控制***中,手势识别依赖的设备是Kinect。这种手势识别的成本很高,而采用普通相机对静态手势识别来控制机械臂的方法很少,已知的算法识别在效率和时间上还需要被进一步的提高。
发明内容
针对上述的技术问题,本发明提供了一种基于静态手势识别的机械臂远程控制方法,***与传统的基于手势识别的机械臂控制***相比,仅需一个与PC机相连的彩色相机即可,不仅帮助操作者摆脱了笨重的穿戴设备,而且也降低了设备成本;可有效的解决上述问题。本发明通过以下技术方案实现:
一种基于静态手势识别的机械臂远程控制方法,包括机械臂本体,所述的机械臂本体的驱动装置与机械臂控制器连接,由机械臂控制器下达命令,控制机械臂运作;所述的机械臂控制器通过无线网络或信号线与上位机信号连接,进行信号传输;所述的上位机信号连接有用于采集手势的摄像头,摄像头与上位机连接,将采集的图像传送至上位机,由上位机进行图像处理和识别,判定手势下达的命令;具体操作流程如下:
S1:开启相机,相机开始工作,以帧数据形式采集视野范围内的图像,并将图像发送至上位机进行处理;
S2:上位机对相机上传的图像进行初步处理,逐帧进行检测;检测相机上传的图像是否存在手势;若图像上出现相应的肤色,则判断为手势出现,进行下一步S3;若未出现,则返回S1,继续采集图像;
S3:对图片中的手势数据进行特征提取;
上位机先将带有手势的图像进行灰度处理,再对带有手势的图像进行归一化处理,然后计算图像水平和垂直方向的梯度,做方向梯度直方图特征的HOG提取,最后提取得到图片中的手部特征;
S4:将提取的手势特征信息与存储的特征信息进行比对,若比对成功,则进行S5,否则返回S1;
S5:机械臂根据手势映射的指令,完成相应的操作。
进一步的,步骤1所述的相机在装机时,需要对相机先进行数值设定。
进一步的,所述的数值设定是结合运动帧差法与HSV肤色空间阈值限定法获取操作者的肤色数据区域,将当前帧图像与相邻帧图像做差分获取运动区域,摆动手臂,使运动区域包括手势部分的肤色区域;在获取运动区域后,将图像从RGB颜色空间转换到HSV颜色空间,采用HSV肤色模型进行阈值限定;确定肤色模型的色调H,饱和度S,明度V的范围。
进一步的,步骤3所述的对图片中的手势数据进行特征提取,具体操作步骤如下:
S31:将获取的图像进行灰度化处理,包括参数信息x,y,z;其中,x,y为像素坐标,z为在(x,y)处像素的像素灰度值;
S32:用伽马校正法对手势图像进行归一化处理,调节图像的对比度;
S33:计算图像水平和垂直方向的梯度,梯度为向量,包括大小和方向,在HOG特征提取中,用于求取特征向量;其中包括数据Gh(x,y),Gv(x,y)和θ(x,y);Gh(x,y)为像素点在水平方向上的梯度值,Gv(x,y)为像素点在垂直方向上的梯度值,θ(x,y)为像素点的梯度方向;像素点(x,y)的梯度强度M(x,y)和方向θ(x,y)的计算公式为:
M(x,y)≈|Gh(x,y)+Gv(x,y)|;
θ(x,y)=arctan(Gh(x,y)/Gv(x,y));
S34:提取HOG特征;将图像压缩到28*28大小,分成36个定义块,每个定义块分成4个细胞单元,再将每个细胞单元的方向分成9段,每段20°,对每一个细胞单元的梯度强度M(x,y)和方向θ(x,y)进行权重投影,在重叠定义块内的细胞单元进行对比度归一化处理,把所有的细胞单元的特征向量串行融合即可得到HOG特征向量;
将向量组成特征向量X,计算特征向量X的协方差矩阵C,对矩阵C求特征值和对应的特征向量,将特征向量对应的特征值按大小从上到下按行排列成矩阵,取前100行组成矩阵P,按下列公式获得新矩阵Y:
Y=PX;
其中,矩阵Y的维数为100维;
S35:手部特征提取;手部特征包括三个参数,分别为:n,m,L;其中n为轮廓的凸包点数,m为轮廓的凸包缺陷数;L为圆形度;
遍历轮廓每个点,通过坐标求出两个极端点A,B;连接AB,分别对上凸包和下凸包内的点求凸包,在递归中找到距离AB最远的点C,做线段AC和BC,再将AC作为极端点进行递归,依次循环,直到无法找到凸包,则最远点即为凸包顶点,轮廓的凸包点数n得出;
每相邻的两个凸包点之间包含一个凸包凹陷,在求n过程中,对凸包点进行标记,得到凸包凹陷数m=n-1;
轮廓的圆形度L由轮廓构成的面积和周长求出,分别用matalab中的bwarea()和bwperim()函数求出轮廓的面积S和周长C,圆形度的计算公式如下:
S36:HOG特征与手部特征归一化;求取HOG降维后的矩阵Y的特征向量α=[h1,h2,…,h100],并将向量α与手部特征向量β=[n,m,L]进行串行融合,得到融合特征向量R=[h1,h2,…,h100,n,m,L];得到最终的手部特征。
进一步的,步骤S4所述的将提取的手势特征信息与存储的特征信息进行比对,其具体操作方式为:将步骤S3提取得到的手部特征信息与在matalab中经过训练的SVM分类器进行分类和匹配,若匹配成功,则下发相应的指令给机械臂。
进一步的,所述下发相应的指令包括Mreset,Mpause和Mstart;其中,Mreset控制机械臂的复位,Mpause控制机械臂的暂停,Mstart控制机械臂的启动。
进一步的,所述的上位机和机械臂控制器设置在同一个5G CPE环境下,两者的数据传输的信息结构如下:
0 |
1 |
2 |
3 |
4 |
5 |
N |
N+6 |
N+7 |
STX |
LEN |
SEQ |
SYS |
COMP |
MSG |
PAYLOAD |
CKA |
CKB |
其中,STX用于消息识别,解析;LEN记录负载信息的长度;SEQ为消息发送序列码,用于通信可靠性检验;SYS为发送该消息***的***ID;COMP为发送该消息***组件的组件ID;MSG为标识该消息的种类;PAYLOAD为指令信息;CKA和CKB为消息校验位。
有益效果
本发明提出的一种基于静态手势识别的机械臂远程控制方法,与现有技术相比较,其具有以下有益效果:
(1)本技术方案通过相机获取图像,经手势分割、形态学处理以及轮廓提取来消除干扰信息,在手势特征提取中,先提取手势图像的HOG特征,对HOG特征进行PCA降维处理,再利用快速凸包算法计算手部多个特征,将HOG特征和手部多特征进行归一化处理后串联融合形成最终的分类特征,最后将最终分类特征通过SVM(支持向量机)进行分类识别,平均识别率达到96%,较HOG+SVM和HOG+Hu+SVM在速度上和精度上都有明显的提高。
附图说明
图1是本发明中整体流程图。
图2是本发明中的硬件设备架构框图。
图3是本发明中的硬件设备连接示意图。
附图中的标号:1-机械臂本体、2-机械臂控制器、3-上位机、4-摄像头。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。在不脱离本发明设计构思的前提下,本领域普通人员对本发明的技术方案做出的各种变型和改进,均应落入到本发明的保护范围。
实施例1:
如图1-图3所示,一种基于静态手势识别的机械臂远程控制方法,包括机械臂本体,所述的机械臂本体的驱动装置与机械臂控制器连接,由机械臂控制器下达命令,控制机械臂运作;所述的机械臂控制器通过无线网络或信号线与上位机信号连接,进行信号传输;所述的上位机信号连接有用于采集手势的摄像头,摄像头与上位机连接,将采集的图像传送至上位机,由上位机进行图像处理和识别,判定手势下达的命令;具体操作流程如下:
S1:开启相机,相机开始工作,以帧数据形式采集视野范围内的图像,并将图像发送至上位机进行处理;
相机在装机时,需要对相机先进行数值设定。所述的数值设定是结合运动帧差法与HSV肤色空间阈值限定法获取操作者的肤色数据区域,将当前帧图像与相邻帧图像做差分获取运动区域,摆动手臂,使运动区域包括手势部分的肤色区域;在获取运动区域后,将图像从RGB颜色空间转换到HSV颜色空间,采用HSV肤色模型进行阈值限定;确定肤色模型的色调H,饱和度S,明度V的范围。
S2:上位机对相机上传的图像进行初步处理,逐帧进行检测;检测相机上传的图像是否存在手势;若图像上出现相应的肤色,则判断为手势出现,进行下一步S3;若未出现,则返回S1,继续采集图像;
S3:对图片中的手势数据进行特征提取;
上位机先将带有手势的图像进行灰度处理,再对带有手势的图像进行归一化处理,然后计算图像水平和垂直方向的梯度,做方向梯度直方图特征的HOG提取,最后提取得到图片中的手部特征;
对图片中的手势数据进行特征提取,具体操作步骤如下:
S31:将获取的图像进行灰度化处理,包括参数信息x,y,z;其中,x,y为像素坐标,z为在(x,y)处像素的像素灰度值;
S32:用伽马校正法对手势图像进行归一化处理,调节图像的对比度;
S33:计算图像水平和垂直方向的梯度,梯度为向量,包括大小和方向,在HOG特征提取中,用于求取特征向量;其中包括数据Gh(x,y),Gv(x,y)和θ(x,y);Gh(x,y)为像素点在水平方向上的梯度值,Gv(x,y)为像素点在垂直方向上的梯度值,θ(x,y)为像素点的梯度方向;像素点(x,y)的梯度强度M(x,y)和方向θ(x,y)的计算公式为:
M(x,y)≈|Gh(x,y)+Gv(x,y)|;
θ(x,y)=arctan(Gh(x,y)/Gv(x,y));
S34:提取HOG特征;将图像压缩到28*28大小,分成36个定义块,每个定义块分成4个细胞单元,再将每个细胞单元的方向分成9段,每段20°,对每一个细胞单元的梯度强度M(x,y)和方向θ(x,y)进行权重投影,在重叠定义块内的细胞单元进行对比度归一化处理,把所有的细胞单元的特征向量串行融合即可得到HOG特征向量;
将向量组成特征向量X,计算特征向量X的协方差矩阵C,对矩阵C求特征值和对应的特征向量,将特征向量对应的特征值按大小从上到下按行排列成矩阵,取前100行组成矩阵P,按下列公式获得新矩阵Y:
Y=PX;
其中,矩阵Y的维数为100维;
S35:手部特征提取;手部特征包括三个参数,分别为:n,m,L;其中n为轮廓的凸包点数,m为轮廓的凸包缺陷数;L为圆形度;
遍历轮廓每个点,通过坐标求出两个极端点A,B;连接AB,分别对上凸包和下凸包内的点求凸包,在递归中找到距离AB最远的点C,做线段AC和BC,再将AC作为极端点进行递归,依次循环,直到无法找到凸包,则最远点即为凸包顶点,轮廓的凸包点数n得出;
每相邻的两个凸包点之间包含一个凸包凹陷,在求n过程中,对凸包点进行标记,得到凸包凹陷数m=n-1;
轮廓的圆形度L由轮廓构成的面积和周长求出,分别用matalab中的bwarea()和bwperim()函数求出轮廓的面积S和周长C,圆形度的计算公式如下:
S36:HOG特征与手部特征归一化;求取HOG降维后的矩阵Y的特征向量α=[h1,h2,…,h100],并将向量α与手部特征向量β=n,m,L]进行串行融合,得到融合特征向量R=[h1,h2,…,h100,n,m,L];得到最终的手部特征。
S4:将提取的手势特征信息与存储的特征信息进行比对,若比对成功,则进行S5,否则返回S1;
骤S4所述的将提取的手势特征信息与存储的特征信息进行比对,其具体操作方式为:将步骤S3提取得到的手部特征信息与在matalab中经过训练的SVM分类器进行分类和匹配,若匹配成功,则下发相应的指令给机械臂。所述下发相应的指令包括Mreset,Mpause和Mstart;其中,Mreset控制机械臂的复位,Mpause控制机械臂的暂停,Mstart控制机械臂的启动。
S5:机械臂根据手势映射的指令,完成相应的操作。
所述的上位机和机械臂控制器设置在同一个5G CPE环境下,两者的数据传输的信息结构如下:
0 |
1 |
2 |
3 |
4 |
5 |
N |
N+6 |
N+7 |
STX |
LEN |
SEQ |
SYS |
COMP |
MSG |
PAYLOAD |
CKA |
CKB |
其中,STX用于消息识别,解析;LEN记录负载信息的长度;SEQ为消息发送序列码,用于通信可靠性检验;SYS为发送该消息***的***ID;COMP为发送该消息***组件的组件ID;MSG为标识该消息的种类;PAYLOAD为指令信息;CKA和CKB为消息校验位。
本实施例的实验环境是基于Windows10操作***下进行实验验证的,采用的是AMD26003.4GHz,16GB内存,256G固态硬盘的台式电脑,和分辨率为640*480的普通摄像头作为采集设备,使用Matalab2020a作为图像处理软件。
分别采集三种手势各586张,随机选取200张用于训练SVM模型,另外386张用于测试,共采集586*3张手势图像,其中200*3张用于测试,386*3张用于训练,分别对采集的图像进行归一化、二值化以及形态学等图像处理保存为训练集和数据集。
为了验证本次实验的鲁棒性,用训练集和测试集分别对HOG+SVM,HOG+Hu+SVM和HOG+手部多特征(本文算法)进行实验对比。对比表如下所示:
表1三种算法性能对比
本发明主要围绕静态手势以及根据手势远程遥控机械臂展开研究,针对当前手势识别存在价格昂贵,识别率低的缺点,提出了一种基于静态手势识别的机械臂远程控制方法,该方法通过相机获取图像,经手势分割、形态学处理以及轮廓提取来消除干扰信息,在手势特征提取中,先提取手势图像的HOG特征,对HOG特征进行PCA降维处理,再利用快速凸包算法计算手部多个特征,将HOG特征和手部多特征进行归一化处理后串联融合形成最终的分类特征,最后将最终分类特征通过SVM(支持向量机)进行分类识别,平均识别率达到96%,较HOG+SVM和HOG+Hu+SVM在速度上和精度上都有明显的提高。
在实验中,选取了HOG+SVM算法和HOG+Hu+SVM算法进行实验,与本文算法进行比较,得到下列结果:
HOG+SVM为采用方向梯度直方图特征(HOG)提取算法提取手势特征,采用支持向量机(SVM)作为分类器识别手势;HOG+Hu+SVM为采用采用方向梯度直方图特征(HOG)和Hu矩特征融合的方法提取收拾特征,采用支持向量机(SVM)作为分类器识别手势,其中图像Hu矩是一种具有平移、旋转和尺度不变性的图像特征,说明提取手部多特征与HOG特征融合能够一定程度上弥补单独提取HOG特征的不足,也说明基于单一特征的手势识别方法不能保证手势识别的准确性。