基本介紹
驗證碼的主要目的是強制人機互動來抵禦機器自動化攻擊的。大部分的驗證碼設計者並不得要領,不了解 圖像處理, 機器視覺, 模式識別, 人工智慧的基本概念。
利用驗證碼,可以發財,當然要犯罪:比如招商銀行密碼只有6位,驗證碼形同虛設,計算機很快就能破解一個有錢的賬戶,很多帳戶是可以網上交易的。也有設計的比較好的,比如Yahoo,Google,Microsoft等。而國內Tencent的中文驗證碼雖然難,但算不上好。
處理知識
主要流程
比如我們要從一副圖片中,識別出驗證碼;比如我們要從一副圖片中,檢測並識別出一張人臉。
1.圖像採集:驗證碼呢,就直接通過HTTP抓HTML,然後分析出圖片的url,然後下載保存就可以了。如果是人臉檢測識別,一般要通過視屏採集設備,採集回來,通過A/D轉操作,存為數字圖片或者視頻頻。
2.預處理:檢測是正確的圖像格式,轉換到合適的格式,壓縮,剪下出ROI,去除噪音,灰度化,轉換色彩空間這些。
3.檢測:車牌檢測識別系統要先找到車牌的大概位置,人臉檢測系統要找出圖片中所有的人臉(包括疑似人臉);驗證碼識別呢,主要是找出文字所在的主要區域。
4.前處理:人臉檢測和識別,會對人臉在識別前作一些校正,比如面內面外的鏇轉,扭曲等。我這裡的驗證碼識別,“一般”要做文字的切割。
5.訓練:通過各種 模式識別,機器學習算法,來挑選和訓練合適數量的訓練集。不是訓練的樣本越多越好。過學習,泛化能力差的問題可能在這裡出現。這一步不是必須的,有些識別算法是不需要訓練的。
6.識別:輸入待識別的處理後的圖片,轉換成分類器需要的輸入格式,然後通過輸出的類和置信度,來判斷大概可能是哪個字母。識別本質上就是分類。
關鍵概念
圖像處理:一般指針對數字圖像的某種數學處理。比如投影,鈍化,銳化,細化,邊緣檢測,二值化,壓縮,各種數據變換等等。
1.二值化:一般圖片都是彩色的,按照逼真程度,可能很多級別。為了降低計算複雜度,方便後續的處理,如果在不損失關鍵信息的情況下,能將 圖片處理成黑白兩種顏色,那就最好不過了。
2.細化:找出圖像的骨架,圖像線條可能是很寬的,通過細化將寬度將為1,某些地方可能大於1。不同的細化算法,可能有不同的差異,比如是否更靠近線條中間,比如是否保持聯通行等。
3.邊緣檢測:主要是理解邊緣的概念。邊緣實際上是圖像中圖像像素屬性變化劇烈的地方。可能通過一個固定的門限值來判斷,也可能是自適應的。門限可能是圖像全局的,也可能是局部的。不能說那個就一定好,不過大部分時候,自適應的局部的門限可能要好點。被分析的,可能是顏色,也可能是 灰度圖像的灰度。
機器視覺:利用計算機來模式實現人的視覺。比如物體檢測,定位,識別。按照對圖像理解的層次的差別,分高階和低階的理解。
模式識別:對事物或者現象的某種表示方式(數值,文字,我們這裡主要想說的是數值),通過一些處理和分析,來描述,歸類,理解,解釋這些事物,現象及其某種抽象。
人工智慧:這種概念比較寬,上面這些都屬於人工智慧這個大的方向。簡單點不要過分學院派的理解就是,把人類的很“智慧型”的東西給模擬出來協助生物的人來處理問題,特別是在計算機裡面。
經驗: 目前這方面的技術難點主要在於驗證嗎圖片的分割方面,對於識別的匹配,OCR技術已經很成熟了,完全可用於驗證碼圖片的識別,但是複雜的驗證碼圖片大多粘連,分割處理比較麻煩
新動態
複雜的 Captcha對 文字識別, 圖形圖像處理以及 人工智慧專家來說都是一個很大的挑戰,但是這並不能阻止網際網路上那些Bot創造者們的腳步,一些新興的破解Captcha的辦法也就應運而生,最常用的包括兩種方法:
1. 利用現成的網站(很多是吸引眼球的不正當網站)的高流量,讓那些過路者免費幫忙輸入驗證碼。
2. 直接付費利用人力資源輸入驗證碼,通過 軟體,把需要識別的驗證碼發給網賺者識別;代表平台:打碼兔。
驗證碼的作用: 有效防止某個黑客對某一個特定註冊用戶用特定程式暴力破解方式進行不斷的登入嘗試,實際上是用驗證碼是現在很多網站通行的方式(比如招商銀行的網上個人銀行,騰訊的QQ社區),我們利用比較簡易的方式實現了這個功能。雖然登入麻煩一點,但是對網友的密碼安全還來說這個功能還是很有必要,也很重要。但我們還是 提醒大家主要保護自己的密碼 , 儘量使用混雜了數字、字母、符號在內的6位以上密碼,不要使用諸如1234之類的簡單密碼或者與用戶名相同、類似的密碼。 不要因為只是來天星教育問問問題,就隨意設定密碼,保護你自己的密碼也是保護你自己,免得你的賬號給人盜用給自己帶來不必要的麻煩。
(1).驗證碼一般是防止批量註冊的,人眼看起來都費勁,何況是機器。二像百度貼吧未登錄發貼要輸入驗證碼大概是防止大規模匿名回帖的發生目前,不少網站為了防止用戶利用機器人自動註冊、登錄、灌水,都採用了驗證碼技術。所謂驗證碼,就是將一串隨機產生的數字或符號,生成一幅圖片, 圖片裡加上一些干擾象素(防止OCR),由用戶肉眼識別其中的驗證碼信息,輸入 表單提交網站驗證,驗證成功後才能使用某項功能。
(2).一般註冊用戶ID的地方以及各大論壇都要要輸入驗證碼
(3).常見的驗證碼
1,四位數字,隨機的一數字字元串,最原始的驗證碼,驗證作用幾乎為零。2,CSDN網站用戶登錄用的是GIF格式,目前常用的隨機數字圖片驗證碼。圖片上的 字元比較中規中矩,驗證作用比上一個好。沒有基本圖形圖像學知識的人,不可破!可惜讀取它的程式,在CSDN使用它的第一天,好像就在論壇里發布了,真是可憐!
2,漢字,QQ網站註冊目前最新的驗證碼,都是漢字,隨機生成,打起來更難了!
3,QQ網站用戶登錄用的是PNG格式,圖片用的隨機數字 隨機大寫英文字母,整個構圖有點 張揚,每刷新一次,每個 字元還會變位置呢!有時候出來的圖片,人眼都識別不了,厲害啊…4,MS的hotmail申請時候的是BMP格式, 隨機數字 隨機大寫英文字母 隨機干擾像素 隨機位置。
4,韓文或日文,現在跑跑HF上MS註冊都要打韓文的,這更增加了難度,要去修學下才行..
5,Google的Gmail註冊時候的是JPG格式,隨機英文字母 隨機顏色 隨機位置 隨機長度。
6,其他各大論壇的是XBM格式,內容隨機。
(4)意義:不少網站為了防止用戶利用機器人自動註冊、登錄、灌水,都採用了驗證碼技術。所謂驗證碼,就是將一串隨機產生的數字或符號,生成一幅圖片,圖片裡加上一些干擾象素(防止OCR),由用戶肉眼識別其中的驗證碼信息,輸入表單提交網站驗證,驗證成功後才能使用某項功能。
服務商
目前國內最優秀的驗證碼識別解決方案提供商有打碼兔、優優雲和石像答題,平台採用軟體識別+人工修正,正確率達99%。
接入簡單,僅需上傳驗證碼,4秒內回傳識別結果。
1.高性能,高穩定的雲端答題,驗證碼識別平台,為您的軟體、平台、網站,提供智慧型化高速穩定的代答題服務。
2.您只需要將您的軟體整合進打碼兔或者優優雲端的API,我們將在最短時間內將您的題目驗證碼圖片等返回給您,您無需再單獨的去實現複雜的智慧型解決方案。
3.讓您的產品實現完全全自動化整合,為開發者提供完美的分成計畫。
4.完美支持:易語言,C#,VB,VB。net,Delphi,PHP,JAVA等超過26種程式語言,提供開放的API接口,您可以快速的將您的軟體無縫整合進來
5.國內 8台四線Intel至強8核32G伺服器,全球總計 39台伺服器同時工作,雲端分配最近服務端,回碼回響飛快!
6.單台伺服器日產量200萬驗證碼,國內總日產量達 1800萬驗證碼,根據客戶需求還可以隨時上架專用伺服器!
7.國內超過 3200人專業打碼團隊,全球總計超過 15600(後台數據)人專業打碼團隊,7X24小時工作,正確率穩超 99.8%!
8.精準快速的高能算法,平均每碼解決時間僅需 4秒
9.價格低廉,扣費精準,[逾時碼][錯誤碼]不計費!
10.完善的 智慧型監控系統,保證數據真實正常有效,保證了客戶和軟體開發者的利益不受損害以及平台的安全性!
11.獨家餘額不足簡訊郵件報警功能,用戶用得安心放心!
另外無憂OCR提供專業的驗證碼本地識別動態庫定製