Paddle 【Hackathon第三期】任务80在瑞星微开发板上部署模型

mmvthczy  于 2022-11-13  发布在  其他
关注(0)|答案(7)|浏览(198)

【Hackathon第三期】任务80
任务80的OCR应用中,三个模型的输入图片分别经过预处理送入模型,每个模型各自的输入都是动态的,第一个模型的预处理仅做了32对齐,第三个模型根据检测出来的字符数量决定输入模型的字符图片长度,onnx模型的输入都是动态的。
咨询过瑞星微的技术人员后确认瑞星微的RKNN模型转换不支持动态的batch和动态的shape,无法实现功能。

xzv2uavs

xzv2uavs1#

Hi,@133dzs

尝试一下使用这个命令来固定onn模型的shape https://github.com/PaddlePaddle/Paddle2ONNX#%E5%91%BD%E4%BB%A4%E8%A1%8C%E8%BD%AC%E6%8D%A2

python -m paddle2onnx.optimize --input_model model.onnx \
                               --output_model new_model.onnx \
                               --input_shape_dict "{'x':[1,3,224,224]}"
iqxoj9l9

iqxoj9l92#

您好,onnx模型的输入可以比较简单地修改,但是固定的输入shape无法满足实际应用的需求,送入模型的图片的尺寸是动态的,即时固定了送入检测模型的图片大小,分类模型的输入大小也会根据检测到的字符数量变化,所以分类模型的输入必须动态。问题是瑞星微的模型转换不支持动态输入

4smxwvx5

4smxwvx53#

可以去PaddleOCR咨询一下,如何固定每个模型的输入大小。我想应该是有方式解决的

lf5gs5x2

lf5gs5x25#

您好,onnx模型的输入可以比较简单地修改,但是固定的输入shape无法满足实际应用的需求,送入模型的图片的尺寸是动态的,即时固定了送入检测模型的图片大小,分类模型的输入大小也会根据检测到的字符数量变化,所以分类模型的输入必须动态。问题是瑞星微的模型转换不支持动态输入

这个问题之前讨论过,RKNN只支持静态图,当时商量出来的替代方案是分档为几个级别的静态模型,比如动态输入范围在1到10,分为输入为3,6,10的三个静态模型。

3lxsmp7m

3lxsmp7m6#

请问这个**“动态输入范围在1到10,分为输入为3,6,10的三个静态模型”**
是指batch还是shape呢?rknn对多batch的支持不是很好,实际模型转换时可能需要batch=1。而且由于不支持动态shape,目前是通过把所有输入通过补0的方式调整到一个指定的较大shape,实际推理过程中会出现原本(1,3,32,60)的输入被补到(1,3,32,660)的情况,性能上的损失较明显

相关问题