張 艷,張明路,呂曉玲,郭 策,蔣志宏
1.河北工業大學 機械工程學院,天津 300401
2.北京理工大學 機電工程學院,北京 100081
計算機視覺技術的蓬勃發展,使目標檢測成為該領域重點研究內容之一,也是其他視覺任務的基石。隨著深度學習的深入研究,基于卷積神經網絡的目標檢測算法也得到了長足進展,特別是面向大、中目標的檢測算法,基本上滿足各種場景下的需求。由于小目標在現實生活中也是大量存在并且具有著廣泛的使用前景,例如:在遙感圖像處理[1]、無人機導航[2]、自動駕駛[3]、醫學診斷[4],人臉識別[5]等多個應用領域中發揮了巨大作用。小目標本身尺度小在圖像中所含信息量較少,容易造成目標模糊、細節特征不明顯,從而制約著小目標檢測性能的進一步發展。
基于深度學習的小目標檢測方法,是在雙階和單階算法基礎上加以完善的。雙階段方法將檢測問題分為兩步走,首先生成的是候選區域(region proposals),隨后對候選區域分類(通常還需對位置進行細化),雙階段算法流程圖如圖1所示。從2014年至今以R-CNN[6]算法為開端,在對深度學習和計算機視覺的不斷研究下,又涌現出Fast R-CNN[7]、Faster R-CNN[8]、SPPNet[9]等多個雙階算法[10-12],這些雙階算法在前期都被直接用于小目標檢測上。由于雙階算法需先篩選出一些可能存在的候選區域,然后針對每個候選區域,進行目標特征提取,效率相對較低,無法滿足實時性要求。而單階段與雙階段算法目標檢測流程有所不同,如圖2所示,可以進行端到端檢測,無候選區分類,運行速度更快,但是精度略低。常見的單階段目標檢測算法包括YOLO(you only look once)系列[13-16]和SSD(single shot multi-box detector)系列[17-21]。因此人們根據雙階算法和單階段算法的優缺點進行了諸多改進,綜合提升小目標的檢測性能。例如:Qi等人采用場景縮小技術并通過目標區域定位和Faster R-CNN網絡構造分層窄化網絡,以減少檢測時的搜索時間[22]。Yin等人通過添加圖像級和實例級域分類器和一致性損失分量,解決訓練樣本和實際樣本之間分布不一致導致域偏移問題,并在RPN網絡中使用多尺度訓練方式,以提高模型的性能[23]。Wu等人提出了基于ResNet101主干的修正SC卷積的SCMask R-CNN模型,該模型可以獲得更多的判別性特征信息,并添加一組具有特定大小的膨脹卷積來改善實例分割效果[24]。Hu等人將顯著性映射引入YOLOv3中,獲得更大的IOU值[25]。Wang等人對YOLOV4進行修剪,引入一個擴展卷積層[26]。Gai等人[27]在YOLOv4主干網絡CSPDarknet53的基礎上增加網絡,并結合DenseNet層間密度將先驗框改為適合小目標果實櫻桃的標記框。Wang等人[28]在SSD網絡架構上設計了一個動態區域放大網絡框架。Jia等人[29]在SSD的基礎上增加了中心損失函數以更好地解決類內差大于類間差異的情況。Bai等人[30]結合SSD算法中目標幀推薦策略和幀回歸算法。以上這些方法無論是在雙階段還是單階段算法的基礎進行完善,都與當時相對流行的方法進行了對比,在檢測精度和速度上取得了成效。

圖1 雙階段算法流程Fig.1 Two-stage algorithm flow

圖2 單階段算法流程Fig.2 One-stage algorithm flow
然而目標檢測作為計算機視覺領域重要的研究對象之一,近年來也發表了一些優秀的綜述文章。Zhou等人[31]共收錄了近400篇與目標檢測相關的論文,其中檢測器、目標檢測數據集、指標、檢測系統、加速技術和檢測方法等內容具有里程碑意義,并介紹了過去20多年目標檢測的主要發展,但是針對小目標檢測的相關方法甚少。Tong等人[32]從5個方面闡述小目檢測,在常用數據集上對當前經典的檢測方法進行實驗,比較分析檢測算法的優缺點。Chen等人[33]和Liu等人[34]都是從4個研究領域對小目標檢測算法做了總結,并在數據集上進行性能測試。也從4個研究領域介紹了基于深度學習的小目標檢測技術。文獻[31-34]雖然從多個方面對小目檢測方法進行闡述,且結合實際情況提出了未來的發展建議,重點不在小目標定義、重難點分析及性能評估等方面。此外,國內也有對小目標檢測領域的總結性文獻,并取得一定成效[35-40]。受這些綜述的啟發,在其基礎上進行了系統而深入的分析、總結。
在不同場景下小目標定義有著不同的解釋,目前小目標定義包括兩種[41]:一種是絕對尺寸定義,從目標絕對像素大小對小目標定義。以物體檢測范疇的常用數據集COCO物體定義為例,圖中目標低于32×32像素的物體為絕對小目標;從目標與圖像的相對比對小目標進行定義,目標物體小于圖像大小的10%甚至更小是相對尺寸小。圖3(a)為絕對尺寸定義下小目標示例,圖3(b)為相對尺寸定義下小目標示例。

圖3 小目標示例Fig.3 Small target example
COCO數據集作為評價目標檢測性能的常用數據集,共有80個類別的物體,超過11萬張圖片,包含大量小目標。圖4為目前主流算法在COCO數據集上的表現情況,其中APS、APM、APL分別為小、中、大目標檢測的精確度。從圖4可以看出,小目標檢測的精度相比于中、大目標嚴重不足。這導致小目標語義識別、語義分割、目標跟蹤等后續高級任務面臨諸多困難。因此,小目標檢測精度不足是目標檢測領域當前面臨的關鍵性挑戰。

圖4 不同尺寸目標在COCO數據集上的表現Fig.4 Representation of different size targets on COCO datasets
通過以上對小目標定義以及不同尺寸目標在最通用的COCO數據集上的表現,可知小目標像素在圖像中占比少,存在覆蓋域小、包含信息少等問題。本文對造成這些問題的原因及困難進行分析總結。
(1)特征信息不足。在圖像中小目標相對于大、中目標相比都存在分辨率低、圖像模糊等問題。針對這種情況基于深度學習的目標檢測算法通常會搭建數十層甚至上百層的網絡,進行大量的下采樣及池化操作,圖片會在原有像素的基礎上被不斷壓縮,使得原圖像中的特征信息被提取得愈加減少?;蛘呤峭ㄟ^淺層網絡直接進行回歸預測會導致特征提取不充分,回歸效果差,這兩種方式都無法最大化得到小目標特征信息,最終導致難以檢測。
(2)特定數據集欠缺。COCO數據集被作為小目標檢測算法的常用數據集,其中有52.3%的照片包含小目標,大、中目標所占比例分別為83.0%和70.7%。大、中目標檢測時會關聯更多的錨點框,在交并比大于0.5的限制下,訓練過程會丟失更多小目標,同時大、中目標數量較多,且和小目標的尺寸差異較大,神經網絡難以適應不同的目標尺寸,導致小目標檢測精度不足。因此,沒有適合小目標檢測研究的數據集成為難點之一。
(3)小目標聚集。有多個小目標同時出現在視野中,易發生扎堆聚集的現象。若是同類別小目標聚集,在檢測過程中邊界預測框會出現多個重疊,也會被過濾掉,導致會被重檢和漏檢;若是多種類別的小目標聚集,經過神經網絡多次采樣、卷積,導致在特征提取時變成一個點,無法區分不同的目標,檢測準確性急速下降。此外,由于小目標的聚合,模型難以收斂由于邊界框的重疊。
(4)損失函數不平衡。深度學習進行目標檢測,需利用損失函數進行梯度回歸對參數優化,而當前損失函數大多是針對大、中目標所設計,采用位置誤差和分類誤差,部分算法增加了交并比誤差。在進行回歸訓練時這些誤差并未考慮到小目標樣本情況,導致在較多應用場景中小目標出現檢測困難的情況。
(5)網絡結構原因?,F有的目標檢測算法框架都是為了大、中目標的檢測性能設計的。針對小目標的設計少之又少,再加上小目標本身的特點,這些原因導致現有算法在小目標檢測上表現效果低于人們的期望值。網絡檢測器仍以錨框為主,用來確定在預設的子窗口或錨點框內是否存在目標。但是,上述方法都必然地要求對特定的數據集設計甚至優化滑窗或錨點框等超參數,因此增加了訓練復雜度并影響了檢測器的通用性。
(6)通用性欠缺。小目標檢測來源于特定應用場景,例如遙感圖像中對艦船、無人機對地面人/物、自動駕駛汽車對遠處行人/車輛、醫學影像中對微動脈瘤,人臉識別中對遠距離人臉、工業加工中電子零部件等。現有算法大多基于常規目標設計,對于特定的復雜多變的場景無法具備良好的遷移能力,通用性不足限制了算法在小目標檢測場景中的應用。
數據增強是指利用有限的數據來實現更多的數據的價值。由于現有數據集小目標數量很少,所以學者采用數據增強方法增強訓練集,以得到適當的訓練樣本,從而減少模型對參數的依賴,提升模型泛化能力和魯棒性。數據增強一般可分為有監督和無監督兩種方法。其中有監督數據增強主要包括單樣本和多樣本數據增強方法,無監督數據增強則可分為生成新數據和學習增強策略兩個方向,數據增強的特點對比如表1[16,42-52]。

表1 相關數據增強方法對比Table 1 Comparison of related data augmentation methods
小目標在特征提取時信息過少,相比于大、中目標,匹配錨點框訓練效果甚微,影響小目標檢測精度。常規的幾何變換等單樣本數據增強方法,只能提升算法對不同場景的適應性,無法改善小目標與大、中目標檢測不平衡問題。因此,需采用多種數據增強方法結合來改善訓練效果,針對性解決模型應用問題,提升算法性能。例如利用Mosaic方法可提高模型對小目標識別能力;多樣本數據增強比單樣本更能提升圖像多樣性和檢測精度。因此多樣本數據增強目前還是被研究的重點。同時在無監督數據增強中,生成新數據中GAN網絡和學習增強網絡也備受關注。由于是生成網絡和判別網絡不斷博弈過程,使得GAN的處理速度相比有監督的要慢,但是生成的圖像質量卻很高。AutoAugment方法與GAN面臨相同的問題,對圖像質量有保障,但時間較慢,文獻[49-52]都是在保證增強效果與AutoAugment相近,以提高訓練、搜索時間。
除了表1中提到的常用的方法,很多學者也會以這些為基礎,提出適用于他們所研究背景下的其他增強方法,如Kisantal等人[53]將難以檢測到的小目標在圖像中復制粘貼并進行姿態角度變換,采用過采樣(oversampling)方式提高小目標檢測精度,完善了小目標在圖像中占比較少問題。與MS COCO上的方法相比,在小目標檢測上完成了7.1%的精度提升。Chen等人[54]提出了RRNet算法,如圖5所示,用自適應增強的策略將無人機捕獲的圖像送入預訓練的語義分割網絡中,利用侵蝕算法(eroding algorithm)和中值濾波器過濾噪聲,最終抽取一個有效位置來放置被增強物體,以達到數據增強目的。為了根據訓練情況進行自適應調整,Chen等人[55]提出sticher將損失函數中小目標損失的比例作為反饋,小目標損失占比過少時,在下一次迭代訓練中采用圖片拼接方式提高小目標訓練效果。Bochkovskiy等人提出YOLOv4算法中的mosaic方法,采用幾個照片拼接進行數據增強,區別在于YOLOv4采用不同尺度照片進行拼接。不同應用場景往往需要不同的專用數據增強方法,因此谷歌團隊的Zoph等人[56]提出基于學習策略的數據增強手段。定義一系列子策略集和多個圖像操作變換,將數據增強手段的選擇融入訓練中,達到自動調整適應。

圖5 RRNet中自適應增強策略Fig.5 Adaptive enhancement strategy in RRNet
數據增強方法在一定程度上解決了小目標數據集小、可定性地增加目標信息量等問題,使得模型的泛化能力和魯棒性也得以提升。有監督的數據增強方法經過近幾年的研究相對較完善,特別是多樣本增強方法,將多種增強方法有效結合起來,以提高模型的泛化能力和檢測性能,是現在數據增強的主要方法。而無監督數據增強方法在現階段仍處于不斷研究的過程。主要是由于有監督數據增強方法操作簡單,耗時少;而無監督數據增強網絡結構復雜,在訓練過程中卷積次數多,計算繁瑣,耗時長。這些增強方式的應用不當除了增加計算量還會加入新的噪聲,給算法應用帶來挑戰。
小目標與正常目標比可用的像素少,特征不明顯難以提取。隨著網絡層數的改變,小目標的特征信息與位置信息也在逐層丟失,難以檢測。特征融合是將圖片特征提取過程中的低層條紋、外部輪廓、像素分布等細節信息與高層提取到的抽象語義信息相融合,多尺度特征融合是指通過自頂向下的多次上采樣融合,最終形成包含細粒度表達和抽象語義表達的特征圖,提高小目標檢測效果。多尺度特征融合網絡結構如圖6所示。

圖6 多尺度特征融合網絡結構Fig.6 Multi-scale feature fusion network structure
為了減少小目標本身特性給算法帶來的負面影響以獲得更好的特征融合效果,不少研究者在檢測器架構上加以優化,常用檢測器是利用特征金字塔來檢測不同尺寸的物體,其中FPN就是構建特征金字塔最具有代表性的結構構件[57]。將不同尺度的特征進行融合作為預測網絡的輸入。圖7為FPN結構的示意圖,圖像經過自下向上的特征提取之后,再進行自上向下的特征融合結構,最后送入預測模塊輸出結果。很多學者對FPN網絡進行改進,使檢測器取得更好的效果。Guo等人根據FPN的設計缺陷導致多尺度特征利用不足,設計了全新的特征金字塔結構AugFPN,并在RCNN中應用,結果表明平均精度有了提高[58]。Ghiasi等人在一個覆蓋任何交叉尺度連接的可擴展搜索空間中,通過神經網絡結構搜索找到了一種全新的特征金字塔結構NAS-FPN,從頂向下和自下而上的連接組合而成,能夠跨范圍地融合特征,在COCO數據集上得到了很好的驗證[59]。Luo等人受亞像素的啟發利用原始通道信息進行跨尺度輸出,提出CE-FPN結構,并在MS COCO得到了比FPS更好的性能[60]。Kim等人提出并行FPN網絡,通過增加網絡寬度來構建,提升小目標檢測效果[61]。Zhao等人提出自頂向下和自底向上的特征金字塔網絡(TDBU-FPN),該網絡結合了多尺度特征和多縱橫比錨定生成,在數據集上的精度和速度的表現也有了一定提升[62]。

圖7 FPN結構Fig.7 FPN structure
針對小目容易受環境干擾問題,后續人們對金字塔網絡結構的研究主要是與single shot detector(SSD)模型結合。Li等人[63]將FPN結構與SSD算法相融合,在2017年提出了feature fusion SSD(FSSD)算法,將不同尺度特征重新調整至相同大小,再按通道拼接,實現不同尺度的特征融合。Fu等人[64]提出了deconvolutional SSD(DSSD)算法,DSSD將SSD的VGG網絡用殘差網絡進行了替換,如圖8所示,不同于通道疊加,利用反卷積層和原有特征層相乘的方式實現了特征融合。李文濤等人[65]提出一種基于SSD的多尺度通道注意力融合網絡的小目標檢測算法,針對小目標特征不明顯,設計了基于K領域的局部通道注意力模塊,可重新對每個通道的權重進行分配以達到最佳的特征學習效果;然后在卷積神經網絡中構建Bottleneck模塊,可更有效地把信息融合起來,再利用網絡的高低層特征進行多尺度檢測,可提高小目標檢測的精度。陳欣等人[66]改進了多尺度特征融合SSD方法,除了豐富語義信息,增強小目標特征,還引入了注意力模塊減少背景干擾,提升了檢測精度,降低漏檢率。李暉暉等人[67]提出了基于串行修正線性單元和FPN改進的SSD艦船目標檢測算法,提升淺層特征的傳遞效率,結果表明在艦船小目標的檢測精度有10%的提升。趙彤等人[68]利用長短記憶(LSTM)網絡改進FPN架構,并與SSD融合,建立一種新的特征融合網絡MSSD(memory SSD),算法在Pascal VOC數據集上取得了比較好的實驗結果。李寶奇等人[69]針對SSD自帶的特征提取網絡(OAFEN)中的stride操作產生的小目標信息損失和串聯結構帶來的多尺度特征之間冗余度較大的情況,提出使用可分離空洞卷積,同時設計了一個包含三個獨立子網絡的并行附加特征提取網絡(PAFEN),使得在SSD網絡架構內,PAFEN檢測時間和速度均比OAFEN效果好,也在其他的網絡架構中進行實驗,進一步說明了PAFEN特征提取網絡比OAFEN在小目標檢測上性能更好。梁延禹等人[70]提出一種多尺度非局部注意力網絡方法,在淺層利用非局部通道注意力模塊將全局信息集成,不僅可以大大提高小目標檢測準確率,還可使模型更具實時性。Meng等人[71]采用FPN的MobileNet-SSD模型以提高檢測精度和速度。Qu等人[72]利用FPN網絡提出擴張卷積和特征融合的SSD網絡,可以提高小物體檢測精度。Ren等人[73]使用精簡后的FPN網絡結構和改進的SSD模型,平衡小目標檢測的速度和精度。Kong等人[74]在SSD模型上使用新的FPN架構,能夠在全局和局部的不同空間和尺度上提取目標特征,在進行檢測。Zhang等人[75]通過語義分割和全局激活模塊,減弱淺層對小目標性能的影響。

圖8 DSSD模塊Fig.8 DSSD module
最近學者們對特征融合這一方法進行了新的研究,如Xue等人[76]針對小目標在多次卷積后信息易丟失,便在F-CNN網絡結構上提出一種改進的小目標檢測方法,不僅增強了多尺度特征還融合了它們之間的上下文語義信息。該算法經過一系列的上采樣和融合有效提高了檢測精度。但是訓練一個適用于各種尺度物體的模型仍需要進一步研究。Nayan等人[77]也是針對小目標信息易丟失,引入了一種實時檢測算法,該算法采用上采樣和跳連接,在學習任務中提取不同卷積級別的多尺度特征,從而在檢測小對象方面取得了顯著的性能。Deng等人[78]提出一種擴展特征金字塔網絡(DFPN),該網絡中有一個專門檢測小目標的超高分辨率金字塔。設計了一個新模塊-特征紋理轉移(FTT),用于分辨特征,同時獲得更可信的區域細節;此外還設計了平衡損失函數,除了可提升檢測準確率,還在計算和存儲方面也是高效的。Qi等人[79]先提出一種自適用空間并行卷積模塊(ASPConv),用于提取小目標的多尺度局部上下文信息,增強對目標的空間信息;其次,設計一個快速多尺度融合模塊,將該模塊與ASPConv模塊輸出的豐富空間信息有效集成。擁有豐富語義信息的低分辨率特征能夠有效映射到高分辨率空間。通過將多尺度特征地圖融合,可以形成具有豐富空間與語義信息的高分辨率特征地圖,有利于小目標檢測。由于該方法在實驗過程中取得良好的效果,可逐漸推廣到搜救、智能駕駛等多種小目標檢測場景中。
上述多尺度特征融合方式,不但考慮到了低層條紋、外部輪廓、像素分布等細節信息還兼顧了高層獲取到的抽象語義信息,這樣有利于提高小目標檢測的性能。在提高性能的同時也增加了額外的工作量尤其是計算量和存儲空間,在特征融合過程中難以避免其他問題干擾,如:噪聲等,而這些問題也造成多尺度架構下小目標檢測性能下降。
錨框在目標檢測中位置舉足輕重,目前大部分目標檢測算法是基于錨點框預測。但錨點框從最初模型設計都是為了大、中目標的檢測,忽視了小目標的檢測。因此很多學者在原有錨點框基礎上進行了研究,Zhu等人[80]發現目前的錨點設計無法保證小目標與錨點框之間高度重疊,增加了訓練難度。針對人臉識別中小人臉的問題,提出了增加移位錨點的方法來提高小目標檢測精度。添加額外的支持性錨點框即移位錨點框,而不是以滑動窗口位置為中心。圖9(a)和圖9(b)分別為斜向移位方式和直線移位方式。這些移位的錨點與中心錨點共享相同的特征表示,導致小目標檢測的平均交并比(intersection over union,IOU)顯著提高。固定的錨點框大小并不適合多樣性特征的小目標檢測任務,因此需反復設計錨點框長寬比,延長設計時間。針對這一現象,Wang等人[81]提出了根據不同形狀的特征提取模塊生成錨點機制,使錨點框形狀可變且稀疏。這一機制將錨點的生成分解為形狀預測和位置預測,可以看成是一個條件分布。這一方法使錨點框的生成通過訓練的方式來實現。Li等人[82]提出了Pixel-Anchor框架,通過特征共享和錨級注意機制將語義分割和SSD結合到一個網絡中,用于更好地預測尺度和長寬比變換較大的目標,有效緩和了目標檢測時小目標特征太稀疏的問題。王毓瑋等人[83]利用改進的K-Means算法設計適合艦船目標形狀特點的先驗錨點框,優化NMS算法以剔除重疊區域的艦船候選框,改善了艦船距離較近導致的漏檢問題。周慧等人[84]提出自適應錨點框來優化目標檢測網絡。

圖9 移位錨點框示例Fig.9 Example of shifting anchor box
將錨點框調整為關鍵點定位方式也是當前的一個重要研究方向。Law等人[85]提出了一種關鍵點檢測新思路,把檢測目標框生成問題處理成左上角點和右下角點的一對關鍵點的目標檢測問題,利用角點池化技術簡化預測過程,也可解決之前固定錨點預測的不靈活性。但該方法易將不是同一個物體的兩個角點看成一個目標框,造成誤檢。為克服這一問題,Duan等人[86]發現目標框正確時中心區域能夠檢測到目標中心點的概率會很高,反之亦然。因此提出了Centernet網絡,首先使用左上和右下兩個角點生成初始目標框,依次定義中心區域,如果目標框中心區域包含中心點則保存,反之則刪除。圖10為Centernet的網絡結構,經過對角點預測和中心點預測兩條路徑,最終在COCO數據集上獲得47%的精度,其中小目標檢測精度為28.9%。

圖10 Centernet網絡結構Fig.10 Centernet structure
在最新研究成果中,Dong等人[87]提出了新的向心偏移角匹配方法,向心力能夠預測角點和向心移動位置,并匹配移動結果對齊的角點,同時引入一種能夠更好地預測向心偏移的交叉星形可變形卷積模塊。在MS COCO上精度提高到了48%,超越了目前最先進的關鍵點檢測算法。Zhang等人[88]將錨點框檢測和關鍵點檢測兩種方法進行融合,提出了一種自適應訓練樣本選擇方法,按照目標統計特征自動選擇正樣本和負樣本。改善錨點和無錨點探測器性能,彌補了兩者之間的差距,較好地檢測出了小目標。
通過調整不同的anchor,使其盡量地覆蓋物體,也可根據各種任務設置不同的anchor尺度范圍;物體的定位都是利用anchor回歸實現的,僅計算偏移量就減少了計算量,降低復雜度;而anchor需要人為設定大量的參數,且離散的anchor尺度設置會使一些物體無法很好地匹配到anchor,進而造成遺漏,因此解決這些問題是繼續深入研究的內容。
通過級聯等方式搭建卷積神經網絡可有助于提高網絡性能,提取到更多小目標特征信息。Cai等人[89]提出了級聯區域卷積神經網絡(Cascade RCNN)算法。圖11為Cascade RCNN網絡示意圖,級聯幾個卷積神經網絡來更好地獲得圖像的語義信息,其中H表示網絡輸出,C表示分類,B表示定位框。與普通級聯不同的是,Cascade RCNN是由一系列的檢測網絡組成,每個檢測網絡都由不同IOU閾值的正負樣本訓練得到,將前一檢測網絡得到的結果送入到下一檢測網絡,隨著訓練的不斷進行,IOU閾值不斷增加,網絡性能隨之優化。通過這一方法在MS COCO數據集上獲得較高的小目標檢測精度。汪躍東[90]為減輕行人檢測任務中分類和回歸不平衡的現象,在Cascade RCNN基礎上將級聯的回歸器擬合的偏移量改進為與類別置信度相關的動態偏移量。Han[91]提出一種基于上下文信息的改進型基于級聯區域的卷積神經網絡,通過內部級聯的多閾值預測網絡實現多尺度、多階段的預測。Shi等人[92]提出了一種基于域自適應快反網絡的方法,稱為自適應閾值級聯快反網絡,級聯策略提高了邊界質量,解決了Faster RCNN的過擬合和不匹配的問題。劉艷萍等人[93]在Cascade RCNN基礎上,為降低復雜路況下小尺寸行人漏檢率,將淺層特征與深層特征融合,提高深層信息的利用率,為了將淺層信息直接向上進行傳遞,并提高淺層空間的利用率,增加一條淺層到深層的通道;提高算法分類和回歸的邊界框質量。李松江等人[94]為了解決車輛目標檢測中小目標漏檢的問題,也是在Cascade RCNN基礎上,改進特征金字塔將淺層信息加入到深層中,并引入多支路空洞卷積,減少特征丟失,增強目標特征。Zhang等人[95]采用加深神經網絡的方法優化小目標檢測性能,提出了多任務級聯的目標檢測框架,設計了三組神經網絡進行級聯,將特征提取網絡按從簡單到復雜的順序分成三個階段,利用簡單的特征提取網絡快速生成候選框,利用復雜的網絡來去掉實際不包含人臉的候選框,最終給出五個臉部標志點的位置。

圖11 Cascade RCNN網絡結構Fig.11 Cascade RCNN structure
除了級聯的方式,直接增加網絡深度也是常見的方式,但是由于網絡過深,會出現準確度由上升轉為下降的退化現象。微軟研究院的He等人[96]提出Resnet結構解決了這一問題,通過使用殘差單元,成功訓練了152層的殘差單元,取得了ILSVRC 2015比賽的冠軍。Resent采用恒等映射將上一層傳來的輸入傳遞到輸出,解決了退化現象的影響。后續很多目標檢測方法[97-99]都將殘差模塊應用到自己的網絡結構中,保證深層網絡信息傳遞不發生丟失。但是這種深層次卷積神經網絡結構會明顯增加推理時間,Yuan等人[100]提出的HS-ResNet在Resnet基礎上進行了多組卷積分解,將前一組卷積得到的特征圖,部分拼接到下一組特征圖,利用特征圖的復用降低計算難度。這一方法使得輸出特征內小感受野和更多細節內容產生聯系,在小目標識別中起到了關鍵作用。
生成式對抗網絡(generative adversarial network,GAN)是利用對抗思想預測生成模型框架,這種框架同時訓練兩種模型,生成模型和判別模型。旨在把分辨率較低的小目標特征映射為與分辨率高的目標等價特征,以便獲得與大、中目標類似的檢測效果。通過生成網絡生成樣本和判別網絡進行辯論以提高網絡性能,是無監督學習中應用最廣的,最早由Goodfellow等人[47]提出。小目標在圖像中要經過放大,再放入特征提取網絡中,造成了小目標圖像分辨率低的問題。針對這一問題,Bai等人[101]提出了超分辨率重構的GAN架構,產生器是一種超分辨率的網絡,它能夠把小的模糊圖像采樣成細尺度圖像,從而恢復大量細節信息以實現更精準的檢測。小物體檢測的端到端多任務生成對抗網絡,能夠與目前的任何檢測器結合使用。在對抗網絡中,生成網絡生成超分辨率圖像,并引入多任務判別器網絡,能夠區分真實的高分辨率圖像與偽造圖像,預測對象類別和細化邊界框。更關鍵的是,分類和回歸損失被反向傳播,進一步指導生成器網絡生成超分辨率圖像,以便更容易分類和更好的定位。Wang等人[102]提出了一種中心化的多任務生成對抗網絡(CMTGAN),利用網絡中生成器實現圖像超分辨率,并利用鑒別器進行對象檢測。在生成器中引入了人工紋理損失,以保留小物體的原始特征,在生成器中使用了一個居中的掩碼,使網絡專注于圖像的中心部分,與現有的插值方法相比,CMTGAN生成的超分辨率圖像更加明確,包含的信息更多。Courtrai等人[103]也是通過超分辨率來提高圖形空間分辨率,從而解決了在衛星或航空遙感圖像中檢測小物體的問題。通過學習基于殘余塊的生成對抗網(GAN),將其整合到一個循環模型中。此外,在框架中加入一個為物體量身定做的檢測輔助網絡,改善超級分辨率架構的學習和質量,提高目標檢測性能。Zhao等人[104]針對紅外小目標構建了GAN模型自動學習特征并直接預測目標,為提高生成器的數據擬合能力,構建了五層判別器;同時L2損失被添加到對抗性損失找那個以提高定位能力。Li等人[105]從小目標和大目標之間的區別出發搭建生成式對抗網絡,借鑒傳統生成式對抗網絡學習隨機噪聲到圖片映射的思想,利用網絡學習了小目標到大目標特征之間的映射。圖12為該網絡原理圖,引入感知GAN模型來增強對小物體的表征,使其更接近于真實的大物體,從而提高對小物體的檢測性能。最終相比于同期的Faster RCNN算法,較好地提升了小目標檢測的精度。Rabbi等人[106]受邊緣增強GAN(EEGAN)[107]和ESRGAN[108]的啟發,提出一個新的邊緣增強超分辨率GAN(EESRGAN)來改善遙感圖像的質量。以端到端的方法通過不同的檢測器網絡,檢測器的損失被反向傳播到EESRGAN中,以提高小目標檢測性能。

圖12 感知生成式對抗網絡Fig.12 Perceptual generative adversarial network
基于生成對抗網絡的檢測模型不僅可以增強小目標的細節信息,還可提升減少速度和精度。生成對抗網絡不需要依賴任何先驗假設,用到了反向傳播,只要是可微分函數都可以構建生成器和判別器,更容易將生成對抗網絡與現有的檢測算法結合起來。但是它目前仍面臨以下幾個問題:(1)訓練時需要達到納什平衡,但是這個平衡很難獲得;(2)生成模型的分布式沒有顯式表達,可解釋性較差;(3)訓練較困難,在學習過程中易發生崩潰問題。生成器開始逐漸退化,最后總生成相同的圖像,無法繼續學習;這就使得判別模型也會生成相似的圖像,訓練無法繼續。
被檢測目標與周圍其他物體以及環境有著密不可分的關系,在各種環境中應用目標檢測算法有很多局限性,尤其是檢測小目標,因為它們分辨率低,信息有限,因此人們考慮到如何將上下文作為額外信息來幫助檢測小目標。為了通過探索上下文信息來提高檢測精度,Yu等人[109]提出了一種用于錨級聯的上下文金字塔最大化機制。因此,錨級聯可以訓練非常有效的人臉檢測模型,具有很高的檢測精度。Zhu等人[110]提出的CoupleNet,如圖13所示將網絡分為兩部分,一部分利用全卷積整合局部信息,另一部分采用全局卷積獲得全局信息,最后通過通道拼接在一起,達到引入上下文信息的效果。此后他們又在CoupleNet基礎上引入注意力機制,將注意力相關信息和物體的全局及局部信息結合起來,達到引入上下文信息,以提高檢測性能。首先設計了一個級聯注意力結構來感知圖像的全局場景,并生成與類別有關的注意力圖。然后,將注意力圖譜編碼到網絡中,以獲得物體感知的特征。接下來,同時提出一個獨特的全卷積耦合結構,將物體的全局結構和局部部分結合起來,進一步制定一個辨別性的特征表示。為了充分挖掘全局和局部屬性,還設計了不同的耦合策略和歸一化方式,以充分利用全局和局部信息之間的互補優勢,實驗證明了方法的有效性[111]。

圖13 CoupleNet網絡結構Fig.13 CoupleNet structure
谷歌團隊Qiao等人[112]提出的DetectoRS網絡也引入了上下文信息以提高檢測性能,首先設計了可轉換的空洞卷積(switchable atrous convolution,SAC),然后在SAC的主要組件前后連接兩個全局上下文模塊,最后在宏觀層面上,提出遞歸特征金字塔(recursive feature pyramid,RFP),并結合了從特征金字塔網絡到自下而上的骨干層的額外反饋連接。最終在COCO數據集獲得了54.7%的準確率。后續學者也在其他的網絡上引入上下文信息以提高檢測性能。孔慧芳等人[113]為提升分割精度,提出一種基于特征上下文編碼的實時語義分割網絡FCNet。張馨月等人[114]在SSD模型融合特征增強和自注意力,并且深層增強模塊利用路徑深層多尺度特征圖生成的上下文信息增強深層特征信息,有利于提取特征。引入上下文信息在目前的檢測領域也比較常用,一般都是與其他網絡結構融合在一起,后續也會應用到小目標檢測的領域內,最大限度地發揮它的優勢,提高神經網絡模型的小目標檢測性能。除此之外,Yu等人[115]構建了一個有效的場景分割前背景。它利用監督嵌入上下文先驗層的親和力損失來區分不同的上下文依賴關系。為了把上下文優先嵌入到網絡中,提出了一個上下文優先網絡(CPNet),由主干網絡和上下文優先層構成。聚合模塊用于聚合用于推理上下文關系的空間信息,并嵌入到上下文前一層。大量的定量和定性比較表明,與目前最先進的場景分割方法相比,所提出的CPNet具有良好的性能。Lim等人[116]通過融合多尺度特征,利用不同層次的附加特征作為上下文信息;同時還用一種注意力機制的目標檢測方法,該方法能夠聚焦圖像中小目標的,還能夠包含目標層的上下文信息,能夠提高檢測小目標的精度。
基于引入上下文信息的方法挖掘利用了圖像中目標與目標之間的關系及目標與周圍像素之間的關聯信息,提高了小目標檢測算法的性能。但是也存在小目標之間的、小目標與周圍環境之間關聯性小,沒有其他可以輔助小目標檢測的物體也會給上下文學習方法造成難題,同時上下文信息混合使用,隨著圖像之間關聯增加,使得檢測模型的計算量增長變大,使模型的可擴展性較差。但是引入上下文信息的應用就是致力于模仿人類的認知系統,還可以應用于語音識別等多種對人類感知信息的方式的模仿,可以提高認知、檢測的準確性,推動小目標檢測領域向前發展。
除了上述提到的六種方法,小目標檢測還有很多優秀的算法。根據應用場景對激活函數進行相應的調整,達到小目標檢測當下最佳效果。常用的是非線性激活函數包括Swish、ReLU、Sigmod等。Ramachandran等人[117]用Swish激活函數優化原有激活函數飽和的問題;Lin等人[118]提出了一種改進的ReLU分割校正Activate函數,通過改進傳統的卷積神經網絡,加入局部響應歸一化層,并使用最大堆疊等方法,可改善圖像識別精度。徐浩等人[119]采用h-swish和s-sigmoid激活函數替換SSD模型中的相應的函數,這樣可以降低模型訓練時的計算量,提升目標車輛的檢測速度。周非等人[120]在CNN中使用sigmoid和softmax兩種激活函數來計算反饋誤差,相比使用一種激活函數反饋的誤差更精準,使得檢測時結果更準確。
池化層是目標檢測的重要處理步驟之一,池化層往往在卷積層后面,通過池化來降低卷積層輸出的特征向量,同時改善結果,但是也存在一定問題,為此Hu等人[121]改進池化層結構來解決小目標池化后失真的問題。劉淼等人[122]提出了一種指數可學習的冪函數softmax池化層,可提高檢測率。
優化損失函數也是深度學習目標檢測中不可或缺的一部分,并在小目標檢測中也取得了一定的成效。在不同模型中要么使用其他損失函數,要么對原損失函數進行改善,徐浩等人[119]采用了Focal Loss替換SSD網絡中的損失函數,可減少易分樣本損失對總損失的影響,提高模型的準確率。Lu等人[123]采用自適應遞歸搜索技術,在損失函數部分設置加權系數等方法。劉安旭等人[124]在卷積空間傳播網絡上使用深度誤差對數、深度信息梯度及表面法線三種損失函加權組合作為最終的損失函數,增加了目標物體的邊緣信息,減少邊界混合。目前很多學者也在這方面進行更深入的探索,以達到對小目標檢測的最佳效果。
從應用角度來說,很多復雜環境下不具備高性能的GPU,需要將目標檢測部署在低性能CPU或移動端。過大的網絡模型導致程序運行緩慢或無法運行,難以滿足實時檢測的要求。為了提高小目標的檢測性能,開始將模型輕量化處理,如常用的SqueezeNet[125]、MobileNet[126-128]、ShuffleNet[129-130],并且應用于深度學習網絡中,模型的介紹如表2所示。模型輕量化可提高檢測速度,如何提升檢測精度也是重點,在應用輕量化的同時,學者們也提出了與輕量化模型結合的目標檢測算法,如表3所示[131-137]。此外人們常用深度可分離卷積[138]、通道交換[139]、神經網絡搜索技術[140]等方法來降低計算量以滿足不同應用場景。

表2 常用輕量化網絡模型介紹Table 2 Introduction to commonly used lightweight network models

表3 結合輕量化策略的目標檢測方法Table 3 Object detection methods combined with lightweighting strategies
從以上六個主要研究方向入手,對小目標檢測算法的優缺點進行了整理和總結,并將其放在表4中。此外,還有部分研究學者發現的基于深度學習的小目標檢測算法也放在表4中[141-146],可以看出,小目標檢測改進算法在數據預處理、特征增強與豐富等方面進行了改進,仍存在很多不足,需要各位學者共同研究與發展。

表4 小目標檢測研究方向優缺點總結Table 4 Summary of advantages and disadvantages of research direction of small target detection
數據集作為目標檢測的關鍵一環,除了上面提到的COCO數據集,還有一些公開的數據集,為此對這些數據集進行整理。按照類型對數據集進行了分類:交通標志數據集、人臉檢測數據集、遙感數據集、水下圖像數據集、小行人及醫學影像數據集等,數據集雖不止這么多種類,但是小目標多存在于上述提到的數據集中,將其整理在表5中。

表5 小目標檢測數據集信息Table 5 Small target detection data set information
本文回顧了深度學習的小目標檢測算法,并對已有的算法進行歸納總結。重點關注了當下檢測相對困難的小目標檢測問題,從六個方面分析了近些年來國內外小目標檢測算法,雖然現有的檢測算法已經取得一定成效,但是對于精度和速度來說遠不如大、中目標的檢測效果好。隨著小目標場景應用廣泛性會對小目檢測性能的要求提高,因此小目標性能還值得進一步研究。
(1)多尺度特征融合方面:FPN結構與不同目標檢測方法結合,通過多尺度特征融合獲得更多的特征信息提升小目標檢測性能。但FPN本身屬于人工設計,這種手工設計的特征金字塔結構具有局限性;為此使用神經架構搜索等方式對特征金字塔結構進行設計,通過訓練自動生成最優的特征金字塔結構將成為研究的重點。
(2)完善訓練方式:單一數據集包含信息較少,限制網絡作用發揮,小目標檢測往往需對大量數據進行訓練才能提升其精度。YOLOv2提出Image和COCO數據集,通過樹型結構將兩者進行有機整合,使訓練實施成功,因此利用數據集聯合訓練方式成為未來研方向之一。如果將包含大量小目標信息的遙感衛星圖像數據集、人臉識別等數據集相結合進行訓練,將提升小目標檢測的適應性。通過不同分辨率的輸入進行多尺度訓練可提高網絡對不同尺度檢測任務的適應性,從而更好地檢測出小目標,因此多尺度訓練方法也是提高小目標檢測性能的發展方向之一。
(3)模型可解釋性:小目標檢測的模型改進大多是基于實驗結果的經驗評估或者工程應用中的工程經驗。很多模型擁有數千萬甚至更多的參數,但目前從學術研究來看只是大量數值擬合得到的結果,無法獲得參數本身分布規律。而大量卷積堆疊無法清楚了解模型的某一部分究竟從圖像中學習到了哪些知識,只有通過不斷提高小目標檢測模型的可解釋性等方式,才能更好地理解模型本身,提出更有針對性的小目標檢測方法。
(4)完善檢測數據集:深度學習發展離不開數據集,在文中也提到了小目標檢測的重難點之一是由于數據集不夠完善造成的。雖然現在已經在使用數據增強的方式在改善這種情況,但是始終不能從根本上解決問題,因此需要考慮建立一個特定的小目標檢測數據集,作為訓練樣本的方法。
(5)結合傳統方法。深度學習方法雖是近些年的主流檢測方法,但是受小目標本身包含信息少的限制,利用深度卷積網絡多次卷積對特征信息提取不太理想。因此考慮傳統的一些方式提取小目標特征,如隨機森林法、特征匹配等,再和深度學習結合,可能會得到相對好一些的效果。