YOLOv5-pytorch迁移至android

本文详细记录了将YOLOv5模型从pytorch转换为onnx,再转为ncnn,并最终部署在Android的过程。涉及关键步骤包括pytorch到onnx的转换、onnx到ncnn的编译与转换,以及在Android上处理动态尺寸输入和解决真机测试卡死的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文记录了yolov5迁移至android的详细过程
流程三步走:1、pytorch转换成onnx; 2、onnx转换成ncnn;3、在android部署ncnn。
在此感谢逝去的头发 o(╥﹏╥)o

一、pytorch -> onnx

1、 打开yolov5/models/export.py,修改红色框路径
在这里插入图片描述
转换后我们得到 best.onnx
2、去掉onnx模型的冗余维度

pip install onnx-simplifier
python -m onnxsim best.onnx best-sim.onnx

至此我们得到简化后的onnx模型文件:best-sim.onnx

二、onnx -> ncnn

1、windows下编译ncnn(血与泪的回忆)

windows下编译ncnn官方教程
①、需要安装的依赖库:
* ncnn
* vs2019
* protobuf-3.4.0
* opencv
②、选择git clone或zip download下载ncnn源码
③、在vs2019的本机工具命令提示符里编译
开始 → Visual Studio 2019→ Visual Studio Tools → x64 Native Tools Command Prompt for VS 2019
④、编译protobuf

cd protobuf-3.4.0
> mkdir build
> cd build
> cmake -G"NMake Makefiles" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=%cd%/install -Dprotobuf_BUILD_TESTS=OFF -Dprotobuf_MSVC_STATIC_RUNTIME=OFF ../cmake
> nmake
> nmake install

⑤、编译ncnn

 cd ncnn-master
> mkdir -p build
> cd build
> cmake -G"NMake Makefiles" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=%cd%/install -DProtobuf_INCLUDE_DIR=../../protobuf-3.4.0/build/install/include -DProtobuf_LIBRARIES=../../protobuf-3.4.0/build/install/lib/libprotobuf.lib -DProtobuf_PROTOC_EXECUTABLE=../../protobuf-3.4.0/build/install/bin/protoc.exe -DNCNN_VULKAN=OFF ..
> nmake
> nmake install

✿ヽ(°▽°)ノ✿编译成功后,在ncnn-master/build/tools/onnx下有可执行文件onnx2ncnn.exe
注:
(1)ncnn的cmake步骤注意修改protobuf路径(当前路径在ncnn的build下)
(2)错误信息:

The submodules were not downloaded! Please update submodules with "git submodule update --init" and try again.

解决:官方Git里cmake语句 -DNCNN_VULKAN=ON,改成OFF
(3)错误信息:

could not find opencv

解决:在CmakeLists.txt里添加opencv路径
set(OpenCV_DIR D:/opencv/build)

评论 19
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值