中共四川省委黨校 唐利紅
驗(yàn)證碼技術(shù)的中心思想是:結(jié)合先前制定的規(guī)則,通過(guò)計(jì)算機(jī)系統(tǒng)生成一個(gè)問(wèn)題,這個(gè)問(wèn)題只有人類才能解決計(jì)算機(jī)卻不能解決。如果問(wèn)題很容易被解決,那么系統(tǒng)的操作者則為人類用戶,進(jìn)而進(jìn)行下一步操作;如果沒(méi)有解決問(wèn)題,那么后續(xù)就不允許操作。利用驗(yàn)證碼技術(shù),就可以使機(jī)器人不會(huì)遭受到攻擊,使網(wǎng)絡(luò)安全得到保障,同時(shí)它還能有效地對(duì)人類用戶操作和計(jì)算機(jī)程序操作進(jìn)行區(qū)分,從而有效地抵擋外來(lái)程序的攻擊和威脅。在特定的情況下,可以使用這種技術(shù)去使網(wǎng)站和用戶之間進(jìn)行良好的溝通,特別是用戶在進(jìn)行支付和登錄的時(shí)候,可以通過(guò)驗(yàn)證碼對(duì)用戶的個(gè)人信息安全得到保障。另外,利用驗(yàn)證碼也可以有效地防止網(wǎng)頁(yè)不被爬蟲(chóng)等程序侵襲,使密碼系統(tǒng)不被侵害,網(wǎng)站服務(wù)器的安全也能得到保障。基于此,本篇文章對(duì)基于圖像處理的驗(yàn)證碼識(shí)別技術(shù)進(jìn)行研究,以供參考。
當(dāng)前,驗(yàn)證碼的識(shí)別技術(shù)已經(jīng)成為熱門(mén)研究的方向之一。因?yàn)閷?duì)于從事一些需要進(jìn)入網(wǎng)站搜索、采集敏感信息等活動(dòng)的人而言,能夠成功識(shí)別驗(yàn)證碼是必要的前提。英文單詞CAPTCHA 是全自動(dòng)區(qū)分計(jì)算機(jī)和人類的圖靈測(cè)試,采用該技術(shù)主要是為了區(qū)別人與機(jī)器之間進(jìn)行交互的差別,從而阻止機(jī)器人進(jìn)行惡意操作。盡管國(guó)內(nèi)的驗(yàn)證碼識(shí)別論文相對(duì)較少,但是,應(yīng)用形狀上下文理論可對(duì)驗(yàn)證碼圖像進(jìn)行有效的識(shí)別。通過(guò)進(jìn)行預(yù)處理算法和選擇適當(dāng)?shù)姆诸惼?,人們也可以?shí)現(xiàn)較好的驗(yàn)證碼識(shí)別效果。一些研究已經(jīng)成功地設(shè)計(jì)出了基于模板匹配算法的形變數(shù)字驗(yàn)證碼識(shí)別系統(tǒng),其識(shí)別率達(dá)到100%?;谝陨咸攸c(diǎn),本研究調(diào)查和統(tǒng)計(jì)了國(guó)內(nèi)網(wǎng)絡(luò)論壇和博客,分別設(shè)計(jì)了針對(duì)簡(jiǎn)單和復(fù)雜驗(yàn)證碼的識(shí)別方案,并在各大網(wǎng)絡(luò)論壇和博客實(shí)驗(yàn)中成功設(shè)計(jì)出驗(yàn)證碼識(shí)別系統(tǒng),并具有較高的識(shí)別率。此外,基于國(guó)內(nèi)外學(xué)者的研究,我們提出了一種基于圖像處理和卷積神經(jīng)網(wǎng)絡(luò)的文本驗(yàn)證碼識(shí)別方案,結(jié)合設(shè)計(jì)的圖像分割算法和高準(zhǔn)確性的特點(diǎn),能夠有效地提取出字符,并具有較高的識(shí)別率。
在對(duì)樣本后期進(jìn)行訓(xùn)練時(shí)必須具備數(shù)量較大的樣本集,如果只通過(guò)人工進(jìn)行簡(jiǎn)單的采集,無(wú)論是在時(shí)間還是精力上都會(huì)消耗很多,因此,就要使用編程中的Captcha 模塊,并將符合要求的驗(yàn)證碼圖片生成了5000 張。
對(duì)于樣本訓(xùn)練,就是結(jié)合有關(guān)的驗(yàn)證碼樣本,去將阿拉伯?dāng)?shù)字以及26 個(gè)英文字母的大小寫(xiě)進(jìn)行字模的制作。在訓(xùn)練充足的樣本以后,使得有效的字模庫(kù)被建立起來(lái),這樣,需要識(shí)別的字符就可以根據(jù)情況選擇對(duì)應(yīng)的字模。因此,樣本訓(xùn)練顯得至關(guān)緊要,它可以對(duì)識(shí)別效率的高低起決定性的作用。接下來(lái),將選取趕集網(wǎng)上一些訓(xùn)練后制作出的字模庫(kù),而且在進(jìn)行字符識(shí)別時(shí)要以預(yù)處理后的圖片為基礎(chǔ),識(shí)別出的字符還要以文本的形式呈現(xiàn)出來(lái)。
對(duì)于驗(yàn)證碼,它是可以有效地去區(qū)分人為操作還是機(jī)器操作,因?yàn)檫@種技術(shù)操作便捷,且沒(méi)有太大的數(shù)據(jù)傳輸,尤其是論壇性質(zhì)的網(wǎng)站,它可以有效地阻止惡意行為的侵害。由于這種自動(dòng)化程序被得到廣泛的認(rèn)可,所以,我國(guó)排名靠前的論壇中有多一半的論壇都在注冊(cè)和登錄等方面使用了驗(yàn)證碼技術(shù)[1]。另外,其他方面也對(duì)此技術(shù)進(jìn)行了應(yīng)用,比如,電子郵件類網(wǎng)站,它可以有效地防止郵件出現(xiàn)群發(fā)或亂發(fā)的情況。整體來(lái)說(shuō),國(guó)內(nèi)與國(guó)外在對(duì)驗(yàn)證碼技術(shù)進(jìn)行應(yīng)用時(shí)都是相同的。另外,隨著驗(yàn)證碼技術(shù)的不斷發(fā)展,進(jìn)而產(chǎn)生了計(jì)算機(jī)業(yè)務(wù),比如,電子推銷,這時(shí)就會(huì)用到驗(yàn)證碼識(shí)別技術(shù),而且,對(duì)于殘障人員正常上網(wǎng)的問(wèn)題也進(jìn)行了解決。目前,有很多驗(yàn)證碼識(shí)別方法,比如,模板匹配和神經(jīng)網(wǎng)絡(luò)等。其中,匹配模板的識(shí)別方法最為簡(jiǎn)單,但它的應(yīng)用范圍不是很廣泛,而且不具備較高的準(zhǔn)確率,系統(tǒng)性也較為缺乏,所以在驗(yàn)證碼識(shí)別技術(shù)中逐漸被淘汰。形狀上下文以及神經(jīng)網(wǎng)絡(luò)也是有一定的問(wèn)題和缺陷存在著,比如,沒(méi)有較高的匹配度或是不容易控制收斂速度等,所以,這種驗(yàn)證碼識(shí)別方法也不是最好的。
驗(yàn)證碼圖片具有獨(dú)特的特點(diǎn),因此對(duì)它們進(jìn)行識(shí)別的方法與一般圖像不同。對(duì)于設(shè)計(jì)識(shí)別算法時(shí)的注意點(diǎn),應(yīng)從兩個(gè)方面考慮:格式和內(nèi)容。首先在格式方面,驗(yàn)證碼圖片通常具備較低的分辨率,且其高度約為20 像素,寬度在50 ~100 像素之間。這個(gè)特點(diǎn)會(huì)使字符間距較小,很易于切分。同時(shí),由于分辨率較低,需要識(shí)別的字符信息量也會(huì)受到影響,這對(duì)于匹配算法來(lái)說(shuō)是個(gè)挑戰(zhàn)。其次在內(nèi)容方面,驗(yàn)證碼經(jīng)常會(huì)加入一些干擾因素,如背景干擾、噪音等,同時(shí)也加入了不同字體、字符位置和數(shù)量等變化。這些干擾可以有效地提高自動(dòng)識(shí)別算法的難度,但需要注意的是,這些干擾不應(yīng)對(duì)用戶的網(wǎng)絡(luò)使用造成不良影響[2]。綜合來(lái)看,驗(yàn)證碼的設(shè)計(jì)和實(shí)現(xiàn)需要在這些限制條件下取得平衡,以提高其識(shí)別的準(zhǔn)確性和可用性,從而為用戶帶來(lái)更好的使用體驗(yàn)。
4.1.1 灰度化、二值化
在對(duì)圖片處理之前,需要進(jìn)行灰度化處理,因?yàn)橹挥羞M(jìn)行灰度化處理以后才能使顏色信息不去影響模型的訓(xùn)練。再將原始色彩圖片向灰度化轉(zhuǎn)換時(shí)需要使用加權(quán)平均法,因?yàn)樗饕峭ㄟ^(guò)三個(gè)不同的分量去對(duì)權(quán)值進(jìn)行計(jì)算并分配的,而整個(gè)圖片的灰度像素值則用計(jì)算結(jié)果來(lái)表示,而且還要用到它特定的計(jì)算公式,其中用L表示加權(quán)平均后的灰度圖像的像素,紅綠藍(lán)三原色的分量值則分別用R、G、B 表示。在進(jìn)行灰度化以后,就要進(jìn)行二值化操作,這項(xiàng)操作很重要。通過(guò)對(duì)閾值進(jìn)行調(diào)整,如果圖片中閾值高,其像素應(yīng)設(shè)置成255,當(dāng)閾值很低時(shí),像素設(shè)置就是0,然后去轉(zhuǎn)換圖片,將其生成二值圖片,圖片只保留0 和255 的像素值。在進(jìn)行二值化處理以后,像素值為255 的數(shù)量不僅少,而且還和字符特征有關(guān),像素值為0 的數(shù)量又很多,在對(duì)卷積進(jìn)行計(jì)算時(shí),還要和像素點(diǎn)相乘,這樣,在提取卷積核的字符特征時(shí)就會(huì)更加方便,使模型得到快速的訓(xùn)練。
4.1.2 圖像去噪
在完成灰度化和二值化操作之后,就會(huì)使圖片中有一些噪聲和干擾線產(chǎn)生,這些噪聲和干擾線會(huì)影響后續(xù)的字符分割以及提取識(shí)別,所以,就要提前將處理工作做好。連通區(qū)域去噪、霍夫變換去噪以及以空間域?yàn)V波等算法是最常用的去噪算法。以空域?yàn)V波為基礎(chǔ)的算法在圖片處理中最為廣泛[3]。這種算法主要是對(duì)每個(gè)像素使用二進(jìn)制圖,而且橫向?qū)挾群涂v向?qū)挾鹊南袼鼐鶠榘咨?。本文針?duì)驗(yàn)證碼圖片的使用,去將大部分的噪聲和干擾線去除。
4.1.3 字符分割
由于那些驗(yàn)證碼主要以字母和數(shù)字為主,所以它的字符類別也沒(méi)有太多,進(jìn)而導(dǎo)致在對(duì)卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練時(shí)沒(méi)有進(jìn)行分割就開(kāi)始訓(xùn)練,雖然如此,但效果還是很理想的。中文漢字的數(shù)量對(duì)于英文來(lái)說(shuō)是無(wú)可比擬的,比如,最常用的漢字有3500 個(gè),通常情況下驗(yàn)證碼都是4 個(gè)漢字,如果沒(méi)有對(duì)其進(jìn)行分割,就直接對(duì)卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行使用,那么就會(huì)加大學(xué)習(xí)成本。所以,如果是中文驗(yàn)證碼,在進(jìn)行識(shí)別時(shí)對(duì)字符進(jìn)行分割就顯得很是重要。以往主要采用兩種字符分割法,分別是投影法和連通域法[4]。這兩種方法的驗(yàn)證碼圖片均是以數(shù)字和字母為基礎(chǔ),并具有很高的分割成功率,但是,如果驗(yàn)證碼為中文,那么它就會(huì)有一定難度,因?yàn)橹形尿?yàn)證碼主要是由漢字組成,而且大多數(shù)的漢字是有偏旁部首的,不僅如此,還有一些偏旁部首也是一個(gè)漢字,所以,一旦進(jìn)行分割,就會(huì)把偏旁也分割出來(lái)。為了能夠解決這個(gè)問(wèn)題,就要定位卷積神經(jīng)網(wǎng)絡(luò)中驗(yàn)證碼圖片中的字符,利用預(yù)測(cè)單個(gè)字的坐標(biāo),去分割中文字符,而且效果很是明顯。
當(dāng)把單個(gè)字符圖像進(jìn)行分割以后,不僅要進(jìn)行二值化,還要將尺寸進(jìn)行歸一化處理。通過(guò)歸一化,首先可以使字符圖像的尺寸是統(tǒng)一的,這樣就可以在提取特征時(shí)更加方便;其次,可以使圖像的尺寸減小,實(shí)現(xiàn)數(shù)據(jù)的降維。將字符圖像分割以后,其高度圍繞在30 像素左右,寬度圍繞在17 ~35 像素。通過(guò)測(cè)試以后,所保留的有效信息像素尺寸最小是8×10 像素,這個(gè)尺寸是將圖片分割以后所得的目標(biāo)尺寸。
結(jié)合卷積神經(jīng)網(wǎng)絡(luò)的功能結(jié)構(gòu)將其分為特征提取和全連接還有輸出三個(gè)部分。特征提取又是由卷積、池化和激活函數(shù)組成,而且在進(jìn)行提取時(shí)還要和卷積層和池化層以及激活層相對(duì),當(dāng)驗(yàn)證碼圖像被灰度化處理以后就會(huì)生成矩陣輸入卷積神經(jīng)網(wǎng)絡(luò),最后提取特征[5]。在卷積和池化的多次作用下,將特征向量提取出來(lái),通過(guò)全連接層,將這些特征組合到一起,最后在連接輸出層。這項(xiàng)網(wǎng)絡(luò)模型一共七層,使字符驗(yàn)證碼在實(shí)現(xiàn)了由低向高的進(jìn)行特征表達(dá),這時(shí)就會(huì)用到輸入層、輸出層、卷積池化層和全連接層。而且還將標(biāo)準(zhǔn)化層加入到卷積層和池化層之間,在激活函數(shù)以前會(huì)用到BN 層,使均值在BN 層進(jìn)行歸一化。當(dāng)把BN 層引入以后,就可以有效地提升模型的訓(xùn)練速度和泛化能力,甚至還能提升模型的精度。為了不讓模型出現(xiàn)擬合的情況,就要將降采樣層應(yīng)用到每層中去,在項(xiàng)目中,降采樣層的神經(jīng)元概率為0.25。為了能夠緩解模型擬合的問(wèn)題,可以在激活層中使用ReLU 函數(shù),它不僅計(jì)算速度快,而且還很稀疏。而輸入層,它是通過(guò)灰度化操作去處理驗(yàn)證碼,進(jìn)行產(chǎn)生矩陣驗(yàn)證碼圖像,在提取局部特征時(shí),可以通過(guò)卷積操作來(lái)實(shí)現(xiàn),對(duì)于卷積層的偏置項(xiàng)和正態(tài)分布的隨機(jī)數(shù)相同,為了不影響圖片的尺寸,就要利用卷積層將0 值進(jìn)行使用,使圖像矩陣四周得到補(bǔ)充。為了能夠進(jìn)一步將驗(yàn)證碼圖像的特征提取出來(lái),就要使用最大池化層,在確保特征不發(fā)生改變的同時(shí),對(duì)特征進(jìn)行降維[6]。
在這個(gè)實(shí)驗(yàn)中,分別驗(yàn)證了三種不同的驗(yàn)證碼。我們先從一些網(wǎng)站中隨機(jī)采集了三種驗(yàn)證碼圖像,然后使用相應(yīng)的圖像處理過(guò)程,去對(duì)圖像進(jìn)行處理。(1)對(duì)于那些擁有規(guī)范字體的驗(yàn)證碼圖片,它不僅字符大小相同,而且很是規(guī)范,沒(méi)有旋轉(zhuǎn)也沒(méi)有發(fā)生變形。(2)雖然擁有規(guī)范的字體,但是字符大小卻不一,并且字符也是以旋轉(zhuǎn)的形式存在。(3)驗(yàn)證碼圖片不僅字體不規(guī)范,而且字符也是發(fā)生改變的。在驗(yàn)證這三種驗(yàn)證碼圖片時(shí),就需要將它們的特征定向進(jìn)行提取,然后根據(jù)特征進(jìn)行隨機(jī)分組,并分為兩組,最后再去訓(xùn)練和識(shí)別這兩組的特征[7]。徑向基函數(shù)為計(jì)算時(shí)所采用的公式,提取了這兩個(gè)參數(shù)的y與c的值,進(jìn)而展開(kāi)識(shí)別率的計(jì)算。通過(guò)對(duì)其進(jìn)行分析以后得出,在這項(xiàng)實(shí)驗(yàn)中,只有y不變,c才能一點(diǎn)點(diǎn)變大,進(jìn)而加大驗(yàn)證碼的識(shí)別率,當(dāng)c達(dá)到最大限度時(shí),此時(shí)的識(shí)別率也不會(huì)再提高。如果該驗(yàn)證碼的旋轉(zhuǎn)與大小不同時(shí),那么就會(huì)降低準(zhǔn)確率。如果是c不變,y一點(diǎn)點(diǎn)變大時(shí),這時(shí)的識(shí)別率也會(huì)增高,但是y值達(dá)到最大限度值時(shí),這時(shí)的識(shí)別率卻呈現(xiàn)出下降的趨勢(shì)。因此,只有驗(yàn)證碼的字符是標(biāo)準(zhǔn)的,而且字符是規(guī)范的,因此驗(yàn)證碼的識(shí)別率就是最高的,可達(dá)到100%,哪怕是驗(yàn)證碼過(guò)于復(fù)雜,通過(guò)SVM 進(jìn)行識(shí)別以后識(shí)別率也不低于80%。由此可以看出,利用SVM 的方法可以使驗(yàn)證碼的識(shí)別算法準(zhǔn)確度更高。
隨著互聯(lián)網(wǎng)的普及和發(fā)展,網(wǎng)絡(luò)安全問(wèn)題日益突出。為了解決機(jī)器人濫用自然人資源的問(wèn)題,許多網(wǎng)站引入了驗(yàn)證碼技術(shù)。驗(yàn)證碼是一種全自動(dòng)公開(kāi)的圖靈測(cè)試,旨在區(qū)分計(jì)算機(jī)和人類,并且驗(yàn)證碼圖片是一種常見(jiàn)的驗(yàn)證碼實(shí)現(xiàn)方式,其主要特點(diǎn)是具有獨(dú)特的格式和內(nèi)容,同時(shí)還包含很多干擾因素,如背景干擾、噪音等。因此,設(shè)計(jì)驗(yàn)證碼自動(dòng)識(shí)別算法具有很高難度和挑戰(zhàn)性。本文旨在深入探究和研究圖片驗(yàn)證碼,并設(shè)計(jì)一種高效的驗(yàn)證碼自動(dòng)識(shí)別算法。在研究過(guò)程中,我們采用了更新穎、更高效的神經(jīng)網(wǎng)絡(luò)模型,通過(guò)對(duì)識(shí)別算法中影響識(shí)別率的重要參數(shù)進(jìn)行分析和優(yōu)化,來(lái)提高驗(yàn)證碼的識(shí)別率和可用性。同時(shí),我們也意識(shí)到本文的研究也存在著一些不足之處,首先是部分理論研究可能不夠深入,需要進(jìn)一步研究和完善;其次是多方面原因可能會(huì)對(duì)研究造成一定的影響。因此,在未來(lái)的研究中需要進(jìn)一步探索和發(fā)現(xiàn),尋找更好的解決方案,以提高網(wǎng)絡(luò)安全和用戶體驗(yàn)。
數(shù)字技術(shù)與應(yīng)用2023年11期