?

基于圖像處理的驗證碼識別技術

2023-03-24 18:31中共四川省委黨校唐利紅
數字技術與應用 2023年11期
關鍵詞:字符識別率灰度

中共四川省委黨校 唐利紅

驗證碼技術的中心思想是:結合先前制定的規則,通過計算機系統生成一個問題,這個問題只有人類才能解決計算機卻不能解決。如果問題很容易被解決,那么系統的操作者則為人類用戶,進而進行下一步操作;如果沒有解決問題,那么后續就不允許操作。利用驗證碼技術,就可以使機器人不會遭受到攻擊,使網絡安全得到保障,同時它還能有效地對人類用戶操作和計算機程序操作進行區分,從而有效地抵擋外來程序的攻擊和威脅。在特定的情況下,可以使用這種技術去使網站和用戶之間進行良好的溝通,特別是用戶在進行支付和登錄的時候,可以通過驗證碼對用戶的個人信息安全得到保障。另外,利用驗證碼也可以有效地防止網頁不被爬蟲等程序侵襲,使密碼系統不被侵害,網站服務器的安全也能得到保障?;诖?,本篇文章對基于圖像處理的驗證碼識別技術進行研究,以供參考。

當前,驗證碼的識別技術已經成為熱門研究的方向之一。因為對于從事一些需要進入網站搜索、采集敏感信息等活動的人而言,能夠成功識別驗證碼是必要的前提。英文單詞CAPTCHA 是全自動區分計算機和人類的圖靈測試,采用該技術主要是為了區別人與機器之間進行交互的差別,從而阻止機器人進行惡意操作。盡管國內的驗證碼識別論文相對較少,但是,應用形狀上下文理論可對驗證碼圖像進行有效的識別。通過進行預處理算法和選擇適當的分類器,人們也可以實現較好的驗證碼識別效果。一些研究已經成功地設計出了基于模板匹配算法的形變數字驗證碼識別系統,其識別率達到100%?;谝陨咸攸c,本研究調查和統計了國內網絡論壇和博客,分別設計了針對簡單和復雜驗證碼的識別方案,并在各大網絡論壇和博客實驗中成功設計出驗證碼識別系統,并具有較高的識別率。此外,基于國內外學者的研究,我們提出了一種基于圖像處理和卷積神經網絡的文本驗證碼識別方案,結合設計的圖像分割算法和高準確性的特點,能夠有效地提取出字符,并具有較高的識別率。

1 驗證碼識別

1.1 傳統的驗證碼識別

在對樣本后期進行訓練時必須具備數量較大的樣本集,如果只通過人工進行簡單的采集,無論是在時間還是精力上都會消耗很多,因此,就要使用編程中的Captcha 模塊,并將符合要求的驗證碼圖片生成了5000 張。

1.2 樣本訓練和識別

對于樣本訓練,就是結合有關的驗證碼樣本,去將阿拉伯數字以及26 個英文字母的大小寫進行字模的制作。在訓練充足的樣本以后,使得有效的字模庫被建立起來,這樣,需要識別的字符就可以根據情況選擇對應的字模。因此,樣本訓練顯得至關緊要,它可以對識別效率的高低起決定性的作用。接下來,將選取趕集網上一些訓練后制作出的字模庫,而且在進行字符識別時要以預處理后的圖片為基礎,識別出的字符還要以文本的形式呈現出來。

2 驗證碼使用現狀

對于驗證碼,它是可以有效地去區分人為操作還是機器操作,因為這種技術操作便捷,且沒有太大的數據傳輸,尤其是論壇性質的網站,它可以有效地阻止惡意行為的侵害。由于這種自動化程序被得到廣泛的認可,所以,我國排名靠前的論壇中有多一半的論壇都在注冊和登錄等方面使用了驗證碼技術[1]。另外,其他方面也對此技術進行了應用,比如,電子郵件類網站,它可以有效地防止郵件出現群發或亂發的情況。整體來說,國內與國外在對驗證碼技術進行應用時都是相同的。另外,隨著驗證碼技術的不斷發展,進而產生了計算機業務,比如,電子推銷,這時就會用到驗證碼識別技術,而且,對于殘障人員正常上網的問題也進行了解決。目前,有很多驗證碼識別方法,比如,模板匹配和神經網絡等。其中,匹配模板的識別方法最為簡單,但它的應用范圍不是很廣泛,而且不具備較高的準確率,系統性也較為缺乏,所以在驗證碼識別技術中逐漸被淘汰。形狀上下文以及神經網絡也是有一定的問題和缺陷存在著,比如,沒有較高的匹配度或是不容易控制收斂速度等,所以,這種驗證碼識別方法也不是最好的。

3 驗證碼圖片特點

驗證碼圖片具有獨特的特點,因此對它們進行識別的方法與一般圖像不同。對于設計識別算法時的注意點,應從兩個方面考慮:格式和內容。首先在格式方面,驗證碼圖片通常具備較低的分辨率,且其高度約為20 像素,寬度在50 ~100 像素之間。這個特點會使字符間距較小,很易于切分。同時,由于分辨率較低,需要識別的字符信息量也會受到影響,這對于匹配算法來說是個挑戰。其次在內容方面,驗證碼經常會加入一些干擾因素,如背景干擾、噪音等,同時也加入了不同字體、字符位置和數量等變化。這些干擾可以有效地提高自動識別算法的難度,但需要注意的是,這些干擾不應對用戶的網絡使用造成不良影響[2]。綜合來看,驗證碼的設計和實現需要在這些限制條件下取得平衡,以提高其識別的準確性和可用性,從而為用戶帶來更好的使用體驗。

4 基于圖像處理的驗證碼識別技術應用分析

4.1 圖片預處理

4.1.1 灰度化、二值化

在對圖片處理之前,需要進行灰度化處理,因為只有進行灰度化處理以后才能使顏色信息不去影響模型的訓練。再將原始色彩圖片向灰度化轉換時需要使用加權平均法,因為它主要是通過三個不同的分量去對權值進行計算并分配的,而整個圖片的灰度像素值則用計算結果來表示,而且還要用到它特定的計算公式,其中用L表示加權平均后的灰度圖像的像素,紅綠藍三原色的分量值則分別用R、G、B 表示。在進行灰度化以后,就要進行二值化操作,這項操作很重要。通過對閾值進行調整,如果圖片中閾值高,其像素應設置成255,當閾值很低時,像素設置就是0,然后去轉換圖片,將其生成二值圖片,圖片只保留0 和255 的像素值。在進行二值化處理以后,像素值為255 的數量不僅少,而且還和字符特征有關,像素值為0 的數量又很多,在對卷積進行計算時,還要和像素點相乘,這樣,在提取卷積核的字符特征時就會更加方便,使模型得到快速的訓練。

4.1.2 圖像去噪

在完成灰度化和二值化操作之后,就會使圖片中有一些噪聲和干擾線產生,這些噪聲和干擾線會影響后續的字符分割以及提取識別,所以,就要提前將處理工作做好。連通區域去噪、霍夫變換去噪以及以空間域濾波等算法是最常用的去噪算法。以空域濾波為基礎的算法在圖片處理中最為廣泛[3]。這種算法主要是對每個像素使用二進制圖,而且橫向寬度和縱向寬度的像素均為白色。本文針對驗證碼圖片的使用,去將大部分的噪聲和干擾線去除。

4.1.3 字符分割

由于那些驗證碼主要以字母和數字為主,所以它的字符類別也沒有太多,進而導致在對卷積神經網絡進行訓練時沒有進行分割就開始訓練,雖然如此,但效果還是很理想的。中文漢字的數量對于英文來說是無可比擬的,比如,最常用的漢字有3500 個,通常情況下驗證碼都是4 個漢字,如果沒有對其進行分割,就直接對卷積神經網絡進行使用,那么就會加大學習成本。所以,如果是中文驗證碼,在進行識別時對字符進行分割就顯得很是重要。以往主要采用兩種字符分割法,分別是投影法和連通域法[4]。這兩種方法的驗證碼圖片均是以數字和字母為基礎,并具有很高的分割成功率,但是,如果驗證碼為中文,那么它就會有一定難度,因為中文驗證碼主要是由漢字組成,而且大多數的漢字是有偏旁部首的,不僅如此,還有一些偏旁部首也是一個漢字,所以,一旦進行分割,就會把偏旁也分割出來。為了能夠解決這個問題,就要定位卷積神經網絡中驗證碼圖片中的字符,利用預測單個字的坐標,去分割中文字符,而且效果很是明顯。

4.2 分割圖像的歸一化

當把單個字符圖像進行分割以后,不僅要進行二值化,還要將尺寸進行歸一化處理。通過歸一化,首先可以使字符圖像的尺寸是統一的,這樣就可以在提取特征時更加方便;其次,可以使圖像的尺寸減小,實現數據的降維。將字符圖像分割以后,其高度圍繞在30 像素左右,寬度圍繞在17 ~35 像素。通過測試以后,所保留的有效信息像素尺寸最小是8×10 像素,這個尺寸是將圖片分割以后所得的目標尺寸。

4.3 卷積神經網絡的設計與實現

結合卷積神經網絡的功能結構將其分為特征提取和全連接還有輸出三個部分。特征提取又是由卷積、池化和激活函數組成,而且在進行提取時還要和卷積層和池化層以及激活層相對,當驗證碼圖像被灰度化處理以后就會生成矩陣輸入卷積神經網絡,最后提取特征[5]。在卷積和池化的多次作用下,將特征向量提取出來,通過全連接層,將這些特征組合到一起,最后在連接輸出層。這項網絡模型一共七層,使字符驗證碼在實現了由低向高的進行特征表達,這時就會用到輸入層、輸出層、卷積池化層和全連接層。而且還將標準化層加入到卷積層和池化層之間,在激活函數以前會用到BN 層,使均值在BN 層進行歸一化。當把BN 層引入以后,就可以有效地提升模型的訓練速度和泛化能力,甚至還能提升模型的精度。為了不讓模型出現擬合的情況,就要將降采樣層應用到每層中去,在項目中,降采樣層的神經元概率為0.25。為了能夠緩解模型擬合的問題,可以在激活層中使用ReLU 函數,它不僅計算速度快,而且還很稀疏。而輸入層,它是通過灰度化操作去處理驗證碼,進行產生矩陣驗證碼圖像,在提取局部特征時,可以通過卷積操作來實現,對于卷積層的偏置項和正態分布的隨機數相同,為了不影響圖片的尺寸,就要利用卷積層將0 值進行使用,使圖像矩陣四周得到補充。為了能夠進一步將驗證碼圖像的特征提取出來,就要使用最大池化層,在確保特征不發生改變的同時,對特征進行降維[6]。

5 驗證碼識別實驗

在這個實驗中,分別驗證了三種不同的驗證碼。我們先從一些網站中隨機采集了三種驗證碼圖像,然后使用相應的圖像處理過程,去對圖像進行處理。(1)對于那些擁有規范字體的驗證碼圖片,它不僅字符大小相同,而且很是規范,沒有旋轉也沒有發生變形。(2)雖然擁有規范的字體,但是字符大小卻不一,并且字符也是以旋轉的形式存在。(3)驗證碼圖片不僅字體不規范,而且字符也是發生改變的。在驗證這三種驗證碼圖片時,就需要將它們的特征定向進行提取,然后根據特征進行隨機分組,并分為兩組,最后再去訓練和識別這兩組的特征[7]。徑向基函數為計算時所采用的公式,提取了這兩個參數的y與c的值,進而展開識別率的計算。通過對其進行分析以后得出,在這項實驗中,只有y不變,c才能一點點變大,進而加大驗證碼的識別率,當c達到最大限度時,此時的識別率也不會再提高。如果該驗證碼的旋轉與大小不同時,那么就會降低準確率。如果是c不變,y一點點變大時,這時的識別率也會增高,但是y值達到最大限度值時,這時的識別率卻呈現出下降的趨勢。因此,只有驗證碼的字符是標準的,而且字符是規范的,因此驗證碼的識別率就是最高的,可達到100%,哪怕是驗證碼過于復雜,通過SVM 進行識別以后識別率也不低于80%。由此可以看出,利用SVM 的方法可以使驗證碼的識別算法準確度更高。

6 結語

隨著互聯網的普及和發展,網絡安全問題日益突出。為了解決機器人濫用自然人資源的問題,許多網站引入了驗證碼技術。驗證碼是一種全自動公開的圖靈測試,旨在區分計算機和人類,并且驗證碼圖片是一種常見的驗證碼實現方式,其主要特點是具有獨特的格式和內容,同時還包含很多干擾因素,如背景干擾、噪音等。因此,設計驗證碼自動識別算法具有很高難度和挑戰性。本文旨在深入探究和研究圖片驗證碼,并設計一種高效的驗證碼自動識別算法。在研究過程中,我們采用了更新穎、更高效的神經網絡模型,通過對識別算法中影響識別率的重要參數進行分析和優化,來提高驗證碼的識別率和可用性。同時,我們也意識到本文的研究也存在著一些不足之處,首先是部分理論研究可能不夠深入,需要進一步研究和完善;其次是多方面原因可能會對研究造成一定的影響。因此,在未來的研究中需要進一步探索和發現,尋找更好的解決方案,以提高網絡安全和用戶體驗。

猜你喜歡
字符識別率灰度
采用改進導重法的拓撲結構灰度單元過濾技術
尋找更強的字符映射管理器
基于灰度拉伸的圖像水位識別方法研究
基于類圖像處理與向量化的大數據腳本攻擊智能檢測
字符代表幾
一種USB接口字符液晶控制器設計
基于真耳分析的助聽器配戴者言語可懂度指數與言語識別率的關系
消失的殖民村莊和神秘字符
提升高速公路MTC二次抓拍車牌識別率方案研究
基于最大加權投影求解的彩色圖像灰度化對比度保留算法
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合