From 6e43f0f42606e9159c4030ca8a6e29c8436c5c3d Mon Sep 17 00:00:00 2001 From: tunm Date: Sun, 3 Sep 2023 23:08:40 +0800 Subject: [PATCH 1/2] 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; From 5b3cd28a70f520742592fe581218f070196c3499 Mon Sep 17 00:00:00 2001 From: tunm Date: Sun, 19 Nov 2023 22:05:02 +0800 Subject: [PATCH 2/2] ios framework --- .../UserInterfaceState.xcuserstate | Bin 37190 -> 38387 bytes cpp/src/context_module/hyper_lpr_context.cpp | 1 + 2 files changed, 1 insertion(+) 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 dd436037a8b287882958cdf6e59aaf7875621621..42a1115be3ae138d9c096268e738ea13ac067707 100644 GIT binary patch delta 16416 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 bp240oJ(tjop>!gIL*EkLq3_{O^y>cug9Tjv delta 15504 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 diff --git a/cpp/src/context_module/hyper_lpr_context.cpp b/cpp/src/context_module/hyper_lpr_context.cpp index 1f0d157..d455420 100644 --- a/cpp/src/context_module/hyper_lpr_context.cpp +++ b/cpp/src/context_module/hyper_lpr_context.cpp @@ -112,6 +112,7 @@ void HyperLPRContext::operator()(CameraBuffer &buffer) { obj.type = type; strcpy(obj.code, text_line.code.c_str()); +// printf("%s\n", obj.code); // obj.code = text_line.code; // cv::imshow("align_image_pad", align_image_pad);