3分鐘使用Halcon識別網易滑塊拼圖驗證碼
網路爬蟲工程師經常在進行網路爬蟲的過程中遇到驗證碼,滑塊拖動驗正在受到越來越多的網站歡迎,本篇實驗目的是使用Halcon的匹配助手構建網易滑塊驗證碼識別演算法模組。
網易滑塊拼圖驗證碼如圖:
圖片來源:http://dun.163.com/trial/sense
滑塊平臺驗證碼圖片通過開啟其網頁原始碼檢視圖片下載地址
這裡我通過單擊圖片右鍵另存為快速儲存圖片到電腦中
通過觀察可以發現圖片中滑塊驗證碼是通過兩張圖片合成在一起構建成滑塊驗證碼,一張為jpg格式的背景圖片,另一張為png的透明圖與前者背景圖合併構建在網頁前端合成一張。
這種驗證型別爬蟲工程師會經常面對處理,常規的處理手法有三種:
1.接到打碼平臺進行定位識別,
2.計算色差缺口來判斷是否重合
3.使用深度學習的目標追蹤識別訓練來定位滑塊
這三種方法的優缺點
- 優點是接入方便,只需要掌握POST傳送圖片即可。缺點是大量使用需要持續充值消費
- 優點是定位準確,能直接拿到原始碼修改。缺點演算法複雜需要理解原始碼不易修改
- 優點是識別定位準確,缺點是深度學習的掌握需要消耗大量的精力無法短時掌握
本篇實驗文章使用Halcon視覺識別工具包能綜合以上各種方法的優缺點,做到易於學習掌握並且定位滑塊位置準確。呼叫識別的時候能直接匯出C、C++、VB.Net、C#的原始碼。本篇文章重點內容在於演算法部分完成,製作識別元件封裝呼叫實現在下一篇文章體現 。
Halcon開發工具包的簡介:
HALCON源自學術界,它有別於市面一般的商用軟體包。事實上,這是一套image processing library,由一千多個各自獨立的函式,以及底層的資料管理核心構成。其中包含了各類濾波,色彩以及幾何,數學轉換,形態學計算分析,校正,分類辨識,形狀搜尋等等基本的幾何以及影像計算功能,由於這些功能大多並非針對特定工作設計的,因此只要用得到影象處理的地方,就可以用HALCON強大的計算 分析能力來完成工作。應用範圍幾乎沒有限制,涵蓋醫學,遙感探測,監控,到工業上的各類自動化檢測。
Halcon的安裝過程:
https://blog.csdn.net/qq_29888333/article/details/84192611
Hacon 的視訊簡介:
http://pan.baidu.com/share/link?shareid=3266393619&uk=2369503810
安裝成功後開啟介面如圖
第一步:讀取滑塊透明圖
[單擊] 檔案->讀取影象
顯示滑塊圖片出來,[注意看一下通道數值為4]
單擊->確定
在halcon的視窗顯示出來表示讀取成功!
第二步: 開啟匹配助手-建立模板
1.助手->開啟新的Matching
- 成功開啟後
[單擊] 模板資源下的單選框->影象視窗
[單擊] 模板感興趣區域->繪製軸平行矩形
->選出建立模板感興趣區域
->如圖藍色是選擇的區域,紅色是建立成果的模板形狀
到此模板已經建立成功,我們需要儲存這個模板方便以後讀取模板從而定位滑塊
3.儲存模板
[單擊] 檔案->儲存模板
指定路徑儲存下來
第三步: 載入圖片與模板->識別定位
模板已經建立成功,下面的步驟只需要使用Halcon的讀取模板還有滑塊與背景圖片,相關的程式碼我已經寫好了,大家只需要將圖片與模板路徑替換上去就可以正常工作識別了。
//下載地址
專案網址:https://pan.baidu.com/s/1giU8IIW0bCwlGJuMkOSZzw
* 注意事項
- disp_cross (200000, Row, Column, 18, 0) 200000為視窗控制代碼
貼上原始碼時有可能視窗控制代碼是不一樣的,填寫與影象視窗一致即可正常工作。