(華北電力大學 北京 102200)
現(xiàn)如今目標檢測算法主要可以分為基于傳統(tǒng)特征的目標檢測算法和基于深度學習的算法:
(一)基于傳統(tǒng)特征的目標檢測算法
基于傳統(tǒng)特征的目標檢測算法中最具代表性就是DPM(Deformable Parts Model)[1]算法,是一種基于部件的檢測算,能夠較強地適應目標的變形。它已經(jīng)被廣泛用于分割,分類,姿態(tài)估計等算法中。它采用了傳統(tǒng)的滑動窗口檢測方式,并構建尺度金字塔再各個尺度搜索。在特征提取方面,它改進了HOG特征,取消了原HOG特征中的塊,只保留單元。在分類方面,則采用了當時最主流的SVM算法。
(二)基于深度學習的目標檢測算法
兩步走算法。最早的兩步走算法是R-CNN[2],它利用選擇性搜索[3]提取候選框,再將候選框內的圖片輸入到卷積神經(jīng)網(wǎng)絡進行特征提取,然后利用支持向量機(SVM)對提取后的特征進行分類,最后利用邊界回歸(bounding-box-regression)得到精確的目標區(qū)域。盡管RCNN取得很高的精確度,但是遠沒有達到實時的效果。后面的Fast R-CNN[4]提出了ROIc池化層來減少模型冗余的計算量,并提高了模型的精確度。Faster R-CNN[5]提出了RPN層來取代選擇搜索算法,大大提高了模型的速度和精度。雖然R-CNN系列提高了一定的速度,但是在GPU上也沒有達到實時的效果,更不用說在CPU上。
一步走算法。最先進的一步走目標檢測算法之一是YOLO[6],它只需要在網(wǎng)絡上運算一次,便可以直接預測出不同目標的類別和位置。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設備的速度得到了提升,但是速度還是停留在個位數(shù)的FPS。
YOLO-LITE[9]是最近提出的一種能在CPU上實現(xiàn)實時目標檢測的算法,它在Dell XPS 13筆記本的應用上能達到21FPS的速度,基本上達到了實時的要求,但是它在PASCAL VOC2007和COCO2014測試集上的精確度卻只有34.01%mAP和12.26%mAP,這相對于那些最先進的算法差了很多。另一方面,它在我們i5-7300HQ處理器上的速度只有15FPS,這說明它只能在高性能的CPU上才能進行實時識別。
上述模型在PASCAL VOC2007和2012的聯(lián)合數(shù)據(jù)集上進行訓練,并在PASCAL VOC2007測試集進行測試,推理速度是在i5的cpu上測試的。具體結果如表1所示。
表1 各個模型的表現(xiàn)結果
本文對當今主流的目標檢測進行了研究分析,認為當前主流的目標檢測模型都不能搭載在無人機上進行實時目標識別。而具有一定速度的YOLO LITE在精確度上遠遠低于主流模型。如何在保證速度的情況下,提高模型的精確度,并在速度和精確度之間做一個權衡是很重要的。