(附鏈接)YoloALL: 解決不同版本YOLO的選擇進行目標檢測推理
點擊左上方藍字關注我們


最近我們創(chuàng)辦了通過視頻來詳解前研技術,有興趣的同學可以通過觀看視屏了解最新檢測框架,如目前發(fā)布的視頻鏈接:
https://www.bilibili.com/video/BV17b4y1m7xy/
https://www.bilibili.com/video/BV1vU4y1j7Ms/

前言&背景
在通用目標檢測中,從yolov1,v2,v3,v4,v5到最近的yolox,都充分說明了yolo在學術界以及工業(yè)界的受歡迎程度。
YOLOR論文地址:https://arxiv.org/pdf/2105.04206.pdf
YOLObile論文地址:https://arxiv.org/pdf/2009.05697.pdf
Yolov4論文地址:https://arxiv.org/pdf/2004.10934.pdf
Tiny YOLOv3代碼地址:https://github.com/yjh0410/yolov2-yolov3_PyTorch
YoloV2(Yolo9000)論文地址:https://arxiv.org/pdf/1612.08242.pdf
YoloV1論文地址:https://arxiv.org/pdf/1506.02640.pdf
除了基線的頻繁迭代更新之外,還有很多針對yolo的優(yōu)化精簡版本,如下表所示:


在如此眾多的yolo版本中,除了官方的評測數(shù)據(jù)之外,有沒有更加直觀的方式來對比各種不同版本的yolo性能呢?

很早之前鄭老師就幻想著能有一個集成各種yolo的版本,能夠對圖片,視頻,實時碼流進行對比,于是就有了這個YoloAll的想法。希望能在一個software里面對同一張圖片,同一段視頻,或者同一個camera的碼流進行對比分析。
YoloAll演示
下面是一段YoloAll的演示視頻。目前支持yolo_v3, yolo_v5, yolox, yolo_fastest四個版本;并且支持從圖片,視頻(mp4)以及camera進行推理分析。
02:27
結構介紹
YoloAll使用pyqt設計,整體工程結構如下圖所示,其中model_zoo下面放置了所有支持的yolo版本,包括里面的各種小版本。

目前支持4個版本的yolo,并且提供了簡單的擴展方法,可以把你喜歡的yolo擴展進去。詳情見下章節(jié)的“擴展模型”。
Yolov3:https://github.com/eriklindernoren/PyTorch-YOLOv3
Yolov5:https://github.com/ultralytics/yolov5
Yolox:https://github.com/Megvii-BaseDetection/YOLOX
Yolo-fastest:https://github.com/dog-qiuqiu/Yolo-FastestV2
感謝以上開源項目以及作者,感謝帶來了這么好的yolo項目。
使用教程
下載源碼
git clone https://github.com/DL-Practise/YoloAll安裝依賴
下載的yolo版本全部放在model_zoo目錄下面,進入到model_zoo中的各個yolo版本中,執(zhí)行:
pip install -r requirements.txt下載預訓練模型
當前的YoloAll對于每個yolo版本已經(jīng)內置了一個最小模型,如下圖所示。
如果還想測試其他較大模型,如yolov5_l、yolox_l等,可以從如下鏈接下載預訓練模型,并放置在對應的目錄下面:
Yolov3:
https://pjreddie.com/media/files/yolov3.weights
下載完畢之后,將模型放在model_zoo/yolov3下面即可
Yolov5:
https://github.com/ultralytics/yolov5/releases/download/v5.0/yolov5s.pt
https://github.com/ultralytics/yolov5/releases/download/v5.0/yolov5m.pt
https://github.com/ultralytics/yolov5/releases/download/v5.0/yolov5l.pt
https://github.com/ultralytics/yolov5/releases/download/v5.0/yolov5x.pt
下載完畢之后,將模型放在model_zoo/yolov5下面即可
Yolox:
https://github.com/Megvii-BaseDetection/YOLOX/releases/download/0.1.1rc0/yolox_s.pth
https://github.com/Megvii-BaseDetection/YOLOX/releases/download/0.1.1rc0/yolox_m.pth
https://github.com/Megvii-BaseDetection/YOLOX/releases/download/0.1.1rc0/yolox_l.pth
https://github.com/Megvii-BaseDetection/YOLOX/releases/download/0.1.1rc0/yolox_x.pth
下載完畢之后,將模型放在model_zoo/yolox下面即可
此時,重新打開界面,能夠顯示出所有的yolo版本:
擴展模型
YoloAll提供了非常方便的接口來集成自己的yolo版本。將自己的yolo版本放置在model_zoo中。并提供一個api.py的模塊,里面實現(xiàn)如下方法:
#獲取支持的子類型接口。例如yolov5中支持yolov5_s;yolov5_m; yolov5_l等def get_support_models()#創(chuàng)建模型。根據(jù)模型的子類型名稱,以及設備類型創(chuàng)建模型def create_model(model_name='yolov5_s', dev='cpu')#進行一次推理,傳入的img_array為opencv讀取的圖片def inference(img_array)
具體可以參考model_zoo下面的YoloV5/api.py, YoloX/api.py等。
END
整理不易,點贊鼓勵一下吧↓
