一般情報
以前の記事では、HUAWEI MLキットを使用して、笑顔検出機能とドキュメント写真用のアップルトを作成する方法について説明しました。この記事では、ユーザーが最小限の時間で銀行カードをリンクできるように、銀行カード認識機能を実装する方法を紹介します。
銀行カードの認識機能の目的
開発を始める前に、銀行カード認識機能の目的を見てみましょう。これは、銀行アプリケーションやオンラインストアなどの支払い機能を備えたアプリケーションに最も関連性があります。これらのアプリケーションには、多くの場合、いくつかの一般的な要件があります。
- 銀行カードのリンク
ユーザーは自分の銀行カードをリンクして、迅速なオンライン支払いを行うことができます。
- 銀行振込
ユーザーは、同じ銀行のアカウント間または異なる銀行間で送金できます。
- 実名認証と本人確認
ユーザーは本名ですばやく認証し、銀行カード情報に基づいて身元を確認できます。
これらの各オプションを使用するには、ユーザーはカード番号や有効期限など、銀行カードの詳細を入力する必要があります。手動でデータを入力すると、間違いを犯しやすく、多くの時間を浪費することは確かです。しかし、HUAWEI ML Kitの銀行カード認識サービスのおかげで、ユーザーはエラーなしですばやくデータを入力できるようになります。
銀行カード認識サービスの適用
銀行カード認識サービスにより、カメラは銀行カードを認識し、カード番号や有効期限などの重要なデータを読み取ることができます。ID認識サービスでサポートされており、本人確認やクレジットカード番号入力などの人気のある機能を多数提供しています。
このサービスをアプリケーションで利用できるようにするために統合できる銀行カード認識プラグインを提供します。プラグインがカメラデータを処理します。
開発開始
1.準備
1.1 HuaweiのMavenリポジトリをプロジェクトレベルのファイルに追加
しますbuild.gradle Android Studioプロジェクトのルートフォルダにあるファイルbuild.gradleを開き、Mavenリポジトリのアドレスを追加します。
buildscript {
repositories {
maven {url 'http://developer.huawei.com/repo/'}
} }allprojects {
repositories {
maven { url 'http://developer.huawei.com/repo/'}
}}
1.2SDKの依存関係をアプリレベルのファイルbuild.gradleに追加します
dependencies{
implementation 'com.huawei.hms:ml-computer-vision-bcr:1.0.3.303'
implementation 'com.huawei.hms:ml-computer-card-bcr-plugin:1.0.3.300'
implementation 'com.huawei.hms:ml-computer-card-bcr-model:1.0.3.300' }
1.3最新モデル
への自動アプリ更新を有効にするHUAWEIAppGalleryからダウンロードした後、アプリで機械学習モデルを自動的に更新するには、AndroidManifest.xmlファイルに次のデータを追加します。
<manifest
...
<meta-data
android:name="com.huawei.hms.ml.DEPENDENCY"
android:value= "bcr"/>
<!--If multiple models are required,set the parameter as follows:
android:value="object,ocr,face,label,icr,bcr,imgseg"-->
... </manifest>
1.4AndroidManifest.xmlファイルでカメラとメモリへのアクセス権をリクエストする
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
2.コード開発
2.1認識結果を受け取った後に呼び出され、コールバック関数を作成
オーバーライドし、するonSuccessはonCanceled、ONFAILUREと機能をonDenied:
- onSuccess:認識が完了した後に呼び出されます。MLBcrCaptureResultは、認識結果を表示します。
- onCanceled:ユーザーが認識をキャンセルした場合に呼び出されます。
- onFailure:認識が失敗したときに呼び出されます。
- onDenied:何らかの理由で認識要求が拒否された場合(たとえば、カメラが使用できない場合)に呼び出されます。
private MLBcrCapture.Callback callback = new MLBcrCapture.Callback() {
@Override
public void onSuccess(MLBcrCaptureResult bankCardResult){
}
@Override
public void onCanceled(){
}
@Override
public void onFailure(int retCode, Bitmap bitmap){
}
@Override
public void onDenied(){
} };
2.2レコグナイザーのcaptureFrameAPI呼び出しの認識パラメーターを設定します。認識
データは、2.1で作成されたコールバック関数によって返されます。
private void startCaptureActivity(MLBcrCapture.Callback callback) {
MLBcrCaptureConfig config = new MLBcrCaptureConfig.Factory()
.setOrientation(MLBcrCaptureConfig.ORIENTATION_AUTO)
.create();
MLBcrCapture bankCapture = MLBcrCaptureFactory.getInstance().getBcrCapture(config);
bankCapture.captureFrame(this, callback); }
2.3認識ボタンのコールバックを使用して2.2節で指定されたメソッドを呼び出す
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.detect:
startCaptureActivity(callback);
break;
default:
break;
} }
自分で試してみてください
銀行カード認識機能がどのように機能するかを見てみましょう。
ソース
ソースをGitHubにアップロードしたので、自由に変更してください。
github.com/HMS-Core/hms-ml-demo
詳細については
、MLKitで銀行カードを認識するためのサンプルコードを参照してください-サンプル\モジュール-テキスト\ src \ main \ java \ com \ mlkit \サンプル\アクティビティ\ BankCardRecognitionActivity.java。
詳しくは公式サイトをご覧ください。
新しい例
HUAWEIMLキットの他の便利な機能を紹介します。乞うご期待!