目標檢測 YOLOv5(八)

2021-10-09 04:33:12 字數 2562 閱讀 5560

簡介:

yolov5權重檔案:

密碼:00mp

作者給的演算法效能如下圖:

改編自知乎大佬的一張圖:

yolov5s網路是yolov5系列中深度最小,特徵圖的寬度最小的網路。後面的3種(yolov5m、yolov5l、yolov5x)都是在此基礎上不斷加深,不斷加寬。

(1)mosaic資料增強:

同yolov4,是這個作者提出來的。

(2)自適應錨框計算:

在以前的yolo中,我們要自己用k-means聚類算出初始anchors的大小,但yolov5中將此功能整進了train**裡,每次訓練時自適應的計算不同訓練集中的最佳錨框值。

(3)自適應縮放:

在訓練階段,比如網路輸入的尺寸608×608,但我資料的尺寸是大小不一的,一般方法是直接同一縮放到標準尺寸,然後填充黑邊,如下圖所示:

但如果填充的比較多,則存在資訊冗餘,影響推理速度。

yolov5在推理階段,採用縮減黑邊的方式,來提高推理的速度。在**datasets.py的letterbox函式中進行了修改,對原始影象自適應的新增最少的黑邊。

eg:「比如我1000×800的不是直接縮放到608×608的大小,而是計算608/1000=0.608 然後縮放至608×486的大小,然後計算608-486=122 然後np.mod(122,32)取餘數得到26,再平均成13填充到高度兩端,最後是608×512。」

(1)focus結構:

focus結構,在yolov3&yolov4中並沒有這個結構,其中比較關鍵是切片操作。

以yolov5s的結構為例,原始608×608×3的影象輸入focus結構,採用切片操作,先變成304×304×12的特徵圖,再經過一次32個卷積核的卷積操作,最終變成304×304×32的特徵圖。

(2)csp結構:

yolov5與yolov4都有csp結構,不同點在於,yolov4中只有主幹網路使用了csp結構。

而yolov5中設計了兩種csp結構,以yolov5s網路為例,csp1_x結構應用於backbone主幹網路,另一種csp2_x結構則應用於neck中。

3、neck:

(1)fpn+pan結構。

yolov5現在的neck和yolov4中一樣,都採用fpn+pan的結構。

yolov4的neck結構中,採用的都是普通的卷積操作。而yolov5的neck結構中,採用借鑑cspnet設計的csp2結構,加強網路特徵融合的能力。

(1)bounding box損失函式:

yolov4中採用的ciou_loss做bounding box的損失函式,yolov5中採用其中的giou_loss。

ps:回歸損失函式近些年的發展過程是:

smooth l1 loss → iou loss(2016)→ giou loss(2019)→ diou loss(2020)→ ciou loss(2020)

iou_loss:主要考慮檢測框和目標框重疊面積。

giou_loss:在iou的基礎上,解決邊界框不重合時的問題。

diou_loss:在iou和giou的基礎上,考慮邊界框中心點距離的資訊。

ciou_loss:在diou的基礎上,考慮邊界框寬高比的尺度資訊。

(2)nms非極大值抑制:

後處理階段一般會對很多個框進行nms演算法,因為ciou_loss中包含影響因子v,涉及groudtruth的資訊,而測試推理時,是沒有groundtruth的。

所以yolov4推理時是在diou_loss的基礎上採用diou_nms的方式,而yolov5中是giou_loss的基礎上採用加權nms的方式。

系列傳送門:

目標檢測——r-cnn(一)

目標檢測——fast r-cnn(二)

目標檢測——faster r-cnn(三)

目標檢測——mask r-cnn(四)

目標檢測——r-fcn(五)

目標檢測——yolov3(六)

目標檢測——yolov4(七)

目標檢測——yolov5(八)

目標檢測——ssd(九)

目標檢測——retinanet(十)

目標檢測——refinedet(十一)

YOLOV5模型架構

模型架構是按照配置檔案yaml進行搭建的。不同的版本的yaml在model資料夾中,每一版本的模型分為兩個部分backbone和head。每一行代表了乙個運算單元,這裡按照yolov5結構圖可以方便理解。每一行有四個引數,引數1 代表輸入從運算單元獲得,1代表從上乙個單元獲得。引數2 代表該運算單元...

yolov3 yolov4與yolov5效能對比

yolov5s網路最小,速度最少,ap精度也最低。但如果檢測的以大目標為主,追求速度,倒也是個不錯的選擇。其他的三種網路,在此基礎上,不斷加深加寬網路,ap精度也不斷提公升,但速度的消耗也在不斷增加。目前使用下來,yolov5s的模型十幾m大小,速度很快,線上生產效果可觀,嵌入式裝置可以使用。在相同...

yolov5模型框架詳解

yolov5和yolov4很像 mosaic資料增強 1 每次讀取四張。2 分別對四張進行翻轉 縮放 色域變化等,並且按照四個方向位置擺好。3 進行的組合和框的組合 對於小目標的檢測效果還是很不錯的 自適應錨框計算 在yolo演算法中,針對不同的資料集,都會有初始設定長寬的錨框。在網路訓練中,網路在...