(华北电力大学 北京 102200)
现如今目标检测算法主要可以分为基于传统特征的目标检测算法和基于深度学习的算法:
(一)基于传统特征的目标检测算法
基于传统特征的目标检测算法中最具代表性就是DPM(Deformable Parts Model)[1]算法,是一种基于部件的检测算,能够较强地适应目标的变形。它已经被广泛用于分割,分类,姿态估计等算法中。它采用了传统的滑动窗口检测方式,并构建尺度金字塔再各个尺度搜索。在特征提取方面,它改进了HOG特征,取消了原HOG特征中的块,只保留单元。在分类方面,则采用了当时最主流的SVM算法。
(二)基于深度学习的目标检测算法
两步走算法。最早的两步走算法是R-CNN[2],它利用选择性搜索[3]提取候选框,再将候选框内的图片输入到卷积神经网络进行特征提取,然后利用支持向量机(SVM)对提取后的特征进行分类,最后利用边界回归(bounding-box-regression)得到精确的目标区域。尽管RCNN取得很高的精确度,但是远没有达到实时的效果。后面的Fast R-CNN[4]提出了ROIc池化层来减少模型冗余的计算量,并提高了模型的精确度。Faster R-CNN[5]提出了RPN层来取代选择搜索算法,大大提高了模型的速度和精度。虽然R-CNN系列提高了一定的速度,但是在GPU上也没有达到实时的效果,更不用说在CPU上。
一步走算法。最先进的一步走目标检测算法之一是YOLO[6],它只需要在网络上运算一次,便可以直接预测出不同目标的类别和位置。YOLO可以在Nvidia Titan X GPU上达到45FPS,它的微型结构Tiny-YOLO可以达到大于200FPS的速度。SSD[7]是另一个最先进目标检测算法,它独特地采用多尺度的特征图,使精确度和速度都得到了极大地提高,在Nvidia Titan X GPU速度可以达到59FPS。虽然这些模型都在GPU上达到了实时的效果,但是在不具备GPU设备却是远没有达到实时的要求。随着MobileNet[8]算法的提出,它新颖地提出把标准卷积分解成深度卷积(depthwise convolution)和逐点卷积(pointwise convolution),并结合SSD算法,让目标检测模型在CPU设备的速度得到了提升,但是速度还是停留在个位数的FPS。
YOLO-LITE[9]是最近提出的一种能在CPU上实现实时目标检测的算法,它在Dell XPS 13笔记本的应用上能达到21FPS的速度,基本上达到了实时的要求,但是它在PASCAL VOC2007和COCO2014测试集上的精确度却只有34.01%mAP和12.26%mAP,这相对于那些最先进的算法差了很多。另一方面,它在我们i5-7300HQ处理器上的速度只有15FPS,这说明它只能在高性能的CPU上才能进行实时识别。
上述模型在PASCAL VOC2007和2012的联合数据集上进行训练,并在PASCAL VOC2007测试集进行测试,推理速度是在i5的cpu上测试的。具体结果如表1所示。
表1 各个模型的表现结果
本文对当今主流的目标检测进行了研究分析,认为当前主流的目标检测模型都不能搭载在无人机上进行实时目标识别。而具有一定速度的YOLO LITE在精确度上远远低于主流模型。如何在保证速度的情况下,提高模型的精确度,并在速度和精确度之间做一个权衡是很重要的。