Estoy usando la segmentación de imágenes de Huawei para eliminar el fondo de las imágenes. Este código funciona perfectamente bien en la compilación de depuración , pero no funciona en una compilación de lanzamiento . No entiendo cual puede ser el caso.
Código:
private fun imageSegmentation(bitmap: Bitmap?) { if (bitmap == null) { dialog.dismiss() Toast.makeText(requireContext(), "Something went wrong. Try again!", Toast.LENGTH_LONG).show() return } val setting = MLImageSegmentationSetting.Factory() .setAnalyzerType(MLImageSegmentationSetting.BODY_SEG) .setExact(true) .create() val analyzer = MLAnalyzerFactory.getInstance().getImageSegmentationAnalyzer(setting) val mlFrame = MLFrame.Creator().setBitmap(bitmap).create() val task = analyzer?.asyncAnalyseFrame(mlFrame) task?.addOnSuccessListener { mlImageSegmentationResults -> if (mlImageSegmentationResults != null) { removalFlag = true removalBitmap = mlImageSegmentationResults.foreground } else Toast.makeText(context, "No human body is detected!", Toast.LENGTH_LONG).show() dialog.dismiss() }?.addOnFailureListener { Toast.makeText(context, "No human body is detected!", Toast.LENGTH_LONG).show() dialog.dismiss() } }Dependencias:
implementation 'com.huawei.hms:ml-computer-vision-segmentation:2.2.0.300' implementation 'com.huawei.hms:ml-computer-vision-image-segmentation-body-model:2.2.0.300' Nota : según tengo entendido, se llama a la task?.addOnSuccessListener pero mlImageSegmentationResults devuelve nulo .
Cosas como esta suelen suceder cuando tiene habilitado ProGuard pero no está configurado correctamente. Asegúrese de agregar las reglas apropiadas al archivo proguard-rules.pro para evitar que ofusque las clases relevantes.
Los desarrolladores de la biblioteca suelen proporcionar información sobre esto. Después de una búsqueda rápida se me ocurrió este ejemplo . Las fuentes parecen estar lo suficientemente bien documentadas, por lo que no debería ser un problema encontrar la configuración correcta.
Tenga en cuenta que probablemente necesite agregar reglas para más de una biblioteca.