摘 要:互聯網時代,驗證碼是互聯網安全的重要保證。文章應用圖像處理與深度學習方法,通過灰度化、OTSU閾值分割法、腐蝕與膨脹充分提取圖像特征。結合卷積神經網絡(CNN)、GRU單元,構建神經網絡模型。實現對驗證碼中大小寫英文字母和阿拉伯數字的精確識別,驗證碼平均識別準確率達到93%左右,具有一定的實際意義。
關鍵詞:OTSU閾值分割;腐蝕與膨脹;CNN;GRU
0 引言
在互聯網時代,網絡安全是人們日益關注的話題。而驗證碼,就是保護人民網絡安全中的重要一環(huán)。驗證碼是一種區(qū)別當前用戶是人或是計算機的測試方法,廣泛應用于互聯網中,常見于交通系統(tǒng)的票務購買,可以有效防止計算機程序的自動購買,破壞公平。
驗證碼通常由英文字母與阿拉伯數字組成,并且為了防止被機器自動識別,驗證碼圖片往往像素較小,伴隨大量噪點與噪聲線,同時字符存在一定程度的扭曲與粘連,識別難度較大。
本文主要研究由26個大寫字母、26個小寫字母與10個阿拉伯數字組成的4位驗證碼,采用結合CNN與GRU的神經網絡架構,對驗證碼進行識別。
1 相關研究工作
近年來,隨著網絡信息科技的高度發(fā)展,越來越多的學者在驗證碼識別領域上進行廣泛的探索與研究。文獻[1-5]均應用卷積神經網絡,通過調整學習率和網絡層數對圖像驗證碼進行識別。文獻[6]采取字符分割算法,通過預處理把粘連的驗證碼字符切分為獨立的字符,再利用卷積神經網絡進行識別。文獻[7]提出了一種對抗學習方法,有效解決了分割過程中因信息丟失而無法識別的問題。文獻[8-9]應用傳統(tǒng)的機器學習方法,應用SVM與Adaboost進行驗證碼識別。文獻[10]提出應用CTC+LSTM模型,能在數據不充足的情況下獲得高識別精度。
2 驗證碼獲取及預處理
2.1 驗證碼圖片獲取
本文實驗數據來源于https://www.kaggle.com/c/technologytest/overview,實驗數據共有20 000張4位數字與大小寫字母混合的驗證碼圖片。圖片包含一定的噪點、干擾線以及扭曲。
圖片為原始大小,RGB格式。本文使用18 000張作為訓練集,2 000張作為測試集。訓練集與測試集無交集。
訓練集label中的英文字符區(qū)分大小寫。如識別結果為“5EeF”則識別正確;如識別結果為“5eeF”則識別錯誤,即共有62個類。
2.2 數據預處理
2.2.1 圖片灰度化
在驗證碼圖像識別中,RGB提供信息很少,因此對圖像作灰度化處理,將三維的RGB通道降至一維,有利于加快后續(xù)神經網絡的訓練。
灰度化公式:
?
2.2.2 OTSU閾值分割
在數字圖像處理中,二值化具有重要作用。在黑白圖像中,圖像的重要輪廓與結構大大凸顯,同時減少運算量。
本文采取OTSU算法,以確定閾值。其核心思想是尋找一個閾值,把圖像的所有像素點分為兩類。一類像素值小于等于閾值稱為背景區(qū)域;另一類像素值大于閾值稱為前景區(qū)域。當這兩類的類間方差最大時為最合適。
2.2.3 特征增強
在原始的驗證碼圖片中,存在一定的扭曲、變形,使數字或字母的形狀特征存在丟失。因此,本文為了使模型更好地識別出驗證碼,增強字符的特征,對驗證碼的字符進行了加深加粗。
2.2.4 腐蝕與膨脹
在驗證碼中,存在著貫穿字符的噪聲線,對識別造成極大的干擾。例如“I”加上噪聲線,會識別為“T”。因此,本文采取形態(tài)學中的侵蝕與膨脹算法,去除噪聲線。
在形態(tài)學中,腐蝕與膨脹是最基本的兩種操作,它們通常在二進制圖像中使用,與輪廓檢測相類似。
腐蝕通過將像素添加到圖像中對象的感知邊界,擴張放大圖像的明亮白色區(qū)域。侵蝕則沿著物體邊界移除像素并縮小物體。
3 模型構建
3.1 輸入層
在經過特征增強和腐蝕與膨脹處理后,會對字符的一些特征信息造成丟失。
因此,本文對原始圖像只作灰度化處理作為特征圖1。對原始圖像經過特征增強、腐蝕與膨脹作為特征圖2。把兩張?zhí)卣鲌D堆疊作為模型輸入,保留原始圖像信息與提取的特征信息。
3.2 卷積神經網絡
卷積神經網絡是一類包含卷積計算并且具有深度結構的前饋神經網絡,本質是一個多層感知機。卷積神經網絡由卷積層、激活層、池化層3種結構組成。卷積層采用局部連接與權值共享的方式,減少了權值數量,使得網絡易于優(yōu)化;同時降低模型復雜度,減少過擬合風險。
3.2.1 卷積層
卷積層的作用是進行特征提取。通過一個矩陣(大小通常為3×3,5×5,7×7),和圖像進行點乘。這個矩陣稱為卷積核,點乘的過程稱為卷積。其特點為采用局部連接與權值共享的方式,減少了權值數量,使得網絡易于優(yōu)化;同時降低模型復雜度,減少過擬合風險。
但是圖像在卷積后會逐漸變小,雖然提取了特征信息,但是會丟失圖像角落信息。因此,本文在卷積過程中,在卷積層中進行same padding,填充像素,使得輸出結果與卷積前一致,避免圖像邊緣信息丟失。
3.2.2 池化層
池化層,又稱為下采樣層,主要目標是降低特征圖的特征空間。對卷積層提取的特征圖進行下采樣,在減少數據量的同時可以保留有用信息。
本文采取最大池化操作,可以減少卷積層參數誤差造成估計均值的偏移,保留更多的紋理信息。
3.2.3 激活函數
激活函數給神經網絡引入了非線性因素,使得神經網絡可以任意逼近非線性函數,從而應用到眾多非線性模型中。本文采取RELU激活函數,可以有效克服神經網絡訓練過程中梯度消失的問題,加快訓練速度。
3.3 GRU單元
GRU[11]單元是LSTM的一個變體,在LSTM中有3個門函數:輸入門、輸出門和遺忘門來控制輸入值、輸出值和記憶值。在GRU單元中則只有兩個門:更新門和遺忘門。
GRU單元構建更為簡單,適用于搭建較大的網絡。同時,GRU單元只有兩個門控。它的計算效率更高,有利于構筑較大的模型。
3.4 網絡搭建
本文設計了一個17層卷積神經網絡提取特征,并連接2層GRU單元。網絡各層參數如表1所示。
4 實驗驗證
在網絡訓練過程中,參數的選取如表2所示。
在測試集中與其他網絡結構對比如表3所示。
5 結語
本文針對常見的英文字母、數字混合的4位二維碼,通過OTSU閾值分割與基于形態(tài)學的腐蝕與膨脹等預處理,并搭建神經網絡融合CNN與GRU的特點進行識別,取得了不錯的識別率,對于驗證碼識別相關領域的研究具有一定參考價值。但是本文也存在不足之處,神經網絡訓練過程中計算資源消耗大,訓練時間長,如何令網絡輕量化是接下來的改進方向。
無線互聯科技·實驗研究
[參考文獻]
[1]羅焱.基于Tensorflow的驗證碼識別算法實現[J].信息與電腦(理論版),2020(20):29-30.
[2]張國榮,劉炳君,付成麗.基于Python和CNN的數字驗證碼識別[J].太原師范學院學報(自然科學版),2020(3):62-65.
[3]石邵虎,胡學先,李志博,等.基于深度學習的圖像驗證碼識別研究[J].信息工程大學學報,2020(3):325-333.
[4]李世成,東野長磊.基于卷積神經網絡的驗證碼識別[J].軟件,2020(4):173-177.
[5]李成建,李富成,劉建芳.基于卷積神經網絡的數字驗證碼識別研究[J].電子設計工程,2019(17):107-111.
[6]陳振昂,黃星期,秦中元.基于圖像處理和卷積神經網絡的文本驗證碼識別方案[J].網絡空間安全,2020(8):75-80.
[7]曹廷榮,陸玲,龔燕紅,等.基于對抗網絡的驗證碼識別方法[J].計算機工程與應用,2020(8):199-204.
[8]安夢生.基于SVM的字符驗證碼識別研究[J].淮陰師范學院學報(自然科學版),2018(4):316-319.
[9]虞水磊,田新宇,王金燕.基于多元統(tǒng)計分析和機器學習的驗證碼識別[J].山東理工大學學報(自然科學版),2019(1):60-64.
[10]杜薇,周武能.基于CTC模型的無分割文本驗證碼識別[J].計算機與現代化,2018(9):48-51.
[11]CHO K,MERRIENBOER B V,GULCEHRE C,et al.Learning phrase representations using RNN Encoder-Decoder for statistical machine translation[J].Computer Science,2014(6):1724-1734.
(編輯?何 琳)
Captcha identification based on CNN and GRU unit
Deng Zhen
(South China Normal University, Guangzhou 510000, China)
Abstract:In the Internet era, captcha is an important guarantee of Internet security. In this paper, image processing and deep learning methods are applied to fully extract image features through graying, OTSU threshold segmentation, corrosion and expansion. The neural network model is constructed by combining convolution neural network(CNN)and GRU unit. The captitals, lower-case letters and Arabic?numerals?are recognized accurately. The average recognition accuracy of the captcha is about 93%, which has a certain practical significance.
Key words:OTSU threshold segmentation; corrosion and expansion; CNN; GRU
作者簡介:鄧震(2000— ),男,廣東廣州人,本科生;研究方向:深度學習在恒星光譜識別中的應用,自然語言處理文本多分類。