美章網(wǎng) 資料文庫 基于SVM的字符驗證碼識別分析范文

基于SVM的字符驗證碼識別分析范文

本站小編為你精心準備了基于SVM的字符驗證碼識別分析參考范文,愿這些范文能點燃您思維的火花,激發(fā)您的寫作靈感。歡迎深入閱讀并收藏。

基于SVM的字符驗證碼識別分析

摘要:驗證碼廣泛應用在互聯(lián)網(wǎng)各個領域,也稱為互聯(lián)網(wǎng)安全防火墻,本質(zhì)上驗證碼是為了區(qū)分人與機器人,防止網(wǎng)絡機器人的攻擊.然而隨著OCR技術(shù)的發(fā)展,驗證碼暴露出來的安全問題也非常嚴峻.以高校系統(tǒng)中的字符型驗證碼作為研究對象,對驗證碼進行二值化,去噪,分割等操作,采用SVM支持向量機的方式對數(shù)字驗證碼進行識別.實驗結(jié)果表明,當訓練集到達一定數(shù)量時,對字符驗證碼具有較好的識別率.

關(guān)鍵詞:驗證碼識別;圖片處理;支持向量機SVM

引言

驗證碼(CAPTCHA)是全自動區(qū)分計算機和人類的圖靈測試的縮寫,可以辨別用戶是人還是計算機的公共自動化程序[1].程序根據(jù)用戶回答驗證碼的答案正確與否來判斷此用戶是人類還是計算機,若回答正確則可以認為是人在操作.驗證碼形式多種多樣,有傳統(tǒng)的字符型驗證碼,有新的驗證形式包括滑動解鎖式、語音驗證、圖片選擇式等.目前,字符驗證碼仍然應用在各種場景中[2],如注冊、登錄、找回密碼、搶購下單、評論、投票等.這類驗證具有相同特點,計算機容易生成、人容易辨識,暴力破解有一定難度.同時網(wǎng)站為了安全性,增加驗證碼的識別難度,常見的方法是增加干擾項,如:字符旋轉(zhuǎn)、噪點、字符扭曲粘連、字符位置隨機及個數(shù)不定等[3-4].本文介紹的字符驗證碼的識別屬于簡單的OCR技術(shù),其應用場景較多,如目前廣泛使用的手機銀行App可以識別銀行卡號、身份證號碼以及停車場車牌識別等.由于每個網(wǎng)站所使用的驗證碼不一樣,需具體問題具體分析,本文僅選取某高校系統(tǒng)中的驗證碼作為主要分析對象.

1字符識別模型

1.1基本流程

字符型驗證碼識別流程主要為:原始驗證碼圖片預處理(二值化為黑白圖片、去除背景噪點)字符切割尺寸歸一字符標記(SVM識別、KNN識別)

1.2圖片預處理

驗證碼圖片預處理階段,主要包括灰度化、二值化、去除噪點操作.批量請求網(wǎng)絡接口以獲取驗證碼,獲取的初始驗證碼如圖1所示.下載的原始驗證碼格式是真彩色圖像,因為顏色信息對分割識別沒有作用,故將其轉(zhuǎn)換到灰度空間.轉(zhuǎn)換方法使用最多的是加權(quán)平均值法[5],其公式為:Y=0.299R+0.587G+0.114B(1)將得到的灰度圖片按照設定閾值轉(zhuǎn)化為二值圖.其中關(guān)鍵是要找出合適的閾值.閾值法包括全局二值化、局部二值化法[6].本文采取全局二值化方法,公式為:通過實驗當閾值T取值為140時可以得到較好的效果.二值化后得到了比較干凈的圖片,但還存在少些的離散噪點,為了增加識別的準確性還需去除背景中的噪點,使用較多的是FloodFill算法,本文采用簡單去噪點方法,統(tǒng)計像素值為0的周邊黑點的個數(shù),如果小于一個值,則可以判斷此點為孤立點.所有的像素點可以分為三類:頂點、非頂點的邊界、內(nèi)部點,通過實驗當總數(shù)小于2時效果最好.經(jīng)過二值化去噪以后得到的驗證碼如圖2所示.獲得干凈的圖片后對其進行分割操作,將圖片分解到原子級,即:只包含單個字符的圖片.使用PhotoShop打開并放大到像素級別,可以得出圖片的參數(shù)特征:整個圖片像素為60*20,單個字符像素為8*13,字符間隔6個像素,左相距8個像素,上相距3個像素,最后根據(jù)像素位置特征進行分割.得到的原子圖片效果如圖3所示.由于本文所選擇的研究對象本身尺寸就是統(tǒng)一狀態(tài):60*20的規(guī)格,因此圖片不必進行歸一化.

2基于svm的驗證碼識別

本文采用開源的機器學習庫Libsvm是一個易于使用和快速有效的SVM模式識別與回歸的軟件包,由臺灣大學林智仁教授等開發(fā)設計[7].Libsvm使用步驟可分為6個步驟:1)按照格式要求準備數(shù)據(jù)集;2)對數(shù)據(jù)進行縮放操作;3)考慮使用RBF核函數(shù);4)選擇最佳參數(shù)C與g;5)對訓練集進行訓練獲取支持向量機模型;6)利用模型進行測試與預測[8].

2.1數(shù)據(jù)集標記

在開始階段,計算機程序并不認識相應的字符,因此在識別之前,必須人工對素材進行標識.本文研究的內(nèi)容是數(shù)字驗證碼,因此只要在目錄下建立9個文件夾,以相應的數(shù)字命名即可.采用分割算法將驗證碼分割成4個原子圖片,將分割好的原子圖片拖放到對應的9個文件目錄中,通常來說標記的圖片素材越多,程序預測的準確率越高.如果是字母和數(shù)字組合的驗證碼,則分別建立相應數(shù)量的以數(shù)字和字母命名的文件夾.在驗證碼的一些干擾項如扭曲,噪點,干擾線等做得不夠好的前提下,對計算機來說純數(shù)字與字母加數(shù)字的驗證碼組合并無區(qū)別.

2.2字符特征

選擇字符特征選擇的優(yōu)劣對算法效率有重要的影響,文中特征選擇階段有兩種方法.第一種方法,單個字符像素為8*13,可以將每個像素點作為特征向量則有104個特征,此方法中較高的維度會造成大量的計算.第二種方法,對其進行適當?shù)慕稻S,統(tǒng)計每行黑色像素的個數(shù),可以得到13個特征,統(tǒng)計每列的黑色像素個數(shù)可以得到8個特征,最后將得到21個特征,這樣可以將104個特征縮小到只有21個特征,可減少計算量.本文則采取第二種特征選擇方法.

2.3素材特征

化依次遍歷目錄下9個文件夾,根據(jù)Libsvm指定的格式將對應的圖片素材特征化,生成向量文件,如果每個文件夾有100張素材圖片,那么將會生成10000行的向量文件.得到的像素特征文件部分內(nèi)容如圖4所示.第一列是標簽列,即上文中標記的10個圖片值,第二列到最后一列共有21組特征值,以冒號隔開,前面的值為索引號,后面為相應的行或者列的黑色像素點個數(shù),本文中1-13組為行的值,14-21組為列的值.2.4生成SVM模型并預測在生成SVM模型階段,只需調(diào)用svm-read-problem、svm-train以及svm-save-model函數(shù)即可將特征文件生成SVM模型.主要實現(xiàn)代碼如下:y,x=svm-read-problem(train-file-name)//train-file-name為像素特征文件model=svm-train(y,x)//對訓練集的數(shù)據(jù)進行訓練svm-save-model(model-path,model)//保存生成的模型到指定目錄模型生成之后,使用新的圖片進行測試,使用一組全部標記為0的30張圖片來進行模型測試,用特征算法,將圖像進行特征化降維,并將所有的特征轉(zhuǎn)化為標準化的SVM單行的特征向量,調(diào)用p-label,p-acc,p-val=svm-predict(yt,xt,model)進行預測并得出正確率.

3實驗結(jié)果分析

實驗主要分為6個步驟:1)請求驗證碼接口,獲取圖片保存在內(nèi)存中;2)對圖片進行預處理操作:灰度化,二值化、去噪點;3)將驗證碼分割成4個原子圖片;5)加載訓練好的模型,依次對4個原子圖片進行識別;6)對程序返回的4個識別結(jié)果進行拼接.本文對網(wǎng)站發(fā)起了1000次請求.返回的部分結(jié)果如圖5所示. 由實驗結(jié)果可以得出,當每個數(shù)字的訓練集在90張左右時,識別率已經(jīng)達到100%.

4結(jié)束語

研究了基于SVM對傳統(tǒng)數(shù)字驗證碼進行識別,從實驗結(jié)果可以看出,高校系統(tǒng)中驗證碼識別率可以達到100%.在識別階段也可以采用KNN算法進行識別,同樣可以達到100%的識別率.由此可以看出高校中的系統(tǒng)存在著安全隱患.隨著深度學習技術(shù)的發(fā)展,其在圖像處理技術(shù)上也越來越強,某些傳統(tǒng)的簡單圖片驗證碼已無任何安全可言,因此建議采用新型的驗證碼形式,如:隨機點選漢字圖片式、語音驗證等方式來增加識別難度,從而有效地加強高校系統(tǒng)的安全性. 

參考文獻: 

[3]文曉陽,高能,夏魯寧,等高效的驗證碼識別技術(shù)與驗證碼分類思想[J].計算機工程,2009,35(8):186-188.

[4]尹龍.扭曲粘連字符驗證碼識別研究[D].合肥:中國科學技術(shù)大學,2014.

[5]朱瑩玲.粘連字符驗證碼的識別研究[D].南京:南京理工大學,2017.

[6]張潔玉.基于圖像分塊的局部閾值二值化方法[J].計算機應用,2017,37(3):827-831.

[8]楊雄.基于Python語言和支持向量機的字符驗證碼識別[J].數(shù)字技術(shù)與應用,2017(4):72-74.

作者:安夢生 單位:淮陰師范學院

主站蜘蛛池模板: 婷婷人人爽人人爽人人片| 欧美成人性视频播放| 国产在线国偷精品免费看| 99re热视频这里只精品| 成年人网站免费视频| 久热这里只有精品视频6| 欧美裸体XXXX极品少妇| 公交车上驯服冷艳麻麻| 被三个男人绑着躁我好爽视频| 国产粗话肉麻对白在线播放| 99xxoo视频在线永久免费观看| 少妇被躁爽到高潮无码文| 久久久久国产精品免费网站| 最近手机版免费中文字幕| 亚洲最大av网站在线观看| 狠狠噜天天噜日日噜视频麻豆| 午夜男女爽爽影院网站| 草草浮力影院第一页入口| 国产成人亚洲精品无码车a | 亚洲日韩乱码久久久久久| 男人边吃奶边激烈摸下面的视频 | 国产亚洲一区二区在线观看 | 日本娇小videos精品| 国产精品视频yy9099| 99久久免费精品视频| 天天成人综合网| 一本大道香蕉高清视频app| 无码专区国产精品视频| 久久九九国产精品怡红院| 日韩精品人妻系列无码专区免费| 亚洲人成77777在线播放网站| 欧美视频在线播放观看免费福利资源| 人妻无码中文字幕| 福利一区二区在线观看| 午夜亚洲国产精品福利| 美女吸乳羞羞漫画| 国产一级毛片卡| 阿v视频在线观看| 国产在线观看精品一区二区三区91 | 大香伊人久久精品一区二区| 丁香六月激情综合|