OpenCV学堂 | YOLOv8与YOLO11自定义数据集迁移学习效果对比

本文来源公众号“OpenCV学堂”,仅用于学术分享,侵权删,干货满满。

原文链接:YOLOv8与YOLO11自定义数据集迁移学习效果对比

数据集说明

数据集来自工业相机采集10张原始图像,然后通过OpenMV工具软件数据增强以后得到170张,基于OpenMV完成数据标注

其中150张作为训练集,20张作为验证集,完成数据集制作以后,图像数据如下:

模型训练

安装YOLOv8与YOLO11框架

pip install ultralytics

YOLOv8n 训练命令行

yolo train data=nut_dataset.yaml model=yolov8n.pt epochs=25 batch=4

YOLO11n 训练命令行

yolo train data=nut_dataset.yaml model=yolo11n.pt epochs=25 batch=4

结果对比

针对我当前这种需求,保持数据集,参数完全一致的情况下,对比如下:

YOLOv8训练结果截图如下

YOLO11训练结果截图如下

可以看出mAP(0.5)的结果都是0.995,但是在mAP(0.5~0.95)这个区间YOLOv8迁移学习效果居然比YOLO11迁移学习效果好那么一点点。可能我的比较不够全面,数据不够多,但是也说明针对自定义数据集的迁移学习其实YOLOv8跟YOLO11没有什么区别。

导出模型

yolo export model=nut_yolo8_best.pt format=onnxyolo export model=nut_yolo11_best.pt format=onnx

执行推理运行YOLOv8

执行推理运行YOLO11

都导出了ONNX格式执行推理,发现YOLO11得分置信度比较高!

YOLOv8、YOLO11 ONNX格式模型的OpenVINO C++ 推理结果比较​​​​​​​

cv::Mat frame = cv::imread("D:/python/my_yolov8_train_demo/31.png");
std::vector<YOLODetBox> results;

std::shared_ptr<YOLO11OpenVINODetector> detector(new YOLO11OpenVINODetector());
detector->initConfig("D:/python/my_yolov8_train_demo/nut_best.onnx", 0.25, 640, 640, false);
detector->detect(frame, results);
for (YOLODetBox dr : results) {
cv::Rect box = dr.box;
cv::putText(frame, cv::format("%s %f",classNames[dr.classId], dr.score), cv::Point(box.tl().x, box.tl().y - 10), cv::FONT_HERSHEY_SIMPLEX, .5, cv::Scalar(0, 0, 0));
}
cv::imshow("YOLO11 对象检测 + OpenVINO2023", frame);
cv::imwrite("D:/result.jpg", frame);
cv::waitKey(0);
cv::destroyAllWindows();
return 0;

YOLOv8推理

YOLO11 推理

THE END !

文章结束,感谢阅读。您的点赞,收藏,评论是我继续更新的动力。大家有推荐的公众号可以评论区留言,共同学习,一起进步。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值