informação geral
No artigo anterior , falamos sobre como criar a função de vincular cartões bancários usando os recursos de reconhecimento de texto do kit HUAWEI ML. Os usuários só precisam fazer upload de uma foto de seu cartão, e o aplicativo reconhecerá automaticamente todas as informações importantes. Isso torna muito mais fácil inserir os detalhes do cartão do banco. Mas você pode fazer o mesmo com faturas e cupons? Claro que você pode! Neste artigo, mostraremos como usar os recursos de OCR do kit HUAWEI ML para inserir números de contas e códigos de desconto automaticamente.
Compromisso
A função OCR pode ser usada em uma ampla variedade de situações. Por exemplo, se você digitalizar a fatura abaixo, indique que o número do serviço começa com “NO.DE SERVICIO” e também insira um limite de comprimento de até 12 caracteres. Em seguida, você receberá rapidamente o número da conta "123456789123" usando a função de reconhecimento de texto.

Da mesma forma, se você escanear o cupom abaixo, personalize o início do código “FAVE-”, limite o comprimento a 4 caracteres para receber o código de desconto “8329” e conclua o pagamento.

Útil, certo? Você também pode personalizar os dados que seu aplicativo pode reconhecer.
Integração da função de reconhecimento de texto
Então, vamos descobrir como lidar com números de faturas e códigos de desconto.
1. Preparação
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 — .