yolov5 ncnn

举报
风吹稻花香 发表于 2021/06/06 00:32:51 2021/06/06
【摘要】   c++ input_size要设置为640,即onnx导出模型输入是320, 如果onnx输入改为640,Android执行会死机。 原版是394,375,output,3.0输出是: 394,374,output,这3个是看对应onnx或者sim.onnx的输出层, {"394",32,{{116,90},{156,198},{373,32...

 

c++ input_size要设置为640,即onnx导出模型输入是320,

如果onnx输入改为640,Android执行会死机。

原版是394,375,output,3.0输出是:

394,374,output,这3个是看对应onnx或者sim.onnx的输出层,


  
  1. {"394",32,{{116,90},{156,198},{373,326}}},
  2. {"374",16,{{30,61},{62,45},{59,119}}},
  3. {"output",8,{{10,13},{16,30},{33,23}}},

举个栗子:onnx或者sim.onnx都有:

yolov5 ncnn

精简版,只有yolov5,ok

https://github.com/sunnyden/YOLOV5_NCNN_Android

 

有Android 4.0 ios,还有别的网络,比如yolov4

https://github.com/cmdbug/YOLOv5_NCNN

https://github.com/WZTENG/YOLOv5_NCNN

步骤:

1.torch转onnx

2.

 ./onnx2ncnn crnn_lite_lstm_v2-sim.onnx crnn_lite_lstm_v2.param crnn_lite_lstm_v2.bin
 

 如果报层不支持,

pip install onnx-simplifier  pip install  onnxruntime

2、onnx再精简模型python -m onnxsim c:/resnet50.onnx c:/resnet50-sim.onnx

这个如果报错:

第二步:

 

python -m onnxsim _0.9628_1471.onnx crnn_lstm_ex.onnx

E:\project\hjam\ncnn\build-vs2017\tools\onnx\onnx2ncnn.exe crnn_lstm_ex.onnx yolov5s_out.param yolov5s_out.bin


(base37) C:\WINDOWS\system32>python -m onnxsim I:\OCR\chineseocr_lite-onnx\models\crnn_lstm.onnx I:\OCR\chineseocr_lite-onnx\models\crnn_lstm_ex.onnx
Simplifying...
Traceback (most recent call last):
File "E:\ProgramData\Anaconda3\envs\base37\lib\runpy.py", line 193, in run_module_as_main
"main", mod_spec)
File "E:\ProgramData\Anaconda3\envs\base37\lib\runpy.py", line 85, in run_code
exec(code, run_globals)
File "E:\ProgramData\Anaconda3\envs\base37\lib\site-packages\onnxsim_main.py", line 52, in
main()
File "E:\ProgramData\Anaconda3\envs\base37\lib\site-packages\onnxsim_main.py", line 40, in main
args.input_model, check_n=args.check_n, perform_optimization=not args.skip_optimization, skip_fuse_bn=not args.enable_fuse_bn, input_shapes=input_shapes, skipped_optimizers=args.skip_optimizer, skip_shape_inference=args.skip_shape_inference)
File "E:\ProgramData\Anaconda3\envs\base37\lib\site-packages\onnxsim\onnx_simplifier.py", line 331, in simplify
model, const_nodes, input_shapes=input_shapes)
File "E:\ProgramData\Anaconda3\envs\base37\lib\site-packages\onnxsim\onnx_simplifier.py", line 172, in forward_for_node_outputs
res = forward(model, input_shapes=input_shapes)
File "E:\ProgramData\Anaconda3\envs\base37\lib\site-packages\onnxsim\onnx_simplifier.py", line 157, in forward
inputs = generate_rand_input(model, input_shapes=input_shapes)
File "E:\ProgramData\Anaconda3\envs\base37\lib\site-packages\onnxsim\onnx_simplifier.py", line 108, in generate_rand_input
'please determine the input size manually by --input-shape xxx'.format(key))
RuntimeError: The shape of input "input" has dynamic size, please determine the input size manually by --input-shape xxx

 

使用onnx_simplify时,--input-shape 参数应该怎么写,上面使用时,没写--input-shape参数
输入尺寸没写,才会这样,写了输入尺寸就可以转换了。

 

文章来源: blog.csdn.net,作者:网奇,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/jacke121/article/details/109301164

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。