摘要:了別人代碼的你最近忽然對圖像識別有了興趣,作為一個前端,當然是想用來深入研究。先從簡單的入手,識別圖片驗證碼。圖片驗證碼對開發來說一點也不陌生,它是對服務器保護的一道屏障,避免了諸如暴力破解密碼之類的攻擊。
copy了別人代碼的你
最近忽然對圖像識別有了興趣,作為一個前端,當然是想用Javascript來深入研究。
先從簡單的入手,識別圖片驗證碼。圖片驗證碼對web開發來說一點也不陌生,它是對服務器保護的一道屏障,避免了諸如暴力破解密碼之類的攻擊。但是,今天就是要去突破這道屏障。
現在開源的圖像識別技術有很多,我在GitHub上找到了一個用Javascript實現的,相對受歡迎的框架Tesseract.js。
我先準備好一個簡單的驗證碼
這個是數字字母的組合,接下來我們就用tesseract.js來對這個驗證碼進行解析。
npm install --save tesseract.js
使用這個命令進行安裝,--save代表只安裝到當前項目中。
首先要在代碼中進行引入
var tesseract = require("tesseract.js");
然后使用tesseract的recognize方法對圖片進行解析。
tesseract.recognize(myImage,options) .then(function(result){ console.log(result) });
其中,myImage可以是圖片file對象,或者圖片的存放地址的字符串等,我們這里先用存放地址的字符串。
options則是對解析過程的個性化設置,可以設置語言等其他屬性,較為重要的有lang屬性,用來設置語言類型,英文為eng(默認),數字是Math.
下面我們來看一下實際的運行效果。
文件系統
app.js
使用node命令運行
可以看出,輸出的結果是LPGU,驗證碼中的字母數字組合是LP6U,略有偏差,將6解析成了G。
所以,自動識別雖好,但是準確率還是需要提高。
tesseract.js是可以通過訓練來提高準確率的,我們看一下第一次運行結束后發生了什么變化。
運行結束之后,文件系統中生成了一個eng.traineddata文件
這個文件,就是tesseract的訓練文件,下次再分析的時候,會先從這個訓練文件中尋找是否有匹配的結果。通過這種方式,形成它自己的大腦。
當然,我認為也可以手動的添加相同格式的文件進去,手動的擴充這個圖像分析系統的智能性。
recognize第一個參數所允許的類型:
因為tesseract.js既可以運行node服務器中,也可以運行再瀏覽器中,我們這里只提在服務器中所允許的類型
文件地址(string)
包含PNG或JPEG類型的Buffer對象
imageData對象
瀏覽器中引入方式
使用方式同node方法
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/83156.html
摘要:我是一個知乎輕微重度用戶,之前寫了一只爬蟲幫我爬取并分析它的數據,我感覺這個過程還是挺有意思,因為這是一個不斷給自己創造問題又去解決問題的過程。所以這只爬蟲還有登陸知乎搜索題目的功能。 我一直覺得,爬蟲是許多web開發人員難以回避的點。我們也應該或多或少的去接觸這方面,因為可以從爬蟲中學習到web開發中應當掌握的一些基本知識。而且,它還很有趣。 我是一個知乎輕微重度用戶,之前寫了一只爬...
摘要:圖片驗證碼是目前最常用的一種。神經網絡以上驗證碼識別都依賴于字符切分,切分的好壞幾乎直接決定識別的準確程度。目前驗證碼識別最先進的是谷歌在識別街景圖像中門牌號碼中使用的一套的算法。 全自動區分計算機和人類的圖靈測試(Completely Automated Public Turing test to tell Computers and Humans Apart,簡稱CAPTCHA),...
閱讀 3523·2021-11-18 10:02
閱讀 955·2021-09-04 16:48
閱讀 2042·2019-08-30 15:55
閱讀 3545·2019-08-30 15:52
閱讀 1818·2019-08-30 14:08
閱讀 3562·2019-08-30 13:19
閱讀 1145·2019-08-27 10:53
閱讀 3124·2019-08-26 12:11