diff --git a/csrc/mmdeploy/backend_ops/CMakeLists.txt b/csrc/mmdeploy/backend_ops/CMakeLists.txt index a2f017270c..0a7dff15ee 100644 --- a/csrc/mmdeploy/backend_ops/CMakeLists.txt +++ b/csrc/mmdeploy/backend_ops/CMakeLists.txt @@ -34,6 +34,6 @@ endif () # build TorchScript ops if ("torchscript" IN_LIST MMDEPLOY_TARGET_BACKENDS OR "coreml" IN_LIST MMDEPLOY_TARGET_BACKENDS) - message(STATUS "Build torchsciprt custom ops") + message(STATUS "Build torchscript custom ops") add_subdirectory(torchscript) endif () diff --git a/csrc/mmdeploy/net/coreml/coreml_net.mm b/csrc/mmdeploy/net/coreml/coreml_net.mm index 0d5a28813b..85eb23ad08 100644 --- a/csrc/mmdeploy/net/coreml/coreml_net.mm +++ b/csrc/mmdeploy/net/coreml/coreml_net.mm @@ -1,3 +1,4 @@ +// Copyright (c) OpenMMLab. All rights reserved. #include "coreml_net.h" #include "mmdeploy/core/model.h" diff --git a/docs/zh_cn/01-how-to-build/macos.md b/docs/zh_cn/01-how-to-build/macos.md index 64df815bac..4a9ca3dc34 100644 --- a/docs/zh_cn/01-how-to-build/macos.md +++ b/docs/zh_cn/01-how-to-build/macos.md @@ -1,4 +1,4 @@ -# Macos 下构建方式 +# macOS 下构建方式 ## 源码安装 @@ -83,7 +83,7 @@ brew install opencv #### 安装推理引擎 -MMDeploy 的 Model Converter 和 SDK 共享推理引擎。您可以参考下文,选择自己感兴趣的推理引擎安装。 +MMDeploy 的 Model Converter 和 SDK 共享推理引擎。您可以参考下文,选择自己感兴趣的推理引擎安装。这里重点介绍 Core ML。ONNX Runtime,ncnn 以及 TorchScript 的安装类似 linux 平台,可参考文档 [linux-x86_64](linux-x86_64.md) 进行安装。Core ML 模型的转化过程中使用 TorchScript 模型作为IR,为了支持自定义算子的情况,需要安装 libtorch,这里作简单说明。
- |
-
-
- ||
ONNXRuntime | -onnxruntime (>=1.10.0) |
-
- 1. 安装 onnxruntime 的 python 包
-
- 2. 从这里下载 onnxruntime 的预编译包。参考如下命令,解压压缩包并设置环境变量
-
- |
-
ncnn | -ncnn | -1. 请参考 ncnn的 wiki 编译 ncnn。
-编译时,请打开-DNCNN_PYTHON=ON -2. 将 ncnn 的根目录写入环境变量 -
-3. 安装 pyncnn
-
|
~/.bashrc
。以 ONNXRuntime 的环境变量为例,
-
-```bash
-echo '# set env for onnxruntime' >> ~/.bashrc
-echo "export ONNXRUNTIME_DIR=${ONNXRUNTIME_DIR}" >> ~/.bashrc
-echo "export LD_LIBRARY_PATH=$ONNXRUNTIME_DIR/lib:$LD_LIBRARY_PATH" >> ~/.bashrc
-source ~/.bashrc
-```
-
### 编译 MMDeploy
```bash
@@ -179,30 +135,12 @@ export MMDEPLOY_DIR=$(pwd)
#### 编译 Model Converter
-如果您选择了ONNXRuntime,ncnn, 和 torchscript 任一种推理后端,您需要编译对应的自定义算子库。
+这里介绍使用 Core ML 作为推理后端所需的操作。
- **Core ML**
Core ML使用torchscript作为IR,故需要编译torchscript自定义算子。
-- **ONNXRuntime** 自定义算子
-
- ```bash
- cd ${MMDEPLOY_DIR}
- mkdir -p build && cd build
- cmake -DMMDEPLOY_TARGET_BACKENDS=ort -DONNXRUNTIME_DIR=${ONNXRUNTIME_DIR} ..
- make -j$(nproc) && make install
- ```
-
-- **ncnn** 自定义算子
-
- ```bash
- cd ${MMDEPLOY_DIR}
- mkdir -p build && cd build
- cmake -DMMDEPLOY_TARGET_BACKENDS=ncnn -Dncnn_DIR=${NCNN_DIR}/build/install/lib/cmake/ncnn ..
- make -j$(nproc) && make install
- ```
-
- **torchscript** 自定义算子
```bash
@@ -228,23 +166,7 @@ pip install -e .
#### 编译 SDK 和 Demos
-下文展示2个构建SDK的样例,分别用 ONNXRuntime 和 Core ML 作为推理引擎。您可以参考它们,激活其他的推理引擎。
-
-- cpu + ONNXRuntime
-
- ```Bash
- cd ${MMDEPLOY_DIR}
- mkdir -p build && cd build
- cmake .. \
- -DMMDEPLOY_BUILD_SDK=ON \
- -DMMDEPLOY_BUILD_EXAMPLES=ON \
- -DMMDEPLOY_BUILD_SDK_PYTHON_API=ON \
- -DMMDEPLOY_TARGET_DEVICES=cpu \
- -DMMDEPLOY_TARGET_BACKENDS=ort \
- -DONNXRUNTIME_DIR=${ONNXRUNTIME_DIR}
-
- make -j$(nproc) && make install
- ```
+下文展示使用 Core ML 作为推理引擎,构建SDK的样例。
- cpu + Core ML
diff --git a/tools/deploy.py b/tools/deploy.py
index d85aabef25..e5228e2b90 100644
--- a/tools/deploy.py
+++ b/tools/deploy.py
@@ -204,7 +204,7 @@ def main():
from mmdeploy.apis.tensorrt import onnx2tensorrt
PIPELINE_MANAGER.enable_multiprocess(True, [onnx2tensorrt])
- PIPELINE_MANAGER.set_log_level(logging.INFO, [onnx2tensorrt])
+ PIPELINE_MANAGER.set_log_level(log_level, [onnx2tensorrt])
backend_files = []
for model_id, model_param, onnx_path in zip(
@@ -331,7 +331,7 @@ def main():
from mmdeploy.apis.pplnn import from_onnx
pplnn_pipeline_funcs = [from_onnx]
- PIPELINE_MANAGER.set_log_level(logging.INFO, pplnn_pipeline_funcs)
+ PIPELINE_MANAGER.set_log_level(log_level, pplnn_pipeline_funcs)
pplnn_files = []
for onnx_path in ir_files:
@@ -354,7 +354,7 @@ def main():
elif backend == Backend.COREML:
from mmdeploy.apis.coreml import from_torchscript, get_model_suffix
coreml_pipeline_funcs = [from_torchscript]
- PIPELINE_MANAGER.set_log_level(logging.INFO, coreml_pipeline_funcs)
+ PIPELINE_MANAGER.set_log_level(log_level, coreml_pipeline_funcs)
model_inputs = get_model_inputs(deploy_cfg)
coreml_files = []
for model_id, torchscript_path in enumerate(ir_files):