-
下载源码
进入https://github.com/Tencent/ncnn下载源码,拷入到arm平台 -
Demo地址
https://github.com/Nebula4869/YOLOv5-ncnn-arm -
下载依赖库
sudo apt install libprotobuf-dev protobuf-compiler -
编译
cd ncnn
mkdir -p build
cd build
cmake ..
make -j$(nproc)
make install
- 编译成功后的目录结构
- 编译时报错的解决方法
在make时会遇到一个与protobuf相关比较难解决的问题
会报错为
fatal error: google/protobuf/port_def.inc: no such file or directory
或者
protobuf: undefined reference to `google::protobuf::internal::fixed_address_empty_string[abi:cxx11
报错原因是找不到protubuf的库和头文件,这就需要更改相应的CMakeLists内容
根据编译记录可以看到是编译转网工具时找不到protobuf库报错,于是进入ncnn/tools/onnx与ncnn/tools/caffe的文件夹中观察CMakeLists。
可以知道是find_package没有找到protubuf的地址,于是在上面专门指定地址即可。
- 使用转网工具
onnxpb: onnx模型
ncnnbin:生成ncnn存放类似卷积这些op的权重文件,后缀为.bin,需要自己取名
ncnnbin:生成ncnn存放模型结构的文件,后缀为.param,需要自己取名