天天看點

目标檢測 CV-Object Detection 簡述(ZJU報告)

目标檢測的任務是對圖像中的物體進行定位、并進一步完成識别和分類;目标檢測對無人駕駛、視訊監控、圖文互動等任務提供了必要的資訊。接下來,本文将對利用CNN進行目标檢測的算法進行總數,對相關算法的發展脈絡、優缺點進行分析。具體地,本文對目标檢測的介紹分為三個部分,第一部分介紹基于候選區域的二階段檢測方法,主要有R-CNN系列算法;第二部分重點讨論單次檢測器,包括SSD、YOLO系列、RetinaNet等模型;第三部分包含具體模型設計選擇的相關内容。

1. 二階段目标檢測

Selective Search[1]是傳統目标檢測算法的代表。其思路為二階段檢測算法的代表。在第一個階段,将每個獨立的像素作看作一組,然後,自底向上地将紋理兩個最接近的組合并,直到所有區域都結合在一起。并基于最終得到的候選區域ROI對框内目标進行分類(使用SVM訓練分類器),模型過程如圖1所示。

目标檢測 CV-Object Detection 簡述(ZJU報告)

​ 圖1. Selective Search流程圖

1.1. 滑動視窗檢測器

自從AlexNet[2]赢得2012 ILSVRC challenge的第一名,利用CNN進行圖像分類成為行業主流。基于CNN強大的分類能力,人們提出使用CNN進行目标檢測。一種暴力搜尋的方法是使用滑動視窗,即從左到右,從上到下地在圖檔上滑動不同比例、不同尺度的視窗(見圖2),并對視窗内部的圖像區域進行分類。

目标檢測 CV-Object Detection 簡述(ZJU報告)

​ 圖2. 滑動視窗檢測器

具體地,在分類步驟,對于每一個候選視窗,人們使用CNN分類器提取4096-維的特征,并利用得到的特征進行框位置精确回歸、以及訓練一個SVM進行目标類别識别。

1.2. R-CNN

基于滑動視窗的候選框選取方法過于暴力,計算開銷過大。是以,R-CNN[3]加入了一個Region Proposal的步驟,使用Selective Search先提取大約2000個感興趣區域(ROI),這些區域被縮放為固定大小的圖像,然後再使用CNN進行分類和框位置回歸,R-CNN的流程如圖3所示。

目标檢測 CV-Object Detection 簡述(ZJU報告)

圖3. R-CNN模型流程圖

1.3. Fast R-CNN

R-CNN需要盡可能多的提出ROI來保證檢測的準确度,且ROI之間的重疊現象十分常見。是以,R-CNN在訓練和測試階段的速度都較慢;值得注意的是,我們在同一圖檔中利用Region Proposal提出了2000個候選框,這些候選框對應的圖像全部都要獨立地通過CNN來提取特征,該過程中有大量的備援計算。

​ 為了解決特征的複用問題,Fast R-CNN[4]提出使用一個CNN對整張圖像進行特征提取,而後利用CNN保持空間特征位置的性質,在特征圖上使用選擇性搜尋,生成ROI并利用對應的特征塊進行後續的框回歸以及分類任務。為了保持後續任務輸入特征塊分辨率的一緻性,模型在選取ROI時使用了ROI池化操作來使特征塊變為同一分辨率。得益于規避了重複的特征提取,Fast R-CNN明顯地縮短了運作時間。模型流程如圖4所示。

​ 與圖3對比可知,Fast R-CNN将特征提取過程抽出循環外。實驗結果表明,Fast R-CNN在訓練階段比R-CNN快10倍,在測試階段快150倍。

​ 此外,Fast R-CNN将原本的SVM分類器更改為端到端的CNN分類器,進而可以端到端地進行多任務(框回歸、分類)訓練,這樣的結構改變進一步提升了模型的準确性。

目标檢測 CV-Object Detection 簡述(ZJU報告)

圖4. Fast R-CNN模型流程圖

1.4. Faster R-CNN

Fast R-CNN整個架構中,仍有一個不可被端到端訓練的子產品——即候選框提取步驟,是以其模型準确度很大程度上取決于選擇性搜尋算法的性能;另一方面,傳統的候選框提取算法不可并行在GPU上運作,是以速度較慢,成為整個模型的瓶頸。以Fast R-CNN為例,模型總運作時間為2.3秒,其中2秒花費在選取2000個候選區域步驟。

目标檢測 CV-Object Detection 簡述(ZJU報告)

​ 圖5. Faster R-CNN模型流程圖

基于這一觀察,Ren等人在Faster R-CNN[5]中提出了Region Proposal Network(RPN),即引入一個CNN網絡完成選擇候選框的任務。如圖5所示,Faster R-CNN的模型結構與Fast R-CNN基本相同,差別是使用RPN替代了原有的候選框提取算法。

​ RPN的具體訓練過程如下:在提取好的特征層上滑動一個的小卷積窗,通過一個輕量級的網絡,分别預測出2k個類别得分(表示是否為物體)、4k個候選框位置坐标;對于特征層的一個特定位置,在其原圖上選取不同尺度、不同比例的k個Anchor box(錨點框),然後與Ground Truth标注好的物體框進行比對,計算損失。RPN的示意圖見圖6.

​ 由于引入了RPN,Faster R-CNN得以實作完整的端到端訓練,同時,RPN可以在GPU上并行計算以加速整個模型。R-CNN系列模型的速度對比見圖6.

目标檢測 CV-Object Detection 簡述(ZJU報告)

​ 圖6. Region Proposal Network 及 模型速度對比

至此,我們介紹完了目标檢測領域的主流二階段模型。後續二階段檢測工作如R-FCN[6]、Mask R-CNN[7]、FPN[8]等均在已有網絡架構上進行修改,或使用全卷積、或加入多任務學習、或加入多尺度特征圖以提升網絡的泛化性能。

2. 單次目标檢測器

接下來,我們将介紹單次目标檢測器,包括SSD[9],YOLO(V1[10],V2[11],V3[12])。我們還将讨論多尺度特征圖、不同損失函數設計對檢測器準确率的影響。

​ 二階段檢測算法大多包含ROI生成階段、分類與框回歸階段,這樣coarse-to-fine的流程有利于提升模型的準确性,但消耗了大量的計算資源,即便Faster R-CNN已經比原始R-CNN速度提升了數十倍,但在Pascal VOC[14]測試集上仍隻能以7 FPS的速度運作。為了追求更快的速度,研究人員開始重新審視整個檢測模型的流程。

2.1. YOLO(V1)

注意到RPN的實際運作時間很快,但其隻輸出大緻的框位置以及二分類結果(該框内是否包含任一目标)。是以,一種思路是擴充RPN的分類器,使其不再隻輸出二分類的結果,而是包含對所有類别的預測,整個過程中為了避免選取ROI帶來的速度損失,仍保留類似錨點的設定。這就是YOLO v1[10]的模型思路,其模型見圖7.

​ YOLO的模型非常簡潔,實際運作速度也比二階段算法的速度快很多。但其精确度相較二階段算法有明顯的差距。YOLO難以檢測出太遠或太近的物體,如圖7所示,YOLO未能檢測出圖像左下角近處的聖誕老人。

目标檢測 CV-Object Detection 簡述(ZJU報告)

圖7. YOLO v1 模型流程圖 及 檢測效果

2.2. SSD

注意到YOLO對于多尺度物體檢測效果較差,SSD[9]提出使用多個尺度的CNN特征層進行分類以及框回歸,以期模型對不同尺度的目标有更高的敏感度。

​ 具體地,SSD使用VGG-16[15]作為特征抽取器,在特征下采樣的過程中,SSD直接使用VGG不同層(對應不同分辨率)的特征圖進行框回歸及分類。這樣主要解決了卷積下采樣過程中深層特征低分辨率、無法識别出較小物體的問題。SSD對多尺度特征層的利用如圖8所示。

目标檢測 CV-Object Detection 簡述(ZJU報告)

​ 圖8. SSD利用多尺度特征進行預測

2.3. YOLO(V2, V3)

初版YOLO的模型設計較為簡單,其特點我們已在2.1節介紹,該版本的主要貢獻是為輕量級單次檢測器的模型設計提供了基礎思路。但受限于特征圖分辨率單一、網絡backbone性能較差等問題,其模型至今已缺少實用價值。

​ YOLO v2[12]加入了如Batch Normalization、次元先驗、定位預測、多尺度等操作,使得模型在VOC測試集的準确率(mAP)由63.4提升至最高78.6。

​ YOLO v3[13]在之前工作的基礎上換用了更新的CNN網絡結構,使用Darknet-53作為網絡backbone,加入了Depth-wise Separate卷積、類似ResNet的Skip Connection等子產品,使CNN在保持輕量級的同時,提升了準确率。同時,v3版本中加入了下文中将介紹的特征金字塔網絡FPN,極大提升了模型對小物體的識别率。圖9展示了YOLO v2與其他多個檢測模型在COCO檢測資料集上的性能對比。

目标檢測 CV-Object Detection 簡述(ZJU報告)

​ 圖9. YOLO v3模型性能

3. 模型設計與選擇

3.1. FPN與多尺度特征

檢測不同尺度的物體,尤其是小物體,是單次、二階段目标檢測算法共同的難點。為此,FPN[8]設計了更好的多尺度特征提取模型。FPN主要改進了特征提取器(Feature Extractor),在原有CNN基礎上設計了金字塔結構的特征圖,如圖10所示,FPN包含bottom-up以及top-down兩條特征通路。Bottom-up通路由普通CNN構成,用于特征提取,随着層數加深,特征圖的分辨率降低,其包含的語義資訊增多;為了增加底層高分辨率特征圖的語義資訊,FPN設計了Top-down通路,進行高分辨率特征圖的重建,并加入Skip Connection,保留了一定局部的空間資訊。

目标檢測 CV-Object Detection 簡述(ZJU報告)

​ 圖10. FPN的金字塔多尺度特征圖結構

FPN作為一種特征提取器,被廣泛應用于各種單次、二階段檢測器、甚至其他視覺任務中,對提升準确度起到重要作用。

3.2. RetinaNet與Focal Loss

在各種視覺任務中,不同類别樣本的資料不平衡對于模型準确性的影響很大。為此,RetinaNet[13]提出采用Focal loss,即在訓練時對于識别準确率較高的類别,動态地減少其類别的損失權重。進而達到相對均衡的訓練過程。

3.3. 特征提取器

不同的特征提取器對于最終目标檢測的準确率影響會非常大。圖11展示了不同CNN Backbone對于檢測器精度的影響。在具體任務中,需要根據實際需求對速度和準确率進行平衡,選取對應的特征提取器。

目标檢測 CV-Object Detection 簡述(ZJU報告)

​ 圖11. 不同特征提取器對于檢測準确率的影響

4. 總結與趨勢

我們介紹了多種不同的目标檢測模型,包括更精确的二階段檢測算法、速度更快的單次目标檢測器,它們之間的聯系,以及一些模型設計的技巧,這些算法均有着廣泛的實際應用場景。近來,人們開始着重研究Anchor-Free的單次目标檢測器,試圖在不提取ROI的情況下得到更高的檢測準确率,未來,研究将繼續 朝着将二者統一的方向發展,以求達到準确率與速度的平衡。

參考文獻

[1] Van de Sande, Koen EA, et al. “Segmentation as selective search for object recognition.” ICCV. Vol. 1. No. 2. 2011.

[2] Krizhevsky, Alex, Ilya Sutskever, and Geoffrey E. Hinton. “Imagenet classification with deep convolutional neural networks.” Advances in neural information processing systems. 2012.

[3] Girshick, Ross, et al. “Rich feature hierarchies for accurate object detection and semantic segmentation.” Proceedings of the IEEE conference on computer vision and pattern recognition. 2014.

[4] Girshick, Ross. “Fast r-cnn.” Proceedings of the IEEE international conference on computer vision. 2015.

[5] Ren, Shaoqing, et al. “Faster r-cnn: Towards real-time object detection with region proposal networks.” Advances in neural information processing systems. 2015.

[6] Dai, Jifeng, et al. “R-fcn: Object detection via region-based fully convolutional networks.” Advances in neural information processing systems. 2016.

[7] He, Kaiming, et al. “Mask r-cnn.” Proceedings of the IEEE international conference on computer vision. 2017.

[8] Lin, Tsung-Yi, et al. “Feature pyramid networks for object detection.” Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2017.

[9] Liu, Wei, et al. “Ssd: Single shot multibox detector.” European conference on computer vision. Springer, Cham, 2016.

[10] Redmon, Joseph, et al. “You only look once: Unified, real-time object detection.” Proceedings of the IEEE conference on computer vision and pattern recognition. 2016.

[11] Redmon, Joseph, and Ali Farhadi. “YOLO9000: better, faster, stronger.” Proceedings of the IEEE conference on computer vision and pattern recognition. 2017.

[12] Redmon, Joseph, and Ali Farhadi. “Yolov3: An incremental improvement.” arXiv preprint arXiv:1804.02767 (2018).

[13] Lin, Tsung-Yi, et al. “Focal loss for dense object detection.” Proceedings of the IEEE international conference on computer vision. 2017.

[14] Everingham, Mark, et al. “The pascal visual object classes (voc) challenge.” International journal of computer vision 88.2 (2010): 303-338.

he IEEE international conference on computer vision. 2017.

[14] Everingham, Mark, et al. “The pascal visual object classes (voc) challenge.” International journal of computer vision 88.2 (2010): 303-338.

[15] Simonyan, Karen, and Andrew Zisserman. “Very deep convolutional networks for large-scale image recognition.” arXiv preprint arXiv:1409.1556 (2014).

繼續閱讀