字符類驗(yàn)證碼識(shí)別——常用算法及主要流程

驗(yàn)證碼識(shí)別相關(guān)

字符類驗(yàn)證碼識(shí)別主要過程

  1. 去噪
  2. 二值化
  3. 切分
  4. 歸一化
  5. 特征提取
  6. 訓(xùn)練模型
  7. 再優(yōu)化

字符類驗(yàn)證碼基本流程大致就是以上幾步,只是針對(duì)不同的驗(yàn)證碼會(huì)選擇不同的算法。
此外需要注意驗(yàn)證碼識(shí)別流程絕不是固定的,針對(duì)不同特征的驗(yàn)證碼選擇不同的流程才是最好的做法。

去噪

去噪可以說是驗(yàn)證碼識(shí)別中最重要的一環(huán),一旦去噪沒做好,最終結(jié)果一定是慘不忍睹,相反,若是去噪做好了,整個(gè)驗(yàn)證碼識(shí)別將水到渠成。
常見去噪方法:

  1. 灰度去噪,即根據(jù)噪音與有效信息像素灰度的不同進(jìn)行去噪,主要針對(duì)背景色RGB較大時(shí)(即顏色接近白色)使用。
  2. 骨架侵蝕去噪,主要針對(duì)細(xì)點(diǎn)、細(xì)線等噪聲去噪,當(dāng)一個(gè)點(diǎn)與周圍8個(gè)點(diǎn)中若干個(gè)點(diǎn)的RGB值相差較大時(shí),認(rèn)為該點(diǎn)為噪點(diǎn),進(jìn)行去噪。需注意此方法會(huì)對(duì)原有有效信息造成破壞,所以需要謹(jǐn)慎使用。
  3. RGB去噪,主要針對(duì)驗(yàn)證碼中單個(gè)字符顏色極為接近情況下進(jìn)行去噪,令RGB值差在1~5以內(nèi)的像素構(gòu)成一幅圖像,有效的字符往往有效信息較多,取有效信息最多的若干幅圖片,認(rèn)為是去噪后的字符。此算法同時(shí)完成了去噪、二值化、切分。
  4. 視差去噪,模擬人識(shí)別物體的一種算法,即對(duì)每一個(gè)像素與它周圍的8個(gè)像素做RGB對(duì)比,差別約大則顏色越深,這種算法可以用來識(shí)別類似騰訊開放平臺(tái)的驗(yàn)證碼。
  5. 特定問題特定分析,基本上每個(gè)網(wǎng)站都有一套自己的驗(yàn)證碼生產(chǎn)算法,所以遇到復(fù)雜驗(yàn)證碼時(shí)我們必須進(jìn)行針對(duì)性的分析,找到驗(yàn)證碼的弱點(diǎn),不斷挖掘,完成破解。

二值化

二值化算法較為有限,基本為灰度二值化與RGB二值化,都是利用顏色的RGB信息進(jìn)行分類完成黑白兩色的轉(zhuǎn)化。

切分

針對(duì)無粘連字符的切分較為簡單,下面主要談?wù)勧槍?duì)有粘連字符的切分算法。
y軸側(cè)視算法:在y軸上觀察x軸所有黑色像素點(diǎn)之和,找出若干個(gè)大于limit的不連續(xù)點(diǎn),即可認(rèn)為是切分點(diǎn)。

歸一化

歸一化,即將旋轉(zhuǎn)字符逆旋轉(zhuǎn)化,需要注意的是我們并不需要將字符“擺正”,而是讓所有相同字符“正”的角度相同,有以下幾種算法:

  1. 寬度最小算法:主要針對(duì)數(shù)字和字母字符,認(rèn)為該類字符在擺正的情況下寬度最小,由此完成逆旋轉(zhuǎn)歸一。
  2. 橫豎側(cè)凸算法:我根據(jù)漢字“橫平豎直”的特點(diǎn)而發(fā)明的一種算法,即認(rèn)為漢字在擺正的情況下橫是平的,豎是直的,所以在x軸和y軸側(cè)視時(shí),若有橫或豎,則該列像素中為黑色的數(shù)量很大,而上下兩列黑色像素的數(shù)量較少,如3-15-4,由此讓所有行的黑色像素?cái)?shù)減去上一行的黑色像素?cái)?shù),取絕對(duì)值然后求和,突變最大的即為最“正”的漢字。由此完成逆旋轉(zhuǎn)歸一化。此算法對(duì)撇捺較多的漢字識(shí)別效果不好,但可以通過增加特征值的方式彌補(bǔ)。
    完成逆旋轉(zhuǎn)化后,我們一般會(huì)將字符放大或縮小到同一size,方便后續(xù)的特征提取等操作。

特征提取&訓(xùn)練模型

最簡單的方法是對(duì)圖片取01字符串或二維數(shù)組,編輯距離越小則認(rèn)為其越接近。
也可以通過深度學(xué)習(xí)等算法完成訓(xùn)練。
一般只需要對(duì)每個(gè)字符可能的結(jié)果做1~3次手動(dòng)分類后,讓模型自己進(jìn)行100次左右分類,找出分類錯(cuò)誤的項(xiàng),針對(duì)優(yōu)化或加入訓(xùn)練集。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容