0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

OpenCV4.8 C++实现YOLOv8 OBB旋转对象检测

OpenCV学堂 来源:OpenCV学堂 2024-02-22 10:15 次阅读

YOLOv8 OBB介绍

YOLOv8框架在在支持分类、对象检测、实例分割、姿态评估的基础上更近一步,现已经支持旋转对象检测(OBB),基于DOTA数据集,支持航拍图像的15个类别对象检测,包括车辆、船只、典型各种场地等。包含2800多张图像、18W个实例对象。

817c3a88-d0c9-11ee-a297-92fbcf53809c.png

不同尺度的YOLOv8 OBB模型的精度与输入格式列表如下:

818a32a0-d0c9-11ee-a297-92fbcf53809c.png

导出与预测

基于YOLOv8命令行推理测试:

## 导出
yolo export model=yolov8s-obb.pt format=onnx
##推理
yolo obb predict model=yolov8n-obb.pt source=plane_03.jpg

81929cd8-d0c9-11ee-a297-92fbcf53809c.jpg

输入与输出结构说明

基于OpenCV4.8 DNN与ONNX格式模型直接预测推理,首先看一下ONNX格式的YOLOv8-OBB输入与输出格式:

81abf700-d0c9-11ee-a297-92fbcf53809c.png

OpenCV4.8 C++ 推理演示 我把YOLOv8 OBB C++推理封装成一个类YOLOv8ObbDetector,客户端调用只有引用头文件,然后三行代码即可实现YOLOv8旋转对象检测C++ 的推理,代码演示如下:

#include
#include
#include

std::stringlabel_map="D:/python/my_yolov8_train_demo/dotav1.txt";
intmain(intargc,char**argv){
std::vectorclassNames;
std::ifstreamfp(label_map);
std::stringname;
while(!fp.eof()){
getline(fp,name);
if(name.length()){
classNames.push_back(name);
}
}
fp.close();
std::shared_ptrdetector(newYOLOv8ObbDetector());
detector->initConfig("D:/python/my_yolov8_train_demo/yolov8s-obb.onnx",0.4f,1024,1024);
cv::Matframe=cv::imread("D:/python/my_yolov8_train_demo/wh300.jpg");
detector->detect(frame,classNames);
cv::imshow("YOLOv8旋转对象检测+OpenCV4.8",frame);
cv::waitKey(0);
cv::destroyAllWindows();
return0;
}

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • C++
    C++
    +关注

    关注

    21

    文章

    2066

    浏览量

    72900
  • OpenCV
    +关注

    关注

    29

    文章

    611

    浏览量

    40786
  • 数据集
    +关注

    关注

    4

    文章

    1179

    浏览量

    24356

原文标题:OpenCV4.8 C++ 实现YOLOv8 OBB旋转对象检测 推理演示

文章出处:【微信号:CVSCHOOL,微信公众号:OpenCV学堂】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    Ubuntu系统下编译OpenCV4.8源码记录

    支持,所以就用这个开发板给大家演示一下如何在乌班图系统下编译OpenCV4.8源码与如何编译执行OpenCV C++应用。
    的头像 发表于 10-27 16:07 651次阅读
    Ubuntu系统下编译<b class='flag-5'>OpenCV4.8</b>源码记录

    OpenCV C++程序编译与演示

    1、在JetsonNano上编译OpenCV源码与OpenCV C++ YOLOv5程序演示  编译OpenCV最新4.5.x版本  Jet
    发表于 11-10 16:42

    使用YOLOv8做目标检测和实例分割的演示

    YOLOv8是来自Ultralytics的最新的基于YOLO的对象检测模型系列,提供最先进的性能。
    的头像 发表于 02-06 10:11 5978次阅读

    TensorRT 8.6 C++开发环境配置与YOLOv8实例分割推理演示

    YOLOv8实例分割TensorRT 推理代码已经完成C++类封装,三行代码即可实现YOLOv8对象
    的头像 发表于 04-25 10:49 3698次阅读
    TensorRT 8.6 <b class='flag-5'>C++</b>开发环境配置与<b class='flag-5'>YOLOv8</b>实例分割推理演示

    在AI爱克斯开发板上用OpenVINO™加速YOLOv8目标检测模型

    《在 AI 爱克斯开发板上用 OpenVINO 加速 YOLOv8 分类模型》介绍了在 AI 爱克斯开发板上使用 OpenVINO 开发套件部署并测评 YOLOv8 的分类模型,本文将介绍在 AI 爱克斯开发板上使用 OpenVINO 加速
    的头像 发表于 05-12 09:08 849次阅读
    在AI爱克斯开发板上用OpenVINO™加速<b class='flag-5'>YOLOv8</b>目标<b class='flag-5'>检测</b>模型

    YOLOv8版本升级支持小目标检测与高分辨率图像输入

    YOLOv8版本最近版本又更新了,除了支持姿态评估以外,通过模型结构的修改还支持了小目标检测与高分辨率图像检测。原始的YOLOv8模型结构如下。
    的头像 发表于 05-16 11:14 9020次阅读
    <b class='flag-5'>YOLOv8</b>版本升级支持小目标<b class='flag-5'>检测</b>与高分辨率图像输入

    AI爱克斯开发板上使用OpenVINO加速YOLOv8目标检测模型

    《在AI爱克斯开发板上用OpenVINO加速YOLOv8分类模型》介绍了在AI爱克斯开发板上使用OpenVINO 开发套件部署并测评YOLOv8的分类模型,本文将介绍在AI爱克斯开发板上使用OpenVINO加速YOLOv8目标
    的头像 发表于 05-26 11:03 720次阅读
    AI爱克斯开发板上使用OpenVINO加速<b class='flag-5'>YOLOv8</b>目标<b class='flag-5'>检测</b>模型

    教你如何用两行代码搞定YOLOv8各种模型推理

    大家好,YOLOv8 框架本身提供的API函数是可以两行代码实现 YOLOv8 模型推理,这次我把这段代码封装成了一个类,只有40行代码左右,可以同时支持YOLOv8
    的头像 发表于 06-18 11:50 2084次阅读
    教你如何用两行代码搞定<b class='flag-5'>YOLOv8</b>各种模型推理

    目标检测算法再升级!YOLOv8保姆级教程一键体验

    YOLO作为一种基于图像全局信息进行预测的目标检测系统,始终保持着极高的迭代更新率,从YOLOv5到YOLOv8,本次升级主要包括结构算法、命令行界面、PythonAPI等。具体到YOLOv8
    的头像 发表于 02-28 11:16 1486次阅读
    目标<b class='flag-5'>检测</b>算法再升级!<b class='flag-5'>YOLOv8</b>保姆级教程一键体验

    三种主流模型部署框架YOLOv8推理演示

    部署。这里以YOLOv8为例,演示了YOLOv8对象检测模型在OpenVINO、ONNXRUNTIME、TensorRT三个主流框架上C++
    的头像 发表于 08-06 11:39 1844次阅读

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

    YOLOv8是YOLO系列模型的最新王者,各种指标全面超越现有对象检测与实例分割模型,借鉴了YOLOv5、YOLOv6、YOLOX等模型的设
    的头像 发表于 08-10 11:35 741次阅读
    <b class='flag-5'>YOLOv8+OpenCV</b><b class='flag-5'>实现</b>DM码定位<b class='flag-5'>检测</b>与解析

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

    自从YOLOv5更新成7.0版本,YOLOv8推出以后,OpenCV4.6以前的版本都无法再加载导出ONNX格式模型了,只有OpenCV4.7以上版本才可以支持最新版本
    的头像 发表于 09-27 11:07 702次阅读
    <b class='flag-5'>OpenCV4.8+YOLOv</b>8<b class='flag-5'>对象</b><b class='flag-5'>检测</b><b class='flag-5'>C++</b>推理演示

    基于YOLOv8的自定义医学图像分割

    YOLOv8是一种令人惊叹的分割模型;它易于训练、测试和部署。在本教程中,我们将学习如何在自定义数据集上使用YOLOv8。但在此之前,我想告诉你为什么在存在其他优秀的分割模型时应该使用YOLOv8呢?
    的头像 发表于 12-20 10:51 411次阅读
    基于<b class='flag-5'>YOLOv8</b>的自定义医学图像分割

    YOLOv8实现旋转对象检测

    YOLOv8框架在在支持分类、对象检测、实例分割、姿态评估的基础上更近一步,现已经支持旋转对象检测
    的头像 发表于 01-11 10:43 574次阅读
    <b class='flag-5'>YOLOv8</b><b class='flag-5'>实现</b><b class='flag-5'>旋转</b><b class='flag-5'>对象</b><b class='flag-5'>检测</b>

    基于OpenCV DNN实现YOLOv8的模型部署与推理演示

    基于OpenCV DNN实现YOLOv8推理的好处就是一套代码就可以部署在Windows10系统、乌班图系统、Jetson的Jetpack系统
    的头像 发表于 03-01 15:52 447次阅读
    基于<b class='flag-5'>OpenCV</b> DNN<b class='flag-5'>实现</b><b class='flag-5'>YOLOv8</b>的模型部署与推理演示