From 6e43f0f42606e9159c4030ca8a6e29c8436c5c3d Mon Sep 17 00:00:00 2001 From: tunm Date: Sun, 3 Sep 2023 23:08:40 +0800 Subject: [PATCH] Fix iOS forward bug --- .../hyperlpr3.xcodeproj/project.pbxproj | 10 ++++++++++ .../UserInterfaceState.xcuserstate | Bin 27762 -> 37190 bytes cpp/src/buffer_module/camera_buffer.cpp | 8 ++++---- .../inference_helper_mnn.cpp | 5 +++++ 4 files changed, 19 insertions(+), 4 deletions(-) diff --git a/Prj-iOS/hyperlpr3/hyperlpr3.xcodeproj/project.pbxproj b/Prj-iOS/hyperlpr3/hyperlpr3.xcodeproj/project.pbxproj index ba518c6..a66977b 100644 --- a/Prj-iOS/hyperlpr3/hyperlpr3.xcodeproj/project.pbxproj +++ b/Prj-iOS/hyperlpr3/hyperlpr3.xcodeproj/project.pbxproj @@ -679,10 +679,15 @@ "$(inherited)", "$(PROJECT_DIR)", ); + GCC_PREPROCESSOR_DEFINITIONS = ( + "INFERENCE_HELPER_ENABLE_MNN=1", + "IOS_CPU_FORWARD=1", + ); GENERATE_INFOPLIST_FILE = YES; HEADER_SEARCH_PATHS = "$(SRCROOT)/../../cpp/src"; INFOPLIST_KEY_NSHumanReadableCopyright = ""; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -713,10 +718,15 @@ "$(inherited)", "$(PROJECT_DIR)", ); + GCC_PREPROCESSOR_DEFINITIONS = ( + "INFERENCE_HELPER_ENABLE_MNN=1", + "IOS_CPU_FORWARD=1", + ); GENERATE_INFOPLIST_FILE = YES; HEADER_SEARCH_PATHS = "$(SRCROOT)/../../cpp/src"; INFOPLIST_KEY_NSHumanReadableCopyright = ""; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", diff --git a/Prj-iOS/hyperlpr3/hyperlpr3.xcodeproj/project.xcworkspace/xcuserdata/tunm.xcuserdatad/UserInterfaceState.xcuserstate b/Prj-iOS/hyperlpr3/hyperlpr3.xcodeproj/project.xcworkspace/xcuserdata/tunm.xcuserdatad/UserInterfaceState.xcuserstate index 83450d90c7d81ac3e0f3ad6aee52fbba2a957d5a..dd436037a8b287882958cdf6e59aaf7875621621 100644 GIT binary patch literal 37190 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 G{Qm%Ayp4bW delta 14394 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 GmHz`9=XfUo diff --git a/cpp/src/buffer_module/camera_buffer.cpp b/cpp/src/buffer_module/camera_buffer.cpp index 8439a22..9433639 100644 --- a/cpp/src/buffer_module/camera_buffer.cpp +++ b/cpp/src/buffer_module/camera_buffer.cpp @@ -43,9 +43,9 @@ void CameraBuffer::SetDataFormat(DATA_FORMAT data_format) { if (data_format == BGRA) { config_.sourceFormat = MNN::CV::BGRA; } - if (data_format == YCrCb) { - config_.sourceFormat = MNN::CV::YCrCb; - } +// if (data_format == YCrCb) { +// config_.sourceFormat = MNN::CV::YCrCb; +// } } cv::Mat CameraBuffer::GetAffineRGBImage(const cv::Mat &affine_matrix, const int width_out, const int height_out) const { @@ -233,4 +233,4 @@ int CameraBuffer::GetRotationMode() const{ return rotation_mode_; } -} \ No newline at end of file +} diff --git a/cpp/src/inference_helper_module/inference_helper_mnn.cpp b/cpp/src/inference_helper_module/inference_helper_mnn.cpp index cbc8317..2e430aa 100644 --- a/cpp/src/inference_helper_module/inference_helper_mnn.cpp +++ b/cpp/src/inference_helper_module/inference_helper_mnn.cpp @@ -176,7 +176,12 @@ int32_t InferenceHelperMnn::Initialize(const std::string& model_filename, std::v } MNN::ScheduleConfig scheduleConfig; +#ifdef IOS_CPU_FORWARD + PRINT("ios use cpu backend."); + scheduleConfig.type = MNN_FORWARD_CPU; +#else scheduleConfig.type = MNN_FORWARD_AUTO; +#endif scheduleConfig.numThread = num_threads_; // it seems, setting 1 has better performance on Android // MNN::BackendConfig bnconfig; // bnconfig.power = MNN::BackendConfig::Power_High;