目標檢測 YOLOv2總結

2021-10-14 07:46:08 字數 2641 閱讀 8959

以下為筆記相關鏈結(推薦使用鏈結閱讀):yolov2個人總結

01.yolo-v2

?**題目

yolo 9000:better,faster,stronger

?‍?作者

joseph redmon:yolo系列的主要作者

❓四個問題

❔要解決什麼問題?

在yolov1的基礎上解決小目標檢測精度、定位資訊錯誤及綜合性能的提公升(map與fps的綜合考慮)。

❔使用什麼方法解決問題?

❔實際效果如何?

❔還存在什麼問題?

依照yolov3的改進方向,yolov2在一下幾個方面有待改進。

loss不同:作者v3替換了v2的softmax loss 變成logistic loss,而且每個ground truth只匹配乙個先驗框。

anchor bbox prior不同:v2作者用了5個anchor,乙個折衷的選擇,所以v3用了9個anchor,提高了iou。

detection的策略不同:v2只有乙個detection,v3一下變成了3個,分別是乙個下取樣的,feature map為1313,還有2個上取樣的eltwise sum,feature map為2626,5252,也就是說v3的416版本已經用到了52的feature map,而v2把多尺度考慮到訓練的data取樣上,最後也只是用到了13的feature map,這應該是對小目標影響最大的地方。

backbone不同:這和上一點是有關係的,v2的darknet-19變成了v3的darknet-53,為啥呢?就是需要上取樣啊,卷積層的數量自然就多了,另外作者還是用了一連串的33、11卷積,33的卷積增加channel,而11的卷積在於壓縮33卷積後的特徵表示,這波操作很具有實用性,一增一減,效果棒棒。

✨**概述

?1.abstract

yolov2能夠檢測超過9000個不同類別的目標(檢測範圍大幅度增加)。

提出了目標檢測與分類聯合訓練的方法,利用該方法在coco檢測資料集和imagenet分類資料集上同時訓練yolo9000。yolov2的聯合訓練允許yolo9000**沒有標記檢測資料的物件類的檢測。

聯合訓練(yolov2中):簡單來說就是多個不同訓練集按照一定的規律進行輸入到模型並且對模型進行訓練。

?2.introduction

使用物件分類的層次檢視的方法,將不同是資料集組合到一起。

使用一種聯合訓練的方法,能夠在檢測與分類資料集上訓練目標檢測器:a. 通過標記的檢測影象來學習精準的目標定位,b. 通過分類影象增加檢測器的檢測範圍與魯棒性。

?3.better

batch normalization:批量歸一化使得收斂的顯著改善,同時消除了對其他形式的正則化的需求。通過在yolo的所有卷積層上新增批處理歸一化,可以在map方面獲得2%以上的改進。批處理規範化還有助於規範化模型。通過批量歸一化,可以消除模型中的缺失而不會過度擬合(是乙個自適應的重新引數化的方法,試圖克服神經網路層數加深導致模型難以訓練)

high resolution classifier: 由224 * 224 -->> 448 * 448的輸入影象。

convolutional with anchor boxes:從yolo中刪除全連線層,使用anchor**邊界框。首先去除乙個池化層(使得卷積網路能夠輸出更高的解析度),將網路可處理的影象變為416大小(希望特徵圖中位置數量為奇數),這樣更好的**物體(奇數下,物體的中心一般在畫素中心)。在yolo中每個影象的**邊界框為98,在yolov2中**的邊界框超過1000。

dimension clusters(聚類):使用k值聚類(k=5時能有比較高的價效比)獲得邊界框的priors (prior 是我們所假設的引數本來的分布,而 posterior 則是在觀察到訓練資料之後得到的條件分布). d(box,centroid) = 1 − iou(box,centroid)—>>>獲得距離度量

direct location prediction:

fine-grained features:yolo是在13*13的特徵圖上進行檢測,而在yolov2中新增乙個passthrough layer(穿透層)將26 *26解析度時的特徵傳遞下去。(穿透層通過將相鄰要素堆疊到不同的通道而不是空間位置,將高解析度要素與低解析度要素連線在一起,類似resnet的對映)

multi-scale training:不是固定輸入影象的大小,而是每隔幾次迭代更改一次網路,網路每10批次隨機選擇新的影象尺寸

?4.faster

daekent-19:darknet-19有19個卷積層,並且處理一幅影象只需要55.8億次運算,但在imagene上達到了72.9%的top-1準確率和91.2%的top-5準確率。

?5.stronger

wordtree(有向圖結構): 可以使用wordtree以合理的方式將多個資料集組合在一起

?6.conclusion

yolo9000是乙個實時框架,通過聯合優化檢測和分類,可檢測9000多個物件類別。我們使用wordtree合併來自不同**的資料,並使用我們的聯合優化技術在imagenet和coco上同時進行訓練。yolo9000是朝著縮小檢測和分類之間的資料集大小差距邁出的重要一步,即是使得檢測技術能夠應用於更多的物體上。

yolo9000在學習新的目標類別時,受到最初訓練集的影響,即是對最初訓練集中所包含的目標類別有傾向性,對最初訓練集中從未出現過的目標類別的學習效果不佳。

?補充附錄

YOLO v2 檢測原理

v2版本的優化目標 改善召回率,提公升定位精度,保證分類準確度。yolov2相比yolov1的改進 v2在每乙個卷積之後增加了bn層,提高了網路訓練的速度,加快了收斂,消除了對其他正則化的依賴,且正則化效果更好,使調參更簡單,即使去掉dropout層也不會產生過擬合。v1先使用224 224的解析度...

Caffe(12) 實現YOLOv2目標檢測

darknet轉caffe中有很多潛在的問題,在yolov1 v2 v3幾個網路中有一些特殊的層。要在caffe中跑yolo,就得在caffe中原始碼實現這些層。這些層的caffe原始碼實現可以在網上找到很多。yolo特殊層的caffe框架實現 yolov1 detection層 原始碼實現 yol...

YOLOV2演算法筆記

yolov2演算法詳解部落格 一 better 1.對每一層都做了歸一化 2.先利用分類資料對網路進行訓練,然後遷移學習。3.不再和yolov1那樣直接 bounding box,yolov2中開始利用ancher box,4.dimension clusters,利用k means聚類的方式,發現...