董文軒,梁宏濤,劉國柱,胡 強(qiáng),于 旭
青島科技大學(xué) 信息科學(xué)技術(shù)學(xué)院,山東 青島266061
目標(biāo)檢測(cè)(object detection)作為計(jì)算機(jī)視覺領(lǐng)域的核心問題之一,其任務(wù)是在圖像或圖像序列中對(duì)目標(biāo)進(jìn)行精確定位和分類。但目標(biāo)檢測(cè)任務(wù)中存在各類干擾因素,如目標(biāo)物體本身的紋理、形態(tài)等,以及成像時(shí)的光照強(qiáng)弱、遮擋和模糊等?;谏鲜鲆蛩兀繕?biāo)檢測(cè)性能成為計(jì)算機(jī)視覺領(lǐng)域亟待解決的問題,針對(duì)這些因素,眾多學(xué)者對(duì)目標(biāo)檢測(cè)算法進(jìn)行了研究與改進(jìn)。
傳統(tǒng)目標(biāo)檢測(cè)算法大致劃分為下述三步:
(1)區(qū)域選擇:先定位目標(biāo)位置,通過不同尺度和長寬比的滑窗對(duì)圖像或圖像序列進(jìn)行遍歷,再通過窮舉策略將所有可能包含檢測(cè)目標(biāo)的位置框出。
(2)特征提?。禾崛∧繕?biāo)候選區(qū)域的視覺特征,例如SIFT(scale invariant feature transform)、HOG(histogram of oriented gradient)、Haar、LBP(local binary pattern)等特征提取算子進(jìn)行特征提取。
(3)目標(biāo)分類:使用分類器通過提取到的特征對(duì)目標(biāo)進(jìn)行分類,常用的分類器有DPM(deformable parts model)、Adaboost、SVM(support vector machine)等。
傳統(tǒng)目標(biāo)檢測(cè)方法雖在檢測(cè)領(lǐng)域取得了一定的成果,但也暴露出其固有的弊端。區(qū)域選擇階段通過滑窗選取候選區(qū)域策略,存在時(shí)間復(fù)雜度高和冗余窗口多的弊端,導(dǎo)致后續(xù)特征提取和分類的性能降低。由于目標(biāo)的本身因素和成像環(huán)境因素,導(dǎo)致人工手動(dòng)設(shè)計(jì)特征的方法存在魯棒性不好、泛化性差、檢測(cè)精度低等問題,傳統(tǒng)的目標(biāo)檢測(cè)方法已經(jīng)難以滿足人們對(duì)目標(biāo)檢測(cè)追求高性能的需求。
近年來,在Hinton、Bengio、Lecun的引領(lǐng)下,大量深度神經(jīng)網(wǎng)絡(luò)論文相繼發(fā)表,深度學(xué)習(xí)得到了快速發(fā)展,通過引入深層語義特征,來解決傳統(tǒng)目標(biāo)檢測(cè)算法的弊端。2012 年,Hinton 等通過卷積操作構(gòu)建深度神經(jīng)網(wǎng)絡(luò)AlexNet,并在ImageNet圖像識(shí)別比賽斬獲冠軍,基于深度卷積神經(jīng)網(wǎng)絡(luò)的目標(biāo)檢測(cè)算法成為了研究學(xué)者關(guān)注的焦點(diǎn)。
數(shù)據(jù)集對(duì)于有監(jiān)督算法的訓(xùn)練、評(píng)估至關(guān)重要,并且權(quán)威的數(shù)據(jù)集,更是衡量不同算法間優(yōu)劣的標(biāo)準(zhǔn)。針對(duì)目標(biāo)檢測(cè)任務(wù),目前應(yīng)用最多的兩類數(shù)據(jù)集分別是PASCAL VOC數(shù)據(jù)集和Microsoft COCO數(shù)據(jù)集。
PASCAL VOC 數(shù)據(jù)集源自PASCAL VOC 視覺挑戰(zhàn)賽,從2005 年開始,官方每年都會(huì)為挑戰(zhàn)賽提供一系列多類別、帶標(biāo)簽的圖片。起初官方只提供了4 個(gè)類別的圖像,2007 年增加到了20 個(gè)類別,VOC2012類別如表1 所示。目前學(xué)術(shù)界使用最多的兩個(gè)版本分別是VOC2007和VOC2012,模型訓(xùn)練、測(cè)試也存在兩種策略,一種是train2007+train2012 用作訓(xùn)練,test2007 用作測(cè)試;另一種是train2007+test2007 +train2012 用作訓(xùn)練,test2012 用作測(cè)試。由于第二種策略獲取訓(xùn)練數(shù)據(jù)更多,訓(xùn)練出的模型效果更好,使得該策略成為主流。
表1 VOC2012 類別Table 1 VOC2012 categories
Microsoft COCO 數(shù)據(jù)集源自微軟2014 年出資自研,該數(shù)據(jù)集以場(chǎng)景理解為目標(biāo),從復(fù)雜的日常場(chǎng)景中截取。數(shù)據(jù)集中圖像包含91 類別,32.8 萬張圖像和250 萬個(gè)標(biāo)注,涵蓋圖像分類、目標(biāo)檢測(cè)、圖像分割等多個(gè)計(jì)算機(jī)視覺任務(wù)。該數(shù)據(jù)集解決了場(chǎng)景理解中的三個(gè)核心研究問題:(1)檢測(cè)對(duì)象的非標(biāo)志性視圖;(2)對(duì)象之間的上下文推理;(3)對(duì)象的精確二維定位。相較于PASCAL VOC 數(shù)據(jù)集主要應(yīng)用于自然圖像中的目標(biāo)檢測(cè),Microsoft COCO 數(shù)據(jù)集被設(shè)計(jì)用于發(fā)生在其自然環(huán)境中的目標(biāo)檢測(cè),同時(shí)Microsoft COCO 數(shù)據(jù)集平均單張包含的目標(biāo)也比PASCAL VOC 數(shù)據(jù)集要多,且目標(biāo)更小,較小的物體更難識(shí)別,需要更多的上下文推理來識(shí)別。
為了將不同目標(biāo)檢測(cè)算法進(jìn)行多方位對(duì)比,提出一系列公認(rèn)的評(píng)估指標(biāo),如交并比、檢測(cè)速率、精準(zhǔn)率、召回率、平均精確率、平均精確率均值等。
交并比(intersection-over-union,IoU),指產(chǎn)生的預(yù)測(cè)框(candidate bound)與原標(biāo)記框(ground truth bound)的交疊率,即兩框交集與并集的比值,最理想情況是完全重疊,即比值為1,該指標(biāo)用于評(píng)估算法的定位準(zhǔn)確性。檢測(cè)速率(frames per second),表示每秒算法所能處理的圖像張數(shù),用于評(píng)估算法的實(shí)時(shí)性。如表2混淆矩陣與式(1)所示,精準(zhǔn)率(Precision)指被正確識(shí)別成正例的正例數(shù)所占的比例,表示模型檢測(cè)出的目標(biāo)為真正目標(biāo)物體的比例。如式(2)所示,召回率(Recall)指測(cè)試的所有正例樣本中,被正確識(shí)別成正例的正例數(shù),表示所有真實(shí)的目標(biāo)被模型檢測(cè)出的比例。精準(zhǔn)率和召回率是針對(duì)單張圖片某一類別的指標(biāo),同時(shí)針對(duì)精準(zhǔn)率和在某些情況下存在矛盾,例如只檢測(cè)出了一個(gè)結(jié)果并且準(zhǔn)確,那么精準(zhǔn)率為100%,反觀召回率就很低。因此提出平均精確率(average precision,AP),表示為精確率-召回率曲線上的精確率對(duì)召回率的積分,如式(3)所示,AP 是針對(duì)數(shù)據(jù)集中某一個(gè)類別而言的,用于評(píng)估檢測(cè)算法對(duì)某一個(gè)類別的檢測(cè)效果。平均精確率均值(mean average precision,mAP)指AP 值在所有類別下的均值,mAP 是針對(duì)整個(gè)數(shù)據(jù)集的評(píng)估,用于評(píng)估檢測(cè)算法對(duì)所有類別的檢測(cè)效果。
表2 混淆矩陣Table 2 Confusion matrix
基于深度卷積神經(jīng)網(wǎng)絡(luò)的目標(biāo)檢測(cè)算法依據(jù)檢測(cè)步驟可分為兩類:一類是基于候選區(qū)域的Two-stage(兩階段)目標(biāo)檢測(cè)算法;另一類是基于回歸的Onestage(單階段)目標(biāo)檢測(cè)算法。Two-stage 目標(biāo)檢測(cè)算法先選取圖像的候選區(qū)域,再對(duì)候選區(qū)域可能存在的目標(biāo)進(jìn)行回歸定位和分類,使整體檢測(cè)過程劃分為兩個(gè)階段,代表算法如RCNN 系列等。One-stage目標(biāo)檢測(cè)算法不單獨(dú)選取候選區(qū)域,省略了候選區(qū)域生成步驟,將特征提取、目標(biāo)分類和位置回歸整合到一個(gè)階段進(jìn)行操作,代表算法如YOLO 系列、SSD系列等。以時(shí)間為基線,各類典型算法出現(xiàn)時(shí)間如圖1 所示。
圖1 目標(biāo)檢測(cè)算法發(fā)展時(shí)間軸Fig.1 Timeline of target detection algorithm development
Two-stage 目標(biāo)檢測(cè)算法先對(duì)圖像進(jìn)行選取候選區(qū)域操作,再對(duì)候選區(qū)域進(jìn)行分類和位置定位,使檢測(cè)過程劃分為兩個(gè)階段,代表算法有R-CNN(regions convolutional neural network)、SPPNet(spatial pyramid pooling network)、Fast R-CNN、Faster R-CNN、R-FCN(region-based fully convolutional networks)、Cascade R-CNN、Libra R-CNN 等,下面將分別進(jìn)行介紹和分析。
目標(biāo)檢測(cè)算法在標(biāo)準(zhǔn)的PASCAL VOC 數(shù)據(jù)集上的檢測(cè)性能,在過去的幾年里停滯不前。當(dāng)時(shí),通過集成系統(tǒng)取得較優(yōu)的檢測(cè)性能,它通常采取將多個(gè)低級(jí)圖像特征與高級(jí)上下文相結(jié)合方式。直到Girshick等將卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural networks,CNN)應(yīng)用于目標(biāo)檢測(cè)任務(wù),提出經(jīng)典的兩階段目標(biāo)檢測(cè)算法R-CNN,R-CNN 的出現(xiàn)成為運(yùn)用深度學(xué)習(xí)進(jìn)行目標(biāo)檢測(cè)方面的里程碑。R-CNN 模型框架如圖2 所示,算法結(jié)合兩個(gè)關(guān)鍵點(diǎn):(1)通過卷積給出自下而上的區(qū)域建議,來定位和劃分對(duì)象;(2)當(dāng)缺乏訓(xùn)練數(shù)據(jù)時(shí),先進(jìn)行有監(jiān)督預(yù)訓(xùn)練操作,后進(jìn)行微調(diào),實(shí)現(xiàn)性能的提升。R-CNN 將AlexNet與選擇性搜索算法(selective search)相結(jié)合,先從單張圖像中提取可能包含目標(biāo)物體的區(qū)域候選框2 000 個(gè),將候選區(qū)域放縮成固定格式進(jìn)行特征提取,再通過SVM對(duì)候選區(qū)域的特征進(jìn)行分類,使用非極大值抑制(non maximum supression,NMS)篩選區(qū)域候選框,最后采用邊界框回歸(bounding box regression)得到檢測(cè)結(jié)果。
圖2 R-CNN 模型結(jié)構(gòu)Fig.2 R-CNN model structure
相較傳統(tǒng)算法,R-CNN 性能有所改進(jìn),但仍存在以下問題:(1)使用選擇性搜索算法導(dǎo)致候選框數(shù)量過多、選擇重復(fù)、浪費(fèi)算力、效率低;(2)訓(xùn)練過程中的操作,選取候選框、特征提取、SVM 分類、邊界框回歸各個(gè)模塊間獨(dú)立,非端到端的整體;(3)不同尺寸的候選框不采用任何策略,直接變?yōu)橄嗤叽?,改變?cè)袌D像的固定尺寸,丟失部分原圖信息。
針對(duì)R-CNN 存在的對(duì)所有候選區(qū)域分別提取特征、計(jì)算量大、輸入圖片固定尺寸、丟失原圖信息等問題,He 等提出空間金字塔池化網(wǎng)絡(luò)(SPPNet)以移除對(duì)網(wǎng)絡(luò)固定尺寸的限制。如圖3 所示,將SPP 層放在最后一層卷積之后,從而避免了對(duì)卷積特征的重復(fù)計(jì)算,減少計(jì)算量;再對(duì)卷積產(chǎn)生的特征圖進(jìn)行池化操作,避免因固定特征輸入尺寸而丟失原圖細(xì)節(jié)的問題;輸出固定長度的特征圖,最終進(jìn)入分類器中進(jìn)行目標(biāo)檢測(cè)。
圖3 空間金字塔池化(SPP)Fig.3 Spatial pyramid pooling(SPP)
雖然SPPNet 提高了檢測(cè)速度,但仍存在部分缺點(diǎn):(1)采取多段式訓(xùn)練,需存儲(chǔ)大量特征,存儲(chǔ)空間大;(2)SPPNet 只對(duì)其全連接層進(jìn)行微調(diào),而忽略了所有以前的層;(3)沿用SVM 分類器,訓(xùn)練繁瑣。
Girshick針對(duì)R-CNN 和SPPNet 各模塊獨(dú)立,導(dǎo)致占用大量存儲(chǔ)空間的問題,提出將特征提取模塊、區(qū)域分類和邊界框回歸模塊整合在一起的Fast R-CNN 算法。Fast R-CNN 模型架構(gòu)如圖4 所示,算法采用VGG16替代AlexNet作為主干網(wǎng)絡(luò)對(duì)圖像進(jìn)行特征提取。同時(shí),受SPPNet 啟發(fā),將SPP 層簡(jiǎn)化為ROI Pooling加在卷積網(wǎng)絡(luò)之后,將每個(gè)區(qū)域均勻分成若干小塊,每個(gè)小塊得到該區(qū)域的最大值。另外,F(xiàn)ast R-CNN 引入softmax函數(shù)替代了R-CNN中的SVM 處理分類,并引入奇異值分解,將目標(biāo)分類和位置回歸合并,降低計(jì)算復(fù)雜度,檢測(cè)速度精度得到相應(yīng)的提升。
圖4 Fast R-CNN 模型結(jié)構(gòu)Fig.4 Fast R-CNN model structure
但Fast R-CNN 仍存在不足:(1)生成候選區(qū)域沿用選擇性搜索算法(selective search)導(dǎo)致提取特征和獲取正負(fù)樣本候選框耗時(shí)耗空間;(2)訓(xùn)練過程中選取候選框的操作,與其他模塊間獨(dú)立,仍是個(gè)非端到端的整體。
針對(duì)Fast R-CNN 存在因采用選擇性搜索算法生成候選區(qū)域,耗時(shí)耗空間的問題,Ren 等提出了Faster R-CNN算法。Faster R-CNN模型架構(gòu)如圖5 所示,算法采用區(qū)域建議網(wǎng)絡(luò)(region proposal network,RPN)取代Fast R-CNN 中選擇性搜索算法來生成候選區(qū)域,將候選區(qū)生成、特征提取、目標(biāo)分類和位置回歸合并,實(shí)現(xiàn)端到端結(jié)構(gòu)的目標(biāo)檢測(cè)模型。圖像經(jīng)共享卷積層獲取特征圖,通過3×3 窗口滑動(dòng)生成特定長度的低維向量,送入兩個(gè)全連接,分別進(jìn)行分類和預(yù)測(cè)框回歸操作。Faster R-CNN 提出了錨框(anchor)概念。錨框位于滑動(dòng)窗口的中心點(diǎn),由大小不一的邊界框組成,用來檢測(cè)同一位置上的多個(gè)目標(biāo)。經(jīng)RPN 網(wǎng)絡(luò)處理后獲得大約300 個(gè)精確候選區(qū)域,大大減少候選框,減少模型計(jì)算量。
圖5 Faster R-CNN 模型結(jié)構(gòu)Fig.5 Faster R-CNN model structure
雖然Faster R-CNN 突破了Fast R-CNN 的速度瓶頸,但仍存在問題:(1)Faster R-CNN 采用ROI Pooling層存在兩次取整近似計(jì)算,喪失網(wǎng)絡(luò)平移不變性,導(dǎo)致檢測(cè)信息和提取出的特征不匹配;(2)采用錨框機(jī)制,進(jìn)行多次下采樣操作,導(dǎo)致網(wǎng)絡(luò)模型對(duì)小目標(biāo)檢測(cè)效果較差。
針對(duì)Faster R-CNN 采用ROI Pooling 層存在兩次取整近似計(jì)算,喪失網(wǎng)絡(luò)平移不變性,導(dǎo)致檢測(cè)信息和提取出的特征不匹配,降低檢測(cè)的準(zhǔn)確度,Dai 等提出了R-FCN 算法。R-FCN 基于全卷積,針對(duì)分類網(wǎng)絡(luò)與檢測(cè)網(wǎng)絡(luò)之間的位置敏感性矛盾,通過在全卷積后添加1×1 卷積輸出位置敏感分?jǐn)?shù)圖,如圖6 所示。對(duì)感興趣區(qū)域進(jìn)行了編碼處理,使ROI Pooling 層后不再接全連接層,避免了重復(fù)計(jì)算,提升了檢測(cè)的精度和速度。
圖6 位置敏感分?jǐn)?shù)圖Fig.6 Position-sensitive score maps
R-FCN 作為Faster R-CNN 的改進(jìn)版,通過引入位置敏感分?jǐn)?shù)圖,提升了檢測(cè)速度,但將原來的VGG16的主干網(wǎng)絡(luò)換成ResNet 系列網(wǎng)絡(luò),加深主干網(wǎng)絡(luò)的模型深度,導(dǎo)致依然難以滿足目標(biāo)檢測(cè)的實(shí)時(shí)性要求。
Faster R-CNN 因使用固定IoU 閾值分辨正負(fù)樣本,造成所選候選框不準(zhǔn)確,存在檢測(cè)噪聲,若盲目增大IoU 閾值,檢測(cè)效果反而變差。造成這一現(xiàn)象的兩個(gè)因素:一是訓(xùn)練過程中正樣本指數(shù)消失導(dǎo)致的過擬合;二是探測(cè)器最優(yōu)的IoU 與輸入假設(shè)的IoU 不匹配。針對(duì)上述問題,Cai等提出多階段(multi-stage)檢測(cè)架構(gòu)的Cascade R-CNN 算法。Faster R-CNN與Cascade R-CNN 檢測(cè)架構(gòu)對(duì)比如圖7 所示,表示輸入圖像,表示檢測(cè)頭,0 表示候選區(qū)域,表示分類,表示邊界框回歸。Cascade R-CNN 由一系列探測(cè)器構(gòu)成,通過IoU閾值的遞增逐階段訓(xùn)練。探測(cè)器通過學(xué)習(xí)上一個(gè)探測(cè)器的數(shù)據(jù)分布,減少網(wǎng)絡(luò)檢測(cè)噪聲,最終實(shí)現(xiàn)提高檢測(cè)框精度的作用。
圖7 Faster R-CNN 與Cascade R-CNN 檢測(cè)架構(gòu)Fig.7 Faster R-CNN and Cascade R-CNN detection architecture
Cascade R-CNN 使用級(jí)聯(lián)架構(gòu)本質(zhì)上是一種新型的模型集成訓(xùn)練的操作,雖然提升了網(wǎng)絡(luò)精度,但也增加了網(wǎng)絡(luò)模型的復(fù)雜度,同時(shí)采用更深的ResNet101作為主干網(wǎng)絡(luò),延長了網(wǎng)絡(luò)訓(xùn)練和預(yù)測(cè)的時(shí)間。
Faster R-CNN 檢測(cè)性能受數(shù)據(jù)不平衡的限制,包括三個(gè)層次:樣本水平、特征水平和目標(biāo)水平。為了減輕由此造成的不利影響,Pang 等提出了Libra R-CNN算法。Libra R-CNN 采取了三個(gè)新的操作:IoU 平衡采樣來解決樣本不平衡,平衡特征金字塔來解決特征不平衡,平衡L1損失來解決目標(biāo)水平不平衡。IoU平衡采樣:采用分桶策略,通過IoU 對(duì)正負(fù)樣本進(jìn)行均勻采樣。平衡特征金字塔:如圖8所示,將不同層級(jí)的特征圖通過差值或下采樣的方法統(tǒng)一到4 層,將匯集的特征進(jìn)行融合,使用non-local結(jié)構(gòu)對(duì)融合特征進(jìn)一步加強(qiáng)。平衡L1 損失:回歸Loss 使用Balance L1 替代Smooth L1,使得Loss較大樣本和較小樣本界限處的梯度更加平滑。
圖8 平衡特征金字塔Fig.8 Balanced semantic pyramid
但Libra R-CNN 進(jìn)一步加深主干網(wǎng)絡(luò),使網(wǎng)絡(luò)模型更為復(fù)雜,難以滿足實(shí)時(shí)的要求。
上述Two-stage 目標(biāo)檢測(cè)算法分為先選取圖像的候選區(qū)域,再對(duì)候選區(qū)域可能存在的目標(biāo)進(jìn)行回歸定位和分類兩個(gè)階段。改進(jìn)方式主要在于:(1)如何獲取高效的候選區(qū)域,如Fast R-CNN 采用的RPN 網(wǎng)絡(luò);(2)如何將獲取的特征高效利用,如Cascade R-CNN的級(jí)聯(lián)架構(gòu)和Libra R-CNN 的特征金字塔。但這些改進(jìn)方式,無一不在增加模型的復(fù)雜程度,雖然檢測(cè)精度不斷提升,卻導(dǎo)致訓(xùn)練和檢測(cè)速度降低,難以滿足端側(cè)實(shí)時(shí)檢測(cè)的要求,故而目前目標(biāo)檢測(cè)發(fā)展趨勢(shì)開始面向高效One-stage架構(gòu)的目標(biāo)檢測(cè)方法。
表3 總結(jié)了這類算法發(fā)表時(shí)所用的主干網(wǎng)絡(luò)、檢測(cè)速率、檢測(cè)時(shí)的GPU 型號(hào),以及在VOC2007 數(shù)據(jù)集、VOC2012 數(shù)據(jù)集和COCO 數(shù)據(jù)集上的檢測(cè)精度(mAP)?!啊北硎緹o相關(guān)數(shù)據(jù),mAP 值中的括號(hào)表示以其作為訓(xùn)練集。表4 總結(jié)了Two-stage 目標(biāo)檢測(cè)算法改進(jìn)方式、優(yōu)勢(shì)以及局限。
從表3 可以看出Two-stage 目標(biāo)檢測(cè)算法采用更深的ResNet101和ResNeXt101作為主干網(wǎng)絡(luò),檢測(cè)精度得到了大幅的提升,后期以檢測(cè)難度更大的COCO數(shù)據(jù)集作為算法性能的評(píng)價(jià)指標(biāo)。從表4 可以看出,Two-stage 目標(biāo)檢測(cè)算法雖精度有所提高,但算法模型的加深,帶來更高的計(jì)算復(fù)雜度,導(dǎo)致算法的檢測(cè)速率降低,難以達(dá)到實(shí)時(shí)檢測(cè)的要求。
表3 Two-stage目標(biāo)檢測(cè)算法性能對(duì)比Table 3 Performance comparison of two-stage target detection algorithms
表4 Two-stage目標(biāo)檢測(cè)算法總體分析Table 4 Overall analysis of two-stage target detection algorithms
One-stage 目標(biāo)檢測(cè)算法不單獨(dú)選取候選區(qū)域,省略了候選區(qū)域生成步驟,將特征提取、目標(biāo)分類和位置回歸整合到一個(gè)階段進(jìn)行操作,代表算法有YOLO系列、SSD 系列、RetinaNet、CornerNet、EfficientDet 等,下面將分別進(jìn)行介紹和分析。
針對(duì)兩階段模型復(fù)雜,參數(shù)多,訓(xùn)練時(shí)間久,實(shí)時(shí)檢測(cè)效果差等問題,Redmon 等提出首個(gè)基于回歸分析的目標(biāo)檢測(cè)算法YOLO(you only look once)。YOLO 模型結(jié)構(gòu)如圖9 所示,算法將圖像縮放為448×448,在圖像上放置×網(wǎng)格。經(jīng)過若干個(gè)卷積層與池化層,再經(jīng)過兩層全連接層,輸出目標(biāo)分類和邊界框。其中每個(gè)子網(wǎng)格負(fù)責(zé)檢測(cè)落在本網(wǎng)格中的目標(biāo),預(yù)測(cè)出物體類別、置信度和邊界框位置。最后通過NMS 剔除重疊邊界框,實(shí)現(xiàn)目標(biāo)檢測(cè)。
圖9 YOLOv1 模型結(jié)構(gòu)Fig.9 YOLOv1 model structure
YOLO 雖然在速度上超過了Faster R-CNN,但還存在以下局限性:(1)采用×網(wǎng)格進(jìn)行預(yù)測(cè),若相同網(wǎng)格存在多個(gè)目標(biāo)存在漏檢問題,并且對(duì)小目標(biāo)檢測(cè)效果不佳;(2)沒用采用Faster R-CNN 的錨框機(jī)制,預(yù)測(cè)相對(duì)位置,直接預(yù)測(cè)絕對(duì)位置,增加了訓(xùn)練難度;(3)預(yù)測(cè)框的長寬比是根據(jù)訓(xùn)練集人為預(yù)設(shè)的,對(duì)于新數(shù)據(jù)集泛化能力差。
針對(duì)YOLO 使用全連接對(duì)邊界框進(jìn)行回歸預(yù)測(cè),定位不準(zhǔn),模型訓(xùn)練召回率和檢測(cè)精度低的問題,Redmon等提出了YOLOv2算法。YOLOv2 以DarkNet19作為主干網(wǎng)絡(luò),卷積層應(yīng)用批歸一化(batch normalization,BN)操作,使數(shù)據(jù)的分布相對(duì)穩(wěn)定,加速模型學(xué)習(xí)速度;采用分類網(wǎng)絡(luò)高分辨率預(yù)訓(xùn)練(high resolution classifier),將分類網(wǎng)絡(luò)先在高分辨率的ImageNet 數(shù)據(jù)集上進(jìn)行訓(xùn)練,再使用檢測(cè)數(shù)據(jù)集對(duì)其進(jìn)行微調(diào),提高模型訓(xùn)練的穩(wěn)定性;引入錨框機(jī)制,錨框的寬高通過-means 算法對(duì)訓(xùn)練集錨框進(jìn)行聚類獲取,得到先驗(yàn)框的寬高,提高模型在不同訓(xùn)練集上的泛化性能;錨框位置預(yù)測(cè)是通過左上角格點(diǎn)坐標(biāo)來預(yù)測(cè)偏移量,便于模型訓(xùn)練收斂;加入了Passthrough 層,進(jìn)行特征融合,避免損失細(xì)粒度特征;引入了多尺寸訓(xùn)練方法,使卷積核可以學(xué)習(xí)到不同尺寸的特征,提高模型魯棒性。
相對(duì)于YOLOv1,YOLOv2 雖然解決了模型訓(xùn)練困難、泛化能力差等問題,但其仍存在以下局限:(1)由于采用較深的主干網(wǎng)絡(luò),導(dǎo)致小目標(biāo)檢測(cè)的召回率不高;(2)對(duì)于密集群體目標(biāo)檢測(cè)效果差,檢測(cè)精度還有優(yōu)化空間。
針對(duì)YOLOv2 小目標(biāo)檢測(cè)效果差的問題,Redmon 等在YOLOv2 的基礎(chǔ)上改進(jìn)提出了YOLOv3 算法。YOLOv3 模型結(jié)構(gòu)如圖10 所示,算法采用DarkNet53作為主干網(wǎng)絡(luò)提取特征,獲取更深層次的圖像特征;引入殘差網(wǎng)絡(luò)ResNet 的跨層加和操作,進(jìn)行多尺度預(yù)測(cè),跨尺度特征融合,提高對(duì)小目標(biāo)的檢測(cè)精度;延用YOLOv2 先驗(yàn)框操作,采用-means算法對(duì)數(shù)據(jù)集錨框進(jìn)行聚類操作;分類使用logistic替換softmax 進(jìn)行輸出預(yù)測(cè),支持目標(biāo)多分類。
圖10 YOLOv3 模型結(jié)構(gòu)Fig.10 YOLOv3 model structure
YOLOv3 在推理速度上大幅提升,雖然解決了YOLOv2 小目標(biāo)檢測(cè)的問題,但其在每個(gè)網(wǎng)格中固定預(yù)測(cè)兩個(gè)box 這種策略,相較于R-CNN 系列網(wǎng)絡(luò),存在檢測(cè)召回率低,定位精度不佳,密集物體檢測(cè)效果差的問題。
2020 年4 月,Bochkovskiy 等結(jié)合近幾年的單階段和雙階段的目標(biāo)檢測(cè)算法以及技巧,在YOLOv3的基礎(chǔ)上進(jìn)行改進(jìn),提出了YOLOv4算法。YOLOv4采用了CSPDarkNet53替代了DarkNet53,SPP+PAN 替代了FPN,來增加感受野,進(jìn)行特征融合;加上YOLOv3的head,就構(gòu)成了YOLOv4 的模型框架。同時(shí)Bochkovskiy等還加入只在訓(xùn)練階段耗時(shí)增多,但不影響推理耗時(shí)的“贈(zèng)品”(bag of freebies)技巧,如CutMix、Mosaic(馬賽克)數(shù)據(jù)增強(qiáng)等;以及微提高了推理耗時(shí),卻顯著提升性能的“特價(jià)”(bag of specials)技巧如SPP-block(spatial pyramid pooling block)、PAN(pixel aggregation network)、DIoU-NMS(distance intersection over union non maximum supression)等。
YOLOv4 結(jié)合一系列調(diào)優(yōu)技巧,雖然檢測(cè)精度有所提高,但仍存在以下問題:(1)多個(gè)“特價(jià)”技巧疊加在一起,宏觀上仍增加模型的復(fù)雜程度,增加了訓(xùn)練、預(yù)測(cè)時(shí)間;(2)錨框獲取延用YOLOv3 的聚類策略,導(dǎo)致錨框的長寬比只能適應(yīng)大部分目標(biāo),缺少泛化性。
2020年6月,Jocher提出了YOLOv5。YOLOv5包含4 個(gè)模型,根據(jù)模型深度和特征圖寬由小到大依次 是YOLOv5s、YOLOv5m、YOLOv5l、YOLOv5x。YOLOv5 模型分為輸入端、Backbone、Neck、輸出端四部分,YOLOv5s 模型結(jié)構(gòu)如圖11 所示。輸入端采用了自適應(yīng)錨框計(jì)算,以獲取合適的錨框;自適應(yīng)圖片放縮,減少模型計(jì)算量,同時(shí)提高對(duì)小目標(biāo)的檢測(cè)效果。Backbone 采用Focus 結(jié)構(gòu)用于降低下采樣過程中的信息損失,借鑒CSPNet的CSP(cross stage partial)結(jié)構(gòu)用于增強(qiáng)卷積的學(xué)習(xí)能力。Neck 采用了FPN+PAN+CSP 結(jié)構(gòu),加強(qiáng)了特征融合。輸出端采用了GIOU_Loss 做為邊界框的損失函數(shù),采用加權(quán)NMS 的方式對(duì)邊界框進(jìn)行篩選,增強(qiáng)對(duì)遮擋、重疊目標(biāo)的檢測(cè)能力。
圖11 YOLOv5 模型結(jié)構(gòu)Fig.11 YOLOv5 model structure
相較于YOLOv4,YOLOv5更為靈活,但精度略微降低。同時(shí),目前YOLO 系列大都采用錨框的策略,導(dǎo)致模型計(jì)算量增加和正負(fù)樣本嚴(yán)重不平衡的問題。
針對(duì)之前YOLO 系列采用錨框的策略所導(dǎo)致的問題,Ge 等提出了基于YOLOv3 改進(jìn)的YOLOX,剔除錨框的操作,降低模型計(jì)算量,緩解正負(fù)樣本不平衡的問題。同時(shí)引入預(yù)測(cè)分支解耦(decoupled head),如圖12 所示,通過一維卷積將不同通道數(shù)的特征圖進(jìn)行降維,然后兩個(gè)平行分支分別使用2 個(gè)3×3 卷積進(jìn)行操作,同時(shí)回歸分支里還添加了IoU 分支,用于豐富YOLOX 檢測(cè)頭的表達(dá)能力。預(yù)測(cè)分支解耦極大地改善了模型的收斂速度,相較于非解耦的方式,解耦能帶來4.2 個(gè)百分點(diǎn)的AP 性能提升。引入SimOTA(simplified optimal transport assignment)操作,獲取每個(gè)真實(shí)框所擁有的正樣本個(gè)數(shù),以獲得全局信息下的最優(yōu)樣本匹配方案,SimOTA 操作帶來3.2 個(gè)百分點(diǎn)的AP 性能提升。相較于OTA,SimOTA運(yùn)算速度更快,避免額外的優(yōu)化參數(shù)。
圖12 YOLO 系列檢測(cè)頭結(jié)構(gòu)對(duì)比Fig.12 Comparison of structure of YOLO series head detection
針對(duì)YOLO 存在小目標(biāo)難以檢測(cè)的問題,Liu 等提出了SSD 算法。相比YOLO 全連接層之后執(zhí)行檢測(cè)操作,SSD 采用卷積來直接進(jìn)行檢測(cè)。SSD 模型結(jié)構(gòu)圖如圖13 所示,算法采取了多層次特征圖對(duì)不同大小的目標(biāo)進(jìn)行檢測(cè),淺層特征圖檢測(cè)小目標(biāo),深層特征圖檢測(cè)大目標(biāo),解決了小目標(biāo)難以檢測(cè)的問題。同時(shí)借鑒了Faster R-CNN 中Anchor 技巧,提前設(shè)置長寬比不同的先驗(yàn)框,再在先驗(yàn)框的基礎(chǔ)上預(yù)測(cè)目標(biāo)檢測(cè)框,減少訓(xùn)練復(fù)雜度。
圖13 SSD 模型結(jié)構(gòu)Fig.13 SSD model structure
但SSD 仍存在以下局限性:(1)不同尺度的特征圖獨(dú)立檢測(cè),造成不同尺寸的檢測(cè)框?qū)ν荒繕?biāo)重復(fù)檢測(cè),增加了模型計(jì)算量;(2)由于檢測(cè)小目標(biāo)的淺層特征圖含語義信息少,導(dǎo)致對(duì)小尺寸物體的檢測(cè)效果比較差。
針對(duì)上述SSD 存在的兩個(gè)問題,Jeong 等提出了RSSD 算法。RSSD 通過分類網(wǎng)絡(luò)增加不同層之間的特征圖聯(lián)系,以減少重復(fù)預(yù)測(cè)框的出現(xiàn);采用了一種深層和淺層特征融合的方式增加特征金字塔中特征圖的個(gè)數(shù),以檢測(cè)更多的小尺寸目標(biāo)。相對(duì)于SSD,RSSD 在目標(biāo)分支上參數(shù)更新,采用僅由特定尺度目標(biāo)所決定的策略,RSSD 中各個(gè)分類網(wǎng)絡(luò)間參數(shù)共享,且各個(gè)尺度的目標(biāo)都可以用于更新分類網(wǎng)絡(luò)的同一套參數(shù),需要訓(xùn)練的參數(shù)更少,訓(xùn)練速度更快。
針對(duì)SSD 骨干網(wǎng)絡(luò)是VGG16,只能得到淺層特征圖,對(duì)于深層次信息學(xué)習(xí)和表達(dá)能力不夠的問題,F(xiàn)u 等提出了DSSD 算法。DSSD 模型結(jié)構(gòu)如圖14所示,算法采用了更深的ResNet101 作為主干網(wǎng)絡(luò),以提取更深層次的語義特征;引入反卷積代替?zhèn)鹘y(tǒng)的雙線性插值實(shí)現(xiàn)上采樣,完成了深層特征圖和淺層特征圖的融合;預(yù)測(cè)模塊引入殘差單元,對(duì)小目標(biāo)檢測(cè)的效果得到顯著提升。
圖14 DSSD 模型結(jié)構(gòu)Fig.14 DSSD model structure
相較于SSD,DSSD 雖然精度有所提升,但使用更深的ResNet101 作為骨干網(wǎng)絡(luò),訓(xùn)練時(shí)間變長,檢測(cè)速度變慢。
Li 等借鑒了FPN 的思想提出了FSSD 算法,模型結(jié)構(gòu)圖如圖15 所示,將淺層的細(xì)節(jié)特征和高層的語義特征結(jié)合起來。FSSD 在特征融合模塊中,將不同尺度不同層的特征連接在一起,然后用一些下采樣塊生成新的特征金字塔,反饋給多盒探測(cè)器,以預(yù)測(cè)最終檢測(cè)結(jié)果。使得算法的精度有了明顯的提升,速度也沒有下降太多。
圖15 FSSD 模型結(jié)構(gòu)Fig.15 FSSD model structure
2019 年,Shen 等提出DSOD 算法,DSOD 融合SSD+DenseNet的思想,DenseNet 提取網(wǎng)絡(luò)結(jié)構(gòu)用于避免梯度消失,使得網(wǎng)絡(luò)在不進(jìn)行預(yù)訓(xùn)練的收斂效果和使用預(yù)訓(xùn)練模型的效果一樣好;相比于SSD,DSOD引入Dense Prediction 結(jié)構(gòu),大大減少了參數(shù)數(shù)量。
雖然DSOD 的精度有所提升,但采用DenseNet導(dǎo)致密集連接太重,并且每個(gè)DenseNet每層都會(huì)聚合前面層的特征,造成特征冗余,增加了模型的計(jì)算量。
針對(duì)當(dāng)時(shí)單階段目標(biāo)檢測(cè)算法檢測(cè)精度普遍低于同期雙階段目標(biāo)檢測(cè)算法的現(xiàn)狀,Lin等研究發(fā)現(xiàn),這是由于正負(fù)樣本不均衡導(dǎo)致的,后提出了RetinaNet算法。RetinaNet網(wǎng)絡(luò)架構(gòu)如圖16 所示,該算法結(jié)合了ResNet 和FPN 用作特征提取,以獲取圖像多尺度特征圖,再通過兩個(gè)FCN 網(wǎng)絡(luò)分別實(shí)現(xiàn)分類與回歸任務(wù)。同時(shí)采用了focal loss 替代了交叉熵?fù)p失函數(shù),focal loss 通過提高困難樣本的權(quán)重,使模型在訓(xùn)練時(shí)更專注于稀疏、困難樣本的分類。
圖16 RetinaNet模型結(jié)構(gòu)Fig.16 RetinaNet model structure
但是RetinaNet 相較于其他單階段檢測(cè)算法,檢測(cè)速度明顯下降,難以滿足實(shí)時(shí)檢測(cè)的要求。
針對(duì)RCNN系列、YOLO系列和SSD系列等算法,引用了Anchor導(dǎo)致正負(fù)樣本不均衡,較多超參數(shù)計(jì)算復(fù)雜的問題,Law 等提出了CornerNet算法。CornerNet采用了預(yù)測(cè)左上角點(diǎn)和右下角點(diǎn)的位置對(duì)邊界框進(jìn)行定位,替代傳統(tǒng)Anchor 與區(qū)域建議的檢測(cè)方法,避免上述Anchor 導(dǎo)致的問題。CornerNet 模型結(jié)構(gòu)如圖17 所示,模型以Hourglass 作為主干網(wǎng)絡(luò),分別對(duì)左上角點(diǎn)和右下角點(diǎn)進(jìn)行預(yù)測(cè),同時(shí)對(duì)偏移進(jìn)行預(yù)測(cè),微調(diào)角點(diǎn)位置產(chǎn)生更為緊密的邊界框。利用預(yù)測(cè)的Heatmaps、Embeddings 和偏移量,經(jīng)后處理算法來獲得最終的邊界框。同時(shí)CornerNet 還采用了corner pooling,有助于模型對(duì)邊界框進(jìn)行更為準(zhǔn)確的定位。
圖17 CornerNet模型結(jié)構(gòu)Fig.17 CornerNet model structure
但CornerNet由于需要左上角點(diǎn)和右下角點(diǎn)分組匹配產(chǎn)生邊界框,此過程耗時(shí)較長,達(dá)不到實(shí)時(shí)檢測(cè)要求;并且存在角點(diǎn)匹配錯(cuò)誤,導(dǎo)致產(chǎn)生錯(cuò)誤的邊界框。
針對(duì)CornerNet 基于雙角點(diǎn)再匹配的檢測(cè)策略,導(dǎo)致計(jì)算復(fù)雜、檢測(cè)速度降低,因此,Duan 等提出了CenterNet 算法。CenterNet 構(gòu)建模型時(shí)將目標(biāo)作為一個(gè)點(diǎn),即邊界框的中心點(diǎn),相較于CornerNet,無需對(duì)左上角點(diǎn)和右下角點(diǎn)進(jìn)行分組匹配,也不存在NMS這類后處理,提高了檢測(cè)速度。CenterNet 通過特征圖上局部峰值點(diǎn)(local peaks)獲取關(guān)鍵點(diǎn),再通過關(guān)鍵點(diǎn)預(yù)測(cè)中心點(diǎn),并回歸出目標(biāo)相關(guān)屬性,最終實(shí)現(xiàn)目標(biāo)檢測(cè)。相較于傳統(tǒng)檢測(cè)算法多重特征圖錨點(diǎn)操作,CenterNet 通過采用高分辨率的特征圖進(jìn)行輸出,以省略上述操作,提高模型效率。
但CenterNet 仍存在以下局限,由于邊界框的中心點(diǎn)進(jìn)行預(yù)測(cè),導(dǎo)致對(duì)多個(gè)目標(biāo)下采樣時(shí),目標(biāo)中心存在重疊情況,模型只能檢測(cè)出單個(gè)目標(biāo)。
針對(duì)基于回歸的檢測(cè)算法存在檢測(cè)精度較低的問題,Tan 等提出了EfficientDet 算法。EfficientDet包含7 種結(jié)構(gòu),分別為EfficientDet D1~D7,速度逐漸變慢,但是精度逐漸提高。Tan 等受PANet 算法的啟發(fā),移除掉了只有一個(gè)輸入的節(jié)點(diǎn),連接相同level的輸入和輸出節(jié)點(diǎn)融合更多特征,將自底向上和自頂向下相結(jié)合作為一個(gè)基礎(chǔ)層,可重復(fù)使用,最終設(shè)計(jì)出加權(quán)雙向特征金字塔網(wǎng)絡(luò)BiFPN 作為特征網(wǎng)絡(luò)。在相同骨干網(wǎng)絡(luò)EfficientNet,BiFPN 比FPN 高4 個(gè)百分點(diǎn),并且參數(shù)量更少。EfficientNet在模型設(shè)計(jì)時(shí)考慮了網(wǎng)絡(luò)的寬度、深度、分辨率三要素。EfficientDet模型結(jié)構(gòu)如圖18 所示,算法將EfficientNet 作為骨干網(wǎng)絡(luò),而EfficientNet B0~B6 就可以控制骨干網(wǎng)絡(luò)的規(guī)模;BiFPN 的通道數(shù)、重復(fù)層數(shù)也可以控制;輸入圖片的分辨率,這些組成了EfficientDet的結(jié)構(gòu)。
圖18 EfficientDet模型結(jié)構(gòu)Fig.18 EfficientDet model structure
EfficientDet 具有參數(shù)少,推理速度快,準(zhǔn)確率高的優(yōu)點(diǎn)。但EfficientDet 的預(yù)訓(xùn)練成本高,作者使用32 個(gè)TPU 在數(shù)據(jù)集上訓(xùn)練,才達(dá)到各項(xiàng)SOTA(state of the art)的成績,訓(xùn)練完整模型需要的時(shí)間和硬件成本過高。
上述One-stage 目標(biāo)檢測(cè)算法省略了候選區(qū)域生成步驟,將特征提取、目標(biāo)分類和位置回歸整合到一個(gè)階段進(jìn)行操作。YOLO 系列的改進(jìn)大都基于上一版本的局限進(jìn)行改進(jìn),SSD 系列的改進(jìn)都是基于最初的SSD 算法進(jìn)行改進(jìn),其他系列介紹了剔除錨框操作的一些算法。上述One-stage 目標(biāo)檢測(cè)算法最主要的三個(gè)改進(jìn)方式:(1)獲取錨框的方式,如YOLOv2 引入-means 聚類方式;(2)特征的高效利用,如SSD系列的各種特征融合方式和EfficientDet的BiFPN;(3)剔除錨框的操作,如YOLOX 通過預(yù)測(cè)分支解耦直接獲取預(yù)測(cè)框位置,CornerNet 通過角點(diǎn)獲取預(yù)測(cè)框位置,CenterNet通過中心點(diǎn)獲取預(yù)測(cè)框位置。One-stage 目標(biāo)檢測(cè)算法檢測(cè)精度提升的同時(shí),檢測(cè)速度也得到提高,達(dá)到了實(shí)時(shí)檢測(cè)要求。
表5 總結(jié)了這類算法發(fā)表時(shí)所用的主干網(wǎng)絡(luò)、檢測(cè)速率、檢測(cè)時(shí)的GPU 型號(hào),以及在VOC2007 數(shù)據(jù)集、VOC2012 數(shù)據(jù)集和COCO 數(shù)據(jù)集上的檢測(cè)精度(mAP)。“—”表示無相關(guān)數(shù)據(jù),mAP 值中的括號(hào)表示以其作為訓(xùn)練集。表6 總結(jié)了One-stage 目標(biāo)檢測(cè)算法改進(jìn)方式、優(yōu)勢(shì)以及局限。
表5 One-stage目標(biāo)檢測(cè)算法性能對(duì)比Table 5 Performance comparison of one-stage target detection algorithms
表6 One-stage目標(biāo)檢測(cè)算法總體分析Table 6 Overall analysis of one-stage target detection algorithms
從表5 可以看出,One-stage 目標(biāo)檢測(cè)同系列算法,檢測(cè)精度不斷提高,甚至超過了Two-stage 目標(biāo)檢測(cè)算法精度。同一算法,主干網(wǎng)絡(luò)模型越深,輸入圖片尺寸越大,檢測(cè)精度越高,但在相同GPU 環(huán)境下檢測(cè)速度降低。從表6 可以看出,主要針對(duì)小目標(biāo)難以檢測(cè)的問題,通過不同層的特征進(jìn)行融合得以緩解,實(shí)現(xiàn)多尺度、高精度的預(yù)測(cè)效果。同時(shí),檢測(cè)速度也達(dá)到了實(shí)時(shí)檢測(cè)的要求,可以實(shí)現(xiàn)端側(cè)的快速部署。
本文在對(duì)目標(biāo)檢測(cè)算法廣泛研究的基礎(chǔ)上,系統(tǒng)總結(jié)了基于深度卷積神經(jīng)網(wǎng)絡(luò)的目標(biāo)檢測(cè)算法的發(fā)展歷程,詳細(xì)介紹基于候選區(qū)域的Two-stage 目標(biāo)檢測(cè)算法和基于回歸的One-stage 目標(biāo)檢測(cè)算法。深入分析了各類算法的網(wǎng)絡(luò)架構(gòu)、優(yōu)缺點(diǎn)以及在主流數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果。過去的幾年里,基于深度卷積神經(jīng)網(wǎng)絡(luò)的目標(biāo)檢測(cè)算法進(jìn)入了發(fā)展的快車道,期間雖取得了一定的成果,但仍存在進(jìn)一步發(fā)展的空間。下面提供了這一領(lǐng)域前沿問題和研究方向,以促進(jìn)后續(xù)目標(biāo)檢測(cè)算法的研究與完善。
(1)多領(lǐng)域目標(biāo)檢測(cè)和多元化數(shù)據(jù)集:目前主流數(shù)據(jù)集類別數(shù)較少,大都是單一領(lǐng)域,導(dǎo)致所訓(xùn)練的模型只在某一單個(gè)領(lǐng)域精通,遇到未知實(shí)物存在漏檢、錯(cuò)檢的問題。因此創(chuàng)建多元化的數(shù)據(jù)集,用來訓(xùn)練多領(lǐng)域目標(biāo)檢測(cè)模型。開發(fā)一種通用的目標(biāo)檢測(cè)模型檢測(cè)出多領(lǐng)域的目標(biāo)成為未來的研究方向。
(2)小目標(biāo)檢測(cè):基于深度卷積神經(jīng)網(wǎng)絡(luò)的目標(biāo)檢測(cè)成為檢測(cè)主流,通過深層網(wǎng)絡(luò)對(duì)小目標(biāo)進(jìn)行特征提取,存在語義丟失的問題。針對(duì)這一問題,可通過淺層語義和傳統(tǒng)圖像檢測(cè)算法相結(jié)合的方式,或許可以起到更好的效果。
(3)高精度輕量級(jí)網(wǎng)絡(luò)架構(gòu):現(xiàn)有模型架構(gòu)復(fù)雜,參數(shù)多,達(dá)不到邊緣設(shè)備實(shí)時(shí)檢測(cè)的需求,在保證高精度的前提下,使模型輕量化變得尤為重要。例如,2017 年,Google 提出了MobileNet 輕量化網(wǎng)絡(luò)架構(gòu),通過深度分離卷積代替?zhèn)鹘y(tǒng)卷積的方式,將一個(gè)傳統(tǒng)卷積拆分成為一個(gè)深度卷積和一個(gè)逐點(diǎn)卷積。深度卷積在不改變輸入特征圖像的深度的情況下,對(duì)每一通道進(jìn)行卷積操作,得到和輸入特征圖通道數(shù)一致的輸出特征圖;再由逐點(diǎn)卷積對(duì)獲取特征圖進(jìn)行升維和降維。進(jìn)而降低了模型的參數(shù)量,實(shí)現(xiàn)模型的輕量化。再如2020年,華為提出了GhostNet,若傳統(tǒng)卷積輸出的通道數(shù)為,GhostNet先得到/2個(gè)通道數(shù)的特征圖;隨后對(duì)已獲取特征圖的每個(gè)通道單獨(dú)進(jìn)行線性變換;再將線性變換的結(jié)果與初次獲取的特征圖疊加,得到個(gè)通道數(shù)的特征圖。相較于MobileNet,GhostNet 的性能和輕量化進(jìn)一步得到提升。因此,在邊緣設(shè)備市場(chǎng)的需求下,降低模型計(jì)算開銷將成為主流方向之一。
(4)視頻檢測(cè):針對(duì)視頻實(shí)時(shí)檢測(cè)的現(xiàn)實(shí)需求,在融入了時(shí)間序列這一特征的同時(shí),視頻檢測(cè)中相鄰幀存在大量冗余特征信息、視頻聚焦失調(diào)、遮擋等情況,導(dǎo)致計(jì)算冗余和檢測(cè)精度較低。因此,研究基于視頻序列數(shù)據(jù)的目標(biāo)檢測(cè)算法,將成為未來研究熱點(diǎn)之一。
(5)多模態(tài)檢測(cè):目前大多數(shù)檢測(cè)模型存在數(shù)據(jù)集類別單一化問題,可以將RGB 圖像、激光雷達(dá)圖、3D 圖像等多種模態(tài)的數(shù)據(jù)進(jìn)行融合,對(duì)自動(dòng)駕駛、智能機(jī)器人等領(lǐng)域至關(guān)重要。因此,如何將不同模態(tài)的數(shù)據(jù)融合,及訓(xùn)練好相關(guān)的檢測(cè)模型遷移到多模態(tài)數(shù)據(jù)中將成為未來的研究重點(diǎn)。
(6)弱監(jiān)督和小樣本檢測(cè):現(xiàn)階段目標(biāo)檢測(cè)模型是通過大規(guī)模的實(shí)例標(biāo)注數(shù)據(jù)訓(xùn)練得到的,而數(shù)據(jù)標(biāo)注是一項(xiàng)耗時(shí)、耗力的工程。弱監(jiān)督目標(biāo)檢測(cè)降低數(shù)據(jù)標(biāo)注成本,通過少量的標(biāo)注數(shù)據(jù)高效訓(xùn)練網(wǎng)絡(luò)??赏ㄟ^遷移學(xué)習(xí),從相關(guān)領(lǐng)域中遷移標(biāo)注數(shù)據(jù),再訓(xùn)練所需領(lǐng)域少量標(biāo)注數(shù)據(jù),以提升所需領(lǐng)域目標(biāo)檢測(cè)效果。
基于深度卷積的目標(biāo)檢測(cè)算法雖在各類場(chǎng)景取得一定優(yōu)勢(shì),仍需進(jìn)一步研究與完善,以解決目標(biāo)檢測(cè)領(lǐng)域所存在的挑戰(zhàn),實(shí)現(xiàn)精度和性能上的進(jìn)一步提升。本文以歷年具有代表性的目標(biāo)檢測(cè)算法為主線,首先介紹了目標(biāo)檢測(cè)算法背景,然后根據(jù)算法所基于的架構(gòu)進(jìn)行對(duì)比,綜述了各類目標(biāo)檢測(cè)算法的關(guān)鍵技術(shù)和優(yōu)缺點(diǎn),最后針對(duì)前沿領(lǐng)域?qū)δ繕?biāo)檢測(cè)算法進(jìn)行了探討與展望。