在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀(guān)看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

完整的Faster R-CNN框架

新機(jī)器視覺(jué) ? 來(lái)源:新機(jī)器視覺(jué) ? 作者:新機(jī)器視覺(jué) ? 2021-03-20 10:37 ? 次閱讀

背景

Faster R-CNN 最早在 2015 年的 NIPS 發(fā)布。其在發(fā)布后經(jīng)歷了幾次修改,這在之后博文中會(huì)有討論。Faster-RCNN 是 RCNN 系列論文的第三次迭代,這一系列論文的一作和聯(lián)合作者是 Ross Girshick。

這一切始于 2014 年的一篇論文「Rich feature hierarchies for accurate object detection and semantic segmentation」(R-CNN),其使用了稱(chēng)為 Selective Search 的算法用來(lái)提取感興趣候選區(qū)域,并用一個(gè)標(biāo)準(zhǔn)的卷積神經(jīng)網(wǎng)絡(luò) (CNN) 去分類(lèi)和調(diào)整這些區(qū)域。Fast R-CNN 從 R-CNN 演變優(yōu)化而來(lái),F(xiàn)ast R-CNN 發(fā)布于 2015 年上半年,其中一種稱(chēng)為感興趣區(qū)域池化的技術(shù),使得網(wǎng)絡(luò)可以共享計(jì)算結(jié)果,從而讓模型提速。這一系列算法最終被優(yōu)化為 Faster R-CNN,這是第一個(gè)完全可微分的模型。

框架

Faster R-CNN 的框架由幾個(gè)模塊部件組成,所以其框架有些復(fù)雜。我們將從高層次的概述開(kāi)始,之后會(huì)介紹不同組成部分的具體細(xì)節(jié)。

從一張圖片開(kāi)始,我們將會(huì)得到:

一個(gè)邊框列表

每個(gè)邊框會(huì)被分配一個(gè)標(biāo)簽

每對(duì)標(biāo)簽和邊框所對(duì)應(yīng)的概率

完整的 Faster R-CNN 框架

輸入的圖片以長(zhǎng)×寬×高的張量形式表征,之后會(huì)被饋送入預(yù)訓(xùn)練好的卷積神經(jīng)網(wǎng)絡(luò),在中間層得到特征圖。使用該特征圖作為特征提取器并用于下一流程。

上述方法在遷移學(xué)習(xí)中經(jīng)常使用,尤其在為小數(shù)據(jù)集訓(xùn)練分類(lèi)器時(shí),其通常取用了在另一個(gè)較大數(shù)據(jù)集訓(xùn)練好的權(quán)重。我們?cè)谙乱徽鹿?jié)會(huì)深入了解這個(gè)部分。接著,我們會(huì)使用到區(qū)域建議網(wǎng)絡(luò)(Region Proposal Network,RPN)。使用 CNN 計(jì)算得到的特征,去尋找到預(yù)設(shè)好數(shù)量的可能包含目標(biāo)的區(qū)域 (邊框)。

使用深度學(xué)習(xí)進(jìn)行目標(biāo)檢測(cè)最大的困難可能是生成一個(gè)長(zhǎng)度可變的邊框列表。使用深度神經(jīng)網(wǎng)絡(luò)建模時(shí),模型最后一部分通常是一個(gè)固定尺寸的張量輸出(除了循環(huán)神經(jīng)網(wǎng)絡(luò))。例如,在圖片分類(lèi)中,輸出是 (N,) 形狀的張量,N 是類(lèi)別的數(shù)量,其中在第 i 個(gè)位置標(biāo)量含有該圖片屬于類(lèi)別 i 的概率。

RPN 中長(zhǎng)度可變列表的問(wèn)題可以使用錨點(diǎn)解決:使用固定尺寸的參考邊框在原始圖片上一致地定位。不是直接探測(cè)目標(biāo)在哪,而是把問(wèn)題分兩個(gè)方面建模,對(duì)每個(gè)錨點(diǎn),我們考慮:

這個(gè)錨點(diǎn)包含相關(guān)目標(biāo)嗎?

如何調(diào)整錨點(diǎn)以更好的擬合到相關(guān)目標(biāo)?

可能會(huì)有點(diǎn)困擾,但是沒(méi)關(guān)系,下面會(huì)深入了解。

在取得一系列的相關(guān)目標(biāo)和其在原始圖片上的位置后,目標(biāo)探測(cè)問(wèn)題就可以相對(duì)直觀(guān)地解決了。使用 CNN 提取到的特征和相關(guān)目標(biāo)的邊框,我們?cè)谙嚓P(guān)目標(biāo)的特征圖上使用感興趣區(qū)域池化 (RoI Pooling),并將與目標(biāo)相關(guān)的特征信息存入一個(gè)新的張量。之后的流程與 R-CNN 模型一致,利用這些信息:

對(duì)邊框內(nèi)的內(nèi)容分類(lèi)(或者舍棄它,并用「背景」標(biāo)記邊框內(nèi)容)

調(diào)整邊框的坐標(biāo)(使之更好地包含目標(biāo))

顯然,這樣做會(huì)遺失掉部分信息,但這正是 Faster-RCNN 如何進(jìn)行目標(biāo)探測(cè)的基本思想。下一步,我們會(huì)仔細(xì)討論框架、損失函數(shù)以及訓(xùn)練過(guò)程中各個(gè)組件的具體細(xì)節(jié)。

基礎(chǔ)網(wǎng)絡(luò)

之前提到過(guò),F(xiàn)aster R-CNN 第一步要使用在圖片分類(lèi)任務(wù) (例如,ImageNet) 上預(yù)訓(xùn)練好的卷積神經(jīng)網(wǎng)絡(luò),使用該網(wǎng)絡(luò)得到的中間層特征的輸出。這對(duì)有深度學(xué)習(xí)背景的人來(lái)說(shuō)很簡(jiǎn)單,但是理解如何使用和為什么這樣做才是關(guān)鍵,同時(shí),可視化中間層的特征輸出也很重要。沒(méi)有一致的意見(jiàn)表明哪個(gè)網(wǎng)絡(luò)框架是最好的。原始的 Faster R-CNN 使用的是在 ImageNet 上預(yù)訓(xùn)練的 ZF 和 VGG,但之后出現(xiàn)了很多不同的網(wǎng)絡(luò),且不同網(wǎng)絡(luò)的參數(shù)數(shù)量變化很大。例如,MobileNet,以速度優(yōu)先的一個(gè)小型的高效框架,大約有 330 萬(wàn)個(gè)參數(shù),而 ResNet-152(152 層),曾經(jīng)的 ImageNet 圖片分類(lèi)競(jìng)賽優(yōu)勝者,大約有 6000 萬(wàn)個(gè)參數(shù)。最新的網(wǎng)絡(luò)結(jié)構(gòu)如 DenseNet,可以在提高準(zhǔn)確度的同時(shí)縮減參數(shù)數(shù)量。

VGG

在討論網(wǎng)絡(luò)結(jié)構(gòu)孰優(yōu)孰劣之前,讓我們先以 VGG-16 為例來(lái)嘗試?yán)斫?Faster-RCNN 是如何工作的。

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

VGG,其名字來(lái)自于在 ImageNet ILSVRC 2014 競(jìng)賽中使用此網(wǎng)絡(luò)的小組組名,首次發(fā)布于論文」Very Deep Convolutional Networks for Large-Scale Image Recognition」, 作者是 Karen Simonyan 和 Andrew Zisserman。以今天的標(biāo)準(zhǔn)來(lái)看這個(gè)網(wǎng)絡(luò)談不上深度,但是在發(fā)布之際 VGG16 比當(dāng)時(shí)常用的網(wǎng)絡(luò)要多一倍的層數(shù),其推動(dòng)了「深度 → 更強(qiáng)大性能 → 更好結(jié)果」的浪潮(只要訓(xùn)練是可行的)。

當(dāng)使用 VGG 進(jìn)行分類(lèi)任務(wù)時(shí),其輸入是 224×224×3 的張量 (表示一個(gè) 224×224 像素大小的 RGB 圖片)。在分類(lèi)任務(wù)中輸入圖片的尺寸是固定的,因?yàn)榫W(wǎng)絡(luò)最后一部分的全連接層需要固定長(zhǎng)度的輸入。在接入全連接層前,通常要將最后一層卷積的輸出展開(kāi)成一維張量。

因?yàn)橐褂镁矸e網(wǎng)絡(luò)中間層的輸出,所以輸入圖片的尺寸不再有限制。至少,在這個(gè)模塊中不再是問(wèn)題,因?yàn)橹挥芯矸e層參與計(jì)算。讓我們深入了解一下底層的細(xì)節(jié),看看具體要使用哪一層卷積網(wǎng)絡(luò)的輸出。Faster R-CNN 論文中沒(méi)有具體指定使用哪一層;但是在官方的實(shí)現(xiàn)中可以觀(guān)察到,作者使用的是 conv5/conv5_1 這一層 (caffe 代碼)。

每一層卷積網(wǎng)絡(luò)都在前一層的信息基礎(chǔ)上提取更加抽象的特征。第一層通常學(xué)習(xí)到簡(jiǎn)單的邊緣,第二層尋找目標(biāo)邊緣的模式,以激活后續(xù)卷積網(wǎng)絡(luò)中更加復(fù)雜的形狀。最終,我們得到一個(gè)在空間維度上比原始圖片小很多,但表征更深的卷積特征圖。特征圖的長(zhǎng)和寬會(huì)隨著卷積層間的池化而縮小,深度會(huì)隨著卷積層濾波器的數(shù)量而增加。

從圖片到卷積特征圖

卷積特征圖將圖片的所有信息編碼到深度的維度上,同時(shí)保留著原始圖片上目標(biāo)物體的相對(duì)位置信息。例如,如果圖片左上角有一個(gè)紅色矩形,經(jīng)過(guò)卷積層的激活,那么紅色矩形的位置信息仍然保留在卷積特征圖的左上角。

VGG vs ResNet

如今,ResNet 已經(jīng)取代大多數(shù) VGG 網(wǎng)絡(luò)作為提取特征的基礎(chǔ)框架。Faster-RCNN 的三位聯(lián)合作者 (Kaiming He, Shaoqing Ren 和 Jian Sun) 也是論文「Deep Residual Learning for Image (https://arxiv.org/abs/1512.03385) Recognition」的作者,這篇論文最初介紹了 ResNets 這一框架。

ResNet 對(duì)比 VGG 的優(yōu)勢(shì)在于它是一個(gè)更深層、大型的網(wǎng)絡(luò),因此有更大的容量去學(xué)習(xí)所需要的信息。這些結(jié)論在圖片分類(lèi)任務(wù)中可行,在目標(biāo)探測(cè)的問(wèn)題中也應(yīng)該同樣有效。

ResNet 在使用殘差連接和批歸一化的方法后更加易于訓(xùn)練,這些方法在 VGG 發(fā)布的時(shí)候還沒(méi)有出現(xiàn)。

錨點(diǎn)

現(xiàn)在,我們將使用處理過(guò)后的特征圖并建議目標(biāo)區(qū)域,也就是用于分類(lèi)任務(wù)的感興趣區(qū)域。之前提到過(guò)錨點(diǎn)是解決長(zhǎng)度可變問(wèn)題的一種方法,現(xiàn)在將詳細(xì)介紹。

我們的目標(biāo)是尋找圖片中的邊框。這些邊框是不同尺寸、不同比例的矩形。設(shè)想我們?cè)诮鉀Q問(wèn)題前已知圖片中有兩個(gè)目標(biāo)。那么首先想到的應(yīng)該是訓(xùn)練一個(gè)網(wǎng)絡(luò),這個(gè)網(wǎng)絡(luò)可以返回 8 個(gè)值:包含(xmin, ymin, xmax, ymax)的兩個(gè)元組,每個(gè)元組都用于定義一個(gè)目標(biāo)的邊框坐標(biāo)。這個(gè)方法有著根本問(wèn)題,例如,圖片可能是不同尺寸和比例的,因此訓(xùn)練一個(gè)可以直接準(zhǔn)確預(yù)測(cè)原始坐標(biāo)的模型是很復(fù)雜的。另一個(gè)問(wèn)題是無(wú)效預(yù)測(cè):當(dāng)預(yù)測(cè)(xmin,xmax)和(ymin,ymax)時(shí),應(yīng)該強(qiáng)制設(shè)定 xmin 要小于 xmax,ymin 要小于 ymax。

另一種更加簡(jiǎn)單的方法是去預(yù)測(cè)參考邊框的偏移量。使用參考邊框(xcenter, ycenter, width, height),學(xué)習(xí)預(yù)測(cè)偏移量(Δxcenter,Δycenter,Δwidth,Δheight),因此我們只得到一些小數(shù)值的預(yù)測(cè)結(jié)果并挪動(dòng)參考變量就可以達(dá)到更好的擬合結(jié)果。

錨點(diǎn)是用固定的邊框置于不同尺寸和比例的圖片上,并且在之后目標(biāo)位置的預(yù)測(cè)中用作參考邊框。

我們?cè)谔幚淼木矸e特征圖的尺寸分別是 convwidth×convheight×convdepth,因此在卷積圖的 convwidth×convheight 上每一個(gè)點(diǎn)都生成一組錨點(diǎn)。很重要的一點(diǎn)是即使我們是在特征圖上生成的錨點(diǎn),這些錨點(diǎn)最終是要映射回原始圖片的尺寸。

因?yàn)槲覀冎挥玫搅司矸e和池化層,所以特征圖的最終維度與原始圖片是呈比例的。數(shù)學(xué)上,如果圖片的尺寸是 w×h,那么特征圖最終會(huì)縮小到尺寸為 w/r 和 h/r,其中 r 是次級(jí)采樣率。如果我們?cè)谔卣鲌D上每個(gè)空間位置上都定義一個(gè)錨點(diǎn),那么最終圖片的錨點(diǎn)會(huì)相隔 r 個(gè)像素,在 VGG 中,r=16。

原始圖片的錨點(diǎn)中心

為了選擇一組合適錨點(diǎn),我們通常定義一組固定尺寸 (例如,64px、128px、256px,此處為邊框大小) 和比例 (例如,0.5、1、1.5,此處為邊框長(zhǎng)寬比) 的邊框,使用這些變量的所有可能組合得到候選邊框 (這個(gè)例子中有 1 個(gè)錨點(diǎn)和 9 個(gè)邊框)。

左側(cè):錨點(diǎn)、中心:特征圖空間單一錨點(diǎn)在原圖中的表達(dá),右側(cè):所有錨點(diǎn)在原圖中的表達(dá)

區(qū)域建議網(wǎng)絡(luò)

RPN 采用卷積特征圖并在圖像上生成建議。

像我們之前提到的那樣,RPN 接受所有的參考框(錨點(diǎn))并為目標(biāo)輸出一套好的建議。它通過(guò)為每個(gè)錨點(diǎn)提供兩個(gè)不同的輸出來(lái)完成。

第一個(gè)輸出是錨點(diǎn)作為目標(biāo)的概率。如果你愿意,可以叫做「目標(biāo)性得分」。注意,RPN 不關(guān)心目標(biāo)的類(lèi)別,只在意它實(shí)際上是不是一個(gè)目標(biāo)(而不是背景)。我們將用這個(gè)目標(biāo)性得分來(lái)過(guò)濾掉不好的預(yù)測(cè),為第二階段做準(zhǔn)備。第二個(gè)輸出是邊框回歸,用于調(diào)整錨點(diǎn)以更好的擬合其預(yù)測(cè)的目標(biāo)。

RPN 是用完全卷積的方式高效實(shí)現(xiàn)的,用基礎(chǔ)網(wǎng)絡(luò)返回的卷積特征圖作為輸入。首先,我們使用一個(gè)有 512 個(gè)通道和 3x3 卷積核大小的卷積層,然后我們有兩個(gè)使用 1x1 卷積核的并行卷積層,其通道數(shù)量取決于每個(gè)點(diǎn)的錨點(diǎn)數(shù)量。

RPN 架構(gòu)的卷積實(shí)現(xiàn),其中 k 是錨點(diǎn)的數(shù)量。

對(duì)于分類(lèi)層,我們對(duì)每個(gè)錨點(diǎn)輸出兩個(gè)預(yù)測(cè)值:它是背景(不是目標(biāo))的分?jǐn)?shù),和它是前景(實(shí)際的目標(biāo))的分?jǐn)?shù)。

對(duì)于回歸或邊框調(diào)整層,我們輸出四個(gè)預(yù)測(cè)值:Δxcenter、Δycenter、Δwidth、Δheight,我們將會(huì)把這些值用到錨點(diǎn)中來(lái)得到最終的建議。

使用最終的建議坐標(biāo)和它們的目標(biāo)性得分,然后可以得到一套很好的對(duì)于目標(biāo)的建議。

訓(xùn)練、目標(biāo)和損失函數(shù)

RPN 執(zhí)行兩種不同類(lèi)型的預(yù)測(cè):二進(jìn)制分類(lèi)和邊框回歸調(diào)整。為了訓(xùn)練,我們把所有的錨點(diǎn)分成兩類(lèi)。一類(lèi)是「前景」,它與真實(shí)目標(biāo)重疊并且其 IoU(Intersection of Union)值大于 0.5;另一類(lèi)是「背景」,它不與任何真實(shí)目標(biāo)重疊或與真實(shí)目標(biāo)的 IoU 值 小于 0.1。

然后,我們對(duì)這些錨點(diǎn)隨機(jī)采樣,構(gòu)成大小為 256 的 mini batch——維持前景錨點(diǎn)和背景錨點(diǎn)之間的平衡比例。

RPN 用所有以 mini batch 篩選出來(lái)的錨點(diǎn)和二進(jìn)制交叉熵(binary cross entropy)來(lái)計(jì)算分類(lèi)損失。然后它只用那些標(biāo)記為前景的 mini batch 錨點(diǎn)來(lái)計(jì)算回歸損失。為了計(jì)算回歸的目標(biāo),我們使用前景錨點(diǎn)和最接近的真實(shí)目標(biāo),并計(jì)算將錨點(diǎn)轉(zhuǎn)化為目標(biāo)所需的正確 Δ。

論文中建議使用 Smooth L1 loss 來(lái)計(jì)算回歸誤差,而不是用簡(jiǎn)單的 L1 或 L2 loss。Smooth L1 基本上就是 L1,但是當(dāng) L1 的誤差足夠小,由確定的 σ 定義時(shí),可以認(rèn)為誤差幾乎是正確的且損失以更快的速率減小。

使用 dynamic batches 是具有挑戰(zhàn)性的,這里的原因很多。即使我們?cè)噲D維持前景錨點(diǎn)和背景錨點(diǎn)之間的平衡比例,但這并不總是可能的。根據(jù)圖像上的真實(shí)目標(biāo)以及錨點(diǎn)的大小和比例,可能會(huì)得到零前景錨點(diǎn)。在這種情況下,我們轉(zhuǎn)而使用對(duì)于真實(shí)框具有最大 IoU 值的錨點(diǎn)。這遠(yuǎn)非理想情況,但是為了總是有前景樣本和目標(biāo)可以學(xué)習(xí),這還是挺實(shí)用的。

后處理

非極大抑制(Non-maximum suppression):由于錨點(diǎn)經(jīng)常重疊,因此建議最終也會(huì)在同一個(gè)目標(biāo)上重疊。為了解決重復(fù)建議的問(wèn)題,我們使用一個(gè)簡(jiǎn)單的算法,稱(chēng)為非極大抑制(NMS)。NMS 獲取按照分?jǐn)?shù)排序的建議列表并對(duì)已排序的列表進(jìn)行迭代,丟棄那些 IoU 值大于某個(gè)預(yù)定義閾值的建議,并提出一個(gè)具有更高分?jǐn)?shù)的建議。

雖然這看起來(lái)很簡(jiǎn)單,但對(duì) IoU 的閾值設(shè)定一定要非常小心。太低,你可能會(huì)丟失對(duì)目標(biāo)的建議;太高,你可能會(huì)得到對(duì)同一個(gè)目標(biāo)的很多建議。常用值是 0.6。

建議選擇:應(yīng)用 NMS 后,我們保留評(píng)分最高的 N 個(gè)建議。論文中使用 N=2000,但是將這個(gè)數(shù)字降低到 50 仍然可以得到相當(dāng)好的結(jié)果。

獨(dú)立應(yīng)用程序

RPN 可以獨(dú)立使用,而不需要第二階段的模型。在只有一類(lèi)對(duì)象的問(wèn)題中,目標(biāo)性概率可以用作最終的類(lèi)別概率。這是因?yàn)樵谶@種情況下,「前景」=「目標(biāo)類(lèi)別」以及「背景」=「不是目標(biāo)類(lèi)別」。

一些從獨(dú)立使用 RPN 中受益的機(jī)器學(xué)習(xí)問(wèn)題的例子包括流行的(但仍然是具有挑戰(zhàn)性的)人臉檢測(cè)和文本檢測(cè)。

僅使用 RPN 的優(yōu)點(diǎn)之一是訓(xùn)練和預(yù)測(cè)的速度都有所提高。由于 RPN 是一個(gè)非常簡(jiǎn)單的僅使用卷積層的網(wǎng)絡(luò),所以預(yù)測(cè)時(shí)間比使用分類(lèi)基礎(chǔ)網(wǎng)絡(luò)更快。

興趣區(qū)域池化

在 RPN 步驟之后,我們有很多沒(méi)有分配類(lèi)別的目標(biāo)建議。我們接下來(lái)要解決的問(wèn)題就是如何將這些邊框分類(lèi)到我們想要的類(lèi)別中。

最簡(jiǎn)單的方法是采用每個(gè)建議,裁剪出來(lái),然后讓它通過(guò)預(yù)訓(xùn)練的基礎(chǔ)網(wǎng)絡(luò)。然后,我們可以用提取的特征作為基礎(chǔ)圖像分類(lèi)器的輸入。這種方法的主要問(wèn)題是運(yùn)行所有 2000 個(gè)建議的計(jì)算效率和速度都是非常低的。

Faster R-CNN 試圖通過(guò)復(fù)用現(xiàn)有的卷積特征圖來(lái)解決或至少緩解這個(gè)問(wèn)題。這是通過(guò)用興趣區(qū)域池化為每個(gè)建議提取固定大小的特征圖實(shí)現(xiàn)的。R-CNN 需要固定大小的特征圖,以便將它們分類(lèi)到固定數(shù)量的類(lèi)別中。

興趣區(qū)域池化

一種更簡(jiǎn)單的方法(被包括 Luminoth 版本的 Faster R-CNN 在內(nèi)的目標(biāo)檢測(cè)實(shí)現(xiàn)方法所廣泛使用),是用每個(gè)建議來(lái)裁剪卷積特征圖,然后用插值(通常是雙線(xiàn)性的)將每個(gè)裁剪調(diào)整為固定大小(14×14×convdepth)。裁剪之后,用 2x2 核大小的最大池化來(lái)獲得每個(gè)建議最終的 7×7×convdepth 特征圖。

選擇這些確切形狀的原因與下一模塊(R-CNN)如何使用它有關(guān),這些設(shè)定是根據(jù)第二階段的用途得到的。

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

基于區(qū)域的卷積神經(jīng)網(wǎng)絡(luò)(R-CNN)是 Faster R-CNN 工作流的最后一步。從圖像上獲得卷積特征圖之后,用它通過(guò) RPN 來(lái)獲得目標(biāo)建議并最終為每個(gè)建議提取特征(通過(guò) RoI Pooling),最后我們需要使用這些特征進(jìn)行分類(lèi)。R-CNN 試圖模仿分類(lèi) CNNs 的最后階段,在這個(gè)階段用一個(gè)全連接層為每個(gè)可能的目標(biāo)類(lèi)輸出一個(gè)分?jǐn)?shù)。

R-CNN 有兩個(gè)不同的目標(biāo):

1. 將建議分到一個(gè)類(lèi)中,加上一個(gè)背景類(lèi)(用于刪除不好的建議)。

2. 根據(jù)預(yù)測(cè)的類(lèi)別更好地調(diào)整建議的邊框。

在最初的 Faster R-CNN 論文中,R-CNN 對(duì)每個(gè)建議采用特征圖,將它平坦化并使用兩個(gè)大小為 4096 的有 ReLU 激活函數(shù)的全連接層。

然后,它對(duì)每個(gè)不同的目標(biāo)使用兩種不同的全連接層:

一個(gè)有 N+1 個(gè)單元的全連接層,其中 N 是類(lèi)的總數(shù),另外一個(gè)是背景類(lèi)。

一個(gè)有 4N 個(gè)單元的全連接層。我們希望有一個(gè)回歸預(yù)測(cè),因此對(duì) N 個(gè)類(lèi)別中的每一個(gè)可能的類(lèi)別,我們都需要 Δcenterx、Δcentery、Δwidth、Δheight。

R-CNN 架構(gòu)

訓(xùn)練和目標(biāo)

R-CNN 的目標(biāo)與 RPN 的目標(biāo)的計(jì)算方法幾乎相同,但是考慮的是不同的可能類(lèi)別。我們采用建議和真實(shí)邊框,并計(jì)算它們之間的 IoU。

那些有任何真實(shí)邊框的建議,只要其 IoU 大于 0.5,都被分配給那個(gè)真實(shí)數(shù)據(jù)。那些 IoU 在 0.1 和 0.5 之間的被標(biāo)記為背景。與我們?cè)跒?RPN 分配目標(biāo)時(shí)相反的是,我們忽略了沒(méi)有任何交集的建議。這是因?yàn)樵谶@個(gè)階段,我們假設(shè)已經(jīng)有好的建議并且我們對(duì)解決更困難的情況更有興趣。當(dāng)然,這些所有的值都是可以為了更好的擬合你想找的目標(biāo)類(lèi)型而做調(diào)整的超參數(shù)。

邊框回歸的目標(biāo)是計(jì)算建議和與其對(duì)應(yīng)的真實(shí)框之間的偏移量,僅針對(duì)那些基于 IoU 閾值分配了類(lèi)別的建議。

我們隨機(jī)抽樣了一個(gè)尺寸為 64 的 balanced mini batch,其中我們有高達(dá) 25% 的前景建議(有類(lèi)別)和 75% 的背景。

按照我們對(duì) RPN 損失所做的相同處理方式,現(xiàn)在的分類(lèi)損失是一個(gè)多類(lèi)別的交叉熵?fù)p失,使用所有選定的建議和用于與真實(shí)框匹配的 25% 建議的 Smooth L1 loss。由于 R-CNN 邊框回歸的全連接網(wǎng)絡(luò)的輸出對(duì)于每個(gè)類(lèi)都有一個(gè)預(yù)測(cè),所以當(dāng)我們得到這種損失時(shí)必須小心。在計(jì)算損失時(shí),我們只需要考慮正確的類(lèi)。

后處理

與 RPN 相似,我們最終得到了很多已經(jīng)分配了類(lèi)別的目標(biāo),在返回它們之前需要進(jìn)一步處理。

為了實(shí)施邊框調(diào)整,我們必須考慮哪個(gè)類(lèi)別具有對(duì)該建議的最高概率。我們也需要忽略具有最高概率的背景類(lèi)的建議。

在得到最終目標(biāo)和忽略被預(yù)測(cè)為背景的目標(biāo)之后,我們應(yīng)用基于類(lèi)的 NMS。這通過(guò)按類(lèi)進(jìn)行分組完成,通過(guò)概率對(duì)其排序,然后將 NMS 應(yīng)用于每個(gè)獨(dú)立的組。

對(duì)于我們最后的目標(biāo)列表,我們也可以設(shè)置一個(gè)概率閾值并且對(duì)每個(gè)類(lèi)限制目標(biāo)的數(shù)量。

訓(xùn)練

在最初的論文中,F(xiàn)aster R-CNN 是用多步法訓(xùn)練的,獨(dú)立地訓(xùn)練各部分并且在應(yīng)用最終的全面訓(xùn)練方法之前合并訓(xùn)練的權(quán)重。之后,人們發(fā)現(xiàn)進(jìn)行端到端的聯(lián)合訓(xùn)練會(huì)帶來(lái)更好的結(jié)果。

把完整的模型放在一起后,我們得到 4 個(gè)不同的損失,兩個(gè)用于 RPN,另外兩個(gè)用于 R-CNN。我們?cè)?RPN 和 R-CNN 中有可訓(xùn)練的層,我們也有可以訓(xùn)練(微調(diào))或不能訓(xùn)練的基礎(chǔ)網(wǎng)絡(luò)。

是否訓(xùn)練基礎(chǔ)網(wǎng)絡(luò)的決定取決于我們想要學(xué)習(xí)的目標(biāo)特性和可用的計(jì)算能力。如果我們想檢測(cè)與在原始數(shù)據(jù)集(用于訓(xùn)練基礎(chǔ)網(wǎng)絡(luò))上的數(shù)據(jù)相似的目標(biāo),那么除了嘗試壓縮我們能獲得的所有可能的性能外,其他做法都是沒(méi)有必要的。另一方面,為了擬合完整的梯度,訓(xùn)練基礎(chǔ)網(wǎng)絡(luò)在時(shí)間和必要的硬件上都是昂貴的。

用加權(quán)和將四種不同的損失組合起來(lái)。這是因?yàn)橄鄬?duì)于回歸損失,我們可能希望給分類(lèi)損失更大的權(quán)重,或者相比于 RPN 可能給 R-CNN 損失更大的權(quán)重。

除了常規(guī)的損失之外,我們也有正則化損失,為了簡(jiǎn)潔起見(jiàn),我們可以跳過(guò)這部分,但是它們?cè)?RPN 和 R-CNN 中都可以定義。我們用 L2 正則化一些層。根據(jù)正在使用哪個(gè)基礎(chǔ)網(wǎng)絡(luò),以及如果它經(jīng)過(guò)訓(xùn)練,也有可能進(jìn)行正則化。

我們用隨機(jī)梯度下降的動(dòng)量算法訓(xùn)練,將動(dòng)量值設(shè)置為 0.9。你可以輕松的用其他任何優(yōu)化方法訓(xùn)練 Faster R-CNN,而不會(huì)遇到任何大問(wèn)題。

學(xué)習(xí)率從 0.001 開(kāi)始,然后在 50K 步后下降到 0.0001。這是通常最重要的超參數(shù)之一。當(dāng)用 Luminoth 訓(xùn)練時(shí),我們經(jīng)常從默認(rèn)值開(kāi)始,并以此開(kāi)始做調(diào)整。

評(píng)估

在一些特定的 IoU 閾值下,使用標(biāo)準(zhǔn)平均精度均值(mAP)來(lái)完成評(píng)估(例如,mAP@0.5)。mAP 是源于信息檢索的度量標(biāo)準(zhǔn),并且常用于計(jì)算排序問(wèn)題中的誤差和評(píng)估目標(biāo)檢測(cè)問(wèn)題。

我們不會(huì)深入討論細(xì)節(jié),因?yàn)檫@些類(lèi)型的度量標(biāo)準(zhǔn)值得用一篇完整博客來(lái)總結(jié),但重要的是,當(dāng)你錯(cuò)過(guò)了你應(yīng)該檢測(cè)到的框,以及當(dāng)你發(fā)現(xiàn)一些不存在的東西或多次檢測(cè)到相同的東西時(shí),mAP 會(huì)對(duì)此進(jìn)行懲罰。

結(jié)論

到目前為止,你應(yīng)該清楚 Faster R-CNN 的工作方式、設(shè)計(jì)目的以及如何針對(duì)特定的情況進(jìn)行調(diào)整。如果你想更深入的了解它的工作原理,你應(yīng)該看看 Luminoth 的實(shí)現(xiàn)。

Faster R-CNN 是被證明可以用相同的原理解決復(fù)雜的計(jì)算機(jī)視覺(jué)問(wèn)題的模型之一,在這個(gè)新的深度學(xué)習(xí)革命剛開(kāi)始的時(shí)候,它就展現(xiàn)出如此驚人的結(jié)果。

目前正在建立的新模型不僅用于目標(biāo)檢測(cè),還用于基于這種原始模型的語(yǔ)義分割、3D 目標(biāo)檢測(cè)等等。有的借用 RPN,有的借用 R-CNN,還有的建立在兩者之上。因此,充分了解底層架構(gòu)非常重要,從而可以解決更加廣泛的和復(fù)雜的問(wèn)題。

責(zé)任編輯:lq

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀(guān)點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴

原文標(biāo)題:詳解 Faster R-CNN目標(biāo)檢測(cè)的實(shí)現(xiàn)過(guò)程

文章出處:【微信號(hào):vision263com,微信公眾號(hào):新機(jī)器視覺(jué)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    【「具身智能機(jī)器人系統(tǒng)」閱讀體驗(yàn)】2.具身智能機(jī)器人的基礎(chǔ)模塊

    ,還有基于深度神經(jīng)網(wǎng)絡(luò)的Fast R-CNNFaster R-CNN。 語(yǔ)義分割是將圖像劃分為具有不同語(yǔ)義類(lèi)別的區(qū)域。 立體視覺(jué)通過(guò)模擬人類(lèi)雙眼的視覺(jué)系統(tǒng),利用兩天相機(jī)從略微不同的角度同時(shí)拍攝圖像
    發(fā)表于 01-04 19:22

    聽(tīng)懂什么是信號(hào)完整

    2024年12月20日14:00-16:00中星聯(lián)華科技將舉辦“高速信號(hào)完整性分析與測(cè)試”-“碼”上行動(dòng)系列線(xiàn)上講堂線(xiàn)上講堂。本期會(huì)議我們將為大家介紹高速串行總線(xiàn)傳輸基本框架,什么是信號(hào)完整性?高速
    的頭像 發(fā)表于 12-15 23:33 ?288次閱讀
    聽(tīng)懂什么是信號(hào)<b class='flag-5'>完整</b>性

    cnn常用的幾個(gè)模型有哪些

    CNN(卷積神經(jīng)網(wǎng)絡(luò))是一種深度學(xué)習(xí)模型,廣泛應(yīng)用于圖像識(shí)別、自然語(yǔ)言處理等領(lǐng)域。以下是一些常用的CNN模型: LeNet-5:LeNet-5是最早的卷積神經(jīng)網(wǎng)絡(luò)之一,由Yann LeCun等人于
    的頭像 發(fā)表于 07-11 14:58 ?1080次閱讀

    CNN與RNN的關(guān)系?

    在深度學(xué)習(xí)的廣闊領(lǐng)域中,卷積神經(jīng)網(wǎng)絡(luò)(CNN)和循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)是兩種極為重要且各具特色的神經(jīng)網(wǎng)絡(luò)模型。它們各自在圖像處理、自然語(yǔ)言處理等領(lǐng)域展現(xiàn)出卓越的性能。本文將從概念、原理、應(yīng)用場(chǎng)景及代碼示例等方面詳細(xì)探討CNN與RNN的關(guān)系,旨在深入理解這兩種網(wǎng)絡(luò)模型及其在
    的頭像 發(fā)表于 07-08 16:56 ?934次閱讀

    CNN的定義和優(yōu)勢(shì)

    卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks, CNN)作為深度學(xué)習(xí)領(lǐng)域的核心成員,不僅在學(xué)術(shù)界引起了廣泛關(guān)注,更在工業(yè)界尤其是計(jì)算機(jī)視覺(jué)領(lǐng)域展現(xiàn)出了巨大的應(yīng)用價(jià)值。關(guān)于
    的頭像 發(fā)表于 07-05 17:37 ?4447次閱讀

    如何在TensorFlow中構(gòu)建并訓(xùn)練CNN模型

    在TensorFlow中構(gòu)建并訓(xùn)練一個(gè)卷積神經(jīng)網(wǎng)絡(luò)(CNN)模型是一個(gè)涉及多個(gè)步驟的過(guò)程,包括數(shù)據(jù)預(yù)處理、模型設(shè)計(jì)、編譯、訓(xùn)練以及評(píng)估。下面,我將詳細(xì)闡述這些步驟,并附上一個(gè)完整的代碼示例。
    的頭像 發(fā)表于 07-04 11:47 ?1073次閱讀

    如何利用CNN實(shí)現(xiàn)圖像識(shí)別

    卷積神經(jīng)網(wǎng)絡(luò)(CNN)是深度學(xué)習(xí)領(lǐng)域中一種特別適用于圖像識(shí)別任務(wù)的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)。它通過(guò)模擬人類(lèi)視覺(jué)系統(tǒng)的處理方式,利用卷積、池化等操作,自動(dòng)提取圖像中的特征,進(jìn)而實(shí)現(xiàn)高效的圖像識(shí)別。本文將從CNN的基本原理、構(gòu)建過(guò)程、訓(xùn)練策略以及應(yīng)用場(chǎng)景等方面,詳細(xì)闡述如何利用
    的頭像 發(fā)表于 07-03 16:16 ?1528次閱讀

    NLP模型中RNN與CNN的選擇

    在自然語(yǔ)言處理(NLP)領(lǐng)域,循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)與卷積神經(jīng)網(wǎng)絡(luò)(CNN)是兩種極為重要且廣泛應(yīng)用的網(wǎng)絡(luò)結(jié)構(gòu)。它們各自具有獨(dú)特的優(yōu)勢(shì),適用于處理不同類(lèi)型的NLP任務(wù)。本文旨在深入探討RNN與CNN
    的頭像 發(fā)表于 07-03 15:59 ?649次閱讀

    cnn卷積神經(jīng)網(wǎng)絡(luò)分類(lèi)有哪些

    卷積神經(jīng)網(wǎng)絡(luò)(CNN)是一種深度學(xué)習(xí)模型,廣泛應(yīng)用于圖像分類(lèi)、目標(biāo)檢測(cè)、語(yǔ)義分割等領(lǐng)域。本文將詳細(xì)介紹CNN在分類(lèi)任務(wù)中的應(yīng)用,包括基本結(jié)構(gòu)、關(guān)鍵技術(shù)、常見(jiàn)網(wǎng)絡(luò)架構(gòu)以及實(shí)際應(yīng)用案例。 引言 1.1
    的頭像 發(fā)表于 07-03 09:28 ?752次閱讀

    cnn卷積神經(jīng)網(wǎng)絡(luò)三大特點(diǎn)是什么

    卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks,簡(jiǎn)稱(chēng)CNN)是一種深度學(xué)習(xí)模型,廣泛應(yīng)用于圖像識(shí)別、視頻分析、自然語(yǔ)言處理等領(lǐng)域。CNN具有以下三大特點(diǎn): 局部連接
    的頭像 發(fā)表于 07-03 09:26 ?1515次閱讀

    CNN模型的基本原理、結(jié)構(gòu)、訓(xùn)練過(guò)程及應(yīng)用領(lǐng)域

    卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,簡(jiǎn)稱(chēng)CNN)是一種深度學(xué)習(xí)模型,廣泛應(yīng)用于圖像識(shí)別、視頻分析、自然語(yǔ)言處理等領(lǐng)域。CNN模型的核心是卷積層
    的頭像 發(fā)表于 07-02 15:26 ?4090次閱讀

    卷積神經(jīng)網(wǎng)絡(luò)cnn模型有哪些

    卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks,簡(jiǎn)稱(chēng)CNN)是一種深度學(xué)習(xí)模型,廣泛應(yīng)用于圖像識(shí)別、視頻分析、自然語(yǔ)言處理等領(lǐng)域。 CNN的基本概念 1.1 卷積層
    的頭像 發(fā)表于 07-02 15:24 ?798次閱讀

    深入了解目標(biāo)檢測(cè)深度學(xué)習(xí)算法的技術(shù)細(xì)節(jié)

    本文將討論目標(biāo)檢測(cè)的基本方法(窮盡搜索、R-CNN、FastR-CNN和FasterR-CNN),并嘗試?yán)斫饷總€(gè)模型的技術(shù)細(xì)節(jié)。為了讓經(jīng)驗(yàn)水平各不相同的讀者都能夠理解,文章不會(huì)使用任何公式來(lái)進(jìn)行講解
    的頭像 發(fā)表于 04-30 08:27 ?392次閱讀
    深入了解目標(biāo)檢測(cè)深度學(xué)習(xí)算法的技術(shù)細(xì)節(jié)

    基于Python和深度學(xué)習(xí)的CNN原理詳解

    卷積神經(jīng)網(wǎng)絡(luò) (CNN) 由各種類(lèi)型的層組成,這些層協(xié)同工作以從輸入數(shù)據(jù)中學(xué)習(xí)分層表示。每個(gè)層在整體架構(gòu)中都發(fā)揮著獨(dú)特的作用。
    的頭像 發(fā)表于 04-06 05:51 ?2280次閱讀
    基于Python和深度學(xué)習(xí)的<b class='flag-5'>CNN</b>原理詳解

    如何選擇RTOS?使用R-Rhealstone框架評(píng)估

    文章描述基于Rhealstone的系統(tǒng)實(shí)時(shí)性的測(cè)量基準(zhǔn)的框架--R-Rhealstone框架。 在嵌入式軟件設(shè)計(jì)和集成中,實(shí)時(shí)多任務(wù)操作系統(tǒng)的性能分析是至關(guān)重要的,它需要保證應(yīng)用的時(shí)間限制得到滿(mǎn)足
    的頭像 發(fā)表于 02-20 13:54 ?1116次閱讀
    如何選擇RTOS?使用<b class='flag-5'>R</b>-Rhealstone<b class='flag-5'>框架</b>評(píng)估
    主站蜘蛛池模板: 免费无遮挡很爽很污很黄 | semimi亚洲综合在线观看 | 国产精品va在线观看不 | 欧美黑人粗硬大在线看 | 巨骚综合网| 色www视频永久免费软件 | 欧美一卡二卡科技有限公司 | 成年全黄大色大黄 | 五月天天色 | 激情综合网站 | 欧美又粗又长又湿又黄的视频 | 欧美一级视频精品观看 | 手机看片www xiao2b cm | www4hu| 亚洲不卡视频 | 婷婷在线综合 | 91aaa免费观看在线观看资源 | 国产白白白在线永久播放 | 色香欲亚洲天天综合网 | 18女毛片| 波多野结衣50连精喷在线 | 一个色在线 | 久久鲁视频 | 欧美一区二区三区不卡免费观看 | se在线播放 | 超级极品白嫩美女在线 | 日日舔夜夜操 | 欧美综合视频 | 永久观看| 成人免费看黄网站yyy456 | 男人一级片 | 免费看美女禁处爆涌视频 | 亚洲精品久久久久午夜 | 一本大道一卡二卡 | 天天干视频在线观看 | 免费黄色三级 | 美女扒开尿口让男人桶 | 一区二区三区伦理高清 | 男人边吃奶边爱边做视频日韩 | 在线亚洲日产一区二区 | 性试验k8经典 |