So implementieren Sie die automatische Nummerneingabe mit der OCR-Funktion des HUAWEI ML Kits

allgemeine Informationen



Im vorherigen Artikel haben wir darüber gesprochen, wie die Funktion zum Verknüpfen von Bankkarten mithilfe der Texterkennungsfunktionen des HUAWEI ML Kits erstellt werden kann. Benutzer laden einfach ein Foto ihrer Karte hoch und die Anwendung erkennt automatisch alle wichtigen Informationen. Dies erleichtert die Eingabe von Bankkartendaten erheblich. Aber können Sie dasselbe mit Rechnungen und Gutscheinen tun? Natürlich kannst du! In diesem Artikel zeigen wir Ihnen, wie Sie die OCR-Funktionen des HUAWEI ML Kits verwenden, um Kontonummern und Rabattcodes automatisch einzugeben.



Geplanter Termin



Die OCR-Funktion kann in einer Vielzahl von Situationen verwendet werden. Wenn Sie beispielsweise die folgende Rechnung scannen, geben Sie an, dass die Servicenummer mit „NO.DE SERVICIO“ beginnt, und geben Sie eine Längenbeschränkung von bis zu 12 Zeichen ein. Dann erhalten Sie schnell die Kontonummer "123456789123" über die Texterkennungsfunktion.



Bild


Wenn Sie den unten stehenden Gutschein scannen, passen Sie den Anfang des FAVE--Codes an, begrenzen Sie die Länge auf 4 Zeichen, um den Rabattcode „8329“ zu erhalten, und schließen Sie die Zahlung ab.



Bild


Nützlich, richtig? Sie können auch die Daten anpassen, die Ihre Anwendung erkennen kann.



Integration der Texterkennungsfunktion



Lassen Sie uns herausfinden, wie mit Rechnungsnummern und Rabattcodes umgegangen wird.



1. Vorbereitung



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();
}




! , . , .



Bild


, .



Bild


Github



Github

→ -: HUAWEI ML Kit — .




All Articles