278
奇藝
微信錢包中掃描識別銀行卡號的技術原理
微信已經成為世界上用戶量最大的社交APP,微信支付,也非常方便,細心的朋友可能會發現,微信在綁定銀行卡的環節中,有一個掃描識別銀行卡號的技術,相信很多人對這個掃描識別銀行卡號功能非常感興趣,也非常想了解其中的原理。
其實這隻是運用了移動端的OCR識別技術(銀行卡號識別技術)。通過手機攝像頭掃描采集圖像後,通過移動端OCR識別軟件對圖片進程處理,提取銀行卡卡號的過程。
但肯定有想了解的更細的開發者,下麵詳細介紹一下銀行卡號識別技術原理:
銀行卡號識別技術實現的主要步驟如下:
1.取圖到彩色銀行卡圖片:目前主要是采用視頻預覽方式,對視頻進行抽針,取一針清晰的彩色圖像。也就是手機相機掃描界麵在實時取圖,目前主要的是通過檢測邊框來判斷銀行卡是否已經放到指定框內,這樣保證能取到質量比較好的圖片。
2.圖像預處理:這裏主要是去噪(包含灰度處理)和二值化,最終隻留下黑色和白色。
3.卡號行定位:二值化完成後,需要定位到銀行卡號的行業為主。
4.卡號單字符切分:將銀行卡號單個數字進行切分(切分其實也是銀行卡識別技術中 一大難點)
5.卡號字庫比對識別:這一步隻有是將切分完成後的單數字與字庫中的數值模版進行對比,取置信度最高值。
6.輸出前校驗:銀行卡識別輸出前需要做校驗,主要是使用Luhn算法進行校驗,校驗正確後進行輸出。(這裏詳細說下Luhn算法:所有銀行發的銀行卡都是有校驗規則的,卡號最好一位是校驗碼。主要符合以下規則:
1)從卡號最後一位數字開始,逆向將奇數位(1、3、5等等)相加。
2)從卡號最後一位數字開始,逆向將偶數位數字,先乘以2(如果乘積為兩位數,則將其減去9),再求和。
3)將奇數位總和加上偶數位總和,結果應該可以被10整除。)
7:輸出:輸出銀行卡號字符串。
整個銀行卡識別過程結束。雖然說起來感覺簡單,但是有很多細節處理方麵還是需要很強的技術積累的,如果隻是簡單做出一個SDK,識別效果肯定不好,這需要專業級的OCR技術才能做好。這就是為什麼這麼多公司都使用我們的銀行卡識別SDK的原因。
最後說下:微信中的銀行卡識別技術原理和支付寶中銀行卡掃識別技術的原理都是基於以上介紹的技術實現過程。想了解更多,可以上:https://www.sjocr.com/products/64.html
最後更新:2017-10-08 06:48:20