ubuntu18.04+OpenCV4.2+Darknet2NCNN将yolov3模型转换为Android-NCNN模型 - Go语言中文社区

ubuntu18.04+OpenCV4.2+Darknet2NCNN将yolov3模型转换为Android-NCNN模型


ubuntu18.04+OpenCV4.2+Darknet2NCNN将yolov3模型转换为ncnn模型

opencv版本3.x可能更好一些,3到4有些参数变化

一、下载darknet2ncnn

可以直接去官网下载,如果配置了gitee,也可以用命令

git clone https://github.com/xiangweizeng/darknet2ncnn.git

二、编译电脑端模型并测试

1.根据官网教程来,初始化,我未配置git所以跳过了:

cd darknet2ncnn
git submodule init
git submodule update

2.darknet2ncnn解压后,根目录下有darknet、ncnn两个文件夹,里面是空的,需要自己下载darknetncnn放进去

3.构建 darknet

cd darknet2
make -j8
rm libdarknet.so

4.构建 ncnn

# workspace darknet2ncnn
cd ncnn
mkdir build
cd build
cmake ..
make -j8
make install
cd ../../

5.构建 darknet2ncnn , convert_verify and libdarknet2ncnn.a

# workspace darknet2ncnn
make -j8

6.yolov3-tiny模型转换及验证

make yolov3-tiny.net 

转换结果,ncnn模型需要的网络和权重文件的格式:

./darknet2ncnn data/yolov3-tiny.cfg  data/yolov3-tiny.weights example/zoo/yolov3-tiny.param  example/zoo/yolov3-tiny.bin 

7.构建 example

#workspace darknet2ncnn
cd example
make -j4

注意,可能会报错:

A:因为CV_LOAD_IMAGE_COLOR在OpenCV4版本命名为:IMREAD_COLOR
修改方法:将错误参数替换为:cv::IMREAD_COLOR
在这里插入图片描述
B:CV_FILLED,这个参数可以控制输出图片识别结果标识的边框,未找到应该替换成什么枚举值,所以我直接改成参数:1 了

在这里插入图片描述8.运行yolov3-tiny

#workspace example
make yolov3-tiny.coco

9.最终结果如下:

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
三、编译Android端NCNN库文件,前提条件:已经配置了Android的SDK

官网编译教程

1.进入NCNN执行:mkdir -p build-android-arm64-v8a

根据你自己调试用的手机去选择编译的版本:‘arm64-v8a’,‘armeabi-v7a’,‘x86’,‘x86_64’

2.进入你新建的目录:cd build-android-arm64-v8a

3.编译:
cmake -DCMAKE_TOOLCHAIN_FILE=/home/zhx/Android/Sdk/ndk/21.0.6113669/build/cmake/android.toolchain.cmake -DANDROID_ABI="arm64-v8a" -DANDROID_ARM_NEON=ON ..

在这里插入图片描述4.编译:

make -j4

在这里插入图片描述
make install

在这里插入图片描述
在build-android-arm64-v8a文件夹下生成了install文件夹,它就是移植到Android端需要的库文件

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/weixin_42176639/article/details/104980090
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2020-06-27 22:59:24
  • 阅读 ( 1476 )
  • 分类:

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢