李志森,陳曉榮
(上海理工大學 光電信息與計算機工程學院,上海 200093)
基于Halcon的銀行卡卡號識別
李志森,陳曉榮
(上海理工大學 光電信息與計算機工程學院,上海 200093)
為方便用戶初次使用手機銀行時綁定銀行卡號的操作,使用數(shù)字圖像處理的方法對銀行卡卡號進行識別,可以方便用戶快速、準確地綁定卡。文中介紹了基于Halcon圖像處理軟件經過銀行卡照片的獲取、將圖片轉換為單通道圖片,通過圖像預處理、閾值分割、選擇感興趣區(qū)域、光學字符識別等技術實現(xiàn)對銀行卡號的識別。實驗結果證明,所提方法效果理想,實現(xiàn)了預期目標。
數(shù)字圖像處理;Halcon;光學字符識別;銀行卡
隨著移動互聯(lián)網經濟的興起,各銀行紛紛推出各自的手機銀行APP,以方便用戶進行網上轉賬、購物、投資及其他經濟行為。然而各個手機銀行APP需要與銀行卡綁定才能真正方便用戶。但是在綁定卡片的過程中,用戶往往因為銀行卡號碼數(shù)字多,且需要多次核對而造成不便,而使用數(shù)字圖像處理的辦法將銀行卡正面照片拍下,并且識別銀行卡號,然后幫助客戶自動填充好銀行卡號,將會大大方便客戶綁卡。
對于基于圖像處理的銀行卡卡號識別,個別銀行手機APP也有提供,比較方便的有工商銀行APP和微信錢包等,但對于各個不同的卡片,有些卡號是打印上去的,有些卡號是鋼印印刷的,所以各個APP對銀行卡號的識別正確率也不盡相同。本文主要介紹基于Halcon圖像處理軟件經過銀行卡正面照片的獲取、將圖片轉換為單通道圖片(灰度圖像)、 圖像預處理[1]、 閾值分割[2]、選擇感興趣區(qū)域、光學字符識別[3]對銀行卡號的識別。
圖像處理軟件Halcon來自德國MVtec公司,在歐洲以及日本的工業(yè)界已經是公認具有最佳效能的Machine Vision軟件。它發(fā)源自學術界,有別于市面一般的商用軟件包。事實上,這是一套Image Processing Library,由一千多個各自獨立的函數(shù),以及底層的數(shù)據(jù)管理核心構成。其中包含了各類濾波,色彩以及幾何,數(shù)學轉換,型態(tài)學計算分析,校正,分類辨識,形狀搜尋等等基本的幾何以及影像計算功能,由于這些功能大多并非針對特定工作設計的,因此只要用得到圖像處理的地方,就可以用Halcon強大的計算分析能力來完成工作。應用范圍基本沒有限制,涵蓋醫(yī)學、遙感探測、監(jiān)控、工業(yè)各類自動化檢測。
Halcon 軟件中的 Hdevelop 是能夠與用戶交互式的集程序、 分析、 設計、 編程于一體的圖像處理界面。其中,包含了圖像窗口、 參變量值的變化觀察窗口、 程序編輯窗口和算子窗口等數(shù)種能夠讓用戶直接能夠對平面圖像或者影視圖像進行編輯和觀察變化[4]。
銀行卡卡號識別流程如圖1所示。
圖1 流程圖
2.1 轉換為單通道圖像
一幅完整的圖像,是由紅色、綠色、藍色3個通道組成的。紅色、綠色、藍色3個通道的縮覽圖都是以灰度顯示的。用不同的灰度色階來表示“ 紅、綠、藍”在圖像中的比重。通道中的純白,代表了該色光在此處為最高亮度,亮度級別是255。
在RGB彩色模型[5]中表示的圖像由3個分量圖像組成,每種原色一幅分量圖像。當送入RGB監(jiān)視器時,這3幅圖像再屏幕上混合成一幅合成的彩色圖像[6]。單通道圖像[7]就是原色的一幅分量圖像。
數(shù)字圖像的處理中,需先將原圖img_1897.jpg 通過程序代碼的控制轉換成單通道圖像,此過程也稱圖像灰度化[8],以方便后面的灰度圖像的分割和選擇感興趣區(qū)域 。 轉換使用的算子是decompose3 算子,具體語句為decompose3(Image, Image1, Image2,B),此算子可以將一個三通道的圖像轉換成3個單通道圖像,從圖像窗口觀察3個單通道的圖像,通過對比發(fā)現(xiàn),B圖像的顯示效果最好,字符最清晰,所以選擇此單通道圖像進行處理,如圖2所示。
圖2 單通道處理后圖像
2.2 閾值分割
閾值分割[9],即為基于閾值的圖像分割,適用于那些物體(前景)與背景在灰度上有較大差異的圖像分割問題[10]。其基本原理是:通過設定不同的特征閾值,把圖像素點分為若干類。圖像閾值化的目的就是按照灰度級對像素集合進行劃分,得到的子集形成一個與顯示景物相對應的區(qū)域,各個區(qū)域的內部有一致的屬性,可以通過一個或多個閾值實現(xiàn)[11]。假設單通道圖B對應圖像f(x,y),把閾值設為T,則圖像會被分割成兩部分,即把大于等于該閾值的像素點設置為1,小于該閾值的像素點設置為0。得到后的二值圖像可定義為
(1)
但式(1)對單個的圖片處理有很好的效果,但是對于多個圖像進行處理時,圖像間有較大變化時,就需要有一個自動估算每幅圖像的閾值的算法。下面的迭代算法可用于這一目的[12]:
(1)為全局閾值T選擇一個初始估計值;
(2)用T分割圖像,產生兩組像素:G1由灰度≥T的所有像素組成,G2由所有 (3)對G1和G2的像素分別計算平均灰度值m1和m2; (4)計算一個新的閾值 T=0.5×(m1+m2) (2) (5)重復步驟(2)~步驟(4),直到連續(xù)迭代中的T值間的差小于預定義的參數(shù)ΔT為止。 此次試驗中,在對銀行卡圖像進行處理時,先對圖像的灰度值的閾值進行了分割。在Halcon中通過Threshold算子來進行分割,具體程序語言為Threshold (B, Regions, 0, 120)。其中0,120代表灰度區(qū)間。灰度區(qū)間的確定需要根據(jù)單通道圖片和灰度直方圖來大致判斷,然后根據(jù)灰度直方圖的波谷確定一個初始估計閾值T。初步判定閾值T之后,然后再經過上述迭代算法計算新的閾值,最終確定了閾值為120。結合圖像顯示窗口顯示的圖像處理效果來看,在0~120區(qū)間的灰度范圍里,經過處理后的圖片,噪聲小,邊緣無殘缺,具體如圖3所示。 圖3 閾值分割后圖像 圖4 區(qū)域聯(lián)通后圖像 2.3 選擇感興趣區(qū)域 通過閾值分割對單通道銀行卡照片灰度值的閾值的選擇,選出有用的區(qū)域Regions。將 Regions進行智能連通,形成了 ConnectedRegions 這個連通區(qū)域[13]。具體實現(xiàn)代碼為Connection (Regions, ConnectedRegions),這個連通區(qū)域如圖4所示。 在區(qū)域當中能夠看到,除了字符外,還有銀行卡芯片和銀行標志都在上面,所以需要進一步選擇出需要處理的那一部分。從視覺上很難看出需要的那一部分坐標,但借助于Halcon軟件自帶的坐標標識,可以容易的判斷銀行卡卡號所在位置。 借助于坐標位置還可以計算出銀行卡卡號每個字符的面積約為2 500,然后借助于Select算子當中對面積的篩選,可以選擇和銀行卡卡號字符相近大小的元素。在本實驗中,由于銀行卡照片中有個別字符是連接起來的,所以需要擴大一下面積選擇范圍。 于是最終的實現(xiàn)語言為:select_shape (ConnectedRegions, SelectedRegions, ′area′,′and′, 2 000, 10 000)。經過這一步的處理,得到了如圖5所示的區(qū)域。 圖5 初次篩選后的圖像 圖6 再次篩選后的圖像 經過第一次篩選,大致獲得了銀行卡卡號字符元素,但是仍有部分區(qū)域是多余的,如圖5所示,所以需要對感興趣的區(qū)域做進一步選擇。同樣借助于Halcon軟件自帶的坐標標識,再根據(jù)Select算子中對行段區(qū)域的選擇,選出最終需要的銀行卡字符區(qū)域。這一步具體實現(xiàn)程序代碼為select_shape (SelectedRegions, SelectedRegions1, ′row′, ′and′, 1 200, 1 400),結果如圖6所示。 2.4 光學字符識別 光學字符識別(Optical Character Recognition,OCR)。OCR字符識別技術是一個系統(tǒng)的技術集[14]。它是指電子設備(例如掃描儀或數(shù)碼相機)檢查紙上打印的字符,通過檢測暗、亮的模式確定其形狀,然后用字符識別方法將形狀翻譯成計算機文字的過程;即針對印刷體字符,采用光學的方式將紙質文檔中的文字轉換成為黑白點陣的圖像文件,并通過識別軟件將圖像中的文字轉換成文本格式,供文字處理軟件進一步編輯加工的技術。 如圖6所示,經過處理后的圖像只剩下了銀行卡卡號這些光學字符在上面,所以需要借助Halcon自帶的OCR識別算子[15]來進行識別,再轉換為計算機能夠識別的數(shù)字字符。 首先,要對區(qū)域進行整理排序才能使用Halcon的OCR算子。整理排序的代碼語句為sort_region (SelectedRegions1, SortedRegions, ′first_point′, ′true′, ′column′)。之后載入Halcon本身自帶的已經訓練好的光學字符庫DotPrint_0-9.omc,來進行字符識別。具體程序代碼為:read_ocr_class_mlp('DotPrint_0-9.omc',OCRHandle)do_ocr_multi_class_mlp(SortedRegions, B, OCRHandle, Class, Confidence)。經過處理后的圖像如圖7所示。相關字符識別已經完成,之后可以選擇將對應的字符顯示出來供用戶核對,這個過程需要用兩行代碼實現(xiàn)。dev_display(Image),for Index := 0 to |Class| by 1,disp_message (WindowHandle, Class[Index], ′image′, Row[Index]-150, Column[Index], ′black′, ′true′),endfor。具體顯示如圖8所示。 圖7 整理后圖像 圖8 最終圖像 通過上述處理可以看出,用數(shù)字圖像處理的方法能夠有效地識別銀行卡號碼,具有速度快、準確率高等優(yōu)點,但各銀行卡卡號的印刷方式不同,所以此方法的準確率也不相同,還需進一步優(yōu)化。 [1] 范立南,韓曉微,張廣淵.圖像處理與模式識別[M].北京:科學出版社,2007. [2] 黃琴波.結合特定理論的圖像分割方法[J]. 電子科技,2010,23(12): 92-95. [3] 王冠,敖志剛,劉永躍.基于快速連通域標記的車牌字符分割[J]計算機與現(xiàn)代化,2007(6):55-57. [4] 吳雪芬.Halcon軟件在車牌圖像處理中的應用[J].電子質量,2014(12):49-54. [5] 黃志勇,孫光民,李芳.基于RGB視覺模型的交通標志分割[J].微電子學與計算機,2004(10):147-152. [6] Rafael C Gonzalez.數(shù)字圖像處理[M].阮秋琦,譯.3版.北京:電子工業(yè)出版社,2011. [7] 張云強,張培林,王國德.基于背景色彩和PCNN的磨粒圖像單通道分割[J].電子測量與儀器學報,2012,26(4):352-358. [8] 丁亞男.基于圖像分解的車牌定位[J].電子科技,2014,27(1):42-44. [9] 尹艷鵬,周穎,曾丹,等.基于多特征融合條件隨機場的人臉圖像分割[J].電子測量技術,2015,38(6):54-59. [10] 李俊山,李旭輝.數(shù)字圖像處理[M]北京:清華大學出版社,2007. [11] 劉東菊.基于閾值的圖像分割算法的研究[D].北京:北京交通大學,2009. [12] 陳柏生.一種二值圖像連通區(qū)域標記的新方法[J].計算機工程與應用,2006(25):46-47. [13] 劉瑛.OCR技術在簡版圖像數(shù)字化中的應用[D]成都:成都理工大學,2007. [14] 黃遙.基于OCR視頻字符識別技術研究與實現(xiàn)[D].北京:北京交通大學,2014. Research on Image Analysis of Bank Card Based on Halcon Software LI Zhisen, CHEN Xiaorong (School of Optical-Electrical and Computer Engineering,University of Shanghai for Science and Technology,Shanghai 200093,China) For the convenience of users first use mobile banking to bind the bank card number operation, the use of digital image processing method for identification of bank card number, can be convenient for users to quickly and accurately bind the card. This paper introduces the Halcon image processing software based on the acquisition, bank card photo convert the picture into a single channel image,the image pre-processing, threshold segmentation, regions of interest, optical character recognition technology to achieve recognition of bank card. The experimental results show that the proposed method is effective and achieves the expected goal. image analysis;Halcon;optical character recognition;bank card 2016- 11- 11 李志森(1991-),男,碩士研究生。研究方向:測試計量技術及儀器等。 10.16180/j.cnki.issn1007-7820.2017.09.016 TN911.73;TP391.41 A 1007-7820(2017)09-056-043 結束語