yolov3-tiny:Android端基于darknet2ncnn之实现一
经过一段时间的反复摸索,终于在Android端基于darknet2ncnn的框架实现了yolov3-tiny,一张图片的检测时间为500ms以内,基本满足需求,下面会进一步优化,接下来我将自己的实现过程和大家分享下,我将分几个部分分享,同时也欢迎大家关注我 的微信公众号“机器视觉交流社”或个人微信号“LuckyZiXiao”进行交流。
一、下载并编译darknet2ncnn
1、git clone 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
#workspace darknet2ncnn
cd ../../
make -j8
6、yolov3-tiny模型转换及验证
#workspace darknet2ncnn
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
8、运行yolov3-tiny
#workspace example
make yolov3-tiny.coco
至此PC端的验证已经结束。下面接着分享Android端的实现过程。
二、编译Androoid端ncnn库文件
主要步骤和之前编译pc端的库一样,只是编译需要的cmkefile不一样。
#workspace ncnn
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文件编译其相应的库。