论文部分内容阅读
目标检测是机器视觉中基础和重要的研究方向,其主要目标是为了解决机器视觉对环境自主感知过程中“是什么”和“在哪里”的问题。具体的,对于给定的一幅图像,目标检测有两个基本任务:第一,目标分类,给出图像中包含物体目标的具体类别,即“是什么”;第二,目标定位,用定位框(矩形,圆形或其他等)标出所有目标的位置,即“在哪里”。在此基础上,目标检测问题对检测精度和检测速度都有较高的要求。例如,现实生活中的辅助驾驶、智能医疗、机器人应用等,都要求目标检测的定位精度足够准确,同时运行速度需要达到实时的要求,即在一秒钟内可以完成十到二十帧左右的图像检测任务。而在移动设备上,例如手机、车载、机载等低成本设备上实现满足精度需求的实时目标检测,则意义更加重大。目标检测算法对图像特征要求较高,当前图像特征提取方法主要分为基于传统特征提取和基于深度学习卷积神经网络进行特征提取两大类。传统特征基于指定规则设计,可解释性强,运算速度快,但是特征描述性弱,检测精度低;深度学习卷积神经网络不需要人工设计特征规则即可提供丰富的特征信息,且特征描述性强,检测精度高,但网络的参数量大,运行速度慢。基于深度学习的目标检测算法难以应用到较差的硬件设备中,例如低成本的移动设备。本文为了提高目标检测算法的可用性,将分别从定位精度和运行速度两个方面对基于深度学习的目标检测方法进行优化。在提高精度方面,当前主要基于深度学习的目标检测定位精度优化算法是通过加深或者加宽网络层次实现的。更加复杂的网络在带来精度提升的同时,会造成速度的大幅度下降。对此,本文提出了一种面向边线的后处理优化算法BOPP(Border-Oriented Post-Processing),将目标检测定位框四条边线的定位精度分别进行优化,从而达到优化整体定位框的目的。BOPP使用HOG特征和随机森林作为算法的基础,其特征和回归器都具有较强的可解释性,速度相对较快。同时其可被用于优化大多数现有主流目标检测算法,可扩展性较强。实验表明,BOPP在KITTI数据集上可以将YOLO和Faster R-CNN算法的mAP在IoU阈值为0.8的情况下提高近8%,同时,在CPU上运行优化一个检测框的速度为9毫秒左右。快速高效的优化效果和良好的扩展性使得BOPP非常适合于YOLO等速度快精度差的算法的优化。在速度优化方面,谷歌提出的MobileNet中的深度方向可分离(depthwise separable)技术已经极大的减少了神经网络的运算量,但是仍旧无法满足低端设备实时性的需求。本文通过将移动端图像处理网络MobileNet和目标检测算法YOLO相结合,提出基于深度学习的轻量级目标检测算法Mobile-YOLO。本文将YOLO的骨干网络结构替换为depthwise separable卷积,并进行了网络压缩处理,重新设计了新的网络结构。实验结果表明,在同等配置的CPU上,Mobile-YOLO实现了超过5倍的速度提升。为了弥补因为参数压缩带来的精度损失,我们将二分类引入到了Mobile-YOLO的目标分类当中,减少了错分数量,提高了目标检测的精度,使得Mobile-YOLO在速度提升的同时较原始YOLO模型没有带来过多的精度损失。同时,在牺牲部分精度的前提下,通过继续裁剪Mobile-YOLO的网络层次,本文得到了一个更快的模型Fast-Mobile-YOLO,其在E5 CPU上的运行速度达到了23fps(帧每秒),真正实现了CPU端的实时运行。