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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人工智能 > pytorch >内容正文

pytorch

深度学习(三十六)——R-FCN, FPN, RetinaNet, CornerNet

發布時間:2023/12/20 pytorch 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 深度学习(三十六)——R-FCN, FPN, RetinaNet, CornerNet 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

R-FCN

R-FCN是何愷明/孫劍小組的Jifeng Dai于2016年提出的。

論文:

《R-FCN: Object Detection via Region-based Fully Convolutional Networks》

代碼:

https://github.com/PureDiors/pytorch_RFCN

faster R-CNN對卷積層做了共享(RPN和Fast R-CNN),但是經過RoI pooling后,卻沒有共享,如果一副圖片有500個region proposal,那么就得分別進行500次卷積,這樣就太浪費時間了,于是作者猜想,能不能把RoI后面的幾層建立共享卷積,只對一個feature map進行一次卷積?

上圖是R-FCN的網絡結構圖。和上一節的Faster R-CNN相比,我們可以看出如下區別:

1.Faster R-CNN是特征提取之后,先做ROI pooling,然后再經過若干層網絡,最后分類+bbox。

2.R-FCN是特征提取之后,先經過若干層網絡,然后再做ROI pooling,最后分類+bbox。

FC layer在近來的CV實踐中,越來越不受歡迎,因此R-FCN在最后的分類+bbox階段,也做了一些針對性的改進(如上圖所示):

1.直接將roi pooling生成的feature map連接到最后的分類和回歸層效果很差。這主要是因為:基CNN本身是對圖像分類設計的,具有圖像移動不敏感性;而對象檢測領域卻是圖像移動敏感的,所以二者之間產生了矛盾。

2.因此R-FCN專門設計了一個position-sensitive score maps。在feature map上通過卷積運算生成一個等大但通道數為k2(C+1)k^{2}(C+1)k2(C+1)的feature map X。

3.對這個feature map進行特殊的ROI pooling。

標準的ROI pooling:將ROI在空間上分成kxk部分,對每個部分進行pooling操作。

R-FCN的ROI pooling:將ROI在通道上分成kxk部分,對每個部分進行pooling操作,得到一個尺寸為kxkx(C+1)的tensor。上圖中各種顏色部分之間的對應關系,展示了該ROI pooling操作的實現方式。

從中可以看出,feature map X不僅在空間維度上對位置敏感,在通道維度上也對位置敏感。因此也被稱作position-sensitive score maps。

4.對上一步結果的每個C+1部分進行分類,這樣可以得到kxk個分類結果。對所有的分類結果進行vote,得到最終結果。

從上面兩圖可以看出,vote的規則就是簡單多數,因此k需要是奇數才行。

5.bbox也是類似的操作,只需將上面的C+1換成4(bbox位置的坐標)即可。

參考:

http://blog.csdn.net/zijin0802034/article/details/53411041

R-FCN: Object Detection via Region-based Fully Convolutional Networks

https://blog.csdn.net/App_12062011/article/details/79737363

R-FCN

https://mp.weixin.qq.com/s/HPzQST8cq5lBhU3wnz7-cg

R-FCN每秒30幀實時檢測3000類物體,馬里蘭大學Larry Davis組最新目標檢測工作

https://mp.weixin.qq.com/s/AddHG_I00uaDov0le4vdvA

R-FCN和FPN

FPN

FPN(Feature Pyramid Network)是Tsung-Yi Lin(Ross Girshick和何愷明小組成員)的作品(2016.12)。

論文:

《Feature Pyramid Networks for Object Detection》

  • 圖(a)為手工設計特征描述子(Sift,HoG,Harr,Gabor)時代的常見模型,即對不同尺寸的圖片提取特征,以滿足不同尺度目標的檢測要求,提高模型性能;

  • 圖(b)則是深度卷積網的基本結構,通過不斷的卷積抽取特征同時逐漸增加感受野,最后進行預測;

  • 圖(c)則是融合深度網絡的特征金字塔模型,眾所周知深度網在經過每一次卷積后均會獲得不同尺度的feature map,其天然就具有金字塔結構。但是由于網絡的不斷加深其圖像分別率將不斷下降,感受野將不斷擴大,同時表征的特征也更叫抽象,其語義信息將更加豐富。SSD則采用圖c結構,即不同層預測不同物體,讓top層預測分辨率較高,尺寸較大的目標,bottom則預測尺寸較小的目標。然而對于小目標的檢測雖然其分辨率提高了但是其語義化程度不夠,因此其檢測效果依舊不好。

  • 圖(d)則是FPN的網絡結構,該網絡結構大體上分為三個部分,即buttom-up自底向上的特征抽取,自頂向下的upsampling,以及側邊融合通道(lateral coonnection)。通過這三個結構網絡的每一層均會具有較強的語義信息,且能很好的滿足速度和內存的要求。

上圖是加了FPN之后的ResNet,其中的虛線框表示的是通道融合的方法。U-Net采用了concat模式融合下采樣和上采樣通道,而這里則是沿用了ResNet的融合方法:Tensor Add。

上圖是Faster R-CNN+FPN。原始的Faster R-CNN的RoI pooling是從同一個feature map中獲得ROI,而這里是根據目標尺度大小,從不同尺度的feature map中獲得ROI。

參考:

https://mp.weixin.qq.com/s/mY_QHvKmJ0IH_Rpp2ic1ig

目標檢測FPN

https://mp.weixin.qq.com/s/TelGG-uVQyxwQjiDGE1pqA

特征金字塔網絡FPN

https://zhuanlan.zhihu.com/p/58603276

FPN-目標檢測

RetinaNet

RetinaNet也是Tsung-Yi Lin的作品(2017.8)。

論文:

《Focal Loss for Dense Object Detection》

我們已經指出“類別不平衡”是導致One-stage模型精度不高的原因。那么如何解決這個問題呢?

答案是:Focal Loss。

上圖是RetinaNet的網絡結構圖,可以看出它是一個One-stage模型。基本相當于:ResNet+FPN+Focal loss。

參考:

https://blog.csdn.net/jningwei/article/details/80038594

論文閱讀: RetinaNet

https://zhuanlan.zhihu.com/p/68786098

再談RetinaNet

CornerNet

傳統的目標檢測網絡,無論是One-stage還是Two-stage,都有基于Anchor的。Anchor的作用主要在于:顯式枚舉出不同的scale和aspect ratio的基準bbox。

但就本質而言,**框對于物體來說不是一個最好的表示。**框的頂點可能甚至都不在物體上,離物體本身已經很遠了。

因此,自2018年以來,逐漸有一些不基于anchor的目標檢測方法出現,形成了一股Anchor-Free的熱潮。下面將首先介紹一下,該類方法的開山之作——CornerNet。

CornerNet并非第一個提出Anchor-Free思想的模型,但卻是第一個精度和性能達到與anchor base方法同等水平的Anchor-Free模型。


CornerNet是Princeton University的Hei Law的作品。(2018.8)

論文:

《CornerNet: Detecting Objects as Paired Keypoints》

CornerNet認為Two-stage目標檢測最明顯的缺點是在Region Proposal階段需要提取anchor boxes。這樣做導致兩個問題:

  • 提取的anchor boxes數量較多,比如DSSD使用40k,RetinaNet使用100k,anchor boxes眾多造成正負樣本不均衡。

  • Anchor boxes需要調整很多超參數,比如anchor boxes數量、尺寸、比率,影響模型的訓練和推斷速率。

上圖是CornerNet的網絡結構。可以看出它主要由兩部分組成:

Hourglass Network

這是CornerNet的骨干部分。

Bottom-right corners & Top-left Corners Prediction Module

CornerNet堆疊兩個Hourglass Network生成Top-left和Bottom-right corners,每一個corners都包括corners Pooling,以及對應的Heatmaps, Embeddings vector和offsets。

上圖是Heatmaps, Embeddings vector的示意圖。

  • heatmaps包含C channels(C是目標的類別,沒有background channel),每個channel是二進制掩膜,表示相應類別的頂點位置。

  • embedding vector使相同目標的兩個頂點(左上角和右下角)距離最短。或者也可以反過來說,兩個頂點的embedding vector越相近,則它們越有可能配對。

  • offsets用于調整生成更加緊密的邊界定位框。

corner pooling

corner pooling是CornerNet新提出的一種操作。其步驟如下圖所示:

依top-left corner pooling為例,對每個channel,分別提取特征圖的水平和垂直方向的最大值,然后求和。具體的計算如下圖所示:

論文認為corner pooling之所以有效,是因為:

  • 目標定位框的中心難以確定,和邊界框的4條邊相關,但是每個頂點只與邊界框的兩條邊相關,所以corner更容易提取。

  • 頂點更有效提供離散的邊界空間,使用O(w×h)O(w\times h)O(w×h)頂點可以表示O(w2×h2)O(w^2\times h^2)O(w2×h2)個anchor boxes。

參考

https://mp.weixin.qq.com/s/e74-zFcMZzn67KaFXb_fdQ

CornerNet目標檢測開啟預測“邊界框”到預測“點對”的新思路

https://zhuanlan.zhihu.com/p/41865617

CornerNet:目標檢測算法新思路

https://mp.weixin.qq.com/s/e6B22xpue_xZwrXmIlZodw

ECCV-2018最佼佼者CornerNet的目標檢測算法

https://mp.weixin.qq.com/s/9ldLaYKGkgq-MnJZw7CrDQ

CornerNet為什么有別于其他目標檢測領域的主流算法?

https://mp.weixin.qq.com/s/ZhfnZ4IwOnTQlqeB6Ilr3A

CornerNet: Detecting Objects as Paired Keypoints解讀

https://zhuanlan.zhihu.com/p/63134919

普林斯頓大學提出:CornerNet-Lite,基于關鍵點的目標檢測算法,已開源!

https://mp.weixin.qq.com/s/8hN1RdYVJQWOqPpejjfXeQ

CornerNet

總結

以上是生活随笔為你收集整理的深度学习(三十六)——R-FCN, FPN, RetinaNet, CornerNet的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。