资深工程师专业评测--安卓免费的银行卡识别SDK,华为 HMS MLKit 和Card IO哪个好?
1 前言
前面有兩篇文章分別介紹過華為HMS MLKit的銀行卡識別功能,第一篇是寫的怎么簡單集成銀行卡識別,實現銀行卡綁定功能,第二篇又給大家介紹了下銀行卡識別和其它文本類識別服務之間的區別和關系,詳情請戳往期鏈接:
超簡單集成華為HMS MLKit 機器學習服務 銀行卡識別SDK,一鍵實現銀行卡綁定
https://developer.huawei.com/consumer/cn/forum/topicview?tid=0201217390745110144&fid=18
一文搞懂華為HMS ML Kit文本識別、銀行卡識別、通用卡證識別、身份證識別
https://developer.huawei.com/consumer/cn/forum/topicview?tid=0201242744680220246&fid=18
通過以上兩篇文章,小伙伴們想必已經知道銀行卡識別的使用場景,以及要怎么用華為的銀行卡識別SDK了,那華為提供的SDK效果如何,競爭力怎么樣?小編本期文章就給大家做一個深度評測,看下效果怎么樣?
2 選一個競品–Card IO
就像手機評測一樣,小編為了更好的體現評測效果,需要選一個競爭對手,好一較高下,我們就選一個使用量比較多的github開源項目Card.io作對比,看下兩者效果那個好。小編從github上下載了一份demo代碼下來,通過編譯生成了一個APK安裝在了手機上,下面就開始我們的對比吧。
3 對比分析維度
作為一個開發者,想選用一款好用的SDK,主要會考慮這款SDK收不收費、識別準不準、快不快等,小編從開發者角度來列下希望對比的維度,對比將從如下幾個維度展開。
| 收不收費? | 使用成本和費用對比 |
| 都在哪些設備上支持? | 設備類型覆蓋度對比 |
| 集成SDK需要占用APP多大空間? | SDK包大小對比 |
| 能識別哪些國家和類型的卡? | 支持識別的卡類型對比 |
| 識別速度快不快? | 識別速度對比 |
| 識別的準不準? | 識別準確率對比 |
| 集成開發工作量大不大? | 集成難易度對比 |
4 收不收費?–使用成本和費用對比
這個對比簡單,直接列個表格出來吧。
| 華為 HMS MLKit 銀行卡識別服務 | 免費 | 資費情況可以看官方的服務介https://developer.huawei.com/consumer/cn/doc/development/HMS-Guides/ml-introduction-4 |
| Card.io | 免費 | 前面小編已經講過,Card.io是github上開源的項目,因此使用是免費的 |
4.1 對比結論:平手,兩者均為免費
5 都在哪些設備上支持?–設備類型覆蓋度對比
| 華為 HMS MLKit 銀行卡識別服務 | 全機型覆蓋 | 華為HMS MLKit所有端側的能力都是全機型覆蓋的,也就是說華為機型可以使用,非華為手機也可以用 |
| Card.io | 全機型覆蓋 | Card.io本身是開源項目,也是全機型覆蓋。 |
5.1 對比結論:平手,均是全機型覆蓋
6 集成SDK需要占用APP多大空間?–SDK包大小對比
card.io提供了x86_64、arm64-v8a、X86、armeabi-v7a、armeabi、mips等多種算法庫,這個主要是用來針對不同的CPU做適配的,由于當前安卓手機基本都是arm架構的,而armeabi當前已經被淘汰,因此為了公平起見我們只計算arm64-v8a、armeabi-v7a兩種架構的算法庫,華為HMS ML Kit 銀行卡識別服務同樣支持提供這兩種算法庫,下面看下對比結果。
6.1 Cardio SDK包大小:
6.2 華為 MLKit 銀行卡識別 SDK包大小 :
通過分析sample APK大小,可以看到SDK包含了算法和資源兩部分,可以看到SDK部分大小合計約3.1M
6.3 對比結論:顯然,華為HMS MLKit更勝一籌
對比總結如下:
| 華為 HMS MLKit 銀行卡識別服務 | 約3.1M |
| Card.io | 約6.1M |
7 能識別哪些國家和類型的卡?–支持識別的卡類型對比
7.1 常見卡類型分析
國際上常見的銀行卡有Visa、JCB、萬事達、運通卡、中國銀聯等,我們分別針對這些卡選一些樣例出來,看兩個SDK識別結果如何。
7.2 Visa卡識別對比
小編找了幾張visa卡進行識別,看是否可以正確識別出發卡類型和卡號。
7.2.1 Card.io:可以正確識別Visa卡
7.2.2 華為 HMS MLKit:可以正確識別Visa卡
看來針對Visa卡,都可以正確的識別出卡類型和卡號。
7.3 萬事達卡識別對比
7.3.1 Card.io:可以正確識別
7.3.2 華為 HMS MLKit:可以正確識別
7.4 JCB卡識別對比
7.4.1 Card.io:識別測試未成功
由于手頭沒有真實的JCB卡,因此互聯網上找了一些卡,測試多張,均未識別,有真實卡的小伙伴可以自己體驗下,反饋下測試結果。
測試結果說明:如下截圖中,銀行卡外圍的對準框全部變綠表示已經完成對準,但未返回識別結果
7.4.2 華為 HMS MLKit:可以正確識別
注:由于沒有真實卡,所以沒有識別出發卡組織,有真實卡的小伙伴可以自己體驗下,反饋下測試結果。
7.5 運通卡對比
7.5.1 Card.io:識別測試未成功
測試結果說明:如下截圖中,銀行卡外圍的對準框全部變綠表示已經完成對準,但未返回識別結果
手頭沒有真實運通卡,因此互聯網上找了一些卡,測試多張,均未識別,有真實卡的小伙伴可以自己體驗下,反饋下測試結果。
7.5.2 華為 HMS MLKit:可以正確識別
由于沒有真實卡,所以沒有識別出組織,有真實卡的小伙伴可以自己體驗下,反饋下測試結果。
7.6 銀聯卡對比
7.6.1 Card.io:可以正確識別,但發卡行識別錯誤
卡類型被錯誤的識別成了discover卡。
7.6.2 華為HMS ML Kit: 可以正確識別
能夠正確的識別卡號和卡類型。
7.7 對比結論:華為HMS MLKit從測試情況上來看要好于Card.io
| 華為 HMS MLKit 銀行卡識別服務 | 可正確識別 | 可正確識別 | 可正確識別 | 可正確識別 | 可正確識別 |
| Card.io | 可正確識別 | 可正確識別 | 未測試成功 | 未測試成功 | 可正確識別(卡類型識別錯誤) |
通過以上對比可以看到,華為HMS MLKit銀行卡識別國際主流卡均可以識別,Card.io 對Visa、萬事達等常見卡可以識別,但JCB卡、運通卡等未測試通過。
8 識別的快不快?–識別速度對比
公平起見,此處我們只選兩個SDK均能夠識別的卡進行測試。
8.1 Card.io:校準慢但識別快
Card.io前面需要有較長的校準時間,必須要等到卡完全在框內(此時框會變成全綠色)才開始進行檢測,由于校準非常嚴格,因此此處非常考驗使用者的耐心,需要小心翼翼的完全對準。但一旦完全對準后,識別速度非常快,幾乎是無時延,一對準即立馬返回結果。
8.2 華為HMS ML Kit: 可快速校準并識別
從下面動圖可以看到,華為HMS MLKit銀行卡識別不需要完全對準,只必須要大概在檢測框內即可啟動識別,整體端到端算下來要比Card.IO快。
8.3 對比結論:各有千秋,通常情況下端到端識別速度MLKit要好于Card.io
Card.io雖然識別速度較快,但需要依賴校準框完全校準,而校準框完全校準有一定難度,往往需要較長時間。華為HMS ML Kit則無需完全對準校準框。
| Card.io | 識別速度非???#xff0c;但需要依賴校準框完全校準 | 校準框完全對準有一定難度,這個操作往往需要較長時間,導正整個識別過程時間非常長 |
| 華為 HMS MLKit 銀行卡識別服務 | 通常整體速度快于card.io | 無需完全對準校準框,在對準校準框時會同時啟動識別,整體速度通常好于Card.io |
因此對比結論如下:在完全對準校準框情況下,Card.io識別速度好于ML Kit。但如果從端到端(從開始啟動到最終返回結果)來看識別速度的話,則HMS ML Kit大概率會快于Card.io,除非使用Card.io時一啟動即完全對準了校準框,但這通常是難于實現的。
9 識別的準不準?–識別準確率對比
不同的銀行卡可能會對準確率有影響,有可能SDK對某一類銀行卡識別特別好,某一類識別特別差,為了公平起見,我們把銀行卡做進一步的詳細分類,然后在某一類內去測試準確率,了解機器學習的小伙伴可能清楚,常見的機器學習技術往往通過大量的樣本數據集進行樣本訓練生成識別模型,進而可以對待識別的內容進行推理分析,銀行卡識別也是采用類似方式,那銀行卡的字體將是銀行卡識別的一個重要影響因子。
因此我們先把銀行卡按照字體做個簡單分類,銀行卡的字體并沒有統一標準,但國際上常見的銀行卡字體有7B-OCR、OCR-A
1.Farrington7B字體,又稱7B-OCR字體,由加拿大條形碼公司Barcodesoft創造的一種字體,該字體在國際上應用非常廣泛,包括國內多種卡均采用此類字體
2.OCR-A字體,由美國American Type Founders公司創造的一種字體,后來被世界廣泛用于支票編碼、銀行卡號等領域,可以看到其數字“8” 像一個“葫蘆”一樣。
Times字體:
9.1 Farrington7B字體準確率測試
選了10個測試樣本進行測試
Card.io:全部可以正確識別
但銀聯卡的卡組織會被識別成discover,這個問題在前面章節已經闡述過,不再展開。
此外小編在做一些擴展測試時發現,雖然Card.io可以識別Farrington7B字體銀行卡,但僅支持識別xxxx-xxxx-xxxx-xxxx這種每連續4個數字有空格的卡片,而不支持其它不帶空格,以及諸如xxxxxx-xxxxxx-xxxxxx這種格式的銀行卡,比如下方這張卡片,是無法識別的。
如下圖所示:xxxx-xxxx-xxxx-xxxx格式銀行卡綠框完全對準,但無法返回結果
華為HMS ML Kit:全部可以正確識別
HMS MLKit 同樣可以全部識別。
9.2 OCR-A字體準確率測試
小編手頭沒有真實的話,網上找了半天找了4張滿足編碼規則的卡
Card.io:四張卡全部無法識別
不一一列出,選其中兩個錄屏供參考
華為HMS ML Kit:全部可以正確識別
不一一列出,選其中兩個錄屏供參考
| Card.io | 100%(僅支持xxxx-xxxx-xxxx-xxxx格式的銀行卡) | 0% | 0% |
| 華為 HMS MLKit 銀行卡識別服務 | 100% | 100% | 100% |
[備注] 以上準確率數據僅代表本人收集的樣本測試所得出來的結果,不代表官方準確率,數據僅供參考
10 集成工作量大不大?–集成難易度對比
小編分別參考兩邊的官網開發步驟,給大家總結下:
10.1 Card.io 集成難易度: 只需要兩步即可完成代碼開發
1.設置識別參數,調起界面
2.重寫onActivityResult()方法獲取結果
10.2 華為HMS MLKit 集成難易度:同樣只需要兩步即可完成代碼開發
1.設置識別參數,調起界面
2.通過回調獲取識別結果
10.3 對比結論:平手,兩者均非常容易集成
從上面的對比大家可以看到,兩個SDK集成都非常簡單,只需要幾行代碼就可以完成
最后總結
整個評測到這里基本就結束了,通過以上評測,現在可以回答文章開始的問題了,我們直接上對比表格對以上對比結論做個總結:
| 收不收費? | 使用成本和費用對比 | 平手 |
| 都在哪些設備上支持? | 設備類型覆蓋度對比 | 平手 |
| 集成SDK需要占用APP多大空間? | SDK包大小對比 | 測試華為約3.1M, card.io約6.1,華為占優 |
| 都能識別哪些國家和類型的卡? | 支持識別的卡類型對比 | 測試華為可識別五種,card.io三種,華為占優 |
| 識別的快不快? | 識別速度對比 | 各有千秋,通常端到端識別速度華為要好于Card.io |
| 識別的準不準? | 識別準確率對比 | 華為整體要好于Card.io,測試樣本中Card.io對除Farrington 7B以外字體銀行卡未能很好識別 |
| 好不好開發? | 集成難易度對比 | 平手 |
結論分析
為什么會出現這樣的對比結果,小編個人認為這是因為Card.io主要瞄準的是國際通用卡,如Visa、Master卡,但對各個國家的本地卡支持欠佳,另外僅支持非常主流的銀行卡號字體及格式,對部分卡號字體和格式支持欠佳,如果想更加廣泛的識別各種銀行卡的話,那么相信華為HMS MLKit銀行卡識別SDK是個不錯的選擇。
HMS MLKit Demo和Github地址:
HMS MLKit 的Demo下載和github地址請參考:
https://developer.huawei.com/consumer/cn/doc/development/HMS-Examples/ml-samplecode-4
https://github.com/HMS-Core/hms-ml-demo
銀行卡識別demo代碼路徑:
MLKit-Sample\module-text\src\main\java\com\mlkit\sample\activity\BankCardRecognitionActivity.java
總結
以上是生活随笔為你收集整理的资深工程师专业评测--安卓免费的银行卡识别SDK,华为 HMS MLKit 和Card IO哪个好?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 会议室录播方案及录播设备推荐
- 下一篇: excel不显示0_Excel教程:数值