曾文炳 李軍
(重慶交通大學(xué),重慶 400074)
目標(biāo)檢測(cè)是計(jì)算機(jī)視覺的重要分支,主要用于識(shí)別和分析圖像中的目標(biāo),即其應(yīng)用方向分為一般目標(biāo)檢測(cè)和檢測(cè)應(yīng)用兩類:一般目標(biāo)檢測(cè)以類人的角度參與認(rèn)知,即模擬人類進(jìn)行檢測(cè)與分類,重在探索不同類型對(duì)象的檢測(cè)方法;檢測(cè)應(yīng)用具有更為清晰的場(chǎng)景設(shè)定,如針對(duì)人員密集場(chǎng)所的人臉識(shí)別,或針對(duì)文件處理的文本檢測(cè)等。近年來,隨著卷積神經(jīng)網(wǎng)絡(luò)(Convolution Neural Network,CNN)等深度學(xué)習(xí)技術(shù)的廣泛應(yīng)用,目標(biāo)檢測(cè)技術(shù)突破傳統(tǒng)檢測(cè)器的技術(shù)瓶頸,由復(fù)雜向簡(jiǎn)單化、快速準(zhǔn)確的方向發(fā)展[1]。
在兩階段(Two-Stage)目標(biāo)檢測(cè)算法方面,更快速區(qū)域卷積神經(jīng)網(wǎng)絡(luò)(Faster Region-based Convolutional Neural Network,F(xiàn)aster R-CNN)和掩膜區(qū)域卷積神經(jīng)網(wǎng)絡(luò)(Mask Region-based Convolutional Neural Network,Mask R-CNN)等算法是最先進(jìn)的方法之一。這些算法在準(zhǔn)確率方面表現(xiàn)出色,但相對(duì)于單階段算法,檢測(cè)速度較慢。在單階段(One-Stage)目標(biāo)檢測(cè)算法方面,YOLO(You Only Look Once)系列算法和單步多框目標(biāo)檢測(cè)(Single Shot multibox Detector,SSD)算法已成為最先進(jìn)的算法之一。這些算法在速度和準(zhǔn)確率方面均有很好的表現(xiàn),且已經(jīng)得到了廣泛應(yīng)用。
在深度學(xué)習(xí)算法大規(guī)模應(yīng)用的背景下,目標(biāo)檢測(cè)算法已廣泛應(yīng)用于安檢防控、自動(dòng)駕駛以及衛(wèi)星遙感等領(lǐng)域。各領(lǐng)域不同的檢測(cè)需求催生了各種檢測(cè)算法,依據(jù)檢測(cè)過程有無區(qū)域建議,可分為兩階段檢測(cè)器和單階段檢測(cè)器。兩階段檢測(cè)器有區(qū)域建議過程,對(duì)檢測(cè)對(duì)象的位置信息和邊界信息有更為清晰的認(rèn)知,導(dǎo)致檢測(cè)精度普遍高于單階段檢測(cè)器;單階段檢測(cè)器檢測(cè)過程更為簡(jiǎn)潔,故檢測(cè)速度是其優(yōu)勢(shì)所在。
目標(biāo)檢測(cè)算法中,從傳統(tǒng)檢測(cè)器到目前的多數(shù)檢測(cè)算法均以有監(jiān)督算法為主,數(shù)據(jù)集也隨之發(fā)展,并完善了整套評(píng)價(jià)指標(biāo)。
數(shù)據(jù)集作為有監(jiān)督算法的“學(xué)習(xí)課本”,對(duì)目標(biāo)檢測(cè)算法的訓(xùn)練至關(guān)重要。數(shù)據(jù)集的質(zhì)量體現(xiàn)在標(biāo)注的準(zhǔn)確性,以及針對(duì)算法應(yīng)用時(shí)類的豐富性或同類不同形態(tài)的整理完整性。數(shù)據(jù)集不僅限定了不同算法比較時(shí)有相同的初始訓(xùn)練標(biāo)準(zhǔn),高質(zhì)量數(shù)據(jù)集更在深度學(xué)習(xí)的背景下,對(duì)算法模型具有良好指引效果。同一算法采用不同數(shù)據(jù)集訓(xùn)練后會(huì)擁有不同的性能表現(xiàn),這促使數(shù)據(jù)集隨目標(biāo)檢測(cè)算法的進(jìn)步而迅速發(fā)展。目前常用數(shù)據(jù)集主要有PASCAL VOC[2]和COCO數(shù)據(jù)集[3]。
PASCAL VOC 數(shù)據(jù)集發(fā)源于PASCAL VOC 挑戰(zhàn)賽,主要包括圖像分類(Object Classification)、目標(biāo)檢測(cè)(Object Detection)、目標(biāo)分割(Object Segmentation)和行為識(shí)別(Action Classification)幾類數(shù)據(jù),發(fā)展到VOC 2007 版本時(shí),已經(jīng)擁有20 個(gè)類別的數(shù)據(jù)[4]。各類圖片由官方提供明確的標(biāo)注,同時(shí),為了更好地發(fā)揮目標(biāo)檢測(cè)算法的性能,研究人員通常會(huì)綜合多個(gè)版本的檢測(cè)數(shù)據(jù)集,利用組合數(shù)據(jù)集完成目標(biāo)檢測(cè)算法的訓(xùn)練和測(cè)試。常見的訓(xùn)練與測(cè)試數(shù)據(jù)集組合如圖1所示。

圖1 常見的訓(xùn)練與測(cè)試數(shù)據(jù)集組合
COCO 數(shù)據(jù)集由微軟于2014 年建立,其中的圖像取自復(fù)雜的日常場(chǎng)景,其內(nèi)容更豐富,圖片類別達(dá)91 類,圖片數(shù)量多達(dá)32.8 萬張,其中帶有250 萬個(gè)內(nèi)容標(biāo)注。與PASCAL VOC 數(shù)據(jù)集相比,能訓(xùn)練出可識(shí)別更復(fù)雜場(chǎng)景的目標(biāo)檢測(cè)器,同時(shí),針對(duì)更小的目標(biāo)識(shí)別具有更深的理解。
傳統(tǒng)檢測(cè)器在行人檢測(cè)的應(yīng)用研究中[5],以每個(gè)窗口的漏檢率與誤報(bào)率(False Positive Per Window,F(xiàn)PPW)作為檢測(cè)器性能的度量標(biāo)準(zhǔn)。卷積神經(jīng)網(wǎng)絡(luò)的應(yīng)用和檢測(cè)器檢測(cè)方法改變后[6],以平均檢測(cè)精度(Average Precision,AP)作為同類檢測(cè)準(zhǔn)確性的評(píng)價(jià)指標(biāo),以類平均檢測(cè)精度(mean Average Precision,mAP)作為不同類別間的平均AP,以表現(xiàn)目標(biāo)檢測(cè)算法檢測(cè)精度的綜合性能,并引入交并比(Intersection over Union,IoU)來描述目標(biāo)檢測(cè)算法的定位準(zhǔn)確性。通過IoU 閾值的設(shè)定判斷對(duì)象是否成功定位,例如,IoU 大于0.5 時(shí)判定為定位準(zhǔn)確,IoU 為1 時(shí)判定為預(yù)測(cè)對(duì)象位置完全正確。同時(shí),以單位時(shí)間檢測(cè)圖像的數(shù)量表征目標(biāo)檢測(cè)的速度。
針對(duì)不同應(yīng)用場(chǎng)景,評(píng)價(jià)指標(biāo)可能各有側(cè)重,表1所示為目標(biāo)檢測(cè)任務(wù)中常用的評(píng)價(jià)指標(biāo)。

表1 目標(biāo)檢測(cè)常用的評(píng)價(jià)指標(biāo)
目標(biāo)檢測(cè)算法因卷積神經(jīng)網(wǎng)絡(luò)的加入而注入活力,兩階段和單階段的檢測(cè)算法分別代表了研究人員在檢測(cè)精度和檢測(cè)速度方面做出的努力。圖2所示為目標(biāo)檢測(cè)算法的發(fā)展及分類。

圖2 目標(biāo)檢測(cè)算法的發(fā)展及分類
傳統(tǒng)檢測(cè)器通過人為設(shè)置檢測(cè)對(duì)象的特征,在對(duì)象檢測(cè)的初始階段即存在一定的復(fù)雜性,并由于圖像特征缺乏有效表達(dá),特征的設(shè)計(jì)隨描述對(duì)象的增多而愈加復(fù)雜,采用各種加速技巧仍未能遏制查找復(fù)雜特征對(duì)計(jì)算資源的消耗。同時(shí),滑動(dòng)窗口的檢測(cè)機(jī)制雖然保證了一定的檢測(cè)精度,但是巨量的檢測(cè)滑框進(jìn)一步提高了對(duì)計(jì)算能力的要求。
從Viola Jones 檢測(cè)器[7]的“整體圖像”“特征選擇”“檢測(cè)級(jí)聯(lián)”三大技術(shù)的有機(jī)融合,到定向梯度直方圖(Histogram of Oriented Gradient,HOG)[8]利用重疊的局部對(duì)比度歸一化,以及可變形組件模型(Deformable Part Model,DPM)檢測(cè)器[9]“分而治之”的檢測(cè)原則,分別表征了傳統(tǒng)檢測(cè)器在檢測(cè)速度、檢測(cè)輸入圖像尺寸多元化和檢測(cè)精度,以及特征提取難度上做出的努力,并為之后的目標(biāo)檢測(cè)算法打下了堅(jiān)實(shí)的基礎(chǔ)。
兩階段算法首先根據(jù)輸入的圖像生成候選框(Region Proposals),候選框的生成方法可分為選擇性搜索和基于錨框的方法。選擇性搜索首先對(duì)圖像進(jìn)行分割,得到一些小的區(qū)域,然后通過合并相鄰的區(qū)域,得到一些更大的候選框,最后對(duì)這些候選框進(jìn)行篩選,保留與目標(biāo)物體較為相似的候選框?;阱^框的方法先在圖像上生成一些固定大小和寬高比的錨框,然后通過卷積神經(jīng)網(wǎng)絡(luò)對(duì)每個(gè)錨框進(jìn)行分類和回歸,得到每個(gè)錨框的置信度和位置偏移量,最后根據(jù)置信度對(duì)錨框進(jìn)行篩選,保留置信度較高的候選框。兩種方法使用不同的邏輯生成區(qū)域建議,而后根據(jù)建議區(qū)域進(jìn)行檢測(cè)分類,如圖3 所示。因此,有兩個(gè)步驟對(duì)輸入圖像進(jìn)行處理,其余步驟能夠提高目標(biāo)定位的準(zhǔn)確性,進(jìn)而提高檢測(cè)精度,但是其檢測(cè)過程的復(fù)雜性導(dǎo)致該類算法檢測(cè)速度受到影響。

圖3 兩階段算法結(jié)構(gòu)表征
3.2.1 區(qū)域卷積神經(jīng)網(wǎng)絡(luò)
區(qū) 域 卷 積 神 經(jīng) 網(wǎng) 絡(luò)(Region-based Convolutional Neural Network,R-CNN)[10]是第一個(gè)引入感興趣區(qū)域(Region Of Interest,ROI)的目標(biāo)檢測(cè)算法,是機(jī)器學(xué)習(xí)時(shí)代里程碑式的檢測(cè)算法之一。R-CNN 采用選擇性搜索(Selective Search,SS)算法生成候選框,如圖4 所示。通過對(duì)候選框進(jìn)行圖像裁剪和尺寸縮放獲得固定大小的圖像塊,并對(duì)圖像塊進(jìn)行卷積神經(jīng)網(wǎng)絡(luò)的特征提取和分類,得到每個(gè)圖像塊的置信度和位置偏移量,對(duì)置信度較高的圖像塊進(jìn)行非極大值抑制,得到最終的檢測(cè)結(jié)果。

圖4 R-CNN算法流程
OverFeat 模型[11]同樣采用卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行特征提取和分類,卻與傳統(tǒng)檢測(cè)器一樣通過滑動(dòng)窗口的方式獲得系列候選框,再進(jìn)行分類和回歸。
相較于滑動(dòng)窗口所采取的窮舉式檢測(cè)方式,候選區(qū)域的引入大幅降低了計(jì)算消耗,并解決了固定窗口造成的檢測(cè)不準(zhǔn)確的情況,使檢測(cè)速度得以突破,且在卷積神經(jīng)網(wǎng)絡(luò)的加持下,檢測(cè)精度得以大幅提高。但是作為R-CNN的特色建議框,其大量重復(fù)成為制約檢測(cè)算法進(jìn)步的主要因素,特征的冗余計(jì)算嚴(yán)重影響了檢測(cè)速度。這一問題在之后的金字塔池化網(wǎng)絡(luò)(Spatial Pyramid Pooling Networks,SPPNet)中得以解決。
3.2.2 金字塔池化網(wǎng)絡(luò)
SPPNet[12]用于改進(jìn)R-CNN 因?qū)D像進(jìn)行2 000 個(gè)大小不一的候選區(qū)域分割而造成的區(qū)域特征提取進(jìn)程緩慢問題。首先,SPPNet 直接對(duì)圖像進(jìn)行不考慮候選區(qū)域的卷積操作,得到一次卷積的特征圖,而后將2 000 個(gè)候選區(qū)域在特征圖上實(shí)現(xiàn)映射。相較于R-CNN 對(duì)候選區(qū)域的逐一卷積提取特征,SPPNet 從卷積次數(shù)上實(shí)現(xiàn)了檢測(cè)速度的優(yōu)化。圖5 所示為R-CNN 和SPPNet 的網(wǎng)絡(luò)結(jié)構(gòu)對(duì)比。

圖5 R-CNN與SPPNet網(wǎng)絡(luò)結(jié)構(gòu)比較
其次,算法增加了金字塔池化(Spatail Pyramid Pooling,SPP)層,SPP層能將特征圖轉(zhuǎn)化為固定尺寸的特征向量,其將每個(gè)候選區(qū)域分成4×4、2×2、1×1大小的3 個(gè)子圖,針對(duì)子圖各區(qū)域進(jìn)行最大池化處理,而后進(jìn)行支持向量機(jī)(Support Vector Machine,SVM)分類操作,進(jìn)一步優(yōu)化檢測(cè)速度,使其檢測(cè)速度高于R-CNN算法檢測(cè)速度20倍以上。
3.2.3 快速區(qū)域卷積神經(jīng)網(wǎng)絡(luò)
快速區(qū)域卷積神經(jīng)網(wǎng)絡(luò)(Fast Region-based Convolutional Neural Network,F(xiàn)ast R-CNN)[13]作為R-CNN 的升級(jí)版本,是R.Girshick在2015年提出的綜合R-CNN和SPPNet而改進(jìn)的檢測(cè)算法。首先,該算法沿用SPPNet的一次卷積操作,避免特征提取的冗余操作;其次,摒棄之前的SVM分類器改用歸一化指數(shù)(Softmax)函數(shù)進(jìn)行分類處理,并在網(wǎng)絡(luò)末端并行不同連接層,實(shí)現(xiàn)在不提供額外特征存儲(chǔ)空間的同時(shí)進(jìn)行端到端(End-to-End)的多任務(wù)訓(xùn)練,以及分類結(jié)果和定位框的回歸反饋;最后,作者設(shè)計(jì)感興趣區(qū)域池化(Region Of Interest Pooling,ROI Pooling)板塊,使得在特征圖上不同尺寸的候選框在進(jìn)入全連接層分類、回歸之前池化為固定尺寸。圖6所示為Fast R-CNN算法網(wǎng)絡(luò)模型。該檢測(cè)算法實(shí)現(xiàn)了檢測(cè)精度不變的前提下,以超過200 倍的檢測(cè)速度優(yōu)于R-CNN算法。

圖6 Fast R-CNN算法網(wǎng)絡(luò)模型
值得注意的是,R-CNN 和Fast R-CNN 都具有任意尺寸圖像輸入的功能。但是從尺寸修改的時(shí)機(jī)和對(duì)象來看,R-CNN 在網(wǎng)絡(luò)初始就對(duì)“圖像”進(jìn)行尺寸的重定義,而Fast R-CNN 在感興趣區(qū)域池化時(shí)對(duì)“特征圖”進(jìn)行尺寸修改。
3.2.4 Faster R-CNN
Faster R-CNN[14]解決了該系列算法一系列檢測(cè)步驟上的問題,提出的區(qū)域建議網(wǎng)絡(luò)(Regional Proposal Network,RPN)[15]取代了選擇性搜索算法,解決了兩階段檢測(cè)器不能實(shí)現(xiàn)端到端完成任務(wù)的問題,同時(shí),區(qū)域建議算法相較于傳統(tǒng)檢測(cè)器性能有所提升。區(qū)域建議一直是深度學(xué)習(xí)算法性能受限的原因之一,直到Faster R-CNN 解決了這一問題,實(shí)現(xiàn)了檢測(cè)速度的大幅提升。
Faster R-CNN 通過RPN 將區(qū)域建議簡(jiǎn)化為二分類的過程,如圖7 所示:首先,生成不同尺寸的錨框[16]隨滑動(dòng)窗口移動(dòng);然后,依據(jù)設(shè)定的閾值對(duì)錨框是否含物體進(jìn)行正負(fù)的標(biāo)定;最后,由RPN 整理后的二分類標(biāo)簽即為錨框所在坐標(biāo)以及物體類概率的數(shù)據(jù)。端到端的訓(xùn)練顯著提高了區(qū)域建議的質(zhì)量,取代了之前廣泛應(yīng)用的區(qū)域建議而后進(jìn)行逐一的完整檢測(cè),大幅提高了檢測(cè)速度,實(shí)現(xiàn)了近乎零代價(jià)的區(qū)域建議。Faster R-CNN 是一個(gè)將RPN 和Fast R-CNN有機(jī)融合的整體。

圖7 Faster R-CNN 算法網(wǎng)絡(luò)結(jié)構(gòu)
Faster R-CNN 重點(diǎn)解決了前代算法檢測(cè)過程復(fù)雜的問題,突破了檢測(cè)速度的瓶頸,使實(shí)時(shí)檢測(cè)在兩階段檢測(cè)器上成為可能。但是由于RPN和ROI池化層缺少適應(yīng)性的調(diào)整,基于錨框的區(qū)域建議在ROI 池化層喪失了平移不變性,致使定位精度受到影響,以及錨框的尺度及大小固定,導(dǎo)致不在錨框范圍內(nèi)的物體檢測(cè)失真,因而該檢測(cè)算法不適用于所有目標(biāo)的檢測(cè),尤其對(duì)小目標(biāo)的檢測(cè)性能缺失明顯。
3.2.5 兩階段檢測(cè)器總結(jié)
兩階段檢測(cè)算法的流程中,第一階段是確定檢測(cè)候選區(qū)域,第二階段對(duì)建議區(qū)域目標(biāo)進(jìn)行分類和回歸定位。事實(shí)上,諸多檢測(cè)算法也是圍繞這兩個(gè)階段進(jìn)行改進(jìn)優(yōu)化實(shí)現(xiàn)檢測(cè)算法的性能升級(jí)。如RPN 帶來的高效區(qū)域建議獲取效果,也有針對(duì)特征的高效利用算法,如采用級(jí)聯(lián)架構(gòu)的Cascade RCNN[17-18]和使用特征金字塔[19]的Libra R-CNN[20],都為特征的高效利用提供了可能。但是這些改進(jìn)沒有從本質(zhì)上解決問題,反而通過增加模塊的方法優(yōu)化檢測(cè)過程中的某一步驟,進(jìn)一步增加了整個(gè)算法的復(fù)雜程度,使得網(wǎng)絡(luò)在一定程度上捉襟見肘。各種優(yōu)化均無法兼顧檢測(cè)精度和檢測(cè)速度,即便同時(shí)實(shí)現(xiàn)了檢測(cè)精度和檢測(cè)速度的提升,也將面臨訓(xùn)練難度的提高。所以研究人員將目光轉(zhuǎn)移到單階段檢測(cè)算法的研究中。
單階段檢測(cè)算法通過簡(jiǎn)單的一次網(wǎng)絡(luò)處理即可成功輸出檢測(cè)分類和預(yù)測(cè)框的邊界,如圖8所示。因此該類檢測(cè)算法具備良好的檢測(cè)速度,適合移動(dòng)端使用,同時(shí)為算法模塊的添加保留了足夠的結(jié)構(gòu)空間,用以實(shí)現(xiàn)檢測(cè)應(yīng)用的各種需求。

圖8 單階段結(jié)構(gòu)表征
3.3.1 YOLOv1
一改兩階段算法“先選后測(cè)”的思路,2015 年,R.Joseph等[21]帶著“回歸問題”的思路,提出了YOLO系列的初代算法。YOLO 采用圖像均勻分割的思路,對(duì)輸入圖像進(jìn)行7×7的切割,針對(duì)每一個(gè)切割網(wǎng)格確定其中心落點(diǎn),并對(duì)區(qū)域內(nèi)目標(biāo)進(jìn)行檢測(cè)。區(qū)別于RPN 在高效解決區(qū)域建議效率低下問題的同時(shí)提高了網(wǎng)絡(luò)訓(xùn)練成本,YOLO 算法在圖像切割中相當(dāng)于生成了49個(gè)檢測(cè)區(qū)域,數(shù)量少、檢測(cè)效率高,固定的切割方式也不會(huì)導(dǎo)致網(wǎng)絡(luò)訓(xùn)練成本的提高。
圖9 所示為YOLOv1 網(wǎng)絡(luò)框架:從輸入的圖像(尺寸為448×448×3)開始,分割出的網(wǎng)格由中間不同深度的卷積層和最大池化層處理,提取圖像抽象特征;而后,由2個(gè)全連接層完成目標(biāo)位置預(yù)測(cè)和分類概率計(jì)算;最后,輸出尺寸為7×7×30的預(yù)測(cè)結(jié)果。YOLOv1 憑借簡(jiǎn)單的結(jié)構(gòu)以及端到端的圖像處理方式,使檢測(cè)速度滿足實(shí)時(shí)檢測(cè)需求,達(dá)到了同期最快的45 幀/s,且YOLO 快速版本擁有150 幀/s 的圖像處理速度。
但是YOLO 算法檢測(cè)目標(biāo)的普適性有待提高,每個(gè)網(wǎng)格只能識(shí)別一個(gè)類別,粗放的定位落點(diǎn)對(duì)損失函數(shù)的影響較大,都決定了該算法針對(duì)小目標(biāo)檢測(cè)效果較差,同時(shí)對(duì)非常規(guī)目標(biāo)泛化能力弱。
3.3.2 單步多框目標(biāo)檢測(cè)
由Liu等提出的SSD[22]是一種基于多基準(zhǔn)和多分辨率的探測(cè)方法。與YOLO檢測(cè)器不同,SSD在卷積階段即進(jìn)行檢測(cè),其結(jié)構(gòu)如圖10所示,SSD的卷積引入了多尺度的卷積操作,對(duì)不同尺度的目標(biāo)可進(jìn)行不同尺度的預(yù)測(cè),很好地解決了目標(biāo)尺寸造成的檢測(cè)結(jié)果不理想問題。針對(duì)小目標(biāo),使用淺層的特征圖解析以保留更多細(xì)節(jié),針對(duì)大目標(biāo),使用深層特征圖解析以深挖語義。但該操作也存在局限性:不同尺度特征檢測(cè)重復(fù),提高了檢測(cè)計(jì)算難度;針對(duì)小尺寸目標(biāo),雖然淺層特征圖卷積能保留更多細(xì)節(jié),但淺層檢測(cè)喪失了目標(biāo)的語義信息,對(duì)小目標(biāo)的檢測(cè)優(yōu)化效果不佳。

圖10 SSD網(wǎng)絡(luò)結(jié)構(gòu)
3.3.3 YOLO系列算法總結(jié)
YOLO 作為單階段檢測(cè)算法的代表,檢測(cè)速度大幅提高,同時(shí)算法的網(wǎng)絡(luò)結(jié)構(gòu)簡(jiǎn)單,使其迭代升級(jí)成為可能,截至2022年底,YOLO系列算法已經(jīng)從YOLOv1升級(jí)到Y(jié)OLOv7。表2所示為YOLO 系列算法的迭代升級(jí)過程,對(duì)檢測(cè)算法的研究逐漸向網(wǎng)絡(luò)架構(gòu)、特征集成方法、檢測(cè)方法、優(yōu)化損失函數(shù)、標(biāo)簽分配方法以及高效的訓(xùn)練方法調(diào)整。

表2 YOLO系列算法整理
基于前文的分析可知,目標(biāo)檢測(cè)網(wǎng)絡(luò)結(jié)構(gòu)決定了檢測(cè)算法的初始優(yōu)勢(shì),如兩階段檢測(cè)算法具有定位準(zhǔn)確、檢測(cè)精度高的特點(diǎn),單階段檢測(cè)算法檢測(cè)速度更快。然而,根據(jù)統(tǒng)一的評(píng)價(jià)指標(biāo),兩種類型的檢測(cè)算法都在彌補(bǔ)結(jié)構(gòu)上的不足,向著更高精度和更快檢測(cè)速度的目標(biāo)改進(jìn)。表3總結(jié)了基于深度學(xué)習(xí)的經(jīng)典檢測(cè)算法在統(tǒng)一的評(píng)價(jià)指標(biāo)下的性能表現(xiàn)。

表3 基于深度學(xué)習(xí)經(jīng)典檢測(cè)算法性能對(duì)比
本文簡(jiǎn)要介紹了傳統(tǒng)檢測(cè)器發(fā)展中遇到的問題,分析了基于卷積神經(jīng)網(wǎng)絡(luò)的目標(biāo)檢測(cè)算法的發(fā)展歷程,根據(jù)檢測(cè)算法分類綜述了具有代表意義的檢測(cè)器,包括R-CNN 系列算法、YOLO 系列算法和SSD 算法等。在目標(biāo)檢測(cè)算法發(fā)展過程中,通過模型結(jié)構(gòu)改進(jìn)(如增加卷積層、改變激活函數(shù)等)提高了模型的準(zhǔn)確率和速度,通過數(shù)據(jù)增強(qiáng)(如旋轉(zhuǎn)、翻轉(zhuǎn)、裁剪等)[30]增加了數(shù)據(jù)樣本的多樣性并提高了模型的泛化能力,利用損失函數(shù)改進(jìn)(如使用聚焦損失(Focal Loss)[31]等)提高了模型對(duì)難樣本的處理能力,通過將多個(gè)目標(biāo)檢測(cè)器進(jìn)行融合提高了目標(biāo)檢測(cè)的準(zhǔn)確率和魯棒性,通過對(duì)GPU、現(xiàn)場(chǎng)可編程門陣列(Field Programmable Gate Array,F(xiàn)PGA)等硬件進(jìn)行優(yōu)化提高了目標(biāo)檢測(cè)算法的速度和效率。在目標(biāo)檢測(cè)算法研究中,如何針對(duì)應(yīng)用需求改進(jìn)和創(chuàng)新檢測(cè)算法仍值得思考,未來可能的研究方向包括以下幾個(gè)方面:
a. 更快的檢測(cè)速度。隨著物聯(lián)網(wǎng)和邊緣計(jì)算的發(fā)展,越來越多的應(yīng)用場(chǎng)景需要實(shí)時(shí)目標(biāo)檢測(cè)。因此,目標(biāo)檢測(cè)算法需要更快的速度,以滿足實(shí)時(shí)性要求。未來的研究方向包括更輕量級(jí)的網(wǎng)絡(luò)結(jié)構(gòu)、更高效的計(jì)算方法、更優(yōu)化的硬件設(shè)備等。
b. 更高的定位精度。目標(biāo)檢測(cè)算法的定位精度對(duì)于一些應(yīng)用場(chǎng)景非常重要,如醫(yī)學(xué)影像分析、工業(yè)質(zhì)檢等。未來可以通過研究更深、更寬的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)、更有效的特征提取方法、更精細(xì)的目標(biāo)分類方法等實(shí)現(xiàn)定位精度和檢測(cè)效率的提升。
c. 輕量級(jí)目標(biāo)檢測(cè)算法。從YOLOv3 開始,首次體現(xiàn)了移動(dòng)設(shè)備對(duì)輕量級(jí)算法的需求。檢測(cè)速度和精度得以保證之始,應(yīng)用級(jí)的需求就開始向更輕、更便捷的方向轉(zhuǎn)變,如移動(dòng)機(jī)器人的目標(biāo)識(shí)別抓取[32]、農(nóng)業(yè)應(yīng)用等。盡管目前的檢測(cè)算法在檢測(cè)精度方面已經(jīng)超越人類,但在細(xì)節(jié)和功能性上仍不及人眼,尤其是足夠輕足夠小的檢測(cè)算法。
d.弱監(jiān)督檢測(cè)[33]。從傳統(tǒng)檢測(cè)器開始,研究人員們就苦于對(duì)目標(biāo)的特征標(biāo)定,深度學(xué)習(xí)檢測(cè)算法的訓(xùn)練仍舊大量依賴良好的圖像內(nèi)容標(biāo)定。而圖像標(biāo)定過程費(fèi)時(shí)費(fèi)力,從成本和發(fā)展的角度考慮,都應(yīng)該以弱監(jiān)督甚至無檢測(cè)為目標(biāo)。減少或者部分使用邊界框進(jìn)行注釋都將對(duì)檢測(cè)器的運(yùn)用靈活性帶來極大幫助。
e.小目標(biāo)檢測(cè)[34]。YOLO 等結(jié)構(gòu)簡(jiǎn)單的算法對(duì)小目標(biāo)的檢測(cè)失真,導(dǎo)致泛化能力低下,解決了小目標(biāo)檢測(cè)問題的算法檢測(cè)速度較低而應(yīng)用受限。
f.視頻檢測(cè)[35]。針對(duì)連貫視頻中的實(shí)時(shí)目標(biāo)檢測(cè)需求,如視頻監(jiān)控、自動(dòng)駕駛[36]或用戶上傳視頻審核,目標(biāo)檢測(cè)雖然可針對(duì)視頻逐幀檢測(cè),但忽略了視頻幀之間的連貫性,浪費(fèi)了過多的計(jì)算資源卻不能滿足探測(cè)要求。針對(duì)連貫性對(duì)檢測(cè)算法進(jìn)行時(shí)間和空間連續(xù)的適應(yīng)性調(diào)整,是算法應(yīng)用性的改進(jìn)方向之一。
g.目標(biāo)檢測(cè)的多模態(tài)融合[37]。自動(dòng)駕駛汽車憑借多種傳感器實(shí)現(xiàn)對(duì)駕駛環(huán)境的機(jī)器識(shí)別,目標(biāo)檢測(cè)不僅可以通過圖像進(jìn)行,還可以通過聲音、紅外線、雷達(dá)等多種傳感器進(jìn)行。將來自不同傳感器的數(shù)據(jù)進(jìn)行融合,從而實(shí)現(xiàn)對(duì)目標(biāo)更加準(zhǔn)確和全面地進(jìn)行檢測(cè),可以使信息互補(bǔ),實(shí)現(xiàn)誤差校正、多樣性增強(qiáng)以及實(shí)時(shí)性提高。
h.目標(biāo)檢測(cè)的場(chǎng)景自適應(yīng)[38]。目標(biāo)檢測(cè)算法在不同場(chǎng)景下的表現(xiàn)可能存在差異,通過自適應(yīng)學(xué)習(xí)等方法,提高目標(biāo)檢測(cè)算法在不同場(chǎng)景下的準(zhǔn)確率和魯棒性,將極大提升目標(biāo)檢測(cè)在各行業(yè)中的應(yīng)用泛化性能。
i.算法運(yùn)行可解釋性。目標(biāo)檢測(cè)的可解釋性包括解釋其檢測(cè)結(jié)果和決策過程,通過分析算法數(shù)據(jù)傳遞過程,能更好地理解和優(yōu)化算法。算法可解釋性的發(fā)展方向包括:可視化[39],即將算法的特征提取前向傳遞過程以圖像或者其他形式呈現(xiàn);可解釋性[40],即通過算法中具有解釋性的特征與目標(biāo)檢測(cè)建立聯(lián)系,以方便用戶理解算法特征與目標(biāo)檢測(cè)之間的關(guān)系;人機(jī)交互,即將算法結(jié)合人類知識(shí)和經(jīng)驗(yàn),利用人類對(duì)檢測(cè)特征的深刻理解,更好地優(yōu)化算法的特征處理過程。
j. 注意力機(jī)制[41]。檢測(cè)算法區(qū)域劃分、錨框選定等操作經(jīng)常出現(xiàn)檢測(cè)算法復(fù)雜性徒增的問題,注意力機(jī)制的引入能夠大幅降低檢測(cè)成本,高效關(guān)注圖像有用信息,使現(xiàn)有檢測(cè)算法檢測(cè)性能快速提升成為可能。