Skip to content

Commit 440e6fc

Browse files
authored
Merge pull request #36 from ziqi-jin/develop
Merge develop to ppmodnet
2 parents e164e8e + 2707b03 commit 440e6fc

206 files changed

Lines changed: 1677 additions & 740 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ option(ENABLE_VISION_VISUALIZE "Whether to enable visualize vision model result
5151
option(ENABLE_TEXT "Whether to enable text models usage." OFF)
5252
option(WITH_TESTING "Whether to compile with unittest." OFF)
5353
option(OPENCV_DIRECTORY "User can specify the installed opencv directory.")
54+
option(ORT_DIRECTORY "User can specify the installed onnxruntime directory.")
5455

5556
# Please don't open this flag now, some bugs exists.
5657
# option(ENABLE_OPENCV_CUDA "Whether to enable opencv with cuda, this will allow process image with GPU." OFF)

FastDeploy.cmake.in

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ set(ENABLE_TEXT @ENABLE_TEXT@)
1313
# set(ENABLE_OPENCV_CUDA @ENABLE_OPENCV_CUDA@)
1414
set(LIBRARY_NAME @LIBRARY_NAME@)
1515
set(OPENCV_DIRECTORY @OPENCV_DIRECTORY@)
16+
set(ORT_DIRECTORY @ORT_DIRECTORY@)
1617

1718
set(FASTDEPLOY_LIBS "")
1819
set(FASTDEPLOY_INCS "")
@@ -26,7 +27,13 @@ find_library(FDLIB ${LIBRARY_NAME} ${CMAKE_CURRENT_LIST_DIR}/lib NO_DEFAULT_PATH
2627
list(APPEND FASTDEPLOY_LIBS ${FDLIB})
2728

2829
if(ENABLE_ORT_BACKEND)
29-
find_library(ORT_LIB onnxruntime ${CMAKE_CURRENT_LIST_DIR}/third_libs/install/onnxruntime/lib NO_DEFAULT_PATH)
30+
if (ORT_DIRECTORY)
31+
set(ORT_LIB_PATH ${ORT_DIRECTORY}/lib)
32+
else()
33+
set(ORT_LIB_PATH ${CMAKE_CURRENT_LIST_DIR}/third_libs/install/onnxruntime/lib)
34+
endif()
35+
message(STATUS "The path of ONNXRuntime is ${ORT_LIB_PATH}.")
36+
find_library(ORT_LIB onnxruntime ${ORT_LIB_PATH} NO_DEFAULT_PATH)
3037
list(APPEND FASTDEPLOY_LIBS ${ORT_LIB})
3138
endif()
3239

@@ -81,6 +88,7 @@ if(ENABLE_VISION)
8188
if (OPENCV_DIRECTORY)
8289
set(OpenCV_DIR ${OPENCV_DIRECTORY})
8390
endif()
91+
message(STATUS "The path of OpenCV is ${OpenCV_DIR}.")
8492
find_package(OpenCV REQUIRED PATHS ${OpenCV_DIR})
8593
list(APPEND FASTDEPLOY_INCS ${OpenCV_INCLUDE_DIRS})
8694
list(APPEND FASTDEPLOY_LIBS ${OpenCV_LIBS})

README_CN.md

Lines changed: 43 additions & 43 deletions
Large diffs are not rendered by default.

README_EN.md

Lines changed: 43 additions & 43 deletions
Large diffs are not rendered by default.

cmake/onnxruntime.cmake

Lines changed: 42 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,26 @@ set(ONNXRUNTIME_PREFIX_DIR ${THIRD_PARTY_PATH}/onnxruntime)
1919
set(ONNXRUNTIME_SOURCE_DIR
2020
${THIRD_PARTY_PATH}/onnxruntime/src/${ONNXRUNTIME_PROJECT})
2121
set(ONNXRUNTIME_INSTALL_DIR ${THIRD_PARTY_PATH}/install/onnxruntime)
22-
set(ONNXRUNTIME_INC_DIR
23-
"${ONNXRUNTIME_INSTALL_DIR}/include"
22+
23+
if (ORT_DIRECTORY)
24+
message(STATUS "Use the onnxruntime lib specified by user. The ONNXRuntime path: ${ORT_DIRECTORY}")
25+
STRING(REGEX REPLACE "\\\\" "/" ORT_DIRECTORY ${ORT_DIRECTORY})
26+
set(ONNXRUNTIME_INC_DIR
27+
"${ORT_DIRECTORY}/include"
2428
CACHE PATH "onnxruntime include directory." FORCE)
25-
set(ONNXRUNTIME_LIB_DIR
26-
"${ONNXRUNTIME_INSTALL_DIR}/lib"
29+
30+
set(ONNXRUNTIME_LIB_DIR
31+
"${ORT_DIRECTORY}/lib"
2732
CACHE PATH "onnxruntime lib directory." FORCE)
33+
else()
34+
message(STATUS "Use the default onnxruntime lib. The ONNXRuntime path: ${ONNXRUNTIME_INSTALL_DIR}")
35+
set(ONNXRUNTIME_INC_DIR
36+
"${ONNXRUNTIME_INSTALL_DIR}/include"
37+
CACHE PATH "onnxruntime include directory." FORCE)
38+
set(ONNXRUNTIME_LIB_DIR
39+
"${ONNXRUNTIME_INSTALL_DIR}/lib"
40+
CACHE PATH "onnxruntime lib directory." FORCE)
41+
endif()
2842
set(CMAKE_BUILD_RPATH "${CMAKE_BUILD_RPATH}" "${ONNXRUNTIME_LIB_DIR}")
2943

3044
set(ONNXRUNTIME_VERSION "1.12.0")
@@ -68,34 +82,36 @@ include_directories(${ONNXRUNTIME_INC_DIR}
6882

6983
if(WIN32)
7084
set(ONNXRUNTIME_LIB
71-
"${ONNXRUNTIME_INSTALL_DIR}/lib/onnxruntime.lib"
72-
CACHE FILEPATH "ONNXRUNTIME static library." FORCE)
85+
"${ONNXRUNTIME_LIB_DIR}/onnxruntime.lib"
86+
CACHE FILEPATH "ONNXRUNTIME shared library." FORCE)
7387
elseif(APPLE)
7488
set(ONNXRUNTIME_LIB
75-
"${ONNXRUNTIME_INSTALL_DIR}/lib/libonnxruntime.dylib"
76-
CACHE FILEPATH "ONNXRUNTIME static library." FORCE)
89+
"${ONNXRUNTIME_LIB_DIR}/libonnxruntime.dylib"
90+
CACHE FILEPATH "ONNXRUNTIME shared library." FORCE)
7791
else()
7892
set(ONNXRUNTIME_LIB
79-
"${ONNXRUNTIME_INSTALL_DIR}/lib/libonnxruntime.so"
80-
CACHE FILEPATH "ONNXRUNTIME static library." FORCE)
93+
"${ONNXRUNTIME_LIB_DIR}/libonnxruntime.so"
94+
CACHE FILEPATH "ONNXRUNTIME shared library." FORCE)
8195
endif()
8296

83-
ExternalProject_Add(
84-
${ONNXRUNTIME_PROJECT}
85-
${EXTERNAL_PROJECT_LOG_ARGS}
86-
URL ${ONNXRUNTIME_URL}
87-
PREFIX ${ONNXRUNTIME_PREFIX_DIR}
88-
DOWNLOAD_NO_PROGRESS 1
89-
CONFIGURE_COMMAND ""
90-
BUILD_COMMAND ""
91-
UPDATE_COMMAND ""
92-
INSTALL_COMMAND
93-
${CMAKE_COMMAND} -E remove_directory ${ONNXRUNTIME_INSTALL_DIR} &&
94-
${CMAKE_COMMAND} -E make_directory ${ONNXRUNTIME_INSTALL_DIR} &&
95-
${CMAKE_COMMAND} -E rename ${ONNXRUNTIME_SOURCE_DIR}/lib/ ${ONNXRUNTIME_INSTALL_DIR}/lib &&
96-
${CMAKE_COMMAND} -E copy_directory ${ONNXRUNTIME_SOURCE_DIR}/include
97-
${ONNXRUNTIME_INC_DIR}
98-
BUILD_BYPRODUCTS ${ONNXRUNTIME_LIB})
97+
if (NOT ORT_DIRECTORY)
98+
ExternalProject_Add(
99+
${ONNXRUNTIME_PROJECT}
100+
${EXTERNAL_PROJECT_LOG_ARGS}
101+
URL ${ONNXRUNTIME_URL}
102+
PREFIX ${ONNXRUNTIME_PREFIX_DIR}
103+
DOWNLOAD_NO_PROGRESS 1
104+
CONFIGURE_COMMAND ""
105+
BUILD_COMMAND ""
106+
UPDATE_COMMAND ""
107+
INSTALL_COMMAND
108+
${CMAKE_COMMAND} -E remove_directory ${ONNXRUNTIME_INSTALL_DIR} &&
109+
${CMAKE_COMMAND} -E make_directory ${ONNXRUNTIME_INSTALL_DIR} &&
110+
${CMAKE_COMMAND} -E rename ${ONNXRUNTIME_SOURCE_DIR}/lib/ ${ONNXRUNTIME_INSTALL_DIR}/lib &&
111+
${CMAKE_COMMAND} -E copy_directory ${ONNXRUNTIME_SOURCE_DIR}/include
112+
${ONNXRUNTIME_INC_DIR}
113+
BUILD_BYPRODUCTS ${ONNXRUNTIME_LIB})
114+
endif()
99115

100116
add_library(external_onnxruntime STATIC IMPORTED GLOBAL)
101117
set_property(TARGET external_onnxruntime PROPERTY IMPORTED_LOCATION ${ONNXRUNTIME_LIB})

docs/api/runtime_option.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ RuntimeOption(
2929
device_id : 0 # 推理硬件id(针对GPU)
3030
model_file : yolov5s.onnx # 模型文件路径
3131
params_file : # 参数文件路径
32-
model_format : Frontend.ONNX # 模型格式
32+
model_format : ModelFormat.ONNX # 模型格式
3333
ort_execution_mode : -1 # 前辍为ort的表示为ONNXRuntime后端专用参数
3434
ort_graph_opt_level : -1
3535
ort_inter_op_num_threads : -1
@@ -57,7 +57,7 @@ RuntimeOption(
5757
> * **device_id**(int): 设备id,在GPU下使用
5858
> * **model_file**(str): 模型文件路径
5959
> * **params_file**(str): 参数文件路径
60-
> * **model_format**(Frontend): 模型格式, `fd.Frontend.PADDLE`/`fd.Frontend.ONNX`
60+
> * **model_format**(ModelFormat): 模型格式, `fd.ModelFormat.PADDLE`/`fd.ModelFormat.ONNX`
6161
> * **ort_execution_mode**(int): ORT后端执行方式,0表示按顺序执行所有算子,1表示并行执行算子,默认为-1,即按ORT默认配置方式执行
6262
> * **ort_graph_opt_level**(int): ORT后端图优化等级;0:禁用图优化;1:基础优化 2:额外拓展优化;99:全部优化; 默认为-1,即按ORT默认配置方式执行
6363
> * **ort_inter_op_num_threads**(int): 当`ort_execution_mode`为1时,此参数设置算子间并行的线程数
@@ -100,7 +100,7 @@ model = fd.vision.classification.PaddleClasModel(
100100
> * **device_id**(int): 设备id,在GPU下使用
101101
> * **model_file**(string): 模型文件路径
102102
> * **params_file**(string): 参数文件路径
103-
> * **model_format**(fastdeploy::Frontend): 模型格式, `Frontend::PADDLE`/`Frontend::ONNX`
103+
> * **model_format**(fastdeploy::ModelFormat): 模型格式, `ModelFormat::PADDLE`/`ModelFormat::ONNX`
104104
> * **ort_execution_mode**(int): ORT后端执行方式,0表示按顺序执行所有算子,1表示并行执行算子,默认为-1,即按ORT默认配置方式执行
105105
> * **ort_graph_opt_level**(int): ORT后端图优化等级;0:禁用图优化;1:基础优化 2:额外拓展优化;99:全部优化; 默认为-1,即按ORT默认配置方式执行
106106
> * **ort_inter_op_num_threads**(int): 当`ort_execution_mode`为1时,此参数设置算子间并行的线程数

docs/arm_cpu/arm_linux_cpp_sdk_inference.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# 简介
22

33
本文档介绍FastDeploy中的模型SDK,在ARM Linux C++环境下 : (1)推理部署步骤; (2)介绍模型推流全流程API,方便开发者了解项目后二次开发。
4-
其中ARM Linux Python请参考[ARM Linux Python环境下的推理部署](./ARM-Linux-Python-SDK-Inference.md)文档。
4+
其中ARM Linux Python请参考[ARM Linux Python环境下的推理部署](./arm_linux_python_sdk_inference.md)文档。
55

66
**注意**:部分模型(如Tinypose、OCR等)仅支持图像推理,不支持视频推理。
77

@@ -88,7 +88,7 @@
8888

8989
1. 【OCR需要编译】因为OCR任务的特殊性,本次SDK没有提供bin文件夹可执行文件。开发者根据需要,满足文档中gcc和cmake要求后,在`src/demo*`路径编译获取可执行文件,具体可参考。
9090
2. 【OCR仅支持图像推理,不支持视频流推理】
91-
3. ARM-Linux-Python的环境要求和使用,请参考[ARM Linux Python环境下的推理部署](./ARM-Linux-Python-SDK.md)文档。
91+
3. ARM-Linux-Python的环境要求和使用,请参考[ARM Linux Python环境下的推理部署](./arm_linux_python_sdk_inference.md)文档。
9292

9393
## 2. 测试Demo
9494

docs/arm_cpu/arm_linux_cpp_sdk_serving.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# 简介
22

33
本文档介绍FastDeploy中的模型SDK,在ARM Linux C++环境下:(1)服务化推理部署步骤;(2)介绍模型推流全流程API,方便开发者了解项目后二次开发。
4-
其中ARM Linux Python请参考[ARM Linux Python环境下的HTTP推理部署](./ARM-Linux-Python-SDK-Serving.md)文档。
4+
其中ARM Linux Python请参考[ARM Linux Python环境下的HTTP推理部署](./arm_linux_python_sdk_serving.md)文档。
55

66
**注意**:部分模型(如OCR等)不支持服务化推理。
77

docs/arm_cpu/arm_linux_python_sdk_inference.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# 简介
22

3-
本文档以[千分类模型_MobileNetV3](https://ai.baidu.com/easyedge/app/openSource)为例,介绍FastDeploy中的模型SDK, 在**ARM Linux Python** 环境下:(1)图像推理部署步骤; (2)介绍模型推流全流程API,方便开发者了解项目后二次开发。其中ARM Linux C++请参考[ARM Linux C++环境下的推理部署](./ARM-Linux-CPP-SDK-Inference.md)文档。
3+
本文档以[千分类模型_MobileNetV3](https://ai.baidu.com/easyedge/app/openSource)为例,介绍FastDeploy中的模型SDK, 在**ARM Linux Python** 环境下:(1)图像推理部署步骤; (2)介绍模型推流全流程API,方便开发者了解项目后二次开发。其中ARM Linux C++请参考[ARM Linux C++环境下的推理部署](./arm_linux_cpp_sdk_inference.md)文档。
44

55
**注意**:部分模型(如Tinypose、OCR等)仅支持图像推理,不支持视频推理。
66

@@ -38,7 +38,7 @@
3838

3939
## 1.SDK下载
4040

41-
根据开发者模型、部署芯片、操作系统需要,在图像界面[飞桨开源模型](https://ai.baidu.com/easyedge/app/openSource)[GIthub](https://github.com/PaddlePaddle/FastDeploy)中选择对应的SDK进行下载。
41+
根据开发者模型、部署芯片、操作系统需要,在图像界面[飞桨开源模型](https://ai.baidu.com/easyedge/app/openSource)[GitHub](https://github.com/PaddlePaddle/FastDeploy)中选择对应的SDK进行下载。
4242

4343
```shell
4444
EasyEdge-Linux-x86--[部署芯片]

docs/arm_cpu/arm_linux_python_sdk_serving.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# 简介
22

3-
本文档以[千分类模型_MobileNetV3](https://ai.baidu.com/easyedge/app/openSource)为例,介绍FastDeploy中的模型SDK, 在**ARM Linux Python** 环境下: (1)**服务化**推理部署步骤; (2)介绍模型推流全流程API,方便开发者了解项目后二次开发。其中ARM Linux Python请参考[ARM Linux C++环境下的HTTP推理部署](./ARM-Linux-CPP-SDK-Serving.md)文档。
3+
本文档以[千分类模型_MobileNetV3](https://ai.baidu.com/easyedge/app/openSource)为例,介绍FastDeploy中的模型SDK, 在**ARM Linux Python** 环境下: (1)**服务化**推理部署步骤; (2)介绍模型推流全流程API,方便开发者了解项目后二次开发。其中ARM Linux Python请参考[ARM Linux C++环境下的HTTP推理部署](./arm_linux_cpp_sdk_serving.md)文档。
44

55
**注意**:部分模型(如OCR等)不支持服务化推理。
66

@@ -38,7 +38,7 @@
3838

3939
## 1.SDK下载
4040

41-
根据开发者模型、部署芯片、操作系统需要,在图像界面[飞桨开源模型](https://ai.baidu.com/easyedge/app/openSource)[GIthub](https://github.com/PaddlePaddle/FastDeploy)中选择对应的SDK进行下载。解压缩后的文件结构如下。
41+
根据开发者模型、部署芯片、操作系统需要,在图像界面[飞桨开源模型](https://ai.baidu.com/easyedge/app/openSource)[GitHub](https://github.com/PaddlePaddle/FastDeploy)中选择对应的SDK进行下载。解压缩后的文件结构如下。
4242

4343
```shell
4444
EasyEdge-Linux-x86-[部署芯片]

0 commit comments

Comments
 (0)