趙 杰
(商洛學(xué)院電子信息與電氣工程學(xué)院 商洛 726000)
驗證碼具有技術(shù)簡單、易實施和傳輸數(shù)據(jù)小的優(yōu)點,故而被很多網(wǎng)站尤其是論壇性質(zhì)的網(wǎng)站大面積使用來防止自動化程序(如論壇自動灌水機(jī))進(jìn)行大批量的惡意行為。驗證碼技術(shù)也常用于輔助預(yù)防和阻止垃圾郵件群發(fā)等行為[1]。常用的驗證碼識別方法主要有模板匹配、字符結(jié)構(gòu)、字符形狀等方面[2-4]。這類方法缺點是對傾斜和字符的大小比較敏感,經(jīng)過特殊處理后這些缺點可得到一定改進(jìn)。文獻(xiàn)[5]提出基于外部輪廓的方法,將圖像分割成相應(yīng)若干單個數(shù)字圖像,然后對分隔出來的單個數(shù)字圖像外部輪廓的上、下、左、右4個方向進(jìn)行特征計算,最后依據(jù)所計算得到的外部輪廓方向是否具有突變、左斜、右斜、圓弧等特征來對它們進(jìn)行識別?;跈C(jī)器學(xué)習(xí)的方法近年來研究較多,如利用神經(jīng)網(wǎng)絡(luò)、基于支持向量機(jī)等來進(jìn)行識別驗證碼[6~8],此類方法較傳統(tǒng)方法在識別率上有所提高,但較為復(fù)雜,有時會出現(xiàn)“過學(xué)習(xí)”現(xiàn)象。此外,還有基于粗糙集的彩色驗證碼圖像識別方法[9],根據(jù)字符顏色、大小和位置關(guān)系,使用粗糙集方法將驗證碼字符分割出來,再利用Adaboost進(jìn)行訓(xùn)練、識別。無需太多樣本,識別率較高,但對有一定幾何形變的字符識別率不高。不變矩是指物體(目標(biāo))在進(jìn)行平移、縮放、旋轉(zhuǎn)等幾何變換后基本保持不變的矩統(tǒng)計量。目前,不變矩已成功應(yīng)用于目標(biāo)識別、數(shù)字水印等很多領(lǐng)域[10~11],但在驗證碼識別應(yīng)用很少。本文利用矩不變量來進(jìn)行數(shù)字驗證碼識別,以常用的幾何不變矩(Hu矩)為例給出相關(guān)仿真結(jié)果,最后對算法進(jìn)行總結(jié)討論。
區(qū)域 f(x,y)的(p+q)階矩定義為
其相應(yīng)的中心距定義為
其中,為重心坐標(biāo),(xˉ,yˉ)是目標(biāo)區(qū)域灰度質(zhì)心。 f(x,y)的歸一化(p+q)階中心矩定義為
由此,可以得到下列七種不變矩,它們對平移、旋轉(zhuǎn)、以及尺度變換都具有幾何不變性[12]:
在識別之前需對驗證碼圖像進(jìn)行一系列預(yù)處理操作,整體流程如圖1所示。
一般數(shù)字驗證碼圖像中的數(shù)字個數(shù)保持常量,較易分割,為進(jìn)行后續(xù)數(shù)字分割,首先對圖像進(jìn)行初步去噪。然后對圖像進(jìn)行二值化,對數(shù)字進(jìn)行定位、分割,在實際處理中,為了保證分割效果,可在分割之前再次對噪點進(jìn)行濾除。數(shù)字定位好后,可提取驗證碼圖像中各數(shù)字的不變矩特征進(jìn)行識別。
實驗仿真通過Matlab完成,為便于直觀觀察結(jié)果,構(gòu)建GUI界面。載入驗證碼圖像后界面如圖2所示;對驗證碼圖像進(jìn)行初步去噪、數(shù)字定位、歸一化操作,結(jié)果分別如圖3、圖4、圖5所示。
本文利用圖像的幾何不變矩特征對數(shù)字驗證碼進(jìn)行識別,以Matlab軟件作為測試平臺,并搭建GUI界面進(jìn)行測試。實驗結(jié)果表明了不變矩在識別數(shù)字驗證碼方面的可行性。而且該方法可以很容易地擴(kuò)展到英文字母或字母數(shù)字混合驗證碼的識別中。該實例也可以方便地在相關(guān)課程教學(xué)中使用。
[1]呂霽.淺談驗證碼的識別[J].河北能源職業(yè)技術(shù)學(xué)院學(xué)報,2015,15(1):72-74.
[2]王虎,馮林,孫宇哲.數(shù)字驗證碼識別算法的研究和設(shè)計[J].大連理工大學(xué)學(xué)報,2007,43(32):86-87.
[3]Kang C Y,Zhang W,Zhang T.Research and design of digital validation image recognition algorithm based on contour features[C]//International Conference on Ma?chine Learning and Cybernetics. IEEE, 2008:3022-3025.
[4]朱紹文,陳光喜.一種簡單的基于字符形狀的驗證碼識別技術(shù)[J].桂林電子科技大學(xué)學(xué)報,2010,30(1):59-62.
[5]潘大夫,汪渤.一種基于外部輪廓的數(shù)字驗證碼識別方法[J].微計算機(jī)信息,2007,23(25):256-258.
[6]佟樹成.支持向量機(jī)在驗證碼模式識別中的應(yīng)用研究[J].電腦知識與技術(shù),2017,13(9):166-167.
[7]陳超,毛堅桓,劉寅等.基于卷積神經(jīng)網(wǎng)絡(luò)的鐵路貨運(yùn)網(wǎng)站驗證碼識別[J].指揮信息系統(tǒng)與技術(shù),2016,7(4):91-96.
[8]劉歡,邵蔚元,郭躍飛等.卷積神經(jīng)網(wǎng)絡(luò)在驗證碼識別上的應(yīng)用與研究[J].計算機(jī)工程與應(yīng)用,2016,52(18):1-7.
[9]陳令.基于粗糙集的一類彩色驗證碼識別研究[J].信息網(wǎng)絡(luò)安全,2012,(6):26-28.
[10]Abdeslam Hmimid,Mhamed Sayyouri,Hassan Qjidaa et al.Image classification using a new set of separable two-dimensional discrete orthogonal invariant moments[J].Journal of electronic imaging,2014,23(1):378-392.
[11]Upneja R.Accurate and fast Jacobi-Fourier moments for invariant image recognition[J].Optik-International Jour?nal for Light and Electron Optics,2016,127(19):7925-7940.
[12]張偉,何金國.Hu不變矩的構(gòu)造與推廣[J].計算機(jī)應(yīng)用,2010,30(9):2449-2452.