1. 编译
1.1 Linux / Mac
使用根目录的CMakeLists.txt ,打开 MNN_BUILD_DEMO 开关
cd path/to/MNN
# 生成 schema ,可选
cd schema && ./generate.sh
# 进行编译
cd path/to/MNN
mkdir build && cd build
cmake -DMNN_BUILD_DEMO=ON ..
make -j8
1.2 Windows
使用根目录的CMakeLists.txt ,打开 MNN_BUILD_DEMO 开关
cd path/to/MNN
powershell ./schema/generate.ps1
mkdir build
cd build
cmake -G "NMake Makefiles" -DCMAKE_BUILD_TYPE=Release -DMNN_BUILD_DEMO=ON ..
nmake
2. Demo 说明
2.1 姿态检测
代码:demo/exec/multiPose.cpp
- 下载原始的Tensorflow模型 pose model
- 使用 模型转换工具 转换为 MNN 模型
- 执行姿态检测
./multiPose.out model.mnn input.jpg pose.png
效果示例:
post.png:
2.2 图像实例分割
代码:demo/exec/segment.cpp
下载 deeplabv3 分割模型并转换到 mnn 模型
https://storage.googleapis.com/download.tensorflow.org/models/tflite/gpu/deeplabv3_257_mv_gpu.tflite
./segment.out model.mnn input.jpg result.png
效果示例:
input.jpg:
result.png:
2.3 图像识别
代码:demo/exec/pictureRecognition.cpp
下载 mobilenet 模型并转换为 MNN 格式
第一个参数为 MNN 模型地址
第二个参数为图像地址
追加参数则为下一张图像地址
示例:
./pictureRecognition.out moiblenet.mnn Test.jpg
效果示例:
TestMe.jpg
输出:
Can’t Find type=4 backend, use 0 instead
For Image: TestMe.jpg
386, 0.419250
101, 0.345093
385, 0.214722
347, 0.012001
346, 0.002010
348, 0.001876
294, 0.001247
349, 0.000761
354, 0.000443
345, 0.000441
第一行表示识别出可能性最大的类别编号,在相应的 synset_words.txt 去查找对应的类别,如 demo/model/MobileNet/synset_words.txt