前言
小編前面幾期文章分別給大家介紹了使用 HMS ML Kit SDK 實作微笑抓拍、證件照 DIY、拍照翻譯的功能開發(鏈接見文章末尾),本次小編給大家帶來的是使用 HMS 機器學習服務(ML Kit)銀行卡識別 SDK,一鍵實作銀行卡識別與系結功能,

銀行卡識別的應用場景
介紹開發步驟前,我們先來談談銀行卡識別的具體應用場景,銀行 APP、移動支付、繳費類 APP、電商類 APP 或者其它帶支付功能的 APP 在使用程序中往往會遇到如下常見的幾個應用場景:
- 綁卡支付
常用于支付類APP,或者帶支付功能的APP,用來系結信用卡、銀聯借記卡,提供在線支付功能 - 轉賬匯款
常用于銀行或者支付類APP,用來給本行或者他行用戶進行轉賬, - 實名認證、身份審核
比如社交類APP,通過銀行卡關聯的身份資訊完成快速的實名認證、身份審核等操作,
不管是綁卡、轉賬匯款還是身份審核,涉及到銀行卡操作的都會遇到一個關鍵的步驟,錄入銀行卡資訊,如銀行卡號、有效期等;由于銀行卡號碼往往較長,手工錄入很容易出錯,而且手工錄入卡號資訊,操作繁瑣,使用體驗不佳;借助 HMS ML Kit 銀行卡專用識別能力,則可以輕松應對以上場景,快速、精準的錄入銀行卡資訊,改善用戶使用體驗,
如何使用華為銀行卡識別服務
銀行卡識別服務可以將銀行卡資訊通過視頻流方式輸入,得到影像中銀行卡的卡號、有效期等重要文本資訊,該服務配合身份證識別,可以為用戶提供實名認證、身份審核、卡號錄入等實用功能,降低輸入成本,為用戶提供更加友好的操作體驗,

銀行卡識別提供處理插件,開發者可以集成銀行卡識別插件,無需實作相機視頻流資料的處理,從而實作銀行卡識別能力的快速集成,
集成銀行卡識別服務關鍵流程

由于華為提供了銀行卡識別插件,開發者可以直接呼叫銀行卡插件,因此開發步驟更加簡單了,僅僅需要拉起界面獲取結果就可以完成卡號的識別,
開發實戰
1 開發準備
1.1 在專案級 gradle 里添加華為 maven 倉
打開 AndroidStudio 專案級 build.gradle 檔案,增量添加如下 maven 地址:
buildscript {
repositories {
maven {url 'http://developer.huawei.com/repo/'}
}
}
allprojects {
repositories {
maven { url 'http://developer.huawei.com/repo/'}
}
}
1.2 在應用級的 build.gradle 里面加上 SDK 依賴
dependencies {
// 引入基礎SDK
implementation 'com.huawei.hms:ml-computer-vision-bcr:1.0.3.303'
// 引入銀行卡識別plugin包
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 在 AndroidManifest.xml 檔案里面增量添加模型自動下載
要使應用程式能夠在用戶從華為應用市場安裝您的應用程式后,自動將最新的機器學習模型更新到用戶設備,請將以下陳述句添加到該應用程式的 AndroidManifest.xml 檔案中:
<manifest>
...
<meta-data android:name="com.huawei.hms.ml.DEPENDENCY" android:value= "https://www.cnblogs.com/developer-huawei/archive/2022/02/24/bcr"/>
<!--If multiple models are required,set the parameter as follows:
android:value="https://www.cnblogs.com/developer-huawei/archive/2022/02/24/object,ocr,face,label,icr,bcr,imgseg"-->
...
</manifest>
1.4 在 AndroidManifest.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(){
// 用戶取消處理,
}
// 識別不到任何文字資訊或識別程序發生系統例外的回呼方法,
// retCode:錯誤碼,
// bitmap:檢測失敗的卡證圖片,
@Override
public void onFailure(int retCode, Bitmap bitmap){
// 識別例外處理,
}
@Override
public void onDenied(){
// 相機不支持等場景處理,
}
};
2.2 設定識別引數,呼叫識別器 captureFrame 介面進行識別,識別結果會通過步驟2.1的回呼函式回傳,
private void startCaptureActivity(MLBcrCapture.Callback callback) {
MLBcrCaptureConfig config = new MLBcrCaptureConfig.Factory()
// 設定識別界面橫豎屏,支持三種模式:
// MLBcrCaptureConfig.ORIENTATION_AUTO: 自適應模式,由物理感應器決定顯示方向,
// MLBcrCaptureConfig.ORIENTATION_LANDSCAPE: 橫屏模式,
// MLBcrCaptureConfig.ORIENTATION_PORTRAIT: 豎屏模式,
.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;
}
}
Demo效果
給大家看下 Demo 效果:

github原始碼
原始碼已經上傳 github,大家也可以在 github 上一起完善該功能,
github 原始碼地址:https://github.com/HMS-MLKit/HUAWEI-HMS-MLKit-Sample
銀行卡識別 demo 代碼路徑:MLKit-Sample\module-text\src\main\java\com\mlkit\sample\activity\BankCardRecognitionActivity.java
更詳細的開發指南參考華為開發者聯盟官網
華為開發者聯盟機器學習服務開發指南
往期鏈接:
第一期:用華為 HMS MLKit SDK 三十分鐘在安卓上開發一個微笑抓拍神器
https://developer.huawei.com/consumer/cn/forum/topicview?tid=0201198419687680377&fid=18
第二期:安卓開發實戰,用華為 HMS MLKit 影像分割 SDK 開發一個證件照 DIY 小程式
https://developer.huawei.com/consumer/cn/forum/topicview?tid=0201203408959360433&fid=18
第三期:安卓開發實戰,用 HMS MLKit 華為機器學習服務開發一個拍照翻譯小程式
https://developer.huawei.com/consumer/cn/forum/topicview?tid=0201209905778120045&fid=18
下期預告
基于華為機器學習服務,后面還會有一系列的實戰經驗分享,大家可以持續關注~
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/432062.html
標籤:其他
