接上篇英伟达Jetson搭建Yolov8环境过程中遇到的各种报错解决(涉及numpy、scipy、torchvision等)以及直观体验使用Yolov8目标检测的过程(CLI命令行操作、无需代码)-CSDN博客的进一步测试,只是好奇,建议浏览一下就行,不需要浪费时间走一遍这个流程。
主要内容:
YOLOv8 - Ultralytics YOLOv8 文档
YOLOv8提供了基于目标检测、实例分割、姿态检测、分类等不同类型,不同规格的模型,后缀n、s、m、l、x代表模型的规模逐渐增大。
?不同的模型的性能见下表:
关于mAPval 50-95:
关于速度:
所以总结下就是,模型越大,效果越好,但推理的时间也越久;
yolo train data=coco128.yaml model=yolov8n.pt epochs=10 lr0=0.01
?训练10次耗时0.376小时≈22分钟。
yolo train data=coco128.yaml model=yolov8m.pt epochs=10 lr0=0.01
如果只是把yolov8n.pt改成yolov8m.pt,且运行设备的内存不够大(我用的是8G内存),就会出现刚开始训练就终止Killed的问题,像这样:
减小batch可以解决这个问题,默认是batch=16,我修改成batch=4之后可以正常训练,batch=-1是可以自动适配硬件这个还没有尝试。
yolo train data=coco128.yaml model=yolov8m.pt epochs=10 lr0=0.01 batch=4
训练的过程中打开jtop,关于安装jtop及可能遇到的问题在这里Jetson Orin Nano_安装jtop指令(遇到循环提示重启服务的问题)、查看系统运行情况及基本信息-CSDN博客。
可以从下图看到,即便是batch=4,6个CPU基本满负荷,内存占用大概是5.5/7.4≈74%.
最终跑完,一共耗时1.9个小时。
一共有10张图片,平均预处理preprocess=7.3ms,推理interence=318.4ms,后处理postprocess=6ms,总计331.7ms;
同样的这10张图片,平均预处理preprocess=5.6ms,推理interence=1135.1ms,后处理postprocess=3.4ms,总计1144.1ms,差不多是yolov8n.pt的3.5倍。
yolo predict model=yolov8n.pt source='/home/lgzn/Pictures/test_car_plane'
yolo predict model=yolov8m.pt source='/home/lgzn/Pictures/test_car_plane'
对比来说yolov8m.pt效果确实明显要好,比如下图识别出car的置信度变高了,还多识别出2个bus,错误识别的traffic light也没有了。
对图片、视频的检测并没有很大的不同,只是修改个识别的来源source:
yolo predict model=yolov8m.pt source='/home/lgzn/Pictures/video_test/ollie.mp4'
因为看到训练的日志class里面有person和skateboard这两个类别,所以试试看这个video,skateboard识别出来了并且置信度是0.9,满意。
总有一天,我的ollie会过障碍,然后一立、两立;