YOLOv3 從入門到部署 (一)YOLOv3概述

2021-10-22 23:23:35 字數 1813 閱讀 8241

這是目標檢測領域常用的兩個資料集。voc和coco的區別主要在於影象標註的格式不一樣。voc將目標的標籤資訊以某種格式儲存在.xml格式的檔案中,而coco則是儲存在.txt檔案中。因此有時候voc和coco不是指資料集,而是指資料集標註格式。我們完全沒有必要去研究每種標註格式的細節,網路也有大量的兩種格式相互轉換的**以及對應的資料集載入**。

關於yolo的發展以及對於v1-v3的介紹,網上的資料數不勝數,這裡不再贅述,只做簡單總結。

上圖是yolov3的經典架構,摘自

除此以外,比較常用的還有yolov3-tiny的網路架構,如下圖

摘自我們以yolov3-tiny為例描述一下yolo的工作過程:

輸入是一張416*416大小的三通道影象,輸入資料經過不斷的卷積核池化的操作,特徵圖的維度逐漸縮小,但是通道數逐漸增加。直到最後輸出結果維度為13*13*255。相比於原始影象的大小,輸出結果相當於是縮小了32倍,但是通道數變成了255。

輸出的特徵圖不在意味著「特徵」,而是最終的**結果。對於乙個目標,我們要**這麼幾個值:目標框的中心座標(2個值),目標框的長寬(2個值),目標框的置信度(1個值,表示該區域有無目標的置信度),以及目標框的類別(coco資料集一共有80種類別,所以是80個值,每個值表示對應類別的置信度)。總計需要**85個值。

但是問題又來,對於乙個目標,模型會得到3個**結果。那最終應該相信哪乙個呢?在訓練階段,我們通過計算每個**結果與真實標籤的iou(一種評價指標,可自行搜尋)來選擇應該相信哪乙個**結果;在驗證或者推理階段,同乙個目標可能會得到多個**結果,這時我們通過nms演算法(可自行查閱)來選擇使用哪乙個**結果。

但是yolov3-tiny輸出結果維度為13*13*255,這意味著它最多只能**13*13個目標,因為它最多只能擬合出這麼多引數。也可以從感受野的角度理解為什麼它最多只能**13*13個目標。之前我們說道,網路的特徵圖大小是在不斷縮小的,從輸入到輸出一共縮小了32倍。輸出結果也是一張特徵圖,我們粗略估算輸出結果的每個值的感受野是32*32(這裡計算方法並不嚴謹,詳細的感受野計算可查閱相關資料)。試想,如果輸入影象有兩個目標,其中目標a的大小大於感受野,目標b的大小小於感受野。經過層層卷積以後到達輸出的時候,目標a在13*13的特徵圖上還有蹤跡,但是目標b早已被縮小得「看不到了」。也就是說,yolov3-tiny輸出結果維度為13*13*255只能識別一些比較大的目標,比較小的目標可能就會被忽視。為了解決這一問題,yolov3-tiny選擇融合深層和淺層的資訊進行**。淺層的特徵圖較大,感受野較小,區域性資訊較強,;深層的特徵圖較小,全域性資訊更強。通過將區域性資訊和全域性資訊進行融合,提高對小面積的目標的檢測效能。如上圖所示,yolov3-tiny在右側又輸出了乙個維度為26*26*255的結果,其最多可以**26*26個目標。

yolo的經典結構的輸入輸出與yolov3-tiny類似,只是輸出有個三個,維度分別為13*13*255,26*26*255,52*52*255。

這篇部落格介紹了更為輕量化的yolo-fastes和yolo-fastest-xl。

yolo-fastes和yolo-fastest-xl沿用yolov3的思想,但是在網路結構上進行了重大改變,使得極大地減少了網路引數同時還不失效能。與yolov3-tiny相比,其主要特點如下:

後續第二篇部落格我們會以yolo-fastest-xl為例搭建網路模型。

yolov3中資料讀入(一)

yolov3的訓練 從 detector.c de train detector 函式開始,函式如下 void train detector char datacfg,char cfgfile,char weightfile,int gpus,int ngpus,int clear,int dont...

YOLO V3的一些細節

yolo的基本思想是通過多層cnn bounding box的中心 x,y 座標及其長寬,當然也少不了類別資訊,參考 1 yolo v3的結構 基本原理是什麼樣?有哪些重要的引數 概念?yolo v3的優點是什麼?下文著重講解。根據yolo v3原創 2 的內容,yolo v3使用了乙個含有53個卷...

YOLOv3之一些細節

yolov3裡有很多細節需要注意,下面就把那裡面的一些細節總結一下。先驗邊框,也可以叫建議框,錨框 anchorbox 是對coco資料集的真實框kmeans聚類獲得,對目標物體的真實框具有代表性。在yolov3中,3個不同深度的網路輸出52 52,26 26,13 13這三種不同尺寸的特徵圖,一共...