diff --git a/app/src/main/java/com/casic/br/app/view/LoginActivity.kt b/app/src/main/java/com/casic/br/app/view/LoginActivity.kt index 8c0c646..9222751 100644 --- a/app/src/main/java/com/casic/br/app/view/LoginActivity.kt +++ b/app/src/main/java/com/casic/br/app/view/LoginActivity.kt @@ -5,7 +5,6 @@ import com.amap.api.maps.MapsInitializer import com.casic.br.app.R import com.casic.br.app.databinding.ActivityLoginBinding -import com.casic.br.app.external.Yolov8ncnn import com.casic.br.app.utils.AuthenticationHelper import com.casic.br.app.utils.LocaleConstant import com.casic.br.app.utils.RSAUtil @@ -19,14 +18,12 @@ import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialogHub import com.pengxh.kt.lite.utils.SaveKeyValues -import org.opencv.android.OpenCVLoader import pub.devrel.easypermissions.EasyPermissions class LoginActivity : KotlinBaseActivity(), EasyPermissions.PermissionCallbacks { private val context = this - private val yolov8ncnn by lazy { Yolov8ncnn() } private lateinit var userName: String private lateinit var userPassword: String private lateinit var authenticateViewModel: AuthenticateViewModel @@ -44,9 +41,6 @@ binding.userNameView.setText(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) binding.passwordView.setText(SaveKeyValues.getValue(LocaleConstant.PASSWORD, "") as String) - //初始化OpenCV - OpenCVLoader.initLocal() - authenticateViewModel = ViewModelProvider(this)[AuthenticateViewModel::class.java] authenticateViewModel.keyModel.observe(this) { keyModel -> if (keyModel.code == 200) { diff --git a/app/src/main/java/com/casic/br/app/view/LoginActivity.kt b/app/src/main/java/com/casic/br/app/view/LoginActivity.kt index 8c0c646..9222751 100644 --- a/app/src/main/java/com/casic/br/app/view/LoginActivity.kt +++ b/app/src/main/java/com/casic/br/app/view/LoginActivity.kt @@ -5,7 +5,6 @@ import com.amap.api.maps.MapsInitializer import com.casic.br.app.R import com.casic.br.app.databinding.ActivityLoginBinding -import com.casic.br.app.external.Yolov8ncnn import com.casic.br.app.utils.AuthenticationHelper import com.casic.br.app.utils.LocaleConstant import com.casic.br.app.utils.RSAUtil @@ -19,14 +18,12 @@ import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialogHub import com.pengxh.kt.lite.utils.SaveKeyValues -import org.opencv.android.OpenCVLoader import pub.devrel.easypermissions.EasyPermissions class LoginActivity : KotlinBaseActivity(), EasyPermissions.PermissionCallbacks { private val context = this - private val yolov8ncnn by lazy { Yolov8ncnn() } private lateinit var userName: String private lateinit var userPassword: String private lateinit var authenticateViewModel: AuthenticateViewModel @@ -44,9 +41,6 @@ binding.userNameView.setText(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) binding.passwordView.setText(SaveKeyValues.getValue(LocaleConstant.PASSWORD, "") as String) - //初始化OpenCV - OpenCVLoader.initLocal() - authenticateViewModel = ViewModelProvider(this)[AuthenticateViewModel::class.java] authenticateViewModel.keyModel.observe(this) { keyModel -> if (keyModel.code == 200) { diff --git a/app/src/main/java/com/casic/br/app/view/MainActivity.kt b/app/src/main/java/com/casic/br/app/view/MainActivity.kt index 0fb34e3..b9c153c 100644 --- a/app/src/main/java/com/casic/br/app/view/MainActivity.kt +++ b/app/src/main/java/com/casic/br/app/view/MainActivity.kt @@ -20,7 +20,6 @@ } binding.startCheckButton.setOnClickListener { -// navigatePageTo() navigatePageTo() } diff --git a/app/src/main/java/com/casic/br/app/view/LoginActivity.kt b/app/src/main/java/com/casic/br/app/view/LoginActivity.kt index 8c0c646..9222751 100644 --- a/app/src/main/java/com/casic/br/app/view/LoginActivity.kt +++ b/app/src/main/java/com/casic/br/app/view/LoginActivity.kt @@ -5,7 +5,6 @@ import com.amap.api.maps.MapsInitializer import com.casic.br.app.R import com.casic.br.app.databinding.ActivityLoginBinding -import com.casic.br.app.external.Yolov8ncnn import com.casic.br.app.utils.AuthenticationHelper import com.casic.br.app.utils.LocaleConstant import com.casic.br.app.utils.RSAUtil @@ -19,14 +18,12 @@ import com.pengxh.kt.lite.utils.LoadState import com.pengxh.kt.lite.utils.LoadingDialogHub import com.pengxh.kt.lite.utils.SaveKeyValues -import org.opencv.android.OpenCVLoader import pub.devrel.easypermissions.EasyPermissions class LoginActivity : KotlinBaseActivity(), EasyPermissions.PermissionCallbacks { private val context = this - private val yolov8ncnn by lazy { Yolov8ncnn() } private lateinit var userName: String private lateinit var userPassword: String private lateinit var authenticateViewModel: AuthenticateViewModel @@ -44,9 +41,6 @@ binding.userNameView.setText(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) binding.passwordView.setText(SaveKeyValues.getValue(LocaleConstant.PASSWORD, "") as String) - //初始化OpenCV - OpenCVLoader.initLocal() - authenticateViewModel = ViewModelProvider(this)[AuthenticateViewModel::class.java] authenticateViewModel.keyModel.observe(this) { keyModel -> if (keyModel.code == 200) { diff --git a/app/src/main/java/com/casic/br/app/view/MainActivity.kt b/app/src/main/java/com/casic/br/app/view/MainActivity.kt index 0fb34e3..b9c153c 100644 --- a/app/src/main/java/com/casic/br/app/view/MainActivity.kt +++ b/app/src/main/java/com/casic/br/app/view/MainActivity.kt @@ -20,7 +20,6 @@ } binding.startCheckButton.setOnClickListener { -// navigatePageTo() navigatePageTo() } diff --git a/app/src/main/java/com/casic/br/app/view/StartCheckByYoloActivity.kt b/app/src/main/java/com/casic/br/app/view/StartCheckByYoloActivity.kt index ffcf8b7..cf9366b 100644 --- a/app/src/main/java/com/casic/br/app/view/StartCheckByYoloActivity.kt +++ b/app/src/main/java/com/casic/br/app/view/StartCheckByYoloActivity.kt @@ -50,6 +50,7 @@ import kotlinx.coroutines.delay import kotlinx.coroutines.launch import org.opencv.core.Mat +import org.opencv.osgi.OpenCVNativeLoader import java.io.File class StartCheckByYoloActivity : KotlinBaseActivity(), @@ -67,9 +68,9 @@ private val detectedSceneSet by lazy { HashSet() } private val detectedTargetSet by lazy { HashSet() } private val yolov8ncnn by lazy { Yolov8ncnn() } + private val mat by lazy { Mat() } private val weakReferenceHandler by lazy { WeakReferenceHandler(this) } private val detectResultDialog by lazy { DetectResultDialog(this) } - private lateinit var mat: Mat private lateinit var inspectionViewModel: InspectionViewModel private lateinit var configViewModel: ConfigViewModel private lateinit var imageFileViewModel: ImageFileViewModel @@ -83,7 +84,8 @@ override fun initOnCreate(savedInstanceState: Bundle?) { window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON) - mat = Mat() + val openCVNativeLoader = OpenCVNativeLoader() + openCVNativeLoader.init() //加载算法模型。先用检测识别场景,再用分割识别目标和隐患(分割函数用了两个模型) yolov8ncnn.loadModel( @@ -130,6 +132,7 @@ } imageFileViewModel = ViewModelProvider(this)[ImageFileViewModel::class.java] + alarmViewModel = ViewModelProvider(this)[AlarmViewModel::class.java] imageFileViewModel.resultModel.observe(this) { if (it.code == 200) { alarmViewModel.uploadDetectTargetAlarm(context, alarmCode, it.data.toString()) @@ -237,7 +240,6 @@ if (it.resultCode == Activity.RESULT_OK) { lifecycleScope.launch(Dispatchers.Main) { yolov8ncnn.closeCamera() - mat.release() //有些手机性能跟不上,检查界面已经销毁,线程还在继续跑,导致C++出现野指针,延迟1s关闭界面 delay(1000) @@ -494,6 +496,7 @@ .setOnDialogButtonClickListener(object : AlertControlDialog.OnDialogButtonClickListener { override fun onConfirmClick() { + RuntimeCache.sceneName = scene detectedScene = scene detectedSceneSet.add(scene) binding.titleView.setTitle(scene)