WongKinYiu / PyTorch_YOLOv4

PyTorch implementation of YOLOv4
1.88k stars 585 forks source link

yolo layer stride詢問 #291

Closed peggy860629 closed 3 years ago

peggy860629 commented 3 years ago

作者你好: 我在做研究時有遇到一些問題想請教:

  1. 在models.py內yololayer參數有一個stride的設置, 能否說明一下如何設定stride, 跟 downsample次數有關連嗎 ? code中有區分yolov4-tiny是令stride=[8,16,32], 而yolov4則是令stride=[8,16,32,64,128], 該如何設定stride?
  2. 我有看到作者發的一篇scaled-yolov4, paper中 yolov4-tiny的mAP是0.22, 想請教pytorch implementation的數字是多少呢? 我用作者提供的yolov4-tiny.cfg, 300epochs的mAP大概是0.17而已(image size=640)

感謝回答

WongKinYiu commented 3 years ago
  1. stride 是根據 downsampling 尺寸決定. yolov4-tiny 只有 2 層 yolo 層, 依序用到的 stride 為 8, 16. yolov4 : 3 : 8, 16, 32. 後面的 64, 128 是給 P6, P7 models 用的.
  2. 0.17 是 pycocotools 還是內建 code 算的? 兩個算出來通常差 0.7~1%. pycocotools比較高.
peggy860629 commented 3 years ago

謝謝您的回覆

  1. 現在我了解stride是根據 downsampling尺寸決定, yolov4-tiny中做了5次的downsampling(2次 stride=2的convolution 與 3次 maxpooling), 若我增加或減少一次maxpooling的次數, yololayer的層數維持不變, yololayer 的 stride參數該如何調整?

  2. 0.17是pycocotools運算出來的結果, 內建code大概是0.16, 與paper 的數字似乎有一些落差

感謝回答

WongKinYiu commented 3 years ago

我自己用pytorch訓練yolov4-tiny是使用 512 train, ap略高於darknet, ap50比較低.

peggy860629 commented 3 years ago

謝謝您的回覆, 我會再用512試試看

  1. 請問我若在backbone增加一層downsampling, yololayer中的參數需要怎麼相對應調整呢 感謝回答