YOLOU開(kāi)源 | 匯集YOLO系列所有算法,集算法學(xué)習(xí)、科研改進(jìn)、落地...


這里推薦一個(gè)YOLO系列的算法實(shí)現(xiàn)庫(kù)YOLOU,此處的“U”意為“United”的意思,主要是為了學(xué)習(xí)而搭建的YOLO學(xué)習(xí)庫(kù),也借此向前輩們致敬,希望不被罵太慘;
整個(gè)算法完全是以YOLOv5的框架進(jìn)行,主要包括的目標(biāo)檢測(cè)算法有:YOLOv3、YOLOv4、YOLOv5、YOLOv5-Lite、YOLOv6、YOLOv7、YOLOX以及YOLOX-Lite。
同時(shí)為了方便算法的部署落地,這里所有的模型均可導(dǎo)出ONNX并直接進(jìn)行TensorRT等推理框架的部署,后續(xù)也會(huì)持續(xù)更新。
模型精度對(duì)比
服務(wù)端模型
這里主要是對(duì)于YOLO系列經(jīng)典化模型的訓(xùn)練對(duì)比,主要是對(duì)于YOLOv5、YOLOv6、YOLOv7以及YOLOX的對(duì)比,部分模型還在訓(xùn)練之中,后續(xù)所有預(yù)訓(xùn)練權(quán)重均會(huì)放出,同時(shí)對(duì)應(yīng)的ONNX文件也會(huì)給出,方便大家部署應(yīng)用落地。
注意,這里關(guān)于YOLOX也沒(méi)完全復(fù)現(xiàn)官方的結(jié)果,后續(xù)有時(shí)間還會(huì)繼續(xù)調(diào)參測(cè)試,盡可能追上YOLOX官方的結(jié)果。
下表是關(guān)于YOLOU中模型的測(cè)試,也包括TensorRT的速度測(cè)試,硬件是基于3090顯卡進(jìn)行的測(cè)試,主要是針對(duì)FP32和FP16進(jìn)行的測(cè)試,后續(xù)的TensorRT代碼也會(huì)開(kāi)源。目前還在整理之中。

輕量化模型
為了大家在手機(jī)端或者其他諸如樹莓派、瑞芯微、AID以及全志等芯片的部署,YOLOU也對(duì)YOLOv5和YOLOX進(jìn)行了輕量化設(shè)計(jì)。
下面主要是對(duì)于邊緣端使用的模型進(jìn)行對(duì)比,主要是借鑒之前小編參與的YOLOv5-Lite的倉(cāng)庫(kù),這里也對(duì)YOLOX-Lite進(jìn)行了輕量化遷移,總體結(jié)果如下表所示,YOLOX-Lite基本上可以超越Y(jié)OLOv5-Lite的精度和結(jié)果。
如何使用YOLOU?安裝
這里由于使用的是YOLOv5的框架進(jìn)行的搭建,因此安裝形式也及其的簡(jiǎn)單,具體如下:
git?clone?https://github.com/jizhishutong/YOLOU
cd?YOLOU
pip?install?-r?requirements.txt
數(shù)據(jù)集
這里依舊使用YOLO格式的數(shù)據(jù)集形式,文件夾形式如下:
train:?../coco/images/train2017/
val:?../coco/images/val2017/
具體的標(biāo)注文件和圖像list如下所示:
├──?images????????????#?xx.jpg?example
│???├──?train2017????????
│???│???├──?000001.jpg
│???│???├──?000002.jpg
│???│???└──?000003.jpg
│???└──?val2017?????????
│???????├──?100001.jpg
│???????├──?100002.jpg
│???????└──?100003.jpg
└──?labels?????????????#?xx.txt?example??????
????├──?train2017???????
????│???├──?000001.txt
????│???├──?000002.txt
????│???└──?000003.txt
????└──?val2017?????????
????????├──?100001.txt
????????├──?100002.txt
????????└──?100003.txt
參數(shù)配置
YOLOU為了方便切換不同模型之間的訓(xùn)練,這里僅僅需要配置一個(gè)mode即可切換不同的模型之間的檢測(cè)和訓(xùn)練,具體意義如下:

注意:這里的mode主要是對(duì)于Loss計(jì)算的選擇,對(duì)于YOLOv3、YOLOv4、YOLOv5、YOLOR以及YOLOv5-Lite直接設(shè)置mode=yolo即可,對(duì)于YOLOX以及YOLOX-Lite則設(shè)置mode=yolox,對(duì)于YOLOv6和YOLOv7則分別設(shè)置mode=yolov6和mode=yolov7;
注意由于YOLOv7使用了Aux分支,因此在設(shè)置YOLOv7時(shí)有一個(gè)額外的參數(shù)需要配置,即use_aux=True。
具體訓(xùn)練指令如下:
python?train.py?--mode?yolov6?--data?coco.yaml?--cfg?yolov6.yaml?--weights?yolov6.pt?--batch-size?32
檢測(cè)指令如下:
python?detect.py?--source?0??#?webcam
????????????????????????????file.jpg??#?image?
????????????????????????????file.mp4??#?video
????????????????????????????path/??#?directory
????????????????????????????path/*.jpg??#?glob
????????????????????????????'https://youtu.be/NUsoVlDFqZg'??#?YouTube
????????????????????????????'rtsp://example.com/media.mp4'??#?RTSP,?RTMP,?HTTP?stream
檢測(cè)結(jié)果服務(wù)端模型

輕量化模型
參考[1].https://github.com/jizhishutong/YOLOU
長(zhǎng)按掃描下方二維碼添加小助手。
可以一起討論遇到的問(wèn)題
聲明:轉(zhuǎn)載請(qǐng)說(shuō)明出處
掃描下方二維碼關(guān)注【集智書童】公眾號(hào),獲取更多實(shí)踐項(xiàng)目源碼和論文解讀,非常期待你我的相遇,讓我們以夢(mèng)為馬,砥礪前

