informations générales
Dans l' article précédent , nous avons expliqué comment créer la fonction de liaison de cartes bancaires à l'aide des capacités de reconnaissance de texte du kit HUAWEI ML. Les utilisateurs n'ont qu'à télécharger une photo de leur carte, et l'application reconnaîtra automatiquement toutes les informations importantes. Cela facilite grandement la saisie des coordonnées bancaires. Mais pouvez-vous faire la même chose avec les factures et les coupons? Bien sûr vous pouvez! Dans cet article, nous allons vous montrer comment utiliser les capacités OCR du HUAWEI ML Kit pour saisir automatiquement les numéros de compte et les codes de réduction.
Rendez-vous
La fonction OCR peut être utilisée dans une grande variété de situations. Par exemple, si vous numérisez la facture ci-dessous, indiquez que le numéro de service commence par «NO.DE SERVICIO» et saisissez également une longueur maximale de 12 caractères. Ensuite, vous recevrez rapidement le numéro de compte "123456789123" en utilisant la fonction de reconnaissance de texte.
De même, si vous scannez le coupon ci-dessous, personnalisez le début du code «FAVE-», limitez la longueur à 4 caractères pour recevoir le code de réduction «8329» puis effectuez le paiement.
Utile, non? Vous pouvez également personnaliser les données que votre application peut reconnaître.
Intégration de la fonction de reconnaissance de texte
Découvrons donc comment gérer les numéros de facture et les codes de réduction.
1. Préparation
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 — .