SS928(SD3403) yolov8 移植

一、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移植-环境搭建

### 关于海思SD3403SS928芯片与MobileNet模型的兼容性和应用 #### MobileNet模型概述 MobileNet 是一种专门为移动设备设计的小型卷积神经网络架构,旨在实现高效计算的同时保持较高的准确性。该系列模型通过引入深度可分离卷积来减少参数数量并加速推理过程。 #### 海思SD3403/SS928芯片特性 海思SD3403/SS928是一款专为监控市场打造的专业Ultra-HD智能IP摄像机SOC,具备强大的视频处理能力和集成度高的特点[^1]。这类SoC通常集成了NPU(神经网络处理器),用于支持AI算法运行,特别是图像识别类任务。 #### 兼容性分析 鉴于海思SD3403/SS928内置有专门针对视觉处理优化过的硬件单元以及可能存在的专用AI加速器,理论上能够很好地适配像MobileNet这样轻量级且高效的CNN结构。具体来说: - **资源消耗低**:由于MobileNet本身的设计理念就是降低运算复杂度,在功耗敏感的应用场景下非常适合部署到此类嵌入式平台上; - **实时性强**:借助SoC内部高性能DSP/NPU的支持,可以满足大多数情况下对于快速响应的要求; - **灵活性高**:即使默认配置不完全匹配需求,也可以通过对固件编程调整以适应特定应用场景下的性能表现; 因此,基于上述几点理由,可以说海思SD3403/SS928与MobileNet之间存在良好的兼容性基础,并能在实际项目中发挥各自优势达成预期效果。 #### 实际应用案例 在安防监控领域内,利用这两者的组合可以帮助构建更加智能化的安全防护体系。例如,可以通过训练好的MobileNet模型来进行人员检测、行为分析等功能扩展,从而提升整个系统的实用价值和服务水平。 ```python import tensorflow as tf from PIL import Image import numpy as np # 加载预训练的MobileNet模型 model = tf.keras.applications.MobileNetV2(weights='imagenet') def preprocess_image(image_path): img = Image.open(image_path).resize((224, 224)) array = np.array(img) / 255. input_batch = array[np.newaxis, ...] return input_batch image_data = preprocess_image('test.jpg') predictions = model.predict(image_data) print(predictions) ``` 此代码片段展示了如何加载一个预先训练好的MobileNet V2模型并对输入图片数据进行预测操作。虽然这段Python脚本主要用于说明目的而非直接适用于目标平台,但它提供了一个基本框架供开发者参考以便移植至具体的嵌入式环境中执行相似的任务逻辑。
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱爬山的木木

佛系111

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值