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.
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.
Ú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
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();
}
! , . , .
, .
Github
→ Github
→ -: HUAWEI ML Kit — .