一、Conda环境安装Yolov8
Yolov8开源地址路径如下:https://github.com/ultralytics/ultralytics.git,工程Readme描述需要requirements in a Python>=3.8 environment with PyTorch>=1.8.
所以我们安装conda虚拟环境如下
conda create -n yolov8 python=3.10.12
conda activate yolov8
pip install --upgrade pip -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install -r requirements_yolov8.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install ultralytics -i https://pypi.tuna.tsinghua.edu.cn/simple
requirements_yolov8.txt
# Usage: pip install -r requirements_yolov8.txt
# Base ----------------------------------------
matplotlib>=3.2.2
numpy>=1.21.6
opencv-python>=4.6.0
Pillow>=7.1.2
PyYAML>=5.3.1
requests>=2.23.0
scipy>=1.4.1
torch==2.1.0
torchvision==0.16.0
tqdm>=4.64.0
# Plotting ------------------------------------
pandas>=1.1.4
seaborn>=0.11.0
# Export --------------------------------------
onnx>=1.12.0 # ONNX export
onnxsim>=0.4.1 # ONNX simplifier
# Extras --------------------------------------
psutil # system utilization
thop>=0.1.1 # FLOPs computation
ninja
二、下载Yolov8 源代码
git clone https://github.com/ultralytics/ultralytics.git
因为上面有通过pip安装ultralytics,可以用yolo xxx的命令方式直接执行推理
三、导出onnx模型
首先进入ultralytics目录,执行pyton3,输入下面命令
from ultralytics import YOLO
model = YOLO("yolov8n.pt")
success = model.export(format="onnx", opset=11)
python会自动把yolov8n.pt模型下载到ultralytics目录,export的时候,需要指定opset=11,主要是因为3403 NPU 支持了这个版本,如果不是该版本,可能会导致atc工具执行失败
四、onnx转om文件
source $HOME/Ascend/ascend-toolkit/latest/x86_64-linux/bin/setenv.bash
atc --model=yolov8n.onnx --framework=5 --output=yolov8n --soc_version="OPTG" --output_type=FP32 --insert_op_conf=./op.cfg
ATC工具的安装请参考前面都是视频教程
https://www.bilibili.com/video/BV1uH4y1u7FV/
op.cfg文件内容
aipp_op {
aipp_mode : static
related_input_rank : 0
max_src_image_size : 1228800
support_rotation : false
input_format : YUV420SP_U8 # RGB888_U8
src_image_size_w : 640
src_image_size_h : 640
cpadding_value: 0.0
# 输⼊图⽚为RGB格式,⽆需⾊域转换
csc_switch : true
# 输⼊图⽚已转换为RGB格式,⽆需R通道与B通道交换
rbuv_swap_switch : false
ax_swap_switch : false
# YUV420SP_U8 转 RGB 输⼊数据为 BT-601NARROW 视频
matrix_r0c0 : 256
matrix_r0c1 : 0
matrix_r0c2 : 359
matrix_r1c0 : 256
matrix_r1c1 : -88
matrix_r1c2 : -183
matrix_r2c0 : 256
matrix_r2c1 : 454
matrix_r2c2 : 0
input_bias_0 : 0
input_bias_1 : 128
input_bias_2 : 128
# no crop
crop : false
load_start_pos_h : 0
load_start_pos_w : 0
crop_size_w : 640
crop_size_h : 640
# 均值计算 : 255x[0.0, 0.0, 0.0], ⽅差倒数计算 : 1/[255x[1.0, 1.0, 1.0]]
min_chn_0 : 0.0
min_chn_1 : 0.0
min_chn_2 : 0.0
var_reci_chn_0 : 0.0039215686274509803921568627451
var_reci_chn_1 : 0.0039215686274509803921568627451
var_reci_chn_2 : 0.0039215686274509803921568627451
}
五、视频操作教程如下
1海思SS928(3403)YOLOV8移植-环境搭建