當前位置:
首頁 > 最新 > 還在手動輸入銀行卡號?OCR銀行卡識別實踐

還在手動輸入銀行卡號?OCR銀行卡識別實踐

隨著智能手機的普及,每個人都享受著手機帶給人們的便利。而幾乎每個手機現在都有著兩個甚至三個攝像頭,所以人們對於通過拍照來獲取文件信息的需求也越來越大,我們致力於節省用戶手動輸入信息的時間,提升用戶體驗。

繼上篇OCR技術淺析後,本文給大家介紹的,主要是OCR技術在識別銀行卡上的一些特點和難點,基於兩種應用於銀行卡的OCR技術,一種是基於傳統OCR技術的改進方法,另一種是基於深度學習的OCR技術。

APP自帶的銀行卡識別功能

基於傳統OCR技術的改進

與傳統的OCR相比,銀行卡OCR技術有很大的不同,主要是因為一下幾個原因:

為了應對這些難點,傳統的OCR設計流程如下:

其中主要步驟如下:

我們針對這個流程提出了新的改進方法,流程如下:

基於深度學習的OCR技術

通過上面的介紹,基於傳統OCR技術的識別中間步驟比較多,且所用時間較長,準確率提升起來代價大、難度很高。隨著這幾年深度學習的技術突飛猛進,一些基於深度學習的OCR框架被提出,最主流的是文本檢測結合序列識別,如下圖:

可以看到,基於深度學習的框架不會遇到切割字元等問題,大大提高了準確率。其中,文字區域檢測使用的是有Tian提出的CTPN演算法,該演算法細節OCR技術淺析已詳細描述過,此處不再贅述,演算法效果如下:

通過對演算法得到的結果進行長寬比的篩選即可快速得到卡號區域,使用一種Segmentation-Free的方法CRNN來進行文本行的識別, 即CNN+LSTM+ CTC (Connectionist Temporal Classification),其識別率為最高。其中,LSTM+CTC是將語音識別的解決方案遷移到文本識別來。首先,將整個圖片輸入到LSTM層,一列看成一個單詞,圖片有N列,就會被看成N個單詞,然後這列的像素就看成是這個單詞的描述。在OCR的問題上,其實就是圖片的每一列都輸出各個文字的類別概率。

在這裡值得注意的是,輸出的類別中需要增加一個Blank類別,代表空白無輸出。CTC LOSS的概率求解思路其實很類似於HMM的概率計算,它可以用在任意的序列分類識別的問題上,也是實現語音識別中END-TO-END的關鍵步驟。而CRNN即在LSTM前面加上了CNN預提去特徵,訓練採用的數據是由真實樣本結合自動生成樣本組成的,見下圖:

總結與規劃

本文對銀行卡OCR技術從傳統技術到深度學習框架都做了簡單的介紹,其中很多技術遺憾未能展開,但是例如LSTM+CTC可以應用在語音領域,遷移學習可以幫助很多業務在缺少大量數據的情況下提供一個效果不錯的模型。總之,人工智慧的時代已經來了,未來會在各個領域給大家不斷地創造驚喜。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 拍黑米 的精彩文章:

機器人,我們來聊天吧

TAG:拍黑米 |