999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于學習的OCR字符識別

2018-09-17 05:20:34肖堅
計算機時代 2018年7期

肖堅

摘 要: OCR(Optical CharacterRecognition)是通過檢測字符每個像素亮度的模式確定其形狀,然后用字符識別方法將形狀翻譯成計算機文字的過程。文章利用Java語言實現OCR步驟,包括像素二值化,圖像分割,訓練識別和輸出等。測試開發是在web驗證碼識別場景中進行的,web驗證碼是將一串隨機產生的符號,生成為圖片,再加上一些干擾線,使之能有效防止惡意注冊和灌水。通過測試表明,該方法可行、有效;拒識率、誤識率低;識別速度快,具有一定的實用意義。

關鍵詞: OCR; 驗證碼; 文字識別; 干擾線; 拒識率; 誤識率

中圖分類號:TP3 文獻標志碼:A 文章編號:1006-8228(2018)07-48-04

Abstract: OCR (Optical Character Recognition) is the process of translating the shape, which is determined by detecting the pattern of the brightness of each pixel of the character, into computer text by character recognition method. In this paper, OCR procedure is implemented in Java language, including pixel binarization, image segmentation, recognition training and output. The test development is carried out in the Web verification code identification scene. The Web verification code is a string of randomly generated symbols, generated as a picture, and a number of interference lines added on it, so that it can effectively prevent malicious registration and irrigation. The test shows that the method is feasible and effective, with low rejection rate and error rate, fast recognition speed, and has practical significance.

Key words: OCR; verification code; character recognition; interfering line; rejection rate; error rate

0 引言

識別原理及實現方法:OCR采用光學的方式,將紙質或圖片文檔中的文字轉換成為黑白點陣的圖像文件,并通過識別軟件將圖像中的文字轉換成文本格式,供文字處理軟件進一步編輯加工的技術。

識別過程一般分以下幾個步驟:

首先訓練學習過程,分成圖像生成,預處理,圖像分割三個步驟,圖像分割不是簡單的將圖片等份分割,常常需要程序員像素級微調,才能最終生成合適的樣本。

其次才是識別過程,識別前3個步驟和訓練學習是一致的,而且各個步驟處理的參數必須和訓練完全一樣,否則獲取的單字符圖片完全沒有可比性,識別步驟是把單字符圖片和樣本數據一一比較,獲得最為接近的作為結果。識別流程如圖1所示。

以下是各個步驟詳細內容及代碼實例。

1 圖像預處理

預處理過程就是用閾值分割法把圖片上每個像素二值化,像素紅綠藍在一定范圍內置成白色,反之黑色。這里常見的問題是背景和字符亮度接近,需要手工試探,才能找到合適的閾值。以下是java預處理函數,函數根據圖片高和寬遍歷每個像素點,通過ISWHITE函數來判斷當前像素取值。

INT WIDTH=IMG.GETWIDTH();

INT HEIGHT=IMG.GETHEIGHT();

FOR (INT X=0; X

FOR (INT Y=0; Y

IF (ISWHITE(IMG.GETRGB(X, Y))==1) {

IMG.SETRGB(X, Y, COLOR.WHITE.GETRGB());

} ELSE {

IMG.SETRGB(X, Y, COLOR.BLACK.GETRGB());

}

2 分割

最常見的驗證碼字符,一般是四位數字,為了識別字符串,需要將圖片分割成四個單字符圖片,以下方法適用于位置固定的驗證碼。SPLITIMAGE函數按照固定寬高分別生成1.JPEG,2.JPEG,3.JPEG,4.JPEG四張圖片。

PUBLIC STATIC LIST

SPLITIMAGE(BUFFEREDIMAGE IMG)

THROWS EXCEPTION {

IMAGEIO.WRITE(IMG, "JPEG", NEW FILE

(WORKPATH+"RESULT\\ALL.JPEG"));

LIST SUBIMGS=NEW

ARRAYLIST();

SUBIMGS.ADD(IMG.GETSUBIMAGE(4, 1, 15, 18));

SUBIMGS.ADD(IMG.GETSUBIMAGE(19, 1, 15, 18));

SUBIMGS.ADD(IMG.GETSUBIMAGE(34, 1, 15, 18));

SUBIMGS.ADD(IMG.GETSUBIMAGE(49, 1, 15, 18));

IMAGEIO.WRITE(IMG.GETSUBIMAGE(4, 1, 15, 18),

"JPEG",NEW FILE(WORKPATH+"RESULT\\1.JPEG"));

IMAGEIO.WRITE(IMG.GETSUBIMAGE(19,1, 15, 18),

"JPEG",NEW FILE(WORKPATH+"RESULT\\2.JPEG"));

IMAGEIO.WRITE(IMG.GETSUBIMAGE(34,1, 15, 18),

"JPEG",NEW FILE(WORKPATH+"RESULT\\3.JPEG"));

IMAGEIO.WRITE(IMG.GETSUBIMAGE(49,1, 15, 18),

"JPEG",NEW FILE(WORKPATH+"RESULT\\4.JPEG"));

RETURN SUBIMGS;

}

3 訓練

訓練是指按照步驟1,2,窮舉單字符樣式圖片,并將文件名設置成實際字符值。-1,-2,-3則是字符多種變形時不同的樣本序號。

4 識別

相對前面三個步驟,識別則相對簡單,算法只是機械地將分割圖片和樣本對象對比,獲取相似度最高的樣本圖片,該圖片的結果就是樣本的文件名(“-”前面部分)。代碼為冒泡排序算法。

PUBLIC STATIC STRING GETSINGLECHAROCR

(BUFFEREDIMAGE IMG,

MAPMAP) {

STRING RESULT="";

INT WIDTH=IMG.GETWIDTH();

INT HEIGHT=IMG.GETHEIGHT();

INT MIN=WIDTH * HEIGHT;

FOR (BUFFEREDIMAGE BI : MAP.KEYSET()) {

INT COUNT=0;

LABEL1: FOR (INT X=0; X

FOR (INT Y=0; Y

IF (ISWHITE(IMG.GETRGB(X,Y))!=ISWHITE

(BI.GETRGB(X, Y))) {

COUNT++;

IF (COUNT>=MIN)

BREAK LABEL1;

}

}

}

IF (COUNT < MIN) {

MIN=COUNT;

RESULT=MAP.GET(BI);

}

}

RETURN RESULT;

}

為了防止暴力破解,網站開發方通常會增加驗證碼復雜度,常用的方法有以下幾種:

4.1 干擾線

增加干擾線會大大增加誤識率。對不同的干擾線,也有不同的方法處理,a干擾線和字符亮度差別大。

如圖3所示,X軸代表亮度,Y軸代表像素數量,此類情況干擾線亮度較集中,可以直接根據三原色重新調整閾值,從閾值1改至閾值2,這樣背景色和干擾線設置在閾值之外,預處理之后的圖片就已經不含干擾線了。

b對于干擾線和驗證碼亮度接近,無法用閾值二值化處理的,可以用算法剔除干擾。譬如對點Color[I][J],如果Color[I+1][J],Color[I-1][J],Color[I][J+1],Color[I][J-1]都是純黑色或者純白色的,就認為Color[I][J]是干擾,將Color[I][J]置為白色。

4.2 字符變形

字符變形也是常用的防識別手段,字符變形多種多樣,有些扭曲的非常嚴重,這樣的識別還是有些難度的,而常見的變形往往是幾個固定方向的傾斜,這樣情況處理起來非常簡單,只要窮舉各個角度各個字符的樣本圖片,依然能識別成功。

4.3 位置不固定的字符

有些驗證碼并不固定的圖片的某個位置上,而是在一定區間范圍內;x,y方向隨機偏移,這種情況處理分兩種。

直接在圖片分割的時候,采用先縱后橫的算法,直接獲取單個字符圖片,其算法如下:

PUBLIC STATIC LIST

SPLITIMAGE(BUFFEREDIMAGE IMG)

THROWS EXCEPTION {

LIST SUBIMGS=NEW

ARRAYLIST();

INT WIDTH=IMG.GETWIDTH();

INT HEIGHT=IMG.GETHEIGHT();

LIST WEIGHTLIST=NEW ARRAYLIST

();

FOR (INT X=0; X

INT COUNT=0;

FOR (INT Y=0; Y

IF (ISWHITE(IMG.GETRGB(X, Y))==1) {

COUNT++;

}

}

WEIGHTLIST.ADD(COUNT);

}

FOR (INT I=0; I

INT LENGTH=0;

WHILE (WEIGHTLIST.GET(I++)>1) {

LENGTH++;

}

IF (LENGTH > 12) {

SUBIMGS.ADD(REMOVEBLANK(IMG

.GETSUBIMAGE(I-LENGTH-1, 0,

LENGTH/2, HEIGHT)));

SUBIMGS.ADD(REMOVEBLANK(IMG

.GETSUBIMAGE(I-LENGTH/2-1, 0,

LENGTH/2, HEIGHT)));

} ELSE IF (LENGTH>3) {

SUBIMGS.ADD(REMOVEBLANK(IMG

.GETSUBIMAGE(I-LENGTH-1, 0,

LENGTH, HEIGHT)));

}

}

RETURN SUBIMGS;

}

第二種方法,在識別過程中遍歷整個區間和樣本圖片比較識別。

圖4中所示案例情況:樣本為4*3像素,實際圖片范圍為7*6像素,XY坐標區間[11,21][16,28],函數方法從原點向右下角遍歷所有的4*3圖片,再與樣本作比較。函數在[13,24][15,27]處獲得比較結果字符7。

5 結束語

文章介紹OCR字符識別四個步驟的函數方法,并描述了簡單干擾下的應對措施。通過代碼測試,證實該方法穩定、有效。OCR識別一直是模式識別領域極具代表性的課題,隨著互聯網的發展,產生出許多以光學字符識別作為入口的文字信息錄入及查詢類應用。由于能力和時間所限,上述方法依然比較粗淺,研究中發現幾乎每個步驟都有大量優化算法的空間。在OCR領域,新的算法思路不斷涌現,在一個高效的OCR系統中僅僅采用一種識別方式是無法滿足現實要求的。單個識別策略的能力有限,因此采用多種策略實現優勢互補,多角度利用字符的特征信息是OCR發展的方向。在這個方向上經常采用的集成策略有投票法、概率法、Dempster-Shafer法以及行為知識空間法等多種綜合方法[4]。目前,在漢字圖像識別中拒識率、誤識率較高,是一個有待解決的問題。由于漢字是非字母化、非拼音化的文字,且漢字信息量很大,有不同的字形、字體,而且結構復雜,因此漢字識別的過程比一般英文字符識別更加復雜[5] 。

參考文獻(References):

[1] 霍強.光學字符識別技術:讓電腦像人一樣閱讀[A].China Academic Journal Electronic Publishing House [C].科學與現代化,2016.14.

[2] 楊淑瑩.圖像識別與項目實踐VC++、MATLAB技術實現[M].電子工業出版社,2014.

[3] 田媛美.基于深度學習的車牌檢測[D].西安電子科技大學碩士學位論文,2017.

[4] 荊濤,王仲.光學字符識別技術與展望[J].計算機工程,2003.29(2):2

[5] 李南.光學字符識別技術與圖書館信息資源的數字化[J].激光雜志,2012.33(5):3

主站蜘蛛池模板: 99999久久久久久亚洲| 国产麻豆精品在线观看| 亚洲码在线中文在线观看| 国产在线98福利播放视频免费| 国产激情无码一区二区APP | 国产91线观看| 色国产视频| 午夜福利网址| 亚洲精品无码人妻无码| 亚洲精品无码不卡在线播放| 专干老肥熟女视频网站| 国产成人AV男人的天堂| 日韩a在线观看免费观看| 国产精品va免费视频| 青青草久久伊人| 日本五区在线不卡精品| 亚洲日本中文综合在线| 亚洲国产天堂久久综合| 亚洲精品少妇熟女| 国产成人精品一区二区免费看京| 国产国产人在线成免费视频狼人色| 在线另类稀缺国产呦| AV在线天堂进入| 欧美特黄一免在线观看| 爱爱影院18禁免费| 欧美人在线一区二区三区| 国产高潮视频在线观看| 2048国产精品原创综合在线| 欧美日韩久久综合| 国产日本一区二区三区| 成人福利在线视频免费观看| 欧美全免费aaaaaa特黄在线| 伦伦影院精品一区| 国产二级毛片| 99久久亚洲综合精品TS| 尤物亚洲最大AV无码网站| 黄色污网站在线观看| 久久久久久久久18禁秘| 欧美日韩激情| 亚亚洲乱码一二三四区| 亚洲无码37.| 最新国产高清在线| 欧美视频在线播放观看免费福利资源| 岛国精品一区免费视频在线观看 | 亚洲综合中文字幕国产精品欧美| 亚洲日产2021三区在线| 午夜限制老子影院888| 99精品一区二区免费视频| 亚洲成A人V欧美综合天堂| 免费国产无遮挡又黄又爽| www中文字幕在线观看| 亚洲欧美不卡视频| 福利一区在线| 国产人碰人摸人爱免费视频| 亚洲 成人国产| 亚洲人成日本在线观看| 国产91在线|中文| 国产区网址| 国产丝袜丝视频在线观看| 国产一二三区在线| 日韩在线网址| 亚洲另类色| 四虎影视无码永久免费观看| 全免费a级毛片免费看不卡| 久久伊伊香蕉综合精品| 色噜噜综合网| 国产一在线观看| 日韩天堂视频| 国产成人精品综合| 99视频在线观看免费| 尤物亚洲最大AV无码网站| 国产亚洲精久久久久久久91| 欧美色亚洲| 四虎永久在线| 精品国产免费观看一区| 香蕉精品在线| 亚洲人成网站在线播放2019| 久久国产亚洲欧美日韩精品| 色亚洲成人| 成人福利在线视频| 国产视频入口| 五月婷婷丁香色|