摘要:可惜收費(fèi)的,今天要介紹的完美驗(yàn)證碼識(shí)別系統(tǒng)是類似的免費(fèi)產(chǎn)品。調(diào)用函數(shù)相當(dāng)簡單的,對(duì)比復(fù)雜的參數(shù),這個(gè)識(shí)別是相當(dāng)?shù)目旖荨?/p>
此文已由作者徐迪授權(quán)網(wǎng)易云社區(qū)發(fā)布。
歡迎訪問網(wǎng)易云社區(qū),了解更多網(wǎng)易技術(shù)產(chǎn)品運(yùn)營經(jīng)驗(yàn)。
講到驗(yàn)證碼識(shí)別,大家第一個(gè)可能想到tesseract。誠然,對(duì)于OCR而言,tesseract確實(shí)很強(qiáng)大,自帶的字模能識(shí)別絕大多數(shù)規(guī)整的中英文。但是驗(yàn)證碼畢竟不是OCR。對(duì)于現(xiàn)在簡單的驗(yàn)證碼,其干擾都很難規(guī)整的去完,或者說去干擾也是苦差事。你很難講干擾去完后去做OCR,對(duì)于低成本的OCR識(shí)別更是這樣。對(duì)于固定的驗(yàn)證碼,針對(duì)性的訓(xùn)練庫反而更有效,因?yàn)閷?duì)于單一的驗(yàn)證碼,其生成規(guī)則相對(duì)簡單,用特定規(guī)格做字模識(shí)別率95%以上應(yīng)該不難。
說到底還是需要一個(gè)簡單的識(shí)別器,訓(xùn)練器。某次世紀(jì)識(shí)別系統(tǒng)是國內(nèi)灰產(chǎn)碼農(nóng)用的最多的吧。可惜收費(fèi)的,今天要介紹的完美驗(yàn)證碼識(shí)別系統(tǒng)是類似的免費(fèi)產(chǎn)品。驗(yàn)證碼識(shí)別系統(tǒng)其實(shí)就是兩部分組成,字模制作系統(tǒng)包括預(yù)處理的配置,和單字符字模制作以及生成字模打包文件,識(shí)別系統(tǒng)就是用字模打包結(jié)果去識(shí)別驗(yàn)證碼,就是一個(gè)設(shè)置參數(shù)的函數(shù),然后調(diào)用設(shè)別函數(shù)拿到結(jié)果。
軟件內(nèi)容如下:
WmCode.dll是主要的識(shí)別庫,主程序負(fù)責(zé)字模生成,其中包括了眾多圖像學(xué)的算法,如下圖,簡要的介紹下常見的方法。
1.色彩通道噪點(diǎn)處理
在清除背景和保留前景的tab中有保留和去除指定顏色的操作(包括HSV RGB 色彩域),以及指定色彩的大小過濾。這些操作主要針對(duì)色彩較為有限的彩色小噪點(diǎn),一般這種驗(yàn)證碼噪聲還是比較多的。通過這2種方式的結(jié)合,基本可以去掉大部分的此類噪點(diǎn)。
2.濾波類
主要針對(duì)灰度圖處理,主要處理局部有灰度差異的噪聲。很多驗(yàn)證碼在局部制造一些高對(duì)比度的噪聲,濾波操作對(duì)此類就有較好效果。另外的用途就是邊緣提取,方便后期對(duì)干擾線的處理。
3.二值化
后邊幾類如形態(tài)學(xué)處理類,黑白圖處理,干擾線處理,都是基于二值化后的圖像,所以后邊要先對(duì)圖像二值化。軟件把常見的閾值取值算法都放進(jìn)去,具體算法這里就不講了。
4.形態(tài)學(xué)處理
圖像濾鏡tab下包括了主流的形態(tài)學(xué)算法,開閉操作,輪廓骨架等。主要處理小噪點(diǎn),以及取輪廓后方便后期去干擾線。
5.干擾線處理
最后的tab中包含對(duì)干擾線的檢測去除檢查去除算法
通過多個(gè)處理算法完成預(yù)處理,點(diǎn)擊開始編輯圖像,進(jìn)入下一步,選擇分割方式,識(shí)別方式和制作字模。
雖然有提供一些常見的分割方式,但對(duì)于大多遇到的非規(guī)則的驗(yàn)證碼,分割效果確實(shí)不是很好,選擇手動(dòng)分割就不要管左邊的配置了。識(shí)別模式首選整體識(shí)別,其他各種在實(shí)際識(shí)別中也不是很好。
下邊主講字模的制作。在工具區(qū)最左邊的按鈕,手動(dòng)裁剪單個(gè)要處理的字,選擇后雙擊,界面就變成單個(gè)字符處理。
在信息區(qū)輸入要 訓(xùn)練結(jié)果,就會(huì)添加字模。操作應(yīng)該算很簡單。不斷的訓(xùn)練,直到識(shí)別率到達(dá)滿意為止。返回上個(gè)界面,點(diǎn)擊識(shí)別庫,識(shí)別庫生成,填寫密碼(調(diào)用函數(shù)用),就會(huì)把庫生成在項(xiàng)目目錄下。識(shí)別的過程,其實(shí)在軟件下給了函數(shù)的簡單說明,以及各語言的樣例,以python為例,看下大概的過程:
coding=gbk#第一行注釋不能省,指定編碼聲明以支持中文#本代碼文件在32位的python 3.4.3版測試通過import urllibimport timeimport stringimport ctypesfrom ctypes import *dll = ctypes.windll.LoadLibrary("WmCode.dll")#如果dll不在當(dāng)前目錄,那么需要指定全路徑if(dll.UseUnicodeString(1,1)): #這個(gè)函數(shù)用來向DLL說明傳入的文本使用unicode格式
print("SetInUnicode Success:")#UseUnicodeString調(diào)用一次即可,無需重復(fù)調(diào)用else: print("etInUnicode Fail!")#注意縮進(jìn)格式if(dll.LoadWmFromFile("D:網(wǎng)易論壇.dat","163")):#使用絕對(duì)路徑 print("Loaddat Success:")#LoadWmFromFile調(diào)用一次即可,無需重復(fù)調(diào)用 Str = create_string_buffer(20)#創(chuàng)建文本緩沖區(qū) if(dll.GetImageFromFile("D:wylt.JPG",Str)):#使用絕對(duì)路徑 #如果驗(yàn)證碼圖像不在當(dāng)前目錄,那么需要指定全路徑 print("GetVcode Success:",Str.raw.decode("gbk")) #返回的文本自行處理口口口問題 else: print("GetVcode Fail!")
else:
print("Loaddat Fail!")#注意縮進(jìn)格式
所有的函數(shù)封裝在WmCode.dll中,導(dǎo)出的了幾個(gè)基本函數(shù)。第一個(gè)指定使用unicode,和語言互調(diào)用有關(guān)。LoadWmFromFile 函數(shù)加載庫文件,就是我們用主程序訓(xùn)練的結(jié)果,第二個(gè)參數(shù)是導(dǎo)出時(shí)填寫的密碼,GetImageFromFile 方法直接對(duì)本地文件進(jìn)行識(shí)別,第一個(gè)參數(shù)是圖片地址,第二個(gè)是輸出的結(jié)果。調(diào)用函數(shù)相當(dāng)簡單的,對(duì)比tesseract復(fù)雜的參數(shù),這個(gè)識(shí)別是相當(dāng)?shù)目旖荨T诹η罂焖偕勺R(shí)別代碼的情況下,用這個(gè)庫確實(shí)非常方便。
網(wǎng)易云易盾提供新一代網(wǎng)站驗(yàn)證碼,包括智能驗(yàn)證碼、滑動(dòng)驗(yàn)證碼等形式,驗(yàn)證碼接口穩(wěn)定性 99.9%,感知威脅可智能切換驗(yàn)證難度,告別繁瑣驗(yàn)證,保護(hù)業(yè)務(wù)安全,點(diǎn)擊可免費(fèi)試用。
網(wǎng)易云免費(fèi)體驗(yàn)館,0成本體驗(yàn)20+款云產(chǎn)品!
更多網(wǎng)易技術(shù)、產(chǎn)品、運(yùn)營經(jīng)驗(yàn)分享請(qǐng)點(diǎn)擊。
文章來源: 網(wǎng)易云社區(qū)
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/25250.html
摘要:圖片驗(yàn)證碼是目前最常用的一種。神經(jīng)網(wǎng)絡(luò)以上驗(yàn)證碼識(shí)別都依賴于字符切分,切分的好壞幾乎直接決定識(shí)別的準(zhǔn)確程度。目前驗(yàn)證碼識(shí)別最先進(jìn)的是谷歌在識(shí)別街景圖像中門牌號(hào)碼中使用的一套的算法。 全自動(dòng)區(qū)分計(jì)算機(jī)和人類的圖靈測試(Completely Automated Public Turing test to tell Computers and Humans Apart,簡稱CAPTCHA),...
摘要:驗(yàn)證碼的識(shí)別成功率跟圖片質(zhì)量關(guān)系密切,一般拿到后的驗(yàn)證碼都得經(jīng)過灰度化,二值化,去噪,利用就可以很方便的做到。 了解驗(yàn)證碼 什么是驗(yàn)證碼? 所謂驗(yàn)證碼,就是將一串隨機(jī)產(chǎn)生的數(shù)字或符號(hào),生成一幅圖片,圖片里加上一些干擾象素(防止OCR),由用戶肉眼識(shí)別其中的驗(yàn)證碼信息,輸入表單提交網(wǎng)站驗(yàn)證,驗(yàn)證成功后才能使用某項(xiàng)功能,通俗說就是一種區(qū)分用戶是計(jì)算機(jī)和人的公共全自動(dòng)程序 驗(yàn)證碼的作用 可以...
摘要:之前在學(xué)校曾經(jīng)用過的方法做過一些爬蟲腳本來玩,從正式轉(zhuǎn)前端之后,出于興趣,我對(duì)爬蟲和反爬蟲又做了一些了解,并且做了一些爬蟲攻防的實(shí)踐。爬蟲腳本通常會(huì)很頻繁的進(jìn)行網(wǎng)絡(luò)請(qǐng)求,比如要爬取豆瓣排行榜的電影,就會(huì)連續(xù)發(fā)送個(gè)網(wǎng)絡(luò)請(qǐng)求。 之前在學(xué)校曾經(jīng)用過request+xpath的方法做過一些爬蟲腳本來玩,從ios正式轉(zhuǎn)前端之后,出于興趣,我對(duì)爬蟲和反爬蟲又做了一些了解,并且做了一些爬蟲攻防的實(shí)踐...
摘要:之前在學(xué)校曾經(jīng)用過的方法做過一些爬蟲腳本來玩,從正式轉(zhuǎn)前端之后,出于興趣,我對(duì)爬蟲和反爬蟲又做了一些了解,并且做了一些爬蟲攻防的實(shí)踐。爬蟲腳本通常會(huì)很頻繁的進(jìn)行網(wǎng)絡(luò)請(qǐng)求,比如要爬取豆瓣排行榜的電影,就會(huì)連續(xù)發(fā)送個(gè)網(wǎng)絡(luò)請(qǐng)求。 之前在學(xué)校曾經(jīng)用過request+xpath的方法做過一些爬蟲腳本來玩,從ios正式轉(zhuǎn)前端之后,出于興趣,我對(duì)爬蟲和反爬蟲又做了一些了解,并且做了一些爬蟲攻防的實(shí)踐...
摘要:登錄注冊安全風(fēng)險(xiǎn)登錄注冊的風(fēng)險(xiǎn)點(diǎn)主要有四個(gè)暴力破解撞庫遍歷注冊用戶批量注冊。引入了驗(yàn)證碼機(jī)制同樣引入了額外的安全風(fēng)險(xiǎn),比如短信驗(yàn)證碼的短信炸彈風(fēng)險(xiǎn)圖形驗(yàn)證碼的可繞過可識(shí)別等。 概述 很多技術(shù)研發(fā)不了解安全,也不重視安全,只有在自己的服務(wù)器被黑掉、被掛馬、被脫褲才想起關(guān)注安全,但是這個(gè)時(shí)候,技術(shù)架構(gòu)已經(jīng)成型、代碼已經(jīng)在線上穩(wěn)定運(yùn)行,再亡羊補(bǔ)牢,改代碼、改策略,往往成本巨大、確收效很低。所...
閱讀 2721·2021-11-17 17:01
閱讀 2098·2021-09-28 09:35
閱讀 3605·2021-09-01 11:04
閱讀 874·2020-06-22 14:41
閱讀 2990·2019-08-30 15:55
閱讀 2600·2019-08-30 15:43
閱讀 2327·2019-08-26 13:54
閱讀 2521·2019-08-26 13:48