目標檢測相關 Faster RCNN yolo SSD

在這裏插入圖片描述

一文讀懂Faster RCNN

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

1.Conv layers。作爲一種CNN網絡目標檢測方法,Faster RCNN首先使用一組基礎的conv+relu+pooling層提取image的feature maps。該feature maps被共享用於後續RPN層和全連接層。
2.Region Proposal Networks。RPN網絡用於生成region proposals。
RPN網絡結構總結起來就是:
生成anchors(在原圖尺度上,設置了密密麻麻的候選Anchor) -> softmax分類器提取fg anchors(通過softmax去判斷哪些Anchor是裏面有目標的foreground anchor,哪些是沒目標的backgroud。所以,僅僅是個二分類) -> bbox reg迴歸fg anchors修正anchors -> Proposal Layer生成proposals
在這裏插入圖片描述

3.Roi Pooling。該層收集輸入的feature maps和proposals,綜合這些信息後提取proposal feature maps,送入後續全連接層判定目標類別。
4.Classification。利用proposal feature maps計算proposal的類別,同時再次bounding box regression獲得檢測框最終的精確位置。

yolo

核心思想是將目標檢測轉化爲迴歸問題求解,並基於一個單獨的end-to-end網絡,完成從原始圖像的輸入到物體位置和類別的輸出

https://zhuanlan.zhihu.com/p/31427164
https://zhuanlan.zhihu.com/p/37850811

SSD 沒有看完

https://zhuanlan.zhihu.com/p/31427288
default box計算https://www.jianshu.com/p/0d4a0a41fa26

yolo v3

https://blog.csdn.net/BlowfishKing/article/details/80485006

https://blog.csdn.net/xzy528521717/article/details/86692637

https://blog.csdn.net/u010948546/article/details/83181025

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

YOLO v3、SSD、Faster-RCNN目標檢測算法對比

Anchor box。ssd從faster-rcnn中吸收了這一思想,採用的是均勻地將不同尺寸的default box分配到不同尺度的feature map上。例如6個feature map的尺度,default box的大小從20%到90%的佔比,同時有aspect_ratios = [[2], [2, 3], [2, 3], [2, 3], [2], [2]] ,最終可以計算出不同default box大小。而yolo-v3延續了yolo-v2的方法:從coco數據集中對bouding box 的(width, height)進行聚類,作者聚出9類,每類中心點取出作爲一個box_size, 將每三個box_size劃分給一個feature map。例如總共有10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326共9組w,h, 作者將後三個116,90, 156,198, 373,326作爲13 * 13 的gird cell上的anchor box size。

圖片輸入。yolo-v3將輸入圖片映射到第一層feature map的固定比例是32。對於輸入爲416 * 416的圖片,第一層feature map 大小爲13 * 13。但是yolo-v3支持從300到600的所有32的倍數的輸入。例如輸入圖片爲320 * 320,這樣第一層feature map就爲10 * 10,在這樣的gird cell中同樣可以進行predict和match groudtruth。

Bounding Box 的預測方法。在不同的gird cell上,SSD預測出每個box相對於default box的位置偏移和寬高值。yolo-v3的作者覺得這樣剛開始訓練的時候,預測會很不穩定。因爲位置偏移值在float的範圍內都有可能,出現一個很大的值的話,位置都超出圖片範圍了,都是完全無效的預測了。所以yolov3的作者對於這位置偏移值都再做一個sigmoid激活,將範圍縮爲0-1 。b_x和b_y的值在(cell_x_loc, cell_x_loc+1), (cell_y_loc, cell_y_loc+1)之間波動。

feature尺度問題上
Faster-RCNN 用ROI Pooling來統一proposal的尺度 ???
SSD用Multi Layer來考慮各個尺度 ok
YOLO用不同的輸入考慮 ???

2.Faster-RCNN多個rpn
這部分是Faster-RCNN的核心部分

3.Faster-RCNN只提取一個特徵層 ok
SSD和YOLOv3都對多個feature map進行提取 SSD ok YOLOv3 ??
4.anchor boxes size取法不同
Faster-RCNN的是固定的 ok
SSD的anchor boxes是算出來的 ok
YOLO是用數據集的gt boxes 通過kmeans算出來的 ok

5.特徵提取
SSD - VGG ok
YOLO - Darknet ok
Faster-RCNN - Inception-Resnet v2 ok
注: 其實這些網絡可以更改(但不是什麼網絡都能出結果,看了很多表格SSD+resnet並沒有結果),這裏寫的是比較常用或者效果比較好的網絡

6.Faster-RCNN慢的原因
Faster-RCNN在feature map每個像素點取9個anchor boxes
之後proposal數量

Region Proposal Networks 詳解

https://blog.csdn.net/qq314000558/article/details/82082911

RPN網絡結構總結起來就是:
生成anchors -> softmax分類器提取fg anchors -> bbox reg迴歸fg anchors -> Proposal Layer生成proposals

anchor

https://blog.csdn.net/zziahgf/article/details/79311275

https://cloud.tencent.com/developer/news/281788

感受野的理解和計算

個人認爲是出處
https://syncedreview.com/2017/05/11/a-guide-to-receptive-field-arithmetic-for-convolutional-neural-networks/

有利於理解的一篇博客:
https://blog.csdn.net/qq_36653505/article/details/83473943

在這裏插入圖片描述
在這裏插入圖片描述

VGG16

tensorflow實現:https://www.jianshu.com/p/cf99d22f6eb1

SSD

翻譯
http://noahsnail.com/2017/12/11/2017-12-11-Single%20Shot%20MultiBox%20Detector%E8%AE%BA%E6%96%87%E7%BF%BB%E8%AF%91%E2%80%94%E2%80%94%E4%B8%AD%E8%8B%B1%E6%96%87%E5%AF%B9%E7%85%A7/
速度的根本改進來自消除邊界框生成和隨後的像素或特徵重採樣階段。
使用小型卷積濾波器來預測邊界框位置中的目標類別和偏移量,使用不同長寬比檢測的單獨預測器(濾波器),並將這些濾波器應用於網絡後期的多個特徵映射中,以執行多尺度檢測。通過這些修改——特別是使用多層進行不同尺度的預測——我們可以使用相對較低的分辨率輸入實現高精度,進一步提高檢測速度。

SSD方法基於前饋卷積網絡,該網絡產生固定大小的邊界框集合,並對這些邊界框中存在的目標類別實例進行評分,然後進行非極大值抑制步驟來產生最終的檢測結果

理解SSD:
https://www.jianshu.com/p/cefe72e63ac5
在MultiBox中,研究人員引入了所謂的priors(或者叫anchors,在Faster R-CNN術語中)。priors是預先計算好的,固定大小的邊框,它們與真實的邊框分佈很接近。
事實上,這些priors的挑選原則是兩者的交叉比例(又名IoU,有時也稱爲Jaccard指數)大於0.5。 正如你可以從下面的圖片中推斷出的,0.5的IoU仍然不夠好,但是它爲邊界框迴歸算法提供了一個強有力的起點 - 與採用隨機座標的策略預測相比,這是一個好得多的方式! 因此,MultiBox從priors開始預測,試圖接近真實邊界框。

https://blog.csdn.net/wfei101/article/details/78597442

https://www.cnblogs.com/cmai/p/10076050.html
https://github.com/acm5656/ssd_pytorch

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章