本文来源公众号“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 !
文章结束,感谢阅读。您的点赞,收藏,评论是我继续更新的动力。大家有推荐的公众号可以评论区留言,共同学习,一起进步。
23万+

被折叠的 条评论
为什么被折叠?



