主要步驟如下:
1.取圖:目前主要是采用視頻預(yù)覽方式,對視頻進(jìn)行抽針,取一針清晰的彩色圖像。也就是手機(jī)相機(jī)掃描界面在實時取圖,目前主要的是通過檢測邊框來判斷銀行卡是否已經(jīng)放到指定框內(nèi),這樣保證能取到質(zhì)量比較好的圖片。
2.圖像預(yù)處理:這里主要是去噪(包含灰度處理)和二值化,最終只留下黑色和白色。
3.行業(yè)定位:二值化完成后,需要定位到銀行卡號的行業(yè)為主。
4.字符切分:將銀行卡號單個數(shù)字進(jìn)行切分(切分其實也是OCR技術(shù)中一大難點)
5.字庫比對識別:這一步只有是將切分完成后的單數(shù)字與字庫中的數(shù)值模版進(jìn)行對比,取置信度最高值。
6.輸出前校驗:主要是使用Luhn算法進(jìn)行校驗,校驗正確后進(jìn)行輸出。(這里詳細(xì)說下Luhn算法:所有銀行發(fā)的銀行卡都是有校驗規(guī)則的,卡號最好一位是校驗碼。主要符合以下規(guī)則:
1)從卡號最后一位數(shù)字開始,逆向?qū)⑵鏀?shù)位(1、3、5等等)相加。
2)從卡號最后一位數(shù)字開始,逆向?qū)⑴紨?shù)位數(shù)字,先乘以2(如果乘積為兩位數(shù),則將其減去9),再求和。
3)將奇數(shù)位總和加上偶數(shù)位總和,結(jié)果應(yīng)該可以被10整除。)
7:輸出:輸出字符串。