驗證碼識別基礎方法及源碼

驗證碼識別基礎方法及源碼

ID:18747270

大?。?98.00 KB

頁數(shù):10頁

時間:2018-09-22

驗證碼識別基礎方法及源碼_第1頁
驗證碼識別基礎方法及源碼_第2頁
驗證碼識別基礎方法及源碼_第3頁
驗證碼識別基礎方法及源碼_第4頁
驗證碼識別基礎方法及源碼_第5頁
資源描述:

《驗證碼識別基礎方法及源碼》由會員上傳分享,免費在線閱讀,更多相關內(nèi)容在行業(yè)資料-天天文庫。

1、先說說寫這個的背景?????最近有朋友在搞一個東西,已經(jīng)做的挺不錯了,最后想再完美一點,于是乎就提議把這種驗證碼給K.O.了,于是乎就K.O.了這個驗證碼。達到單個圖片識別時間小于200ms,500個樣本人工統(tǒng)計正確率為95%。由于本人沒有相關經(jīng)驗,是摸著石頭過河。本著經(jīng)驗分享的精神,分享一下整個分析的思路。在各位大神面前獻丑了。??????再看看部分識別結果?????是不是看著很眼熟???????處理第一步,去背景噪音和二值化?????對于這一塊,考慮了幾種方法。?????方法一,統(tǒng)計圖片顏色分布,顏色占有率低的判定為背景噪音。由于背景噪音和前景色區(qū)分并不明顯,嘗試了很多種取景方法都

2、不能很好去除背景噪音,最終放棄了這種方法。?????方法二,事后在網(wǎng)上稍微查了下,最近比較流行計算灰度后設定一個閾值進行二值化。其實所謂的灰度圖片原理是根據(jù)人眼對色彩敏感度取了權值,這個權值對計算機來說沒有什么意義。稍微想一下就可以發(fā)現(xiàn),這兩個過程完全可以合并。于是乎我一步完成了去背景噪音和二值化。閾值設置為RGB三分量之和到500。結果非常令人滿意。??????處理第二步,制作字符樣本?????樣本對于計算機來說是非常重要的,因為計算機很難有邏輯思維,就算有邏輯思維也要經(jīng)過長期訓練才能讓你滿意。所以要用事先制作好的樣本進行比較。如果你仔細觀察過這些驗證碼會發(fā)現(xiàn)一個bug,幾乎大部分的

3、驗證碼都是使用同樣的字體,于是乎就人工制作了一套字體的樣本。由于上一步已經(jīng)有去除背景噪音的結果,可以直接利用。制作樣本這一步有點簡單枯燥,還需要細心??赡芤驗槟愕囊粋€不細心會導致某個符號的識別率偏低。在這500個樣本中,只發(fā)現(xiàn)了31個字符。幸虧是某部門的某人員還考慮到了易錯的字符,例如,1和I,0和O等。要不然這個某部門要背負更多的罵名。??????處理第三步,匹配?????單個匹配用了最簡單最原始的二值比較,不過匹配的是匹配率而不是匹配數(shù)。我定義了相關的計分原則。大原則是“該有的有了加分,該有的沒了減分,不該有的有了適度減分,可達區(qū)域外的不算分”。?????由于一些符號的部分區(qū)域匹配

4、結果跟另一些符號的完整匹配結果相似,需要把單個匹配在一個擴大的區(qū)域內(nèi)擇優(yōu)。在一定的范圍內(nèi),找到一個最佳匹配,這個最佳匹配就是當前位置對應的符號。?????完成了一次最佳匹配,可以把匹配位置向右推進一大步,若找不到合適的最佳匹配就向右推進一小步。??????處理第四步,優(yōu)化和調整?????任何一個算法都是需要優(yōu)化和調整的?,F(xiàn)在要找到最佳參數(shù)配置和最佳代碼組織。這一步往往是需要花費最多時間和精力的。??????處理第五步,驗證結果?????這一步呢,純?nèi)肆︱炞C結果,統(tǒng)計出正確率。??????思考?????結果是出來了,代碼也不多,效果也很理想。搞這一行的,很多時候都想要通用的。能否通用,很

5、大程度上在于抽象層次。本方法只是單純的匹配,自然不能通用,但是方法和思想?yún)s是通用的。具體案例具體分析。至于扭曲文字、空心文字等,處理要復雜的多。網(wǎng)上也有一些使用第三方圖像庫的方法,也許那些方法會比較通用。等有空了有興趣了繼續(xù)搞一下這個主題。??????源碼?????至于這個源碼要不要發(fā)布,糾結了一段時間。網(wǎng)上已經(jīng)有類似的商業(yè)活動了,而且這個識別本身沒有太大難度,再加上某系統(tǒng)天生的bug,此驗證碼本身就相當于沒有設置,因此發(fā)布此代碼,僅作于學習交流。+ViewCode?12345678910111213141516171819usingSystem.Collections.Generic

6、;usingSystem.Drawing;usingSystem.IO;usingSystem.IO.Compression;??namespaceCrack12306Captcha{????publicclassCracker????{????????Listwords_=newList();??????????publicCracker()????????{????????????varbytes=newbyte[]{?????????????????0x1f,0x8b,0x08,0x00,0x00,0x00,0x00,0x00,0x04,0

7、x00,0xc5,0x58,0xd9,0x92,0x13,0x31,?????????????????0x0c,0x94,0x9e,0x93,0x0c,0x61,0x97,0x2f,0xe1,0x58,0xe0,0x91,0x9b,0x82,0x62,0x0b,?????????????????0x58,0xee,0xff,0xff,0x10,0xd8,2021222324252627282930313233343536373839404142

當前文檔最多預覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當前文檔最多預覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學公式或PPT動畫的文件,查看預覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權歸屬用戶,天天文庫負責整理代發(fā)布。如果您對本文檔版權有爭議請及時聯(lián)系客服。
3. 下載前請仔細閱讀文檔內(nèi)容,確認文檔內(nèi)容符合您的需求后進行下載,若出現(xiàn)內(nèi)容與標題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。