Retoque artefacto: realización ultra simple de la superresolución de imagen del kit Huawei HMS ML

Prefacio

No sé si se ha encontrado con una situación de este tipo, la nitidez de la imagen después de recibir y descargar la compresión, la calidad de la imagen es borrosa, y mucho menos la vista ampliada. Recientemente lo encontré. Recibí un paquete de fotos de viaje comprimidas de un amigo. Después de abrirlo, Dios mío, la escena tenue, el retrato negro y la imagen borrosa, ¿cómo puedo publicarlo en el círculo de amigos para presumir? No tuve más remedio que conectarme en línea para pedir ayuda. Realmente me hizo descubrir una súper resolución de imagen de Huawei HMS ML Kit súper fácil de usar y fácil de operar. El punto es que este SDK es completamente gratuito y aplicable a varios modelos de Android.

Introducción de antecedentes

La superresolución de imagen de Huawei HMS ML Kit se basa en una red neuronal profunda y proporciona capacidades de superresolución 1x y 3x aplicables a terminales móviles. La superdivisión 1x elimina el ruido de compresión, la superdivisión 3x proporciona una capacidad de amplificación 3 veces mayor al tiempo que suprime el ruido de compresión. En pocas palabras, la superresolución de imagen de Huawei proporciona servicios 1x y 3x. La superresolución 1x no cambia el tamaño de la imagen, pero mejora la claridad de la imagen y proporciona una experiencia visual más realista y natural. La superresolución 3x es el borde de la imagen. El aumento largo es 3 veces, el aumento de píxeles es 9 veces, la resolución es mayor y la textura detallada es más clara.

Escenas relacionadas

La superresolución de imagen se usa ampliamente en varias escenas de la vida real (imágenes de plantas verdes, comida, retratos, paisajes, etc.), no solo para optimizar rostros humanos y escenas de texto. Por ejemplo, las aplicaciones de compras integran este servicio. Cuando los usuarios amplían las imágenes del producto, pueden obtener detalles más claros del producto a través de la función 3x de las imágenes del Kit de AA. Las aplicaciones de lectura de noticias integran este servicio y los usuarios pueden obtener imágenes más claras a través de la función de superresolución 1x sin cambiar la resolución de la imagen. La APP de la cámara integra este servicio, cuando los usuarios toman fotografías, pueden obtener fotografías más realistas y naturales a través de la función de superdivisión de imágenes.

Combate de desarrollo

1. Preparación para el desarrollo

Antes de comenzar el trabajo de desarrollo de la API, debe completar los preparativos de desarrollo necesarios. Al mismo tiempo, asegúrese de que la dirección del almacén de Maven del HMS Core SDK se haya configurado en su proyecto y que la integración del SDK de este servicio se haya completado.

Para conocer los pasos relacionados, consulte Huawei Developer Alliance :

https://developer.huawei.com/consumer/cn/doc/development/HMS-Guides/ml-process-4

1.1 Configurar la dirección del almacén de Maven en gradle a nivel de proyecto

buildscript {
    repositories {
             ...
        maven {url 'https://developer.huawei.com/repo/'}
    }
}
 dependencies {
                 ...
        classpath 'com.huawei.agconnect:agcp:1.3.1.300'
    }
allprojects {
    repositories {
             ...
        maven {url 'https://developer.huawei.com/repo/'}
    }
}

1.2 Configurar las dependencias del SDK en gradle a nivel de aplicación

dependencies{       
        // 引入集合包。
        implementation 'com.huawei.hms:ml-computer-vision-imageSuperResolution:2.0.2.300'
        implementation 'com.huawei.hms:ml-computer-vision-imageSuperResolution-model:2.0.2.300'     
 }

Nota:

Para utilizar el servicio de superresolución de imágenes, debe establecer targetSdkVersion en menos de 29 en el archivo de configuración build.gradle de la aplicación.

1.3 Agregar configuración al encabezado del archivo

apply plugin: 'com.android.application'
apply plugin: 'com.huawei.agconnect'

1.4 Agregue la siguiente declaración al archivo AndroidManifest.xml para actualizar automáticamente el modelo de aprendizaje automático en el dispositivo

<meta-data   
        android:name="com.huawei.hms.ml.DEPENDENCY"
        android:value= "livenessdetection"/>

1.5 Leer permisos de archivos locales

<!--读权限-->
<uses-permission 
android:name="android.permission.READ_EXTERNAL_STORAGE" />

2. Pasos de desarrollo

2.1 Cree un analizador de superresolución de imágenes.

El analizador se puede crear mediante la clase de parámetro personalizado MLImageSuperResolutionAnalyzerSetting.

// 方式1:使用默认的参数配置即1x超分。
MLImageSuperResolutionAnalyzer analyzer =  MLImageSuperResolutionAnalyzerFactory.getInstance() .getImageSuperResolutionAnalyzer();
// 方式2:使用自定义的参数配置,当前仅支持1x超分,后续可扩展。
MLImageSuperResolutionAnalyzerSetting settings = new  MLImageSuperResolutionAnalyzerSetting  .Factory()
// 设置图像超分辨率倍数1x
setScale(MLImageSuperResolutionAnalyzerSetting.ISR_SCALE_1X) .create();
MLImageSuperResolutionAnalyzer analyzer =  MLImageSuperResolutionAnalyzerFactory.getInstance()  .getImageSuperResolutionAnalyzer(setting)

2.2 Construya MLFrame a través de android.graphics.Bitmap (tenga en cuenta que el tipo de mapa de bits aquí debe ser ARGB8888, preste atención a la conversión necesaria).

// 通过bitmap创建MLFrame,bitmap为输入的图片数据。
MLFrame frame = new MLFrame.Creator().setBitmap(bitmap).create();

2.3 El procesamiento de superresolución de imágenes para
obtener información de códigos de error se puede encontrar en: Código de error del servicio de aprendizaje automático

Task<MLImageSuperResolutionResult> task = analyzer.asyncAnalyseFrame(frame); 
task.addOnSuccessListener(new OnSuccessListener<MLImageSuperResolutionResult>() {
        public void onSuccess(MLImageSuperResolutionResult result) {
                // 识别成功的处理逻辑。
        }
 }).addOnFailureListener(new OnFailureListener() {
        public void onFailure(Exception e) {
                // 识别失败的处理逻辑。
                // failure.
                if(e instanceof MLException) {
                         MLException mlException = (MLException)e;
                        // 获取错误码,开发者可以对错误码进行处理,根据错误码进行差异化的页面提示。
                        int errorCode = mlException.getErrCode();
                        // 获取报错信息,开发者可以结合错误码,快速定位问题。
                        String errorMessage = mlException.getMessage();
                } else {
                        // 其他异常。
                }
        }
});

2.4 Una vez completado el reconocimiento, detenga el analizador y libere los recursos de detección.

if (analyzer != null) {
        analyzer.stop();
}

Manifestación

El editor de superdivisión de imágenes presenta una gran cantidad de contenido, la siguiente es la tabla de comparación de efectos para mostrar el poder de esta función.

Representaciones de la imagen original
Inserte la descripción de la imagen aquí
1x Representaciones de la
Inserte la descripción de la imagen aquí
imagen original
Inserte la descripción de la imagen aquí
3x
Inserte la descripción de la imagen aquí

enlaces relacionados

El aprendizaje automático del kit HMS ML de Huawei integra funciones y servicios como reconocimiento de texto, reconocimiento de tarjetas, traducción de texto, reconocimiento facial, reconocimiento de voz, síntesis de voz, clasificación de imágenes, segmentación de imágenes y compra de fotografías.

Si está interesado, puede hacer clic en el enlace a continuación para aprender:

https://developer.huawei.com/consumer/cn/doc/development/HMS-Guides/ml-introduction-4

Código fuente de Github

Para obtener pautas de desarrollo más detalladas, consulte el sitio web oficial de Huawei Developer Alliance


Enlace original: https://developer.huawei.com/consumer/cn/forum/topicview?tid=0202348901052600500&fid=18 Autor: dejar hojas

Supongo que te gusta

Origin blog.51cto.com/14772288/2539216
Recomendado
Clasificación