引用
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,
运行
|