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

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

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

Feature Pyramid Networks for Object Detection 论文笔记

發(fā)布時(shí)間:2024/9/21 编程问答 65 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Feature Pyramid Networks for Object Detection 论文笔记 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

版權(quán)聲明:本文為博主原創(chuàng)文章,未經(jīng)博主允許不得轉(zhuǎn)載。 https://blog.csdn.net/Jesse_Mx/article/details/54588085

論文地址:Feature Pyramid Networks for Object Detection

前言

這篇論文主要使用特征金字塔網(wǎng)絡(luò)來(lái)融合多層特征,改進(jìn)了CNN特征提取。論文在Fast/Faster R-CNN上進(jìn)行了實(shí)驗(yàn),在COCO數(shù)據(jù)集上刷到了第一的位置,意味著其在小目標(biāo)檢測(cè)上取得了很大的進(jìn)步。論文整體思想比較簡(jiǎn)單,但是實(shí)驗(yàn)部分非常詳細(xì)和充分。此博文對(duì)主要內(nèi)容進(jìn)行了翻譯和理解工作,不足之處,歡迎討論。

摘要

特征金字塔是多尺度目標(biāo)檢測(cè)系統(tǒng)中的一個(gè)基本組成部分。近年來(lái)深度學(xué)習(xí)目標(biāo)檢測(cè)卻有意回避這一技巧,部分原因是特征金字塔在計(jì)算量和用時(shí)上很敏感(一句話,太慢)。這篇文章,作者利用了深度卷積神經(jīng)網(wǎng)絡(luò)固有的多尺度、多層級(jí)的金字塔結(jié)構(gòu)去構(gòu)建特征金字塔網(wǎng)絡(luò)。使用一種自上而下的側(cè)邊連接,在所有尺度構(gòu)建了高級(jí)語(yǔ)義特征圖,這種結(jié)構(gòu)就叫特征金字塔網(wǎng)絡(luò)(FPN)。其在特征提取上改進(jìn)明顯,把FPN用在Faster R-CNN上,在COCO數(shù)據(jù)集上,一舉超過(guò)了目前所有的單模型(single-model)檢測(cè)方法,而且在GPU上可以跑到5幀。代碼暫未開(kāi)源。

概述

多尺度目標(biāo)檢測(cè)是計(jì)算機(jī)視覺(jué)領(lǐng)域的一個(gè)基礎(chǔ)且具挑戰(zhàn)性的課題。在圖像金字塔基礎(chǔ)上構(gòu)建的特征金字塔(featurized image pyramids ,Figure1[a])是傳統(tǒng)解決思路,具有一定意義的尺度不變性。直觀上看,這種特性使得模型可以檢測(cè)大范圍尺度的圖像。

Featurized image pyramids 主要在人工特征中使用,比如DPM就要用到它產(chǎn)生密集尺度的樣本以提升檢測(cè)水平。目前人工特征式微,深度學(xué)習(xí)的CNN特征成為主流,CNN特征的魯棒性很好,刻畫(huà)能力強(qiáng)。即使如此,仍需要金字塔結(jié)構(gòu)去進(jìn)一步提升準(zhǔn)確性,尤其在多尺度檢測(cè)上。金字塔結(jié)構(gòu)的優(yōu)勢(shì)是其產(chǎn)生的特征每一層都是語(yǔ)義信息加強(qiáng)的,包括高分辨率的低層。

對(duì)圖像金字塔每一層都處理有很大的局限性,首先運(yùn)算耗時(shí)會(huì)增加4倍,訓(xùn)練深度網(wǎng)絡(luò)的時(shí)候太吃顯存,幾乎沒(méi)法用,即使用了,也只能在檢測(cè)的時(shí)候。因?yàn)檫@些原因,Fast/Faster R-CNN 都沒(méi)使用featurized image pyramids 。

當(dāng)然,圖像金字塔并不是多尺度特征表征的唯一方式,CNN計(jì)算的時(shí)候本身就存在多級(jí)特征圖(feature map hierarchy),且不同層的特征圖尺度就不同,形似金字塔結(jié)構(gòu)(Figure1[b])。結(jié)構(gòu)上雖不錯(cuò),但是前后層之間由于不同深度(depths)影響,語(yǔ)義信息差距太大,主要是高分辨率的低層特征很難有代表性的檢測(cè)能力。

SSD方法在借鑒利用featurized image pyramid上很是值得說(shuō),為了避免利用太低層的特征,SSD從偏后的conv4_3開(kāi)始,又往后加了幾層,分別抽取每層特征,進(jìn)行綜合利用(Figure1[c])。但是SSD對(duì)于高分辨率的底層特征沒(méi)有再利用,而這些層對(duì)于檢測(cè)小目標(biāo)很重要。

這篇論文的特征金字塔網(wǎng)絡(luò)(Figure1[d])做法很簡(jiǎn)單,如下圖所示。把低分辨率、高語(yǔ)義信息的高層特征和高分辨率、低語(yǔ)義信息的低層特征進(jìn)行自上而下的側(cè)邊連接,使得所有尺度下的特征都有豐富的語(yǔ)義信息。這種結(jié)構(gòu)是在CNN網(wǎng)絡(luò)中完成的,和前文提到的基于圖片的金字塔結(jié)構(gòu)不同,而且完全可以替代它。

本文特征金字塔網(wǎng)絡(luò)自上而下的結(jié)構(gòu),和某些論文有一定的相似之處,但二者目的不盡不同。作者做了檢測(cè)和分割實(shí)驗(yàn),COCO數(shù)據(jù)集的結(jié)果超過(guò)了現(xiàn)有水平,具體結(jié)果參見(jiàn)論文中實(shí)驗(yàn)部分。值得說(shuō)的是,本文方法在訓(xùn)練的時(shí)間和顯存使用上都是可接受的,檢測(cè)的時(shí)間也沒(méi)增加。

上圖簡(jiǎn)要說(shuō)下:(作者的創(chuàng)新之處就在于既使用了特征金字塔,又搞了分層預(yù)測(cè))
(a) 用圖片金字塔生成特征金字塔
(b) 只在特征最上層預(yù)測(cè)
(c) 特征層分層預(yù)測(cè)
(d) FPN從高層攜帶信息傳給底層,再分層預(yù)測(cè)

特征金字塔網(wǎng)絡(luò)

論文的目標(biāo)是利用CNN的金字塔層次結(jié)構(gòu)特性(具有從低到高級(jí)的語(yǔ)義),構(gòu)建具有高級(jí)語(yǔ)義的特征金字塔。得到的特征金字塔網(wǎng)絡(luò)(FPN)是通用的,但在論文中,作者先在RPN網(wǎng)絡(luò)和Fast R-CNN中使用這一成果,也將其用在instance segmentation proposals 中。

該方法將任意一張圖片作為輸入,以全卷積的方式在多個(gè)層級(jí)輸出成比例大小的特征圖,這是獨(dú)立于CNN骨干架構(gòu)(本文為ResNets)的。具體結(jié)構(gòu)如圖Figure 2。

自下而上的路徑

CNN的前饋計(jì)算就是自下而上的路徑,特征圖經(jīng)過(guò)卷積核計(jì)算,通常是越變?cè)叫〉?#xff0c;也有一些特征層的輸出和原來(lái)大小一樣,稱為“相同網(wǎng)絡(luò)階段”(same network stage )。對(duì)于本文的特征金字塔,作者為每個(gè)階段定義一個(gè)金字塔級(jí)別, 然后選擇每個(gè)階段的最后一層的輸出作為特征圖的參考集。 這種選擇是很自然的,因?yàn)槊總€(gè)階段的最深層應(yīng)該具有最強(qiáng)的特征。具體來(lái)說(shuō),對(duì)于ResNets,作者使用了每個(gè)階段的最后一個(gè)殘差結(jié)構(gòu)的特征激活輸出。將這些殘差模塊輸出表示為{C2, C3, C4, C5},對(duì)應(yīng)于conv2,conv3,conv4和conv5的輸出,并且注意它們相對(duì)于輸入圖像具有{4, 8, 16, 32}像素的步長(zhǎng)。考慮到內(nèi)存占用,沒(méi)有將conv1包含在金字塔中。

自上而下的路徑和橫向連接

自上而下的路徑(the top-down pathway )是如何去結(jié)合低層高分辨率的特征呢?方法就是,把更抽象,語(yǔ)義更強(qiáng)的高層特征圖進(jìn)行上取樣,然后把該特征橫向連接(lateral connections )至前一層特征,因此高層特征得到加強(qiáng)。值得注意的是,橫向連接的兩層特征在空間尺寸上要相同。這樣做應(yīng)該主要是為了利用底層的定位細(xì)節(jié)信息。

Figure 3顯示連接細(xì)節(jié)。把高層特征做2倍上采樣(最鄰近上采樣法),然后將其和對(duì)應(yīng)的前一層特征結(jié)合(前一層要經(jīng)過(guò)1 * 1的卷積核才能用,目的是改變channels,應(yīng)該是要和后一層的channels相同),結(jié)合方式就是做像素間的加法。重復(fù)迭代該過(guò)程,直至生成最精細(xì)的特征圖。迭代開(kāi)始階段,作者在C5層后面加了一個(gè)1 * 1的卷積核來(lái)產(chǎn)生最粗略的特征圖,最后,作者用3 * 3的卷積核去處理已經(jīng)融合的特征圖(為了消除上采樣的混疊效應(yīng)),以生成最后需要的特征圖。{C2, C3, C4, C5}層對(duì)應(yīng)的融合特征層為{P2, P3, P4, P5},對(duì)應(yīng)的層空間尺寸是相通的。

金字塔結(jié)構(gòu)中所有層級(jí)共享分類層(回歸層),就像featurized image pyramid 中所做的那樣。作者固定所有特征圖中的維度(通道數(shù),表示為d)。作者在本文中設(shè)置d = 256,因此所有額外的卷積層(比如P2)具有256通道輸出。 這些額外層沒(méi)有用非線性(博主:不知道具體所指),而非線性會(huì)帶來(lái)一些影響。

實(shí)際應(yīng)用

本文方法在理論上早CNN中是通用的,作者將其首先應(yīng)用到了RPN和Fast R-CNN中,應(yīng)用中盡量做較小幅度的修改。

Faster R-CNN+Resnet-101

要想明白FPN如何應(yīng)用在RPN和Fast R-CNN(合起來(lái)就是Faster R-CNN),首先要明白Faster R-CNN+Resnet-101的結(jié)構(gòu),這部分在是論文中沒(méi)有的,博主試著用自己的理解說(shuō)一下。

直接理解就是把Faster-RCNN中原有的VGG網(wǎng)絡(luò)換成ResNet-101,ResNet-101結(jié)構(gòu)如下圖:

Faster-RCNN利用conv1到conv4-x的91層為共享卷積層,然后從conv4-x的輸出開(kāi)始分叉,一路經(jīng)過(guò)RPN網(wǎng)絡(luò)進(jìn)行區(qū)域選擇,另一路直接連一個(gè)ROI Pooling層,把RPN的結(jié)果輸入ROI Pooling層,映射成7 * 7的特征。然后所有輸出經(jīng)過(guò)conv5-x的計(jì)算,這里conv5-x起到原來(lái)全連接層(fc)的作用。最后再經(jīng)分類器和邊框回歸得到最終結(jié)果。整體框架用下圖表示:

RPN中的特征金字塔網(wǎng)絡(luò)

RPN是Faster R-CNN中用于區(qū)域選擇的子網(wǎng)絡(luò),具體原理就不詳細(xì)解釋了,可閱讀論文和參考博客:faster-rcnn 之 RPN網(wǎng)絡(luò)的結(jié)構(gòu)解析 。

RPN是在一個(gè)13 * 13 * 256的特征圖上應(yīng)用9種不同尺度的anchor,本篇論文另辟蹊徑,把特征圖弄成多尺度的,然后固定每種特征圖對(duì)應(yīng)的anchor尺寸,很有意思。也就是說(shuō),作者在每一個(gè)金字塔層級(jí)應(yīng)用了單尺度的anchor,{P2, P3, P4, P5, P6}分別對(duì)應(yīng)的anchor尺度為{32^2, 64^2, 128^2, 256^2, 512^2 },當(dāng)然目標(biāo)不可能都是正方形,本文仍然使用三種比例{1:2, 1:1, 2:1},所以金字塔結(jié)構(gòu)中共有15種anchors。這里,博主嘗試畫(huà)一下修改后的RPN結(jié)構(gòu)(沒(méi)有完整畫(huà)出來(lái),大概就是這樣):

訓(xùn)練中,把重疊率(IoU)高于0.7的作為正樣本,低于0.3的作為負(fù)樣本。特征金字塔網(wǎng)絡(luò)之間有參數(shù)共享,其優(yōu)秀表現(xiàn)使得所有層級(jí)具有相似程度的語(yǔ)義信息。具體性能在實(shí)驗(yàn)中評(píng)估。

Fast R-CNN 中的特征金字塔網(wǎng)絡(luò)

Fast R-CNN的具體原理也不詳解了,參考博客:Fast R-CNN論文詳解 ,其中很重要的是ROI Pooling層,需要對(duì)不同層級(jí)的金字塔制定不同尺度的ROI。

此部分的理解不太肯定,請(qǐng)各位辯證看待。博主認(rèn)為,這里要把視角轉(zhuǎn)換一下,想象成有一種圖片金字塔在起作用。我們知道,ROI Pooling層使用region proposal的結(jié)果和中間的某一特征圖作為輸入,得到的結(jié)果經(jīng)過(guò)分解后分別用于分類結(jié)果和邊框回歸。

然后作者想的是,不同尺度的ROI,使用不同特征層作為ROI pooling層的輸入,大尺度ROI就用后面一些的金字塔層,比如P5;小尺度ROI就用前面一點(diǎn)的特征層,比如P4。那怎么判斷ROI改用那個(gè)層的輸出呢?這里作者定義了一個(gè)系數(shù)Pk,其定義為:

224是ImageNet的標(biāo)準(zhǔn)輸入,k0是基準(zhǔn)值,設(shè)置為5,代表P5層的輸出(原圖大小就用P5層),w和h是ROI區(qū)域的長(zhǎng)和寬,假設(shè)ROI是112 * 112的大小,那么k = k0-1 = 5-1 = 4,意味著該ROI應(yīng)該使用P4的特征層。k值應(yīng)該會(huì)做取整處理,防止結(jié)果不是整數(shù)。

然后,因?yàn)樽髡甙裞onv5也作為了金字塔結(jié)構(gòu)的一部分,那么從前全連接層的那個(gè)作用怎么辦呢?這里采取的方法是增加兩個(gè)1024維的輕量級(jí)全連接層,然后再跟上分類器和邊框回歸。作者認(rèn)為這樣還能使速度更快一些。

目標(biāo)檢測(cè)實(shí)驗(yàn)

這個(gè)篇幅過(guò)長(zhǎng),不好搬上博客,只能大家自己去看了。實(shí)驗(yàn)部分也沒(méi)有什么特別難懂的地方,該說(shuō)的前面基本都講了一下。

--------------------- 作者:Jesse_Mx 來(lái)源:CSDN 原文:https://blog.csdn.net/Jesse_Mx/article/details/54588085?utm_source=copy 版權(quán)聲明:本文為博主原創(chuàng)文章,轉(zhuǎn)載請(qǐng)附上博文鏈接!

總結(jié)

以上是生活随笔為你收集整理的Feature Pyramid Networks for Object Detection 论文笔记的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

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