目標(biāo)檢測算法圖解:一文看懂RCNN系列算法

姓名:王咫毅

學(xué)號:19021211150

【嵌牛導(dǎo)讀】CNN如此風(fēng)靡前方,其衍生算法也是層出不窮,各種衍生算法也可以應(yīng)用于各種應(yīng)用場景镊尺,各類場合悲立。本文則是了解每個(gè)衍生算法的各個(gè)使用場景、原理及方法档冬。

【嵌牛鼻子】RCNN 目標(biāo)檢測

【嵌牛提問】RCNN系列算法有何區(qū)別和聯(lián)系膘茎?

【嵌牛正文】

轉(zhuǎn)載自:http://www.reibang.com/p/51fc039ae7a4

在生活中,經(jīng)常會遇到這樣的一種情況酷誓,上班要出門的時(shí)候辽狈,突然找不到一件東西了,比如鑰匙呛牲、手機(jī)或者手表等。這個(gè)時(shí)候一般在房間翻一遍各個(gè)角落來尋找不見的物品驮配,最后突然一拍大腦娘扩,想到在某一個(gè)地方,在整個(gè)過程中有時(shí)候是很著急的壮锻,并且越著急越找不到琐旁,真是令人沮喪。但是猜绣,如果一個(gè)簡單的計(jì)算機(jī)算法可以在幾毫秒內(nèi)就找到你要找的物品灰殴,你的感受如何?是不是很驚奇掰邢!這就是對象檢測算法(object detection)的力量牺陶。雖然上述舉的生活例子只是一個(gè)很簡單的例子,但對象檢測的應(yīng)用范圍很廣辣之,跨越多個(gè)不同的行業(yè)掰伸,從全天候監(jiān)控到智能城市的實(shí)時(shí)車輛檢qian測等。簡而言之怀估,物體檢測是強(qiáng)大的深度學(xué)習(xí)算法中的一個(gè)分支狮鸭。

在本文中合搅,我們將深入探討可以用于對象檢測的各種算法。首先從屬于RCNN系列算法開始歧蕉,即RCNN灾部、 Fast RCNN和 Faster RCNN。在之后的文章中惯退,將介紹更多高級算法赌髓,如YOLO、SSD等蒸痹。

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

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

下面從最簡單的深度學(xué)習(xí)方法開始匿沛,一種廣泛用于檢測圖像中的方法——卷積神經(jīng)網(wǎng)絡(luò)(CNN)。如果讀者對CNN算法有點(diǎn)生疏榛鼎,建議閱讀此文逃呼。

這里僅簡要總結(jié)一下CNN的內(nèi)部運(yùn)作方式:

首先將圖像作為輸入傳遞到網(wǎng)絡(luò),然后通過各種卷積和池化層處理者娱,最后以對象類別的形式獲得輸出抡笼。

對于每個(gè)輸入圖像皆辽,會得到一個(gè)相應(yīng)的類別作為輸出哼丈。因此可以使用這種技術(shù)來檢測圖像中的各種對象。

1.首先课兄,將圖像作為輸入框沟;

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

3.然后忍燥,將每個(gè)區(qū)域視為單獨(dú)的圖像拧晕;

4.將所有這些區(qū)域傳遞給CNN并將它們分類為各種類別;

5.一旦將每個(gè)區(qū)域劃分為相應(yīng)的類后梅垄,就可以組合所有這些區(qū)域來獲取具有檢測到的對象的原始圖像:

使用這種方法會面臨的問題在于厂捞,圖像中的對象可以具有不同的寬高比和空間位置。例如队丝,在某些情況下靡馁,對象可能覆蓋了大部分圖像,而在其他情況下机久,對象可能只覆蓋圖像的一小部分奈嘿,并且對象的形狀也可能不同。

基于此吞加,需要?jiǎng)澐执罅康膮^(qū)域裙犹,這會花費(fèi)大量的計(jì)算時(shí)間尽狠。因此,為了解決這個(gè)問題并減少區(qū)域數(shù)量叶圃,可以使用基于區(qū)域的CNN袄膏,它使用提議方法選擇區(qū)域。

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

2.1 RCNN的思想

RCNN算法不是在大量區(qū)域上工作掺冠,而是在圖像中提出了一堆方框沉馆,并檢查這些方框中是否包含任何對象。RCNN 使用選擇性搜索從圖像中提取這些框德崭。

下面介紹選擇性搜索以及它如何識別不同的區(qū)域斥黑。基本上四個(gè)區(qū)域形成一個(gè)對象:不同的比例眉厨、顏色锌奴、紋理和形狀。選擇性搜索在圖像中識別這些模式憾股,并基于此提出各種區(qū)域鹿蜀。以下是選擇性搜索如何工作的簡要概述:

首先, 將圖像作為輸入:

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

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

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

下面是RCNN檢測對象所遵循的步驟的簡要總結(jié):

1.首先采用預(yù)先訓(xùn)練的卷積神經(jīng)網(wǎng)絡(luò)分冈;

2.重新訓(xùn)練該模型模型——根據(jù)需要檢測的類別數(shù)量來訓(xùn)練網(wǎng)絡(luò)的最后一層(遷移學(xué)習(xí));

3.第三步是獲取每個(gè)圖像的感興趣區(qū)域渣叛。然后,對這些區(qū)域調(diào)整尺寸盯捌,以便其可以匹配CNN輸入大写狙谩;

4.獲取區(qū)域后饺著,使用SVM算法對對象和背景進(jìn)行分類箫攀。對于每個(gè)類,都訓(xùn)練一個(gè)二分類SVM幼衰;

最后靴跛,訓(xùn)練線性回歸模型,為圖像中每個(gè)識別出的對象生成更嚴(yán)格的邊界框渡嚣;

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

首先梢睛,將圖像作為輸入:

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

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

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

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

以上就是RCNN檢測物體的全部流程。

2.2 RCNN的問題

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

基于選擇性搜索算法為每個(gè)圖像提取2,000個(gè)候選區(qū)域;

使用CNN為每個(gè)圖像區(qū)域提取特征榜旦;

RCNN整個(gè)物體檢測過程用到三種模型:

CNN模型用于特征提扔钠摺;

線性svm分類器用于識別對象的的類別章办;

回歸模型用于收緊邊界框锉走;

這些過程相結(jié)合使得RCNN非常慢,對每個(gè)新圖像進(jìn)行預(yù)測需要大約40-50秒藕届,這實(shí)際上使得模型在面對巨大的數(shù)據(jù)集時(shí)變得復(fù)雜且?guī)缀醪豢赡軕?yīng)用挪蹭。

好消息是存在另一種物體檢測技術(shù),它解決了RCNN中大部分問題休偶。

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ò)中上忍。

下面將其分解為簡化概念的步驟:

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ù)測類的邊界框坐標(biāo)。

因此侮穿,F(xiàn)ast RCNN算法中沒有使用三個(gè)不同的模型歌径,而使用單個(gè)模型從區(qū)域中提取特征,將它們分成不同的類亲茅,并同時(shí)返回所標(biāo)識類的邊界框回铛。

對上述過程進(jìn)行可視化講解:

將圖像作為輸入:

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

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

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

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

3.2Fast RCNN的問題

Fast RCNN也存在一定的問題氨鹏,它仍然使用選擇性搜索作為查找感興趣區(qū)域的提議方法,這是一個(gè)緩慢且耗時(shí)的過程压状,每個(gè)圖像檢測對象大約需要2秒鐘仆抵。

因此,又開發(fā)了另一種物體檢測算法——Faster RCNN种冬。

4.了解Faster RCNN

4.1. Faster RCNN的思想

Faster RCNN是Fast RCNN的修改版本镣丑,二者之間的主要區(qū)別在于,F(xiàn)ast RCNN使用選擇性搜索來生成感興趣區(qū)域娱两,而Faster RCNN使用“區(qū)域提議網(wǎng)絡(luò)”莺匠,即RPN。RPN將圖像特征映射作為輸入十兢,并生成一組提議對象趣竣,每個(gè)對象提議都以對象分?jǐn)?shù)作為輸出。

以下步驟通常采用Faster RCNN方法:

1.將圖像作為輸入并將其傳遞給卷積神經(jīng)網(wǎng)絡(luò)纪挎,后者返回該圖像的特征圖期贫;

2.在這些特征圖上應(yīng)用RPN跟匆,返回提議對象及其分?jǐn)?shù)异袄;

3.在這些提議對象上應(yīng)用RoI池層,以將所有提案降低到相同的大新瓯邸烤蜕;

4.最后封孙,將提議傳遞到全連接層,該層在其頂部具有softmax層和線性回歸層讽营,以對對象的邊界框進(jìn)行分類和輸出虎忌;

這里簡要解釋一下RPN是如何運(yùn)作的:

首先,F(xiàn)aster RCNN從CNN獲取特征圖并將它們傳遞到區(qū)域提議網(wǎng)絡(luò)橱鹏。RPN在這些特征圖上使用滑動(dòng)窗口膜蠢,每個(gè)窗口生成不同形狀和大小的k個(gè)方框( Anchor boxe):

方框是固定尺寸的邊界箱,具有不同的形狀和尺寸莉兰。對于每個(gè)方框挑围,RPN預(yù)測兩件事:

預(yù)測錨是對象的概率;

用于邊界框回歸器調(diào)整錨點(diǎn)以更好地適合物體的形狀糖荒;

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

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

4.2Faster RCNN的問題

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

該算法需要多次通過單個(gè)圖像來提取到所有對象句喷;

由于不是端到端的算法镣典,不同的系統(tǒng)一個(gè)接一個(gè)地工作,整體系統(tǒng)的性能進(jìn)一步取決于先前系統(tǒng)的表現(xiàn)效果唾琼。

作者:阿里云云棲社區(qū)

鏈接:http://www.reibang.com/p/51fc039ae7a4

來源:簡書

著作權(quán)歸作者所有兄春。商業(yè)轉(zhuǎn)載請聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請注明出處锡溯。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末赶舆,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子祭饭,更是在濱河造成了極大的恐慌芜茵,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,591評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件倡蝙,死亡現(xiàn)場離奇詭異九串,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,448評論 3 392
  • 文/潘曉璐 我一進(jìn)店門猪钮,熙熙樓的掌柜王于貴愁眉苦臉地迎上來品山,“玉大人,你說我怎么就攤上這事烤低≈饨唬” “怎么了?”我有些...
    開封第一講書人閱讀 162,823評論 0 353
  • 文/不壞的土叔 我叫張陵扑馁,是天一觀的道長涯呻。 經(jīng)常有香客問我,道長腻要,這世上最難降的妖魔是什么魄懂? 我笑而不...
    開封第一講書人閱讀 58,204評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮闯第,結(jié)果婚禮上市栗,老公的妹妹穿的比我還像新娘。我一直安慰自己咳短,他們只是感情好填帽,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,228評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著咙好,像睡著了一般篡腌。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上勾效,一...
    開封第一講書人閱讀 51,190評論 1 299
  • 那天嘹悼,我揣著相機(jī)與錄音,去河邊找鬼层宫。 笑死杨伙,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的萌腿。 我是一名探鬼主播限匣,決...
    沈念sama閱讀 40,078評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼毁菱!你這毒婦竟也來了米死?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,923評論 0 274
  • 序言:老撾萬榮一對情侶失蹤贮庞,失蹤者是張志新(化名)和其女友劉穎峦筒,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體窗慎,經(jīng)...
    沈念sama閱讀 45,334評論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡物喷,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,550評論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片脯丝。...
    茶點(diǎn)故事閱讀 39,727評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖伏伐,靈堂內(nèi)的尸體忽然破棺而出宠进,到底是詐尸還是另有隱情,我是刑警寧澤藐翎,帶...
    沈念sama閱讀 35,428評論 5 343
  • 正文 年R本政府宣布材蹬,位于F島的核電站,受9級特大地震影響吝镣,放射性物質(zhì)發(fā)生泄漏堤器。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,022評論 3 326
  • 文/蒙蒙 一末贾、第九天 我趴在偏房一處隱蔽的房頂上張望闸溃。 院中可真熱鬧,春花似錦拱撵、人聲如沸辉川。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,672評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽乓旗。三九已至,卻和暖如春集索,著一層夾襖步出監(jiān)牢的瞬間屿愚,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,826評論 1 269
  • 我被黑心中介騙來泰國打工务荆, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留妆距,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,734評論 2 368
  • 正文 我出身青樓函匕,卻偏偏與公主長得像毅厚,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子浦箱,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,619評論 2 354

推薦閱讀更多精彩內(nèi)容

  • 聲明:本文大部分參考機(jī)器之心的文章《從RCNN到SSD吸耿,這應(yīng)該是最全的一份目標(biāo)檢測算法盤點(diǎn)》,僅作為學(xué)習(xí)之用酷窥,如若...
    HRain閱讀 77,876評論 1 43
  • - by 小韓 (來源:https://blog.athelas.com/a-brief-history-of-c...
    城市中迷途小書童閱讀 923評論 0 2
  • 今天咽安,看到日記星球里面有一個(gè)小朋友的暑假計(jì)劃,一天看一本書蓬推,我也要來試試看妆棒。今天,除了做作業(yè),吃飯糕珊,我一直都在看書...
    孟欣晨閱讀 3,782評論 0 2
  • GitHub地址:GreenDao 介紹 GreenDao是一款適用于Android的輕量快速ORM动分,可將對象映射...
    Z_Liqiang閱讀 950評論 0 3
  • 滿滿的正能量原話: “滿滿的正能量,早晨起來红选,擁抱太陽澜公,讓身體充滿,燦爛的陽光喇肋,滿滿的正能量坟乾,嘴角向下,會迷失方向...
    恩惠有嘉閱讀 8,374評論 0 0