使用rknn-toolkit2把YOLOV5部署到OK3588上(七)

使用rknn-toolkit2把YOLOV5部署到OK3588上

虚拟环境搭建

首先在PC的ubuntu系统安装虚拟环境:
我的服务器是ubuntu18.04版本,所以安装python3.6
conda create -n ok3588 python=3.6
需要键盘输入y,然后完成虚拟环境安装。
其他系统的对应关系:
Ubuntu 18.04 python 3.6 / Ubuntu 20.04 python 3.8 / Ubuntu 22.04 python 3.10

软件包安装

进入虚拟环境
conda activate ok3588
首先安装正确的pip版本
curl https://bootstrap.pypa.io/pip/3.6/get-pip.py | python -
下载github 项目
git clone https://github.com/rockchip-linux/rknn-toolkit2
cd rknn-toolkit2/doc
pip install -r requirements_cp36-1.5.0.txt -i https://mirror.baidu.com/pypi/simple
cd rknn-toolkit2/packages
pip install rknn_toolkit2-1.5.0+1fa95b5c-cp36-cp36m-linux_x86_64.whl

在PC机上运行yolov5目标检测

cd rknn-toolkit2/examples/onnx/yolov5
python test.py
截图如下
在这里插入图片描述
推理前的图片:
在这里插入图片描述
推理后加上box的图片:
在这里插入图片描述
推理代码和注释:

if __name__ == '__main__':

    # Create RKNN object
    rknn = RKNN(verbose=True)

    # pre-process config  配置数据参数
    print('--> Config model')
    rknn.config(mean_values=[[0, 0, 0]], std_values=[[255, 255, 255]])
    print('done')

    # Load ONNX model 导入模型
    print('--> Loading model')
    ret = rknn.load_onnx(model=ONNX_MODEL)
    if ret != 0:
        print('Load model failed!')
        exit(ret)
    print('done')

    # Build model 创建模型
    print('--> Building model')
    ret = rknn.build(do_quantization=QUANTIZE_ON, dataset=DATASET)
    if ret != 0:
        print('Build model failed!')
        exit(ret)
    print('done')

    # Export RKNN model 导出RKNN模型
    print('--> Export rknn model')
    ret = rknn.export_rknn(RKNN_MODEL)
    if ret != 0:
        print('Export rknn model failed!')
        exit(ret)
    print('done')

    # Init runtime environment 初始化runtime环境
    print('--> Init runtime environment')
    ret = rknn.init_runtime()
    # ret = rknn.init_runtime('rk3588')
    if ret != 0:
        print('Init runtime environment failed!')
        exit(ret)
    print('done')

    # Set inputs
    img = cv2.imread(IMG_PATH)
    # img, ratio, (dw, dh) = letterbox(img, new_shape=(IMG_SIZE, IMG_SIZE))
    img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
    img = cv2.resize(img, (IMG_SIZE, IMG_SIZE))

    # Inference 模型推理
    print('--> Running model')
    outputs = rknn.inference(inputs=[img])
    np.save('./onnx_yolov5_0.npy', outputs[0])
    np.save('./onnx_yolov5_1.npy', outputs[1])
    np.save('./onnx_yolov5_2.npy', outputs[2])
    print('done')

    # post process
    input0_data = outputs[0]
    input1_data = outputs[1]
    input2_data = outputs[2]

    input0_data = input0_data.reshape([3, -1]+list(input0_data.shape[-2:]))
    input1_data = input1_data.reshape([3, -1]+list(input1_data.shape[-2:]))
    input2_data = input2_data.reshape([3, -1]+list(input2_data.shape[-2:]))

    input_data = list()
    input_data.append(np.transpose(input0_data, (2, 3, 0, 1)))
    input_data.append(np.transpose(input1_data, (2, 3, 0, 1)))
    input_data.append(np.transpose(input2_data, (2, 3, 0, 1)))

    boxes, classes, scores = yolov5_post_process(input_data)#识别结果后处理

    img_1 = cv2.cvtColor(img, cv2.COLOR_RGB2BGR)
    if boxes is not None:
        draw(img_1, boxes, scores, classes)
        cv2.imwrite('result.jpg', img_1)

    rknn.release()
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
RKNN-Toolkit2是一个用于在Rockchip AI芯片上进行深度学习推理的工具包。它提供了一系列工具和API,用于将训练好的模型转换为RKNN格式,并在Rockchip AI芯片上进行推理。 使用RKNN-Toolkit2,您可以完成以下任务: 1. 模型转换:将训练好的模型转换为RKNN格式,以便在Rockchip AI芯片上进行推理。 2. 模型优化:对模型进行优化,以提高推理性能和准确性。 3. 模型部署:将转换和优化后的模型部署到Rockchip AI芯片上进行推理。 4. 推理测试:在rknn-toolkit2提供的模拟器中进行推理测试,以验证模型的性能和准确性。 以下是使用RKNN-Toolkit2的一些示例步骤: 1. 安装RKNN-Toolkit2:请参考引用中提供的安装教程,按照步骤安装RKNN-Toolkit2。 2. 准备模型:准备一个训练好的模型,可以是常见的深度学习框架(如TensorFlow、PyTorch)训练的模型。 3. 模型转换:使用RKNN-Toolkit2将模型转换为RKNN格式。根据您的模型类型和需求,可以选择不同的转换方法和参数进行转换。 4. 模型优化:根据您的需求,使用RKNN-Toolkit2对转换后的模型进行优化,以提高推理性能和准确性。 5. 模型部署:将优化后的模型部署到Rockchip AI芯片上进行推理。根据您的硬件环境和需求,可以选择不同的部署方式和参数进行部署。 6. 推理测试:使用rknn-toolkit2提供的模拟器,在模拟环境中进行推理测试,以验证模型的性能和准确性。 请注意,具体的步骤和参数可能因您的具体需求和环境而有所不同。建议您参考RKNN-Toolkit2的官方文档和示例代码,以获取更详细的信息和指导。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值