單階段目標檢測演算法YOLOv3

2021-10-24 13:40:15 字數 1439 閱讀 1113

yolov3從v1和v2的基礎上進行改進,主要如下:

(1)更大的骨幹網路darknet-53,可以進行多尺度**,跨尺度特徵融合

(2)多尺度**,最終是3個尺度的特徵圖上目標檢測

darknet-53骨幹網路進行特徵提取,網路分為5個階段,經過每個綠色的res是乙個2倍的下取樣,最多是32倍

32倍的下取樣再經過特徵提取後輸出為y1的特徵圖 32倍到輸出中間的特徵圖拿出來和上一次的16倍下取樣進行拼接,拼接之前對32倍的下取樣進行上取樣使其和16倍下取樣的特徵圖變成一樣大小,2者進行concat再進行特徵提取輸出第二張特徵圖y2 第三張特徵圖的輸出類似 3張特徵圖y1,y2,y3分別對應32,16,8倍的下取樣

網路輸入[n,3,416,416],n為輸入的batch_size的數目,3是rgb通道 輸出的每個點的特徵圖資訊c=b*(5+class_num),其中5為4+1,即4個座標資訊和1個目標置信度,class_num為80,b為該點對應的anchor的數目,每個特徵圖的總輸出為n*n*255

針對3種不同的下取樣,會得到3*3種不同的anchor,例如對於32倍下取樣得到的特徵圖(13*13),特徵圖上的每個點相當於原圖中32*32的區域性區域,每個點都會有3種尺度的anchor,最終得到的特徵圖為h*w,相當於將原圖分為h*w個網格,每個網格對應特徵圖上的乙個點

中心點偏移使用了sigmoid函式,在計算特徵圖時,特徵點的取值範圍可能負無窮到正無窮並且期望中心點偏移的範圍還是在0到1之內,不管tx,ty取多少,取sigmoid函式後偏移小 寬高拉伸使用了指數函式,因為希望得到的寬、高都是正數

yolov3檢測人頭 基於yolo v3的人臉檢測

一 實驗環境的搭建 1.安裝環境配置 python 3.6 tensorflow gpu 1.6.0 keras pillow opencv python matplotlib numpy 沒有通過pip安裝 例如 pip install keras 2.啟動虛擬環境,並且安裝對應的實驗環境 3.模...

目標檢測 Yolov3網路詳解

現在來仔細理解下yolov3這個網路細節。目標檢測的經典網路有yolo和ssd,還有今天要記錄的yolov3。yolo 將一張圖劃分為眾多個小格仔,每個小格仔檢測到一種物體,並 兩個bounding box,問題是當小格仔內的物體眾多時,yolo很可能會漏檢。ssd 不太適合檢測小物體,vgg19限...

深度學習目標檢測系列之YOLOV3

作者說yolov3相當於是一篇技術報告,因為他還有很多別的煩心事要去幹。所以yolov3相當於是在原始yolo版本的基礎上,整合現有的先進技術進行改良。不過從業界反映來講,還是很不錯的。這就是說有的人隨隨便便就做出了其它人一輩子也做不出來的事。但是這篇 更大的意義在於,讓我們停一停 想一想,what...