一種二維字符圖形驗(yàn)證碼復(fù)雜背景噪音干擾去除方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明方法屬于計(jì)算機(jī)視覺、模式識(shí)別等交叉領(lǐng)域,涉及一種基于顏色信息的二 維數(shù)字或漢字驗(yàn)證碼圖片背景噪音去除方法。
【背景技術(shù)】
[0002] 驗(yàn)證碼(CAPTCHAs〖CompletelyAutomatedPublicTuringTesttoTellCompu tersandHumansApart,用于區(qū)分人和機(jī)器的全自動(dòng)公共圖靈測試)是當(dāng)前被各網(wǎng)站廣泛 使用,來驗(yàn)證登錄人,防止黑客程序自動(dòng)登錄網(wǎng)站的一種安全防御方法。驗(yàn)證碼的種類多種 多樣,可以是基于視覺的圖片驗(yàn)證碼,也可以是聽覺驗(yàn)證碼等;常見的視覺驗(yàn)證碼有:基于 數(shù)字或字符的驗(yàn)證碼,基于自然場景圖的驗(yàn)證碼,如:12306網(wǎng)站新更新的圖片驗(yàn)證碼,基 于圖片的測試問答等。
[0003] 對(duì)于包含字符或數(shù)字的驗(yàn)證碼,如果背景干凈,字符大小均勻,則很容易被 OCR(光柵字符識(shí)別)軟件攻破。為了防止驗(yàn)證碼被程序攻破,對(duì)于較為常見的基于數(shù)字 或字符的驗(yàn)證碼,一般在設(shè)計(jì)的時(shí)候,常采用添加背景干擾、扭曲、變形、相鄰字符粘連等手 段,使得程序識(shí)別驗(yàn)證碼很困難,而人眼卻能很容易辨別,從而達(dá)到防止程序自動(dòng)登錄的目 的。破解一個(gè)驗(yàn)證碼的問題,可以歸結(jié)為一個(gè)AI(人工智能)問題,若某類驗(yàn)證碼被破解, 則標(biāo)志著在這個(gè)困難的問題上AI領(lǐng)域的一個(gè)新的進(jìn)展。
[0004] 研究CAPTCHAs的破解,對(duì)于找出當(dāng)前CAPTCHAs的漏洞,從而設(shè)計(jì)出更安全的驗(yàn)證 碼,確保網(wǎng)站的安全具有重要意義;同時(shí),相關(guān)技術(shù)可以用于其它應(yīng)用領(lǐng)域,如:自然場景 圖像中的文本檢測和識(shí)別。
[0005] 包含字符或數(shù)字的圖形驗(yàn)證碼的識(shí)別一般都遵循分割和識(shí)別兩個(gè)步驟,其中分割 是關(guān)鍵,正確的將字符分割出來,是后續(xù)進(jìn)行識(shí)別的基礎(chǔ)。然而,由于驗(yàn)證碼在設(shè)計(jì)時(shí)噪音、 粘連等干擾,使得正確的分割是一項(xiàng)極為困難的任務(wù)。由于驗(yàn)證碼的種類多種多樣,沒有一 個(gè)算法能對(duì)所有的圖形驗(yàn)證碼的分割都適用。因此,相關(guān)研究一般均基于一類或幾類驗(yàn)證 碼,研究破解方案。
[0006]微軟研究院的研究人員KumarChellapi11a等在ConferenceofAdvances inNeuralInformationProcessingSystems(NIPS2004)發(fā)表的文章"UsingMachine LearningtoBreakVisualHumanInteractionProofs(HIPS)"中提出利用機(jī)器學(xué)習(xí)的方 法來破解驗(yàn)證碼,并分別針對(duì):Mailblocks,MSN,Yahoo,TicketMaster,google等幾個(gè)網(wǎng)站 的驗(yàn)證碼的破解進(jìn)行了實(shí)驗(yàn),給出了解決思路。首先針對(duì)每一類型的驗(yàn)證碼,其字符的大小 尺寸的大致范圍一般可事先確定,以此作為一個(gè)先驗(yàn)的知識(shí)。對(duì)圖像預(yù)處理一般均為將彩 色圖像轉(zhuǎn)換為灰度,再進(jìn)行二值化處理。對(duì)于其中包含的背景不規(guī)則噪音線、傾斜網(wǎng)格線, 采用先膨脹、后腐蝕等形態(tài)學(xué)方法,將噪音線去除;對(duì)于規(guī)則的水平、豎直網(wǎng)格線,則檢測直 線并移除水平、豎直網(wǎng)格線。在此基礎(chǔ)上,利用字符大小這個(gè)先驗(yàn)知識(shí),提取符合先驗(yàn)尺寸 的連通體作為候選數(shù)字;同時(shí)將尺寸過寬的連通體進(jìn)行分割。對(duì)分割好的字符候選,訓(xùn)練一 個(gè)神經(jīng)網(wǎng)絡(luò)進(jìn)行識(shí)別。
[0007] 卡內(nèi)基梅隆大學(xué)的研究人員GregMori等在IEEEConferenceonComputer Vision&PatternRecognition(CVPR2003)發(fā)表的文章"RecognizingObjectsin AdversarialClutter:BreakingaVisualCAPTCHA" 挑戰(zhàn)了更為困難的雜亂背景字符 圖片驗(yàn)證碼的識(shí)別。作者對(duì)圖像利用Canny算子實(shí)施邊緣檢測,并通過紋理梯度操作子 (texturegradientoperator)來粗略定位字符的位置,認(rèn)為對(duì)紋理梯度操作子的較大的 響應(yīng)點(diǎn)為字符附近的點(diǎn);并提取形狀上下文描述子(shapecontextdescriptor),并利用 形狀上下文描述子和預(yù)先定義好的字符的形狀上下文描述子通過變形模板匹配的方法,獲 得字符的定位和識(shí)別。
[0008] 紐卡斯?fàn)柎髮W(xué)的研究人員JeffYan等在23rdAnnualComputerSecurity ApplicationsConference上發(fā)表的文章"BreakingVisualCAPTCHAswithNaive PatternRecognitionAlgorithms"中,對(duì)于包含背景噪音的驗(yàn)證碼,利用了如下兩種先驗(yàn) 信息:一是雖然背景噪音包含了各種顏色,但是前景的字符的顏色是單一的,另外,每個(gè)字 符所包含的像素個(gè)數(shù)是一定的,背景顏色模式為相同的顏色會(huì)重復(fù)出現(xiàn)多次;基于上述信 息,排除背景干擾,將字符提取出來。
【發(fā)明內(nèi)容】
[0009] 本發(fā)明針對(duì)具有復(fù)雜背景的包含字符的二維圖形驗(yàn)證碼,以期能夠?qū)⑵浔尘白兒?單,并保持原有字符的結(jié)構(gòu),從而為后續(xù)字符連通體的提取做好準(zhǔn)備。
[0010] 本發(fā)明的技術(shù)方案為:在讀入一張驗(yàn)證碼圖片后,對(duì)其實(shí)施背景顏色的量化操作, 通過減少背景顏色,達(dá)到消除雜亂背景,突出字符的目的。
[0011] 本算法主要基于的技術(shù)是顏色減少技術(shù),所用的方法基于NikosNikolaou等發(fā)表 在Internationaljournalofimagingsystemsandtechnology(2009)的文章"Color ReductionforComplexDocumentImages",同其相比,本算法在如下幾方面進(jìn)行了改進(jìn): (1)在第一步平滑步驟中,作者設(shè)計(jì)了一個(gè)EPSF算法,目的是在平滑的同時(shí)保持邊緣不被 模糊;本算法用一個(gè)高斯核雙邊濾波器來代替EPSF算法,同原來的EPSF算法相比,高斯核 雙邊濾波器在平滑圖像的同時(shí),保持邊緣不被模糊的效果上要優(yōu)于EPSF算法,這樣就能確 保字符的結(jié)構(gòu)不被破壞,為后續(xù)字符識(shí)別奠定基礎(chǔ)。(2)在顏色類歸并時(shí),本算法采用層次 聚類算法,對(duì)顏色進(jìn)行自適應(yīng)的合并。實(shí)踐表明,本算法能對(duì)一些在復(fù)雜背景下的驗(yàn)證碼的 背景噪音進(jìn)行有效的去除。
【附圖說明】
[0012] 圖1為EPSF濾波和雙邊濾波效果對(duì)比,其中(a)為EPSF的結(jié)果,(b)為雙邊濾波 的結(jié)果。
[0013] 圖2為輸入圖片和顏色減少處理后的圖片,其中(a)為原圖片一;(b)為顏色減少 處理后的圖片一;(c)為原圖片二;(d)為顏色減少處理后的圖片二;(e)為原圖片三;(f) 為顏色減少處理后的圖片三;
【具體實(shí)施方式】
[0014] 圖1顯示了分別用EPSF濾波器和雙邊濾波器平滑的效果,可以看出,EPSF濾波后 字符的邊緣還是被造成了一定的模糊,而雙邊濾波器的邊緣則沒有被平滑。
[0015] 本方法實(shí)施的過程如下,
[0016] S1預(yù)處理
[0017] SI. 1讀入驗(yàn)證碼圖片,用雙邊濾波器對(duì)其進(jìn)行濾波;雙邊濾波器的基本思想是同 時(shí)考慮定義域即像素空間鄰域和值域即像素亮度空間鄰域的差異。輸出像素的值依賴于鄰 域像素值的加權(quán)和,其公式如下:
[0019] 其中,g(i,j)表示輸出圖像第i行第j列的像素亮度值;f(k,1)表示輸入圖像第 k行第1列的像素亮度值,它是第i行第j列像素的鄰域像素,即k,1,=i-m,j-n,其中m,η 的取值為_1,〇, 1 ;分子項(xiàng)為第i行第j列像素的八鄰域像素的加權(quán)和,權(quán)值為w(i,j,k, 1); 分母是規(guī)范化項(xiàng),確保權(quán)值的和為1 ;權(quán)值系數(shù)w(i,j,k, 1)由定義域核和值域核的乘積決 定;定義域核和值域核均為高斯函數(shù),如下:
[0020] 定義域核:
[0026] S1. 2實(shí)施通道分割,將濾波后的圖分解為R、G、B三個(gè)通道圖像
[0027] S2顏色減少
[0028] S2. 1 子采樣
[0029] S2. 1. 1對(duì)R、G、B三通道的每個(gè)通道,分別采用X向Sobel和y向Sobel邊緣檢測 算子進(jìn)行X向、y向的邊緣檢測,分別獲得X向的邊圖和y向的邊圖。X向和Y向的Sobel 算子模板分別如下:
[0031] 這樣總共能獲得六個(gè)邊圖,分別記為:
[0032] Grx,Gry,Ggx,Ggy,Gbx,Gby
[0033] 它們分別是紅色通道x向梯度圖,紅色通道y向梯度圖G%,綠色通道x向梯度 圖Ggx,綠色通道y向梯度圖Ggy,藍(lán)色通道X向梯度圖Gbx,藍(lán)色通道y向梯度圖Gby。
[0034] S2. 1. 2為R、G、B三個(gè)通道圖中的每個(gè)象素i,用如下公式分別計(jì)算該象素在三個(gè) 通道中的梯度值:
[0038] 其中,GJ為紅色通道中第i個(gè)像素的x向梯度值,GJ為紅色通道中第I個(gè)像素 的y向梯度值;Glxg為綠色通道中第i個(gè)像素的X向梯度值,Glyg為綠色通道中第i個(gè)像素 的y向梯度值;Glxb為藍(lán)色通道中第i個(gè)像素的X向梯度值,Glyb為藍(lán)色通道中第i個(gè)像素 的y向梯度值。
[0039]S2. 1. 3對(duì)每個(gè)象素i,選擇三個(gè)通道的梯度值中最大值作為該象素最終的梯度 值:
[0040]G;=max(G%,G',G1^)
[0041] 處理完之后得到一個(gè)梯度圖像G,G中每個(gè)象素i的值即為Gp
[0042]S2. 1.4在獲得的梯度圖像G中,選擇滿足如下條件的局部極小值點(diǎn)作為子采樣 點(diǎn):若該點(diǎn)的梯度值,均小于等于其八個(gè)鄰域的梯度值,則選擇該點(diǎn)作為采樣點(diǎn)。
[0043]由于邊上的象素點(diǎn)的梯度均較大,