成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

實戰 Cnn 卷積神經網絡識別驗證碼,準確率99.5%

人工智能 算法
這是一個運行了2年的個人小項目,最近目標網站改為掃碼登錄,于是公布出來作為技術分享。

一、背景介紹

這是一個運行了2年的個人小項目,最近目標網站改為掃碼登錄,于是公布出來作為技術分享。項目緣起是女神參與的簽到活動,堅持了很久,后來嫌麻煩,中途放棄又覺得可惜,問我能不能實現程序自動登錄+簽到。我打開某網站看了下,python+selenium就可以實現,但人家要的是全自動,這就需要把驗證碼自動識別的難點攻克掉了。懶永遠是技術進步的源動力啊,不過我對機器視覺本身也比較感興趣,那些年小區和單位的門口都是車牌識別了,也想借此機會探究一下這門技術是怎么回事。

先上兩張鎮樓圖,一張是準確率統計,一張是實戰截圖。其中動圖只進行了驗證碼識別,沒有登錄操作,僅用于效果展示。本文不會對技術細節及理論原理做太多介紹,只是展示一下聽起來高大上的人工智能+機器學習+計算機視覺,個人也有很多場景可以把玩的。如果對這個效果感興趣,可以接著往下看看:

二、分析驗證碼:

某網站的驗證碼還是挺復雜的,有四套模版,有的加了干擾線,有的是用點陣構建字母,有的進行的各種扭曲,還渲染上了七彩色。

先去網上看看有沒有現成的輪子,方法很多,簡單的方法能實現,就不用麻煩的。

1、先試試谷歌的tesseract、pytesser3,都是一回事,代碼極其簡潔,兩三行就出結果,勉強可以接受吧,規規矩矩的字,識別率還挺高,但稍加變形,結果就驢唇不對馬嘴。

2、本著一切從簡的原則,還是打算依賴pytesser3,給它喂適合的數據,把驗證碼轉灰度圖、二值化、濾波降噪、模糊各種手段組合著用,還測試了4位驗證碼切割成4張小圖片,以單字符識別的形式提高它的準確率。不過不論你用什么手段往它身上招呼,識別效果都差得遠著呢。

3、只有祭出終極大招了,機器深度學習+卷積神經網絡,在入這個坑之前,做了好久好久的心理建設,cnn這么大的坑我爬得出來嘛?經過了一個多星期的學習,跑出了鎮樓圖的效果,也穩定運行2年時間,可以簡單分享一下大致調試過程了。

三、開發調試流程

cnn模型訓練需要有訓練集和測試集,這兩個數據集,計算機需要知道答案,那么知道答案的數據怎么來?

1、先寫個腳本,采集了200份目標網站的驗證碼,人工打上標簽,把答案作為驗證碼圖片的文件名前4個字符。

2、人肉打標效率太低。花錢打標?不至于吧,自己寫個小程序簽到玩,還要投資?那就自己生成一批吧。觀察目標網站的驗證碼,扭曲、模糊、加線的手法挺像谷歌開源驗證碼開發包的,下一個回來,模擬一下。包是java的,在eclipse里略做改動,一頓午飯的時間就生成了50萬張帶答案的驗證碼。類似這樣,文件名前4個字符就是答案。

3、訓練集有了,下面搭建訓練和部署環境,基于簡便和通用性考慮,這次驗證碼圖片不再切割,整體丟給機器去訓練。

四、驗證效果

到了收獲的時候。程序調好,臨近下班,把訓練集和測試集丟給程序,6W數據CPU要跑一晚上,GPU只用20分鐘。我這50W數據,GPU半個晚上也就訓練完了。下面是第二天早上,實驗環境下的數據,實驗環境是指:訓練集,測試集,考試集都是用同一套系統生成的。準確率達到97.3%。

那么在實際環境中,效果如何呢?實際環境是指訓練集,測試集是通過自己寫的代碼生成的。而考試集是從目標網站采集回來并人工標識的。

真實環境才85%,有點低了對不對?把錯誤的地方都找出來查找一下原因:

類似這樣的錯誤,是我識別錯了,機器給我指出了答案的不正確,讓我自愧不如啊。不過這感覺挺美妙的。

還有這種的,這么明顯,怎么可能人肉識別錯呢,后來一看鍵盤,7和U離得太近,一定手滑了。排除這些人工標識出錯,真實環境的準確率達到90%。基本能符合自動登錄的要求了。

五、如何提高準確率

后來我進一步思考,還有沒有什么辦法可以讓準確率更高一些呢?實驗環境和真實環境差在哪里,有7%的差距呢?目標網站一定是有哪些微調我沒有觀察到。比如這張:

左邊六張圖是模擬生成的驗證碼,右邊一張圖是人肉從目標網站上打來的碼。肉眼看上去很像,字體上似乎有微小的差別,導致了實驗環境與真實環境7%的準確率誤差,要解決這個問題,有兩個辦法:

1、人肉打出足夠多的碼,以此為測試集,重新訓練。效果應該不錯,可是缺點也顯而易見,哪有那么多功夫去人肉打碼。或者有時間,就是懶,你要用技術去解決啊。這么一說,好像也有辦法,Apple 的AI首秀就是治這種懶的,見辦法2。

2、關鍵字:simgan。認真研究了相關的2篇論文,覺得有搞頭啊,決定試一下。

六、提高準確率的進階實驗

又經過十幾天的實驗(訓練一次太久了),對simgan原理有了更深的了解,SimGAN-Captcha的實驗也完全復現,然后對其進行擴展,應用到自己的環境中進行樣本增強,實驗過程按這樣的思路:

首先復現SimGAN-Captcha過程。然后改灰度圖為RGB,通過無標識的真實數據和有標識的模擬數據,訓練SimGAN-Captcha,通過訓練好的模型,Refine上面提到的50萬+1萬模擬的訓練數據,通過Refined的數據,重新訓練驗證碼識別模型,統計準確率做對比。可是效果并不好,甚至肉眼放大也無法在像素層面上找到差異,可以說模擬的很逼真,也可以說Refine沒效果。甚至讓人懷疑,SimGAN-Captcha是否工作了。于是用另一套驗證碼生成器生成完全不相同的驗證碼,讓SimGAN-Captcha在像素層面對新驗證碼進行強化,用以證明Refine確實是干活了。

經過了50多小時的訓練,SimGAN-Captcha有了明顯的增強效果,舉個例子:

為了方便表述,從左到右我們依次叫它們1號、2號、3號、4號。1號是用完全不同的算法X生成的驗證碼,灰頭土臉的。3號、4號是上文提到的目標網站的真實的不同形式的驗證碼。以算法X生成的類1號驗證碼為Synthetic數據集,以類似3號、類似4號驗證碼為real數據集,refine出來的合成驗證碼為2號。仔細觀察2號,已經有了很多3、4號的特征,比如:1、不再灰頭土臉,變得鮮艷了,P,K,H色彩對比都比較明顯;2、干擾線有了彩色斷點,這個特征很好的模擬了類3號樣本;3、字母P與E有了類4號的點陣效果,模擬點陣應該是SimGAN的拿手好戲,如果讓它把干擾線變扭曲就難為它了。

看來SimGAN的確有效果,它能在像素層面上,把模擬樣本盡量向著真實樣本的方向改造,不過,即使改造的“像一些”了,好像對準確率的提高也沒多大幫助。用谷歌的captcha生成的驗證碼做Synthetic數據集,目標網站驗證碼做real數據集,進行訓練,然后用這樣的模型生成cnn的訓練集與測試集,再對目標網站的驗證碼進行測試,準確率提高不到0.5%。用上面提到的算法X生成的驗證碼做Synthetic數據集,目標網站驗證碼做real數據集進行訓練,然后用這樣的模型生成cnn的訓練集與測試集訓練cnn,與直接用X算法生成的訓練集與測試訓練出的cnn模型,在正確率的對比上,只提高0.1%。把上面的過程用語言描述出來,都已經很繞了,實際訓練時,盡量安排在晚上或周末,累計在訓練上花了4、5百小時,花了這么大的時間成本,取得這么小的進步,確有不值。而當我走了一大圈,回到起點,試著把cnn的訓練加強,對它提高要求,不以準確率達到99%為中止條件,要準確率達到200%才停止訓練(類似while 1 循環),只用了一頓午飯的時間,準確率就有了2.2%的提升。用同樣的600份實驗數據做對比,上篇文章中準確率是97.33%,這次提高到99.5%,如鎮樓圖。對于驗證碼識別來說,在正確的道路上努力訓練才是王道,SimGAN并沒有那么好的效果。

SimGAN應該是有自己擅長的領域的,驗證碼增強不行,圖像增強會不會效果不錯?前文提到的蘋果AI首秀的那篇論文,對眼球控制的圖像進行樣本增強,似乎效果顯著啊,我也完成了復現,效果非常好,有機會再分享吧。


責任編輯:武曉燕 來源: 今日頭條
相關推薦

2018-06-08 15:51:56

CNN皮膚癌人工智能

2024-09-29 16:00:26

2021-09-18 09:15:39

Python神經網絡Python基礎

2017-05-04 18:30:34

大數據卷積神經網絡

2017-04-26 09:30:53

卷積神經網絡實戰

2022-10-11 23:35:28

神經網絡VGGNetAlexNet

2021-06-22 09:46:52

神經網絡人工智能深度學習

2020-09-18 11:40:44

神經網絡人工智能PyTorch

2016-12-08 09:30:00

圖片數據庫網絡爬取數據清洗

2020-04-26 15:35:49

神經網絡決策樹ImageNet

2017-09-08 13:30:32

深度學習圖像識別卷積神經網絡

2013-06-19 10:19:59

2017-10-17 09:49:06

2016-12-20 09:55:52

卷積神經網絡無人駕駛

2022-04-07 09:01:52

神經網絡人工智能

2024-06-06 10:08:32

2020-10-18 12:27:35

人工智能人臉識別技術

2019-01-05 08:40:17

VGG神經網絡

2021-09-09 08:55:50

Python項目驗證碼

2020-12-29 05:33:03

Serverless驗證碼架構
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日本91av视频 | 久久久久国产一区二区三区 | 日韩av一区二区在线观看 | 亚洲精品在线视频 | www四虎com| 国产精品亚洲视频 | 毛片视频网站 | 伊人网在线看 | 久久久久久久一区 | www.99热这里只有精品 | 国产精品久久一区二区三区 | 99久久99 | 日日噜噜夜夜爽爽狠狠 | 欧美一区二 | 精品一区免费 | 成人精品视频99在线观看免费 | 亚洲精品在线视频 | 污书屋| 日韩成人av在线 | 国产精品成人品 | 天天澡天天狠天天天做 | 国产视频三级 | 在线成人免费观看 | 天天干.com | 翔田千里一区二区 | av手机在线 | 中文字幕在线看第二 | 免费福利视频一区二区三区 | 午夜影院网站 | 精品欧美一区二区三区久久久 | 五月婷婷在线视频 | 日韩av第一页 | jizz18国产 | 91av在线视频观看 | 久久51| 亚洲视频一区在线观看 | www国产亚洲精品久久网站 | 日本精品一区二区三区在线观看视频 | 日韩欧美在线不卡 | 一区二区三区高清 | 国产综合久久久久久鬼色 |