成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

驗(yàn)證碼識(shí)別

W4n9Hu1 / 1950人閱讀

摘要:你說我一個(gè)學(xué)電氣的,怎么就跑來寫驗(yàn)證碼識(shí)別了呢。我當(dāng)時(shí)就念了兩句代碼,茍言歸正傳,驗(yàn)證碼識(shí)別主要分兩部分圖像分割和識(shí)別。其中,分割驗(yàn)證碼是最麻煩的,因?yàn)榛緵]有一勞永逸的分割方法。

原blog在這里>> https://github.com/100steps/B... 因?yàn)樵L問Github太慢所以重新上傳了圖片,下面才是正文。。


這個(gè)鍋本來是若花的,然而不知不覺就甩我背上了。你說我一個(gè)學(xué)電氣的,怎么就跑來寫驗(yàn)證碼識(shí)別了呢。波小跟我說,組織上決定了,由我來寫這個(gè)。我當(dāng)時(shí)就念了兩句代碼,print "茍....

言歸正傳,驗(yàn)證碼識(shí)別主要分兩部分:圖像分割和識(shí)別。其中,分割驗(yàn)證碼是最麻煩的,因?yàn)榛緵]有一勞永逸的分割方法。

本文基于opencv2.4,有興趣的可以去了解一下。

圖像分割

我們先來看看教務(wù)的驗(yàn)證碼。

可以看到,是個(gè)72x27像素的矩形,而且每個(gè)字符的顏色都是一樣的,所以只要提取那個(gè)顏色的像素就可以分離出字符了。聽起來很簡(jiǎn)單是不是?

首先我要表揚(yáng)一下若花,因?yàn)槿艋ǖ捻?xiàng)目雖然tj了,里面用到的分割算法確是非常贊的。那么我們先來看一下若花是怎樣做的。

這個(gè)GIF所演示的就大致是若花的算法了,若花當(dāng)時(shí)對(duì)我說的是“染色”,也就是油漆桶算法(又叫種子填充算法,F(xiàn)loodfill)。說實(shí)話看了若花的代碼,我深有感觸。首先,若花自己一個(gè)人寫了前端和后臺(tái),前端用了npm、bootstrap,還用了ajax,要是讓我來寫。。。。。。估計(jì)又要在群上喊耀宗了。其次是算法的實(shí)現(xiàn)都是若花都是用php寫的,php在這方面有點(diǎn)先天弱勢(shì),但是若花還是寫出來了,所以要給若花點(diǎn)個(gè)贊。

但是說了這么多,我最終還是沒有采用這個(gè)算法。為什么呢?

因?yàn)檫@個(gè)算法有個(gè)致命的問題,對(duì)于ij這樣帶有非聯(lián)通區(qū)域的字母,會(huì)把上面的點(diǎn)漏掉。。。。。。這就很尷尬了。我一開始想,能不能先給出每個(gè)字母的最小區(qū)間,再對(duì)區(qū)間內(nèi)的字符顏色的像素染色,這樣就有很大幾率可以把點(diǎn)也染上,因?yàn)閷戇^原生的php生成驗(yàn)證碼的代碼,知道字符雖然有旋轉(zhuǎn)和位移,一開始的位置還是有規(guī)律的。如果想分離出單個(gè)字符,可以直接使用RGB中R的通道,第一個(gè)字符就+1,第二個(gè)+2,第三個(gè)+4,第四個(gè)+8,這樣數(shù)一下R的大小就可以把字符分開,還可以知道哪些字符相連,然后相連字符再重新分隔。

但是后來我又放棄了,因?yàn)槲?del>比若花還要懶找到了更好的方法。之前的方案要統(tǒng)計(jì)一定數(shù)量的驗(yàn)證碼來確定每個(gè)字符的最小染色起始區(qū)間,還要把php寫的染色算法改寫成python。
所以最后,我使用了opencv自帶的k-means算法。這個(gè)算法的好處在于有現(xiàn)成的函數(shù)可以偷懶不但可以分割提取字符,還可以找出每個(gè)字符的中心點(diǎn)。中心點(diǎn)可是個(gè)好東西,不但可以確定字符的次序,還可以對(duì)每個(gè)字符標(biāo)準(zhǔn)化,方便后續(xù)的特征提取。

說到特征提取,若花好像就是卡在這一步。他的分類器好像都基本寫完了,而且是php寫的,說實(shí)話真的很厲害。。。

我這里使用了ocr例程里的方向梯度直方圖Histogram of Oriented Gradients (HOG)作為特征向量。在計(jì)算 HOG 前還要使用圖片的二階矩對(duì)其進(jìn)行抗扭斜(deskew)處理,然后把每個(gè)字符分成4塊,我這里把27x27的字符分成了14x14的小方塊,然后計(jì)算圖像 X 方向和 Y 方向的 Sobel 導(dǎo)數(shù)(這個(gè)不是很懂,如果有人知道請(qǐng)告訴我)。然后計(jì)算得到每個(gè)像素的梯度的方向和大小。把這個(gè)梯度轉(zhuǎn)換成 16 位的整數(shù)。將圖像分為 4 個(gè)小的方塊,對(duì)每一個(gè)小方塊計(jì)算它們的朝向直方圖(16 個(gè) bin),使用梯度的大小做權(quán)重。這樣每一個(gè)小方塊都會(huì)得到一個(gè)含有 16 個(gè)成員的向量。4 個(gè)小方塊的 4 個(gè)向量就組成了這個(gè)圖像的特征向量(包含 64 個(gè)成員)。這就是我們要訓(xùn)練數(shù)據(jù)的特征向量。

圖像識(shí)別

這里我用在knn和svm中選用了svm。knn每次識(shí)別都要遍歷一遍現(xiàn)有數(shù)據(jù),隨著數(shù)據(jù)的增加識(shí)別速度會(huì)下降,而svm就沒有這個(gè)問題。svm有很多相關(guān)資料可以查,比如前面給的鏈接,這里就不細(xì)說。而且opencv自帶的svm并不是最好的,3.0版還有bug,無法導(dǎo)入訓(xùn)練好的模型:(

識(shí)別速度還算令人滿意。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/40776.html

相關(guān)文章

  • windows下簡(jiǎn)單驗(yàn)證識(shí)別——完美驗(yàn)證識(shí)別系統(tǒng)

    摘要:可惜收費(fèi)的,今天要介紹的完美驗(yàn)證碼識(shí)別系統(tǒng)是類似的免費(fèi)產(chǎn)品。調(diào)用函數(shù)相當(dāng)簡(jiǎn)單的,對(duì)比復(fù)雜的參數(shù),這個(gè)識(shí)別是相當(dāng)?shù)目旖荨? 此文已由作者徐迪授權(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)在...

    shleyZ 評(píng)論0 收藏0
  • 如何識(shí)別圖片驗(yàn)證?

    摘要:圖片驗(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ī)和人類的圖靈測(cè)試(Completely Automated Public Turing test to tell Computers and Humans Apart,簡(jiǎn)稱CAPTCHA),...

    y1chuan 評(píng)論0 收藏0
  • node識(shí)別驗(yàn)證

    摘要:驗(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)證碼的作用 可以...

    levy9527 評(píng)論0 收藏0
  • 為什么很多網(wǎng)站的驗(yàn)證都設(shè)置得肉眼都很難識(shí)別?

    摘要:為了應(yīng)付這種情況,很多網(wǎng)站加大驗(yàn)證碼識(shí)別難度,復(fù)雜的驗(yàn)證碼甚至讓用戶都很難識(shí)別了,這種方式劣勢(shì)十分明顯,糟糕的用戶體驗(yàn)最終會(huì)讓網(wǎng)站流失用戶,這便是為什么有人吐槽網(wǎng)站的驗(yàn)證碼的原因了。 歡迎訪問網(wǎng)易云社區(qū),了解更多網(wǎng)易技術(shù)產(chǎn)品運(yùn)營經(jīng)驗(yàn)。 首先來談?wù)勻?yàn)證碼的機(jī)制,驗(yàn)證碼作為一種人機(jī)識(shí)別手段,其終極目的,就是區(qū)分正常人和機(jī)器的操作。而對(duì)于沒有驗(yàn)證碼的場(chǎng)景,比如用戶登陸,則機(jī)器可以同時(shí)、大批量...

    lauren_liuling 評(píng)論0 收藏0
  • 驗(yàn)證識(shí)別

    摘要:下面我們便來講種驗(yàn)證碼的識(shí)別方式和一些思路。哈哈庫其實(shí),驗(yàn)證碼識(shí)別歸根到底還是對(duì)各種各樣圖片的識(shí)別和操作,中有很對(duì)圖像處理的庫,其中就是其中之一。所以在處理驗(yàn)證碼識(shí)別之前,必須先了解庫和。第五步,按照規(guī)定軌跡進(jìn)行拖動(dòng),完成驗(yàn)證。 寫在前面 現(xiàn)在,很多網(wǎng)站采取各種各樣的措施來反爬蟲,其中之一就是使用驗(yàn)證碼。當(dāng)我們?cè)L問網(wǎng)頁時(shí),必須先通過驗(yàn)證碼才能夠訪問頁面。下面我們便來講2種驗(yàn)證碼的識(shí)別方...

    keke 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<