为了将yolo模型部署到rk3588上,需要采用以下操作进行模型转换:
from rknn.api import RKNN
import cv2
import numpy as np
from tqdm import tqdm
def export_rknn_inference(img, model_path, rknn_path):
# Create RKNN object
rknn = RKNN(verbose=True)
# pre-process config
print('--> Config model')
rknn.config(target_platform='rk3588')
print('done')
# Load ONNX model
print('--> Loading model')
ret = rknn.load_onnx(model=model_path)
if ret != 0:
print('Load model failed!')
exit(ret)
print('done')
# Build model
print('--> Building model')
ret = rknn.build(do_quantization=False, rknn_batch_size=1) # 移除 dataset 参数
if ret != 0:
print('Build model failed!')
exit(ret)
print('done')
# Export RKNN model
print('--> Export rknn model')
ret = rknn.export_rknn(rknn_path)
if ret != 0:
print('Export rknn model failed!')
exit(ret)
print('done')
# Init runtime environment
print('--> Init runtime environment')
ret = rknn.init_runtime(target=None, device_id=None, perf_debug=True)
if ret != 0:
print('Init runtime environment failed!')
exit(ret)
print('done')
# Inference
print('--> Running model')
outputs = rknn.inference(inputs=[img])
rknn.release()
print('done')
return outputs
if __name__ == '__main__':
print('This is main ....')
# Set inputs
img_path = '001.jpg'
model_input_w = 640
model_input_h = 480
model_path = './twoStream.onnx'
rknn_path = './twoStream.rknn'
# origimg = cv2.imread(img_path)
# origimg = cv2.cvtColor(origimg, cv2.COLOR_BGR2RGB)
# img = cv2.resize(origimg, (model_input_w , model_input_h ))
# 初始化一个空列表
imgs = []
# 读取图像并添加到列表中
img1 = cv2.imread('00013.jpg')
img2 = cv2.imread('00014.jpg')
if img1 is not None and img2 is not None:
if img1.shape[:2] == img2.shape[:2]:
imgs.append(img1)
imgs.append(img2)
# 沿着第三个轴拼接图像
result = np.concatenate(imgs, axis=2)
else:
print("图像尺寸不一致,无法拼接。")
else:
print("图像读取失败,请检查文件路径。")
# origimg = cv2.cvtColor(imgs, cv2.COLOR_BGR2RGB)
# img = cv2.resize(imgs, (model_input_w , model_input_h ))
img = np.expand_dims(imgs, axis=0) # 添加batch维度
outputs = export_rknn_inference(img, model_path, rknn_path)
print("outputs:", outputs)

3082

被折叠的 条评论
为什么被折叠?



