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

        ?

        基于深度學(xué)習(xí)的驗(yàn)證碼圖像識別

        2019-03-19 06:54:32宋小鵬杜春暉
        測試技術(shù)學(xué)報 2019年2期
        關(guān)鍵詞:字符殘差標(biāo)簽

        徐 星,宋小鵬,杜春暉

        (1.中北大學(xué) 信息與通信工程學(xué)院,山西 太原 030051;2.中國煤炭科工集團(tuán)太原研究院有限公司,山西 太原 030006)

        0 引 言

        為了實(shí)現(xiàn)全自動、 大批量地抓取“企查貓”網(wǎng)站的信息,需要破解該網(wǎng)站的驗(yàn)證碼.該網(wǎng)站的驗(yàn)證碼圖像包含4位字符,由數(shù)字和大寫字母組成,共28個字符,為“0123456789ACDFHJKLN-PRSTUVXY”.

        鑒于驗(yàn)證碼在互聯(lián)網(wǎng)中的廣泛應(yīng)用,國內(nèi)外對驗(yàn)證碼的識別進(jìn)行了相關(guān)研究,出現(xiàn)了很多破解驗(yàn)證碼的技術(shù).目前,驗(yàn)證碼識別主要有支持向量機(jī)(SVM)、 卷積神經(jīng)網(wǎng)絡(luò)(CNN)等方法.殷光等[1]將每張圖像進(jìn)行灰度化、 二值化后進(jìn)行區(qū)域分割,將4位字符切割成4個單個字符供SVM分類器進(jìn)行訓(xùn)練.該方法能夠識別大多數(shù)圖像不粘連的驗(yàn)證碼.張濤等[2]也提出在驗(yàn)證碼圖像字符容易分割的情況下,對其先經(jīng)過灰度化、 二值化、 去噪后,切割成單個字符,采用深度卷積神經(jīng)網(wǎng)絡(luò)的方法對單個字符進(jìn)行訓(xùn)練、 識別后再合并的方法.該方法基于卷積神經(jīng)網(wǎng)絡(luò)強(qiáng)大的特征提取能力,并且使用了非線性激活函數(shù),效果明顯優(yōu)于SVM的分類方法,但是也僅僅能夠處理容易分割的驗(yàn)證碼圖像.對于不易分割的驗(yàn)證碼,張濤等[2]將包含10個數(shù)字和26個字母的4位字符的標(biāo)簽使用1*144向量表示,每位字符占用1*36,采用深度學(xué)習(xí)端對端的單任務(wù)整體分類的方式進(jìn)行訓(xùn)練.該方式分類類別較多,擬合效果不好,準(zhǔn)確率只達(dá)到了85%.于鵬[3]、 溫明莉[4]和洪洋[5]等都提出用深度神經(jīng)網(wǎng)絡(luò)對整張驗(yàn)證碼圖片進(jìn)行多標(biāo)簽學(xué)習(xí)來完成多任務(wù)分類,端對端地識別出了驗(yàn)證碼中的所有字符.該方法對特定位數(shù)并且圖像噪聲較少的驗(yàn)證碼識別效果較好.張濤等[2]也提出使用CNN+RNN的方法進(jìn)行驗(yàn)證碼識別,但是由于其設(shè)計的CNN網(wǎng)絡(luò)層數(shù)較淺,得出該方法沒有優(yōu)于只使用CNN的效果.

        本文主要受圖像描述(Image Caption)的啟發(fā),圖像描述是指從圖片中自動生成一段描述性文字,機(jī)器不僅要能檢測出圖像中的物體,而且要理解物體之間的相互關(guān)系,最后用合理的語言表達(dá)出來.谷歌開源了圖像描述系統(tǒng),提出使用Caption模型,使其能對圖像生成更詳細(xì)、 更準(zhǔn)確的描述,解決圖像標(biāo)注問題[6].對于驗(yàn)證碼圖像,同樣也可以采用此方法將圖像中的字符表達(dá)出來.本實(shí)驗(yàn)將采用卷積神經(jīng)網(wǎng)絡(luò)(CNN)與循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)結(jié)合的方式,構(gòu)造出復(fù)雜的CNN模型進(jìn)行特征提取用于RNN語句的生成.這對于擁有動態(tài)位數(shù),不容易被分割成一個個單獨(dú)字符且圖片背景復(fù)雜的驗(yàn)證碼,具有良好的識別效果.

        1 網(wǎng)絡(luò)模型設(shè)計

        圖像描述就是由給定的圖像生成一段描述文字.驗(yàn)證碼圖像描述要做的就是將驗(yàn)證碼圖像中的字符表達(dá)出來.目標(biāo)是產(chǎn)生標(biāo)注驗(yàn)證碼字符的語句,是一個語句生成的任務(wù),一對多的序列生成過程使用RNN進(jìn)行; 描述的對象擁有大量的圖像信息,利用CNN將更深層次的特征表達(dá)輸出到RNN的輸入端.將CNN與RNN結(jié)合的網(wǎng)絡(luò)模型設(shè)計能夠把時間、 空間的特性更加完整、 具體地表達(dá)出來.CNN適合用于空間擴(kuò)展,其在神經(jīng)元與特征卷積上的特性,使得它更專注于圖像的特征提取,并且能夠靜態(tài)地輸出圖像特征; RNN適合用于時間擴(kuò)展,由于它的特殊結(jié)構(gòu)能夠?qū)ι窠?jīng)元與時間上連續(xù)狀態(tài)的輸出進(jìn)行計算,因此它擅長處理序列化數(shù)據(jù),并且具有記憶功能.

        1.1 CNN

        卷積神經(jīng)網(wǎng)絡(luò)作為一種深度學(xué)習(xí)架構(gòu),是一種多層神經(jīng)網(wǎng)絡(luò),通過一系列方法,它成功地將數(shù)據(jù)量龐大的圖像識別問題不斷降維,最終使其能夠被訓(xùn)練,并且得到了較高的準(zhǔn)確率[7,8].本實(shí)驗(yàn)中CNN的目的是以一定的模型對事物進(jìn)行特征提取,由于卷積和池化計算的性質(zhì),使得圖像中的平移部分對于最后的特征向量是沒有影響的,提取到的特征更不容易過擬合.網(wǎng)絡(luò)的層數(shù)越多,意味著能夠提取到不同等級的特征越豐富.并且,對深層次的網(wǎng)絡(luò)結(jié)構(gòu)能夠提取到更抽象的特征,得到更多的語義信息.但是隨著網(wǎng)絡(luò)深度的增加,網(wǎng)絡(luò)準(zhǔn)確度出現(xiàn)飽和,甚至出現(xiàn)下降的問題,ResNet通過短路機(jī)制加入了殘差單元,并證明了加深的殘差網(wǎng)絡(luò)比簡單疊加層的深度網(wǎng)絡(luò)更容易優(yōu)化,準(zhǔn)確度得到了明顯提升[9].本實(shí)驗(yàn)根據(jù)ResNet網(wǎng)絡(luò)的特性,創(chuàng)新性地構(gòu)建出24層的卷積神經(jīng)網(wǎng)絡(luò),結(jié)構(gòu)如表 1 所示,Conv1為卷積層,它使用64個7*7大小的卷積核; Conv2_x、 Conv3_x為多重殘差單元,其中Conv2_x為3重殘差單元,每重殘差單元由3個卷積層構(gòu)成,而Conv3_x為4重殘差單元,同樣地,每重殘差單元包含3個卷積層.對于Conv2_中的殘差單元,如圖 1 所示,該結(jié)構(gòu)將輸入端與輸出端短路連接,有助于解決神經(jīng)網(wǎng)絡(luò)訓(xùn)練出現(xiàn)梯度消失和梯度爆炸的問題.x為輸入值,F(xiàn)(x)為三層卷積后得到的值,F(xiàn)(x)+x表示網(wǎng)絡(luò)最終結(jié)果.若直接去擬合一個潛在的恒等映射函數(shù)H(x)=x比較困難.但是,如果把網(wǎng)絡(luò)設(shè)計為H(x)=F(x)+x,如圖 1 所示,可以轉(zhuǎn)換為學(xué)習(xí)一個殘差函數(shù)F(x)=H(x)-x.因此只要F(x)=0,就可以構(gòu)成一個H(x)=x的恒等映射,而且對于殘差的擬合會更加容易.

        表 1 卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)

        圖 1 殘差單元示意圖Fig.1 Diagram of residual cells

        1.2 RNN

        在眾多自然語言處理的任務(wù)中,循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)已經(jīng)取得了巨大成功,用于語言建模[10],文本生成[11],機(jī)器翻譯[12],語音識別[13],生成圖片的文字描述[6].卷積神經(jīng)網(wǎng)絡(luò)(CNN)解決了圖像空間問題,但還存在圖像時間問題.RNN具有記憶功能,當(dāng)前的輸出由上一時刻的輸出和當(dāng)前的輸入共同決定,因此使其在處理序列的問題上得到了廣泛的應(yīng)用.長短期記憶網(wǎng)絡(luò)(LSTM)作為一種特殊的RNN模型,通過設(shè)計遺忘門避免了以往RNN出現(xiàn)當(dāng)前系統(tǒng)狀態(tài)受之前系統(tǒng)狀態(tài)影響的問題,使其得到了廣泛的應(yīng)用[14].LSTM是根據(jù)前面的信息推出后面的,但有時只看前面的信息是不夠的,可能需要由前面若干輸入和后面若干輸入共同決定,以使推測更加準(zhǔn)確.Bartz等[15]采用雙向循環(huán)神經(jīng)網(wǎng)絡(luò)(Bidirectional Long-Short Term Memory, BLSTM)彌補(bǔ)了這一問題,并用于語言識別.因此,本實(shí)驗(yàn)采用BLSTM處理卷積神經(jīng)網(wǎng)絡(luò)輸出的特征,識別驗(yàn)證碼序列.雙向循環(huán)神經(jīng)網(wǎng)絡(luò),如圖 2 所示,輸入序列中的第一個是原樣的,第二個是輸入序列的反轉(zhuǎn)副本.這可以為網(wǎng)絡(luò)提供額外的上下文,使得網(wǎng)絡(luò)得到更快、 更好的擬合.

        圖 2 BLSTMFig.2 Diagram of BLSTM

        1.3 損失函數(shù)

        采用CTC(Connectionist Temporal Classification) Loss作為序列有監(jiān)督學(xué)習(xí)的損失函數(shù)進(jìn)行模型訓(xùn)練時,不需要將數(shù)據(jù)對齊和一一標(biāo)注,只需要一個輸入序列和一個輸出序列即可以訓(xùn)練,并且直接輸出序列預(yù)測的概率,不需要外部的后處理[16].因?yàn)镃TC允許神經(jīng)網(wǎng)絡(luò)在任意一個時間段預(yù)測標(biāo)簽,但要求輸出的序列順序必須是正確的,這樣就不需要讓標(biāo)簽和圖像中的字符嚴(yán)格對齊了,而且CTC輸出的是整個序列標(biāo)簽,因此也不需要再做一些外部的后處理.CTC Loss在分類處理時需要多設(shè)置1個長度即空格,否則會無法預(yù)測出連續(xù)兩個相同的字母或者數(shù)字的驗(yàn)證碼序列了.

        2 數(shù)據(jù)集制作及評估標(biāo)準(zhǔn)

        2.1 數(shù)據(jù)集制作

        本次識別驗(yàn)證碼是為了解決實(shí)際爬蟲遇到的問題,驗(yàn)證碼圖片來自“企查貓”網(wǎng)站,使用python語言編碼發(fā)送http請求到該網(wǎng)站驗(yàn)證碼圖像接口來獲取驗(yàn)證碼圖片.獲得的驗(yàn)證碼圖像如圖 3 所示,寬為80像素,高為160像素.收集到22 388張驗(yàn)證碼,將這些驗(yàn)證碼圖片按照0.75,0.15,0.10的比例分為訓(xùn)練集、 驗(yàn)證集和測試集三部分.訓(xùn)練集為16 791張,驗(yàn)證集為3 358張,測試集為2 239張.驗(yàn)證碼字符包含28個字符,為“0123456789ACDFHJKLNPRSTUVXY”.驗(yàn)證碼圖像標(biāo)簽的制作采用手工打標(biāo)簽,打完標(biāo)簽后進(jìn)行檢查排錯以確保標(biāo)簽的正確性,因?yàn)閷?shí)驗(yàn)采用的是監(jiān)督學(xué)習(xí),沒有正確的標(biāo)簽則不會有較高的識別準(zhǔn)確率,這也會避免訓(xùn)練中出現(xiàn)過擬合的現(xiàn)象.

        圖 3 驗(yàn)證碼2KN6Fig.3 Captcha 2KN6

        2.2 評估標(biāo)準(zhǔn)

        本實(shí)驗(yàn)采用準(zhǔn)確率評估驗(yàn)證碼的識別效果,用識別對的驗(yàn)證碼圖片數(shù)量去除參與識別的驗(yàn)證碼圖片數(shù)量.

        3 實(shí)驗(yàn)過程

        ① 本實(shí)驗(yàn)采用Caffe[17]框架進(jìn)行訓(xùn)練,將數(shù)據(jù)集制作好后修改Caffe源碼使其支持多標(biāo)簽輸入和訓(xùn)練; ② 將圖像數(shù)據(jù)和標(biāo)簽轉(zhuǎn)換成LMDB格式的數(shù)據(jù)庫文件; ③ 設(shè)計CNN與RNN結(jié)合的網(wǎng)絡(luò)模型結(jié)構(gòu),使之能夠適合處理驗(yàn)證碼標(biāo)注任務(wù); ④ 訓(xùn)練和測試網(wǎng)絡(luò); ⑤ 使用Flask搭建基于深度學(xué)習(xí)的驗(yàn)證碼圖像識別服務(wù)器; ⑥ 編寫代碼,發(fā)送post請求,返回識別結(jié)果; ⑦ 制作軟件圖形化界面,可視化識別,如圖 4 所示,當(dāng)點(diǎn)擊“識別”按鈕后會發(fā)送下載驗(yàn)證碼圖片的請求并調(diào)用識別程序,在界面會顯示這幅驗(yàn)證碼圖片和識別結(jié)果.

        圖 4 驗(yàn)證碼識別圖形用戶界面Fig.4 Captcha recognition GUI

        4 實(shí)驗(yàn)結(jié)果及分析

        從圖 5 中可見,迭代初始階段驗(yàn)證碼識別的準(zhǔn)確率不高,隨著迭代次數(shù)的增加,識別準(zhǔn)確率突然上升; 在迭代7 000次后,模型的識別準(zhǔn)確率緩慢上升; 在10 000次迭代后,模型平均識別率基本達(dá)到穩(wěn)定,最終收斂在97%左右,并且并沒有出現(xiàn)過擬合.測試結(jié)果顯示,2 239張圖片有65張圖片被識別錯,識別正確率達(dá)到97.09%.由此可見,本文設(shè)計的基于深度學(xué)習(xí)的驗(yàn)證碼識別正確率高,效果很好.通過觀察實(shí)驗(yàn)結(jié)果發(fā)現(xiàn),存在的部分誤判是因?yàn)轵?yàn)證碼字母的復(fù)雜變形導(dǎo)致字母與字母之間很容易產(chǎn)生混淆,如K、 H、 N等,人眼也很難分辨.對這一問題,可以通過反復(fù)排查打標(biāo)簽的正確性來避免人為因素,另外還可以增加更多的訓(xùn)練樣本和加深卷積神經(jīng)網(wǎng)絡(luò)的層數(shù)來進(jìn)一步提高識別率.

        圖 5 迭代次數(shù)與正確率的關(guān)系圖 Fig.5 The diagram of the relation between the number of iterations and the correct rate

        5 結(jié)束語

        本文針對“企查貓”網(wǎng)站的驗(yàn)證碼進(jìn)行分析,由于該類型的驗(yàn)證碼圖片中的字符之間存在粘連,不容易被分割成一個個單獨(dú)的字符.對此本文提出利用端到端的思想搭建深度學(xué)習(xí)模型,省去預(yù)處理和分割環(huán)節(jié),然后進(jìn)行訓(xùn)練識別,取得了較好的結(jié)果.實(shí)驗(yàn)結(jié)果證明了采用CNN結(jié)合RNN的方式進(jìn)行訓(xùn)練,能夠達(dá)到較高的識別準(zhǔn)確率,沒有出現(xiàn)過擬合現(xiàn)象,并且能夠識別動態(tài)位數(shù)的驗(yàn)證碼.采用這種圖像描述的方處理驗(yàn)證碼識別問題,效果很好,可以將此技術(shù)應(yīng)用于車牌識別或身份證號碼識別上.但是對于如果不經(jīng)過訓(xùn)練的驗(yàn)證碼,直接使用這個訓(xùn)練好的模型可能達(dá)不到如此好的效果,需要采集大量地訓(xùn)練樣本并且對此打上正確的標(biāo)簽,重新進(jìn)行訓(xùn)練.

        猜你喜歡
        字符殘差標(biāo)簽
        尋找更強(qiáng)的字符映射管理器
        基于雙向GRU與殘差擬合的車輛跟馳建模
        基于殘差學(xué)習(xí)的自適應(yīng)無人機(jī)目標(biāo)跟蹤算法
        字符代表幾
        一種USB接口字符液晶控制器設(shè)計
        電子制作(2019年19期)2019-11-23 08:41:50
        基于遞歸殘差網(wǎng)絡(luò)的圖像超分辨率重建
        消失的殖民村莊和神秘字符
        無懼標(biāo)簽 Alfa Romeo Giulia 200HP
        車迷(2018年11期)2018-08-30 03:20:32
        不害怕撕掉標(biāo)簽的人,都活出了真正的漂亮
        海峽姐妹(2018年3期)2018-05-09 08:21:02
        標(biāo)簽化傷害了誰
        波多野结衣免费一区视频| 国产肉体XXXX裸体784大胆| 好爽~又到高潮了毛片视频| 国产一区二区资源在线观看| 未发育成型小奶头毛片av| 无码成人aaaaa毛片| 亚洲综合五月天欧美| 亚洲国产大胸一区二区三区| 亚洲av永久无码精品网站| 18禁黄网站禁片免费观看| 亚洲V无码一区二区三区四区观看| 男女动态视频99精品| 男人国产av天堂www麻豆| 午夜不卡av免费| 婷婷五月亚洲综合图区| 丰满人妻被公侵犯的视频| 国产精品永久在线观看| 日本无遮挡吸乳呻吟视频| 91极品尤物国产在线播放| 日本加勒比精品一区二区视频| 精品无码国产自产拍在线观看 | 国产在线观看精品一区二区三区| 精品人妻久久一日二个| 久久精品国产成人| 精品伊人久久香线蕉| 蜜桃av噜噜一区二区三区免费 | 久久久国产精品三级av| 色婷婷五月综合激情中文字幕| 日本乱子人伦在线视频| 精品国产亚洲av麻豆尤物| 久久av不卡人妻出轨一区二区| 激情内射日本一区二区三区| 亚洲AⅤ永久无码精品AA| 国产成人亚洲综合二区| 午夜天堂精品久久久久| 国产成人av一区二区三区无码| 人成视频在线观看免费播放| 人妖av手机在线观看| 纯爱无遮挡h肉动漫在线播放 | 老太脱裤让老头玩ⅹxxxx| 精品一区二区三区中文字幕在线|