摘 要:驗(yàn)證碼識(shí)別對(duì)網(wǎng)絡(luò)輿情、采集敏感信息具有十分重要的意義。首先對(duì)國內(nèi)主流論壇驗(yàn)證碼進(jìn)行統(tǒng)計(jì)分類,接著針對(duì)簡(jiǎn)單驗(yàn)證碼提出基于模板匹配的識(shí)別方法,針對(duì)復(fù)雜驗(yàn)證碼提出基于SIFT特征和ISOMAP降維技術(shù)的識(shí)別方法,最終在主流論壇上測(cè)試獲得較優(yōu)的識(shí)別結(jié)果。
關(guān)鍵詞:驗(yàn)證碼;模板匹配;SIFT特征;降維
中圖分類號(hào):TP391.41
驗(yàn)證碼的識(shí)別是進(jìn)入網(wǎng)站搜索網(wǎng)絡(luò)輿情、采集敏感信息的一個(gè)前提,對(duì)驗(yàn)證碼的識(shí)別技術(shù)已成為當(dāng)前的一個(gè)重要研究方向。驗(yàn)證碼的英文CAPTCHA,即全自動(dòng)區(qū)分計(jì)算機(jī)和人類的圖靈測(cè)試,它是為區(qū)別對(duì)方到底是人類還是計(jì)算機(jī)程序而設(shè)置的一種驗(yàn)證措施,主要是用來防止網(wǎng)絡(luò)機(jī)器人的一些惡意行為。
2003年,在Mori和Malik[1]提出的基于形狀上下文匹配的識(shí)別方法中,對(duì)當(dāng)前普遍使用的EZ-Gimpy類型驗(yàn)證碼有83%的識(shí)別率和Gimpy類型驗(yàn)證碼有33%的識(shí)別率。Moy[2]等提出扭曲估計(jì)技術(shù),對(duì)EZ-Gimpy類型驗(yàn)證碼有99%的識(shí)別率和Gimpy-r類型驗(yàn)證碼有78%的識(shí)別率。Chellapilla和Simard[3]利用機(jī)器學(xué)習(xí)算法,對(duì)很多網(wǎng)站上的視覺驗(yàn)證碼有4.89%-66.2%的識(shí)別率。
國內(nèi)關(guān)于驗(yàn)證碼識(shí)別的論文相對(duì)較少,如蘇磊[4]等應(yīng)用形狀上下文在理論,對(duì)驗(yàn)證碼圖像進(jìn)行識(shí)別,取得很好的效果;張淑雅[5]等利用預(yù)處理算法和選擇合適的分類器對(duì)驗(yàn)證碼進(jìn)行識(shí)別;王虎[6]等設(shè)計(jì)了基于模板匹配算法的形變數(shù)字驗(yàn)證碼識(shí)別系統(tǒng),識(shí)別率達(dá)到100%。
論文針對(duì)過驗(yàn)證碼識(shí)別的特點(diǎn),首先對(duì)國內(nèi)網(wǎng)絡(luò)論壇和博客展開調(diào)研統(tǒng)計(jì),接著針對(duì)簡(jiǎn)單驗(yàn)證碼和復(fù)雜驗(yàn)證碼分別設(shè)計(jì)對(duì)應(yīng)的識(shí)別方法,最終在各大網(wǎng)絡(luò)論壇和博客試驗(yàn)所提的驗(yàn)證碼識(shí)別系統(tǒng)具有較高的識(shí)別率。
1 驗(yàn)證碼分類
目前網(wǎng)絡(luò)論壇和博客使用的驗(yàn)證碼中,有一些會(huì)根據(jù)人類視覺的完形規(guī)則來設(shè)計(jì)的,或者利用知覺恒常的優(yōu)勢(shì),適度的扭曲文字,也有些部分會(huì)改變字體顏色設(shè)計(jì)的。雖然驗(yàn)證碼設(shè)計(jì)的原則都不盡相同,但歸納出一些常見的設(shè)計(jì)原則。我們將這些設(shè)計(jì)原則分為辨識(shí)主體設(shè)計(jì)和非辨識(shí)主體設(shè)計(jì)。辨識(shí)主體設(shè)計(jì)包括:字符扭曲、隨機(jī)中英文字母或數(shù)字、字符的位置、字符旋轉(zhuǎn)、字符類型、字符斷裂、字符大小、字符顏色、字符材質(zhì)、字符串長(zhǎng)度。非辨識(shí)主體設(shè)計(jì)又分為背景部分和雜訊部分,其中背景部分包括:?jiǎn)紊尘?、特定背景、彩色隨機(jī)背景;雜訊部分包括色彩、大小、密度。
我們總結(jié)了目前在國內(nèi)論壇排行榜上靠前的30個(gè)論壇的驗(yàn)證碼,共分為3類。第一類驗(yàn)證碼的特點(diǎn):字體位置固定,無扭曲和旋轉(zhuǎn),字體顏色隨機(jī),字體不發(fā)生斷裂,單色背景,少量干擾點(diǎn)或干擾線。第二類驗(yàn)證碼的特點(diǎn):字體位置不固定,輕微扭曲和變形,特定背景,字體間粘連程度低,彩色隨機(jī)背景顏色。第三類驗(yàn)證碼是關(guān)于中文驗(yàn)證碼,主流的網(wǎng)站有兩個(gè),網(wǎng)易社區(qū)和天涯社區(qū),網(wǎng)易社區(qū)的驗(yàn)證碼只有兩個(gè)中文漢字,背景顏色固定,字體位置固定,字體輕微傾斜。
2 驗(yàn)證碼識(shí)別技術(shù)
2.1 簡(jiǎn)單驗(yàn)證碼
對(duì)簡(jiǎn)單的驗(yàn)證碼,論文采用模板匹配的方法,從統(tǒng)計(jì)學(xué)的可信度方面討論了加權(quán)模板,分析了字符圖像的網(wǎng)格特征,交叉點(diǎn)特征,并由此構(gòu)造相應(yīng)的模板向量,使用改進(jìn)的活動(dòng)模板部分結(jié)構(gòu)分析算法,減弱字體形變的干擾。具體如下:(1)對(duì)圖片進(jìn)行前端處理,利用利用濾波器對(duì)原圖片進(jìn)行濾波,消除部分噪聲;(2)對(duì)圖片進(jìn)行直方圖統(tǒng)計(jì),計(jì)算圖像的直方圖,取出直方圖中最大的峰值,將其定為背景,對(duì)余下的峰均進(jìn)行連通片檢測(cè);(3)若連通片像素小于某個(gè)值,則將其拋棄,這樣可以得到4個(gè)連通片。將4個(gè)連通篇存放于恰好的大小圖上,并進(jìn)行縮放,和模板大小相同;(4)模板匹配部分,首先制固定大小的圖片,每種字符足夠數(shù)量的模板,設(shè)62個(gè)字符,然后進(jìn)行匹配,對(duì)每個(gè)子圖,分別和每個(gè)字符的20個(gè)模板進(jìn)行相減,將結(jié)果的每個(gè)像素值的絕對(duì)值相加,然后去最小值,這樣進(jìn)行62次循環(huán)后,再取最小值,即相應(yīng)模板的字符。
2.2 復(fù)雜驗(yàn)證碼
對(duì)于復(fù)雜驗(yàn)證碼,論文主要研究字體的扭曲、字體選擇、字體粘連三個(gè)部分。
(1)字符旋轉(zhuǎn)。對(duì)于具有旋轉(zhuǎn)而尺寸不變的驗(yàn)證碼,通過引入SIFT特征及其優(yōu)化方法來處理。SIFT算法首先在尺度空間進(jìn)行特征檢測(cè),并確定關(guān)鍵點(diǎn)的位置和關(guān)鍵點(diǎn)所處的尺度,然后使用關(guān)鍵點(diǎn)鄰域梯度的主方向作為該點(diǎn)的方向特征,以實(shí)現(xiàn)算子對(duì)尺度和方向的無關(guān)性。
由于SIFT特征處理速度較慢,直接引入可能不滿足識(shí)別效率的要求,論文采用基于SIFT的簡(jiǎn)化算法,采用基于圓形窗口的12維向量有效地表示一個(gè)特征點(diǎn),這樣可以減低算法的時(shí)間復(fù)雜度。
(2)字符變形。為了提高識(shí)別的準(zhǔn)確性,首先需要得到可以準(zhǔn)確表達(dá)每個(gè)字符的基本特征,不受或受到字體變化的影響較小,線性降維的方法簡(jiǎn)單、處理速度相對(duì)較快,但是在應(yīng)用中未能取得滿意的效果。而非線性降維方法有較好的理論基礎(chǔ),在字體識(shí)別中有較好的效果。而典型的非線性降維算法是Isomap算法,該算法的核心是估計(jì)兩點(diǎn)間的測(cè)地距離,離得很近的點(diǎn)間的測(cè)地距離用歐式距離代替,離得較遠(yuǎn)的點(diǎn)間的測(cè)地距離用最短路徑來逼近。
(3)字符粘連。驗(yàn)證碼存在粘連后,利用一般的圖像處理方法無法對(duì)其進(jìn)行準(zhǔn)確的分割獲取單個(gè)待識(shí)別字符所在區(qū)域,從而無法準(zhǔn)確分類。因此可以采用一個(gè)固定長(zhǎng)寬比的滑動(dòng)窗口去掃描,利用可以進(jìn)行多類劃分的組合分類器對(duì)每個(gè)滑動(dòng)窗口進(jìn)行分類檢測(cè)。
3 實(shí)驗(yàn)
數(shù)據(jù)集來源于各大網(wǎng)絡(luò)論壇和博客,隨機(jī)采集1萬個(gè)簡(jiǎn)單驗(yàn)證碼和1萬個(gè)復(fù)雜驗(yàn)證碼進(jìn)行測(cè)試試驗(yàn)。簡(jiǎn)單驗(yàn)證碼首先建立模板庫,數(shù)字和字母共62個(gè)模板。復(fù)雜驗(yàn)證碼識(shí)別挑選QQ論壇、百度貼吧和貓撲社區(qū)典型論壇進(jìn)行針對(duì)性試驗(yàn),包括字符旋轉(zhuǎn)、字符變形和字符粘連處理等處理。測(cè)試結(jié)果如表1所示。
表1 識(shí)別結(jié)果表
從表1可以看出,簡(jiǎn)單驗(yàn)證碼的識(shí)別率可以達(dá)到100%,這是因?yàn)楹?jiǎn)單驗(yàn)證碼的字體單一,位置固定,沒有背景干擾,采用模板匹配方法可以滿足要求。由于QQ論壇和百度貼吧的驗(yàn)證碼字體旋轉(zhuǎn)變形,且存在部分粘連,故難度較大,識(shí)別率較低,而貓撲社區(qū)驗(yàn)證碼相對(duì)簡(jiǎn)單,且都是字母,通過論文所提方法識(shí)別就可以得到滿意的識(shí)別結(jié)果。
4 結(jié)束語
論文通過分析主流國內(nèi)論壇驗(yàn)證碼的類別,分為簡(jiǎn)單驗(yàn)證碼和復(fù)雜驗(yàn)證碼。根據(jù)簡(jiǎn)單驗(yàn)證碼的特點(diǎn),提出基于特征和模板匹配的識(shí)別方法。根據(jù)復(fù)雜驗(yàn)證碼的特點(diǎn),對(duì)字符旋轉(zhuǎn)、字符變形和字符粘連分別提出對(duì)應(yīng)的處理方法。通過國內(nèi)主流論壇測(cè)試得到滿意的識(shí)別結(jié)果。
參考文獻(xiàn):
[1]G Mori and J Malik. Recognizing objects in adversarial cluster: breaking a visual CAPTCHA. IEEE Conference on Computer Vision Pattern Recognition(CVPR),2003.
[2]G Moy, N Jones,C Harkless and R Potter.Distortion estimation techniques in solving visual CAPTCHAs,IEEE CVPR,2004.
[3]K Chellapilla and P Simard, Using Machine Learning to Break Visual Human Interaction Proofs.Neural Information Processing Systems (NIPS),MIT Press,2004.
[4]蘇磊,馬良.形狀上下文在驗(yàn)證碼識(shí)別中的應(yīng)用[J].微計(jì)算機(jī)信息,2007(23):252-254.
[5]張淑雅,趙一鳴.認(rèn)證碼字符識(shí)別方法的研究[J].寧波大學(xué)學(xué)報(bào),2007(20):429-433.
[6]王虎,馮林.數(shù)字驗(yàn)證碼識(shí)別算法的研究和設(shè)計(jì)[J].計(jì)算機(jī)工程與應(yīng)用,2007(32):86-88.
作者簡(jiǎn)介:汪中(1984-),男,安徽人,工程師,博士,主要研究方向:網(wǎng)絡(luò)安全,模式識(shí)別。
作者單位:中國電子科技集團(tuán)公司第三十八研究所,合肥 230088