国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

404 Not Found


nginx
404 Not Found

404 Not Found


nginx
404 Not Found

404 Not Found


nginx
404 Not Found

404 Not Found


nginx
404 Not Found

404 Not Found


nginx
404 Not Found

404 Not Found


nginx

Web自動化測試的驗證碼生成與應(yīng)用

2021-11-21 20:41:54王松趙寧社武鵬博
企業(yè)科技與發(fā)展 2021年11期
關(guān)鍵詞:模式識別神經(jīng)網(wǎng)絡(luò)

王松 趙寧社 武鵬博

【關(guān)鍵詞】神經(jīng)網(wǎng)絡(luò);驗證碼生成;模式識別

【中圖分類號】TP311.5 【文獻(xiàn)標(biāo)識碼】A 【文章編號】1674-0688(2021)10-0043-03

0 引言

互聯(lián)網(wǎng)為人類的異地交流提供了通信的可能性和實現(xiàn)手段,在線交流、電子支付這些方法走入人們工作和生活的日常,成為我們生活的一部分。在大多數(shù)人享受便利的同時,也有少數(shù)不法分子利用這些手段進(jìn)行非正當(dāng)?shù)幕ヂ?lián)網(wǎng)使用,比如充當(dāng)水軍對目標(biāo)網(wǎng)站輸入大量惡意評論、惡意注冊和占用網(wǎng)絡(luò)資源等。為了維持網(wǎng)站的正常運營、保障其正常服務(wù),設(shè)計人員可以在用戶的網(wǎng)站資源使用環(huán)節(jié)中加入驗證碼識別,比如進(jìn)行用戶注冊、修改用戶資料、發(fā)表留言等操作時,需要用戶手動輸入,這樣就能避免受到相當(dāng)一部分自動化軟件的攻擊。

驗證碼技術(shù)實際上是為了在不知情的情況下鑒別人與機器的技術(shù),英文簡稱是CAPTCHA,即Completely Automated Public Turing test to tell Computers and Humans Apart,就是全自動區(qū)分計算機和人類的圖靈測試[1-2]。驗證碼的實現(xiàn)方式一般分為兩種,即“讀取式”和“生成式”[3-4]。由于簡單的驗證碼已經(jīng)不能滿足需求,為了增加驗證碼被識別的難度,人們開始加入扭曲字符,或者加入線段和各種“斑點”用于增加機器識別的難度,同時出現(xiàn)了運算公式之類的驗證碼,使得機器“看懂”驗證碼的難度增大了很多。

與此同時,驗證碼的使用也給Web自動化測試帶來了相當(dāng)大的挑戰(zhàn)——在區(qū)別遠(yuǎn)程用戶是人類還是計算機的同時,也切斷了計算機的進(jìn)入,而在現(xiàn)代化軟件工程的實施過程中,常常會用到自動化的手段進(jìn)行測試。以目前的技術(shù)還不能區(qū)分自動化測試與自動化攻擊的訪問手段,或者說從現(xiàn)象上看,從服務(wù)器角度來看這兩者是一樣的。那么,為了正常進(jìn)行自動化測試,只能依靠在軟件中加入驗證碼識別的環(huán)節(jié),提高驗證碼識別準(zhǔn)確率就成為提高Web自動化測試效率的重要保障。

1 Web自動化測試技術(shù)

自動化軟件測試就是把以人力為主的軟件測試工作用計算機自動執(zhí)行的機器工作方式的過程。Web自動化測試就是對于基于Web頁面工作的軟件進(jìn)行自動化測試的技術(shù),它不僅能節(jié)約人力、財力和資源成本,而且能節(jié)約時間成本,從而大大提高軟件的測試效率。隨著軟件生產(chǎn)的工程化、規(guī)?;?,測試流程的不斷規(guī)范化,以及軟件測試技術(shù)逐步精細(xì)化,自動化軟件測試已經(jīng)成為軟件工程開發(fā)中的一種重要手段。自動化測試可以分為單元測試、集成測試及系統(tǒng)測試等層次,每個層次都有其實現(xiàn)的框架技術(shù)。

Web自動化測試依賴的方法通常包括Web頁面元素定位、獲取用戶操作行為及模擬用戶操作行為。其中,Web頁面元素定位常用的頁面元素屬性有id、name、classname、linktext、XPath和CSS Selector等,即依據(jù)元素屬性的唯一性或者局部唯一性通過某種方法查找Web頁面元素,比如標(biāo)簽、文本框、超鏈接等。獲取用戶操作是通過讀取頁面事件捕捉在頁面上發(fā)生的某種操作,比如按鍵上的鼠標(biāo)單擊、懸停、按鍵等;模擬用戶操作則是通過軟件手段模擬用戶頁面上的單擊、鍵盤按鍵、文本框輸入等操作。執(zhí)行Web自動化測試通常需要依賴一個運行Web頁面加載的軟件組件,如WebDriver。

2 基于神經(jīng)網(wǎng)絡(luò)的驗證碼技術(shù)

在神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)中,通常為了提高網(wǎng)絡(luò)的性能,常規(guī)做法就是增加網(wǎng)絡(luò)深度與寬度,但也會帶來一定的影響,比如巨大的參量增加了處理的復(fù)雜性,并且當(dāng)輸入的數(shù)據(jù)量不夠大時,目標(biāo)網(wǎng)絡(luò)容易出現(xiàn)過擬合;當(dāng)網(wǎng)絡(luò)深度增加到一定程度時,就會失去梯度遞變帶來的優(yōu)勢,即所謂的梯度消失現(xiàn)象,而inception網(wǎng)絡(luò)則能較好地解決上述問題。

2.1 inception結(jié)構(gòu)神經(jīng)網(wǎng)絡(luò)介紹

神經(jīng)網(wǎng)絡(luò)是由大量節(jié)點或神經(jīng)元組成的操作模型[5],每個節(jié)點代表一個特定的輸出函數(shù),稱為激活函數(shù)[6]。網(wǎng)絡(luò)的輸出根據(jù)網(wǎng)絡(luò)的連接、權(quán)值和激勵功能的不同而不同。網(wǎng)絡(luò)本身通常是某種算法或函數(shù)的近似或者是邏輯策略的表達(dá)式。神經(jīng)網(wǎng)絡(luò)是一種機器學(xué)習(xí)算法,它可以通過結(jié)構(gòu)網(wǎng)絡(luò)實現(xiàn)對非線性問題的無限逼近。近年來,基于卷積神經(jīng)網(wǎng)絡(luò)(CNN)的算法用于從視覺數(shù)據(jù)中確定物體的精確位置,具有更高的工作效率[7]。

卷積神經(jīng)網(wǎng)絡(luò)是一種多層結(jié)構(gòu)的前饋神經(jīng)網(wǎng)絡(luò),它的結(jié)構(gòu)包括卷積層、池化層與激活函數(shù),其特點是可以把圖片數(shù)據(jù)作為一個整體進(jìn)行特征識別[8-10]。卷積層由卷積核形成,通過各個卷積核提取圖像的特定特征。

2.2 應(yīng)用卷積神經(jīng)網(wǎng)絡(luò)的識別

卷積神經(jīng)網(wǎng)絡(luò)應(yīng)用在圖像識別的基本原理如下:首先,由卷積層提取圖片的特征,比如最初一層卷積用來提取線條、邊緣等特征,下一層卷積提取線條的組合特征,再往后每層都是提取前一層的融合特征,通過稀疏權(quán)重、等變表示及參數(shù)共享這樣的卷積運算提高效率。其次,有池化層對卷積層獲得的特征進(jìn)行二次提取,主要是通過池化函數(shù)對指定位置的相鄰輸出總體統(tǒng)計特征代替網(wǎng)絡(luò)的輸出。最后,池化層之后的全連接層的每個神經(jīng)元均與相鄰上層的神經(jīng)元相連,最終傳遞給輸出層。

3 基于inception的ASCII碼集識別方法

為了實現(xiàn)驗證碼識別,最開始要對驗證碼進(jìn)行分割,然后采取對單個字符進(jìn)行識別,從而達(dá)到識別整張驗證碼的目的,但是研究人員在生成驗證碼的過程中發(fā)現(xiàn)一個問題,就是有很多驗證碼的字符是連在一起的(如圖1所示)。

實際上很難進(jìn)行分割,因為每一個字符的邊界較難確定。因此,研究人員改變了思路,采用了多任務(wù)學(xué)習(xí)(Multitask Learning)的一種方式,這樣做就是可以把處理過的驗證碼照片放入網(wǎng)絡(luò)進(jìn)行訓(xùn)練,然后直接出來驗證碼中4個字符的預(yù)測結(jié)果,降低了整體的復(fù)雜度。圖片總的處理流程使用的是inception-v4模型網(wǎng)絡(luò)結(jié)構(gòu)(如圖2所示)。

最后將獲得4個結(jié)果,對每個結(jié)果計算損失,然后求其算數(shù)平均,再調(diào)整參數(shù)對算數(shù)平均進(jìn)行優(yōu)化,使其總體達(dá)到一個完美的結(jié)果。整個網(wǎng)絡(luò)邏輯結(jié)構(gòu)如下:我們訓(xùn)練4個分類器,對應(yīng)驗證碼中的4個字符,第一個輸出對應(yīng)的是第一個字符的預(yù)測,其他的輸出以此類推,這樣就可以在使用過程中獲得方便。

還有一個問題是數(shù)據(jù)標(biāo)注過程,在生成驗證碼的過程中,對圖片的命名就是圖片中字符,因此在寫標(biāo)注程序的時候,就是對命名字符串的切割,然后將字符轉(zhuǎn)化成對應(yīng)數(shù)字,本文在轉(zhuǎn)換成數(shù)字時用到的是ASCII碼,python中有計算出對應(yīng)字符ASCLL碼的函數(shù)ord()。

3.1 樣本的生成

作為一個神經(jīng)網(wǎng)絡(luò)的應(yīng)用,第一步是找到數(shù)據(jù)集,本實驗所需要的數(shù)據(jù)集就是各種各樣的驗證碼,因此使用ImageCaptcha庫進(jìn)行驗證碼的生成,研究人員生成了10 000張圖片的樣本,類似于圖3。

3.2 樣本的降噪處理

接下來是生成tf-record文件,在生成文件的過程中,研究人員進(jìn)行了灰度處理(如圖4所示),即黑白圖片,也可以進(jìn)行去噪處理,通過對圖片進(jìn)行腐蝕操作(如圖5示),首先去掉其中的噪點,然后進(jìn)行膨脹操作(如圖6所示)。

擴大變小的字母線條,從以上圖片中我們明顯看到驗證碼中的噪點消失,這為后續(xù)操作中對網(wǎng)絡(luò)準(zhǔn)確率的提升打下了基礎(chǔ)。

圖像處理的目的有兩點:一是在不損壞原有圖片含義的情況下,減小圖片的計算大小,因為彩色圖片有3個通道(channel),但是色彩與實驗無關(guān),所以研究人員進(jìn)行灰度處理后,圖片就有一個channel,這樣就減少了網(wǎng)絡(luò)的計算。二是去掉圖像中的噪點,突出研究人員需要的特征。

對圖像進(jìn)行標(biāo)記,不同的字符有不同的數(shù)字與之對應(yīng),字符的順序可以自行定義,一旦定義完成就不可在標(biāo)記的過程中改變,那么定義字符的數(shù)量就會作為網(wǎng)絡(luò)最后一層神經(jīng)元的數(shù)量,注意這里是說每一個輸出的神經(jīng)元的個數(shù)。同時,研究人員會在訓(xùn)練的過程中將標(biāo)記的數(shù)字轉(zhuǎn)化成tensorflow中one_hot的形式,便于用于網(wǎng)絡(luò)的訓(xùn)練,輸出4個預(yù)測值,與標(biāo)注的實際值進(jìn)行對比,計算loss值,這里的計算采用交叉熵,使用的是Tensorflow中的softmax_cross_entropy_with_logits函數(shù),本文采用的優(yōu)化器是AdamOptimizer,當(dāng)然也可以用其他優(yōu)化器。

4 Web自動化測試中的驗證碼識別應(yīng)用

對以上方法研究的基礎(chǔ)上,我們在Web自動化測試中可以應(yīng)用圖像識別方法(如圖7所示),在程序中把某科研管理系統(tǒng)的頁面載入Web引擎測試,用輸入識別后的驗證碼并嘗試登錄,圖8是登錄成功的頁面。

5 結(jié)語

本文針對Web自動化測試中的驗證碼的應(yīng)用實踐問題進(jìn)行了部分驗證碼生成與識別研究。在分析Web軟件的自動化測試基本需求的基礎(chǔ)上,通過ImageCaptcha庫生成樣本數(shù)據(jù)集,進(jìn)而搭建了一種基于inceptionv4的卷積神經(jīng)網(wǎng)絡(luò),對驗證碼進(jìn)行圖像處理、降噪及標(biāo)記,通過深度學(xué)習(xí)算法執(zhí)行網(wǎng)絡(luò)訓(xùn)練,得到識別結(jié)果,并通過具體實例給出了在Web自動化測試中對該方法的實際應(yīng)用和驗證。此外,這種識別方式也可以擴展用于其他應(yīng)用,比如車牌識別,可以取消傳統(tǒng)識別過程中一些步驟,例如字符切割,但是要注意車牌開頭的漢字需轉(zhuǎn)換成數(shù)字,而要轉(zhuǎn)成多少,取決于設(shè)計者定義。

本文的研究還存在不足之處,研究人員發(fā)現(xiàn)在訓(xùn)練過程中需要的時間太長,可以根據(jù)實際需求構(gòu)建簡單的網(wǎng)絡(luò)模型進(jìn)行訓(xùn)練。

參 考 文 獻(xiàn)

[1]田超雄.文本類驗證碼識別方法研究[D].西安:西北大學(xué),2019.

[2]程莉莉.基于ELM算法的驗證碼軟件可用性研究[D].湘潭:湘潭大學(xué),2016.

[3]楊彬.Web自動化測試中驗證碼的實現(xiàn)方法[J].信息技術(shù)與標(biāo)準(zhǔn)化,2010(11):39-41.

[4]司徒毅.基于LDA變換的驗證碼識別技術(shù)初探[J].廣東廣播電視大學(xué)學(xué)報,2009,18(1):102-108.

[5]邱意,陳勁杰.基于卷積神經(jīng)網(wǎng)絡(luò)的鋅渣識別方法研究[J].軟件工程,2021,24(1):2-5.

[6]孫誠,王志海.社會網(wǎng)絡(luò)中基于神經(jīng)網(wǎng)絡(luò)的鏈路預(yù)測方法[J].數(shù)學(xué)建模及其應(yīng)用,2017,6(4):10-17.

[7]S. rubin bose VSK.Efficient Inception V2 Based D-eep Convolutional Neural Network for Real-time Hand Action Recognition[J].Iet Image Processing,2020,14(4):688-696.

[8]崔新,白培瑞,張策,等.一種基于端對端深度卷積神經(jīng)網(wǎng)絡(luò)的驗證碼識別方法[J].山東科技大學(xué)學(xué)報(自然科學(xué)版),2020,39(2):111-117.

[9]王昊,康曉鳳,盧志科,等.基于深度學(xué)習(xí)的驗證碼識別Web應(yīng)用平臺[J].軟件工程,2020,23(4):41-43.

[10]王海艷,董茂偉.基于動態(tài)卷積概率矩陣分解的潛在群組推薦[J].計算機研究與發(fā)展,2017,54(8):1853-1863.

猜你喜歡
模式識別神經(jīng)網(wǎng)絡(luò)
神經(jīng)網(wǎng)絡(luò)抑制無線通信干擾探究
電子制作(2019年19期)2019-11-23 08:42:00
紫地榆HPLC指紋圖譜建立及模式識別
中成藥(2018年2期)2018-05-09 07:19:52
淺談模式識別在圖像識別中的應(yīng)用
電子測試(2017年23期)2017-04-04 05:06:50
第四屆亞洲模式識別會議
基于神經(jīng)網(wǎng)絡(luò)的拉矯機控制模型建立
重型機械(2016年1期)2016-03-01 03:42:04
復(fù)數(shù)神經(jīng)網(wǎng)絡(luò)在基于WiFi的室內(nèi)LBS應(yīng)用
可拓模式識別算法中經(jīng)典域的確定方法
基于支持向量機回歸和RBF神經(jīng)網(wǎng)絡(luò)的PID整定
第3屆亞洲模式識別會議
基于神經(jīng)網(wǎng)絡(luò)分?jǐn)?shù)階控制的逆變電源
404 Not Found

404 Not Found


nginx
404 Not Found

404 Not Found


nginx
404 Not Found

404 Not Found


nginx
404 Not Found

404 Not Found


nginx
404 Not Found

404 Not Found


nginx
陵川县| 淮北市| 威信县| 馆陶县| 达州市| 阜南县| 新源县| 连平县| 饶河县| 武宣县| 宿松县| 彭州市| 沾益县| 芷江| 嵊州市| 花垣县| 常宁市| 汕尾市| 遂溪县| 扶沟县| 平和县| 淮阳县| 盘锦市| 东乡族自治县| 双江| 邵阳市| 临汾市| 荔浦县| 鄂伦春自治旗| 苏尼特右旗| 鹿泉市| 桑植县| 宣武区| 巢湖市| 杂多县| 梅河口市| 维西| 乌海市| 潜山县| 吴江市| 保德县|