• <th id="bb20k"></th>
    1. <th id="bb20k"></th>
      1. <th id="bb20k"></th>
        <progress id="bb20k"></progress>

        您的位置:新聞資訊 >文章內容
        自動識別字符驗證碼--素材收集、處理、切割
        來源:一點一滴的Beer 作者:admin 時間:2018-12-15 16:50:19

        驗證碼的出現主要是為了區分用戶是計算機還是人,比如數字驗證碼、字符驗證碼、滑動驗證碼等等。通常驗證碼是用來防止爬蟲程序惡意抓取信息,或者防止批量注冊等等,但是這驗證碼并不是萬能的,還是可以突破的,那么這爬蟲怎么突破驗證碼限制?

        本文介紹了一套字符驗證碼識別的完整流程,對于驗證碼安全和OCR識別技術都有一定的借鑒意義。


        一、圖片素材收集

        1.選定素材類型

        自動識別字符驗證碼--素材收集、處理、切割

        此圖片能滿足要求,仔細觀察其具有如下特點。

        有利識別的特點 :由純阿拉伯數字組成、字數為4位、字符排列有規律、字體是用的統一字體 。

        不利識別的特點 :圖片背景有干擾噪點 。

        2.爬取素材,主要步驟如下:

        通過瀏覽器的抓包功能獲取隨機圖片驗證碼生成接口,批量請求接口以獲取圖片,將圖片保存到本地磁盤目錄中,循環執行N次,即可保存N張驗證素材了。代碼,如下:

        自動識別字符驗證碼--素材收集、處理、切割

        效果圖:

        自動識別字符驗證碼--素材收集、處理、切割


        二、圖片預處理

        雖然目前的機器學習算法已經相當先進了,但是為了減少后面訓練時的復雜度,同時增加識別率,很有必要對圖片進行預處理,使其對機器識別更友好。

        1.二值化圖片

        將RGB彩圖轉為灰度圖,將灰度圖按照設定閾值轉化為二值圖:

        自動識別字符驗證碼--素材收集、處理、切割

        由PIL轉化后變成二值圖片:0表示黑色,1表示白色。二值化后帶噪點的 6937 的像素點輸出后如下圖:

        自動識別字符驗證碼--素材收集、處理、切割

        2.去除噪點

        在轉化為二值圖片后,就需要清除噪點。本文選擇的素材比較簡單,大部分噪點也是最簡單的那種 孤立點,所以可以通過檢測這些孤立點就能移除大量的噪點。

        關于如何去除更復雜的噪點甚至干擾線和色塊,有比較成熟的算法: 洪水填充法 Flood Fill ,后面有興趣的時間可以繼續研究一下。

        經過預處理后的圖片如下所示:

        自動識別字符驗證碼--素材收集、處理、切割

        對比文章開頭的原始圖片,那些 孤立點 都被移除掉,相對比較 干凈 的驗證碼圖片已經生成。

        三、圖片字符切割

        1.分割算法

        使用圖像編輯軟件(PhoneShop或者其它)打開驗證碼圖片,放大到像素級別,觀察其它一些參數特點:

        自動識別字符驗證碼--素材收集、處理、切割

        可以得到如下參數:

        • 整個圖片尺寸是 40*10

        • 單個字符尺寸是 6*10

        • 左右字符和左右邊緣相距2個像素

        • 字符上下緊挨邊緣(即相距0個像素)

        這樣就可以很容易就定位到每個字符在整個圖片中占據的像素區域,然后就可以進行分割了,具體代碼如下:

        自動識別字符驗證碼--素材收集、處理、切割

        然后就能得到被切割的 原子級 的圖片元素了:

        自動識別字符驗證碼--素材收集、處理、切割

        2.尺寸歸一

        本文所選擇的研究對象本身尺寸就是統一狀態:6*10的規格,所以此部分不需要額外處理。但是一些進行了扭曲和縮放的驗證碼,則此部分也會是一個圖像處理的難點。

        在前面的環節,已經完成了對單個圖片的處理和分割了,后面就開始進行識別模型的訓練了。關于后續識別可以了解更多的精靈代理資訊。


        相關文章內容簡介
        解鎖高速不限量IP代理
        在線咨詢
        微信公眾號

        微信公眾號

        回到頂部
        国产欧美 一区,国产一本大道香蕉AV,国产亚洲卡通另类图片,国产高清AV在线