社区微信群开通啦,扫一扫抢先加入社区官方微信群
社区微信群
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两个文件夹,里面是空的,需要自己下载darknet和ncnn放进去
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端需要的库文件
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!