Cómo implementar la entrada automática de números con la función de OCR del HUAWEI ML Kit

Información general



En el artículo anterior , hablamos sobre cómo crear la función de vincular tarjetas bancarias utilizando las capacidades de reconocimiento de texto del HUAWEI ML Kit. Los usuarios solo necesitan cargar una foto de su tarjeta y la aplicación reconocerá automáticamente toda la información importante. Esto hace que sea mucho más fácil ingresar los detalles de la tarjeta bancaria. ¿Pero puedes hacer lo mismo con facturas y cupones? ¡Por supuesto que puede! En este artículo, le mostraremos cómo usar las capacidades de OCR del HUAWEI ML Kit para ingresar automáticamente números de cuenta y códigos de descuento.



Cita



La función OCR se puede utilizar en una amplia variedad de situaciones. Por ejemplo, si escanea la factura a continuación, indique que el número de servicio comienza con “NO.DE SERVICIO” y también ingrese un límite de longitud de hasta 12 caracteres. Luego, recibirá rápidamente el número de cuenta "123456789123" utilizando la función de reconocimiento de texto.



imagen


Asimismo, si escanea el cupón a continuación, personalice el inicio del código “FAVE-”, limite la longitud a 4 caracteres para recibir el código de descuento “8329” y luego complete el pago.



imagen


Útil, ¿verdad? También puede personalizar los datos que su aplicación puede reconocer.



Integración de la función de reconocimiento de texto



Entonces, descubramos cómo manejar los números de factura y los códigos de descuento.



1. Preparación



HUAWEI Developer. .



1.1 Maven build.gradle



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



SDK :



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


1.3 SDK build.gradle



dependencies {
    // Import the base SDK.
    implementation 'com.huawei.hms:ml-computer-vision-ocr:2.0.1.300'
    // Import the Latin character recognition model package.
    implementation 'com.huawei.hms:ml-computer-vision-ocr-latin-model:2.0.1.300'
    // Import the Japanese and Korean character recognition model package.
    implementation 'com.huawei.hms:ml-computer-vision-ocr-jk-model:2.0.1.300'
    // Import the Chinese and English character recognition model package.
    implementation 'com.huawei.hms:ml-computer-vision-ocr-cn-model:2.0.1.300'
}


1.4 AndroidManifest.xml



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


1.5



<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.INTERNET" />

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


2.



2.1



MLTextAnalyzer analyzer = new MLTextAnalyzer.Factory(context).setLanguage(type).create();


2.2



analyzer.setTransactor(new OcrDetectorProcessor());


2.3 API



LensEngine SDK , .



lensEngine = new LensEngine.Creator(context, analyzer)
  .setLensType(LensEngine.BACK_LENS)
  .applyDisplayDimension(width, height)
  .applyFps(30.0f)
  .enableAutomaticFocus(true)
  .create(); 


2.4 run



try {
    lensEngine.run(holder);
} catch (IOException e) {
    // Exception handling logic.
    Log.e("TAG", "e=" + e.getMessage());
}


2.5 ,



public class OcrDetectorProcessor implements MLAnalyzer.MLTransactor<MLText.Block> {
    @Override
    public void transactResult(MLAnalyzer.Result<MLText.Block> results) {
         SparseArray<MLText.Block> items = results.getAnalyseList();
         // Process the recognition result as required. Only the detection results are processed.
        // Other detection-related APIs provided by ML Kit cannot be called.
    }
    @Override
    public void destroy() {
        // Callback method used to release resources when the detection ends.
    }
}


2.6



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




! , . , .



imagen


, .



imagen


Github



Github

→ -: HUAWEI ML Kit — .




All Articles