论文部分内容阅读
近年来,对旋翼无人机的研究十分火热,尤其在应用领域,旋翼无人机极具潜力。目前人与无人机的交互比较成熟的方式还是通过遥控器控制,这种方法通常需要控制者对无人机相关知识有一定的了解,而且需要一定量的训练才能使无人机按预想动作飞行。在保证无人机稳定飞行的情况下,如果能把对无人机的各种操作整合成为接口,使用者不需要完全理解无人机各种专业知识和术语,只需通过几个手势就能远程控制无人机飞行,这对使用者是一个很大的便利。本文主要研究在无人机平台上利用手势进行信令控制,主要工作如下: 1.手势的检测和分割部分。本文首先研究了基于肤色的检测和分割方法,对几种常见的颜色空间和肤色模型通过实验进行了比较,选择了分割效果最优的椭圆边界模型结合YCbCr颜色空间的算法,并融合肤色信息和运动信息,给出了一种最适合本文应用场景的手势分割方法。 2.特征提取和静态手势识别部分。在特征提取阶段,选择了傅里叶描述子、PCA-HOG特征、BOF-SRUF算子三种图像算子分别与手势的圆形度和Hu不变矩融合形成三个新的特征,并分别输入支持向量机(SVM)训练和试验,为每个新特征选定了最合适的维度和训练参数。在手势识别阶段,选用支持向量机作为手势识别的分类器,将前述三种融合特征输入进行训练和实验,验证了PCA-HOG融合特征在识别率、实时性和鲁棒性方面都比其他两种特征要好,并利用该特征实现了对手语1至9和两种自定义手势的稳定识别,并且对手势的旋转、平移有一定的鲁棒性。 3.指尖检测和定位部分。通过实验比较了三种常用的基于轮廓的指尖检测算法,并结合三种算法的优点形成快速鲁棒的算法。算法流程是,首先基于手势轮廓的凸包和凸缺陷提取初步候选点,再根据静态手势识别的结果选择下一步过滤杂点的方法,如果结果显示不需要进入动态手势识别,则用指尖的曲率阈值精确确定所有手势的指尖点,而如果当前静态手势是进入动态识别的起始手势,则用指尖点到掌心点的距离作为阈值来滤除候选点中的非指尖点。这种算法具有很好的稳定性和实时性,非常适合本文的无人机指令控制系统。 4.动态手势识别部分。以静态手势1为动态手势序列的起始手势,当图像中出现静态手势1时,则开始动态手势识别序列采集的相关步骤,当连续几帧检测不到静态手势1时,则开始序列采集的结束步骤。将静态手势1的指尖的坐标序列作为手势的轨迹,再将相邻坐标点指尖的方向角量化后的方向向量作为输入,利用隐马尔科夫模型(HMM)作为分类器,实现了6种自定义动态轨迹的识别。 5.人机交互部分。通过结合前面动静态手势识别的研究结果,以3种静态手势和6种动态手势定义了总共9种指令作为外部信令,并利用PX4无人机开发套件编写了地面控制脚本,在收到手势识别部分的指令后,转换为相应的MAVLink指令通过3DR数传发送给无人机,能够实现对无人机的飞行控制。 本文通过多特征融合和支持向量机实现了静态手势识别,给出了一种适合本文应用场景的指尖检测和定位算法,在这个基础上,结合隐马尔科夫模型实现了动态手势的识别。最后选取了3种静态手势与6种动态手势实现了控制无人机的9种指令,利用VC++、OpenCV和Python语言编写了相关的软件和通信程序,完成了对无人机基础飞行动作的实时准确控制。