日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

深度学习目标检测系列:RCNN系列算法图解

發(fā)布時(shí)間:2025/3/21 170 豆豆
生活随笔 收集整理的這篇文章主要介紹了 深度学习目标检测系列:RCNN系列算法图解 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

? ? ? ?在生活中,經(jīng)常會(huì)遇到這樣的一種情況,上班要出門的時(shí)候,突然找不到一件東西了,比如鑰匙、手機(jī)或者手表等。這個(gè)時(shí)候一般在房間翻一遍各個(gè)角落來(lái)尋找不見(jiàn)的物品,最后突然一拍大腦,想到在某一個(gè)地方,在整個(gè)過(guò)程中有時(shí)候是很著急的,并且越著急越找不到,真是令人沮喪。但是,如果一個(gè)簡(jiǎn)單的計(jì)算機(jī)算法可以在幾毫秒內(nèi)就找到你要找的物品,你的感受如何?是不是很驚奇!這就是對(duì)象檢測(cè)算法(object detection)的力量。雖然上述舉的生活例子只是一個(gè)很簡(jiǎn)單的例子,但對(duì)象檢測(cè)的應(yīng)用范圍很廣,跨越多個(gè)不同的行業(yè),從全天候監(jiān)控到智能城市的實(shí)時(shí)車輛檢測(cè)等。簡(jiǎn)而言之,物體檢測(cè)是強(qiáng)大的深度學(xué)習(xí)算法中的一個(gè)分支。
? ? ? ?在本文中,我們將深入探討可以用于對(duì)象檢測(cè)的各種算法。首先從屬于RCNN系列算法開(kāi)始,即RCNN、 Fast RCNN和 Faster RCNN。在之后的文章中,將介紹更多高級(jí)算法,如YOLO、SSD等。


1.解決對(duì)象檢測(cè)任務(wù)的簡(jiǎn)單方法(使用深度學(xué)習(xí))

? ? ? ?下圖說(shuō)明了對(duì)象檢測(cè)算法是如何工作。圖像中的每個(gè)對(duì)象,從人到風(fēng)箏都以一定的精度進(jìn)行了定位和識(shí)別。



? ? ? ?下面從最簡(jiǎn)單的深度學(xué)習(xí)方法開(kāi)始,一種廣泛用于檢測(cè)圖像中的方法——卷積神經(jīng)網(wǎng)絡(luò)(CNN)。如果讀者對(duì)CNN算法有點(diǎn)生疏,建議閱讀此文。
? ? ? ?這里僅簡(jiǎn)要總結(jié)一下CNN的內(nèi)部運(yùn)作方式:



? ? ? ?首先將圖像作為輸入傳遞到網(wǎng)絡(luò),然后通過(guò)各種卷積和池化層處理,最后以對(duì)象類別的形式獲得輸出。
? ? ? ?對(duì)于每個(gè)輸入圖像,會(huì)得到一個(gè)相應(yīng)的類別作為輸出。因此可以使用這種技術(shù)來(lái)檢測(cè)圖像中的各種對(duì)象。
  • 1.首先,將圖像作為輸入;

  • 2.然后,將圖像分成不同的區(qū)域;

  • 3.然后,將每個(gè)區(qū)域視為單獨(dú)的圖像;
  • 4.將所有這些區(qū)域傳遞給CNN并將它們分類為各種類別;
  • 5.一旦將每個(gè)區(qū)域劃分為相應(yīng)的類后,就可以組合所有這些區(qū)域來(lái)獲取具有檢測(cè)到的對(duì)象的原始圖像:

? ? ? ?使用這種方法會(huì)面臨的問(wèn)題在于,圖像中的對(duì)象可以具有不同的寬高比和空間位置。例如,在某些情況下,對(duì)象可能覆蓋了大部分圖像,而在其他情況下,對(duì)象可能只覆蓋圖像的一小部分,并且對(duì)象的形狀也可能不同。
? ? ? ?基于此,需要?jiǎng)澐执罅康膮^(qū)域,這會(huì)花費(fèi)大量的計(jì)算時(shí)間。因此,為了解決這個(gè)問(wèn)題并減少區(qū)域數(shù)量,可以使用基于區(qū)域的CNN,它使用提議方法選擇區(qū)域。

2.基于區(qū)域的卷積神經(jīng)網(wǎng)絡(luò)

2.1 RCNN的思想

? ? ? ?RCNN算法不是在大量區(qū)域上工作,而是在圖像中提出了一堆方框,并檢查這些方框中是否包含任何對(duì)象。RCNN 使用選擇性搜索從圖像中提取這些框。
? ? ? ?下面介紹選擇性搜索以及它如何識(shí)別不同的區(qū)域。基本上四個(gè)區(qū)域形成一個(gè)對(duì)象:不同的比例、顏色、紋理和形狀。選擇性搜索在圖像中識(shí)別這些模式,并基于此提出各種區(qū)域。以下是選擇性搜索如何工作的簡(jiǎn)要概述:

  • 首先, 將圖像作為輸入:

  • 然后,它生成初始子分段,以便獲得多個(gè)區(qū)域:

  • 之后,該技術(shù)組合相似區(qū)域以形成更大的區(qū)域(基于顏色相似性、紋理相似性、尺寸相似性和形狀兼容性):

  • 最后,這些區(qū)域產(chǎn)生最終的對(duì)象位置(感興趣的區(qū)域);

? ? ? ?下面是RCNN檢測(cè)對(duì)象所遵循的步驟的簡(jiǎn)要總結(jié):

  • 1.首先采用預(yù)先訓(xùn)練的卷積神經(jīng)網(wǎng)絡(luò);
  • 2.重新訓(xùn)練該模型模型——根據(jù)需要檢測(cè)的類別數(shù)量來(lái)訓(xùn)練網(wǎng)絡(luò)的最后一層(遷移學(xué)習(xí));
  • 3.第三步是獲取每個(gè)圖像的感興趣區(qū)域。然后,對(duì)這些區(qū)域調(diào)整尺寸,以便其可以匹配CNN輸入大小;
  • 4.獲取區(qū)域后,使用SVM算法對(duì)對(duì)象和背景進(jìn)行分類。對(duì)于每個(gè)類,都訓(xùn)練一個(gè)二分類SVM;
  • 最后,訓(xùn)練線性回歸模型,為圖像中每個(gè)識(shí)別出的對(duì)象生成更嚴(yán)格的邊界框;

[對(duì)上述步驟進(jìn)行圖解分析](http://www.robots.ox.ac.uk/~tvg/publications/talks/Fast-rcnn-slides.pdf):

  • 首先,將圖像作為輸入:

  • 然后,使用一些提議方法獲得感興趣區(qū)域(ROI)(例如,選擇性搜索):

  • 之后,對(duì)所有這些區(qū)域調(diào)整尺寸,并將每個(gè)區(qū)域傳遞給卷積神經(jīng)網(wǎng)絡(luò):

  • 然后,CNN為每個(gè)區(qū)域提取特征,SVM用于將這些區(qū)域劃分為不同的類別:

  • 最后,邊界框回歸(Bbox reg)用于預(yù)測(cè)每個(gè)已識(shí)別區(qū)域的邊界框:

? ? ? ?以上就是RCNN檢測(cè)物體的全部流程。

2.2 RCNN的問(wèn)題

? ? ? ?從上節(jié)內(nèi)容可以了解到RCNN是如何進(jìn)行對(duì)象檢測(cè)的,但這種技術(shù)有其自身的局限性。以下原因使得訓(xùn)練RCNN模型既昂貴又緩慢:

  • 基于選擇性搜索算法為每個(gè)圖像提取2,000個(gè)候選區(qū)域;
  • 使用CNN為每個(gè)圖像區(qū)域提取特征;
  • RCNN整個(gè)物體檢測(cè)過(guò)程用到三種模型:

    • CNN模型用于特征提取;
    • 線性svm分類器用于識(shí)別對(duì)象的的類別;
    • 回歸模型用于收緊邊界框;

? ? ? ?這些過(guò)程相結(jié)合使得RCNN非常慢,對(duì)每個(gè)新圖像進(jìn)行預(yù)測(cè)需要大約40-50秒,這實(shí)際上使得模型在面對(duì)巨大的數(shù)據(jù)集時(shí)變得復(fù)雜且?guī)缀醪豢赡軕?yīng)用。
? ? ? ?好消息是存在另一種物體檢測(cè)技術(shù),它解決了RCNN中大部分問(wèn)題。

3.了解Fast RCNN

3.1Fast RCNN的思想

? ? ? ?RCNN的提出者Ross Girshick提出了這樣的想法,即每個(gè)圖像只運(yùn)行一次CNN,然后找到一種在2,000個(gè)區(qū)域內(nèi)共享該計(jì)算的方法。在Fast RCNN中,將輸入圖像饋送到CNN,CNN生成卷積特征映射。使用這些特征圖提取候選區(qū)域。然后,使用RoI池化層將所有建議的區(qū)域重新整形為固定大小,以便將其饋送到全連接網(wǎng)絡(luò)中。
? ? ? ?下面將其分解為簡(jiǎn)化概念的步驟:

  • 1.首先將圖像作為輸入;
  • 2.將圖像傳遞給卷積神經(jīng)網(wǎng)絡(luò),生成感興趣的區(qū)域;
  • 3.在所有的感興趣的區(qū)域上應(yīng)用RoI池化層,并調(diào)整區(qū)域的尺寸。然后,每個(gè)區(qū)域被傳遞到全連接層的網(wǎng)絡(luò)中;
  • 4.softmax層用于全連接網(wǎng)以輸出類別。與softmax層一起,也并行使用線性回歸層,以輸出預(yù)測(cè)類的邊界框坐標(biāo)。

? ? ? ?因此,Fast RCNN算法中沒(méi)有使用三個(gè)不同的模型,而使用單個(gè)模型從區(qū)域中提取特征,將它們分成不同的類,并同時(shí)返回所標(biāo)識(shí)類的邊界框。
? ? ? ?對(duì)上述過(guò)程進(jìn)行可視化講解:

  • 將圖像作為輸入:

  • 將圖像傳遞給卷積神經(jīng)網(wǎng)絡(luò)t,后者相應(yīng)地返回感興趣的區(qū)域:

  • 然后,在提取的感興趣區(qū)域上應(yīng)用RoI池層,以確保所有區(qū)域具有相同的大小:

  • 最后,這些區(qū)域被傳遞到一個(gè)全連接網(wǎng)絡(luò),對(duì)其進(jìn)行分類,并同時(shí)使用softmax和線性回歸層返回邊界框:

? ? ? ?上述過(guò)程說(shuō)明了Fast RCNN是如何解決RCNN的兩個(gè)主要問(wèn)題,即將每個(gè)圖像中的1個(gè)而不是2,000個(gè)區(qū)域傳遞給卷積神經(jīng)網(wǎng)絡(luò),并使用一個(gè)模型來(lái)實(shí)現(xiàn)提取特征、分類和生成邊界框。

3.2Fast RCNN的問(wèn)題

? ? ? ?Fast RCNN也存在一定的問(wèn)題,它仍然使用選擇性搜索作為查找感興趣區(qū)域的提議方法,這是一個(gè)緩慢且耗時(shí)的過(guò)程,每個(gè)圖像檢測(cè)對(duì)象大約需要2秒鐘。
因此,又開(kāi)發(fā)了另一種物體檢測(cè)算法——Faster RCNN。

4.了解Faster RCNN

4.1. Faster RCNN的思想

? ? ? ?Faster RCNN是Fast RCNN的修改版本,二者之間的主要區(qū)別在于,Fast RCNN使用選擇性搜索來(lái)生成感興趣區(qū)域,而Faster RCNN使用“區(qū)域提議網(wǎng)絡(luò)”,即RPN。RPN將圖像特征映射作為輸入,并生成一組提議對(duì)象,每個(gè)對(duì)象提議都以對(duì)象分?jǐn)?shù)作為輸出。
? ? ? ?以下步驟通常采用Faster RCNN方法:

  • 1.將圖像作為輸入并將其傳遞給卷積神經(jīng)網(wǎng)絡(luò),后者返回該圖像的特征圖;
  • 2.在這些特征圖上應(yīng)用RPN,返回提議對(duì)象及其分?jǐn)?shù);
  • 3.在這些提議對(duì)象上應(yīng)用RoI池層,以將所有提案降低到相同的大小;
  • 4.最后,將提議傳遞到全連接層,該層在其頂部具有softmax層和線性回歸層,以對(duì)對(duì)象的邊界框進(jìn)行分類和輸出;


? ? ? ?這里簡(jiǎn)要解釋一下RPN是如何運(yùn)作的:
? ? ? ?首先,Faster RCNN從CNN獲取特征圖并將它們傳遞到區(qū)域提議網(wǎng)絡(luò)。RPN在這些特征圖上使用滑動(dòng)窗口,每個(gè)窗口生成不同形狀和大小的k個(gè)方框(?Anchor boxe):



? ? ? ?方框是固定尺寸的邊界箱,具有不同的形狀和尺寸。對(duì)于每個(gè)方框,RPN預(yù)測(cè)兩件事:
  • 預(yù)測(cè)錨是對(duì)象的概率;
  • 用于邊界框回歸器調(diào)整錨點(diǎn)以更好地適合物體的形狀;

? ? ? ?在有了不同形狀和大小的邊界框后,將其傳遞到RoI池層。對(duì)每個(gè)提案并對(duì)其進(jìn)行裁剪,以便每個(gè)提案都包含一個(gè)對(duì)象。這就是RoI池層所做的事情,它為每個(gè)方框提取固定大小的特征圖:



? ? ? ?然后將這些特征圖傳遞到全連接層,該層具有softmax和線性回歸層,最終對(duì)對(duì)象進(jìn)行分類并預(yù)測(cè)已識(shí)別對(duì)象的邊界框。

4.2Faster RCNN的問(wèn)題

? ? ? ?上述討論過(guò)的所有對(duì)象檢測(cè)算法都使用區(qū)域來(lái)識(shí)別對(duì)象,且網(wǎng)絡(luò)不會(huì)一次查看完整圖像,而是按順序關(guān)注圖像的某些部分,這樣會(huì)帶來(lái)兩個(gè)復(fù)雜性的問(wèn)題:

  • 該算法需要多次通過(guò)單個(gè)圖像來(lái)提取到所有對(duì)象;
  • 由于不是端到端的算法,不同的系統(tǒng)一個(gè)接一個(gè)地工作,整體系統(tǒng)的性能進(jìn)一步取決于先前系統(tǒng)的表現(xiàn)效果。

5.總結(jié)

下表是總結(jié)了本文中介紹的所有算法

算法特征預(yù)測(cè)時(shí)間限制
CNN將圖像分成多個(gè)區(qū)域,將每個(gè)區(qū)域分類為不同的類別-需要很多區(qū)域來(lái)準(zhǔn)確預(yù)測(cè),因此計(jì)算時(shí)間長(zhǎng)
RCNN使用選擇性搜索生成區(qū)域,從每個(gè)圖像中提取大約2000個(gè)區(qū)域40-50秒每個(gè)區(qū)域分別傳遞給CNN的計(jì)算時(shí)間也很長(zhǎng),且使用三種不同的模型進(jìn)行預(yù)測(cè)
Fast RCNN每個(gè)圖像只傳遞一次到CNN,并提取特征圖。在這些地圖上使用選擇性搜索來(lái)生成預(yù)測(cè)。將RCNN中使用的所有三種模型組合在一起2秒選擇性搜索很慢,因此計(jì)算時(shí)間仍然很長(zhǎng)
Faster RCNN用區(qū)域提議網(wǎng)絡(luò)替換選擇性搜索方法,使算法更快0.2秒對(duì)象提議需要時(shí)間,并且由于不同的系統(tǒng)一個(gè)接一個(gè)地工作,系統(tǒng)的性能取決于先前系統(tǒng)的表現(xiàn)效果

作者信息

PULKIT SHARMA,機(jī)器學(xué)習(xí)和深度學(xué)習(xí)
本文由阿里云云棲社區(qū)組織翻譯。
文章原標(biāo)題《A Step-by-Step Introduction to the Basic Object Detection Algorithms (Part 1)》,譯者:海棠,審校:Uncle_LLD。
文章為簡(jiǎn)譯,更為詳細(xì)的內(nèi)容,請(qǐng)查看原文。

總結(jié)

以上是生活随笔為你收集整理的深度学习目标检测系列:RCNN系列算法图解的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

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