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,这里作简单说明。 @@ -100,40 +100,6 @@ MMDeploy 的 Model Converter 和 SDK 共享推理引擎。您可以参考下文 - - - - - - - - - - - @@ -160,16 +126,6 @@ export Torch_DIR=$(pwd)/install/share/cmake/Torch

 pip install coremltools
-
-
ONNXRuntimeonnxruntime
(>=1.10.0)
- 1. 安装 onnxruntime 的 python 包 -
pip install onnxruntime==1.10.0
- 2. 从这里下载 onnxruntime 的预编译包。参考如下命令,解压压缩包并设置环境变量 -

-wget https://github.com/microsoft/onnxruntime/releases/download/v1.10.0/onnxruntime-osx-arm64-1.10.0.tgz
-tar -zxvf onnxruntime-osx-arm64-1.10.0.tgz
-cd onnxruntime-osx-arm64-1.10.0
-export ONNXRUNTIME_DIR=$(pwd)
-export LD_LIBRARY_PATH=$ONNXRUNTIME_DIR/lib:$LD_LIBRARY_PATH
-
-
ncnn ncnn 1. 请参考 ncnn的 wiki 编译 ncnn。 -编译时,请打开-DNCNN_PYTHON=ON
-2. 将 ncnn 的根目录写入环境变量 -

-cd ncnn
-export NCNN_DIR=$(pwd)
-
-3. 安装 pyncnn -

-cd ${NCNN_DIR}/python
-pip install -e .
 
-注意:
-如果您想使上述环境变量永久有效,可以把它们加入~/.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):