日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 人工智能 > 目标检测 >内容正文

目标检测

目标检测技术演进:R-CNN、Fast R-CNN、Faster R-CNN

發(fā)布時間:2024/2/28 目标检测 82 豆豆
生活随笔 收集整理的這篇文章主要介紹了 目标检测技术演进:R-CNN、Fast R-CNN、Faster R-CNN 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一. 從圖像識別的任務(wù)說起
? 1.1 思路一:看做回歸問題
? 1.2 思路二:取圖像窗口
二. R-CNN橫空出世
三. SPP Net
四.Fast R-CNN
五.Faster R-CNN


看到一篇循序漸進講R-CNN、Fast R-CNN、Faster R-CNN演進的博文,寫得非常好,摘入于此,方便查找和閱讀。

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

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

一. 從圖像識別的任務(wù)說起

這里有一個圖像任務(wù):
既要把圖中的物體識別出來,又要用方框框出它的位置。

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

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

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

定位的問題的解決思路有哪些?


1.1 思路一:看做回歸問題


看做回歸問題,我們需要預(yù)測出(x,y,w,h)四個參數(shù)的值,從而得出方框的位置。

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

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

?

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

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

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

?

Regression的部分加在哪?

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

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

?

1.2 思路二:取圖像窗口


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


左上角的黑框:得分0.5

右上角的黑框:得分0.75

左下角的黑框:得分0.6

右下角的黑框:得分0.8

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

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

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

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

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

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

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

      

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

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

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

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

二. R-CNN橫空出世

基于以上的思路,RCNN的出現(xiàn)了。

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

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

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

?

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

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

RCNN的進化中SPP Net的思想對其貢獻很大,這里也簡單介紹一下SPP Net。

三. SPP Net

SPP:Spatial Pyramid Pooling(空間金字塔池化)
它的特點有兩個:

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

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

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

四.Fast R-CNN

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

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

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

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

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

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

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

五.Faster R-CNN

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

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

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

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

?

速度對比

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


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

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

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

?

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

總結(jié)

以上是生活随笔為你收集整理的目标检测技术演进:R-CNN、Fast R-CNN、Faster R-CNN的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 色哟哟黄色 | 亚洲系列 | 在线观看91av| 性色av一区二区三区免费 | 高清免费毛片 | 在线精品一区二区 | 一本大道久久a久久精二百 琪琪色在线视频 | av不卡一区| 私人影院毛片 | 老头糟蹋新婚少妇系列小说 | 久久精品国产一区 | 在线观看不卡一区 | av午夜精品 | 欧美一区二区三区久久精品 | 日本中文字幕一区二区 | 日韩一区二区三区四区 | а√天堂8资源在线官网 | 在线免费福利 | 99色图| 国产婷婷色一区二区 | 男人av资源网 | 国产农村妇女精品一区二区 | 精品国产污污免费网站入口 | www.一起操 | 日韩av一级片 | 日韩av手机在线免费观看 | 免费一级suv好看的国产网站 | 一区二区欧美在线观看 | 五月激情啪啪 | 欧美亚洲国产视频 | 国产精品天天av精麻传媒 | 欧美激情国产日韩精品一区18 | 精品熟女一区二区三区 | xxxxx在线| 日本一级做a爱片 | 日本视频免费 | 亚洲精品日韩欧美 | 日韩理论在线 | 1000部啪啪| 欧洲亚洲另类 | av在线a | 欧美极度另类 | 三级小说视频 | 91在线日本| 老色鬼av | 毛片基地站 | 亚洲天堂色 | 婷久久 | 亚洲色成人www永久在线观看 | 国产午夜电影 | 欧美国产另类 | 国产女人视频 | 国产黄色精品视频 | 极品销魂美女少妇尤物 | 亚洲乱熟女一区二区三区小说 | 国产成人毛毛毛片 | 台湾佬中文在线 | 国产激情视频一区 | 欧美性天天影院 | 黄视频免费看在线 | 一级黄色片欧美 | 成熟丰满熟妇高潮xxxxx视频 | 狠狠操夜夜操 | 中文字幕无码精品亚洲35 | 中文久久字幕 | 亚洲国产综合在线 | 亚洲精品久久久久中文字幕二区 | 色悠悠国产| 欧美偷拍亚洲 | 国产精品第6页 | 精品小视频在线观看 | 午夜电影网一区 | 日韩一区二区三区三四区视频在线观看 | 亚洲小说区图片区 | 国产精品27p | 综合网天天 | 亚洲一区二区视频网站 | 色偷偷av| 韩国日本美国免费毛片 | 日韩av三级在线 | 伊人成人动漫 | 欧美黑人一区二区三区 | 伊人超碰| 青青国产在线 | 少妇荡乳情欲办公室456视频 | 中国无码人妻丰满熟妇啪啪软件 | 91在线精品秘密一区二区 | 五月激情婷婷网 | www三级| 国产伦精品一区二区三区四区 | 黄色一级视频网站 | 69av在线| 91亚洲一区二区三区 | 一区二区欧美在线观看 | 九九九在线视频 | 国产在线视视频有精品 | 加勒比综合网 | 在线免费av网站 | 亚洲精品av中文字幕在线在线 |