天天看點

論文閱讀分享1. YOLO you only look once

YOLOv1: You Only Look Once: Unified, Real-Time Object Detection(你隻看一次:統一的,實時的物體檢測 )

文章位址:https://arxiv.org/abs/1506.02640

YOLOv2:YOLO9000:Better, Faster, Stronger(YOLO9000:更好、更快、更強)

文章位址:https://arxiv.org/abs/1612.08242

本人菜鳥出道,研一學生一枚,閱讀些許論文,為增加自己的印象并易于日後檢視,姑且将自己對于論文的一些了解發于該部落格之上,若有錯誤,請多多包涵,歡迎指教與讨論。

WHY YOLO:端到端檢測(end to end):将目标檢測作為單個回歸問題,直接從圖像像素到邊界框坐标和類機率 

與之前的一些物體檢測方法(RCNN, Fast RCNN, Faster RCNN)不同,YOLO隻需一步就可以從圖檔得到候選區域及物體。是以YOLO檢測物體的速度很快Titan X: YOLO:45fps    fast YOLO:150ps.    速度遠超RCNN等方法。

                                                                                  目标方法的比較

RCNN Fast RCNN Faster RCNN YOLO

區域建議子產品

(region proposal module)

區域建議子產品

(region proposal module)

區域建議網絡

(Region Proposal Networks)

YOLO

Network

特征提取網絡

(feature extraction network)

檢測網絡

(detection network)

Fast RCNN

分類器

(classifier)

定位器

(locator)

特征提取(feature extraction )
分類(classification)

回歸

(regression)

YOLOv1的檢測過程

論文閱讀分享1. YOLO you only look once

使用YOLO來檢測物體的流程:

1、将圖像resize到448 * 448作為神經網絡的輸入 

2、運作神經網絡,得到一些bounding box坐标、box中包含物體的置信度和class probabilities 

3、進行非極大值抑制,篩選Boxes

Unified Detection(統一的檢測)

論文閱讀分享1. YOLO you only look once

YOLO将輸入圖像劃分為S*S的栅格(grid),每個栅格負責檢測中心落在該栅格中的物體

每一個栅格預測B個邊界框(bounding boxes),以及這些邊界框的confidence scores,如果這個栅格中不存在一個 object,則confidence score應該為0;否則的話,confidence score則為 predicted bounding box與 ground truth box之間的 IOU(intersection over union)。

論文閱讀分享1. YOLO you only look once

YOLO對每個邊界框有5個預測:x, y, w, h,  和 confidence:

x, y 為邊界框中心坐标 [0:1](1對于每個grid的邊長)       w, h為邊界框長和寬 [0:1] (1對于圖像的邊長)     confidence為預測其為目标的可能性

每個栅格(grid)還預測 C個類别物體的條件率,                測試階段,利用下式計算邊界框對于每個類的得分

論文閱讀分享1. YOLO you only look once
論文閱讀分享1. YOLO you only look once

是以 輸出形式為(S×S×(B×5+C)

因為YOLOv1中采用的降采樣為64,輸入圖檔尺寸為448*448,是以S=7, 因為采用了VOC2007,和VOC2012資料集,是以C=20,且每一個栅格采用了兩個邊界框,即B=2,是以輸出為(7*7*30)

YOLOv1在這個方法下造成了一個缺點:每個網格隻能預測1個類别,對中心點相同的物體會造成漏檢。該缺點在v2下得到解決。

輸出結構如下:

論文閱讀分享1. YOLO you only look once
論文閱讀分享1. YOLO you only look once

YOLOv1的網絡結構:

論文閱讀分享1. YOLO you only look once

YOLO檢測網絡:24個卷積層和2個全連接配接層

YOLO網絡借鑒了GoogLeNet分類網絡結構。不同的是,YOLO未使用inception子產品,而是使用1x1卷積層(此處1x1卷積層的存在是為了跨通道資訊整合)+3x3卷積層簡單替代。

YOLOv1的訓練方法:

首先利用ImageNet 1000-class的分類任務資料集預訓練(Pretrain)卷積層。使用上述網絡中的前20 個卷積層,加上一個均值池化層,最後加一個全連接配接層,作為預訓練的網絡。

将預訓練的結果的前20層卷積層應用到檢測中,并加入剩下的4個卷積層及2個全連接配接。 同時為了擷取更精細化的結果,将輸入圖像的分辨率由 224* 224 提升到 448* 448。 (此處應該是沒有用448的圖檔進行微調,在v2中采用)

将所有的預測結果都歸一化到 0~1,使用 ?=0.1的Leaky RELU 作為激活函數

為了防止過拟合,在第一個全連接配接層後面接了一個 prob=0.5 的 Dropout(随機失活) 層。

YOLOv1的損失函數:

YOLO采用平方和誤差損失函數:

論文閱讀分享1. YOLO you only look once
論文閱讀分享1. YOLO you only look once

用來判斷該栅格内是否有物體存在, 是以YOLO可以很好的避免背景錯誤,false positives小。

為了均衡 8維的localization error和20維的classification error,論文加大了8維坐标的損失權重:λ_coord取5                                              減少了不包含對象的框的置信度預測的損失權重 λ_noobj取0.5    對有object的框的置信度損失權重取1                                                          對不同大小的box預測中,相比于大box預測偏一點,小box預測偏相同的尺寸對IOU的影響更大,是以對長寬采用平方根   

YOLOv1的實驗結論及優缺點:

論文閱讀分享1. YOLO you only look once

優點: 平均準确率(mAP):63.4%  速度:45FPS  假陽性(将背景檢測為物體)的機率小

缺點:1、每個網格隻能預測1個類别,對中心點相同的物體會造成漏檢。  2、位置精确性差,對于小目标物體以及物體比較密集的也檢測不好

YOLOv2的改進:

YOLOv2在V1的版本之上提出了一些改進措施,來提升網絡的性能

tricks YOLOv1 YOLOv2
Batch Normalization
High Resolution Classifier
Convolutional
Anchor Boxes
New network
Dimension Clusters
Location prediction
Passthrough
Multi-Scale
Hi-res detector
VOC2007 mAP 63.4 65.8 69.5 69.2 69.6 74.4 75.4 76.8 78.6
論文閱讀分享1. YOLO you only look once

新的網絡結構darknet-19 :  減少了網絡層數:19個卷積層     取消了全連接配接層:采用全局均值池化代替                                                     降低了參數量,加快了網絡的訓練速度

Batch Normalization (進行批量歸一化),避免了過拟合

High Resolution Classifier (高分辨率分類器),先使用224的圖檔進行預訓練,再使用448的圖檔進行微調

Convolutional With Anchor Boxes:1、使用Anchor Boxes來預測邊界框,将輸入圖像的尺寸從448 * 448縮減到416 * 416,使S為奇數,有中心栅格。 2、改變輸出形式為(S×S×(B×(5+C))使每個網格能預測多個物體

Dimension Clusters :采用k-means生成Anchor Boxes代替手動設計anchor(猜測對資料集采用k-means)

Fine-Grained Features(細粒度功能):參考恒等映射,增加一個直通單元,将上一層26*26*512->13*13*2048,與原始特征連接配接,提高性能

Multi-Scale Training(多尺度訓練):使用不同大小的圖檔訓練,大小為32的倍數(該模型的降采樣為32),每10個批次換,适應各個尺度,在速度與準确率之間做了折衷.(可以選擇滿足自己的運作速度下,精度最高的尺度)

圖檔大小 mAP FPS
288 × 288 69.0 91
352 × 352 73.7 81
416 × 416 76.8 67
480 × 480 77.8 59
544 × 544 78.6 40

Direct location prediction: YOLOv2網絡為每個栅格預測5個邊界框(對應5個anchor boxes),每個bounding box預測5個坐标

論文閱讀分享1. YOLO you only look once
論文閱讀分享1. YOLO you only look once

YOLOv2結果:

論文閱讀分享1. YOLO you only look once

YOLO9000(該方法看的有點懵):

論文閱讀分享1. YOLO you only look once
論文閱讀分享1. YOLO you only look once

stronger(聯合訓練分類和檢測資料的機制)将檢測和分類任務進行協同訓練,使用分層樹表示類别進行類别标記

問題1:softmax結果互斥:多标簽模型組合資料集, 分層分類(A:AB,AC:ACD,ACF),使用WordNet 有向圖->樹 WordTree

可以在每一個節點上對其分支進行softmax

論文閱讀分享1. YOLO you only look once

   與WordTree的資料集組合:将類别映射到樹中

使用COCO檢測資料集和完整的ImageNet版本中的前9000個類來建立我們的組合資料集,對COCO進行過采樣,使得1(coco):4     19.7 mAP

缺點:因為COCO沒有服裝裝置類,是以在該類效果差

參考文檔

https://arxiv.org/abs/1506.02640

https://arxiv.org/abs/1612.08242

https://blog.csdn.net/hrsstudy/article/details/70305791

https://blog.csdn.net/hrsstudy/article/details/70767950

https://blog.csdn.net/small_munich/article/details/79548149

繼續閱讀