Linux 下 MNN编译 | 安装 | 测试
【摘要】
文章目录
文档学习首先安装 protobuf (手动源码安装)MNN 正确编译和安装Demo 2.1 姿态检测 ( TF 模型转换 MNN 测试 )
文档学习
系统环境:...
文档学习
系统环境: Ubuntu 18.04.5
中文文档 – https://www.yuque.com/mnn/cn/cvrt_linux_mac
首先安装 protobuf (手动源码安装)
git clone https://github.com/google/protobuf.git
cd protobuf
git submodule update --init --recursive
./autogen.sh
./configure
或者 指定 安装目录 (个人用户要指定到 /home/当前用户名/usr/local/ 不然下方可能会报错)
./configure --prefix=/home/moli/usr/local/
make
make check
make install
ldconfig # refresh shared library cache.
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
git submodule update --init --recursive 执行,可能遇到 benchmark.git 和 googletest.git 下载失败;
我的方法是手动下载这两个 git 库 然后 复制到 protobuf/third_party 进行解压
git submodule update --init --recursive
# 报错如下
Cloning into 'third_party/benchmark'...
error: RPC failed; result=52, HTTP code = 0
fatal: The remote end hung up unexpectedly
Clone of 'https://github.com/google/benchmark.git' into submodule path 'third_party/benchmark' failed
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
./autogen.sh 执行遇到报错
./autogen.sh
# 报错如下
+ mkdir -p third_party/googletest/m4
+ autoreconf -f -i -Wall,no-obsolete
./autogen.sh: 37: ./autogen.sh: autoreconf: not found
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 解决方法为
sudo apt-get install cmake-curses-gui
sudo apt-get install autoconf automake libtool
- 1
- 2
- 3
- 4
普通用户 make install 执行遇到报错
root 权限用户应该不会遇到这个问题
libtool: error: error: cannot install 'libprotoc.la' to a directory not ending in /usr/local/lib
- 1
- 解决方法:个人用户则指定安装到 当前用户 usr/local/ 目录 下,例如
./configure --prefix=/home/moli/usr/local/
- 1
MNN 正确编译和安装
git clone https://github.com/alibaba/MNN.git
cd MNN
cd schema && ./generate.sh
cd ..
mkdir build && cd build
cmake -DMNN_BUILD_DEMO=ON -DMNN_BUILD_CONVERTER=true ..
make -j32
# 安装完成, 查看 版本
./MNNConvert --version
0.2.1.5git
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
Protobuf 如果没有安装可能会遇到如下报错:
CMake Error at /usr/share/cmake-3.10/Modules/FindPackageHandleStandardArgs.cmake:137 (message):
Could NOT find Protobuf (missing: Protobuf_INCLUDE_DIR)
Call Stack (most recent call first):
..
tools/converter/CMakeLists.txt:14 (find_package)
-- Configuring incomplete, errors occurred!
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- Ubuntu 解决方法(似乎还是上面的手动源码安装能够根本解决)
sudo apt-get install libprotobuf-dev protobuf-compiler
protoc --version
# 输出如下
libprotoc 3.0.0
- 1
- 2
- 3
- 4
- 5
- 6
Demo 2.1 姿态检测 ( TF 模型转换 MNN 测试 )
测试主页 :https://www.yuque.com/mnn/cn/demo_project
- 我的转换命令如下( MNN/build 目录下 ):
./MNNConvert -f TF --modelFile ../../changeModel/model-mobilenet_v1_075.pb --MNNModel mobilenet.mnn --bizCode biz
# 输出如下:
MNNConverter Version: 0.2.1.5git - MNN @ 2018
Start to Convert Other Model Format To MNN Model...
Start to Optimize the MNN Net...
Converted Done!
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 选择图片进行测试
选取一张人像图像 test.png 安放在 MNN/build/test 目录下
执行命令如下:
./multiPose.out mobilenet.mnn test/test.png pose.png
- 1
- 效果如下
恭喜你已经读到文末啦,多谢你的点赞鼓励!
文章来源: positive.blog.csdn.net,作者:墨理学AI,版权归原作者所有,如需转载,请联系作者。
原文链接:positive.blog.csdn.net/article/details/115163350
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)