yolov8转onnx再转ncnn

目录

1. yolov8的安装

2. 数据集的训练和预测

2.1 数据集的训练

2.2 数据集的预测

3. 模型转换成ncnn

3.1 安装必须库

3.2 转换

参考文献:


前提:ubuntu20.04, python3.9

1. yolov8的安装

yolov8 官方说明Home - Ultralytics YOLOv8 Docs

yolov8 官方仓库: https://github.com/ultralytics/ultralytics

anaconda官网网址下载: Anaconda | The World’s Most Popular Data Science Platform

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

2. 数据集的训练和预测

coco数据集与其他数据格式的转换

GitHub - RapidAI/YOLO2COCO: A set of tools for converting a yolov5 format dataset to COCO format working with yolov5, yolox and yolov6. 

2.1 数据集的训练

from ultralytics import YOLO


model = YOLO("xxx/weights/yolov8n.pt")
results = model.train(data="/xxx/train_cfg.yaml", epochs=100, batch=4)
# train_cfg.yaml coco 

train: /xxx/dataSet/train.txt  # train images 
val: //xxx/val.txt  # val images 
test: //xxx/test.txt  # 

# Classes
nc: 2  # number of classes
names: ['apple', 'orange']

2.2 数据集的预测

from ultralytics import YOLO
import os
import cv2
# Load a model
model = YOLO("/xxx/weights/best.pt") 

# Use the model
path = "/xxx/test"
inputs = list()
for i_name in os.listdir(path):
    i_path = os.path.join(path, i_name)
    i_img = cv2.imread(i_path, 1)
    inputs.append(i_img)

model.predict(inputs, save=True, imgsz=320, conf=0.25)

3. 模型转换成ncnn

3.1 安装必须库

# 安装 onnx, onnxsim, ncnn
conda activate yolov8
pip install onnx -i https://pypi.doubanio.com/simple
pip install onnxsim -i https://pypi.doubanio.com/simple
cd /home/xxy
git clone https://github.com/Tencent/ncnn.git
cd ncnn
mkdir build && cd build
cmake ..
make
make install

3.2 转换

# 使用 onnx, onnxsim, ncnn
cd /xxx/ultralytics/runs/detect/${train_xxx}/weights
conda activate yolov8

# pt -> onnx
python export.py 

# onnx -> onnxsim
python3 -m onnxsim best.onnx best-sim.onnx

# onnxsim -> ncnn
cd /xxxy/ncnn/build/tools/onnx
./onnx2ncnn /xxx/best-sim.onnx /xxx/best-sim.param /xxx/best-sim.bin
# export.py
from ultralytics import YOLO
model = YOLO("/xxx/ultralytics/runs/detect/${train_xxx}/weights/best.pt")
success = model.export(format="onnx")  # 将模型导出为 ONNX 格式

参考文献:

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值