亚洲天堂网_国产中出_日韩激情网_97se.com_中国亚洲老少妇色视频

資源共享分類(lèi)
通信信號(hào) 圖像語(yǔ)音 神經(jīng)網(wǎng)絡(luò) 智能優(yōu)化 控制器 數(shù)值仿真 數(shù)學(xué)建模 其他專(zhuān)業(yè)

微信:HuangL1121
Q Q:1224848052
團(tuán)隊(duì):嘉興麥特萊博軟件開(kāi)發(fā)工作室
地址:嘉興港區(qū)
 
神經(jīng)網(wǎng)絡(luò)
MATLAB代做|FPGA代做|R-CNN論文解讀
來(lái)源:本站    日期:2019/2/25    瀏覽量:780  

功能描述:

object detection我的理解,就是在給定的圖片中精確找到物體所在位置,并標(biāo)注出物體的類(lèi)別。object detection要解決的問(wèn)題就是物體在哪里,是什么這整個(gè)流程的問(wèn)題。然而,這個(gè)問(wèn)題可不是那么容易解決的,物體的尺寸變化范圍很大,擺放物體的角度,姿態(tài)不定,而且可以出現(xiàn)在圖片的任何地方,更何況物體還可以是多個(gè)類(lèi)別。

object detection技術(shù)的演進(jìn):
RCNN->SppNET->Fast-RCNN->Faster-RCNN


上面的任務(wù)用專(zhuān)業(yè)的說(shuō)法就是:圖像識(shí)別+定位
圖像識(shí)別(classification):
輸入:圖片
輸出:物體的類(lèi)別
評(píng)估方法:準(zhǔn)確率

定位(localization):
輸入:圖片
輸出:方框在圖片中的位置(x,y,w,h)
評(píng)估方法:檢測(cè)評(píng)價(jià)函數(shù) intersection-over-union ( IOU ) 

卷積神經(jīng)網(wǎng)絡(luò)CNN已經(jīng)幫我們完成了圖像識(shí)別(判定是貓還是狗)的任務(wù)了,我們只需要添加一些額外的功能來(lái)完成定位任務(wù)即可。

定位的問(wèn)題的解決思路有哪些?
思路一:看做回歸問(wèn)題
看做回歸問(wèn)題,我們需要預(yù)測(cè)出(x,y,w,h)四個(gè)參數(shù)的值,從而得出方框的位置。



步驟1:
  • 先解決簡(jiǎn)單問(wèn)題, 搭一個(gè)識(shí)別圖像的神經(jīng)網(wǎng)絡(luò)
  • 在AlexNet VGG GoogleLenet上fine-tuning一下

 

步驟2:
  • 在上述神經(jīng)網(wǎng)絡(luò)的尾部展開(kāi)(也就說(shuō)CNN前面保持不變,我們對(duì)CNN的結(jié)尾處作出改進(jìn):加了兩個(gè)頭:“分類(lèi)頭”和“回歸頭”)
  • 成為classification + regression模式


步驟3:
  • Regression那個(gè)部分用歐氏距離損失
  • 使用SGD訓(xùn)練

 

步驟4:
  • 預(yù)測(cè)階段把2個(gè)頭部拼上
  • 完成不同的功能

 


這里需要進(jìn)行兩次fine-tuning
第一次在ALexNet上做,第二次將頭部改成regression head,前面不變,做一次fine-tuning

 

Regression的部分加在哪?

有兩種處理方法:
  • 加在最后一個(gè)卷積層后面(如VGG)
  • 加在最后一個(gè)全連接層后面(如R-CNN)

 

regression太難做了,應(yīng)想方設(shè)法轉(zhuǎn)換為classification問(wèn)題。
regression的訓(xùn)練參數(shù)收斂的時(shí)間要長(zhǎng)得多,所以上面的網(wǎng)絡(luò)采取了用classification的網(wǎng)絡(luò)來(lái)計(jì)算出網(wǎng)絡(luò)共同部分的連接權(quán)值。

 

思路二:取圖像窗口
  • 還是剛才的classification + regression思路
  • 咱們?nèi)〔煌拇笮〉摹翱颉?br />   • 讓框出現(xiàn)在不同的位置,得出這個(gè)框的判定得分
  • 取得分最高的那個(gè)框


左上角的黑框:得分0.5

右上角的黑框:得分0.75

左下角的黑框:得分0.6

右下角的黑框:得分0.8

根據(jù)得分的高低,我們選擇了右下角的黑框作為目標(biāo)位置的預(yù)測(cè)。
注:有的時(shí)候也會(huì)選擇得分最高的兩個(gè)框,然后取兩框的交集作為最終的位置預(yù)測(cè)。

疑惑:框要取多大?
取不同的框,依次從左上角掃到右下角。非常粗暴啊。

總結(jié)一下思路:
對(duì)一張圖片,用各種大小的框(遍歷整張圖片)將圖片截取出來(lái),輸入到CNN,然后CNN會(huì)輸出這個(gè)框的得分(classification)以及這個(gè)框圖片對(duì)應(yīng)的x,y,h,w(regression)。


這方法實(shí)在太耗時(shí)間了,做個(gè)優(yōu)化。
原來(lái)網(wǎng)絡(luò)是這樣的:



優(yōu)化成這樣:把全連接層改為卷積層,這樣可以提提速。

 

物體檢測(cè)(Object Detection)
當(dāng)圖像有很多物體怎么辦的?難度可是一下暴增啊。

那任務(wù)就變成了:多物體識(shí)別+定位多個(gè)物體
那把這個(gè)任務(wù)看做分類(lèi)問(wèn)題?

看成分類(lèi)問(wèn)題有何不妥?
  • 你需要找很多位置, 給很多個(gè)不同大小的框
  • 你還需要對(duì)框內(nèi)的圖像分類(lèi)
  • 當(dāng)然, 如果你的GPU很強(qiáng)大, 恩, 那加油做吧…

看做classification, 有沒(méi)有辦法優(yōu)化下?我可不想試那么多框那么多位置啊!
有人想到一個(gè)好方法:
找出可能含有物體的框(也就是候選框,比如選1000個(gè)候選框),這些框之間是可以互相重疊互相包含的,這樣我們就可以避免暴力枚舉的所有框了。



大牛們發(fā)明好多選定候選框的方法,比如EdgeBoxes和Selective Search。
以下是各種選定候選框的方法的性能對(duì)比。



有一個(gè)很大的疑惑,提取候選框用到的算法“選擇性搜索”到底怎么選出這些候選框的呢?那個(gè)就得好好看看它的論文了,這里就不介紹了。


R-CNN橫空出世
基于以上的思路,RCNN的出現(xiàn)了。

步驟一:訓(xùn)練(或者下載)一個(gè)分類(lèi)模型(比如AlexNet)

步驟二:對(duì)該模型做fine-tuning
  • 將分類(lèi)數(shù)從1000改為20
  • 去掉最后一個(gè)全連接層


步驟三:特征提取
  • 提取圖像的所有候選框(選擇性搜索)
  • 對(duì)于每一個(gè)區(qū)域:修正區(qū)域大小以適合CNN的輸入,做一次前向運(yùn)算,將第五個(gè)池化層的輸出(就是對(duì)候選框提取到的特征)存到硬盤(pán)

步驟四:訓(xùn)練一個(gè)SVM分類(lèi)器(二分類(lèi))來(lái)判斷這個(gè)候選框里物體的類(lèi)別
每個(gè)類(lèi)別對(duì)應(yīng)一個(gè)SVM,判斷是不是屬于這個(gè)類(lèi)別,是就是positive,反之nagative
比如下圖,就是狗分類(lèi)的SVM


步驟五:使用回歸器精細(xì)修正候選框位置:對(duì)于每一個(gè)類(lèi),訓(xùn)練一個(gè)線(xiàn)性回歸模型去判定這個(gè)框是否框得完美。

 

 

RCNN的進(jìn)化中SPP Net的思想對(duì)其貢獻(xiàn)很大,這里也簡(jiǎn)單介紹一下SPP Net。

SPP Net
SPP:Spatial Pyramid Pooling(空間金字塔池化)
它的特點(diǎn)有兩個(gè):

1.結(jié)合空間金字塔方法實(shí)現(xiàn)CNNs的對(duì)尺度輸入。
一般CNN后接全連接層或者分類(lèi)器,他們都需要固定的輸入尺寸,因此不得不對(duì)輸入數(shù)據(jù)進(jìn)行crop或者warp,這些預(yù)處理會(huì)造成數(shù)據(jù)的丟失或幾何的失真。SPP Net的第一個(gè)貢獻(xiàn)就是將金字塔思想加入到CNN,實(shí)現(xiàn)了數(shù)據(jù)的多尺度輸入。

如下圖所示,在卷積層和全連接層之間加入了SPP layer。此時(shí)網(wǎng)絡(luò)的輸入可以是任意尺度的,在SPP layer中每一個(gè)pooling的filter會(huì)根據(jù)輸入調(diào)整大小,而SPP的輸出尺度始終是固定的。


2.只對(duì)原圖提取一次卷積特征
在R-CNN中,每個(gè)候選框先resize到統(tǒng)一大小,然后分別作為CNN的輸入,這樣是很低效的。
所以SPP Net根據(jù)這個(gè)缺點(diǎn)做了優(yōu)化:只對(duì)原圖進(jìn)行一次卷積得到整張圖的feature map,然后找到每個(gè)候選框zaifeature map上的映射patch,將此patch作為每個(gè)候選框的卷積特征輸入到SPP layer和之后的層。節(jié)省了大量的計(jì)算時(shí)間,比R-CNN有一百倍左右的提速。


Fast R-CNN
SPP Net真是個(gè)好方法,R-CNN的進(jìn)階版Fast R-CNN就是在RCNN的基礎(chǔ)上采納了SPP Net方法,對(duì)RCNN作了改進(jìn),使得性能進(jìn)一步提高。

R-CNN與Fast RCNN的區(qū)別有哪些呢?
先說(shuō)RCNN的缺點(diǎn):即使使用了selective search等預(yù)處理步驟來(lái)提取潛在的bounding box作為輸入,但是RCNN仍會(huì)有嚴(yán)重的速度瓶頸,原因也很明顯,就是計(jì)算機(jī)對(duì)所有region進(jìn)行特征提取時(shí)會(huì)有重復(fù)計(jì)算,F(xiàn)ast-RCNN正是為了解決這個(gè)問(wèn)題誕生的。

大牛提出了一個(gè)可以看做單層sppnet的網(wǎng)絡(luò)層,叫做ROI Pooling,這個(gè)網(wǎng)絡(luò)層可以把不同大小的輸入映射到一個(gè)固定尺度的特征向量,而我們知道,conv、pooling、relu等操作都不需要固定size的輸入,因此,在原始圖片上執(zhí)行這些操作后,雖然輸入圖片size不同導(dǎo)致得到的feature map尺寸也不同,不能直接接到一個(gè)全連接層進(jìn)行分類(lèi),但是可以加入這個(gè)神奇的ROI Pooling層,對(duì)每個(gè)region都提取一個(gè)固定維度的特征表示,再通過(guò)正常的softmax進(jìn)行類(lèi)型識(shí)別。另外,之前RCNN的處理流程是先提proposal,然后CNN提取特征,之后用SVM分類(lèi)器,最后再做bbox regression,而在Fast-RCNN中,作者巧妙的把bbox regression放進(jìn)了神經(jīng)網(wǎng)絡(luò)內(nèi)部,與region分類(lèi)和并成為了一個(gè)multi-task模型,實(shí)際實(shí)驗(yàn)也證明,這兩個(gè)任務(wù)能夠共享卷積特征,并相互促進(jìn)。Fast-RCNN很重要的一個(gè)貢獻(xiàn)是成功的讓人們看到了Region Proposal+CNN這一框架實(shí)時(shí)檢測(cè)的希望,原來(lái)多類(lèi)檢測(cè)真的可以在保證準(zhǔn)確率的同時(shí)提升處理速度,也為后來(lái)的Faster-RCNN做下了鋪墊。

畫(huà)一畫(huà)重點(diǎn):
R-CNN有一些相當(dāng)大的缺點(diǎn)(把這些缺點(diǎn)都改掉了,就成了Fast R-CNN)。
大缺點(diǎn):由于每一個(gè)候選框都要獨(dú)自經(jīng)過(guò)CNN,這使得花費(fèi)的時(shí)間非常多。
解決:共享卷積層,現(xiàn)在不是每一個(gè)候選框都當(dāng)做輸入進(jìn)入CNN了,而是輸入一張完整的圖片,在第五個(gè)卷積層再得到每個(gè)候選框的特征

原來(lái)的方法:許多候選框(比如兩千個(gè))-->CNN-->得到每個(gè)候選框的特征-->分類(lèi)+回歸
現(xiàn)在的方法:一張完整圖片-->CNN-->得到每張候選框的特征-->分類(lèi)+回歸

所以容易看見(jiàn),F(xiàn)ast RCNN相對(duì)于RCNN的提速原因就在于:不過(guò)不像RCNN把每個(gè)候選區(qū)域給深度網(wǎng)絡(luò)提特征,而是整張圖提一次特征,再把候選框映射到conv5上,而SPP只需要計(jì)算一次特征,剩下的只需要在conv5層上操作就可以了。

在性能上提升也是相當(dāng)明顯的:

Faster R-CNN
Fast R-CNN存在的問(wèn)題:存在瓶頸:選擇性搜索,找出所有的候選框,這個(gè)也非常耗時(shí)。那我們能不能找出一個(gè)更加高效的方法來(lái)求出這些候選框呢?
解決:加入一個(gè)提取邊緣的神經(jīng)網(wǎng)絡(luò),也就說(shuō)找到候選框的工作也交給神經(jīng)網(wǎng)絡(luò)來(lái)做了。
做這樣的任務(wù)的神經(jīng)網(wǎng)絡(luò)叫做Region Proposal Network(RPN)。

具體做法:
  • 將RPN放在最后一個(gè)卷積層的后面
  • RPN直接訓(xùn)練得到候選區(qū)域

 

RPN簡(jiǎn)介:
  • 在feature map上滑動(dòng)窗口
  • 建一個(gè)神經(jīng)網(wǎng)絡(luò)用于物體分類(lèi)+框位置的回歸
  • 滑動(dòng)窗口的位置提供了物體的大體位置信息
  • 框的回歸提供了框更精確的位置

 


一種網(wǎng)絡(luò),四個(gè)損失函數(shù);
  • RPN calssification(anchor good.bad)
  • RPN regression(anchor->propoasal)
  • Fast R-CNN classification(over classes)
  • Fast R-CNN regression(proposal ->box)

速度對(duì)比

Faster R-CNN的主要貢獻(xiàn)是設(shè)計(jì)了提取候選區(qū)域的網(wǎng)絡(luò)RPN,代替了費(fèi)時(shí)的選擇性搜索,使得檢測(cè)速度大幅提高。


最后總結(jié)一下各大算法的步驟:
RCNN
  1. 在圖像中確定約1000-2000個(gè)候選框 (使用選擇性搜索)
  2. 每個(gè)候選框內(nèi)圖像塊縮放至相同大小,并輸入到CNN內(nèi)進(jìn)行特征提取 
  3. 對(duì)候選框中提取出的特征,使用分類(lèi)器判別是否屬于一個(gè)特定類(lèi) 
  4. 對(duì)于屬于某一特征的候選框,用回歸器進(jìn)一步調(diào)整其位置

Fast RCNN
  1. 在圖像中確定約1000-2000個(gè)候選框 (使用選擇性搜索)
  2. 對(duì)整張圖片輸進(jìn)CNN,得到feature map
  3. 找到每個(gè)候選框在feature map上的映射patch,將此patch作為每個(gè)候選框的卷積特征輸入到SPP layer和之后的層
  4. 對(duì)候選框中提取出的特征,使用分類(lèi)器判別是否屬于一個(gè)特定類(lèi) 
  5. 對(duì)于屬于某一特征的候選框,用回歸器進(jìn)一步調(diào)整其位置

Faster RCNN
  1. 對(duì)整張圖片輸進(jìn)CNN,得到feature map
  2. 卷積特征輸入到RPN,得到候選框的特征信息
  3. 對(duì)候選框中提取出的特征,使用分類(lèi)器判別是否屬于一個(gè)特定類(lèi) 
  4. 對(duì)于屬于某一特征的候選框,用回歸器進(jìn)一步調(diào)整其位置

 

 

總的來(lái)說(shuō),從R-CNN, SPP-NET, Fast R-CNN, Faster R-CNN一路走來(lái),基于深度學(xué)習(xí)目標(biāo)檢測(cè)的流程變得越來(lái)越精簡(jiǎn),精度越來(lái)越高,速度也越來(lái)越快。可以說(shuō)基于region proposal的R-CNN系列目標(biāo)檢測(cè)方法是當(dāng)前目標(biāo)檢測(cè)技術(shù)領(lǐng)域最主要的一個(gè)分支。


   上一篇: RCNN (Regions with CNN) 目標(biāo)物檢測(cè) Fast RCNN的基礎(chǔ)    下一篇:    
   相關(guān)閱讀
· MATLAB代做|FPGA代做|simulink代做—— 2020/7/14
· MATLAB代做|FPGA代做|simulink代做—— 2020/5/30
· MATLAB代做|FPGA代做|simulink代做—— 2020/5/30
· MATLAB代做|FPGA代做|simulink代做—— 2020/2/1
· MATLAB代做|FPGA代做|simulink代做—— 2019/12/11
· MATLAB代做|FPGA代做|simulink代做—— 2019/12/11
· MATLAB代做|FPGA代做|simulink代做—— 2019/12/11
· Alexnet網(wǎng)絡(luò)結(jié)構(gòu) 2019/11/20
· MATLAB代做|FPGA代做|simulink代做—— 2019/9/15
· MATLAB代做|FPGA代做|simulink代做—— 2019/8/29
Copyright 2017-2025 © 嘉興麥特萊博軟件開(kāi)發(fā)工作室
  • 網(wǎng)站備案號(hào):浙ICP備18008591號(hào)-1