西西軟件園多重安全檢測(cè)下載網(wǎng)站、值得信賴(lài)的軟件下載站!
軟件
軟件
文章
搜索

首頁(yè)編程開(kāi)發(fā)Delphi → Discuz 驗(yàn)證碼圖片識(shí)別

Discuz 驗(yàn)證碼圖片識(shí)別

相關(guān)軟件相關(guān)文章發(fā)表評(píng)論 來(lái)源:西西整理時(shí)間:2012/9/5 11:26:24字體大。A-A+

作者:佚名點(diǎn)擊:514次評(píng)論:0次標(biāo)簽: Discuz

  • 類(lèi)型:源碼相關(guān)大。1.9M語(yǔ)言:中文 評(píng)分:8.0
  • 標(biāo)簽:
立即下載

Crossday Discuz! Board(簡(jiǎn)稱(chēng) Discuz!)是北京康盛新創(chuàng)科技有限責(zé)任公司推出的一套通用的社區(qū)論壇軟件系統(tǒng)

官方網(wǎng)站:

http://www.discuz.net/

中國(guó)內(nèi)有相當(dāng)數(shù)量的論壇是采用的 Discuz 的程序,一般在注冊(cè),發(fā)帖的時(shí)候都會(huì)有圖片的驗(yàn)證碼,如果我們要通過(guò)編寫(xiě)程序來(lái)批量注冊(cè)論壇賬號(hào)、批量發(fā)帖那就必須得用到這個(gè)驗(yàn)證碼的識(shí)別功能。

這編文章只是告訴大家一個(gè)原理,至于如何用代碼去實(shí)現(xiàn)就需要大家自已去動(dòng)手了。

Gif動(dòng)畫(huà)驗(yàn)證碼破解



1、分析Gif動(dòng)畫(huà),得到總幀數(shù),和每幀的相關(guān)信息

2、取出延遲時(shí)間最長(zhǎng)的那一幀

test_pro0" alt="" src="/up/2012-9/2012090511294879164.png" width="160" height="60"/>

3、用第一行的每個(gè)像素顏色來(lái)去除背景(要限制去除范圍,不然可能去掉文字)

4、使用Closing降噪、閥值處理得到比較整潔的黑白驗(yàn)證碼


5、利用字符間空白分割字符

          

6、提取樣例特征進(jìn)行機(jī)器學(xué)習(xí)

7、樣例200個(gè)的情況下,識(shí)別率可以達(dá)到>80%,如果繼續(xù)學(xué)習(xí),識(shí)別率可以更高。


 

 

 

復(fù)雜背景的驗(yàn)證碼破解

首先我們要去除它的背景,對(duì)于這樣稍微復(fù)雜的背景,用過(guò)去的方法很難做到,上圖的例子還不是很明顯,我發(fā)現(xiàn)很多圖片背景色和字母色近似,而且字母顏色是不斷變化的,背景也是不斷變化的

那我初始的想法是找到圖片中使用顏色最多的方法,于是我們用HSL表示各點(diǎn)顏色,接著進(jìn)行統(tǒng)計(jì),得到最大的幾個(gè)峰值,這里便是圖片中幾個(gè)最豐富的顏色的L值得累加值

其余的都可以認(rèn)為是噪音,我們對(duì)每個(gè)峰值進(jìn)行分割,得到如下圖片

你看這樣就把單個(gè)顏色圖片分割出來(lái)了,接下來(lái)就是找到圖片中除去黑色和白色后的圖片

然后進(jìn)行灰化處理,閥值處理,降噪,得到

接著根據(jù)邊界檢測(cè)出來(lái)的最左側(cè)x位置,來(lái)排序字母順序

接下來(lái)的事情就輕車(chē)熟路了,把圖片轉(zhuǎn)成標(biāo)準(zhǔn)模板,通過(guò)少量學(xué)習(xí)就達(dá)到了95%以上的識(shí)別率

c:15 j:8 8:7 t:9 9:4 x:7 4:6 2:4 h:7 f:8 e:18 b:5 y:3 k:4 w:3 g:5 3:5 7:6 r:2 m:3 q:4 v:2 p:3 6:2
以上數(shù)據(jù)表示 c學(xué)習(xí)15次 j學(xué)習(xí)8次…

只要字符不粘連,大部分驗(yàn)證碼干擾技術(shù)都是可以有辦法,所以為什么google驗(yàn)證碼看起來(lái)很簡(jiǎn)單,但是沒(méi)有人能夠很好的破解它得原因。

補(bǔ)充,
rise在留言中發(fā)現(xiàn)有一些字符加入雜點(diǎn)的問(wèn)題,由于這種驗(yàn)證碼不是很普遍,稍微做了研究

CY3E 這個(gè)圖片3字中有雜點(diǎn),其他沒(méi)有,按照文章中介紹的辦法,怎么知道這個(gè)3不是像其他顏色雜點(diǎn)一樣的圖片呢?

我覺(jué)得需要加入一個(gè)步驟,就是對(duì)每次過(guò)濾顏色生成出來(lái)的圖片,進(jìn)行填充
找到3的雜點(diǎn)原圖:

然后我們進(jìn)行算法填充

這個(gè)圖片與其他全部是雜點(diǎn)的圖片之間的差別進(jìn)行過(guò)濾,我考慮可以通過(guò)以下方法:
1、連貫點(diǎn)的寬度
2、連貫點(diǎn)的個(gè)數(shù)
這樣剩下的就只剩下CY3E的過(guò)濾后的圖片

至于字符傾斜的問(wèn)題,我覺(jué)得完全可以在機(jī)器學(xué)習(xí)過(guò)程中,我們自己旋轉(zhuǎn)正在學(xué)習(xí)的圖片一定角度,例如從-10到+10度,只不過(guò)這樣的學(xué)習(xí)庫(kù)會(huì)大一些,但是就10個(gè)數(shù)字的驗(yàn)證碼來(lái)說(shuō),這點(diǎn)性能損失應(yīng)該可以忽略不計(jì)。




 

 

    相關(guān)評(píng)論

    閱讀本文后您有什么感想? 已有人給出評(píng)價(jià)!

    • 8 喜歡喜歡
    • 3 頂
    • 1 難過(guò)難過(guò)
    • 5 囧
    • 3 圍觀圍觀
    • 2 無(wú)聊無(wú)聊

    熱門(mén)評(píng)論

    最新評(píng)論

    發(fā)表評(píng)論 查看所有評(píng)論(0)

    昵稱(chēng):
    表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
    字?jǐn)?shù): 0/500 (您的評(píng)論需要經(jīng)過(guò)審核才能顯示)