【快速推理】OpenCV三行代码部署YOLOv8全系模型

news2024/11/19 13:36:13

学习《OpenCV应用开发:入门、进阶与工程化实践》一书,学会本文所有技能就这么简单!
做真正的OpenCV开发者,从入门到入职,一步到位!
在这里插入图片描述

YOLOv8全系模型推理支持

大家好,OpenCV实验大师最新C++ SDK已经支持全系YOLOv8模型推理,基于OpenCV实现,支持CPU与GPU推理。支持对象检测、实例分割、姿态评估、旋转对象检测,模型部署推理,简单易容,只要三行代码即可调用,实现YOLOv8模型的C++ 推理部署,支持多种系统包括乌班图、Jetson、Win10与Win11上运行。

SDK效果演示

YOLOv8对象检测

YOLOv8对象检测C++ 调用代码示例

std::shared_ptr<YOLOv8Detector> detector(new YOLOv8Detector());
detector->initConfig("D:/python/my_yolov8_train_demo/yolov8n.onnx", 0.25, 640,640, false);
detector->detect(image, results)

在这里插入图片描述

YOLOv8实例分割

YOLOv8实例分割 C++ 调用代码示例:

std::shared_ptr<YOLOv8SegDetector> detector(new YOLOv8SegDetector());
detector->initConfig("D:/python/my_yolov8_train_demo/yolov8n.onnx", 0.4, 0.25f);
cv::VideoCapture capture("D:/bird_test/Pexels_Videos_2670.mp4");
cv::Mat frame;
std::vector<DetectResult> results;
while (true) {
    bool ret = capture.read(frame);
    if (frame.empty()) {
        break;
    }
    detector->detect(frame, results);
    for (DetectResult dr : results) {
        cv::Rect box = dr.box;
        cv::putText(frame, classNames[dr.classId], cv::Point(box.tl().x, box.tl().y - 10), cv::FONT_HERSHEY_SIMPLEX, .5, cv::Scalar(0, 0, 0));
    }
    cv::imshow("YOLOv8 实例分割 + OpenCV", frame);
    char c = cv::waitKey(1);
    if (c == 27) { // ESC 退出
        break;
    }
    // reset for next frame
    results.clear();
}

在这里插入图片描述

YOLOv8姿态评估

YOLOv8姿态评估 C++ 调用代码示例:

std::shared_ptr<YOLOv8PoseDetector> detector(new YOLOv8PoseDetector());
detector->initConfig("D:/python/my_yolov8_train_demo/yolov8n-pose.onnx", 0.25, 640,640, false);
cv::VideoCapture capture("D:/bird_test/hongyegu.mp4");
cv::Mat frame;
std::vector<YOLODetBox> results;
while (true) {
    bool ret = capture.read(frame);
    if (frame.empty()) {
        break;
    }
    detector->detect(frame, results);
    for (YOLODetBox dr : results) {
        cv::Rect box = dr.box;
        cv::putText(frame, classNames[0], cv::Point(box.tl().x, box.tl().y - 10), cv::FONT_HERSHEY_SIMPLEX, .5, cv::Scalar(0, 0, 0));
    }
    cv::imshow("OpenCV YOLOv8姿态评估", frame);
    char c = cv::waitKey(1);
    if (c == 27) { // ESC 退出
        break;
    }
    // reset for next frame
    results.clear();
}
return 0;

在这里插入图片描述

QTC++ 封装开发

然后我基于QT5 + OpenCV4.8 实现了全面界面化处理开发,知道自定义的YOLOv8对象检测一键部署,完成各种自定义对象检测功能,运行如下:

安全帽检测

在这里插入图片描述

无人机检测

在这里插入图片描述

细胞检测

在这里插入图片描述

姿态评估

在这里插入图片描述
QQ 读者交流 657875553

学习《OpenCV应用开发:入门、进阶与工程化实践》一书

做真正的OpenCV开发者,从入门到入职,一步到位!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1636862.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【C语言】——数据在内存中的存储

【C语言】——数据在内存中的存储 一、整数在内存中的存储1.1、整数的存储方式1.2、大小端字节序&#xff08;1&#xff09;大小端字节序的定义&#xff08;2&#xff09;判断大小端 1.3、整型练习 二、浮点数在内存中的存储2.1、引言2.2、浮点数的存储规则2.3、浮点数的存储过…

3. BGP 实验(一):基础实验

3.1 BGP 基础实验 3.1.1 实验介绍 3.1.1.1 学习目标 1. 实现 IBGP 的配置 2. 实现 EBGP 的配置 3. 观察 BGP 的邻居表 4. 实现 BGP 更新源的配置 5. 实现 EBGP 多跳的配置 6. 观察 IBGP 和 EBGP 中路由的下一跳的变化 3.1.1.2 实验组网介绍 设备连接方式、IP 地址规划、BGP…

用于复杂任务的 AI 编码引擎:多文件多步骤拆解实现 | 开源日报 No.239

plandex-ai/plandex Stars: 3.1k License: AGPL-3.0 plandex 是一个用于复杂任务的 AI 编码引擎。 使用长时间运行的代理完成跨多个文件且需要多个步骤的任务将大型任务分解为较小子任务&#xff0c;逐一实现&#xff0c;直至完成整个工作帮助处理积压工作、使用陌生技术、摆…

内网端口转发与代理

思路&#xff1a;渗透的前提是双方能够建立通信。目前无法和win7建立通信&#xff0c;但是拿到了windows2003的权限&#xff0c;所以可以在Windows2003主机上面建立节点&#xff0c;作为跳板机去访问到内网。 目前状态&#xff1a;控制win2003&#xff08;IP&#xff1a;192.1…

工作任务管理平台B端实战项目作品集+WebApp项目源文件 figma格式

首先&#xff0c;作品集是什么&#xff1f;通常应该包含什么内容&#xff1f;为什么大家都在做自己的作品集呢&#xff1f; 作品集是个人或公司展示其过往工作成果的集合&#xff0c;通常包括各种专案、作品或成就的范例&#xff0c;用以展示创建者的技能、经验和专业水平。 …

STM32利用硬件I2C读取MPU6050陀螺仪数据

有了前面的基本配置&#xff0c;这节读取MPU6050的数据还算是简单&#xff0c;主要就是初始化时给MPU6050一些配置&#xff0c;取消睡眠模式&#xff0c;MPU6050开机是默认睡眠模式的&#xff0c;读写无效&#xff0c;所以上来就要先更改配置&#xff1a; MPU6050寄存器初始化…

SSH远程登录实操实验!

ssh远程登录协议&#xff1a;默认端口号22 以下实验7-2是服务端&#xff0c;7-1是客户端 服务器的相关信息&#xff1a; 服务名称&#xff1a;sshd 服务端主程序&#xff1a;/usr/sbin/sshd 服务端配置文件&#xff1a;/etc/ssh/sshd_config 客户端相关信息&#xff1a; …

【学习vue 3.x】(五)VueRouter路由与Vuex状态管理

文章目录 章节介绍本章学习目标 路由的基本搭建与嵌套路由模式vue路由的搭建嵌套路由模式 动态路由模式与编程式路由模式动态路由模式编程式路由 命名路由与命名视图与路由元信息命名路由命名视图路由元信息 路由传递参数的多种方式及应用场景路由传参 详解route对象与router对…

java入门-包装类

包装类 Java语言是一个面向对象的语言&#xff0c;但是Java中的基本数据类型却是不面向对象的。基本类型的数据不具备"对象"的特性&#xff08;没有属性和方法可以调用&#xff09;&#xff0c;因此&#xff0c;java为每种数据类型分别设计了对应的类&#xff0c;即*…

生成式AI定义全新座舱体验

生成式AI定义全新座舱体验 随着人工智能技术的飞速发展&#xff0c;生成式AI作为其中的佼佼者&#xff0c;正以其独特的魅力重新定义着我们的座舱体验。本文将深入探讨生成式AI的定义、特点及其在座舱体验中的应用&#xff0c;同时分析全新座舱体验的定义、特点&#xff0c;以及…

【LeetCode刷题记录】101. 对称二叉树

101 对称二叉树 给你一个二叉树的根节点 root &#xff0c; 检查它是否轴对称。 示例 1&#xff1a; 输入&#xff1a;root [1,2,2,3,4,4,3] 输出&#xff1a;true 示例 2&#xff1a; 输入&#xff1a;root [1,2,2,null,3,null,3] 输出&#xff1a;false 提示&#xf…

三维SDMTSP:GWO灰狼优化算法求解三维单仓库多旅行商问题,可以更改数据集和起点(MATLAB代码)

一、单仓库多旅行商问题 多旅行商问题&#xff08;Multiple Traveling Salesman Problem, MTSP&#xff09;是著名的旅行商问题&#xff08;Traveling Salesman Problem, TSP&#xff09;的延伸&#xff0c;多旅行商问题定义为&#xff1a;给定一个&#x1d45b;座城市的城市集…

4-b12(汉诺塔),要求给出移动过程中每根柱子上现有的圆盘数量及编号

【要求&#xff1a;】 1、假设圆盘最大数量为10&#xff0c;其余输入格式要求同前 2、要求打印初始状态下&#xff0c;起始圆柱拥有的圆盘数及每个圆盘的编号&#xff0c;在随后的每个移动步骤中&#xff0c;打印移动完成后每个圆柱的现有的圆盘数及编号&#xff08;效果如下…

基于SSM的志愿者管理系统(含源码+sql+视频导入教程+文档+PPT)

&#x1f449;文末查看项目功能视频演示获取源码sql脚本视频导入教程视频 1 、功能描述 基于SSM的志愿者管理系统3拥有三个角色&#xff1a; 管理员&#xff1a;用户管理、志愿组织管理、注册申请观看、活动管理、报名管理、打卡管理、公告管理等 用户&#xff1a;登录注册、…

C语言----函数

1.函数的概念 函数&#xff1a;founction c语言的程序代码都是函数组成的 c语言中的函数就是一个完成某项特定的任务的一段代码&#xff0c;这段代码有特殊的写法和调用方法 c语言中我们一般见到两种函数&#xff1a; .库函数 .自定义函数 2.库函数 有对应的头文件 #i…

咸鱼之王攻略:2024强阵容搭配

欢迎来到《咸鱼之王》的世界&#xff01;作为一款集合了策略与角色扮演元素的游戏&#xff0c;本攻略将为您提供一系列关于游戏阵容搭配和咸将选择的建议&#xff0c;帮助您在游戏中更好地获得胜利。 1.了解游戏阵营 《咸鱼之王》分为四个阵营&#xff1a;魏、蜀、吴、群。每个…

什么是 Web3 的生成式 AI?

从 Web 1.0 的静态、单向通信到 Web 2.0 的动态、用户驱动的格局&#xff0c;互联网在二十年的时间里经历了一场显着的转变。现在&#xff0c;当我们站在 Web 3.0 时代的边缘时&#xff0c;我们正在见证更具颠覆性的事物的曙光&#xff1a;生成式人工智能 (AI) 融入我们的数字世…

anything-llm的嵌入式聊天小部件

anything-llm 详情移步到官方: https://github.com/Mintplex-Labs/anything-llm anything-llm可以docker启动和本地启动 例如&#xff1a;docker 启动&#xff0c; 自行去安装docker哈 cd 到docker文件夹下&#xff0c; 窗口运行&#xff1a; docker-compose up -d --build运…

数据库基础--MySQL简介以及基础MySQL操作

数据库概述 数据库&#xff08;DATABASE&#xff0c;简称DB&#xff09; 定义:是按照数据结构来组织、存储和管理数据的仓库.保存有组织的数据的容器(通常是一个文件或一组文件) 数据库管理系统(Database Management System,简称DBMS) 专门用于管理数据库的计算机系统软件;…

[1671]jsp教材管理系统Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 JSP 教材管理系统是一套完善的java web信息管理系统&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境为TOMCAT7.0,Myeclipse8.5开发&#xff0c;数据库为Mysql5.0&…