Integración de ML Kit con facilidad, para reconocimiento de tarjetas de negocios de alto nivel (SDK adjunto) | de Sherlock | Desarrolladores de Huawei | Noviembre de 2020

Introducción

En una era de vida digital, mantener las conexiones interpersonales nunca ha sido más importante. Es un ritual común para los profesionales intercambiar tarjetas de presentación, pero esto puede conllevar algunos problemas: tener que ingresar información de contacto para cada nuevo contacto, incluidos nombres, empresas y direcciones. Aquí es donde entra en juego el reconocimiento de tarjetas de presentación.

Como funciona

El servicio de reconocimiento de tarjetas de presentación utiliza tecnología de reconocimiento óptico de caracteres (OCR) para escanear texto en una tarjeta, convertirlo en un formato editable y clasificar la información reconocida por categoría. Después de integrar el servicio en su aplicación, sus usuarios podrán recopilar información en una tarjeta de presentación simplemente tomando una imagen, escaneando el código QR en la tarjeta o importando la imagen de la tarjeta.

Preparativos

Antes de desarrollar la API, debe realizar un trabajo preparatorio, como configurar la dirección del repositorio Maven del HMS Core SDK en el proyecto e integrar el SDK para el servicio de reconocimiento de tarjetas de presentación.

Instalar Android Studio

Sitio oficial de descarga

Guía de instalación

Agregue el repositorio Huawei Maven al archivo build.gradle a nivel de proyecto

Abra el archivo build.gradle en el directorio raíz de su proyecto de Android Studio

Agrega la dirección del repositorio de Maven

Ir buildscript > archivo y configure la dirección del repositorio de Maven para HMS Core SDK.

repositories {
maven { url 'https://developer.huawei.com/repo/' }

}
}
Go to allprojects > repositories and configure the Maven repository address for the HMS Core SDK.
allprojects {
repositories {
maven { url 'https://developer.huawei.com/repo/' }

}
}

Importar el SDK

dependencies {
// Text recognition SDK.
implementation 'com.huawei.hms:ml-computer-vision-ocr:2.0.1.300'
// Text recognition model.
implementation 'com.huawei.hms:ml-computer-vision-ocr-cn-model:2.0.1.300'
implementation 'com.huawei.hms:ml-computer-vision-ocr-jk-model:2.0.1.300'
implementation 'com.huawei.hms:ml-computer-vision-ocr-latin-model:2.0.1.300'
}

Agregar el archivo de manifiesto

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

Agregar permisos

<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.hardware.camera.autofocus" />
<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.autofocus" />

Envíe una solicitud de autorización dinámica

if (!(ActivityCompat.checkSelfPermission(this, Manifest.permission.CAMERA) == PackageManager.PERMISSION_GRANTED)) {
requestCameraPermission();
}

Desarrollo

  1. Cree el analizador de texto MLTextAnalyzer para reconocer texto dentro de imágenes. Utilice el parámetro personalizado MLLocalTextSetting para configurar el analizador de texto en el dispositivo.
MLLocalTextSetting setting = new MLLocalTextSetting.Factory()
.setOCRMode(MLLocalTextSetting.OCR_DETECT_MODE)
.setLanguage("zh")
.create();
MLTextAnalyzer analyzer = MLAnalyzerFactory.getInstance()
.getLocalTextAnalyzer(setting);

2. Utilice android.graphics.Bitmap para crear un MLFrame. Los formatos de imagen admitidos incluyen JPG, JPEG, PNG y BMP. Recomendamos establecer la relación de aspecto para las tarjetas de presentación con orientación horizontal en 2: 1 y 1: 2 para las tarjetas de presentación con orientación vertical.

MLFrame frame = MLFrame.fromBitmap(bitmap);

3. Pase el objeto MLFrame al método asyncAnalyseFrame para el reconocimiento de texto.

Task<MLText> task = analyzer.asyncAnalyseFrame(frame);
task.addOnSuccessListener(new OnSuccessListener<MLText>() {
@Override
public void onSuccess(MLText text) {
// Recognition success.

}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(Exception e) {
// Recognition failure.

}
});

4. Una vez que se complete el reconocimiento, detenga el analizador para liberar los recursos de reconocimiento.

try {
if (analyzer != null) {
analyzer.stop();
}
} catch (IOException e) {
// IOException
} catch (Exception e) {
// Exception
}

Más información

Hemos desarrollado una aplicación de demostración que muestra los efectos del servicio de reconocimiento de tarjetas de visita.

Guía de desarrollo

Comunidad oficial de HMS Core en Reddit

Demo y código de ejemplo

Discusiones de desbordamiento de pila

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *