欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種基于手寫字符識別的驗證方法及裝置與流程

文檔序號:11729740閱讀:327來源:國知局
一種基于手寫字符識別的驗證方法及裝置與流程

本發(fā)明屬于圖像識別技術領域,尤其涉及一種基于手寫字符識別的驗證方法及裝置。



背景技術:

全自動區(qū)分計算機和人類的圖靈測試(英語:completelyautomatedpublicturingtesttotellcomputersandhumansapart,簡稱captcha),俗稱驗證碼,是一種區(qū)分用戶是計算機和人的公共全自動程序。在captcha測試中,作為服務器的計算機會自動生成一個問題由用戶來解答。這個問題可以由計算機生成并評判,但是必須只有人類才能解答。由于計算機無法解答captcha的問題,所以回答出問題的用戶就可以被認為是人類。

現有驗證碼主要可以歸類為3種:文字驗證碼、圖片驗證碼、語音驗證碼?,F有驗證碼技術的驗證原理主要為:通過服務器端隨機生成一組字符串,作為待驗證信息,將上述隨機字符串通過程序處理盡可能轉化為人類能容易識別而計算機無法識別的信息(如圖片或語音)作為參考驗證碼,將參考驗證碼通過瀏覽器端展示給用戶識別,用戶識別后在瀏覽器端通過鼠標或鍵盤事件(如鼠標點擊、鍵盤輸入)用字符向服務器端提交驗證信息,服務器端通過判斷提交的驗證信息和待驗證信息是否一致來區(qū)分用戶是人或計算機,一致則判斷用戶為人,不一致則用戶為計算機。

缺點或不足之處:現有驗證碼技術中,用戶提交驗證信息的操作是通過鼠標或鍵盤事件,提交驗證信息的類型是字符;如圖1為現有的驗證碼技術原理圖?,F有驗證碼技術中,沒有讓用戶在指定區(qū)域用手寫字符驗證驗證碼的方法,該方法提交的驗證信息的類型是手寫字符的圖片?,F有驗證碼技術中,由于計算機可以輕易的模擬鍵盤和鼠標事件,同時計算機進行圖片或語音驗證碼內容提取的技術也已非常成熟,通過視覺識別算法、語音識別算法,計算機可以輕松識別提取圖片或語音參考驗證碼中包含的字符內容,并模擬用戶的鼠標點擊、鍵盤輸入等事件行為在瀏覽器端輸入識別出來的字符進行提交。因此,通過文本/圖像/語音驗證碼進行人和計算機機鑒別的方式已變得相當不可靠。

現有驗證碼技術中,主要通過讓參考驗證碼易于被人類識別而不易被機器識別的思路進行設計,主要表現為用扭曲文字、在圖片中使用雜點背景、在語音中增加背景噪音等干擾機器識別的手段增加機器識別的難度。這類方式的使用也增加了人類識別的難度,甚至人類也無法識別的情況也時有發(fā)生,降低了用戶體驗。



技術實現要素:

為了克服現有技術的不足,本發(fā)明的目的之一在于提供一種基于手寫字符識別的驗證方法,其能提高驗證識別的安全性。

本發(fā)明的目的之二在于提供一種基于手寫字符識別的驗證裝置,其能提高驗證識別的安全性。

本發(fā)明的目的之一采用以下技術方案實現:

一種基于手寫字符識別的驗證方法,包括以下步驟:

s1:通過隨機算法從備選字符庫中提取參考字符,并生成圖片作為參考驗證信息;

s2:獲取手寫區(qū)域內的手寫字符,并生成圖片作為手寫驗證信息;

s3:通過字體識別算法判斷手寫驗證信息的手寫字符與參考字符是否一致,如果是,則執(zhí)行步驟s4,如果否,則驗證失敗;

s4:對手寫驗證信息進行特征提取,得到相應的特征向量;

s5:判斷手寫驗證信息的特征向量與模板庫內的特征向量是否一致,如果是,則驗證成功,如果否,則驗證失敗。

優(yōu)選的,在步驟s5判斷為是后執(zhí)行步驟s6:判斷手寫驗證信息與已提交的手寫驗證信息的相似度是否大于預設值,如果是,則驗證失敗,如果否,則驗證成功。

優(yōu)選的,在步驟s2之后還包括步驟s21:對手寫驗證信息進行預處理。

優(yōu)選的,步驟s21具體包括以下子步驟:

s211:對手寫驗證信息進行二值化處理;

s212:通過種子連通算法對手寫驗證信息進行字符分割,得到字符信息;

s213:通過質心對齊和線性插值放大對字符信息進行歸一化處理。

優(yōu)選的,步驟s212之后包括以下步驟:

步驟s2120:判斷字符信息的字符特征是否處于預設范圍內,如果是,則執(zhí)行步驟s213,如果否,則執(zhí)行步驟s2121;

步驟s2121通過預識別判斷該字符信息是否為粘連字符,如果是,則通過垂直投影圖中找谷點的方法對其進行分割,如果否,則執(zhí)行步驟s213。

優(yōu)選的,步驟s4具體包括以下子步驟:

s41:對字符信息進行圖像分割,將其分割為預設數量的方格區(qū)域;

s42:計算每個方格中的區(qū)域密度,該區(qū)域密度=每個方格內的點數與字符信息總點數之比。

優(yōu)選的,所述預設數量的方格區(qū)域為5*5的方格區(qū)域。

本發(fā)明的目的之二采用以下技術方案實現:

一種基于手寫字符識別的驗證裝置,包括以下模塊:

驗證信息生成模塊:用于通過隨機算法從備選字符庫中提取參考字符,并生成圖片作為參考驗證信息;

手寫信息獲取模塊:用于獲取手寫區(qū)域內的手寫字符,并生成圖片作為手寫驗證信息;

字符識別模塊:用于通過字體識別算法判斷手寫驗證信息的手寫字符與參考驗證信息的參考字符是否一致,如果是,則執(zhí)行特征提取模塊,如果否,則驗證失?。?/p>

特征提取模塊:用于對手寫驗證信息進行特征提取,得到相應的特征向量;

特征比對模塊:用于判斷手寫驗證信息的特征向量與模板庫內的特征向量是否一致,如果否,則驗證失敗。

優(yōu)選的,在特征比對模塊判斷為是后執(zhí)行相似度判斷模塊:用于判斷手寫驗證信息與已提交的手寫驗證信息的相似度是否大于預設值,如果是,則驗證失敗,如果否,則驗證成功。

優(yōu)選的,在手寫信息獲取模塊之后還包括預處理模塊:用于對手寫驗證信息進行預處理。

優(yōu)選的,所述預處理模塊具體包括以下子模塊:

二值化模塊:用于對手寫驗證信息進行二值化處理;

字符分割模塊:用于通過種子連通算法對手寫驗證信息進行字符分割,得到字符信息;

歸一化模塊:用于通過質心對齊和線性插值放大對字符信息進行歸一化處理。

優(yōu)選的,所述字符分割模塊之后還包括以下模塊:

字符特征判斷模塊:用于判斷字符信息的字符特征是否處于預設范圍內,如果是,則執(zhí)行歸一化模塊,如果否,則執(zhí)行粘連字符分割模塊;

粘連字符分割模塊:用于通過預識別判斷該字符信息是否為粘連字符,如果是,則通過垂直投影圖中找谷點的方法對其進行分割,如果否,則執(zhí)行歸一化模塊。

相比現有技術,本發(fā)明的有益效果在于:

本發(fā)明通過讓用戶在指定區(qū)域手寫文字字符的方法來區(qū)分人類和計算機,從而有效防止驗證碼被惡意程序破解所產生的影響;提高了用戶使用互聯網的安全性。

附圖說明

圖1為現有的驗證碼技術原理圖;

圖2為本發(fā)明的一種基于手寫字符識別的驗證方法的流程圖;

圖3為本發(fā)明的一種基于手寫字符識別的驗證裝置的結構圖。

具體實施方式

下面,結合附圖以及具體實施方式,對本發(fā)明做進一步描述:

如圖2所示,本發(fā)明提供了一種基于手寫字符識別的驗證方法,包括以下步驟:

在進行驗證之前需要首先建立訓練識別模板,以進行后續(xù)的識別判斷;通過對于學習驗證進行預處理、特征提取、識別訓練,從而建立識別模型。訓練:從訓練集驗證碼中提取出標準模板,即標準特征庫(模板庫)的過程,每個手寫字符都有幾百個標準模板,通過預處理和特征提取后,將訓練集手寫圖片的特征向量存入文件中,訓練時,需要指明各手寫圖片的正確值,為了不出現錯誤的標準模板,對于分割時發(fā)現有字符粘連的訓練集手寫圖片不加入模板庫。

s1:通過隨機算法從備選字符庫中提取參考字符,并生成圖片作為參考驗證信息;服務器隨機生成一組字符串,并保存起來作為待驗證信息,將上述字符串生成參考驗證碼并在顯示端展示給用戶,使用戶進行識別;

s2:獲取手寫區(qū)域內的手寫字符,并生成圖片作為手寫驗證信息;當獲取到用戶提交的在指定區(qū)域手寫字符的驗證信息后,系統對手寫圖片驗證信息進行特征提取;

s21:對手寫驗證信息進行預處理;步驟s21具體包括以下子步驟:預處理主要包括解碼、二值化、去除噪聲和干擾、字符分割、歸一化等步驟;預處理的好壞極大地影響到服務器對圖片的處理識別性能,其中去除干擾和字符分割尤為重要;預處理包括很多步驟,本發(fā)明使用了解碼、二值化、去除噪聲和干擾、字符分割、歸一化幾個主要步驟,還可以增加平滑處理等步驟,也可以組合或單獨使用其中幾個或一個步驟;

s211:對手寫驗證信息進行二值化處理;將圖片的灰度值,以某一閾值為限,轉換為0或255,即是黑和白,以便于進行處理,二值化閾值根據具體圖片分析所得,選擇合理的閾值可消除很多背景、噪聲,同時不損傷字符筆畫;去除干擾點,二值化后大部分噪聲都已經去除,但是還有很多干擾點,通過去除干擾點和噪聲可以去除高度為1和2像素的干擾點,除去這些干擾點便于后續(xù)的處理更好的進行;

s212:通過種子連通算法對手寫驗證信息進行字符分割,得到字符信息;步驟s212之后包括以下步驟:

步驟s2120:判斷字符信息的字符特征是否處于預設范圍內,如果是,則執(zhí)行步驟s213,如果否,則執(zhí)行步驟s2121;其中字符特征主要為字符的點數和寬高比特征等;

步驟s2121:通過預識別判斷該字符信息是否為粘連字符,如果是,則通過垂直投影圖中找谷點的方法對其進行分割,如果否,則執(zhí)行步驟s213;本步驟即是將手寫圖片信息分割成單個的字符,本發(fā)明先利用種子填充算法得到幾個連通線,這樣未粘連的字符即可分割,對于粘連字符,還需要進一步分割,粘連字符的判別主要依據字符的點數和寬高比特征,當大于某一閾值的時候初步判斷為字符咋練,該閾值根據圖片特征統計分析所得,對于初步判斷為粘連的字符,為了防止判斷錯誤,還用預識別的方法進行進一步判斷,對于粘連字符的分割,本發(fā)明采用的是在垂直投影中找谷點的方法;

s213:通過質心對齊和線性插值放大對字符信息進行歸一化處理;為了解決圖片字符存在位置偏移、大小不一、旋轉不定的問題,通過質心對齊和線性插值放大對字符信息進行歸一化處理使得字符變?yōu)榻y一的規(guī)則,以便于進行匹配;

s3:通過字體識別算法判斷手寫驗證信息的手寫字符與參考驗證信息的參考字符是否一致,如果是,則執(zhí)行步驟s4,如果否,則驗證失?。蛔煮w識別算法為現有的常規(guī)技術手段,可以明確的識別出手寫字符與參考字符是否一致,如果不一致,則驗證失??;

s4:對手寫驗證信息進行特征提取,得到相應的特征向量;步驟s4具體包括以下子步驟:

s41:對字符信息進行圖像分割,將其分割為預設數量的方格區(qū)域;所述預設數量的方格區(qū)域為5*5的方格區(qū)域;

s42:計算每個方格中的區(qū)域密度,該區(qū)域密度=每個方格內的點數與字符信息總點數之比;從經過預處理的字符圖片中,提取處一定維數的特征向量,從而提高字符匹配和識別的存儲量和運算速度,字符有很多特征,選用合適的特征才能達到正確識別的目的,本發(fā)明采用字符的區(qū)域密度的特征,即將字符分成5*5的25個方格區(qū)域,計算每個方格中的點數與字符總點數之比,以得到25維特征向量,該特征反映了字符筆畫的空間分布情況,并且對字符筆畫的粗細不敏感;由于反應的是空間字符筆畫的分布,故而再進行訓練以及識別的時候并不是對字與字之間的識別判斷,而是通過不斷的分析該字的筆畫特征,然后對其進行分析,從而為是否是人機提供相應的判斷條件;

在特征提取環(huán)節(jié),本發(fā)明采用了提取字符的區(qū)域密度的特征,也可以通過提取其他特征來替代,如平滑特征等;還可以在手寫字符過程加入其他特征判斷進行是否手寫的識別,如在指定區(qū)域中增加獲取手寫筆順的特征、壓感的特征等來進行輔助判斷。

s5:判斷手寫驗證信息的特征向量與模板庫的手寫特征向量是否一致,如果否,則驗證失??;

手寫字體的識別,采用使用softmax回歸模型進行識別,softmax模型可以用來給不同的對象分配概率,softmax回歸主要分為兩步:

第一步,為了得到一張給定圖片屬于某個特定文字類的證據,我們對圖片像素值進行加權求和,如果這個像素具有很強的證據說明這張圖片不屬于該類,那么相應的權值為負數,相反如果這個像素擁有有利的證據支持這張圖片屬于這個類,那么權值為正數,此外我們還加入一個額外的偏置量,以排出輸入帶來的一些無關干擾量,因此,

其中wi,j代表權重,xj代表特征向量,在本發(fā)明中也即是區(qū)域密度,bi代表第i類的偏置量,j代表給定圖片x的像素索引用于像素求和,然后用softmax函數將這些證據轉換為概率y:y=softmax(evidence);其中的wi,j和偏置量bi是通過訓練的時候得到的數值,在進行識別的時候,計算機只用識別xj這個量即可得到相應的evidencei,從而得到相應的概率y;

這里的softmax是一個激勵函數,把我們定義的線性函數的輸出轉換成我們想要的格式,也就是關于文字類的概率分布,因此,第二步,給定一張圖片,它對于每一個訓練標準模板的吻合度可以被softmax函數轉換成一個概率值,softmax函數可以定義為softmax(x)=normalize(exp(x);

展開等式右邊的子式,得到

待識別字符屬于哪個標準模板的概率最大,就表示和那個模板最匹配,即判別為哪個字符。如果是,則執(zhí)行s6,如果否,則驗證失敗;

s6:判斷手寫驗證信息與已提交的手寫驗證信息的相似度是否大于預設值,如果是,則驗證失敗,如果否,則驗證成功。該預設值為100%;已提交的手寫驗證信息是在本次手寫驗證信息之前提交至電腦端的驗證信息;與已提交的手寫驗證信息比較相似度是否為100%的判斷原理為:因為人類手寫輸入每次都不同,所有提交的手寫驗證信息不會100%相似。

本發(fā)明的步驟可以只判斷手寫字符與參考驗證信息的一致性,省略與已有手寫圖片比較相似度是否100%步驟,該步驟用于判斷手寫圖片的唯一性,從而防止同一手寫圖片被計算機反復提交用于替代人類手寫圖片來驗證參考信息一致性。

當接收到用戶進行關鍵操作的指令時,系統需要判斷確定該操作是人或機器發(fā)起的,即進入人機驗證,服務器經過預處理、特征判斷、訓練、降噪、過濾切割等步驟,來判斷提交的手寫驗證字符是來自真實用戶還是由計算機生成。

本發(fā)明通過服務器端驗證手寫字符圖片的方法來判斷真實用戶的有效性,避免了使用干擾機器辨識參考驗證信息、提高機器辨識難度的思路進行驗證設計,故在為用戶提供參考驗證信息的環(huán)節(jié)無需過多增加復雜干擾機器識別的技術手段(扭曲文字、在圖片中使用雜點背景、在語音中增加背景噪音)來干擾機器識別,避免了該處理方式導致參考驗證信息難以被人識別,從而提高了用戶體驗。

本發(fā)明使用機器學習算法,對大量手寫中、英文漢字、字母、數字樣本進行識別訓練,建立了識別系統,通過特性判斷實現了快速識別出手寫字符圖片是來自真實用戶還是由機器生成。

如圖3所示,本發(fā)明提供了一種基于手寫字符識別的驗證裝置,包括以下模塊:

驗證信息生成模塊:用于通過隨機算法從備選字符庫中提取參考字符,并生成圖片作為參考驗證信息;

手寫信息獲取模塊:用于獲取手寫區(qū)域內的手寫字符,并生成圖片作為手寫驗證信息;

字符識別模塊:用于通過字體識別算法判斷手寫驗證信息的手寫字符與參考驗證信息的參考字符是否一致,如果是,則執(zhí)行特征提取模塊,如果否,則驗證失?。?/p>

預處理模塊:用于對手寫驗證信息進行預處理;所述預處理模塊具體包括以下子模塊;

二值化模塊:用于對手寫驗證信息進行二值化處理;

字符分割模塊:用于通過種子連通算法對手寫驗證信息進行字符分割,得到字符信息;所述字符分割模塊之后還包括以下模塊;

字符特征判斷模塊:用于判斷字符信息的字符特征是否處于預設范圍內,如果是,則執(zhí)行歸一化模塊,如果否,則執(zhí)行粘連字符分割模塊;

粘連字符分割模塊:通過預識別判斷該字符信息是否為粘連字符,如果是,則通過垂直投影圖中找谷點的方法對其進行分割,如果否,則執(zhí)行歸一化模塊;

歸一化模塊:用于通過質心對齊和線性插值放大對字符信息進行歸一化處理;

特征提取模塊:用于對手寫驗證信息進行特征提取,得到相應的特征向量;

特征比對模塊:用于判斷手寫驗證信息的特征向量與模板庫內的特征向量是否一致,如果是,則執(zhí)行相似度判斷模塊,如果否,則驗證失?。?/p>

相似度判斷模塊:用于判斷手寫驗證信息與已提交的手寫驗證信息的相似度是否大于預設值,如果是,則驗證失敗,如果否,則驗證成功。

對本領域的技術人員來說,可根據以上描述的技術方案以及構思,做出其它各種相應的改變以及形變,而所有的這些改變以及形變都應該屬于本發(fā)明權利要求的保護范圍之內。

當前第1頁1 2 
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
宾川县| 大荔县| 普兰店市| 金堂县| 绥宁县| 彰化市| 林州市| 亚东县| 嵊州市| 蒲城县| 图木舒克市| 桃江县| 叙永县| 吉安市| 阜城县| 扎囊县| 嵩明县| 荥阳市| 清涧县| 阿克苏市| 玉林市| 海阳市| 杂多县| 恩施市| 鄂伦春自治旗| 二手房| 大丰市| 浮山县| 准格尔旗| 莱州市| 金沙县| 左权县| 始兴县| 昭平县| 盐池县| 石林| 台北市| 新巴尔虎右旗| 漳平市| 和龙市| 梁平县|