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.

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.

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
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 — .