本文邏輯不通,僅供自己閱讀
yolo強化了解随筆加感悟D1
Day2 運作yolov5的pytorch實作:開始使用yolov5 pipeline
1.yolov2 v3 v4 v5檢測頭與anchor的嘗試改進
2.Yolov5代碼使用方法介紹:測試與訓練
3.詳細解讀檢測頭代碼
一、檢測模型
特征提取器+檢測頭(head
二、YOLOv0 model.py
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIyVGduV2YfNWawNCM38FdsYkRGZkRG9lcvx2bjxiNx8VZ6l2csknVyEGaaJDWwZkMMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnL5ATN2ETO1cTMyITOwAjMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
Yolov1 全部改為 yolov0
YoloV0定義
先看forward
Extractor 提取特征 可以認為特征提取器
View可以了解為次元上的變化
Detector 可以了解為檢測頭
Vgg 最後預測 115 這個向量
前面的1是batch_size 幾張圖檔的意思
三、YOLOv0 train.py
For代數
加載資料,每疊代一次加載一批資料
得到loss,loss反向傳播,optimizer優化參數
Loss定義
判斷輸入次元與标簽次元是否想等,三個for循環
Target_process
主要用于生産曾(c,x, y, w, h)的c值
四、YOLO 改進
Location prediction trick
同時代rcnn預測偏移量,基于anchor和grid偏移量
V1直接輸出 xywh,範圍特别大,不精确
V2 的改進改為預測
X=cx+xt
Y=cy+yt
中心點坐标就可以得到了
這種利用偏移量預測的trick限制了目标框的位置,控制在grid中。
Anchor 人工會提供一組框[w_a, h_a]
Tx ty tw th 為預測輸出都是偏移量,bw=真實*一個0到正無窮的倍數
五、Anchor-box trick
也就是我們fast 系列模型中用的方法。差別就在于預測中心點時用額是認為設定anchor框的左上角的點而不是grid cell的。Cell更準。
六、Yolov2的改進trick
77(25+20)
1313(5*5+20)
改進完後檢測頭輸出增大,輸出的資訊更為豐富。
七、統計的到anchor
八、YOLOV1與YOLOV2對比
增加了offset
九、YOLOV2損失函數
十、YOLOV3檢測頭
多尺度檢測頭
V2:77->1313
V3檢測頭進一步發展
13預測大目标(感受野大) 26預測中目标 52預測小目标
先驗框 anchor 現在是9個了
十一、YOLOV1、2、3對比
十二、YOLOV4檢測頭
還是多尺度
但是用更多的anchors來預測ground truth
1.一個框對應多個anchor,隻要anchor與ground truth 有IOU就負責則
2.為了解決offset (0.1)不能占據整個grid 用了sota,在前面加了個系數
P^2*中心點的距離/對角線距離的平方
完整的yolov4 ciou loss
十三、YOLOV5檢測頭
自适應anchor,two-stage 檢測方法
Anchor在檢測過程中的作用
V4之前的anchor都是人工指定或者統計data
Img-conv-feature map-anchor預測(c,tx ty tw th)
Map(tx,xA)=out_x,基于anchor的預測方法
Two stage 第一步前景預測候選框出來,第二步再具體類别等預測。
自适應的anchor
推斷前景的xywh後,xa ya 等都是1*1卷集合預測的,自适應的anchor就是通過自定義anchor經網絡又算了一遍。
十四、補充
1.GT的格式,主要弄清楚哪個anchor對GT負責,
1)GT中心點确定grid
2)算anchor與GT 的IOU
2.基于檢測的跟蹤 trl
3.v5的anchor是基于資料集聚類但還是有個自适應操作
4.1*1卷積核主要是降低計算量,可以降維
5.一階段二階段的差別突破點就在正負樣本比例上
6.gpt3
7.資料+資源=算力,理論目前很充分了