RV1126板子上跑YOLOV5目标检测模型

 1.检测模型训练

       新建训练环境:

conda create -n yolov5_train

        激活环境:

conda activate rknntk_yolov5_train

        安装安装包:

pip install -r requriments.txt

        运行 train.py

python train.py --epochs 60 --img 1280 --data dataset/dataset.yaml --weights ./yolov5s.pt --batch-size 24
  •  模型测试
python detect.py --weights ./runs/train/exp/weights/last.pt --imgsz 1280 --source ~/Videos/car.mp4
  • pt转onnx
python3 export.py --weights runs/train/exp/weights/best.pt --img 1280 --batch 1 --opset 12

2.模拟测试

GitHub - rockchip-linux/rknpuicon-default.png?t=O83Ahttps://github.com/rockchip-linux/rknpu

        新建训练环境:

conda create -n rknn_toolkit

        激活环境:

### 实现YOLOv5目标检测RV1126平台 #### 准备工作环境 为了在RV1126平台上使用Python部署和运行YOLOv5进行目标识别,首先需要准备适当的工作环境。考虑到RV1126的资源有限,在主机端完成大部分准备工作可能是更优的选择。 对于训练环境而言,建议采用Windows 10加上Miniconda的方式建立一个独立的Python 3.8环境用于后续操作[^3]: ```bash conda create -name py38 python=3.8 conda activate py38 ``` 接着安装必要的依赖库,包括但不限于PyTorch、OpenCV等支持YOLOv5所需的软件包。 #### 导出ONNX模型文件 由于直接在嵌入式设备上执行复杂的神经网络运算效率较低,通常会先将在PC端训练好的YOLOv5模型转换成适合跨平台使用的中间表示形式——ONNX格式。这一步可以通过官方提供的`export.py`脚本来达成[^2]: ```python python export.py --weights yolov5n.pt --include onnx ``` 此过程将生成`.onnx`结尾的文件,该文件即为可以在不同框架间共享的优化后的YOLOv5模型版本。 #### 将模型移植至RV1126 一旦拥有了适配良好的ONNX模型,下一步就是将其迁移到RV1126开发板上去。鉴于RV1126内置NPU加速单元的特点,应该优先考虑利用其特性来提升性能表现。然而,如果希望继续沿用Python作为编程语言,则可能面临一定挑战,因为并非所有的深度学习框架都能够在ARM架构下良好运作。 一种可行的方法是通过ADB工具连接到RV1126,并尝试在此基础上构建轻量级的应用程序接口(API),以便能够调用预处理过的YOLOv5 ONNX模型来进行实时预测。具体来说,进入FastDeploy示例目录后,可以根据实际需求调整配置参数以适应特定应用场景的要求[^1]: ```bash cd FastDeploy/examples/vision/detection/yolov5/rv1126/cpp/build/install/ ``` 值得注意的是,虽然这里提到的例子是以C++为基础编写的,但对于坚持要使用Python的情况,也可以探索其他途径比如借助TensorFlow Lite Interpreter或其他兼容Python绑定的支持NPU加速的技术方案。 #### 测试与验证 最后,在完成了上述所有步骤之后,应当编写简单的测试代码片段用来检验整个流程是否顺畅无误地实现了预期功能。例如加载已有的.onnx模型并对摄像头捕获的画面实施对象分类任务。 ```python import cv2 from rknn.api import RKNN # 初始化RKNN实例 rknn = RKNN() # 加载本地存储的ONNX模型 ret = rknn.load_onnx(model='path_to_your_model.onnx') if ret != 0: print('Load model failed!') else: # 构建RKNN模型 ret = rknn.build(do_quantization=True, dataset='./dataset.txt') if ret == 0: # 导出RKNN模型供后续使用 rknn.export_rknn('./yolov5.rknn') # 设置输入节点名称列表 input_names = ['images'] # 设定输出层名数组 output_names = ['output'] # 开始推理... img = cv2.imread('test.jpg') # 替换成实际图片路径 # 对图像数据做一些必要前处理(如缩放) out_boxes, out_scores, out_classes = rknn.inference(inputs=[img], data_format='NHWC', layout='channel_last') # 后续逻辑:解析结果并绘制边界框等可视化效果... # 清理释放资源 rknn.release() ``` 以上代码仅为示意性质,具体的API调用方式可能会有所差异,请参照最新文档说明作相应修改。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值