<button id="6ymue"><menu id="6ymue"></menu></button>
    • <s id="6ymue"></s>
    • 美章網(wǎng) 資料文庫 基于SVM的字符驗證碼識別分析范文

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

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

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

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

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

      引言

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

      1字符識別模型

      1.1基本流程

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

      1.2圖片預(yù)處理

      驗證碼圖片預(yù)處理階段,主要包括灰度化、二值化、去除噪點操作.批量請求網(wǎng)絡(luò)接口以獲取驗證碼,獲取的初始驗證碼如圖1所示.下載的原始驗證碼格式是真彩色圖像,因為顏色信息對分割識別沒有作用,故將其轉(zhuǎn)換到灰度空間.轉(zhuǎn)換方法使用最多的是加權(quán)平均值法[5],其公式為:Y=0.299R+0.587G+0.114B(1)將得到的灰度圖片按照設(shè)定閾值轉(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ā)設(shè)計[7].Libsvm使用步驟可分為6個步驟:1)按照格式要求準備數(shù)據(jù)集;2)對數(shù)據(jù)進行縮放操作;3)考慮使用RBF核函數(shù);4)選擇最佳參數(shù)C與g;5)對訓(xùn)練集進行訓(xùn)練獲取支持向量機模型;6)利用模型進行測試與預(yù)測[8].

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

      在開始階段,計算機程序并不認識相應(yīng)的字符,因此在識別之前,必須人工對素材進行標識.本文研究的內(nèi)容是數(shù)字驗證碼,因此只要在目錄下建立9個文件夾,以相應(yīng)的數(shù)字命名即可.采用分割算法將驗證碼分割成4個原子圖片,將分割好的原子圖片拖放到對應(yīng)的9個文件目錄中,通常來說標記的圖片素材越多,程序預(yù)測的準確率越高.如果是字母和數(shù)字組合的驗證碼,則分別建立相應(yīng)數(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指定的格式將對應(yīng)的圖片素材特征化,生成向量文件,如果每個文件夾有100張素材圖片,那么將會生成10000行的向量文件.得到的像素特征文件部分內(nèi)容如圖4所示.第一列是標簽列,即上文中標記的10個圖片值,第二列到最后一列共有21組特征值,以冒號隔開,前面的值為索引號,后面為相應(yīng)的行或者列的黑色像素點個數(shù),本文中1-13組為行的值,14-21組為列的值.2.4生成SVM模型并預(yù)測在生成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)//對訓(xùn)練集的數(shù)據(jù)進行訓(xùn)練svm-save-model(model-path,model)//保存生成的模型到指定目錄模型生成之后,使用新的圖片進行測試,使用一組全部標記為0的30張圖片來進行模型測試,用特征算法,將圖像進行特征化降維,并將所有的特征轉(zhuǎn)化為標準化的SVM單行的特征向量,調(diào)用p-label,p-acc,p-val=svm-predict(yt,xt,model)進行預(yù)測并得出正確率.

      3實驗結(jié)果分析

      實驗主要分為6個步驟:1)請求驗證碼接口,獲取圖片保存在內(nèi)存中;2)對圖片進行預(yù)處理操作:灰度化,二值化、去噪點;3)將驗證碼分割成4個原子圖片;5)加載訓(xùn)練好的模型,依次對4個原子圖片進行識別;6)對程序返回的4個識別結(jié)果進行拼接.本文對網(wǎng)站發(fā)起了1000次請求.返回的部分結(jié)果如圖5所示. 由實驗結(jié)果可以得出,當每個數(shù)字的訓(xùn)練集在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].計算機應(yīng)用,2017,37(3):827-831.

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

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

      免责声明

      本站为第三方开放式学习交流平台,所有内容均为用户上传,仅供参考,不代表本站立场。若内容不实请联系在线客服删除,服务时间:8:00~21:00。

      学术顾问

      免费咨询 学术咨询 期刊投稿 文秘服务

      主站蜘蛛池模板: 两根硕大一起挤进小h| 欧美日韩国产专区| 波多野结衣1区| 无码任你躁久久久久久| 与子的性关系在线播放中文版| 777奇米四色米奇影院在线播放| 色碰人色碰人视频| 最新国产精品拍自在线播放| 国产香蕉在线精彩视频| 全彩里番acg海贼王同人本子| 久久亚洲国产精品123区| 亚洲国产成人va在线观看| 涩涩涩在线视频| 女人张开腿让男人桶视频| 台湾一级淫片高清视频| 久久婷婷五月综合色欧美| 91精品视频在线| 焰灵姬下面夹得好紧| 小丑joker在线观看完整版高清 | 好爽好黄的视频| 四虎精品视频在线永久免费观看 | 无敌影视手机在线观看高清| 国产成人啪精品| 亚洲人成人77777网站| 91亚洲国产在人线播放午夜 | 一道本在线观看| 老师你好电影高清完整版在线观看| 日本男人操女人| 国产免费av片在线播放| 久久精品免费全国观看国产| 人人澡人人爽人人| 欧洲亚洲国产精华液| 国产男女猛烈无遮挡免费视频网站 | 波多野结衣中文字幕一区二区三区 | 69国产成人精品午夜福中文| 月夜影视在线观看免费完整| 国产精品不卡高清在线观看| 亚洲人成精品久久久久| 麻花传剧mv在线看星空| 日本动漫h在线| 国产亚洲成AV人片在线观看导航|