OpenCV学堂 | YOLOv8官方团队宣布YOLOv11 发布了

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

原文链接:YOLOv8官方团队宣布YOLOv11 发布了

引言

YOLO11是Ultralytics YOLO系列实时目标检测器的最新迭代版本,它以尖端的准确性、速度和效率重新定义了可能实现的性能。在之前YOLO版本取得的显著进步基础上,YOLO11在架构和训练方法上进行了重大改进,使其成为各种计算机视觉任务中的通用选择。

看下效果对比图:

源码地址

https://github.com/ultralytics/ultralytics

 

安装与测试

命令行测试,先运行预测与下载YOLOv11模型

yolo predict model=yolo11n.pt source=zidane.jpg

查看运行结果:

然后导出成ONNX格式,看一下输入与输出格式

yolo export model=yolo11n.pt format=onnx

导出成功结果如下:

打开导出ONNX格式文件,结构如下,大胆猜测解析输出层后处理应该没有什么变化。

这个是我的YOLOv8 + ONNXRUNTIME 代码直接测试YOLO11模型,推理测试,发现完全可以运行,套娃成功了!好消息是以前能够推理YOLOv8的一切都不用改一行代码,只要改一下模型名称!不信看图:

不放心,看一下官方测试代码,发现跟YOLOv8 几乎一致,只是改了一个名字,可以认为是YOLOv8的魔改升级的最新版本,官方也是这么说的:

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n.pt")

# Train the model
train_results = model.train(
    data="coco8.yaml",  # path to dataset YAML
    epochs=100,  # number of training epochs
    imgsz=640,  # training image size
    device="cpu",  # device to run on, i.e. device=0 or device=0,1,2,3 or device=cpu
)

# Evaluate model performance on the validation set
metrics = model.val()

# Perform object detection on an image
results = model("path/to/image.jpg")
results[0].show()

# Export the model to ONNX format
path = model.export(format="onnx")  # return path to exported model

结论

可以说,只要你会YOLOv8从训练到部署,切换到YOLOv11,只需要改个几个数字就好啦!其它基本不用管,这版本升级主打一个丝滑

THE END !

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

在使用OpenCV 4.5.7调用Yolov8时,需要进行以下步骤: 1. 首先,确保已经安装了OpenCV 4.5.7版本,并能够正常运行。 2. 然后,下载Yolov8的模型文件和权重文件。可以在Yolov8官方网站或GitHub页面上找到这些文件。 3.将模型文件和权重文件加载到OpenCV中。使用cv::dnn::readNetFromDarknet函数来加载模型文件和权重文件。例如: cv::dnn::Net net = cv::dnn::readNetFromDarknet(modelConfig, modelWeights); 这将返回一个表示Yolov8模型的网络对象。 4.接下来,读取图像或视频文件,并将其转换为适合输入Yolov8模型的格式。可以使用cv::imread函数读取图像文件,或者使用cv::VideoCapture函数读取视频文件。 5.将转换后的图像传递给Yolov8模型,并获取检测结果。使用cv::dnn::blobFromImage函数将图像转换为网络可以接受的格式,并使用net.forward函数进行推理。例如: cv::Mat blob = cv::dnn::blobFromImage(image, 1.0 / 255.0, cv::Size(416, 416), cv::Scalar(), true, false); net.setInput(blob); cv::Mat detectionMat = net.forward(); 6.解析检测结果,并绘制边界框和类别标签。遍历检测结果中的每个对象,提取其边界框坐标和类别得分,并使用cv::rectangle和cv::putText函数在图像上绘制边界框和标签。 7.最后,显示带有边界框和标签的图像。使用cv::imshow函数显示处理后的图像,并使用cv::waitKey函数等待用户按下键盘以关闭窗口。 以上就是使用OpenCV 4.5.7调用Yolov8的大致步骤。需要根据具体的应用场景和需求进行适当的调整和优化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值