999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于對抗網絡的驗證碼識別方法

2020-04-24 18:34:00曹廷榮龔燕紅賈惠珍
計算機工程與應用 2020年8期
關鍵詞:文本方法模型

曹廷榮,陸 玲,龔燕紅,賈惠珍

1.東華理工大學 信息工程學院,南昌330013

2.南昌大學 信息工程學院,南昌330031

1 緒論

驗證碼是為防止計算機惡意注冊、刷票和論壇灌水的一種自動響應程序,在2003年由Ahn等[1]提出后一直被廣泛使用。文本驗證碼由多個隨機產生的字符組生成。為了增加識別難度通常會使字符扭曲、形變并且加入干擾噪聲。現階段雖然有很多文本驗證碼替代方案,但許多網站和應用程序仍然使用其作為安全和身份驗證的主要手段。

驗證碼從出現開始,人們對其識別和破解從未停止。目前已經提出了很多識別方法。對于文本型驗證碼的識別主要步驟如下:首先,通過二值化、空間濾波、變換等圖像處理技術去除驗證碼中的干擾信息。其次,使用投影、類聚或目標檢測等方法確定字符在圖像中的位置并進行分割。最后,利用SVM、KNN或卷積神經網絡等算法提取字符特征并進行分類識別[2-6]。王專等[7]提出先使用中值濾波去除圖像中的噪點,并使用門限算法進行二值化。再通過分析圖像二值化矩陣算出驗證碼的平均寬度,最后利用寬度對驗證碼進行分割的方法。王璐[8]提出了基于局部極小值和最小投影值的分割法和K-means聚類與豎直投影結合的分割方法。汪洋等[9]提出先使用RGB 三原色去噪法,再采用輪廓差投影法與水滴算法相結合的分割方法。最后利用KNN算法進行識別。研究表明,只要能準確地分割圖像中的字符,利用深度神經網絡技術就能識別出字符本身。但是文本驗證碼的安全性也不斷提高,新引入的安全特性使得許多傳統的識別方法不再適用。對于扭曲、粘貼的驗證碼這種現象更加明顯。

針對文本驗證碼中字符粘貼、扭曲、干擾信息難以去除、識別準確率低等問題,本文提出一種基于對抗學習[10]的驗證碼識別方法。對抗訓練學習網絡在很多方面取得了很好的效果。劉昱等[11]利用對抗訓練網絡對面部圖像進行修復。Wang Z等[12]利用對抗性網絡在智能診斷方案及其在行星齒輪箱故障模式識別中的應用。本文中,在預處理階段利用一個神經網絡模型去除干擾信息[13],然后利用對抗訓練方法訓練一對神經網絡模型,即分割網絡和識別網絡。分割網絡對驗證碼進行分割,同時篩選出分割困難的驗證碼,識別網絡用于識別。通過實驗表明該方法適用于各種文本型驗證碼。與現有方法相比本文使用的方法有以下優勢:(1)利用預處理模型去除文本驗證碼的干擾信息,該方法具有通用性。不同形狀的驗證碼只需重新訓練模型而不需重寫代碼,甚至參數都可以不變。(2)在對抗訓練階段本文引入一個分割網絡和一個識別網絡,解決驗證碼在分割過程中因信息丟失而導致識別率不高的問題,同時在訓練過程中分割網絡會篩選出分割困難的驗證碼。識別網絡也針對這些驗證碼進行訓練。

2 對抗訓練網絡簡介

文本型驗證碼識別通常需要預處理、字符切割、字符特征提取和識別。這個過程中,預處理一般先進行灰度化,然后經過卷積和濾波等處理,最后再進行二值化等。但是,不同的圖片使用的卷積大小不同,二值化閾值也不同。

文中提出的文本驗證碼識別方法是基于最近提出的GAN架構。GAN模型由生成式模型(Generative model)和判別式模型(Discriminative model)組成。生成模型G 捕捉樣本數據的分布,用服從某一分布(均勻分布、高斯分布等)的噪聲z 生成一個類似真實訓練數據的樣本,其效果是生成的圖像越接近真實樣本越好;判別模型D 是一個二分類器,用于估計一個樣本來自于訓練數據(而非生成數據)的概率,如果樣本來自于真實的訓練數據,D 輸出大概率,否則,D 輸出小概率。GANs在圖像和自然語言處理方面都展示出令人印象深刻的結果。因此,本文利用GANs 為基礎,提出通用的文本驗證碼識別解決方案。

本文使用一個相對靈活并且通用的識別方法。該方法流程如圖1 所示。先利用網絡爬蟲或驗證碼生成程序獲取一定數量的驗證碼,然后用預處理模型對驗證碼進行預處理,接著將預處理后的驗證碼放入神經網絡訓練識別。最后得到結果。

圖1 驗證碼識別流程圖

3 對抗訓練網絡實現步驟

3.1 預處理

為提高文本型驗證碼的安全性,通常會在驗證碼中加入干擾信息。對驗證碼識別時,如果不去除干擾信息就無法突出驗證碼的文本字符特征,從而影響驗證碼識別的準確率。驗證碼預處理就是去除驗證碼的干擾信息并且最大可能保留文本字符特征。驗證碼可以看作是由文本字符和帶有噪聲及干擾線的背景圖片通過一系列的變換而來。如圖2所示。

圖2 驗證碼合成圖

圖中驗證碼C 是由左邊的A 和B 兩個圖片而得的。圖像C 到圖像A 的過程稱為去噪或者“翻譯”。本文驗證碼預處理使用的Pix2pix神經網絡模型是一種完全監督的方法,即利用完全配對的輸入圖像C 和輸出圖像A 訓練模型,通過訓練好的模型將輸入的圖像C 生成指定任務的目標圖像A。目前該方法是圖像翻譯任務中完全監督方法里面效果和通用性最好的一個模型。

Pix2pix是一種GAN對抗神經網絡,它由一個生成網絡和一個識別網絡組成。Pix2pix的網絡結構如圖3所示。

圖3 預處理模型結構

對于生成器G 的輸入是一個Y 類圖像y,輸出為生成的圖像G(y)。判別器D 的輸入為一個X 類的圖像x和一個Y 類圖像y。D 需要判斷x 圖像是否是真正的y 對應的圖像,并輸出一個概率。設(x,y)是一對真實的圖像,G 生成的圖像G(y)就應該很接近真實的圖像x。

Pix2pix是一種條件神經網絡(Conditional Generative Adversarial Networks)。它除了具有cGAN[15]一樣的損失函數LcGAN外,還在生成圖像和真實圖像之間加上了L1損失函數。記y 為輸入的圖像,x 為真實圖像(輸出圖像),G 為生成器,D 為判別器,則標準的GAN 網絡的損失函數為:

對G 施加懲罰,即:

因此,最終GAN網絡的損失函數為:

這樣一來,標準的GAN 損失負責捕捉圖像高頻特征,而損失則負責捕捉低頻特征,使得生成結果既真實且清晰。

3.2 對抗訓練/識別

在對抗訓練/識別階段,文中設計了兩個網絡:分割網絡和識別網絡。其中分割網絡主要負責對驗證碼進行切分,而識別網絡則進行分類識別,兩者相互聯系。分割網絡的好壞直接決定識別的網絡準確率的高低。同時,識別網絡的準確率也反映分割網絡的質量。因此,在訓練時不是對兩個網絡分別訓練,而是進行對抗訓練。通過對兩個網絡同時訓練能有效解決網絡性能評估問題。特別是分割網絡,盡管其分割結果與實際位置有一定差距,只要能正確識別出來都可以認為是有效的。

對抗訓練的流程如圖4所示。首先,將預處理后的文本驗證碼使用平均法分割法分割后放入識別網絡。識別網絡經過訓練后得到準確率和Loss值。其次,根據準確率和Loss 值對切割的性能和難易程度進行評估。接著訓練分割網絡調整驗證碼分割的位置,再放入識別網絡進行訓練。如此反復,分割網絡就能學會切分驗證碼,同時選出難以分割的驗證碼。識別網絡也會在這個過程中學會識別驗證碼。

圖4 對抗訓練流程圖

3.2.1 分割網絡

在分割網絡中本文參考了在姿態識別中常用的UNet 網絡[16],U-Net 是一個端到端的網絡模型,它是一種編碼器-解碼器結構。編碼器逐漸減少池化層的空間維度,解碼器逐步修復物體的細節和空間維度。編碼器和解碼器之間通常存在快捷連接。因此,它能幫助解碼器更好地修復目標的細節。在進行Pooling 的時候采用Maxpooling并且保留了位置信息,使得在進行上采樣的時候能夠還原其位置信息。

本文中圖形驗證碼是一個條形如圖5 所示,在切割調整的時候由原來的圖5(a)中的a,b 范圍調整到圖5(b)中所示的A,B,調整的范圍只是在x 反向進行變化,在y 方向上不發生變化,因此為了避免很多無效的計算,本文借鑒了U-Net 網絡的思想,使用了一種類U-Net網絡。網絡結構原理如圖6所示。

圖5 字符分割范圍調整情況

圖6 U-Net網絡結構圖

通過對識別網絡和分割網絡的聯合訓練,識別網絡不僅保留了傳統切割方法的識別率,而且通過分割網絡對抗學習也使性能得到提高。

3.2.2 識別網絡

這里采用一個多尺寸通道圖像輸入方法[17]。圖7(a)所示,假設a,b 分別是驗證碼中字母E的位置,本文中將{a-δ,b+δ},{a,b+δ},{a-δ,b},{a,b}四個部分的內容作為網絡的輸入,識別網絡的設計思想如圖7(b)所示:第一行為卷積路,由三個核尺度不同的卷積層(白色)串聯而成,間插有Batch Normalization(淺藍)和ReLU(淺紫);第二行為跳級路,只包含一個核尺度為1的卷積層;如果跳級路的輸入輸出通道數相同,則這一路為單位映射。所有卷積層的步長為1,padding為1,不改變數據尺寸,只對數據深度(channel)進行變更。整個模塊由兩個參數控制:輸入深度M 和輸出深度N 。可以對任意尺寸圖像操作。這樣的設計很好地解決了驗證碼切割過程中信息丟失的問題,最大可能地保留驗證碼信息,從而提高識別準確率。

圖7 字符分割及識別網絡殘差模塊圖

在深度學習訓練中為了增強模型的泛化性通常會使用數據增強和正則化方法(如dropout、BN)。一般的數據增強方法有:隨機裁剪、水平翻轉、平移、旋轉、增加噪音等。其中前兩個方法用得最多,也最有效。Zhong Z等[18]提出了很簡單且實用的無參數數據增強方法即隨機遮擋。該方法被證明在多個CNN架構和不同領域中都可以提升模型的性能,并且與隨機裁剪、水平翻轉(還有正則化方法)具有一定的互補性。因此,本文中引入該方法能有效解決驗證碼中的字符在預處理和分割過程中局部信息丟失問題,具有更好的魯棒性。在實驗中本文參考了Devries T 等[19]提出的方法,隨機遮擋不是直接作用于原始輸入驗證碼字符圖像,而是作用于feature map 層上。通過在訓練過程中對深度特征進行隨機遮擋。相當于建立每個因子特征與相應類別的權重關系,減弱背景(或噪音)因子的權重,可以產生更好的學習效果,增加識別網絡的穩定性。

3.2.3 聯合訓練

聯合訓練分割網絡和識別網絡是一個很關鍵也比較復雜的過程。為了能夠保證網絡的正常進行,文中引入一個獎賞機制,即分割網絡的預測是根據識別網絡的狀態進行更新的。首先,利用平均分割的方法將文本驗證碼放入識別網絡進行訓練得到一個模型A。然后,訓練分割網絡調整分割的位置,并利用模型A 來驗證。同時更新分割信息。第二輪訓練的時候,用新的分割信息放入識別網絡訓練更新模型A。接著訓練分割網絡再用新的模型A 驗證,如此反復,直到訓練結束,這樣就得到分割網絡模型和識別網絡模型。

4 實驗步驟

4.1 數據準備

驗證碼數據的來源有很多方法,如通過網絡爬蟲、利用代碼生成或者參加比賽獲得。本文實驗中使用了5類樣本。其中2 類利用網絡爬蟲在一些流行的網站中獲取,2類利用代碼隨機生成,1類來源于比賽項目。每一類驗證碼大約有5 000個并且都做好標記。然后將每一類樣本按照7∶2∶1的比例進行隨機拆分。其中的70%作為訓練樣本,20%作為驗證樣本,還有10%作為測試樣本。

4.1.1 預處理數據集制作

圖8(b)所示的是預處理數據集Pre-dataset,由去除干擾信息的驗證碼和與之對應的原始驗證碼組成。實驗中每一類驗證碼制作500對預處理數據。在制作時,首先使用數字圖像處理方法得到圖8(a)中的二值化驗證碼圖像(Bin-dataset),然后通過人工的方法使用圖像處理軟件對Bin-dataset進行篩選和矯正,最后編寫程序處理、合成預處理數據集。

圖8 預處理數據集樣例

4.1.2 分割數據集制作

接下來制作分割數據集Split-dataset,五類驗證碼每一種100對。制作時,首先采用連通區域標記法對Bindataset進行處理(其中第五類對Bin-dataset進行形態學變換后再處理),生成標記數據Tag-dataset。然后使用lableme 軟件對Tag-dataset 數據進行人工校正。最后利用腳本程序合成分割數據集。

圖9 分割數據集樣例

4.2 訓練預處理模型

在python3.6環境下利用pytorch深度神經網絡框架完成整個算法流程。正如前面所說預處理模型是一個Pix2pix 轉 換 框 架。Pro-model 包 含GeneratorUNet 和Discriminator 兩個部分。在GeneratorUNet 部分中有兩個主要步驟UNetDown 和UNetUp。在UNetDown 中使用Conv2d、InstanceNorm2d和LeakyReLU,而在UNetUp中 采 用 一 次ConvTranspose2d、InstanceNorm2d 和ReLU。GeneratorUNet 部分先進行5 次UNetDown 和4次UNetUp。對于Discriminator使用了4個discriminator_block,每個discriminator_block 包含1 個Conv2d、1 個InstanceNorm2d和1個LeakyReLU。在訓練的時候使用學習率為0.000 2,batch-size為1,對模型訓練2 100 epoch。

4.3 對抗訓練

在對抗訓練階段包含了兩個網絡。即分割網絡(SegmentNet)和識別網絡(IdentifyNet)。

在SegmentNet中使用了一個類U-Net網絡。類U-Net網絡的左側是convolution layers,右側則是upsamping layers,convolutions layers 中每個pooling layer 前一刻的activation 值會concatenate 到對應的upsamping 層的activation 值中。因為U-Net 左側部分和resnet、vgg、inception 等模型一樣,都是通過卷積層來提取圖像特征,所以U-Net可以采用resnet/vgg/inception+upsampling的形式來實現,另外驗證碼數據并不是非常復雜,這個項目中采用的是最簡單的LeNet-5+upsampling的架構。

IdentifyNet 就是一個完全的分類器,常用的有resnet/vgg/inception等,由于驗證碼圖像比較簡單,而且經過預處理后數據識別更加簡單,根據圖7 所示的設計,每一個尺寸通道使用一個Residual bloack模塊。一共有4個尺寸通道。

5 實驗結果

5.1 預處理結果

在預處理階段中每一類驗證碼都使用了500 個樣本進行訓練,同時也利用傳統的數字圖像處理方法對每一類進行處理比較,如表1所示。第一列是輸入文本驗證碼圖片,第二列是使用傳統數字圖像處理方法預處理結果,第三列是本文方法處理的結果,第四列是預處理的目標效果。第二列中,每一類都使用不同的代碼。表1中的第四類,首先將圖像二值化,然后用一個大小為5的方塊對其腐蝕去除干擾線條,最后再用大小為5的方塊進行膨脹。而處理第五類時不能使用腐蝕或者膨脹的方法。因為漢字的細節太多,而干擾信息的寬度大多都和漢字的寬度相同。根據實驗結果得出:(1)傳統預處理方法在去除干擾信息的同時也會丟失部分字符信息。特別是干擾線條的寬度長度與字符接近的時候這種現象最為明顯,例如表1 中的第二類和第五類驗證碼。(2)利用GAN神經網絡作為預處理模型不僅能夠很好除去驗證碼中的干擾信息,而且還能保留原彩色圖片的顏色信息。對于有顏色信息的驗證碼(如表1中的第三行驗證碼)又提供了更加有用的分割信息。對于這類文本驗證碼可以根據不同顏色快速進行分割。(3)這樣的預處理模型還有通用性,本文中所處理的五類驗證碼在預處理時都使用同一個網絡模型,甚至它的超參數都是一樣的,只需要把數據導入模型進行訓練就能得到結果。

表1 預處理得到的結果

5.2 對抗訓練/識別結果

在對抗訓練/識別階段,經過對抗訓練后得到兩個網絡模型,分割網絡G 和識別網絡D。

5.2.1 分割結果

使用分割網絡G 分別對這五類驗證碼進行訓練后得到結果如圖10 所示。第一類準確率為0.926,第二類準確率為0.933,第三類準確率為0.953,第四類準確率為0.892,第五類準確率為0.924。

圖10 分割網絡結果

5.2.2 識別結果

表2 是文本驗證碼在不同階段的輸出結果。驗證碼經過分割網絡分割后不同字符會被標記成不顏色,通過顏色就能快速進行分割。然后利用識別網絡進行分類得到最后結果。

表3顯示的是最終識別結果。在實驗A中,首先使用傳統方法對文本驗證碼進行預處理,然后利用連通域分割法(CFS)對圖像進行分割(有粘貼情況使用平均寬度分割),最后使用卷積神經網絡進行分類(在實驗過程中首先使用了VGG16 模型,但是由于驗證碼圖像是經過預處理后的圖像很容易過擬合,因此使用簡單的LeNet5 模型)。在實驗B 中使用本文提出的識別方法。通過對比發現:(1)如果文本驗證碼的干擾線條和字符線條寬度相差很大時,分割是影響準確率的主要因素。如表3中第1、3、4類驗證碼。(2)當干擾線條寬度和字符線條寬度接近時,預處理和分割都是很關鍵的步驟,如表3 中第5 類驗證碼。在整個實驗中,不管是預處理還是分割和識別,本文的方法在通用性和準確性方面都能夠取得很好的效果。

表2 不同階段的處理結果

表3 測試結果比較

6 結語

本文提出基于對抗學習的驗證碼識別方法與以往的方法相比無論是在通用性和準確率上都有明顯的提高。但也存在一些不足,首先,文本驗證碼在收集和預處理階段需要大量人工參與。在未來工作中將嘗試使用超參數優化合成的方式直接生成預處理數據集和分割數據集以減少人工干預,湯戰勇等[20]做了類似的工作。其次,本文提出的方法是基于文本型驗證碼的識別,希望在未來工作能運用到其他相關領域。最后,雖然本文是文本驗證碼識別,從安全的角度來說,盡管目前文本驗證碼都有了很多的替代方案,但是文本型驗證碼依然是最流行的方法。希望能引起更多的注意,在未來提出更加安全的文本驗證碼。

猜你喜歡
文本方法模型
一半模型
重要模型『一線三等角』
重尾非線性自回歸模型自加權M-估計的漸近分布
在808DA上文本顯示的改善
基于doc2vec和TF-IDF的相似文本識別
電子制作(2018年18期)2018-11-14 01:48:06
3D打印中的模型分割與打包
用對方法才能瘦
Coco薇(2016年2期)2016-03-22 02:42:52
文本之中·文本之外·文本之上——童話故事《坐井觀天》的教學隱喻
四大方法 教你不再“坐以待病”!
Coco薇(2015年1期)2015-08-13 02:47:34
捕魚
主站蜘蛛池模板: 69免费在线视频| 久久国产精品电影| 69精品在线观看| 欧美国产日韩一区二区三区精品影视| 国产精品极品美女自在线网站| www中文字幕在线观看| 国内精品免费| 国产大片喷水在线在线视频 | 青青草原国产精品啪啪视频| 日本手机在线视频| 91精选国产大片| 免费毛片视频| 午夜啪啪福利| 99国产精品免费观看视频| 免费毛片a| 中文字幕久久波多野结衣| 一级一毛片a级毛片| 色综合日本| 在线免费a视频| 女人18毛片久久| 伊人久久大香线蕉影院| 51国产偷自视频区视频手机观看| 国产在线无码av完整版在线观看| 国产精品久久自在自线观看| 国产噜噜噜视频在线观看| 久久99精品久久久大学生| 亚洲国产看片基地久久1024| 亚洲免费黄色网| 视频二区中文无码| 久久久久久高潮白浆| 丁香五月激情图片| 国产一级特黄aa级特黄裸毛片| 99re视频在线| 在线日韩一区二区| 色噜噜久久| www.youjizz.com久久| 综合五月天网| 99草精品视频| 久久国产精品电影| 日韩无码真实干出血视频| 免费看一级毛片波多结衣| 视频二区亚洲精品| 青青草原国产精品啪啪视频| 亚洲第一中文字幕| 日韩欧美国产中文| 久久人妻xunleige无码| 91免费国产在线观看尤物| 香蕉久久国产精品免| 国产一级毛片高清完整视频版| 国产日韩精品一区在线不卡| 国产精品第一区在线观看| 国产色伊人| 一级香蕉人体视频| 亚洲一区二区无码视频| 99国产精品一区二区| 伊人国产无码高清视频| 色视频久久| 婷婷综合在线观看丁香| 亚洲AV无码久久精品色欲| 日本高清视频在线www色| 91香蕉国产亚洲一二三区 | 一级毛片在线免费视频| 国产成人精品三级| 国产手机在线观看| 美女裸体18禁网站| 九九九久久国产精品| 亚洲精品视频免费看| 亚洲天堂免费在线视频| 18禁黄无遮挡免费动漫网站| 色婷婷天天综合在线| 欧美日韩国产精品va| 国产成人精品一区二区三区| 操美女免费网站| 在线不卡免费视频| 99手机在线视频| 一级毛片免费的| 国内99精品激情视频精品| 精品人妻无码中字系列| 99久久人妻精品免费二区| 91精品免费久久久| 免费国产不卡午夜福在线观看| 中文天堂在线视频|