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

基于深度學習的驗證碼識別Web應用平臺

2020-04-20 10:46:34王昊康曉鳳盧志科施潤杰黃成鑫
軟件工程 2020年4期
關鍵詞:深度學習

王昊 康曉鳳 盧志科 施潤杰 黃成鑫

摘? 要:目前許多網站使用驗證碼阻止黑客進行暴力破解登錄口令,但是隨著技術的發展驗證碼識別的難度及成本日益提升,傳統的OCR(Optical Character Recognition)技術識別效率已不能滿足需求。Vcode Identify平臺使用TensorFlow建立深度學習模型并結合Web應用開發的一款驗證碼識別軟件,使用該平臺用戶不僅可以通過調用接口或者上傳文件的形式對驗證碼進行識別,而且還可以建立新模型并訓練,進而可以識別新類型驗證碼,該軟件使用簡單、擴展性強。

關鍵詞:深度學習;Python Web;驗證碼識別;Vcode Identify平臺

中圖分類號:TP315? ? ?文獻標識碼:A

Abstract:At present,many websites use verification codes to prevent hackers from performing brute-forced login passwords.However,the re-adoption of technology to develop verification codes increases the complexity and cost of recognition.The traditional OCR (Optical Character Recognition) technology recognition has been unable to meet efficiency needs.The Vcode Identify recognition platform uses TensorFlow to build a deep learning model.The verification code recognition software was developed in conjunction with a web application.Using this platform,users not only can identify verification codes by calling interfaces or uploading files but also can build and train new models to identify the new type of verification code.This system is simple to use and highly scalable.

Keywords:deep learning;python web;captcha breaking;Vcode Identify platform

1? ?引言(Introduction)

在如今互聯網高速發展的時代,驗證碼識別作為一項基礎驗證手段,被廣泛應用于網絡環境中以辨別用戶是真人或機器人,防止用戶利用網絡機器人自動注冊、登錄、注水,以及防止自動化腳本的等惡意行為,因此驗證碼識別技術的研究對研究互聯網應用的安全性有著重要意義。目前驗證碼識別已經有了一定的技術基礎,但是隨著技術的發展,驗證碼的種類也愈加繁多。最一開始的驗證碼圖片只有幾個數字進行組合,后來就加入了英文字母和混淆曲線將其復雜化,甚至有的網站選擇了中文字符的驗證碼,且對驗證碼進行顏色改變,位置旋轉等方式使得識別越發困難。傳統的OCR識別已不再能滿足需求。而卷積神經網絡在圖像識別相比于傳統驗證碼識別技術更具有獨特優勢[1,2],避免了煩瑣的預處理過程。本平臺為更好地提高驗證碼的識別效率,將算法優化,并將其與深度學習相結合,同時,為了更加方便于測試使用,將其與Web服務結合,便于在生產環境中人員調用接口直接使用獲取驗證碼結果,使用簡單。

2? Vcode Identify平臺設計(Platform design of Vcode Identify)

2.1? ?CNN簡介

卷積神經網絡(Convolutional Neural Network,CNN),是目前深度學習中最常使用的神經網絡模型之一,特別是在圖像識別應用中已取得驚人表現。CNN在圖像識別上的優勢主要體現在:可減少計算中的權重(Weights)數量,在物體識別過程中能抵輕微扭曲和形變等干擾,可以自動學習和特征歸納,對物體的識別結果不受物體在圖片中位置變動的影響。在圖像處理過程,往往會將一張圖像表示為一個或多個二維向量,若為RGB表示的彩色圖片,三個顏色通道可看作為三張二維向量。以前的神經網絡都是使用全連接方式,即輸入層到隱藏層,以及隱藏層到輸出層之間的神經元都是全連接的,使得參數量巨大,神經網絡訓練耗時過長,很難進行訓練,而CNN則通過局部連接和權值共享等方式解決了這個難點[3]。

CNN的神經層主要有三種:卷積層(Convolutional Layer)、池化層(Pooling Layer)、全連接層(Fully-Connected Layer),識別過程由三種神經層協調發展。本平臺的識別功能,在創建識別模型的時候,使用卷積神經網絡構建。傳統的Lenet的模型結構是:輸入層—卷積層—池化層—卷積層—池化層—全連接層—全連接層—輸出層。而本平臺識別模型如圖1所示,采用輸入層—卷積層—池化層—卷積層—池化層—卷積層—池化層—局部連接層—全連接層—全連接層—輸出層的結構。相比較傳統模型進行了改進,多添加了一次卷積層—池化層的過程,并對每層dropout防止過擬合的問題,這主要是針對驗證碼類型進行的修改,提高了模型識別率[4]。

2.2? ?TensorFlow

TensorFlow是基于谷歌的神經網絡算法庫DistBelief研發的人工智能學習系統,2017年2月,正式發布了TensorFlow 1.0版。作為最受歡迎的深度學習框架之一,擁有豐富的算法庫,高度的靈活性,真正的可移植性,多語言支持,完善的文檔等特點。TensorFlow使用數據流圖來表示計算任務,使用張量的形式表示數據,對圖的節點可以進行數學運算,通過讀寫變量維護狀態。本平臺驗證碼識別功能使用Tensorflow框架來構建卷積神經網絡模型。

2.3? ?Redis

Redis(Remote Dictionary Server)是一個開源的,且具有高性能的key-value存儲系統。Redis具有輕量級,低延遲,高并發的優點。本平臺使用Redis充當消息隊列,通過Redis服務器使得web平臺和驗證碼識別應用進行交互,具有較高性能,滿足使用需求。

3? Vcode Identify平臺實現(Build the platform of Vcode Identify)

本平臺使用python語言編寫,用CNN實現模型的建立、訓練、識別,搭建web平臺服務,使用Redis作消息隊列,連接web服務和驗證碼識別應用,即可以分成三個層次架構:應用層、傳輸層和平臺層。平臺軟件主要功能模塊如圖2所示,分為用戶注冊、用戶登錄、模型選擇、識別檢測還有生產接口。

3.1? ?驗證碼識別應用層

該層主要負責將驗證碼圖片識別成對應驗證碼結果。傳統的驗證碼識別通常需要將圖片切割成幾部分,使得每一張圖片中只包含一個字符,然后訓練單個字符模型,識別每個字符,再將每個識別出來的結果按原先順序拼接成完整字符串,作為識別結果。而現在的字符型驗證碼很多字符都粘在一起,字符分布不均勻,很難做到將各個字符進行切割。操作流程如下:首先對彩色的驗證碼圖片進行灰度化處理,接著將灰度化后的圖像進行二值化,去除背景圖的干擾,保留其中的字符。如果二值化后的圖像還存在噪聲,則需要再對二值化圖像進行去噪處理。然后將單個字符切割完成分類保存建立訓練集和測試集。使用訓練集中的字符進行字符識別訓練,當訓練的準確率達到指定值,再用測試集進行測試。最后,使用此測試集進行驗證碼圖片的字符識別,輸出識別結果[5],如圖3所示。

相比較傳統驗證碼煩瑣的識別流程,本軟件采用的是基于卷積神經網絡的驗證碼識別。簡化了原先對圖片進行預處理的人工干預過程,且能有效解決字符粘連,位置不定,噪聲干擾的問題。特征提取和分類器訓練可以通過卷積神經網絡端到端的學習得到,算法結構簡單、訓練耗時大大減少,并且效果更快速準確。這種過程其實可以看作一個多標簽分類過程,可以把每個字符當作一枚標簽,并且順序固定,只需要修改CNN最后一層的softmax,就可以實現多標簽分類。使得可以直接輸入圖片進行多標簽訓練和識別,提高訓練效率,降低訓練成本[6,7]。

CNN訓練模型在大量的人工標注的圖片訓練后,每個字符可以在輸出層轉換為對應字符集神經元。如該驗證碼類型為五個字符(數字+大小寫字符),每個字符則可表現為62個神經元。對應變量:,,對應映射函數:

則每個字符對應62個神經元,5個字符,,建立神經元索引,,當得到預測字符串索引為c(0-61的常數)時,則對應字符對應關系為。

具體模型設計:首先根據字符集、是否存在干擾線以及字符個數確定該模型基礎,獲取大量該類型驗證碼圖片進行標簽標出驗證碼后作為神經網絡訓練數據,分為訓練集、驗證集和測試集三部分。然后通過修改CNN模型,根據上述多標簽分類思想,設計多任務訓練神經網絡,直接將縮放后的彩色驗證碼圖片標簽化后放入輸入層,將其作為樣本訓練,當訓練準確率達到指定值(根據驗證碼的復雜度進行變通,簡單的可到99%,復雜的95%就可以,過高的準確率耗費成本過高而且難以達到),再用測試集進行測試。最后,使用該測試集進行驗證碼圖片識別并輸出識別結果[8],如圖4所示。

3.2? ?驗證碼識別傳輸層

該層主要負責用戶與驗證碼識別應用進行交互,使用Redis充當消息隊列,如圖5所示啟動Redis服務器后,通過web平臺提供的接口,將用戶請求的需要識別的驗證碼圖片轉換為base64文本傳輸給驗證碼識別接口,通過平臺的識別接口,以json傳參的方式上傳,然后應用層接受并識別驗證碼圖片,識別成功后返回結果json字符串,并將結果返回至平臺。

3.3? ?驗證碼識別平臺層

該層主要負責用戶交互,選擇了基于python平臺的web應用開發框架Django,具有強大的數據庫功能,具有較強的安全性,兼容性和可拓展性能,使用開源框架AdminLTE作為前端框架開發,界面友好,兼容性強。如圖6所示,用戶可以通過登錄平臺后可以看到目前該支持的驗證碼識別模型,以及該模型對應的模型編號和模型特點[9]。

如圖7所示,在模型檢測模塊用戶可以自己選擇對應的模型,通過拖拽或者點擊上傳圖片驗證碼的方式進行模型檢測,如果符合該驗證碼識別模型則會識別出其驗證碼結果并將結果回顯在頁面中,否則會顯示識別錯誤。識別的成功率與應用層的驗證碼的識別誤差大小有關。

提供web接口作生成環境測試使用,可直接通過接口獲取驗證碼圖片對應驗證碼結果。用戶可以登錄平臺后,獲得對應的驗證碼識別接口。腳本如下所示,將需要識別的驗證碼圖片進行base64加密成文本后,通過接口傳輸文本,平臺即會返回此驗證碼結果,如圖8所示。該功能適合生產環境,普通用戶可以用來提高日常登錄注冊的友好性,安全從業人員可以將其添加為插件,便于進行安全測試,提高測試效率。

4? ?結論(Conclusion)

基于卷積神經網絡的驗證碼識別,只需要構建一個合適的網絡模型,再直接將彩色驗證碼圖片轉換為多標簽分類樣本進行訓練。相比較原先的方法,節省了預處理的步驟,解決了目前預處理中很難對黏合字符進行分離、干擾因素影響過大的難點,從而大大降低了訓練成本,節省了訓練資源,且提高了識別準確率。因此將CNN技術應用于驗證碼識別中,具有較高的實用價值。再通過將其與web應用相結合,開發出了Vcode Identify平臺軟件,只需要導入對應模型的訓練集,用戶即可通過平臺上傳方式或者調用測試接口進行驗證碼識別,界面友好,使用簡單,并具有較好的擴展性和實用性,具有良好前景。

參考文獻(References)

[1] Jinlong Wu,Xiaolong Yin,Heng Xiao.Seeing permeability from images:fast prediction with convolutional neural networks[J].Science Bulletin,2018,63(18):1215-1222.

[2] Yuan-Chao Wang,Ming-Tao Li,Zhi-Chen Pan,et al.Pulsar candidate classification with deep convolutional neural networks[J].Research in Astronomy and Astrophysics,2019,19(09):119-128.

[3] Zhai Qi,Jiang Mingyan.Supervised learning of enhancing convolutional Hash for image retrieval[J].The Journal of China Universities of Posts and Telecommunications,2019,26(04):51-61.

[4] 徐星,宋小鵬,杜春暉.基于深度學習的驗證碼圖像識別[J].測試技術學報,2019,33(02):138-142.

[5] 連曉巖.基于圖像識別和神經網絡的驗證碼識別[C].2011年中國智能自動化學術會議論文集(第一分冊),2011:55-59.

[6] 毛燕.基于卷積神經網絡的網上銀行驗證碼識別[D].哈爾濱理工大學,2019.

[7] 王璐,張榮,尹東,等.粘連字符的圖片驗證碼識別[J].計算機工程與應用,2011,47(28):150-153.

[8] 徐胤,袁浩巍,李智.基于卷積神經網絡和TensorFlow的手寫數字識別研究[J].上海電氣技術,2018,11(01):31-34;61.

[9] 姜鵬.驗證碼識別及其Web Service的實現研究[D].南京理工大學,2007.

作者簡介:

王? ?昊(1998-),男,本科生.研究領域:信息安全.

康曉鳳(1978-),女,碩士,副教授.研究領域:信息安全.

盧志科(1998-),男,本科生.研究領域:信息安全.

施潤杰(2000-),男,本科生.研究領域:信息安全.

黃成鑫(2001-),男,本科生.研究領域:信息安全.

猜你喜歡
深度學習
有體驗的學習才是有意義的學習
電子商務中基于深度學習的虛假交易識別研究
現代情報(2016年10期)2016-12-15 11:50:53
MOOC與翻轉課堂融合的深度學習場域建構
大數據技術在反恐怖主義中的應用展望
深度學習算法應用于巖石圖像處理的可行性研究
軟件導刊(2016年9期)2016-11-07 22:20:49
基于深度卷積網絡的人臉年齡分析算法與實現
軟件工程(2016年8期)2016-10-25 15:47:34
主站蜘蛛池模板: 热re99久久精品国99热| 欧美福利在线观看| 久久这里只有精品免费| 99视频国产精品| 国产高清在线观看| 欧美h在线观看| 国产成人做受免费视频| 欧美一区二区三区国产精品| 亚洲永久精品ww47国产| 日韩国产亚洲一区二区在线观看| 免费99精品国产自在现线| 亚洲人成网站观看在线观看| 国产精品成人不卡在线观看 | 夜夜操国产| 91麻豆国产视频| 中文字幕在线日韩91| 国产一区二区人大臿蕉香蕉| 国产精品欧美亚洲韩国日本不卡| 热re99久久精品国99热| 五月婷婷中文字幕| www.youjizz.com久久| 91久久夜色精品国产网站| 成人综合久久综合| 久精品色妇丰满人妻| 久久人人爽人人爽人人片aV东京热| 亚洲αv毛片| 五月天福利视频| 国产精品久久久久鬼色| 久久中文电影| 久久精品66| 久久久久久午夜精品| 国产欧美日韩18| 真实国产乱子伦视频| 91在线精品免费免费播放| 国产精品xxx| 国产午夜精品一区二区三| 青青草国产在线视频| 国产丝袜一区二区三区视频免下载| 国产成人久久综合777777麻豆| 亚洲视频免| 中文字幕在线一区二区在线| 欧美不卡视频一区发布| 欧美日韩国产成人在线观看| 麻豆精品在线视频| 视频一区亚洲| 亚洲色欲色欲www在线观看| 这里只有精品免费视频| 亚洲最新在线| 亚洲伊人久久精品影院| 成人午夜网址| 免费毛片网站在线观看| 超碰91免费人妻| 亚洲高清在线天堂精品| 凹凸精品免费精品视频| 免费在线观看av| 国产男女XX00免费观看| 伊人久久大香线蕉综合影视| 91口爆吞精国产对白第三集 | 亚洲午夜福利精品无码| 亚洲成aⅴ人在线观看| 先锋资源久久| 91亚洲影院| 国产成年女人特黄特色毛片免| 免费国产小视频在线观看| 国产精品漂亮美女在线观看| 国产在线91在线电影| 自慰网址在线观看| 亚洲性色永久网址| 国产一区二区精品高清在线观看| 久久夜色精品国产嚕嚕亚洲av| 成人夜夜嗨| 日本不卡在线视频| 亚洲天堂区| 国产亚洲一区二区三区在线| 中文字幕在线视频免费| 中文字幕精品一区二区三区视频| 亚洲天堂高清| 亚洲综合久久成人AV| 99热线精品大全在线观看| 四虎国产成人免费观看| 四虎国产在线观看| 91精品人妻一区二区|