亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于字符的圖片驗證碼識別算法的設計與實現(xiàn)

        2017-03-24 12:40:46陳以山張勇
        電腦知識與技術 2017年1期
        關鍵詞:數(shù)字圖像處理

        陳以山+張勇

        摘要:驗證碼是各大網(wǎng)站用以防范計算機自動程序惡意攻擊的手段之一。通過使用數(shù)字圖像處理中的圖片分割、開閉運算等手段,能夠識別絕大部分網(wǎng)站的驗證碼。對驗證碼識別技術的研究,既能及早發(fā)現(xiàn)驗證碼的漏洞,也能對諸如車牌識別、手寫識別等技術起到促進作用。

        關鍵詞:驗證碼識別;數(shù)字圖像處理;圖片分割;圖片開運算;模圖片閉運算

        中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2017)01-0190-03

        1 研究背景

        驗證碼(CAPTCHA)是“Completely Automated Public Turing test to tell Computers and Hunmans Apart”(全自動區(qū)分計算機和人類的圖靈測試)的縮寫,是一種區(qū)分當前用戶是人類還是計算機的自動程序。在測試中,用戶需要根據(jù)程序生成的一個問題做出正確的回答,程序據(jù)此來判斷該用戶是人類還是計算機。驗證碼種類繁多,大體有基于字符的圖片驗證碼、基于問答的驗證碼、聲音驗證碼等。

        目前,應用最廣泛的是基于字符的圖片驗證碼,它具有容易產(chǎn)生、不受用戶背景知識和文化差異的影響,且暴力破解的難度很大,使用主流的編程語言,很容易可以產(chǎn)生一個包含隨機字母或者數(shù)字的圖片。為了增加識別難度,在生成圖片時,往往會加上諸多干擾因素,比如加上前景、背景,字符粘連,字符變形、歪斜等。

        驗證碼為互聯(lián)網(wǎng)安全作出了很大貢獻,但我們不能忽視驗證碼所存在的漏洞,研究驗證碼自動識別算法,能夠及早發(fā)現(xiàn)驗證碼設計存在的漏洞,并在據(jù)此作出調整,以增加驗證碼的安全性。同時,驗證碼識別作為一種圖靈測試,綜合了數(shù)字圖像處理、模式識別、人工智能等領域的研究成果,也對其他應用如車牌識別、手寫文字識別等具有參考作用。

        本文所研究的驗證碼識別算法,主要分為圖片預處理、字符分割、模式識別三個步驟。由于各個應用所使用的驗證碼識別難度不一樣,需要根據(jù)具體的驗證碼特點,進行具體分析,這里選取了CSDN的驗證碼作為主要分析對象。

        2 圖片預處理

        1) 彩色圖片灰度化

        大部分彩色圖像都是采用的RGB顏色模式,但是其并不能反映圖像的形態(tài)特征,只是從光學的原理上進行了顏色的調配?;叶然倪^程就是將有RGB三通道的彩色圖像轉化為灰度圖像的處理,僅保留機器識別時所需要的必要信息,以便于后面的處理操作。在灰度化的過程中,一般是根據(jù)一定的系數(shù)將三維的RGB色彩降低為一維的灰度值。本人選取的灰度計算公式為:

        其中,R、G、B分別是像素點在三個顏色通道的值,Grey為該像素點對應的灰度值。具體計算方法為:依次讀取圖片每個像素點,獲取其RGB值,取三者的平均值作為新圖片對應像素點的灰度值。彩色圖片灰度化后的結果如表1所示:

        2) 灰度圖片二值化

        經(jīng)過灰度化的圖片,每個像素點的灰度值為0~255之間的任意數(shù)。由于驗證碼圖片中背景色與字符顏色具有較大差異,可以通過設定閾值的方法,區(qū)分背景和字符?;叶戎荡笥陂撝档南袼攸c,灰度值都設置為255,小于等于閾值的像素點,灰度值都設置為0,具體計算公式為:

        T值得選取在圖片二值化過程中至關重要,選取適當?shù)腡,可以在一定程度上去除圖片噪音,增強字符輪廓。為了更精確的獲得圖像信息,這里采用近似一維Means方法尋找二值化閾值,該方法的大致步驟如下:

        a. 設置一個初始閾值T=127

        b. 根據(jù)閾值將每個像素數(shù)據(jù)P分為字符數(shù)據(jù)G1和背景數(shù)據(jù)G2

        c. G1的平均值是M1,G2的平均值是M2

        d. 新的閾值T1=

        e. 如果T1與T不相等,則回到步驟b;如果相等,則T1就是最終的閾值

        灰度圖片經(jīng)過二值化后,效果如表1所示:

        3) 圖片降噪

        由于驗證碼圖片中有許多噪音,這會極大影響到后期的識別效果,我們需要對圖片進行降噪處理,盡量保留圖片中的字符信息,擦除噪音。圖片降噪方法有很多,這里使用滑動窗口的方法來進行降噪處理。具體方法是:取圖像中每個像素點的灰度值,將該值和其四周的八個像素點的值進行排序,取中值作為這個像素點的最終值??紤]到圖片噪聲一般都是相對獨立的像素點,而字符區(qū)域一般是連成片的像素點,因此該方法可以去除孤立的噪音像素點。驗證碼圖片的降噪效果如表3所示:

        4) 圖片開運算

        為了便于對圖片進行分割,需要對圖片進行形態(tài)學處理。形態(tài)學處理表現(xiàn)為一種領域運算形式,通過一種特殊定義的被稱為“結構單元”的領域,在每個像素位置上它與二值圖像對應的區(qū)域進行特定的邏輯運算,邏輯運算的結果輸出為圖像對應的相應像素。為了使得字符輪廓平滑,抑制字符邊界的小的噪點,我們使用了結構開變換。即對圖像先腐蝕,再膨脹。

        在腐蝕操作中,定義A用B結構單元腐蝕,記作A⊙B,表示為:

        圖片腐蝕實現(xiàn)java代碼實現(xiàn)如下:

        /*腐蝕

        * @param source 輸入圖像灰度值的二維數(shù)組

        * @param threshold 當與運算結果值小于閾值時,圖像點的值仍然設為0

        * sData 結構數(shù)組

        * @return 輸出圖像灰度值的二維數(shù)組*/

        private static int[][] correde(int[][] source,int threshold){

        int width=source[0].length;

        int height=source.length;

        int[][] result=new int[height][width];

        for(int i=0;i

        for(int j=0;j

        if(i>0&&j>0&&i

        int max =0;

        for(int k=0;k

        int x=k/3;

        int y=k%3;

        if(sData[k]!=0){

        if(source[i-1+x][j-1+y]>max){

        max=source[i-1+x][j-1+y]; }}}

        if(max

        result[i][j]=0;

        }else{

        result[i][j]=max; }

        }else{

        result[i][j]=source[i][j]; }}}

        return result; }

        在膨脹操作中,定義A用B結構單元擴張,記作A⊕B,表示為:

        A⊕B =

        圖片膨脹實現(xiàn)java代碼實現(xiàn)如下:

        /* 膨脹運算

        * @param source 輸入圖像灰度值的二維數(shù)組

        * @param shreshold 當灰度值大于閾值(小于閾值127)時并且結構元素為1(0)時,認為對應位置匹配上;

        * sData 結構數(shù)組

        * @return 輸出圖像灰度值的二維數(shù)組*/

        private static int[][] dilate(int[][] source,int threshold){

        int width=source[0].length;

        int height=source.length;

        int[][] result=new int[height][width];

        for(int i=0;i

        for(int j=0;j

        if(i>0&&j>0&&i

        int max =0;

        ///對結構元素進行遍歷

        for(int k=0;k

        int x=k/3;

        int y=k%3;

        if(sData[k]!=0){

        ///不為0時,必須全部大于閾值,否則就設置為0并結束遍歷 if(source[i-1+x][j-1+y]>=threshold){ if(source[i-1+x][j-1+y]>max){ max=source[i-1+x][j-1+y];

        }

        }else{

        ////與結構元素不匹配,賦值0,結束遍歷

        max=0;

        break;

        }}}

        result[i][j]=max;

        }else{

        result[i][j]=source[i][j]; }}}

        return result; }

        在實踐中,我們使用的結構體為一個3*3的矩陣:

        開運算效果如表4所示:

        3 字符分割與識別

        為了便于識別,需要將驗證碼圖片進行分割,使得分割后的每個圖片中只出現(xiàn)一個字符。由于待分析的驗證碼無字符粘連現(xiàn)象,故而我們使用比較簡單的豎直投影法。假定背景色為白色(灰度值255),字符顏色為黑色(灰度值0),從左到右掃描圖片的每列像素點,如果一列的灰度值總和小于閾值T,就認為這是字符列,如果小于閾值T,則認為這是間隔列。一次掃描之后,記錄所有字符開始列和間隔開始列,并據(jù)此分割圖片。

        在字符識別階段,首先需要制作樣本庫,樣本需要包含所有可能出現(xiàn)的字符。樣本字符圖片統(tǒng)一使用26*26像素的圖片,背景色用0表示,字符色用1表示,也就是一個26*26的矩陣。對于待識別的字符圖片,首先采用雙線性差值算法,把圖片變?yōu)?6*26大小,采用同樣的方法來獲得圖片對應的矩陣。在樣本庫中,使用漢明距離獲得當前字符圖片與樣本庫中各個圖片的距離最近的一個圖片,該圖片所代表的值即是驗證碼對應字符的值。

        4 識別效果

        根據(jù)上述步驟,我們采用了java代碼實現(xiàn)了算法,并對CSDN網(wǎng)站的1000張驗證碼圖片進行了識別,總體識別率大約為60%,識別的難點主要出現(xiàn)在易于被混淆的字符上,例如字母O、D和數(shù)字0,字母Z和數(shù)字2等字符。

        5 總結與展望

        本文對驗證碼圖片的識別做了深入研究,依次采用了圖片灰度化、二值化、圖片降噪、圖片開運算等數(shù)字圖像處理方法對驗證碼圖片進行了預處理,使得識別效果有了顯著的提高。下一步可以研究以下幾個方面:1)改進字符識別算法,可以采用SVM算法或者基于神經(jīng)網(wǎng)絡的學習算法;2)解決字符粘連時的字符分割問題;3)提升圖片降噪的效果。

        參考文獻:

        [1] Simon Haykin.Neural networks: a comprehensive foundation[M].2nded.USA: Prentice Hall,1998:443-483.

        [2] 岡薩雷斯.數(shù)字圖像處理[D].3版北京:電子工業(yè)出版社,2011.

        [3] 彭洪江.低照度圖像的降噪算法與實現(xiàn)[D].武漢理工大學,2014 .

        [4] 陳紹林.車牌定位與字符分割算法的研究及實現(xiàn)[D].西安電子科技大學,2013.

        [5] Serge Belongie Jitendra Malik Jan Puzicha. Matching with Shape Contexts [M].2000.

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

        [7] 王璐.驗證碼識別技術研究[D].中國科學技術大學,2011.

        [8] 成洪靜,陳立潮,張英俊,等.基于SVM的多分類器構造算法的研究[J].計算機技術與發(fā)展,2008 (12):109-112.

        猜你喜歡
        數(shù)字圖像處理
        圖像實時檢測技術在激光切割中的應用研究
        MATLAB在《數(shù)字圖像處理》課程中的輔助教學
        數(shù)字圖像處理技術在當前影像專業(yè)的作用探討
        基于灰色系統(tǒng)理論的數(shù)字圖像處理算法
        信息與計算科學專業(yè)《數(shù)字圖像處理》課程教學探討與實踐
        考試周刊(2016年91期)2016-12-08 22:19:28
        微課在大學專業(yè)課中的應用研究
        以應用實例為主線、以程序設計為主導的數(shù)字圖像處理課程教學方法改革
        大學教育(2016年9期)2016-10-09 08:58:06
        數(shù)字圖像處理課程CDIO模式教學法實踐
        《數(shù)字圖像處理》課程的驅動教學實踐
        科技視界(2016年3期)2016-02-26 10:11:04
        基于Blackfin的圖像識別式印刷網(wǎng)點測版儀的研制
        光學儀器(2015年6期)2016-01-08 03:26:35
        国产大全一区二区三区| 欧美最猛性xxxxx免费| 色欲麻豆国产福利精品| 在线观看国产内射视频| 91精品国产综合久久久蜜臀九色| 午夜大片在线播放观看| 激烈的性高湖波多野结衣| 好大好硬好爽免费视频| 无码精品国产午夜| 精品视频手机在线免费观看| 亚洲色精品三区二区一区| 国产一女三男3p免费视频| 一本无码av一区二区三区| 一区二区三区手机看片日本韩国| 日本一区二区三区视频国产| 欧美性猛交xxxx富婆| 免费成人毛片| 久久亚洲精品国产精品婷婷| 亚洲一区二区三区精品| 亚洲 卡通 欧美 制服 中文| 一级免费毛片| 中文字幕成人精品久久不卡| 国产精品熟女一区二区三区| 久久久久久无码av成人影院| 99国产精品99久久久久久| 日本亚洲一级中文字幕| 精品视频在线观看日韩| 国产一区二区三区四区五区加勒比| 国产无码夜夜一区二区| 蜜桃在线一区二区三区| 人妻少妇中文字幕久久| 亚洲精品无amm毛片| 操出白浆在线观看| 一本大道加勒比东京热| 亚洲午夜久久久精品影院| 精产国品一二三产区m553麻豆| 久久狠色噜噜狠狠狠狠97| 日韩人妖干女同二区三区| 99热在线观看| 国产A√无码专区| 亚洲精品视频免费在线|