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端需要的庫文件

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章