亚洲狼人综合,本道综合精品,在线看福利影,国产亚洲精品久久久玫瑰,日韩欧美精品在线观看,日韩在线国产,欧美乱码一区二区三区

干貨 | 目標(biāo)檢測入門,看這篇就夠了(目標(biāo)檢測經(jīng)典模型回顧)

2018-03-19 16:59:04 csdn  點擊量: 評論 (0)
兩階段(2-stage)檢測模型兩階段模型因其對圖片的兩階段處理得名,也稱為基于區(qū)域(Region-based)的方法,我們選取R-CNN系列工作作為這一

 

兩階段(2-stage)檢測模型

 

兩階段模型因其對圖片的兩階段處理得名,也稱為基于區(qū)域(Region-based)的方法,我們選取R-CNN系列工作作為這一類型的代表。

 

R-CNN: R-CNN系列的開山之作

 

Rich feature hierarchies for accurate object detection and semantic segmentation

論文鏈接: 

https://arxiv.org/abs/1311.2524

 

本文的兩大貢獻:

 

1)CNN可用于基于區(qū)域的定位和分割物體;

2)監(jiān)督訓(xùn)練樣本數(shù)緊缺時,在額外的數(shù)據(jù)上預(yù)訓(xùn)練的模型經(jīng)過fine-tuning可以取得很好的效果。

 

第一個貢獻影響了之后幾乎所有2-stage方法,而第二個貢獻中用分類任務(wù)(Imagenet)中訓(xùn)練好的模型作為基網(wǎng)絡(luò),在檢測問題上fine-tuning的做法也在之后的工作中一直沿用。

 

傳統(tǒng)的計算機視覺方法常用精心設(shè)計的手工特征(如SIFT, HOG)描述圖像,而深度學(xué)習(xí)的方法則倡導(dǎo)習(xí)得特征,從圖像分類任務(wù)的經(jīng)驗來看,CNN網(wǎng)絡(luò)自動習(xí)得的特征取得的效果已經(jīng)超出了手工設(shè)計的特征。本篇在局部區(qū)域應(yīng)用卷積網(wǎng)絡(luò),以發(fā)揮卷積網(wǎng)絡(luò)學(xué)習(xí)高質(zhì)量特征的能力。

 

R-CNN網(wǎng)絡(luò)結(jié)構(gòu)

 

R-CNN將檢測抽象為兩個過程,一是基于圖片提出若干可能包含物體的區(qū)域(即圖片的局部裁剪,被稱為Region Proposal),文中使用的是Selective Search算法;二是在提出的這些區(qū)域上運行當(dāng)時表現(xiàn)最好的分類網(wǎng)絡(luò)(AlexNet),得到每個區(qū)域內(nèi)物體的類別。

 

另外,文章中的兩個做法值得注意。

 

IoU的計算

 

一是數(shù)據(jù)的準(zhǔn)備。輸入CNN前,我們需要根據(jù)Ground Truth對提出的Region Proposal進行標(biāo)記,這里使用的指標(biāo)是IoU(Intersection over Union,交并比)。IoU計算了兩個區(qū)域之交的面積跟它們之并的比,描述了兩個區(qū)域的重合程度。

 

文章中特別提到,IoU閾值的選擇對結(jié)果影響顯著,這里要談兩個threshold,一個用來識別正樣本(如跟ground truth的IoU大于0.5),另一個用來標(biāo)記負(fù)樣本(即背景類,如IoU小于0.1),而介于兩者之間的則為難例(Hard Negatives),若標(biāo)為正類,則包含了過多的背景信息,反之又包含了要檢測物體的特征,因而這些Proposal便被忽略掉。

 

另一點是位置坐標(biāo)的回歸(Bounding-Box Regression),這一過程是Region Proposal向Ground Truth調(diào)整,實現(xiàn)時加入了log/exp變換來使損失保持在合理的量級上,可以看做一種標(biāo)準(zhǔn)化(Normalization)操作。

 

小結(jié)

 

R-CNN的想法直接明了,即將檢測任務(wù)轉(zhuǎn)化為區(qū)域上的分類任務(wù),是深度學(xué)習(xí)方法在檢測任務(wù)上的試水。模型本身存在的問題也很多,如需要訓(xùn)練三個不同的模型(proposal, classification, regression)、重復(fù)計算過多導(dǎo)致的性能問題等。盡管如此,這篇論文的很多做法仍然廣泛地影響著檢測任務(wù)上的深度模型革命,后續(xù)的很多工作也都是針對改進這一工作而展開,此篇可以稱得上"The First Paper"。

 

Fast R-CNN: 共享卷積運算

 

Fast R-CNN

論文鏈接:

https://arxiv.org/abs/1504.08083

 

文章指出R-CNN耗時的原因是CNN是在每一個Proposal上單獨進行的,沒有共享計算,便提出將基礎(chǔ)網(wǎng)絡(luò)在圖片整體上運行完畢后,再傳入R-CNN子網(wǎng)絡(luò),共享了大部分計算,故有Fast之名。

 

Fast R-CNN網(wǎng)絡(luò)結(jié)構(gòu)

 

上圖是Fast R-CNN的架構(gòu)。圖片經(jīng)過feature extractor得到feature map, 同時在原圖上運行Selective Search算法并將RoI(Region of Interset,實為坐標(biāo)組,可與Region Proposal混用)映射到到feature map上,再對每個RoI進行RoI Pooling操作便得到等長的feature vector,將這些得到的feature vector進行正負(fù)樣本的整理(保持一定的正負(fù)樣本比例),分batch傳入并行的R-CNN子網(wǎng)絡(luò),同時進行分類和回歸,并將兩者的損失統(tǒng)一起來。

 

 

RoI Pooling圖示,來源:https://blog.deepsense.ai/region-of-interest-pooling-explained/

 

RoI Pooling 是對輸入R-CNN子網(wǎng)絡(luò)的數(shù)據(jù)進行準(zhǔn)備的關(guān)鍵操作。我們得到的區(qū)域常常有不同的大小,在映射到feature map上之后,會得到不同大小的特征張量。RoI Pooling先將RoI等分成目標(biāo)個數(shù)的網(wǎng)格,再在每個網(wǎng)格上進行max pooling,就得到等長的RoI feature vector。

 

文章最后的討論也有一定的借鑒意義:

 

  • multi-loss traing相比單獨訓(xùn)練classification確有提升

  • multi-scale相比single-scale精度略有提升,但帶來的時間開銷更大。一定程度上說明CNN結(jié)構(gòu)可以內(nèi)在地學(xué)習(xí)尺度不變性

  • 在更多的數(shù)據(jù)(VOC)上訓(xùn)練后,精度是有進一步提升的

  • Softmax分類器比"one vs rest"型的SVM表現(xiàn)略好,引入了類間的競爭

  • 更多的Proposal并不一定帶來精度的提升

小結(jié)

 

Fast R-CNN的這一結(jié)構(gòu)正是檢測任務(wù)主流2-stage方法所采用的元結(jié)構(gòu)的雛形。

 

文章將Proposal, Feature Extractor, Object Classification&Localization統(tǒng)一在一個整體的結(jié)構(gòu)中,并通過共享卷積計算提高特征利用效率,是最有貢獻的地方。

 

Faster R-CNN: 兩階段模型的深度化

 

Faster R-CNN: Towards Real Time Object Detection with Region Proposal Networks

論文鏈接:

https://arxiv.org/abs/1506.01497

 

Faster R-CNN是2-stage方法的奠基性工作,提出的RPN網(wǎng)絡(luò)取代Selective Search算法使得檢測任務(wù)可以由神經(jīng)網(wǎng)絡(luò)端到端地完成。粗略的講,F(xiàn)aster R-CNN = RPN + Fast R-CNN,跟RCNN共享卷積計算的特性使得RPN引入的計算量很小,使得Faster R-CNN可以在單個GPU上以5fps的速度運行,而在精度方面達(dá)到SOTA(State of the Art,當(dāng)前最佳)。

 

本文的主要貢獻是提出Regional Proposal Networks,替代之前的SS算法。RPN網(wǎng)絡(luò)將Proposal這一任務(wù)建模為二分類(是否為物體)的問題。

 

Faster R-CNN網(wǎng)絡(luò)結(jié)構(gòu)

 

第一步是在一個滑動窗口上生成不同大小和長寬比例的anchor box(如上圖右邊部分),取定IoU的閾值,按Ground Truth標(biāo)定這些anchor box的正負(fù)。于是,傳入RPN網(wǎng)絡(luò)的樣本數(shù)據(jù)被整理為anchor box(坐標(biāo))和每個anchor box是否有物體(二分類標(biāo)簽)。

 

RPN網(wǎng)絡(luò)將每個樣本映射為一個概率值和四個坐標(biāo)值,概率值反應(yīng)這個anchor box有物體的概率,四個坐標(biāo)值用于回歸定義物體的位置。最后將二分類和坐標(biāo)回歸的損失統(tǒng)一起來,作為RPN網(wǎng)絡(luò)的目標(biāo)訓(xùn)練。

 

由RPN得到Region Proposal在根據(jù)概率值篩選后經(jīng)過類似的標(biāo)記過程,被傳入R-CNN子網(wǎng)絡(luò),進行多分類和坐標(biāo)回歸,同樣用多任務(wù)損失將二者的損失聯(lián)合。

 

小結(jié)

 

Faster R-CNN的成功之處在于用RPN網(wǎng)絡(luò)完成了檢測任務(wù)的"深度化"。使用滑動窗口生成anchor box的思想也在后來的工作中越來越多地被采用(YOLO v2等)。這項工作奠定了"RPN+RCNN"的兩階段方法元結(jié)構(gòu),影響了大部分后續(xù)工作。

 

單階段(1-stage)檢測模型

 

單階段模型沒有中間的區(qū)域檢出過程,直接從圖片獲得預(yù)測結(jié)果,也被成為Region-free方法。

 

YOLO

 

You Only Look Once: Unified, Real-Time Object Detection

論文鏈接:

https://arxiv.org/abs/1506.02640

 

YOLO是單階段方法的開山之作。它將檢測任務(wù)表述成一個統(tǒng)一的、端到端的回歸問題,并且以只處理一次圖片同時得到位置和分類而得名。

 

YOLO的主要優(yōu)點:

 

  • 快。

  • 全局處理使得背景錯誤相對少,相比基于局部(區(qū)域)的方法, 如Fast RCNN。

  • 泛化性能好,在藝術(shù)作品上做檢測時,YOLO表現(xiàn)比Fast R-CNN好。

 

YOLO網(wǎng)絡(luò)結(jié)構(gòu)

 

YOLO的工作流程如下:

 

1.準(zhǔn)備數(shù)據(jù):將圖片縮放,劃分為等分的網(wǎng)格,每個網(wǎng)格按跟Ground Truth的IoU分配到所要預(yù)測的樣本。

 

2.卷積網(wǎng)絡(luò):由GoogLeNet更改而來,每個網(wǎng)格對每個類別預(yù)測一個條件概率值,并在網(wǎng)格基礎(chǔ)上生成B個box,每個box預(yù)測五個回歸值,四個表征位置,第五個表征這個box含有物體(注意不是某一類物體)的概率和位置的準(zhǔn)確程度(由IoU表示)。測試時,分?jǐn)?shù)如下計算:

 

 

等式左邊第一項由網(wǎng)格預(yù)測,后兩項由每個box預(yù)測,以條件概率的方式得到每個box含有不同類別物體的分?jǐn)?shù)。 因而,卷積網(wǎng)絡(luò)共輸出的預(yù)測值個數(shù)為S×S×(B×5+C),其中S為網(wǎng)格數(shù),B為每個網(wǎng)格生成box個數(shù),C為類別數(shù)。

 

3.后處理:使用NMS(Non-Maximum Suppression,非極大抑制)過濾得到最后的預(yù)測框

 

損失函數(shù)的設(shè)計

 

YOLO的損失函數(shù)分解,來源:https://zhuanlan.zhihu.com/p/24916786

 

損失函數(shù)被分為三部分:坐標(biāo)誤差、物體誤差、類別誤差。為了平衡類別不均衡和大小物體等帶來的影響,損失函數(shù)中添加了權(quán)重并將長寬取根號。

 

小結(jié)

 

YOLO提出了單階段的新思路,相比兩階段方法,其速度優(yōu)勢明顯,實時的特性令人印象深刻。但YOLO本身也存在一些問題,如劃分網(wǎng)格較為粗糙,每個網(wǎng)格生成的box個數(shù)等限制了對小尺度物體和相近物體的檢測。

 

SSD: Single Shot Multibox Detector

 

SSD: Single Shot Multibox Detector

論文鏈接:

https://arxiv.org/abs/1512.02325

 

SSD網(wǎng)絡(luò)結(jié)構(gòu)

 

SSD相比YOLO有以下突出的特點:

 

  • 多尺度的feature map:基于VGG的不同卷積段,輸出feature map到回歸器中。這一點試圖提升小物體的檢測精度。

  • 更多的anchor box,每個網(wǎng)格點生成不同大小和長寬比例的box,并將類別預(yù)測概率基于box預(yù)測(YOLO是在網(wǎng)格上),得到的輸出值個數(shù)為(C+4)×k×m×n,其中C為類別數(shù),k為box個數(shù),m×n為feature map的大小。

小結(jié)

 

SSD是單階段模型早期的集大成者,達(dá)到跟接近兩階段模型精度的同時,擁有比兩階段模型快一個數(shù)量級的速度。后續(xù)的單階段模型工作大多基于SSD改進展開。

 

檢測模型基本特點

 

最后,我們對檢測模型的基本特征做一個簡單的歸納。

 

兩階段檢測模型Pipeline,來源:https://tryolabs.com/blog/2018/01/18/faster-r-cnn-down-the-rabbit-hole-of-modern-object-detection/

 

檢測模型整體上由基礎(chǔ)網(wǎng)絡(luò)(Backbone Network)和檢測頭部(Detection Head)構(gòu)成。前者作為特征提取器,給出圖像不同大小、不同抽象層次的表示;后者則依據(jù)這些表示和監(jiān)督信息學(xué)習(xí)類別和位置關(guān)聯(lián)。檢測頭部負(fù)責(zé)的類別預(yù)測和位置回歸兩個任務(wù)常常是并行進行的,構(gòu)成多任務(wù)的損失進行聯(lián)合訓(xùn)練。

 

檢測模型頭部并行的分支,來源同上

 

相比單階段,兩階段檢測模型通常含有一個串行的頭部結(jié)構(gòu),即完成前背景分類和回歸后,把中間結(jié)果作為RCNN頭部的輸入再進行一次多分類和位置回歸。這種設(shè)計帶來了一些優(yōu)點:

 

  • 對檢測任務(wù)的解構(gòu),先進行前背景的分類,再進行物體的分類,這種解構(gòu)使得監(jiān)督信息在不同階段對網(wǎng)絡(luò)參數(shù)的學(xué)習(xí)進行指導(dǎo)

  • RPN網(wǎng)絡(luò)為RCNN網(wǎng)絡(luò)提供良好的先驗,并有機會整理樣本的比例,減輕RCNN網(wǎng)絡(luò)的學(xué)習(xí)負(fù)擔(dān)

 

這種設(shè)計的缺點也很明顯:中間結(jié)果常常帶來空間開銷,而串行的方式也使得推斷速度無法跟單階段相比;級聯(lián)的位置回歸則會導(dǎo)致RCNN部分的重復(fù)計算(如兩個RoI有重疊)。

 

另一方面,單階段模型只有一次類別預(yù)測和位置回歸,卷積運算的共享程度更高,擁有更快的速度和更小的內(nèi)存占用。讀者將會在接下來的文章中看到,兩種類型的模型也在互相吸收彼此的優(yōu)點,這也使得兩者的界限更為模糊。

 
大云網(wǎng)官方微信售電那點事兒

責(zé)任編輯:售電衡衡

免責(zé)聲明:本文僅代表作者個人觀點,與本站無關(guān)。其原創(chuàng)性以及文中陳述文字和內(nèi)容未經(jīng)本站證實,對本文以及其中全部或者部分內(nèi)容、文字的真實性、完整性、及時性本站不作任何保證或承諾,請讀者僅作參考,并請自行核實相關(guān)內(nèi)容。
我要收藏
個贊
?