ncnn是腾讯开源的一个针对手机端的cnn框架,本文介绍如何在Ubuntu14.04上安装并使用ncnn。
安装protobuf
下载protobuf源代码
sudo apt-get install autoconf automake libtool curl
git clone https://github.com/google/protobuf
cd protobuf
然后修改autogen.sh,这里需要注意的是gmock由于网络的原因无法下载,需要我们从别的地方下载好然后放到protobuf文件夹中,并修改autogen.sh中相应的内容,然后运行autogen.sh。
编译与安装protobuf
./configure
make
make check
sudo make install
sudo ldconfig
默认的安装路径是/usr/local/lib。
编译ncnn
下载并编译ncnn
git clone https://github.com/Tencent/ncnn
cd ncnn
mkdir build && cd build
cmake ..
make -j
make install
这时在build/tools文件夹下有可执行文件caffe2ncnn和ncnn2mem,其作用分别是将caffe模型转成ncnn模型以及对ncnn模型进行加密。
ncnn的demo
先安装OpenCV,这里不详细介绍,可以参考网上已有的opencv安装脚本Install-Opencv-Master。
进入ncnn/examples
自己编写一个Makefile文件
NCNN = /home/jingao/ncnn
OPENCV = /home/jingao/Downloads/opencv-2.4.10
INCPATH = -I${NCNN}/build/install/include \
-I${OPENCV}/modules/objdetect/include \
-I${OPENCV}/modules/highgui/include \
-I${OPENCV}/modules/imgproc/include \
-I${OPENCV}/modules/core/include
LIBS = -lopencv_core -lopencv_highgui -lopencv_imgproc \
-fopenmp -pthread
LIBPATH = -L${OPENCV}/lib
squeezenet:squeezenet.cpp
$(CXX) $(INCPATH) $(LIBPATH) $^ ${NCNN}/build/install/lib/libncnn.a $(LIBS) -o $@
然后make,即可得到可执行文件squeezenet,
运行
squeezenet test.jpg
即可得到图像的分类结果。
参考
http://www.linuxidc.com/Linux/2016-01/127505.htm
http://blog.csdn.net/best_coder/article/details/76201275
网友评论