銀行卡流水翻譯模板 Python+OpenCV+pytesseract 識別 銀行卡號
日期:2023-03-11 12:39:36 / 人氣: 559 / 發(fā)布者:成都翻譯公司
OpenCV實(shí)現(xiàn)我們的模板匹配算法,以自動識別信用卡數(shù)字。8)將信用卡號和信用卡類型輸出到我們的終端,并將輸出圖像顯示在我們的屏幕上?,F(xiàn)在,你已經(jīng)完成了OCR識別信用卡了,是不是很激動。具體來說,我們應(yīng)用了我們的模板匹配OCR方法來識別信用卡的類型以及16個信用卡數(shù)字。在評估我們的信用卡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通過??模板匹配與OpenCV結(jié)合
在本節(jié)中,我們將使用 Python + OpenCV 來實(shí)現(xiàn)我們的模板匹配算法來自動識別信用卡號。
為了實(shí)現(xiàn)這一點(diǎn),我們需要應(yīng)用一些圖像處理操作,包括閾值化、計(jì)算梯度幅度表示、形態(tài)學(xué)操作和輪廓提取。
由于應(yīng)用了許多圖像處理操作來幫助我們檢測和提取信用卡號,因此當(dāng)輸入圖像經(jīng)過我們的圖像處理過程時,我已經(jīng)包含了輸入圖像的大量中間截圖。
首先打開一個新文件,命名為:ocr_template_match.py??,插入如下代碼:
要安裝/升級 imutils,只需使用 pip:
$pipinstall--upgradeimutils
現(xiàn)在我們已經(jīng)安裝并導(dǎo)入了包,我們可以解析我們的命令行參數(shù):
兩個必需的命令行參數(shù)是:
-Image:圖像的路徑是 OCR 的。
-參考:參考OCR-A圖像的路徑。該圖像包含 OCR-A 字體中的數(shù)字 0-9,允許我們稍后在管道中執(zhí)行模板匹配。
接下來我們定義信用卡的類型:
我們通過加載參考 OCR-A 圖像來啟動我們的圖像處理管道:
圖 4 顯示了這些步驟的結(jié)果。
現(xiàn)在我們在 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)的工作。
我們的下一個目標(biāo)是隔離輸入圖像中的 16 位信用卡號。我們需要先找到并隔離數(shù)字,然后才能啟動模板匹配來識別每個數(shù)字。這些圖像處理步驟非常有趣且富有洞察力。
我們繼續(xù)初始化幾個構(gòu)造核函數(shù)的結(jié)構(gòu):
現(xiàn)在讓我們準(zhǔn)備要進(jìn)行 OCR 的圖像:
讓我們看看我們的輸入圖像:
然后我們調(diào)整大小和灰度操作:
現(xiàn)在我們的圖像是灰色的,大小相同,讓我們進(jìn)行形態(tài)學(xué)操作:
通過頂帽操作,可以在下圖的結(jié)果圖中看到暗背景下的亮區(qū)(即信用卡號)。
給定我們的高帽圖像,讓我們計(jì)算沿 x 方向的梯度:
結(jié)果如下圖所示:
讓我們繼續(xù)改進(jìn)信用卡數(shù)字查找算法:
這些步驟的結(jié)果如下:
接下來,我們找到輪廓并初始化數(shù)字分組位置列表。
現(xiàn)在讓我們循環(huán)遍歷輪廓,同時根據(jù)每個輪廓的縱橫比進(jìn)行過濾,這樣我們就可以從信用卡的其他不相關(guān)區(qū)域修剪數(shù)字組的位置:
下圖顯示了我們找到的分組——為了演示目的,我讓 OpenCV 在每個分組周圍畫一個邊框:
接下來銀行卡流水翻譯模板,我們將從左到右對組進(jìn)行排序并初始化信用卡數(shù)字列表:
現(xiàn)在我們知道了每個四位數(shù)的位置,讓我們循環(huán)遍歷四個已排序的組并確定其中的數(shù)字。
這個循環(huán)很長,分為三個代碼塊——這是第一個塊:
下面顯示了一組已提取的組:
讓我們使用嵌套循環(huán)來繼續(xù)循環(huán)以進(jìn)行模板匹配和相似度得分提?。?/p>
*后,我們在每組周圍繪制一個矩形,并以紅色文本查看圖像上的信用卡號:
為了理解腳本的運(yùn)行方式,我們將結(jié)果輸出到終端并在屏幕上顯示我們的圖像。
花點(diǎn)時間祝賀你——你做到了。要重寫(在較高級別),此腳本:
1)在字典中存儲信用卡類型。
2)獲取參考圖像并提取數(shù)字。
3)在字典中存儲號碼模板。
4) 四個信用卡號碼組本地化,每個號碼組為四位(共16位)。
5) 提取要匹配的數(shù)字。
6) 對每個數(shù)字進(jìn)行模板匹配,將每個單獨(dú)的ROI與每個數(shù)字模板0-9進(jìn)行比較,并存儲每次匹配嘗試的分?jǐn)?shù)。
7) 為每個候選人的號碼找到*高分,并構(gòu)建一個名為 output 的列表,其中包含信用卡號碼。
8) 將信用卡號和信用卡類型輸出到我們的終端,并在我們的屏幕上顯示輸出圖像。
現(xiàn)在是時候查看腳本運(yùn)行并檢查我們的結(jié)果了。
2.信用卡OCR系統(tǒng)顯示結(jié)果
現(xiàn)在我們已經(jīng)實(shí)現(xiàn)了我們的信用卡 OCR 系統(tǒng),讓我們來看看。(源碼在下方原鏈接,直接進(jìn)入“下載”模塊填寫郵箱即可獲?。?/p>
我們顯然不能使用真實(shí)的信用卡號,所以我收集了一些使用 Google 的信用卡示例。這些信用卡顯然是假的,僅用于演示目的。
但是,您可以在此博客中應(yīng)用相同的技術(shù)來識別實(shí)際信用卡上的數(shù)字。
要查看我們的信用卡 OCR 系統(tǒng)的運(yùn)行情況,請打開一個終端并執(zhí)行以下命令:
$pythonocr_template_match.py??--referenceocr_a_reference.png
--imageimages/credit_card_05.png
我們的第一個結(jié)果圖像,100% 正確:
請注意,只需檢查信用卡號的第一位數(shù)字,即可將信用卡正確標(biāo)記為萬事達(dá)卡。
現(xiàn)在你已經(jīng)完成了信用卡的OCR識別,你是不是很興奮?
*后,讓我們總結(jié)一下:
在本教程中,我們學(xué)習(xí)了如何使用 OpenCV 和 Python 通過模板匹配來執(zhí)行光學(xué)字符識別 (OCR)。
具體來說,我們應(yīng)用我們的模板匹配 OCR 方法來識別信用卡類型和 16 個信用卡號。
為了實(shí)現(xiàn)這一點(diǎn),我們將圖像處理流程分為四個步驟:
1) 通過形態(tài)學(xué)操作、閾值和輪廓提取等多種圖像處理技術(shù),檢測信用卡上的四組數(shù)字。
2) 從四組中提取每一個數(shù)字,得到需要分類的16位數(shù)字。
3)通過比較模板匹配和OCR-A字體來獲得我們的號碼分類,模板匹配被應(yīng)用于每個號碼。
4)查看信用卡卡號第一位確定發(fā)卡公司。
在評估我們的信用卡 OCR 系統(tǒng)后,我們發(fā)現(xiàn)它是 100% 準(zhǔn)確的銀行卡流水翻譯模板,只要發(fā)卡公司使用 OCR-A 字體編號即可。
要擴(kuò)展此應(yīng)用程序,您需要在野外收集信用卡的真實(shí)圖像,并可能通過標(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
熱門文章 Recent
- 英語四級翻譯模板有用嗎 英語四級題型和分值分布你了解嗎?2019年英語四級考試題型*新整理2023-03-11
- 應(yīng)聘翻譯的英語簡歷范文模板 英語翻譯面試自我介紹2023-03-11
- 翻譯后的計(jì)算機(jī)化系統(tǒng)驗(yàn)證模板 完整的計(jì)算機(jī)化系統(tǒng)驗(yàn)證2023-03-11
- 翻譯專業(yè)個人簡歷模板范文 2019年翻譯簡歷模板范文.doc2023-03-11
- 德語翻譯大學(xué)生個人簡歷模板 大學(xué)生個人簡歷模版.2023-03-11
- 安卓翻譯軟件模板 關(guān)于外文翻譯基于安卓系統(tǒng)的電子菜單軟件譯文實(shí)用模版2023-03-11
- 證書西語翻譯模板 畢業(yè)證翻譯2023-03-11
- 上海市結(jié)婚證翻譯模板 *新版結(jié)婚證翻譯(模板)2023-03-11
- 兼職翻譯協(xié)議模板 兼職翻譯合同范本(一).doc2023-03-11
- 四級成績證書翻譯模板 全國商務(wù)英語翻譯資格證書考試簡介2023-03-11