基于YOLOv8的OpenCV部署(C++)

22 篇文章 0 订阅 ¥49.90 ¥99.00

目录

一、安装yolov8

二、导出onnx

三、基于opencv CPP推理onnx


一、安装yolov8

conda create -n yolov8 python=3.9 -y
conda activate yolov8
pip install ultralytics -i https://pypi.tuna.tsinghua.edu.cn/simple

二、导出onnx


导出onnx格式模型的时候,注意,如果你是自己训练的模型,只需要把以下代码中yolov8s.pt修改为自己的模型即可,如best.pt。如果是下面代码中默认的模型,并且你没有下载到本地,系统会自动下载,我这里在文章末尾提供了下载链接。

将以下代码创建、拷贝到yolov8根目录下。

具体代码my_export.py:

from ultralytics import YOLO
# Load a model
model = YOLO('yolov8n.pt')  # load an official model
# Export the model
model.export(format='onnx', imgsz=[480, 640], opset=12) # 导出一定不要修改这里参数

执行导出命令:

python my_export.py

输出如下图信息,表明onnx格式的模型被成功导出,保存在my_export.py同一级目录

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
yolov5是一种目标检测算法,而OpenCV是一个开源计算机视觉库。在使用yolov5模型进行目标检测时,可以使用OpenCV来进行模型的部署。具体的步骤如下: 1. 首先,确保你已经安装了OpenCV库。你可以从官方网站下载并安装OpenCV,也可以使用包管理器来进行安装。 2. 下载yolov5模型的权重文件和配置文件。你可以从官方的yolov5仓库中获取这些文件。 3. 使用OpenCV的DNN模块加载yolov5模型。首先,你需要使用dnn::readNet()函数加载模型的配置文件和权重文件。然后,你可以通过设置模型的前端和后端来选择使用哪种深度学习框架和硬件加速器。最后,使用模型的forward()函数对图像进行推理,得到目标检测的结果。 4. 处理目标检测的结果。OpenCV提供了一系列的函数来解析和绘制目标检测的结果,例如获取检测到的目标的坐标、类别和置信度,并将其绘制在图像上。 下面是一个示例代码,展示了如何使用OpenCV的DNN模块进行yolov5模型的部署: ``` #include <iostream> #include <opencv2/opencv.hpp> #include <opencv2/dnn.hpp> using namespace std; using namespace cv; using namespace dnn; int main() { // 加载模型 Net net = readNet("yolov5.weights", "yolov5.cfg"); // 设置前端和后端 net.setPreferableBackend(DNN_BACKEND_DEFAULT); net.setPreferableTarget(DNN_TARGET_CPU); // 读取图像 Mat image = imread("image.jpg"); // 对图像进行预处理 Mat blob = blobFromImage(image, 1.0, Size(416, 416), Scalar(0, 0, 0), true, false); // 设置输入 net.setInput(blob); // 进行推理 Mat detection = net.forward(); // 处理目标检测结果 for (int i = 0; i < detection.rows; i++) { float confidence = detection.at<float>(i, 4); if (confidence > 0.5) { int x = detection.at<float>(i, 0) * image.cols; int y = detection.at<float>(i, 1) * image.rows; int width = detection.at<float>(i, 2) * image.cols; int height = detection.at<float>(i, 3) * image.rows; rectangle(image, Point(x, y), Point(x + width, y + height), Scalar(0, 255, 0), 2); } } // 显示结果 imshow("Detection", image); waitKey(0); return 0; } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值