目录

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 格式

参考文献:

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐