
经过一段时间的反复摸索,终于在Android端基于darknet2ncnn的框架实现了yolov3-tiny,一张图片的检测时间为500ms以内,基本满足需求,下面会进一步优化,接下来我将自己的实现过程和大家分享下,我将分几个部分分享,同时也欢迎大家关注我的微信公众号“机器视觉交流社”或个人微信号“LuckyZiXiao”进行交流。
一、下载并编译darknet2ncnn
1、gitclone https://gitee.com/damone/darknet2ncnn.git

2、初始化ncnn和darknet
cd darknet2ncnn
git submodule init
git submodule update

3、构建darknet
cd darknet
make -j8
rm libdarknet.so

4、构建ncnn
cd ncnn
mkdir build
cmake..
make-j8
make install



5、构建darknet2ncnn
#workspacedarknet2ncnn
cd ../../
make -j8

6、yolov3-tiny模型转换及验证
#workspacedarknet2ncnn
make http://yolov3-tiny.net

注意:这里已经得到了ncnn模型需要的网络和权重文件的格式。
./darknet2ncnndata/yolov3-tiny.cfg data/yolov3-tiny.weights example/zoo/yolov3-tiny.param example/zoo/yolov3-tiny.bin
7、构建example
#workspacedarknet2ncnn
cd example
make -j4

8、运行yolov3-tiny
#workspaceexample
make yolov3-tiny.coco


至此PC端的验证已经结束。下面接着分享Android端的实现过程。
二、编译Androoid端ncnn库文件
主要步骤和之前编译pc端的库一样,只是编译需要的cmkefile不一样。
#workspacencnn
mkdir -p build-android-armv7
cd build-android-armv7
cmake -DCMAKE_TOOLCHAIN_FILE=/home/lw/Android/Sdk/
ndk-bundle/build/cmake/android.toolchain.cmake
-DANDROID_ABI="armeabi-v7a"
-DANDROID_ARM_NEON=ON ..

make -j4
make install

执行完上述命令后,可以看到在build-android-armv7文件夹下生成了install文件夹,它就是移植到Android端需要的库文件。
今天的分享就到这里,接下来会大家继续分享构建运行yolov3-tiny的Android工程,以及运用cmakefile文件编译其相应的库。
https://u.wechat.com/EOT-OJt-mtjAnmLFHC3r8qw (二维码自动识别)