From 9c140181fa70bdb4977c82816f3743bdafa3146a Mon Sep 17 00:00:00 2001 From: MistEO Date: Sat, 26 Nov 2022 04:09:15 +0800 Subject: [PATCH] docs: update doc about fastdeploy --- CMakeLists.txt | 4 ++-- README.md | 2 ++ README_en-US.md | 2 ++ README_ja-JP.md | 2 ++ README_zh-TW.md | 2 ++ docs/1.2-常见问题.md | 10 +--------- docs/2.1-Linux编译教程.md | 15 ++------------- docs/en-us/1.2-FAQ.md | 10 +--------- docs/en-us/2.1-LINUX_TUTORIAL.md | 15 ++------------- docs/ja-jp/1.2-よくある質問.md | 10 +--------- docs/zh-tw/1.2-常見問題.md | 10 +--------- docs/zh-tw/2.1-Linux編譯教程.md | 15 ++------------- package-definition.json | 29 +++++++++++------------------ 13 files changed, 31 insertions(+), 95 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 2d282ad957..5055024084 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -42,10 +42,10 @@ file(GLOB_RECURSE maa_src src/MeoAssistant/*.cpp) add_library(MeoAssistant SHARED ${maa_src}) if (MSVC) - find_library(PaddleOCR_LIB NAMES ppocr PATHS 3rdparty/lib) + find_library(FastDeploy_LIB NAMES ON PATHS 3rdparty/lib) find_library(OpenCV NAMES opencv_world453 PATHS 3rdparty/lib) find_library(ZLIB NAMES zlibstatic PATHS 3rdparty/lib) - target_link_libraries(MeoAssistant ws2_32 ${OpenCV} ${PaddleOCR_LIB} ${ZLIB}) + target_link_libraries(MeoAssistant ws2_32 ${OpenCV} ${FastDeploy_LIB} ${ZLIB}) target_include_directories(MeoAssistant PRIVATE 3rdparty/include) else () find_package(ZLIB REQUIRED) diff --git a/README.md b/README.md index 2ae8b5d037..aede2b7ff8 100644 --- a/README.md +++ b/README.md @@ -100,6 +100,8 @@ MAA 的意思是 MAA Assistant Arknights - 图像识别库:[opencv](https://github.com/opencv/opencv.git) - ~~文字识别库:[chineseocr_lite](https://github.com/DayBreak-u/chineseocr_lite.git)~~ - 文字识别库:[PaddleOCR](https://github.com/PaddlePaddle/PaddleOCR) +- 深度学习快速部署工具集: [FastDeploy](https://github.com/PaddlePaddle/FastDeploy) +- 机器学习推理和训练加速器: [onnxruntime](https://github.com/microsoft/onnxruntime) - ~~关卡掉落识别:[企鹅物流识别](https://github.com/penguin-statistics/recognizer)~~ - 地图格子识别:[Arknights-Tile-Pos](https://github.com/yuanyan3060/Arknights-Tile-Pos) - C++ JSON库:[meojson](https://github.com/MistEO/meojson.git) diff --git a/README_en-US.md b/README_en-US.md index 4331a5bcc5..a622206e0f 100644 --- a/README_en-US.md +++ b/README_en-US.md @@ -99,6 +99,8 @@ Due to the small number of overseas clients users and the lack of project manpow - Image recognition: [opencv](https://github.com/opencv/opencv.git) - ~~OCR: [chineseocr_lite](https://github.com/DayBreak-u/chineseocr_lite.git)~~ - OCR: [PaddleOCR](https://github.com/PaddlePaddle/PaddleOCR) +- Deep Learning Model Deployment Toolkit: [FastDeploy](https://github.com/PaddlePaddle/FastDeploy) +- ML inferencing and training accelerator: [onnxruntime](https://github.com/microsoft/onnxruntime) - ~~Item drop recognition: [Penguin Stats recognizer](https://github.com/penguin-statistics/recognizer)~~ - Map tile recognition: [Arknights-Tile-Pos](https://github.com/yuanyan3060/Arknights-Tile-Pos) - C++ JSON library: [meojson](https://github.com/MistEO/meojson.git) diff --git a/README_ja-JP.md b/README_ja-JP.md index f6fbf9d80e..6c46b20182 100644 --- a/README_ja-JP.md +++ b/README_ja-JP.md @@ -101,6 +101,8 @@ UIを見れば使い方もすぐ分かる! - 画像認識ライブラリ:[opencv](https://github.com/opencv/opencv.git) - ~~テキスト認識ライブラリ:[chineseocr_lite](https://github.com/DayBreak-u/chineseocr_lite.git)~~ - テキスト認識ライブラリ:[PaddleOCR](https://github.com/PaddlePaddle/PaddleOCR) +- Deep Learning Model Deployment Toolkit: [FastDeploy](https://github.com/PaddlePaddle/FastDeploy) +- ML inferencing and training accelerator: [onnxruntime](https://github.com/microsoft/onnxruntime) - ~~ステージドロップ認識:[PenguinStats認識](https://github.com/penguin-statistics/recognizer)~~ - マップタイル認識:[Arknights-Tile-Pos](https://github.com/yuanyan3060/Arknights-Tile-Pos) - C++ JSONライブラリ:[meojson](https://github.com/MistEO/meojson.git) diff --git a/README_zh-TW.md b/README_zh-TW.md index 066783b731..fe1669db3e 100644 --- a/README_zh-TW.md +++ b/README_zh-TW.md @@ -99,6 +99,8 @@ MAA 的意思是 MAA Assistant Arknights - 圖像辨識庫:[opencv](https://github.com/opencv/opencv.git) - ~~字元辨識庫:[chineseocr_lite](https://github.com/DayBreak-u/chineseocr_lite.git)~~ - 字元辨識庫:[PaddleOCR](https://github.com/PaddlePaddle/PaddleOCR) +- Deep Learning Model Deployment Toolkit: [FastDeploy](https://github.com/PaddlePaddle/FastDeploy) +- ML inferencing and training accelerator: [onnxruntime](https://github.com/microsoft/onnxruntime) - ~~關卡掉落辨識:[企鵝物流辨識](https://github.com/penguin-statistics/recognizer)~~ - 地圖格子辨識:[Arknights-Tile-Pos](https://github.com/yuanyan3060/Arknights-Tile-Pos) - C++ JSON庫:[meojson](https://github.com/MistEO/meojson.git) diff --git a/docs/1.2-常见问题.md b/docs/1.2-常见问题.md index 7502bea1ae..80600b9edc 100644 --- a/docs/1.2-常见问题.md +++ b/docs/1.2-常见问题.md @@ -11,15 +11,7 @@ 请尝试安装 [Visual C++ Redistributable](https://docs.microsoft.com/zh-CN/cpp/windows/latest-supported-vc-redist?view=msvc-160#visual-studio-2015-2017-2019-and-2022)、[.NET Framework 4.8](https://dotnet.microsoft.com/download/dotnet-framework/net48) 并重新启动计算机后运行本软件。 -### 可能性 2 : CPU 指令集不支持 - -项目使用 `PaddleOCR` 对游戏部分界面进行识别。`PaddleOCR` 用到了较新发布的 CPU 才支持的 `AVX` 指令集,而一些较老的 CPU 可能并不支持该指令集。 - -您可以尝试下载 [NoAVX](../3rdparty/ppocr_noavx.zip) 版本的 `PaddleOCR`, 解压后替换本软件中同名的文件。这是对于使用不支持 `AVX` 指令集的 CPU 的用户的性能降低的替代方案,如非必要,请不要使用。 - -_具体可以下载 [CPU-Z](https://www.cpuid.com/softwares/cpu-z.html),查看“指令集”中有无 `AVX` 这一项来判断_ - -### 可能性 3 : 其它运行库问题 +### 可能性 2 : 其它运行库问题 如果您是 Windows Server 或其他精简版系统的用户,可尝试使用 [Microsoft C++ 生成工具](https://visualstudio.microsoft.com/zh-hans/visual-cpp-build-tools/) 进行完整的开发环境配置(仅需要安装 .NET 及 C++ 开发环境)。 diff --git a/docs/2.1-Linux编译教程.md b/docs/2.1-Linux编译教程.md index 52fa01a4eb..84c480a199 100644 --- a/docs/2.1-Linux编译教程.md +++ b/docs/2.1-Linux编译教程.md @@ -12,20 +12,9 @@ 请自行搜索教程安装,没什么特别的,作者当前成功验证过的版本为`4.5.3`版本。其他版本应该也可以,但仍然推荐使用`4.5.3`版本,与项目保持一致,避免一些不必要的问题。仅`Opencv`本体即可,不需要额外安装`opencv_contrib`。 -### PaddleOCR +### FastDeploy -1. 使用我魔改了接口的版本: -2. 参考 [这个教程](https://github.com/MaaAssistantArknights/PaddleOCR/blob/release/2.5/deploy/cpp_infer/readme_ch.md) -3. 额外依赖的 `paddle_inference` 直接 [下载](https://paddleinference.paddlepaddle.org.cn/master/user_guides/download_lib.html) 即可。其中 `avx` 和 `mkl` 两者都可以提高计算效率,建议选择。但如果 CPU 不支持,则只能选择 `noavx` 和 `openblas` 的兼容性版本(一般稍微新一点的 CPU 都支持两者了,AMD 的也没关系)。 `cuda` 和 `cudnn` 是 GPU 加速库,在 `PaddleOCR` 上可能比较麻烦,我没折腾过,有兴趣可以尝试下 -4. 若 `cmake` 找不到 `Opencv` ,可尝试修改 [Opencv 的查找路径](https://github.com/MaaAssistantArknights/PaddleOCR/blob/release/2.5/deploy/cpp_infer/CMakeLists.txt#L49) -5. 若您使用**非** `MKL` 版本,需要关闭 [MKL 宏定义](https://github.com/MaaAssistantArknights/PaddleOCR/blob/release/2.5/deploy/cpp_infer/src/args.cpp#L24) (改为 `false`) - -编译选项参考 - -```bash -cmake ../ -DPADDLE_LIB=/your_path/paddle_inference/ -DOpenCV_DIR=/your_path_to_opencv/ -DWITH_STATIC_LIB=OFF -DBUILD_SHARED=ON -# 若设备不支持 MKL, 可再额外添加 -DWITH_MKL=OFF 选项,并下载对应的 PaddlePaddle 预测库版本 -``` +1. 参考 [这个教程](https://github.com/PaddlePaddle/FastDeploy/blob/develop/docs/cn/build_and_install/cpu.md),安装 ONNX Runtime (Ort) 和 Vision 即可。CPU 版比较方便,GPU 版本可能更折腾一点,可自行选择 ### zlib diff --git a/docs/en-us/1.2-FAQ.md b/docs/en-us/1.2-FAQ.md index 523700a7c5..e062487070 100644 --- a/docs/en-us/1.2-FAQ.md +++ b/docs/en-us/1.2-FAQ.md @@ -11,15 +11,7 @@ Please try installing [Visual C++ Redistributable](https://docs.microsoft.com/en/cpp/windows/latest-supported-vc-redist?view=msvc-160#visual-studio-2015-2017-2019-and-2022) and [.NET Framework 4.8](https://dotnet.microsoft.com/download/dotnet-framework/net48), and restart your computer and the application. -### Possible cause 2: incompatible CPU instruction set - - This project requires `PaddleOCR` for image recognition, which depends on the `AVX` instruction set supported only by some of the newly-released CPUs, while old versions may not support it. - - You can also try downloading `PaddleOCR` of [NoAVX](../3rdparty/ppocr_noavx.zip) version, unzip and replace the files with the same names. Since it may cause a performance drop, please do not use it unless it is necessary. - - _([CPU-Z](https://www.cpuid.com/softwares/cpu-z.html) is a tool that provides a check of the existence of `AVX` instruction set.)_ - -### Possible cause 3: other runtime library problems +### Possible cause 2: other runtime library problems If you are a user of Windows Server or other lite versions, you can try [Microsoft C++ Build Tools](https://visualstudio.microsoft.com/visual-cpp-build-tools/) to configure a complete development environment (only .NET and C++ environments are required). diff --git a/docs/en-us/2.1-LINUX_TUTORIAL.md b/docs/en-us/2.1-LINUX_TUTORIAL.md index 2a0469bcaf..a22443888e 100644 --- a/docs/en-us/2.1-LINUX_TUTORIAL.md +++ b/docs/en-us/2.1-LINUX_TUTORIAL.md @@ -12,20 +12,9 @@ If you meet any other problems, please feel free to submit issue to us. Please search the tutorial and install. Nothing to mention. The version `4.5.3` is confirmed to be able to use. Other versions should be OK as well, but `4.5.3` is recommended to keep it the same as the project and avoid some unnecessary problems. Installing `Opencv` itself is enough. `opencv_contrib` is not required. -### PaddleOCR +### FastDeploy -1. Use a hacked version: -2. Refer to [this tutorial](https://github.com/MaaAssistantArknights/PaddleOCR/blob/release/2.5/deploy/cpp_infer/readme.md). -3. [Download](https://paddleinference.paddlepaddle.org.cn/master/user_guides/download_lib.html) extra dependencies for `paddle_inference`. Both `avx` and `mkl` are recommended, which can improve the efficiency of calculation. However, if your CPU does not support them, you can choose compatible version of either `noavx` or `openblas` (new CPUs should support them, even AMD). `cuda` and `cudnn` are GPU libraries, but I haven't tried it on `PaddleOCR` yet. Feel free to try it out. -4. If `cmake` cannot find `Opencv`, you can try editing [the finding path of Opencv](https://github.com/MaaAssistantArknights/PaddleOCR/blob/release/2.5/deploy/cpp_infer/CMakeLists.txt#L49). -5. If you are using **NOT** `MKL` version, you need to change the [MKL Macro](https://github.com/MaaAssistantArknights/PaddleOCR/blob/release/2.5/deploy/cpp_infer/src/args.cpp#L24) to `false`. - -Compilation flags for your reference - -```bash -cmake ../ -DPADDLE_LIB=/your_path/paddle_inference/ -DOpenCV_DIR=/your_path_to_opencv/ -DWITH_STATIC_LIB=OFF -DBUILD_SHARED=ON -# If your device does not support MKL, you can add `-DWITH_MKL=OFF` flag, and download corresponding PaddlePaddle version. -``` +1. Refer to [this tutorial](https://github.com/PaddlePaddle/FastDeploy/blob/develop/docs/cn/build_and_install/cpu.md) to install FastDeploy with ONNX Runtime (Ort) and Vision. ### zlib diff --git a/docs/ja-jp/1.2-よくある質問.md b/docs/ja-jp/1.2-よくある質問.md index a107644548..0f592570c3 100644 --- a/docs/ja-jp/1.2-よくある質問.md +++ b/docs/ja-jp/1.2-よくある質問.md @@ -11,15 +11,7 @@ [Visual C++ Redistributable](https://docs.microsoft.com/ja-jp/cpp/windows/latest-supported-vc-redist?view=msvc-160#visual-studio-2015-2017-2019-and-2022)と[.NET Framework 4.8](https://dotnet.microsoft.com/ja-jp/download/dotnet-framework/net48)パッケージをインストールし、コンピューターを再起動してアプリを実行してみてください。 -### 可能性2:CPU命令セットがサポートしていない - -本プログラムは、`PaddleOCR` を使用してゲームの一部の画面を識別します。 `PaddleOCR` は、新しくリリースされたCPUでのみサポートされている `AVX` 命令セットを使用します。一部の古いCPUはこの命令セットをサポートしていない場合があります。 - -[NoAVX](../3rdparty/ppocr_noavx.zip)バージョンの `PaddleOCR` をダウンロードして解凍し、このアプリで同じ名前のファイルに置き換えてください。これは、`AVX` 命令セットをサポートしていないCPUのユーザー向けのパフォーマンス低下の代替手段であり、必要でない限り使用しないでください。 - -_具体的には、[CPU-Z](https://www.cpuid.com/softwares/cpu-z.html) をダウンロードし、「命令セット」に `AVX` があるかどうかで判断できます。_ - -### 可能性3:ほかのランタイムライブラリの問題 +### 可能性2:ほかのランタイムライブラリの問題 Windows Serverまたは、その他の簡素化されたシステムを使用している場合、[Microsoft C++ビルドツール](https://visualstudio.microsoft.com/ja/visual-cpp-build-tools/)を使用して完全な開発環境構成を試してみてください(.NETおよびC++開発環境のみをインストールする必要があります)。 diff --git a/docs/zh-tw/1.2-常見問題.md b/docs/zh-tw/1.2-常見問題.md index 22862fc2db..e5b3497df1 100644 --- a/docs/zh-tw/1.2-常見問題.md +++ b/docs/zh-tw/1.2-常見問題.md @@ -11,15 +11,7 @@ 請嘗試安裝 [Visual C++ Redistributable](https://docs.microsoft.com/zh-CN/cpp/windows/latest-supported-vc-redist?view=msvc-160#visual-studio-2015-2017-2019-and-2022)、[.NET Framework 4.8](https://dotnet.microsoft.com/download/dotnet-framework/net48) 並重新啟動電腦後執行本軟體。 -### 可能性 2 : CPU 指令集不支援 - -項目使用 `PaddleOCR` 對遊戲部分畫面進行辨識。 `PaddleOCR` 用到了較新發佈的 CPU 才支援的 `AVX` 指令集,而一些較老的 CPU 可能並不支援該指令集。 - -您可以嘗試下載 [NoAVX](../3rdparty/ppocr_noavx.zip) 版本的 `PaddleOCR`, 解壓後替換本軟體中同名的檔案。這是對於使用不支援 `AVX` 指令集的 CPU 的使用者的性能降低的替代方案,如非必要,請不要使用。 - -_具體可以下載 [CPU-Z](https://www.cpuid.com/softwares/cpu-z.html),檢視“指令集”中有無 `AVX` 這一項來判斷_ - -### 可能性 3 : 其它執行庫問題 +### 可能性 2 : 其它執行庫問題 如果您是 Windows Server 或其他精簡版系統的使用者,可嘗試使用 [Microsoft C++ 生成工具](https://visualstudio.microsoft.com/zh-hans/visual-cpp-build-tools/) 進行完整的開發環境配置(僅需要安裝 .NET 及 C++ 開發環境)。 diff --git a/docs/zh-tw/2.1-Linux編譯教程.md b/docs/zh-tw/2.1-Linux編譯教程.md index 9b3676003e..a0ff84e48c 100644 --- a/docs/zh-tw/2.1-Linux編譯教程.md +++ b/docs/zh-tw/2.1-Linux編譯教程.md @@ -12,20 +12,9 @@ 請自行檢索教程安裝,沒什麼特別的,作者當前成功驗證過的版本為`4.5.3`版本。其他版本應該也可以,但仍然推薦使用`4.5.3`版本,與項目保持一致,避免一些不必要的問題。僅`Opencv`本體即可,不需要額外安裝`opencv_contrib`。 -### PaddleOCR +### FastDeploy -1. 使用我魔改了介面的版本: -2. 參考 [這個教程](https://github.com/MaaAssistantArknights/PaddleOCR/blob/release/2.5/deploy/cpp_infer/readme_ch.md) -3. 額外依賴的 `paddle_inference` 直接 [下載](https://paddleinference.paddlepaddle.org.cn/master/user_guides/download_lib.html) 即可。其中 `avx` 和 `mkl` 兩者都可以提高計算效率,建議選擇。但如果 CPU 不支援,則只能選擇 `noavx` 和 `openblas` 的相容性版本(一般稍微新一點的 CPU 都支援兩者了,AMD 的也沒關係)。 `cuda` 和 `cudnn` 是 GPU 加速庫,在 `PaddleOCR` 上可能比較麻煩,我沒折騰過,有興趣可以嘗試下 -4. 若 `cmake` 找不到 `Opencv` ,可嘗試修改 [Opencv 的查找路徑](https://github.com/MaaAssistantArknights/PaddleOCR/blob/release/2.5/deploy/cpp_infer/CMakeLists.txt#L49) -5. 若您使用**非** `MKL` 版本,需要關閉 [MKL 巨集定義](https://github.com/MaaAssistantArknights/PaddleOCR/blob/release/2.5/deploy/cpp_infer/src/args.cpp#L24) (改為 `false`) - -編譯選項參考 - -```bash -cmake ../ -DPADDLE_LIB=/your_path/paddle_inference/ -DOpenCV_DIR=/your_path_to_opencv/ -DWITH_STATIC_LIB=OFF -DBUILD_SHARED=ON -# 若裝置不支援 MKL, 可再額外添加 -DWITH_MKL=OFF 選項,並下載對應的 PaddlePaddle 預測庫版本 -``` +1. 参考 [這個教程](https://github.com/PaddlePaddle/FastDeploy/blob/develop/docs/cn/build_and_install/cpu.md),安装 ONNX Runtime (Ort) 和 Vision 即可。CPU 版比较方便,GPU 版本可能更折腾一点,可自行选择 ### zlib diff --git a/package-definition.json b/package-definition.json index 83eff0a8e2..fc1f2cad11 100644 --- a/package-definition.json +++ b/package-definition.json @@ -15,7 +15,12 @@ "include": [ "resource/**", "MeoAssistant.dll", - "MeoAsstGui.exe" + "MeoAsstGui.exe", + "ON.dll", + "onnxruntime.dll", + "onnxruntime_providers_shared.dll", + "paddle2onnx.dll", + "yaml-cpp.dll" ], "exclude": [ "**/PaddleOCR/**", @@ -37,29 +42,17 @@ "type": "MaaDependency", "configuration": { "include": [ - "libiomp5md.dll", - "mkldnn.dll", - "mklml.dll", - "paddle_inference.dll", - "ppocr.dll", + "ON.dll", + "onnxruntime.dll", + "onnxruntime_providers_shared.dll", + "paddle2onnx.dll", + "yaml-cpp.dll", "opencv_world453.dll", "**/PaddleOCR/**", "**/PaddleCharOCR/**" ] } }, - { - "name_template": "MAAComponent-DependencyNoAvx-{VERSION}-win-x64", - "type": "MaaDependencyNoAvx", - "configuration": { - "include": [ - "opencv_world453.dll", - "**/PaddleOCR/**", - "**/PaddleCharOCR/**" - ], - "no_avx_bundle": "3rdparty/ppocr_noavx.zip" - } - }, { "name_template": "MAAComponent-DebugSymbol-{VERSION}-win-x64", "type": "MaaDebugSymbol",