diff --git a/app/src/main/cpp/PhoneDevice.cpp b/app/src/main/cpp/PhoneDevice.cpp index d852bfef..73ba466c 100644 --- a/app/src/main/cpp/PhoneDevice.cpp +++ b/app/src/main/cpp/PhoneDevice.cpp @@ -165,6 +165,7 @@ CPhoneDevice::CPhoneDevice(JavaVM* vm, jobject service, const std::string& appPa mCamera = NULL; m_listener = NULL; m_pRecognizationCfg = NULL; + mAIInitialized = false; mHeartbeatStartTime = 0; mHeartbeatDuration = 0; m_javaService = NULL; @@ -249,7 +250,10 @@ CPhoneDevice::~CPhoneDevice() if (m_pRecognizationCfg != NULL) { - ncnn_uninit(); + if (mAIInitialized) + { + ncnn_uninit(); + } m_pRecognizationCfg = NULL; } } @@ -265,17 +269,26 @@ void CPhoneDevice::SetRecognizationCfg(const IDevice::CFG_RECOGNIZATION* pRecogn { // TODO XYLOG(XYLOG_SEVERITY_INFO, "AI Enabled"); - ncnn_init(); + std::string paramFile = m_appPath + (APP_PATH_RECOG_PARAM); std::string binFile = m_appPath + (APP_PATH_RECOG_BIN); - bool res = YoloV5Ncnn_Init(paramFile, binFile); - if (res) + if (existsFile(paramFile) || !existsFile(binFile)) { - XYLOG(XYLOG_SEVERITY_INFO, "Succeeded to Init NCNN"); + XYLOG(XYLOG_SEVERITY_WARNING, "AI Config Files are invalid"); } else { - XYLOG(XYLOG_SEVERITY_ERROR, "Failed to Init NCNN"); + ncnn_init(); + mAIInitialized = true; + bool res = YoloV5Ncnn_Init(paramFile, binFile); + if (res) + { + XYLOG(XYLOG_SEVERITY_INFO, "Succeeded to Init NCNN"); + } + else + { + XYLOG(XYLOG_SEVERITY_ERROR, "Failed to Init NCNN"); + } } } else diff --git a/app/src/main/cpp/PhoneDevice.h b/app/src/main/cpp/PhoneDevice.h index 23cfc185..1676f7a2 100644 --- a/app/src/main/cpp/PhoneDevice.h +++ b/app/src/main/cpp/PhoneDevice.h @@ -296,6 +296,7 @@ protected: vector mOsds; IListener* m_listener; const CFG_RECOGNIZATION* m_pRecognizationCfg; + bool mAIInitialized; unsigned int mNetId; unsigned int mVersionCode; time_t mBuildTime; diff --git a/gradle.properties b/gradle.properties index 47a75250..89b68fdd 100644 --- a/gradle.properties +++ b/gradle.properties @@ -30,4 +30,5 @@ coreroot=D:/Workspace/Github/xymp/xymp/Core asioroot=D:/Workspace/deps/asio-1.28.0 evpproot=D:/Workspace/Github/evpp ncnnroot=D:/Workspace/deps/ncnn-20240410-android-vulkan +# ncnnroot=D:/Workspace/deps/ncnn-20230517-android-vulkan libzipsdkroot=D:/Workspace/deps/libzip-android-sdk