腾讯ncnn官方github下载地址为:https://github.com/Tencent/ncnn
github上有一个配置好的vs2015版本ncnn:https://github.com/guozhongluo/ncnn-vs2015-examples-demo
1、框架编译
可以直接下载这个vs2015版本的ncnn,下载完之后打开。
这里需要你提前配置好opencv,那个版本无所谓,然后用vs2015打开ncnn-vs2015-examples-demo-master工程,打开之后会报一堆错误,因为你引入的头文件路径不对,右键项目,右键单击属性,如图1所示。
图1
然后,点击C/C++ => 常规 => 附加包含目录,如图2所示。
图2
点击下拉三角形,修改为如下内容,如图3所示。
图3
最后,删除掉链接器 ==> 常规 ==> 附加库目录中内容,如图4所示。
图4
点击编译运行,会出现一个错误:
严重性代码说明项目文件行错误C4716“load_labels”: 必须返回一个值
解决方法:在static int load_labels(string path, vector<string>& labels) 函数增加一个返回值,return 1;
再运行,就可以得到结果,如图5所示。
图7
2、使用过程:
3.使用源码编译20210525版本ncnn
3.1 下载编译protobuf
protobuf下载地址:
https://github.com/google/protobuf/archive/v3.4.0.zip
3.2 vs2017本机工具编译protobuf库
然后打开vs2017本机工具进入到解压后的protibuf源码路径下:
编译protobuf库:
cd <protobuf-root-dir>
mkdir build
cd build
cmake -G"NMake Makefiles" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=%cd%/install -Dprotobuf_BUILD_TESTS=OFF -Dprotobuf_MSVC_STATIC_RUNTIME=OFF ../cmake
nmake
nmake install
3.3 编译ncnn库
cd <ncnn-root-dir>
mkdir -p build
cd build
cmake -G"NMake Makefiles" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=%cd%/install -DProtobuf_INCLUDE_DIR=<protobuf-root-dir>/build/install/include -DProtobuf_LIBRARIES=<protobuf-root-dir>/build/install/lib/libprotobuf.lib -DProtobuf_PROTOC_EXECUTABLE=<protobuf-root-dir>/build/install/bin/protoc.exe -DNCNN_VULKAN=OFF ..
nmake
nmake install
这里没有开vulkan选项,因为相关的sdk下载太慢了,整个过程很丝滑,一波通过。
编译完成后,像配置opencv一样配置一下即可。
4.参考资料:
[1] https://blog.csdn.net/fuwenyan/article/details/76105574
[2] https://github.com/Tencent/ncnn
[3] https://github.com/guozhongluo/ncnn-vs2015-examples-demo