本發(fā)明涉及驗(yàn)證碼識(shí)別技術(shù)領(lǐng)域,具體地說是一種實(shí)用性強(qiáng)、空心驗(yàn)證碼的識(shí)別方法。
背景技術(shù):
驗(yàn)證碼作為一種區(qū)分用戶是計(jì)算機(jī)還是人類的安全技術(shù),已被大多數(shù)網(wǎng)站采用。驗(yàn)證碼的出現(xiàn)是為了防止某些惡意程序?qū)W(wǎng)站的破壞,如批量注冊(cè)、批量發(fā)帖、同時(shí)也防止爬蟲程序進(jìn)行資源抓取。目前主要采用基于圖像的字符驗(yàn)證碼。空心字符驗(yàn)證碼作為一種驗(yàn)證碼設(shè)計(jì)方式,設(shè)計(jì)為一條干擾線穿過空心字符,使用戶的視覺體驗(yàn)不像實(shí)心的粘連干擾造成的用戶體驗(yàn)下降??招淖址?yàn)證碼作為一種比較新穎的設(shè)計(jì)方式,已被各大公司網(wǎng)站應(yīng)用到其用戶登錄、郵箱驗(yàn)證、論壇評(píng)論等模塊中。
因此,驗(yàn)證碼給網(wǎng)站帶來安全的同時(shí),也給某些從事數(shù)據(jù)分析獲取工作的人們帶來了一定的不便,驗(yàn)證碼識(shí)別算法正是為解決此問題。目前,空心字符驗(yàn)證碼作為一種比較新穎的方式,目前還沒有一種有效的方法來識(shí)別它?;诖?,現(xiàn)提供一種空心驗(yàn)證碼的識(shí)別方法。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的技術(shù)任務(wù)是針對(duì)以上不足之處,提供一種實(shí)用性強(qiáng)、空心驗(yàn)證碼的識(shí)別方法。
一種空心驗(yàn)證碼的識(shí)別方法,該方法的實(shí)現(xiàn)過程為:
首先提取字符圖像,對(duì)提取的字符進(jìn)行預(yù)處理,提取出去除字符干擾的字符區(qū)域;
對(duì)字符區(qū)域進(jìn)行切割,分割出字符;
對(duì)字符進(jìn)行訓(xùn)練,得到相應(yīng)識(shí)別模型,進(jìn)行識(shí)別。
所述字符預(yù)處理過程通過圖像預(yù)處理模塊完成,該模塊的處理過程為:
步驟一、首先對(duì)提取字符進(jìn)行二值化處理,根據(jù)字符特征提取干擾線區(qū)域;
步驟二、然后對(duì)干擾線區(qū)域去除字符區(qū)域影響,得到干擾線所在位置;
步驟三、沿著干擾線方向,根據(jù)周圍字符的特征,去掉部分干擾線;
步驟四、對(duì)其進(jìn)行連通區(qū)域標(biāo)記,找出所有的字符斷裂部分及干擾線與字符形成的干擾區(qū)域,去除干擾區(qū)域。
所述步驟一的具體過程為:
對(duì)提取的字符圖像,首先使用包括高斯濾波的濾波算法,中值濾波濾除圖像中的噪聲點(diǎn);
然后依據(jù)圖像的像素特征,使用自適應(yīng)閾值或者固定閾值算法,對(duì)圖像進(jìn)行二值化處理;
依據(jù)空心驗(yàn)證碼的生成特征,對(duì)有字符有斷裂的情況,修復(fù)字符輪廓線,保證字符外邊緣的完整性,從而完成干擾線區(qū)域的提取。
步驟二中根據(jù)干擾線區(qū)域提取干擾線是指依據(jù)空心驗(yàn)證碼的像素特征,提取出干擾線,并記錄下它所在的位置。
步驟三中去掉部分干擾線是指斷開干擾線的過程,即依據(jù)空心驗(yàn)證碼的像素特征,對(duì)干擾線的領(lǐng)域像素進(jìn)行分析,斷開明顯干擾線位置。
步驟四中標(biāo)記的連通區(qū)域包括斷裂字符的連通區(qū)域、字符與字符形成的連通區(qū)域、字符與干擾線形成的連通區(qū)域以及字符本身內(nèi)部的連通區(qū)域;
去除干擾連通區(qū)域是指去除除斷裂字符外所有的連通區(qū)域,具體為:通過分析連通區(qū)域外在的分布特征,區(qū)別出斷裂字符連通區(qū)域和干擾連通區(qū)域,進(jìn)行分類,去除。
上述預(yù)處理步驟中還包括斷裂連接和旋轉(zhuǎn)矯正的步驟,具體為:
斷裂連接步驟是指斷裂字符連通區(qū)域部分連接,分析干擾線對(duì)字符的截?cái)嘤绊懱卣?,設(shè)計(jì)對(duì)應(yīng)的連接模板,連接斷裂部分;
旋轉(zhuǎn)矯正步驟是指找出每字符每部分的最小外接矩形,去除干擾矩形,統(tǒng)計(jì)計(jì)算得出旋轉(zhuǎn)角度,旋轉(zhuǎn)驗(yàn)證碼圖像。
對(duì)字符區(qū)域進(jìn)行切割通過空心字符分割模塊完成,該模塊通過對(duì)每個(gè)字符區(qū)域進(jìn)行合并分類,得到每個(gè)字符所在的區(qū)域,切割每個(gè)字符輸出,具體為:
對(duì)得到的字符連通區(qū)域,進(jìn)行合并分類,計(jì)算出每個(gè)字符所在的中心位置,在此位置附近設(shè)置閾值,計(jì)算得出與字符所在位置的距離,如果小于預(yù)設(shè)閾值,則歸入此字符,否則,屬于其他字符,從而得到了每個(gè)字符所在的具體位置;通過上述計(jì)算得到的每個(gè)字符的具體位置,對(duì)每個(gè)字符進(jìn)行切割輸出,用于下一步的字符識(shí)別。
字符識(shí)別通過字符識(shí)別模塊實(shí)現(xiàn),該模塊把字符用神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,訓(xùn)練出符合本類字符特征的模型,用該模型來進(jìn)行字符判斷識(shí)別。
本發(fā)明的一種空心驗(yàn)證碼的識(shí)別方法,具有以下優(yōu)點(diǎn):
該發(fā)明的一種空心驗(yàn)證碼的識(shí)別方法,在數(shù)據(jù)分析人員需要獲取大量網(wǎng)絡(luò)數(shù)據(jù)時(shí),針對(duì)空心驗(yàn)證碼,能夠自動(dòng)迅速的識(shí)別出驗(yàn)證碼中的字符,進(jìn)行準(zhǔn)確的獲取,不會(huì)因驗(yàn)證碼的阻礙及識(shí)別錯(cuò)誤,出現(xiàn)沒法獲取數(shù)據(jù),另外,由于本字符模型是針對(duì)于本類的字符訓(xùn)練得到,識(shí)別率大大提高,實(shí)用性強(qiáng),適用范圍廣泛,易于推廣。
附圖說明
附圖1為本發(fā)明的實(shí)現(xiàn)結(jié)構(gòu)示意圖。
附圖2為本發(fā)明的實(shí)現(xiàn)流程圖。
具體實(shí)施方式
下面結(jié)合附圖及具體實(shí)施例對(duì)本發(fā)明作進(jìn)一步說明。
如附圖1、圖2所示,本發(fā)明提供一種空心驗(yàn)證碼的識(shí)別方法,用來針對(duì)帶干擾線的空心字符的驗(yàn)證碼進(jìn)行識(shí)別。該方法利用二值化提取字符的邊緣,根據(jù)字符特征提取干擾線區(qū)域,去除字符區(qū)域影響,得到干擾線所在位置,沿著干擾線方向,根據(jù)周圍字符的特征,去掉部分干擾線,然后對(duì)其進(jìn)行連通區(qū)域標(biāo)記,找出所有的字符斷裂部分及干擾線與字符形成的干擾區(qū)域,采用本發(fā)明提出的一種算法,去除干擾區(qū)域。采用本發(fā)明提出的幾個(gè)鄰域模型連接斷裂部分,通過對(duì)每個(gè)連通區(qū)域的統(tǒng)計(jì)分析,計(jì)算旋轉(zhuǎn)角度,旋轉(zhuǎn)圖像,對(duì)每個(gè)字符區(qū)域進(jìn)行分類合并,得到每個(gè)字符所在的區(qū)域,最后切割每個(gè)字符輸出。然后把字符用神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,訓(xùn)練出符合本類字符特征的模型,用本模型來進(jìn)行字符判斷識(shí)別。
其實(shí)現(xiàn)過程為:
首先提取字符圖像,對(duì)提取的字符進(jìn)行預(yù)處理,提取出去除字符干擾的字符區(qū)域;
對(duì)字符區(qū)域進(jìn)行切割,分割出字符;
對(duì)字符進(jìn)行訓(xùn)練,得到相應(yīng)識(shí)別模型,進(jìn)行識(shí)別。
所述字符預(yù)處理過程通過圖像預(yù)處理模塊完成,該模塊的處理過程為:
使用濾波算法如高斯濾波,中值濾波濾除圖像中的噪聲點(diǎn)。
依據(jù)圖像的像素特征,使用自適應(yīng)閾值或者固定閾值算法,對(duì)圖像進(jìn)行二值化處理。
依據(jù)空心驗(yàn)證碼的生成特征,對(duì)有字符有斷裂的情況,需要修復(fù)字符輪廓線,保證字符外邊緣的完整性。
提取干擾線,依據(jù)空心驗(yàn)證碼的像素特征,提取出干擾線,并記錄下它所在的位置。
斷開干擾線,依據(jù)空心驗(yàn)證碼的像素特征,對(duì)干擾線的領(lǐng)域像素進(jìn)行分析,斷開明顯干擾線位置。
連通區(qū)域標(biāo)記,找出所有的連通區(qū)域,并標(biāo)記處位置,此時(shí)的連通區(qū)域,不僅包括斷裂字符的連通區(qū)域,還包括字符與字符形成的連通區(qū)域,字符與干擾線形成的連通區(qū)域以及字符本身內(nèi)部的連通區(qū)域,都需要標(biāo)記出來。
去干擾連通區(qū)域,主要包括上述除斷裂字符外所有的連通區(qū)域,主要通過分析連通區(qū)域外在的分布特征,根據(jù)某種策略,區(qū)別出斷裂字符連通區(qū)域和干擾連通區(qū)域,進(jìn)行分類,去除。
斷裂字符連通區(qū)域部分連接,分析干擾線對(duì)字符的截?cái)嘤绊懱卣?,設(shè)計(jì)對(duì)應(yīng)的連接模板,連接斷裂部分。(此步一般不能把所有的字符斷裂部分連接起來)
旋轉(zhuǎn)矯正,找出每字符每部分的最小外接矩形,去除干擾矩形,統(tǒng)計(jì)計(jì)算得出旋轉(zhuǎn)角度,旋轉(zhuǎn)驗(yàn)證碼圖像。
對(duì)字符區(qū)域進(jìn)行切割通過空心字符分割模塊完成,該模塊通過對(duì)每個(gè)字符區(qū)域進(jìn)行合并分類,得到每個(gè)字符所在的區(qū)域,切割每個(gè)字符輸出,具體為:
對(duì)上述得到的字符連通區(qū)域,進(jìn)行合并分類,一般是計(jì)算出每個(gè)字符所在的大體中心位置,在此位置附近,根據(jù)某種策略,設(shè)置閾值,計(jì)算得出與字符所在位置的距離,如果小于預(yù)設(shè)閾值,則歸入此字符,否則,屬于其他字符,從而得到了每個(gè)字符所在的具體位置。
通過上述計(jì)算得到的每個(gè)字符的具體位置,對(duì)每個(gè)字符進(jìn)行切割輸出,用于下一步的字符識(shí)別。
字符識(shí)別通過字符識(shí)別模塊實(shí)現(xiàn),該模塊把字符用神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,訓(xùn)練出符合本類字符特征的模型,用該模型來進(jìn)行字符判斷識(shí)別。本模塊主要負(fù)責(zé)對(duì)上述得到的每個(gè)字符,進(jìn)行識(shí)別,目前有許多已有的字符識(shí)別模塊,但是識(shí)別效果都是不太理想,為此,用本類空心字符通過訓(xùn)練機(jī)器學(xué)習(xí)的神經(jīng)網(wǎng)絡(luò),得到能夠反映本類空心字符固有特征的模型,用此模型來識(shí)別,輸識(shí)別字符,比用現(xiàn)有的識(shí)別模塊,字符識(shí)別率大有提高。
上述具體實(shí)施方式僅是本發(fā)明的具體個(gè)案,本發(fā)明的專利保護(hù)范圍包括但不限于上述具體實(shí)施方式,任何符合本發(fā)明的一種空心驗(yàn)證碼的識(shí)別方法的權(quán)利要求書的且任何所屬技術(shù)領(lǐng)域的普通技術(shù)人員對(duì)其所做的適當(dāng)變化或替換,皆應(yīng)落入本發(fā)明的專利保護(hù)范圍。