一、更新理解
YOLOV5.5在这个版本,基本上和YOLOV4分道扬镳。YOLOV5.5(YOLOV5-P6)相对于5.4(YOLOV5-P5)区别:5.4是3个尺度 的输出层,即:P3, P4, P5 at strides 8, 16, 32, trained at --img 640,而yolov5.5是4个输出层P3, P4, P5, P6 at strides 8, 16, 32, 64 trained at
增加的 P6/64 输出层是为了检测大目标,对高分辨率图像训练效果更佳. For this reason we trained all P5 models at 640, and all P6 models at 1280.--img 1280;其中
YOLOV5.5有8中模型,分别是:5s 5m 5l 5x(640*640),5s6 5m6 5l6 5x6(960*1280)。针对前面四种模型,我是用YOLOV5.4版本写好的模型导出脚本,libtorch加载导出模型都OK。另外有一点,我再强调下,U2NET在python环境下导出cpu模型,在libtorch环境下,
你可以在GPU or CPU中任意加载;但是,咱们YOLOV5就不行,libtorch如果采用GPU方案,那么在python环境下就导出GPU模型,采用CPU,就导出CPU。
模型转换,以GPU版本为例子:
和之前5.4一样,设一个false、张量、Module放到CUDA中去,命令行修改如下:
提示:对于原来的模型分辨率依然是:[640,640]
二、速度测试
硬件:I7-8700 + P4000(8g)
软件:Libtorch1.8.1 + win
1280(960*1280):
yolov5s6:291 layers, 12653596 parameters, 0 gradients, 17.4 GFLOPS 推理时间:4+ms
yolov5m6:396 layers, 35889612 parameters, 0 gradients, 52.4 GFLOPS 推理时间:5.5+ms
yolov5x6:606 layers, 141755500 parameters, 0 gradients, 222.9 GFLOPS 推理时间:8.4+ms
640(640*640):
yolov5s: 224 layers, 7266973 parameters, 0 gradients, 17.0 GFLOPS 推理时间:3+ms
yolov5m: 308 layers, 21356877 parameters, 0 gradients, 51.3 GFLOPS 推理时间:4.3+ms
yolov5x:476 layers, 87730285 parameters, 0 gradients, 218.8 GFLOPS 推理时间:6.6+ms
三、精度测试(pytorch vs libtorch)
P5必须设置640分辨率,P6兼容640&1280。
疑问:MLGB,老子libtorch环境下,采用P6模型,设置960*1280没问题,官方源码运行detect.py相同设置会崩溃,改为640却又可以。
3.1、P5测试(5s、5m、5x)
pytorch(仅给出5m-640,图片太J8大了,丢网盘了):
libtorch(5m-640):
结论:老子部署的效果比原版代码效果好,非常邪门,顺便conf-thr、iou-thr都是设置一样的。
3.2、P6测试(5s6、5m6、5x6)
由于官方源码测试1280导致崩溃,原因未知(在线读取却不崩溃,真实B了狗),暂时用640分辨率。还有就上面检测汽车的这张图,你妈的,5s6效果居然远远好于5m6、5x6,醉了。
pytorch(5s6-640):
这张图原图分辨率:3840*2140,在detect.py命令行参数中设置1280分辨率会报错,手动将原图改为:960*1280就不报错,真实B了狗
libtorch(5s6-1280):
小结:个人觉得,YOLOV5.5有很多地方需要完善,项目部署,建议暂时以640分辨率为主。
四、错误记录
VPN问题:
在转换模型的时候,如果你开了VPN,可能造成如下错误:
原因是:google_utils.py文件中的函数 def attempt_download(weights)中有如下一句:
其作用是:去指定网站自动检测模型是否是最新的模型文件,但是这S/B玩意。一开VPN就报上面错误。
环境问题:
在win上安装yolov5的conda虚拟环境时,出现这种错误:Failed building wheel for pycocotools,咱们直接编辑根目录中的requirments.txt文件,删除pycocotools,直接不装了。环境配好后,去链接:https://github.com/ultralytics/yolov5/releases 下载yolov5s6
.pt yolov5m6.pt模型文件,咱们激活虚拟环境后,直接在pycharm中执行脚本detect.py,命令行参数如下:
注:新模型必须设置为1280