目录
一、依赖安装
sudo apt-get install -y gfortran
sudo apt-get install -y libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler
sudo apt-get install -y --no-install-recommends libboost-all-dev
sudo apt-get install -y libgflags-dev libgoogle-glog-dev liblmdb-dev libatlas-base-dev
二、下载并编译ncnn
git clone git://github.com/Tencent/ncnn
cd ncnn
mkdir build
cd build
cmake ..
make -j8
make install
扫描二维码关注公众号,回复:
13648817 查看本文章
三、测试yolov4
利用darknet2ncnn生成param和bin文件
先下载yolov4项目:
git clone git://github.com/AlexeyAB/darknet.git
准备yolov4.cfg和yolov4.weights
cfg在v4项目根目录下的cfg文件夹下,weights模型下载地址:https://github.com/AlexeyAB/darknet/releases/download/darknet_yolo_v3_optimal/yolov4.weights
生成param和bin文件
上边ncnn根目录下创建Model文件夹,把cfg和weights两个文件copy到Model下,然后到上边编译出来的目录下
cd 你的ncnn目录/ncnn/build/tools/darknet
./darknet2ncnn ../../../Model/yolov4.cfg ../../../Model/yolov4.weights ../../../Model/yolov4.param ../../../Model/yolov4.bin
这样就在Model目录下生成了param和bin文件:
ncnnoptimize优化
cd ../../../Model
../build/install/bin/ncnnoptimize yolov4.param yolov4.bin yolov4-opt.param yolov4-opt.bin 65536
测试
Model目录下把param和bin文件拿过来并重命名(yolov4里调用的名字)
mv yolov4-opt.bin yolov4-tiny-opt.bin
mv yolov4-opt.param yolov4-tiny-opt.param
然后复制到build/example目录下
找一张图片放到examples目录下然后
cd ../build/examples
./yolov4 000000024021.jpg
因为我的ubuntu没有桌面不能imshow结果,会包如此提示:
...Can't initialize GTK backend in function 'cvInitSystem...
因此我们改一下脚本重新编译ncnn,我们这里改yolov4.cpp,在ncnn根目录下的example下,把imshow注释,咱们给他imwrite一下:
重新编译完后再次测试build/example下的yolov4,图片会生成在当前目录:
3.01ms,真是爽的一匹~