超簡單集成華為HMS MLKit 機器學習服務 銀行卡識別SDK,一鍵實現(xiàn)銀行卡綁定

前言

小編前面幾期文章分別給大家介紹了使用HMS ML Kit SDK實現(xiàn)微笑抓拍笼裳、證件照DIY唯卖、拍照翻譯的功能開發(fā)(鏈接見文章末尾),本次小編給大家?guī)淼氖鞘褂肏MS 機器學習服務(ML Kit)銀行卡識別SDK躬柬,一鍵實現(xiàn)銀行卡識別與綁定功能拜轨。


銀行卡識別的應用場景

介紹開發(fā)步驟前,我們先來談談銀行卡識別的具體應用場景允青,銀行APP橄碾、移動支付、繳費類APP、電商類APP或者其它帶支付功能的APP在使用過程中往往會遇到如下常見的幾個應用場景:

· 綁卡支付
常用于支付類APP法牲,或者帶支付功能的APP史汗,用來綁定信用卡、銀聯(lián)借記卡拒垃,提供在線支付功能
· 轉賬匯款
常用于銀行或者支付類APP停撞,用來給本行或者他行用戶進行轉賬。
· 實名認證悼瓮、身份審核
比如社交類APP戈毒,通過銀行卡關聯(lián)的身份信息完成快速的實名認證、身份審核等操作横堡。

不管是綁卡埋市、轉賬匯款還是身份審核,涉及到銀行卡操作的都會遇到一個關鍵的步驟命贴,錄入銀行卡信息道宅,如銀行卡號、有效期等套么;由于銀行卡號碼往往較長培己,手工錄入很容易出錯,而且手工錄入卡號信息胚泌,操作繁瑣省咨,使用體驗不佳;借助HMS ML Kit 銀行卡專用識別能力玷室,則可以輕松應對以上場景零蓉,快速、精準的錄入銀行卡信息穷缤,改善用戶使用體驗敌蜂。
如何使用華為銀行卡識別服務
銀行卡識別服務可以將銀行卡信息通過視頻流方式輸入,得到圖像中銀行卡的卡號津肛、有效期等重要文本信息章喉。該服務配合身份證識別,可以為用戶提供實名認證身坐、身份審核秸脱、卡號錄入等實用功能,降低輸入成本部蛇,為用戶提供更加友好的操作體驗摊唇。



銀行卡識別提供處理插件。開發(fā)者可以集成銀行卡識別插件涯鲁,無需實現(xiàn)相機視頻流數(shù)據的處理巷查,從而實現(xiàn)銀行卡識別能力的快速集成有序。

集成銀行卡識別服務關鍵流程


起界面獲取結果就可以完成卡號的識別。

開發(fā)實戰(zhàn)

1 開發(fā)準備

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= "bcr"/> 
       <!--If multiple models are required,set the parameter as follows:        
       android:value="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 代碼開發(fā)關鍵步驟

2.1 創(chuàng)建識別結果回調函數(shù)

重載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(){ 
        // 用戶取消處理云芦。 
    }  
    // 識別不到任何文字信息或識別過程發(fā)生系統(tǒng)異常的回調方法。 
    // retCode:錯誤碼贸桶。 
    // bitmap:檢測失敗的卡證圖片舅逸。 
    @Override 
    public void onFailure(int retCode, Bitmap bitmap){ 
        // 識別異常處理。 
    } 
    @Override 
    public void onDenied(){ 
        // 相機不支持等場景處理皇筛。 
    }   };

2.2 設置識別參數(shù)琉历,調用識別器captureFrame接口進行識別,識別結果會通過步驟2.1的回調函數(shù)返回水醋。

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中定義的方法撮弧,實現(xiàn)銀行卡識別。

@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

更詳細的開發(fā)指南參考華為開發(fā)者聯(lián)盟官網

華為開發(fā)者聯(lián)盟機器學習服務開發(fā)指南

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末叛拷,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子岂却,更是在濱河造成了極大的恐慌忿薇,老刑警劉巖裙椭,帶你破解...
    沈念sama閱讀 210,978評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異署浩,居然都是意外死亡揉燃,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,954評論 2 384
  • 文/潘曉璐 我一進店門筋栋,熙熙樓的掌柜王于貴愁眉苦臉地迎上來炊汤,“玉大人,你說我怎么就攤上這事弊攘∏栏” “怎么了?”我有些...
    開封第一講書人閱讀 156,623評論 0 345
  • 文/不壞的土叔 我叫張陵襟交,是天一觀的道長迈倍。 經常有香客問我,道長捣域,這世上最難降的妖魔是什么啼染? 我笑而不...
    開封第一講書人閱讀 56,324評論 1 282
  • 正文 為了忘掉前任,我火速辦了婚禮焕梅,結果婚禮上迹鹅,老公的妹妹穿的比我還像新娘。我一直安慰自己贞言,他們只是感情好斜棚,可當我...
    茶點故事閱讀 65,390評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著蜗字,像睡著了一般打肝。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上挪捕,一...
    開封第一講書人閱讀 49,741評論 1 289
  • 那天粗梭,我揣著相機與錄音,去河邊找鬼级零。 笑死断医,一個胖子當著我的面吹牛,可吹牛的內容都是我干的奏纪。 我是一名探鬼主播鉴嗤,決...
    沈念sama閱讀 38,892評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼序调!你這毒婦竟也來了醉锅?” 一聲冷哼從身側響起或听,我...
    開封第一講書人閱讀 37,655評論 0 266
  • 序言:老撾萬榮一對情侶失蹤曙搬,失蹤者是張志新(化名)和其女友劉穎备图,沒想到半個月后赠制,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經...
    沈念sama閱讀 44,104評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡经柴,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年狸窘,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片坯认。...
    茶點故事閱讀 38,569評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡翻擒,死狀恐怖,靈堂內的尸體忽然破棺而出牛哺,到底是詐尸還是另有隱情陋气,我是刑警寧澤,帶...
    沈念sama閱讀 34,254評論 4 328
  • 正文 年R本政府宣布荆隘,位于F島的核電站恩伺,受9級特大地震影響,放射性物質發(fā)生泄漏椰拒。R本人自食惡果不足惜晶渠,卻給世界環(huán)境...
    茶點故事閱讀 39,834評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望燃观。 院中可真熱鬧褒脯,春花似錦、人聲如沸缆毁。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,725評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽脊框。三九已至颁督,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間浇雹,已是汗流浹背沉御。 一陣腳步聲響...
    開封第一講書人閱讀 31,950評論 1 264
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留昭灵,地道東北人吠裆。 一個月前我還...
    沈念sama閱讀 46,260評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像烂完,于是被迫代替她去往敵國和親试疙。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,446評論 2 348