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