1 背景介紹
目標檢測,object detection,就是在給定的圖片中精確找到物體所在位置,并標注出物體的類別。
目標檢測要解決的問題有兩個:物體在哪里,物體是什么的整個流程問題。
目標檢測問題的難點:物體的尺寸變化范圍很大;擺放物體的角度,姿態(tài)不定;而且可以出現(xiàn)在圖片的任何地方;物體還可以是多個類別。
目前主要算法分兩類:1) 候選區(qū)域/框 + 深度學習分類;2) 基于深度學習的回歸方法
目標檢測中有很大一部分工作是做圖像分類。對于圖像分類,不得不提的是2012年ImageNet大規(guī)模視覺識別挑戰(zhàn)賽(ILSVRC)上,機器學習泰斗 Geoffrey Hinton 教授帶領學生Krizhevsky使用卷積神經(jīng)網(wǎng)絡將ILSVRC分類任務的Top-5 error降低到了15.3%,而使用傳統(tǒng)方法的第二名 top-5 error高達 26.2%。
此后,卷積神經(jīng)網(wǎng)絡CNN占據(jù)了圖像分類任務的絕對統(tǒng)治地位。
2 候選區(qū)域+深度學習
通過提取候選區(qū)域,并對相應區(qū)域進行以深度學習方法為主的分類的方案,如:
2.1 R-CNN(Selective Search + CNN + SVM)
先找出圖中目標可能出現(xiàn)的位置,即候選區(qū)域(Region Proposal)。
利用圖像中的紋理、邊緣、顏色等信息,可以保證在選取較少窗口(幾千甚至幾百)的情況下保持較高的召回率(Recall)。
有了候選區(qū)域,剩下的工作實際就是對候選區(qū)域進行圖像分類的工作(特征提取+分類)。
2014年,RBG(Ross B. Girshick)使用 Region Proposal + CNN代替?zhèn)鹘y(tǒng)目標檢測使用的滑動窗口+手工設計特征,設計R-CNN框架,使得目標檢測取得巨大突破,并開啟了基于深度學習目標檢測的熱潮。
R-CNN的簡要步驟如下
輸入測試圖像
利用選擇性搜索Selective Search算法在圖像中從下到上提取2000個左右的可能包含物體的候選區(qū)域Region Proposal
因為取出的區(qū)域大小各自不同,所以需要將每個Region Proposal縮放(warp)成統(tǒng)一的227x227的大小并輸入到CNN,將CNN的fc7層的輸出作為特征
將每個Region Proposal提取到的CNN特征輸入到SVM進行分類
R-CNN 存在一個較大的問題:R-CNN雖然不再像傳統(tǒng)方法那樣窮舉,但R-CNN流程的第一步中對原始圖片通過Selective Search提取的候選框region proposal多達2000個左右,而這2000個候選框每個框都需要進行CNN提特征+SVM分類,計算量很大,導致R-CNN檢測速度很慢,一張圖都需要47s。
2.2 SPP-net(ROI Pooling)
SPP:Spatial Pyramid Pooling(空間金字塔池化)
SPP-Net是出自2015年發(fā)表在IEEE上的論文-《Spatial Pyramid Pooling in Deep ConvolutionalNetworks for Visual Recognition》
2.3 Fast R-CNN(Selective Search + CNN + ROI)
Fast R-CNN就是在R-CNN的基礎上采納了SPP Net方法,對R-CNN作了改進,使得性能進一步提高。
與R-CNN框架圖對比,可以發(fā)現(xiàn)主要有兩處不同:一是最后一個卷積層后加了一個ROI pooling layer,二是損失函數(shù)使用了多任務損失函數(shù)(multi-task loss),將邊框回歸Bounding Box Regression 直接加入到CNN網(wǎng)絡中訓練。
Fast-RCNN 很重要的一個貢獻是成功的讓人們看到了 Region Proposal + CNN 這一框架實時檢測的希望,原來多類檢測真的可以在保證準確率的同時提升處理速度,也為后來的Faster R-CNN做下了鋪墊。
2.4 Faster R-CNN(RPN + CNN + ROI)
https://arxiv.org/pdf/1506.01497.pdf
Fast R-CNN存在性能瓶頸:選擇性搜索,找出所有的候選框,也非常耗時。能不能找出一個更加高效的方法來求出這些候選框呢?
解決方法:加入一個提取邊緣的神經(jīng)網(wǎng)絡,也就說找到候選框的工作也交給神經(jīng)網(wǎng)絡來做。
以上四種算法都基于region proposal的R-CNN系列,是目標檢測技術領域主要的一個分支。
3 基于深度學習的回歸方法
3.1 YOLO1
YOLO,全稱:You Only Look Once
以上介紹的 R-CNN 系列很難滿足實時性的要求。YOLO一類的方法慢慢顯現(xiàn)出其重要性,這類方法使用回歸的思想,利用整張圖作為網(wǎng)絡的輸入,直接在圖像的多個位置上回歸出這個位置的目標邊框,以及目標所屬的類別。
YOLO將目標檢測任務轉(zhuǎn)換成一個回歸問題,大大加快了檢測的速度,使得 YOLO 可以每秒處理45 張圖像。而且由于每個網(wǎng)絡預測目標窗口時使用的是全圖信息,使得false positive比例大幅降低(充分的上下文信息)。
但是YOLO也存在問題:沒有了Region Proposal機制,只使用7*7的網(wǎng)格回歸會使得目標不能非常精準的定位,這也導致了YOLO的檢測精度并不是很高。
3.2 YOLO2
https://arxiv.org/pdf/1612.08242.pdf
YOLOv2 相對v1版本,在繼續(xù)保持處理速度的基礎上,從預測更準確(Better),速度更快(Faster),識別對象更多(Stronger)這三個方面進行了改進。其中識別更多對象也就是擴展到能夠檢測9000種不同對象,稱之為YOLO9000。
YOLO v2 代表著比較先進的物體檢測水平,在多種監(jiān)測數(shù)據(jù)集中都要快過其他檢測系統(tǒng),并可以在速度與精確度上進行權(quán)衡。
3.3 YOLO3
https://pjreddie.com/media/files/papers/YOLOv3.pdf
YOLO v3的模型比之前的模型復雜了不少,可以通過改變模型結(jié)構(gòu)的大小來權(quán)衡速度與精度。
速度上,YOLOv3 在實現(xiàn)相同準確度下要顯著地比其它檢測方法快。
改進之處:
1).多尺度預測 (類FPN)
2).更好的基礎分類網(wǎng)絡(類ResNet)和分類器 darknet-53,見下圖。
3). 分類器-類別預測:
YOLOv3不使用Softmax對每個框進行分類,主要考慮因素有兩個:
a. Softmax使得每個框分配一個類別(score最大的一個),而對于Open Images這種數(shù)據(jù)集,目標可能有重疊的類別標簽,因此Softmax不適用于多標簽分類。
b. Softmax可被獨立的多個logistic分類器替代,且準確率不會下降。
分類損失采用 binary cross-entropy loss
多尺度預測
每種尺度預測3個box, anchor的設計方式仍然使用聚類,得到9個聚類中心,將其按照大小均分給3中尺度.
尺度1: 在基礎網(wǎng)絡之后添加一些卷積層再輸出box信息.
尺度2: 從尺度1中的倒數(shù)第二層的卷積層上采樣(x2)再與最后一個16x16大小的特征圖相加,再次通過多個卷積后輸出box信息.相比尺度1變大兩倍.
尺度3: 與尺度2類似,使用了32x32大小的特征圖.
4 總結(jié)
最后總結(jié)兩類算法的不同:
RCNN, Fast-RCNN,F(xiàn)aster-RCNN是基于深度學習的分類方法。
YOLO系列是基于深度學習的回歸方法。
本文是我業(yè)余時間學習目標檢測的一篇整理文章,希望對目標檢測入門者有一定幫助。
-
圖像處理
+關注
關注
27文章
1289瀏覽量
56720 -
算法
+關注
關注
23文章
4607瀏覽量
92826 -
目標檢測
+關注
關注
0文章
209瀏覽量
15605 -
深度學習
+關注
關注
73文章
5500瀏覽量
121109
原文標題:圖像處理之目標檢測的入門總結(jié)
文章出處:【微信號:vision263com,微信公眾號:新機器視覺】歡迎添加關注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關推薦
評論