銀行卡流水翻譯模板 Python+OpenCV+pytesseract 識(shí)別 銀行卡號(hào)
日期:2023-03-11 12:39:36 / 人氣: 561 / 發(fā)布者:成都翻譯公司
OpenCV實(shí)現(xiàn)我們的模板匹配算法,以自動(dòng)識(shí)別信用卡數(shù)字。8)將信用卡號(hào)和信用卡類(lèi)型輸出到我們的終端,并將輸出圖像顯示在我們的屏幕上?,F(xiàn)在,你已經(jīng)完成了OCR識(shí)別信用卡了,是不是很激動(dòng)。具體來(lái)說(shuō),我們應(yīng)用了我們的模板匹配OCR方法來(lái)識(shí)別信用卡的類(lèi)型以及16個(gè)信用卡數(shù)字。在評(píng)估我們的信用卡OCR系統(tǒng)后,我們發(fā)現(xiàn)它是100%準(zhǔn)確的,只要發(fā)卡信用卡公司使用OCR-A字體的數(shù)字。首先給大家介紹一下什么是OCR-A字體:
雖然現(xiàn)代 OCR 系統(tǒng)不需要特殊字體(如 OCR-A),但它們?nèi)匀粡V泛用于身份證、報(bào)告和信用卡。
具體教程如下:
1. OCR通過(guò)??模板匹配與OpenCV結(jié)合
在本節(jié)中,我們將使用 Python + OpenCV 來(lái)實(shí)現(xiàn)我們的模板匹配算法來(lái)自動(dòng)識(shí)別信用卡號(hào)。
為了實(shí)現(xiàn)這一點(diǎn),我們需要應(yīng)用一些圖像處理操作,包括閾值化、計(jì)算梯度幅度表示、形態(tài)學(xué)操作和輪廓提取。
由于應(yīng)用了許多圖像處理操作來(lái)幫助我們檢測(cè)和提取信用卡號(hào),因此當(dāng)輸入圖像經(jīng)過(guò)我們的圖像處理過(guò)程時(shí),我已經(jīng)包含了輸入圖像的大量中間截圖。
首先打開(kāi)一個(gè)新文件,命名為:ocr_template_match.py??,插入如下代碼:
要安裝/升級(jí) imutils,只需使用 pip:
$pipinstall--upgradeimutils
現(xiàn)在我們已經(jīng)安裝并導(dǎo)入了包,我們可以解析我們的命令行參數(shù):
兩個(gè)必需的命令行參數(shù)是:
-Image:圖像的路徑是 OCR 的。
-參考:參考OCR-A圖像的路徑。該圖像包含 OCR-A 字體中的數(shù)字 0-9,允許我們稍后在管道中執(zhí)行模板匹配。
接下來(lái)我們定義信用卡的類(lèi)型:
我們通過(guò)加載參考 OCR-A 圖像來(lái)啟動(dòng)我們的圖像處理管道:
圖 4 顯示了這些步驟的結(jié)果。
現(xiàn)在我們?cè)?OCR-A 字體圖像上找到輪廓:
現(xiàn)在,我們應(yīng)該循環(huán)遍歷輪廓,提取 ROI 并將其與相應(yīng)的數(shù)字相關(guān)聯(lián):
至此,我們已經(jīng)完成了從參考圖像中提取數(shù)字并將它們與相應(yīng)的數(shù)字名稱相關(guān)聯(lián)的工作。
我們的下一個(gè)目標(biāo)是隔離輸入圖像中的 16 位信用卡號(hào)。我們需要先找到并隔離數(shù)字,然后才能啟動(dòng)模板匹配來(lái)識(shí)別每個(gè)數(shù)字。這些圖像處理步驟非常有趣且富有洞察力。
我們繼續(xù)初始化幾個(gè)構(gòu)造核函數(shù)的結(jié)構(gòu):
現(xiàn)在讓我們準(zhǔn)備要進(jìn)行 OCR 的圖像:
讓我們看看我們的輸入圖像:
然后我們調(diào)整大小和灰度操作:
現(xiàn)在我們的圖像是灰色的,大小相同,讓我們進(jìn)行形態(tài)學(xué)操作:
通過(guò)頂帽操作,可以在下圖的結(jié)果圖中看到暗背景下的亮區(qū)(即信用卡號(hào))。
給定我們的高帽圖像,讓我們計(jì)算沿 x 方向的梯度:
結(jié)果如下圖所示:
讓我們繼續(xù)改進(jìn)信用卡數(shù)字查找算法:
這些步驟的結(jié)果如下:
接下來(lái),我們找到輪廓并初始化數(shù)字分組位置列表。
現(xiàn)在讓我們循環(huán)遍歷輪廓,同時(shí)根據(jù)每個(gè)輪廓的縱橫比進(jìn)行過(guò)濾,這樣我們就可以從信用卡的其他不相關(guān)區(qū)域修剪數(shù)字組的位置:
下圖顯示了我們找到的分組——為了演示目的,我讓 OpenCV 在每個(gè)分組周?chē)?huà)一個(gè)邊框:
接下來(lái)銀行卡流水翻譯模板,我們將從左到右對(duì)組進(jìn)行排序并初始化信用卡數(shù)字列表:
現(xiàn)在我們知道了每個(gè)四位數(shù)的位置,讓我們循環(huán)遍歷四個(gè)已排序的組并確定其中的數(shù)字。
這個(gè)循環(huán)很長(zhǎng),分為三個(gè)代碼塊——這是第一個(gè)塊:
下面顯示了一組已提取的組:
讓我們使用嵌套循環(huán)來(lái)繼續(xù)循環(huán)以進(jìn)行模板匹配和相似度得分提?。?/p>
*后,我們?cè)诿拷M周?chē)L制一個(gè)矩形,并以紅色文本查看圖像上的信用卡號(hào):
為了理解腳本的運(yùn)行方式,我們將結(jié)果輸出到終端并在屏幕上顯示我們的圖像。
花點(diǎn)時(shí)間祝賀你——你做到了。要重寫(xiě)(在較高級(jí)別),此腳本:
1)在字典中存儲(chǔ)信用卡類(lèi)型。
2)獲取參考圖像并提取數(shù)字。
3)在字典中存儲(chǔ)號(hào)碼模板。
4) 四個(gè)信用卡號(hào)碼組本地化,每個(gè)號(hào)碼組為四位(共16位)。
5) 提取要匹配的數(shù)字。
6) 對(duì)每個(gè)數(shù)字進(jìn)行模板匹配,將每個(gè)單獨(dú)的ROI與每個(gè)數(shù)字模板0-9進(jìn)行比較,并存儲(chǔ)每次匹配嘗試的分?jǐn)?shù)。
7) 為每個(gè)候選人的號(hào)碼找到*高分,并構(gòu)建一個(gè)名為 output 的列表,其中包含信用卡號(hào)碼。
8) 將信用卡號(hào)和信用卡類(lèi)型輸出到我們的終端,并在我們的屏幕上顯示輸出圖像。
現(xiàn)在是時(shí)候查看腳本運(yùn)行并檢查我們的結(jié)果了。
2.信用卡OCR系統(tǒng)顯示結(jié)果
現(xiàn)在我們已經(jīng)實(shí)現(xiàn)了我們的信用卡 OCR 系統(tǒng),讓我們來(lái)看看。(源碼在下方原鏈接,直接進(jìn)入“下載”模塊填寫(xiě)郵箱即可獲?。?/p>
我們顯然不能使用真實(shí)的信用卡號(hào),所以我收集了一些使用 Google 的信用卡示例。這些信用卡顯然是假的,僅用于演示目的。
但是,您可以在此博客中應(yīng)用相同的技術(shù)來(lái)識(shí)別實(shí)際信用卡上的數(shù)字。
要查看我們的信用卡 OCR 系統(tǒng)的運(yùn)行情況,請(qǐng)打開(kāi)一個(gè)終端并執(zhí)行以下命令:
$pythonocr_template_match.py??--referenceocr_a_reference.png
--imageimages/credit_card_05.png
我們的第一個(gè)結(jié)果圖像,100% 正確:
請(qǐng)注意,只需檢查信用卡號(hào)的第一位數(shù)字,即可將信用卡正確標(biāo)記為萬(wàn)事達(dá)卡。
現(xiàn)在你已經(jīng)完成了信用卡的OCR識(shí)別,你是不是很興奮?
*后,讓我們總結(jié)一下:
在本教程中,我們學(xué)習(xí)了如何使用 OpenCV 和 Python 通過(guò)模板匹配來(lái)執(zhí)行光學(xué)字符識(shí)別 (OCR)。
具體來(lái)說(shuō),我們應(yīng)用我們的模板匹配 OCR 方法來(lái)識(shí)別信用卡類(lèi)型和 16 個(gè)信用卡號(hào)。
為了實(shí)現(xiàn)這一點(diǎn),我們將圖像處理流程分為四個(gè)步驟:
1) 通過(guò)形態(tài)學(xué)操作、閾值和輪廓提取等多種圖像處理技術(shù),檢測(cè)信用卡上的四組數(shù)字。
2) 從四組中提取每一個(gè)數(shù)字,得到需要分類(lèi)的16位數(shù)字。
3)通過(guò)比較模板匹配和OCR-A字體來(lái)獲得我們的號(hào)碼分類(lèi),模板匹配被應(yīng)用于每個(gè)號(hào)碼。
4)查看信用卡卡號(hào)第一位確定發(fā)卡公司。
在評(píng)估我們的信用卡 OCR 系統(tǒng)后,我們發(fā)現(xiàn)它是 100% 準(zhǔn)確的銀行卡流水翻譯模板,只要發(fā)卡公司使用 OCR-A 字體編號(hào)即可。
要擴(kuò)展此應(yīng)用程序,您需要在野外收集信用卡的真實(shí)圖像,并可能通過(guò)標(biāo)準(zhǔn)特征提取或訓(xùn)練或卷積神經(jīng)網(wǎng)絡(luò)訓(xùn)練機(jī)器學(xué)習(xí)模型,以進(jìn)一步提高系統(tǒng)的準(zhǔn)確性。
附上原文鏈接:
原作者鏈接:
相關(guān)閱讀Relate
熱門(mén)文章 Recent
- 派出所出生翻譯模板 美國(guó)印第安納州出生證明翻譯2023-03-11
- 電費(fèi)收費(fèi)發(fā)票翻譯模板 國(guó)家電網(wǎng)充電收費(fèi)標(biāo)準(zhǔn)是什么?收費(fèi)介紹2023-03-11
- 戶口本德語(yǔ)翻譯模板 專欄文章2023-03-11
- 中國(guó)銀行活期存折翻譯模板 中國(guó)工商銀行的存折能夠在網(wǎng)上查看余額嗎?2023-03-11
- 四級(jí)翻譯題萬(wàn)能模板-英語(yǔ)四級(jí)作文萬(wàn)能模板及范文2023-03-11
- 專業(yè)英語(yǔ)感謝信模板帶翻譯2023-03-11
- 門(mén)診疾病證明書(shū)翻譯模板 疾病診斷證明翻譯模板2023-03-11
- 美國(guó)新澤西州駕駛執(zhí)照翻譯模板 中國(guó)駕照在美國(guó)各州使用細(xì)則2023-03-11
- 提單翻譯模板 提單的種類(lèi)PPT2023-03-11
- 駕駛證翻譯件模板 駕駛證英文翻譯 國(guó)外駕照想換國(guó)內(nèi)駕照,需2023-03-11