YOLOv5發(fā)布v6.0版本,性能提升,新增多個(gè)特性!
點(diǎn)擊下方“AI算法與圖像處理”,一起進(jìn)步!
重磅干貨,第一時(shí)間送達(dá)
環(huán)境
ubuntu 18.04 64bit GTX 1070Ti anaconda with python 3.8 pytorch 1.7 cuda 10.1
前言
就在前天(2021年10月12日),yolov5 發(fā)布了 V6.0 版本,這個(gè)新版本在 V5.0 的基礎(chǔ)上集成了很多的新特性,而且在網(wǎng)絡(luò)結(jié)構(gòu)上也做了微調(diào),引入了全新的更小( Nano )的模型 P5(YOLOv5n) 和 P6(YOLOv5n6)。Nano 模型保持了 yolov5s 模型的深度( depth ),寬度( width ) 則是從0.5降到了0.25,經(jīng)過這個(gè)操作后,總參數(shù)減少了 75%,從 7.5M 縮小到了 1.9M,這樣的話,就非常適合于移動(dòng)端或者是 CPU 的環(huán)境。
在性能指標(biāo)方面,V6.0 也有所提升,看下圖

新特性
下面整理了 V6.0 新增的主要特性
整合了
Roboflowroboflow前面我們提過了,它公開了很多非常有用的數(shù)據(jù)集,在v6.0上可以直接使用他們的數(shù)據(jù)集,參考 https://github.com/ultralytics/yolov5/issues/4975,非常的方便支持
tensorflow和keras模型的導(dǎo)出使用
python export.py --include saved_model pb tflite tfjs就可以完成tensorFlow、keras、tflite和tf.js模型的導(dǎo)出同時(shí)支持
OpenCV DNN和ONNX Runtime導(dǎo)出的
onnx同時(shí)支持opencv dnn和onnx runtimepython?export?--weights?yolov5s.pt?--include?onnx?--opset?12?--dynamic在檢測的時(shí)候也可以使用指定的
onnx,python detect.py --weights yolov5s.onnx --dnn模型結(jié)構(gòu)
用 Conv(k=6, s=2, p=2)代替Focus層,主要是為了方便模型導(dǎo)出使用 SPPF代替SPP層減少 P3主干層C3將 SPPF放在主干的后面在最后一個(gè) C3主干層中重新引入快捷方式更新超參數(shù) 增加了
Flask REST API提供了
web api的支持,遠(yuǎn)端測試非常方便,常見的開放平臺都是這么做的
flask api實(shí)踐
下載 V6.0 源碼
git?clone?-b?v6.0?https://github.com/ultralytics/yolov5.git
cd?yolov5/utils/flask-rest-api
安裝必要依賴并啟動(dòng)服務(wù)
pip?install?flask
#?通過參數(shù)port可以指定特定端口,如--port?8080
python?restapi.py
腳本啟動(dòng)過程中會去下載 yolov5 的源碼和 yolov5s.pt 模型文件,存放在 ~/.cache/torch/hub 下
(base)?xugaoxiang@1070Ti:~/workshop/yolov5/data/images$?ls?~/.cache/torch/hub/ultralytics_yolov5_master/
CONTRIBUTING.md??detect.py???export.py???LICENSE??__pycache__??requirements.txt??tutorial.ipynb??val.py
data?????????????Dockerfile??hubconf.py??models???README.md????train.py??????????utils???????????yolov5s.pt
這個(gè)下載的動(dòng)作,默認(rèn)情況下,在每次腳本執(zhí)行時(shí)都會進(jìn)行??梢酝ㄟ^修改 restapi.py 來使用現(xiàn)有版本
#?將force_reload,由原來的True改為False
model?=?torch.hub.load("ultralytics/yolov5",?"yolov5s",?force_reload=False)
服務(wù)啟動(dòng)后,我們來到客戶端,使用 curl 命令進(jìn)行測試
[email protected]?'http://192.168.1.140:5000/v1/object-detection/yolov5s'
成功后,可以得到接口返回的結(jié)果
(base)?xugaoxiang@1070Ti:~/workshop/yolov5/data/[email protected]?'http://192.168.1.140:5000/v1/object-detection/yolov5s'
[{"xmin":752.0,"ymin":46.0,"xmax":1148.0,"ymax":716.0,"confidence":0.875,"class":0,"name":"person"},{"xmin":100.0,"ymin":201.5,"xmax":1002.0,"ymax":718.5,"confidence":0.5795898438,"class":0,"name":"person"},{"xmin":438.25,"ymin":422.0,"xmax":509.75,"ymax":720.0,"confidence":0.5219726562,"class":27,"name":"tie"}]
或者
使用 postman 進(jìn)行測試,使用的是 POST 請求,url 是 http://192.168.1.140

如果要使用 python 進(jìn)行請求,項(xiàng)目中也給出了示例 example_request.py,使用的是 request 模塊
交流群
歡迎加入公眾號讀者群一起和同行交流,目前有美顏、三維視覺、計(jì)算攝影、檢測、分割、識別、醫(yī)學(xué)影像、GAN、算法競賽等微信群
個(gè)人微信(如果沒有備注不拉群!) 請注明:地區(qū)+學(xué)校/企業(yè)+研究方向+昵稱
下載1:何愷明頂會分享
在「AI算法與圖像處理」公眾號后臺回復(fù):何愷明,即可下載。總共有6份PDF,涉及 ResNet、Mask RCNN等經(jīng)典工作的總結(jié)分析
下載2:終身受益的編程指南:Google編程風(fēng)格指南
在「AI算法與圖像處理」公眾號后臺回復(fù):c++,即可下載。歷經(jīng)十年考驗(yàn),最權(quán)威的編程規(guī)范!
下載3 CVPR2021 在「AI算法與圖像處理」公眾號后臺回復(fù):CVPR,即可下載1467篇CVPR?2020論文 和 CVPR 2021 最新論文

