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

科技   2024-12-10 21:04   江苏  

点击上方蓝字关注我们

微信公众号:OpenCV学堂

关注获取更多计算机视觉与深度学习知识

数据集说明

数据集来自工业相机采集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 推理


OpenCV4系统化学习


深度学习系统化学习

推荐阅读

OpenCV4.8+YOLOv8对象检测C++推理演示

ZXING+OpenCV打造开源条码检测应用

攻略 | 学习深度学习只需要三个月的好方法

三行代码实现 TensorRT8.6 C++ 深度学习模型部署

实战 | YOLOv8+OpenCV 实现DM码定位检测与解析

对象检测边界框损失 – 从IOU到ProbIOU

初学者必看 | 学习深度学习的五个误区


OpenCV学堂
三本书《Java数字图像处理-编程技巧与应用实践》、《OpenCV Android开发实战》、《OpenCV4应用开发-入门、进阶与工程化实践》作者。OpenCV实验大师平台 软件作者,OpenCV开发专家、OpenCV研习社创始人。
 最新文章