object detection
1 背景
圖像的object detection是圖像研究最基礎問題之一,能夠廣泛地應用到segmentation、OCR等經典問題。detection是對於給定的一副圖片,輸出物體所在的bounding box(x, y, w, h,下文簡稱為bbox)及該物體的類別。最近幾年深度學習對該問題帶來了極大地突破,經典的方法包括rcnn(region cnn)、fast rcnn、faster rcnn、yolo系列及ssd。
2 方法
這些系列方法都是圍繞三個問題:bbox的準確率、分類的準確率和性能,cnn已經幾乎完美地解決了圖像的分類問題,bbox的準確率和性能是這些方法的主要關注點。
2.1 rcnn
rcnn是將cnn應用於object detection的開山之作,大致流程可以分為四步:
a)selective search,用segmentation的方法,給detection問題提供候選框,大概2000個;輸入:一副圖片,輸出:2000個左右候選的bbox
b)特徵提取,藉助cnn對2000左右的候選bbox,提取特徵
c)分類&區域回歸,依據上述特徵對候選的bbox進行分類,一般是knn、svm
該文章的主要貢獻點是用cnn對候選的bbox進行特徵提取,替代之前的sift、hog等圖片的表示,提升了分類效果。
2.2 fast rcnn
rcnn中的每個候選的bbox都要進行一次cnn操作,在做inference的時候需要跑近2000次的cnn,非常耗時,fast rcnn引入spp net只對圖片進行一次cnn,而且將cnn應用到分類和回歸
fast rcnn的流程大致如下:
a)selective search,用segmentation的方法,給detection問題提供候選框,大概2000個;輸入:一副圖片,輸出:2000個左右候選的bbox
b)ROIPooling,對整張圖片進行一次cnn,根據pooling的操作,找到原始候選框在feature map里的框,然後利用spp net,將這些框映射到7*7的大小
c)分類&區域回歸,將ROIPooling的結果接入到對應的分類和回歸的loss,聯合訓練。
fast rcnn比起rcnn有兩個優點:1. 一次cnn,提升效率;2. 用cnn做分類和回歸。
2.3 faster rcnn
fast rcnn的候選proposal是從selective search獲取的,效率問題很嚴重,faster rcnn引入rpn網路,產出候選的proposal。faster rcnn的步驟大致如下:
a)RPN網路,找到每個feature map上的pixel對應原圖的pixel,作為每9個anchor的中心點,9個anchor是feature map的{1:1,1:2,2:1}*{128*128,256*256,512*512},然後將每個proposal進行分類和區域回歸,產出候選框
b)ROIPooling,對整張圖片進行一次cnn,根據pooling的操作,找到原始候選框在feature map里的框,然後利用spp net,將這些框映射到7*7的大小。
c)分類&區域回歸,將ROIPooling的結果接入到對應的分類和回歸的loss,聯合訓練。
faster rcnn的優勢是用rpn網路替換了原始的selective search的方法,極大地提升了候選框選取的效率和效果。個人理解是在利用規則隨機一部分候選框,然後在候選框上進行一次候選。
2.4 yolo
yolo的思想很簡單,將detection問題轉換成regression問題,大致的步驟如下:
a)圖像劃分,將圖像劃分成7*7=49個框,每個框隨機選取兩個候選框(依據中心點,隨機大小)
b)卷積操作,cnn後接inner production,最終輸出7*7*30維
c)區域回歸,接loss,30=5(x, y, w, h, iou)*2(a)獲取的)+20(分類)
yolo的思想非常直觀,只是將原始detection的問題轉換成regression問題。
2.5 ssd
考慮到faster rcnn的性能及yolo的效果,ssd是一種balance性能和效果的方法。主要的思路是在faster rcnn的基礎上增加了很多候選的anchor,通過非最大值抑制(NMS, Non-Maximum Suppression)對候選框進行選擇。大致的流程如下:
a)多系列RPN網路&非最大值抑制,ssd將原始rpn網路的輸出的feature map後接又接5層卷積,每個卷積的輸出都對應原圖中6個anchor,然後通過非最大值抑制篩選出來比較有可能包含object的anchor。
b)ROIPooling,對整張圖片進行一次cnn,根據pooling的操作,找到原始候選框在feature map里的框,然後利用spp net,將這些框映射到7*7的大小。
c)分類&區域回歸,將ROIPooling的結果接入到對應的分類和回歸的loss,聯合訓練。
ssd的優點是通過rpn的思想增加了更多的候選anchor,然後通過非最大值抑制來獲取更為準確的anchor,這是其比起faster rcnn提升效率的所在。一句話概括:SSD就是關於類別的多尺度RPN網路
基本思路:
- 基礎網路後接多層feature map
- 多層feature map分別對應不同尺度的固定anchor
- 回歸所有anchor對應的class和bounding box
3 總結
通過上述方法的介紹,object detection的大致流程可以分為3類:1. 候選框的選取;2. 特徵提取;3. 分類&區域回歸,大致的優化思路是在為了獲取更好地效果,引入更複雜的過程,為了降低性能開銷,在最原始階段做截斷,減少下游的性能壓力。
註:個人之言,僅供參考,歡迎相互討論。
推薦閱讀:
※目標檢測:SPPNet 論文閱讀
※目標檢測|YOLOv2原理與實現(附YOLOv3)
※目標檢測入門(三):基礎網路演進、分類與定位的權衡
※深度學習之目標檢測的前世今生(Mask R-CNN)
※論文解讀--用卷積網路基於視覺顯著性的方法提高人類檢測
TAG:深度學習DeepLearning | 圖像處理 | 目標檢測 |