论文部分内容阅读
车内手势控制系统作为一种新的车内人机交互方式,在市场上受到越来越多的关注。在驾驶过程中,使用传统按钮或者触屏来操作中控设备会分散驾驶者的注意力,增加危险系数。而使用手势来控制,驾驶者可以不需要用眼睛看按钮或者触屏,从而获得更自然的人机交互体验。目前已经量产上市的车载手势系统采用了深度摄像头,配有一块专用芯片来计算图像算法。此方案的劣势在于深度摄像头的成本非常高,而且需要再加上一块专用芯片的成本,所以只能应用在百万级别的豪华车型上。主流的中低端市场对手势识别功能同样有强烈的需求。如果可以使用廉价的,不带景深的摄像头,在每辆汽车都有的中控设备上运行算法,那么就可以大大降低方案整体成本。廉价的摄像头比较容易找到,问题是主流市场上不同中控设备的芯片计算能力差别很大,拥有更强计算能力的芯片可以使用更复杂的算法,来取得更丰富的功能和更好的识别结果。而计算能力最弱的设备也需要简单的算法来实现一些基本的功能。所以根据计算能力的不同,需要有不同的算法方案来适配这些设备。本文重点是研究适合这些嵌入式设备的手势识别算法。综合成本和不同芯片平台计算能力的限制,本文选用了一款低成本的红外摄像头。尝试了基于轮廓的算法,机器学习算法和深度学习的算法,找出了最适合CPU平台和GPU平台的算法。第一种尝试是完全基于传统形态学算法的方案。本文扩展了对旋转手势的支持。此方案对计算量要求最小,可以输出基于手掌位置和手指个数的简单手势信息。算法会有背景抑制方面的一些困扰,最终通过调整的红外LED的发射功率取得了相对较好的图像分割效果。针对深度神经网络计算量太大的问题,本文提出了第二种结合LBP检测器和CNN分类网络的手势检测方法,相比之前的一些算法[1]有更好的检测效果。此方法先基于LBP特征训练一个级联分类器,用来提取手的位置,再训练一个小的分类网络来识别手型,用扫描框的方法得到手的位置后,把手的候选框传入分类网络,得到具体的手型信息。由于系统仅需要支持单手操作,所以在得到多个候选框的情况下,本文采用了一些算法来排序候选框的优先级,然后根据优先级的高低来运行分类网络。这样不但加速了整体速度,而且保证每帧图片上分类网络的执行次数可控,保证了实时性能。级联分类器和低分辨率的小型分类网络,相比深度神经网络来说计算量少了很多,在没有GPU加速的系统中,也可以达到实时的处理速度。第三种方法创新应用了最新的实时物体检测网络YOLOv2来同时识别手势的类型和位置。本文试验了不同的参数,在精确度和速度之间作出平衡。在有GPU加速的平台上,这种方法的准确度远远超过了前两种算法,YOLOv2的背景抑制能力很强,很少有误检测的情况发生。这种方法对平台计算能力的要求最高,在计算能力允许的情况下,可以获得最佳的效果。