• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

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

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

      王松 趙寧社 武鵬博

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

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

      0 引言

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

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

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

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

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

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

      2 基于神經(jīng)網(wǎng)絡(luò)的驗(yàn)證碼技術(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é)點(diǎn)或神經(jīng)元組成的操作模型[5],每個節(jié)點(diǎn)代表一個特定的輸出函數(shù),稱為激活函數(shù)[6]。網(wǎng)絡(luò)的輸出根據(jù)網(wǎng)絡(luò)的連接、權(quán)值和激勵功能的不同而不同。網(wǎng)絡(luò)本身通常是某種算法或函數(shù)的近似或者是邏輯策略的表達(dá)式。神經(jīng)網(wǎng)絡(luò)是一種機(jī)器學(xué)習(xí)算法,它可以通過結(jié)構(gòu)網(wǎng)絡(luò)實(shí)現(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ù),其特點(diǎn)是可以把圖片數(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ù)共享這樣的卷積運(yùn)算提高效率。其次,有池化層對卷積層獲得的特征進(jìn)行二次提取,主要是通過池化函數(shù)對指定位置的相鄰輸出總體統(tǒng)計(jì)特征代替網(wǎng)絡(luò)的輸出。最后,池化層之后的全連接層的每個神經(jīng)元均與相鄰上層的神經(jīng)元相連,最終傳遞給輸出層。

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

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

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

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

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

      3.1 樣本的生成

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

      3.2 樣本的降噪處理

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

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

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

      對圖像進(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)注的實(shí)際值進(jìn)行對比,計(jì)算loss值,這里的計(jì)算采用交叉熵,使用的是Tensorflow中的softmax_cross_entropy_with_logits函數(shù),本文采用的優(yōu)化器是AdamOptimizer,當(dāng)然也可以用其他優(yōu)化器。

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

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

      5 結(jié)語

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

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

      參 考 文 獻(xiàn)

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

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

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

      [4]司徒毅.基于LDA變換的驗(yàn)證碼識別技術(shù)初探[J].廣東廣播電視大學(xué)學(xué)報(bào),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ò)的驗(yàn)證碼識別方法[J].山東科技大學(xué)學(xué)報(bào)(自然科學(xué)版),2020,39(2):111-117.

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

      [10]王海艷,董茂偉.基于動態(tài)卷積概率矩陣分解的潛在群組推薦[J].計(jì)算機(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ò)的拉矯機(jī)控制模型建立
      復(fù)數(shù)神經(jīng)網(wǎng)絡(luò)在基于WiFi的室內(nèi)LBS應(yīng)用
      可拓模式識別算法中經(jīng)典域的確定方法
      基于支持向量機(jī)回歸和RBF神經(jīng)網(wǎng)絡(luò)的PID整定
      第3屆亞洲模式識別會議
      基于神經(jīng)網(wǎng)絡(luò)分?jǐn)?shù)階控制的逆變電源
      永登县| 佛坪县| 萨迦县| 北川| 宿松县| 佛冈县| 获嘉县| 麦盖提县| 昌邑市| 龙海市| 郓城县| 松潘县| 郁南县| 海口市| 和林格尔县| 淮安市| 吴桥县| 浠水县| 罗田县| 曲松县| 额敏县| 县级市| 定远县| 泾川县| 梧州市| 巴塘县| 曲松县| 山东| 铜鼓县| 淮安市| 新泰市| 青冈县| 改则县| 昆明市| 大足县| 宜宾县| 南宫市| 马鞍山市| 黑龙江省| 南木林县| 崇左市|