From: @sishuikang Reviewed-by: @zhanghaibo5,@hangangqiang,@zhanghaibo5 Signed-off-by: @hangangqiangtags/v1.2.0-rc1
| @@ -77,6 +77,7 @@ app | |||||
| │ | | │ | | ||||
| │ ├── cpp # main logic encapsulation classes for model loading and prediction | │ ├── cpp # main logic encapsulation classes for model loading and prediction | ||||
| | | | | | | | | ||||
| | | ├── mindspore_lite_x.x.x-runtime-arm64-cpu #MindSpore Lite Version | |||||
| | | ├── MindSporeNetnative.cpp # JNI methods related to MindSpore calling | | | ├── MindSporeNetnative.cpp # JNI methods related to MindSpore calling | ||||
| │ | └── MindSporeNetnative.h # header file | │ | └── MindSporeNetnative.h # header file | ||||
| │ | | │ | | ||||
| @@ -105,7 +106,7 @@ In this example, the build process automatically downloads the `mindspore-lite-1 | |||||
| Note: if the automatic download fails, please manually download the relevant library files and put them in the corresponding location. | Note: if the automatic download fails, please manually download the relevant library files and put them in the corresponding location. | ||||
| mindspore-lite-1.1.0-inference-android.tar.gz [Download link](https://ms-release.obs.cn-north-4.myhuaweicloud.com/1.1.0/MindSpore/lite/release/android/mindspore-lite-1.1.0-inference-android.tar.gz) | |||||
| mindspore-lite-1.1.1-runtime-arm64-cpu.tar.gz [Download link](https://ms-release.obs.cn-north-4.myhuaweicloud.com/1.1.1/MindSpore/lite/release_0220/android/mindspore-lite-1.1.1-runtime-arm64-cpu.tar.gz) | |||||
| ```text | ```text | ||||
| android{ | android{ | ||||
| @@ -113,6 +114,7 @@ android{ | |||||
| externalNativeBuild{ | externalNativeBuild{ | ||||
| cmake{ | cmake{ | ||||
| arguments "-DANDROID_STL=c++_shared" | arguments "-DANDROID_STL=c++_shared" | ||||
| cppFlags "-std=c++17 -fexceptions -frtti" | |||||
| } | } | ||||
| } | } | ||||
| @@ -128,19 +130,16 @@ Create a link to the `.so` library file in the `app/CMakeLists.txt` file: | |||||
| ```text | ```text | ||||
| # ============== Set MindSpore Dependencies. ============= | # ============== Set MindSpore Dependencies. ============= | ||||
| include_directories(${CMAKE_SOURCE_DIR}/src/main/cpp) | include_directories(${CMAKE_SOURCE_DIR}/src/main/cpp) | ||||
| include_directories(${CMAKE_SOURCE_DIR}/src/main/cpp/${MINDSPORELITE_VERSION}/third_party/flatbuffers/include) | |||||
| include_directories(${CMAKE_SOURCE_DIR}/src/main/cpp/${MINDSPORELITE_VERSION}) | include_directories(${CMAKE_SOURCE_DIR}/src/main/cpp/${MINDSPORELITE_VERSION}) | ||||
| include_directories(${CMAKE_SOURCE_DIR}/src/main/cpp/${MINDSPORELITE_VERSION}/include) | include_directories(${CMAKE_SOURCE_DIR}/src/main/cpp/${MINDSPORELITE_VERSION}/include) | ||||
| include_directories(${CMAKE_SOURCE_DIR}/src/main/cpp/${MINDSPORELITE_VERSION}/include/ir/dtype) | |||||
| include_directories(${CMAKE_SOURCE_DIR}/src/main/cpp/${MINDSPORELITE_VERSION}/include/schema) | |||||
| add_library(mindspore-lite SHARED IMPORTED ) | |||||
| add_library(minddata-lite SHARED IMPORTED ) | |||||
| add_library(mindspore-lite SHARED IMPORTED) | |||||
| add_library(minddata-lite SHARED IMPORTED) | |||||
| set_target_properties(mindspore-lite PROPERTIES IMPORTED_LOCATION | set_target_properties(mindspore-lite PROPERTIES IMPORTED_LOCATION | ||||
| ${CMAKE_SOURCE_DIR}/src/main/cpp/${MINDSPORELITE_VERSION}/lib/libmindspore-lite.so) | ${CMAKE_SOURCE_DIR}/src/main/cpp/${MINDSPORELITE_VERSION}/lib/libmindspore-lite.so) | ||||
| set_target_properties(minddata-lite PROPERTIES IMPORTED_LOCATION | set_target_properties(minddata-lite PROPERTIES IMPORTED_LOCATION | ||||
| ${CMAKE_SOURCE_DIR}/src/main/cpp/${MINDSPORELITE_VERSION}/lib/libminddata-lite.so) | |||||
| ${CMAKE_SOURCE_DIR}/src/main/cpp/${MINDSPORELITE_VERSION}/minddata/lib/libminddata-lite.so) | |||||
| # --------------- MindSpore Lite set End. -------------------- | # --------------- MindSpore Lite set End. -------------------- | ||||
| # Link target library. | # Link target library. | ||||
| @@ -83,7 +83,7 @@ app | |||||
| │ | | │ | | ||||
| │ ├── cpp # 模型加载和预测主要逻辑封装类 | │ ├── cpp # 模型加载和预测主要逻辑封装类 | ||||
| | | ├── .. | | | ├── .. | ||||
| | | ├── mindspore_lite_x.x.x-minddata-arm64-cpu #MindSpore Lite版本 | |||||
| | | ├── mindspore_lite_x.x.x-runtime-arm64-cpu #MindSpore Lite版本 | |||||
| | | ├── MindSporeNetnative.cpp # MindSpore调用相关的JNI方法 | | | ├── MindSporeNetnative.cpp # MindSpore调用相关的JNI方法 | ||||
| │ | └── MindSporeNetnative.h # 头文件 | │ | └── MindSporeNetnative.h # 头文件 | ||||
| | | └── MsNetWork.cpp # MindSpre接口封装 | | | └── MsNetWork.cpp # MindSpre接口封装 | ||||
| @@ -119,7 +119,7 @@ Android JNI层调用MindSpore C++ API时,需要相关库文件支持。可通 | |||||
| > 若自动下载失败,请手动下载相关库文件,解压并放在对应位置: | > 若自动下载失败,请手动下载相关库文件,解压并放在对应位置: | ||||
| mindspore-lite-1.1.0-inference-android.tar.gz [下载链接](https://ms-release.obs.cn-north-4.myhuaweicloud.com/1.1.0/MindSpore/lite/release/android/mindspore-lite-1.1.0-inference-android.tar.gz) | |||||
| mindspore-lite-1.1.1-runtime-arm64-cpu.tar.gz [下载链接](https://ms-release.obs.cn-north-4.myhuaweicloud.com/1.1.1/MindSpore/lite/release_0220/android/mindspore-lite-1.1.1-runtime-arm64-cpu.tar.gz) | |||||
| 在app的`build.gradle`文件中配置CMake编译支持,以及`arm64-v8a`的编译支持,如下所示: | 在app的`build.gradle`文件中配置CMake编译支持,以及`arm64-v8a`的编译支持,如下所示: | ||||
| @@ -129,6 +129,7 @@ android{ | |||||
| externalNativeBuild{ | externalNativeBuild{ | ||||
| cmake{ | cmake{ | ||||
| arguments "-DANDROID_STL=c++_shared" | arguments "-DANDROID_STL=c++_shared" | ||||
| cppFlags "-std=c++17 -fexceptions -frtti" | |||||
| } | } | ||||
| } | } | ||||
| @@ -144,19 +145,16 @@ android{ | |||||
| ```text | ```text | ||||
| # ============== Set MindSpore Dependencies. ============= | # ============== Set MindSpore Dependencies. ============= | ||||
| include_directories(${CMAKE_SOURCE_DIR}/src/main/cpp) | include_directories(${CMAKE_SOURCE_DIR}/src/main/cpp) | ||||
| include_directories(${CMAKE_SOURCE_DIR}/src/main/cpp/${MINDSPORELITE_VERSION}/third_party/flatbuffers/include) | |||||
| include_directories(${CMAKE_SOURCE_DIR}/src/main/cpp/${MINDSPORELITE_VERSION}) | include_directories(${CMAKE_SOURCE_DIR}/src/main/cpp/${MINDSPORELITE_VERSION}) | ||||
| include_directories(${CMAKE_SOURCE_DIR}/src/main/cpp/${MINDSPORELITE_VERSION}/include) | include_directories(${CMAKE_SOURCE_DIR}/src/main/cpp/${MINDSPORELITE_VERSION}/include) | ||||
| include_directories(${CMAKE_SOURCE_DIR}/src/main/cpp/${MINDSPORELITE_VERSION}/include/ir/dtype) | |||||
| include_directories(${CMAKE_SOURCE_DIR}/src/main/cpp/${MINDSPORELITE_VERSION}/include/schema) | |||||
| add_library(mindspore-lite SHARED IMPORTED ) | |||||
| add_library(minddata-lite SHARED IMPORTED ) | |||||
| add_library(mindspore-lite SHARED IMPORTED) | |||||
| add_library(minddata-lite SHARED IMPORTED) | |||||
| set_target_properties(mindspore-lite PROPERTIES IMPORTED_LOCATION | set_target_properties(mindspore-lite PROPERTIES IMPORTED_LOCATION | ||||
| ${CMAKE_SOURCE_DIR}/src/main/cpp/${MINDSPORELITE_VERSION}/lib/libmindspore-lite.so) | ${CMAKE_SOURCE_DIR}/src/main/cpp/${MINDSPORELITE_VERSION}/lib/libmindspore-lite.so) | ||||
| set_target_properties(minddata-lite PROPERTIES IMPORTED_LOCATION | set_target_properties(minddata-lite PROPERTIES IMPORTED_LOCATION | ||||
| ${CMAKE_SOURCE_DIR}/src/main/cpp/${MINDSPORELITE_VERSION}/lib/libminddata-lite.so) | |||||
| ${CMAKE_SOURCE_DIR}/src/main/cpp/${MINDSPORELITE_VERSION}/minddata/lib/libminddata-lite.so) | |||||
| # --------------- MindSpore Lite set End. -------------------- | # --------------- MindSpore Lite set End. -------------------- | ||||
| # Link target library. | # Link target library. | ||||
| @@ -8,34 +8,20 @@ cmake_minimum_required(VERSION 3.4.1) | |||||
| set(CMAKE_VERBOSE_MAKEFILE on) | set(CMAKE_VERBOSE_MAKEFILE on) | ||||
| set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/libs/${ANDROID_ABI}) | set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/libs/${ANDROID_ABI}) | ||||
| set(MINDSPORELITE_VERSION mindspore-lite-1.1.0-inference-android) | |||||
| set(MINDSPORELITE_VERSION mindspore-lite-1.1.1-runtime-arm64-cpu) | |||||
| # ============== Set MindSpore Dependencies. ============= | # ============== Set MindSpore Dependencies. ============= | ||||
| include_directories(${CMAKE_SOURCE_DIR}/src/main/cpp) | include_directories(${CMAKE_SOURCE_DIR}/src/main/cpp) | ||||
| include_directories(${CMAKE_SOURCE_DIR}/src/main/cpp/${MINDSPORELITE_VERSION}/third_party/flatbuffers/include) | |||||
| include_directories(${CMAKE_SOURCE_DIR}/src/main/cpp/${MINDSPORELITE_VERSION}/third_party/hiai_ddk/lib/aarch64) | |||||
| include_directories(${CMAKE_SOURCE_DIR}/src/main/cpp/${MINDSPORELITE_VERSION}) | include_directories(${CMAKE_SOURCE_DIR}/src/main/cpp/${MINDSPORELITE_VERSION}) | ||||
| include_directories(${CMAKE_SOURCE_DIR}/src/main/cpp/${MINDSPORELITE_VERSION}/include) | include_directories(${CMAKE_SOURCE_DIR}/src/main/cpp/${MINDSPORELITE_VERSION}/include) | ||||
| include_directories(${CMAKE_SOURCE_DIR}/src/main/cpp/${MINDSPORELITE_VERSION}/include/ir/dtype) | |||||
| include_directories(${CMAKE_SOURCE_DIR}/src/main/cpp/${MINDSPORELITE_VERSION}/include/schema) | |||||
| include_directories(${CMAKE_SOURCE_DIR}/src/main/cpp/${MINDSPORELITE_VERSION}/minddata/include) | |||||
| add_library(mindspore-lite SHARED IMPORTED) | add_library(mindspore-lite SHARED IMPORTED) | ||||
| add_library(minddata-lite SHARED IMPORTED) | add_library(minddata-lite SHARED IMPORTED) | ||||
| add_library(hiai SHARED IMPORTED) | |||||
| add_library(hiai_ir SHARED IMPORTED) | |||||
| add_library(hiai_ir_build SHARED IMPORTED) | |||||
| set_target_properties(mindspore-lite PROPERTIES IMPORTED_LOCATION | set_target_properties(mindspore-lite PROPERTIES IMPORTED_LOCATION | ||||
| ${CMAKE_SOURCE_DIR}/src/main/cpp/${MINDSPORELITE_VERSION}/lib/aarch64/libmindspore-lite.so) | |||||
| ${CMAKE_SOURCE_DIR}/src/main/cpp/${MINDSPORELITE_VERSION}/lib/libmindspore-lite.so) | |||||
| set_target_properties(minddata-lite PROPERTIES IMPORTED_LOCATION | set_target_properties(minddata-lite PROPERTIES IMPORTED_LOCATION | ||||
| ${CMAKE_SOURCE_DIR}/src/main/cpp/${MINDSPORELITE_VERSION}/minddata/lib/aarch64/libminddata-lite.so) | |||||
| set_target_properties(hiai PROPERTIES IMPORTED_LOCATION | |||||
| ${CMAKE_SOURCE_DIR}/src/main/cpp/${MINDSPORELITE_VERSION}/third_party/hiai_ddk/lib/aarch64/libhiai.so) | |||||
| set_target_properties(hiai_ir PROPERTIES IMPORTED_LOCATION | |||||
| ${CMAKE_SOURCE_DIR}/src/main/cpp/${MINDSPORELITE_VERSION}/third_party/hiai_ddk/lib/aarch64/libhiai_ir.so) | |||||
| set_target_properties(hiai_ir_build PROPERTIES IMPORTED_LOCATION | |||||
| ${CMAKE_SOURCE_DIR}/src/main/cpp/${MINDSPORELITE_VERSION}/third_party/hiai_ddk/lib/aarch64/libhiai_ir_build.so) | |||||
| ${CMAKE_SOURCE_DIR}/src/main/cpp/${MINDSPORELITE_VERSION}/minddata/lib/libminddata-lite.so) | |||||
| # --------------- MindSpore Lite set End. -------------------- | # --------------- MindSpore Lite set End. -------------------- | ||||
| @@ -83,10 +69,6 @@ target_link_libraries( # Specifies the target library. | |||||
| # --- mindspore --- | # --- mindspore --- | ||||
| minddata-lite | minddata-lite | ||||
| mindspore-lite | mindspore-lite | ||||
| hiai | |||||
| hiai_ir | |||||
| hiai_ir_build | |||||
| # libmindspore-lite-fp16 | |||||
| # --- other dependencies.--- | # --- other dependencies.--- | ||||
| -ljnigraphics | -ljnigraphics | ||||
| @@ -15,7 +15,7 @@ android { | |||||
| externalNativeBuild { | externalNativeBuild { | ||||
| cmake { | cmake { | ||||
| arguments "-DANDROID_STL=c++_shared" | arguments "-DANDROID_STL=c++_shared" | ||||
| cppFlags "" | |||||
| cppFlags "-std=c++17 -fexceptions -frtti" | |||||
| } | } | ||||
| } | } | ||||
| ndk { | ndk { | ||||
| @@ -4,13 +4,13 @@ | |||||
| * The libraries can be downloaded manually. | * The libraries can be downloaded manually. | ||||
| */ | */ | ||||
| def targetMindSporeInclude = "src/main/cpp/" | def targetMindSporeInclude = "src/main/cpp/" | ||||
| def mindsporeLite_Version = "mindspore-lite-1.1.0-inference-android" | |||||
| def mindsporeLite_Version = "mindspore-lite-1.1.1-runtime-arm64-cpu" | |||||
| def targetModelFile = "src/main/assets/model/mobilenetv2.ms" | def targetModelFile = "src/main/assets/model/mobilenetv2.ms" | ||||
| def mindSporeLibrary_arm64 = "src/main/cpp/${mindsporeLite_Version}.tar.gz" | def mindSporeLibrary_arm64 = "src/main/cpp/${mindsporeLite_Version}.tar.gz" | ||||
| def modelDownloadUrl = "https://download.mindspore.cn/model_zoo/official/lite/mobilenetv2_openimage_lite/mobilenetv2.ms" | def modelDownloadUrl = "https://download.mindspore.cn/model_zoo/official/lite/mobilenetv2_openimage_lite/mobilenetv2.ms" | ||||
| def mindsporeLiteDownloadUrl = "https://ms-release.obs.cn-north-4.myhuaweicloud.com/1.1.0/MindSpore/lite/release/android/${mindsporeLite_Version}.tar.gz" | |||||
| def mindsporeLiteDownloadUrl = "https://ms-release.obs.cn-north-4.myhuaweicloud.com/1.1.1/MindSpore/lite/release_0220/android/${mindsporeLite_Version}.tar.gz" | |||||
| def cleantargetMindSporeInclude = "src/main/cpp" | def cleantargetMindSporeInclude = "src/main/cpp" | ||||
| @@ -27,8 +27,8 @@ | |||||
| #include "include/ms_tensor.h" | #include "include/ms_tensor.h" | ||||
| #include "MindSporeNetnative.h" | #include "MindSporeNetnative.h" | ||||
| #include "MSNetWork.h" | #include "MSNetWork.h" | ||||
| #include "lite_cv/lite_mat.h" | |||||
| #include "lite_cv/image_process.h" | |||||
| #include "minddata/include/lite_cv/lite_mat.h" | |||||
| #include "minddata/include/lite_cv/image_process.h" | |||||
| using mindspore::dataset::LiteMat; | using mindspore::dataset::LiteMat; | ||||
| using mindspore::dataset::LPixelType; | using mindspore::dataset::LPixelType; | ||||