2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

HUAWEI ML Kitのテキスト認識を使用して請求書番号の自動入力機能を実装する方法

Last updated at Posted at 2020-09-08

##概要
以前の投稿では、HUAWEI ML Kitのカード認識機能を使用して、カードの紐付け機能を実装する方法をご紹介しました。この機能では、ユーザーはカードの写真を提供するだけで、後はアプリが重要な情報をすべて自動的に認識します。これによって、とても簡単にカード情報を入力できますが、請求書や割引クーポンでも同じことができるでしょうか?もちろん、できます。この投稿では、HUAWEI ML Kitのテキスト認識機能を使用して、請求書番号と割引コードの自動入力を実装する方法をご紹介します。
##用途
テキスト認識は、非常に多くの状況で役に立ちます。例えば、以下の請求書をスキャンして、請求書サービス番号が「NO.DE SERVICIO」で始まることを示し、文字数を12文字に制限すると、テキスト認識を使用して簡単に請求書サービス番号「123456789123」を取得できます。
101.png
同様に、下記の割引クーポンをスキャンして、割引コードが「FAVE-」で始まり、文字数を4文字に制限すると定義することにより、割引コード「8329」が得られ、支払いを完了できます。
2.png

とても便利でしょう?アプリに認識させる情報をカスタマイズすることもできます。

テキスト認識の統合

では、請求書番号と割引コードの処理方法を見ていきましょう。

1. 準備

必要な準備に関する詳細は、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を呼び出す

SDKに含まれるLensEngineを使用して、オブジェクトの作成、解析機能の登録、カメラパラメータの初期化を行います。

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

デモ

以上で終わりです。必要に応じてこの機能を拡張できる点を覚えておいてください。では、旅行の請求書のスキャン結果を見てみましょう。
20200908-102216(eSpace).gif
次に、割引コードをスキャンして、オンライン割引を簡単に入手し、支払いを完了してみましょう。
20200908-102229(eSpace).gif
##Githubソースコード
https://github.com/HMS-Core/hms-ml-demo/tree/master/Receipt-Text-Recognition
詳しくは、当社の公式ウェブサイトをご覧ください。HUAWEI ML Kit - About the Service

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?