亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于MSER和Tesseract的自然場(chǎng)景圖像文字識(shí)別

        2017-12-13 17:01:01蔣弘毅朱麗平歐樟鵬
        電腦知識(shí)與技術(shù) 2017年33期

        蔣弘毅 朱麗平 歐樟鵬

        摘要:針對(duì)傳統(tǒng)OCR技術(shù)對(duì)自然場(chǎng)景下的圖像文本識(shí)別率低的問題,設(shè)計(jì)和實(shí)現(xiàn)了自然場(chǎng)景的圖像文字自動(dòng)識(shí)別系統(tǒng)。該系統(tǒng)主要采用了改進(jìn)的MSER場(chǎng)景文本定位算法,利用Tesseract對(duì)圖像文字樣本進(jìn)行訓(xùn)練,然后進(jìn)行場(chǎng)景圖像文字識(shí)別,并在MFC環(huán)境下實(shí)現(xiàn)。實(shí)驗(yàn)結(jié)果表明,訓(xùn)練后的Tesseract庫(kù)對(duì)場(chǎng)景圖像文字識(shí)別有顯著提升。

        關(guān)鍵詞:場(chǎng)景圖像; 二值化; MSER; Tesseract; 文字識(shí)別

        中圖分類號(hào):TP391 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2017)33-0213-04

        Abstract: Aiming at the problem that the traditional OCR technology has low text recognition rate of natural scene image, the automatic text recognition system of natural scene image is designed and realized. The system mainly uses the improved MSER scene text localization algorithm, using Tesseract to train the image text samples, and then recognize the text of scene image, and realize the function in the MFC environment. The experimental results show that the trained Tesseract library has a significant improvement for the text recognition of natural scene image.

        Key words: Scene image; binaryzation; MSER; Tesseract; text recognition

        1 概述

        自然場(chǎng)景中的文字往往攜帶有非常重要的信息,它能夠被用來描述該圖像的內(nèi)容。很多由攝像設(shè)備拍攝的圖片中,都存在或多或少的文字,比如車牌號(hào)碼、商標(biāo)文字、發(fā)票文字及數(shù)字等。通過識(shí)別圖片中的文字,可以進(jìn)一步理解圖像的內(nèi)容。傳統(tǒng)的OCR(Optical Character Recognition,光學(xué)字符識(shí)別)技術(shù)對(duì)標(biāo)準(zhǔn)的印刷體文字識(shí)別率高,但對(duì)于背景受污染、非標(biāo)準(zhǔn)字體文字,識(shí)別率將極速下降[1]。

        然而自然場(chǎng)景下的文字具有背景復(fù)雜、字體多樣、噪聲嚴(yán)重等特點(diǎn),從而大大增加了文字識(shí)別的困難。馮永康等[2]提出了一種利用大漠插件結(jié)合小規(guī)模自建字庫(kù)對(duì)非標(biāo)準(zhǔn)字體圖像文字進(jìn)行自動(dòng)模糊識(shí)別方法,但需建立字庫(kù)且耗時(shí)。陳梓洋等[3]利用分水嶺算法對(duì)原圖像進(jìn)行預(yù)處理,再對(duì)預(yù)處理后的圖像進(jìn)行特征提取、劃分區(qū)域,最后利用ISODATA算法進(jìn)行二次處理,但識(shí)別結(jié)果不太理想。李月潔[4]提出一種深度學(xué)習(xí)的自然場(chǎng)景中特定文字圖像優(yōu)化識(shí)別方法。融合自然場(chǎng)景圖像的紋理特征與邊緣信息特征來獲得文本圖像候選區(qū),利用深度學(xué)習(xí)來表述自然場(chǎng)景圖像中底層語義識(shí)別特征與高層語義識(shí)別之間的關(guān)系,提取不同自然場(chǎng)景下的語義特征,并對(duì)不同特征進(jìn)行分類,利用其分類的結(jié)果組建基于深度學(xué)習(xí)的文字圖像優(yōu)化識(shí)別模型,從而完成特定文字圖像優(yōu)化識(shí)別。胡文等[5]利用OpenCV在Android手機(jī)上設(shè)計(jì)了快遞單文字識(shí)別系統(tǒng),但系統(tǒng)僅給出了對(duì)數(shù)字的識(shí)別。

        在對(duì)自然場(chǎng)景圖像中的文字進(jìn)行識(shí)別時(shí),文字定位和文字識(shí)別算法是場(chǎng)景文字識(shí)別系統(tǒng)中的關(guān)鍵。文字定位方法目前比較成熟的有筆畫寬度變換(Stroke Width Transform, SWT[6])和最大穩(wěn)定極值區(qū)域(Maximally Stable Extremal Regions, MSER[7])。Tesseract OCR是一種字符圖像識(shí)別引擎,最新版本為Tesseract 4.0[8],支持中文識(shí)別。但未經(jīng)訓(xùn)練的Tesseract識(shí)別率不高,需要進(jìn)行專門訓(xùn)練。

        針對(duì)傳統(tǒng)OCR技術(shù)對(duì)自然場(chǎng)景下的文本識(shí)別率低的問題,設(shè)計(jì)和實(shí)現(xiàn)了自然場(chǎng)景的圖像文字自動(dòng)識(shí)別系統(tǒng)。本系統(tǒng)首先將本地圖片讀取,對(duì)圖片進(jìn)行灰度化、二值化、去噪等預(yù)處理后,采用了基于OpenCV[9]的MSER文本定位算法進(jìn)行文字定位和利用Tesseract引擎進(jìn)行文字識(shí)別,并在MFC環(huán)境下實(shí)現(xiàn)。

        2 系統(tǒng)結(jié)構(gòu)

        基于自然場(chǎng)景圖像文字識(shí)別系統(tǒng)主要分為4個(gè)模塊:獲取文字圖像模塊、圖像預(yù)處理模塊、文字識(shí)別模塊及保存識(shí)別結(jié)果模塊。整個(gè)系統(tǒng)結(jié)構(gòu)如圖1所示,各個(gè)模塊的主要功能如下。

        獲取文字圖像模塊:該模塊的功能主要是從本地或特定設(shè)備獲取文字圖像,并將圖像進(jìn)行顯示。

        圖像預(yù)處理模塊:該模塊的功能主要是將獲取的文字圖像經(jīng)過一系列縮放、灰度化、去噪、二值化等圖像預(yù)處理,然后進(jìn)行文字定位??捎捎脩暨x擇是否進(jìn)行去噪和文字定位處理。使得從圖像中提取的文字區(qū)域較為清晰且背景較為干凈。

        文字識(shí)別模塊:用戶可以選擇需要識(shí)別的語種,確認(rèn)后調(diào)用Tesseract引擎對(duì)圖像預(yù)處理模塊處理后的文字圖像進(jìn)行識(shí)別,并將識(shí)別結(jié)果顯示在主頁面的文本框中。

        保存識(shí)別結(jié)果模塊:用戶可以按照自己的需求將識(shí)別的結(jié)果保存為txt或者doc文檔,便于后續(xù)處理。

        3 文字圖像預(yù)處理

        利用圖像采集系統(tǒng)獲取的自然場(chǎng)景文字圖像為原始圖像,需要進(jìn)行一系列的預(yù)處理,主要有灰度化、去噪、二值化等操作,目的是盡量減少圖像背景對(duì)文字區(qū)域的干擾。預(yù)處理的效果直接與后續(xù)的識(shí)別效果密切相關(guān)。

        3.1 圖像灰度化

        自然場(chǎng)景下采集的文字圖像通常為彩色,需要轉(zhuǎn)換為灰度圖像。采用加權(quán)平均法對(duì)圖像進(jìn)行灰度化處理。將彩色圖像中的三個(gè)分量:紅(R)、綠(G)、藍(lán)(B)從人體生理學(xué)角度以不同的權(quán)值進(jìn)行加權(quán)平均。在紅綠藍(lán)三色中,人眼對(duì)綠色的敏感最高,對(duì)藍(lán)色敏感最低。當(dāng)[Kr=0.30],[Kg=0.59],[Kb=0.11]時(shí),得到的灰度圖像比較合理。因此,按照式(1)對(duì)RGB三分量進(jìn)行加權(quán)平均能得到較合理的灰度圖像,更加接近于實(shí)景。

        [f(i,j)=0.30R(i,j)+0.59G(i.j)+0.11B(i,j)] (1)

        其中,[f(i,j)]表示灰度圖像,[(i,j)]表示位于圖像第[i]行和第[j]列的像素。

        3.2 圖像去噪

        獲得的灰度文字圖像通常帶有噪聲,需要進(jìn)行去噪處理。采用常用的中值濾波方法[10]實(shí)現(xiàn)。中值濾波是基于排序統(tǒng)計(jì)理論的一種能有效抑制噪聲的非線性信號(hào)處理技術(shù),在一定條件下可以克服線性濾波帶來的圖像細(xì)節(jié)的模糊問題,特別是針對(duì)被椒鹽噪聲污染的圖像。

        3.3 圖像二值化

        圖像二值化總體上分為全局二值化和局部二值化。二者的區(qū)別主要為:全局二值化將整幅圖像的灰度值作為參考,計(jì)算出一個(gè)單一的閾值[T]進(jìn)行二值化。它將圖像每個(gè)像素的灰度值與閾值[T]進(jìn)行比較,若大于[T],則將該點(diǎn)像素值賦值為白色。否則,賦值為黑色。利用這種方法,圖像二值化的速度較快,當(dāng)圖像中文字與背景的灰度值差異較大且整張圖像灰度值變化較小時(shí),該方法可以達(dá)到良好的效果。而局部二值化則將像素點(diǎn)鄰域的灰度值信息作為參考來計(jì)算圖像中每一個(gè)像素點(diǎn)的閾值。該方法雖然會(huì)降低二值化的速度,但在背景較為復(fù)雜或整張圖片灰度值變化較大的情況下,較全局閾值法可以獲得更好的處理效果。

        由于自然場(chǎng)景下圖像文字背景較為復(fù)雜,不可能直接用一個(gè)閾值來處理整張圖片的二值化,本文采用的是局部二值化算法中的Wellner二值化算法[11],其原理如下。

        按行掃描圖像,用[P(i,j)]表示第[i]行第[j]列像素點(diǎn)的值,用[G(i,j)]表示第[i]行,第[j]個(gè)像素點(diǎn)以及前[S]個(gè)像素點(diǎn)灰度值之和,則計(jì)算公式如下

        [G(i,j)=k=0s-1P(i,j-k)][G(i,j)] (2)

        二值化時(shí),利用以下公式判斷該像素點(diǎn)值為0還是1。

        [1,if(Pi,j

        簡(jiǎn)單來說,如果該點(diǎn)的像素值小于[(G(i,j)S)(100-t100)][Gsi,jS*(100-t100)],則將該像素點(diǎn)賦值為1(黑色),否則,賦值為0(白色)。根據(jù)多次實(shí)驗(yàn)的結(jié)果,這里[S]和[t]的最佳取值分別為[S=width/8],[t=15]。

        當(dāng)計(jì)算[G(i,j)]時(shí),采用的是前[S]個(gè)點(diǎn)像素值和的平均值來計(jì)算閾值,即前[S]個(gè)像素點(diǎn)所占的權(quán)重是一樣的,但是在實(shí)際的圖像中,離[j]越近的像素點(diǎn)對(duì)其影響越大。對(duì)計(jì)算[G(i,j)]的算法進(jìn)行改進(jìn):

        [G(i,j)=P(i,j)+(1-1s)P(i,j-1)+(1-1s)2G(i,j-2)+…+(1-1s)s-1G(i,j-S-1)] (4)

        某點(diǎn)像素值通過二值化為0或1,只與其所在行的前[S]個(gè)像素值有關(guān)。將公式進(jìn)一步改進(jìn),將上一行第[j]列的前[S]個(gè)像素值也作為[G(i,j)]的計(jì)算要素,于是[G(i,j)]變?yōu)橄率剑?/p>

        [G(i,j)=12G(i,j)+12G(i-1,j)] (5)

        第一行的[G(i,j)]值,初始化為[127S]。

        獲取的文字圖像經(jīng)過圖像預(yù)處理后,得到其二值圖像,如圖2所示。

        4 圖像文字識(shí)別

        圖像文字識(shí)別過程主要分為文本的定位與識(shí)別。為了準(zhǔn)確識(shí)別文字,必須進(jìn)行文本定位。

        4.1 基于改進(jìn)的MSER場(chǎng)景文本定位

        MSER算法最早是由Matas等在研究魯棒性的寬基線立體重建時(shí)提出的,該算法借鑒了分水嶺算法的思想,具有良好的穩(wěn)定性、抗噪性、仿射不變和計(jì)算簡(jiǎn)單高效等特點(diǎn)。最初的MSER算法運(yùn)行速度較慢,Nister等[12]對(duì)該算法進(jìn)行優(yōu)化,大大提高了運(yùn)行速度。借助于OpenCV庫(kù),利用MSER算法,實(shí)現(xiàn)定位操作。改進(jìn)的MSER算法的判別算子為:

        [q(i)=Qi-Qi-ΔQi-Δ] (6)

        然而,通過這種方式檢測(cè)得到的MSER內(nèi)部灰度值是小于邊界的,比如一個(gè)黑色背景中的白色區(qū)域,其中的白色區(qū)域是無法被檢測(cè)到的。因此對(duì)原圖進(jìn)行一次MSER檢測(cè)后,需要將圖像的顏色進(jìn)行反轉(zhuǎn),再做一次MSER檢測(cè),兩次操作分別稱為MSER+和MSER-。場(chǎng)景圖像中的文本定位效果如圖3所示。

        4.2 基于Tesseract的文字識(shí)別

        由于字體、大小、形狀等多方面客觀因素的影響,導(dǎo)致很多時(shí)候直接使用Tesseract識(shí)別效果很差,識(shí)別率低,對(duì)于一些不夠清晰或者不同的字體,識(shí)別率極低。為了提高識(shí)別率,需要訓(xùn)練字庫(kù),訓(xùn)練過程如下。

        (1) 將采集的若干張圖片放在一個(gè)目錄下,合成一個(gè)訓(xùn)練圖片tiff;

        (2) 利用第一步生成的訓(xùn)練圖片生成相應(yīng)的Box文件;

        (3) 提取字符特征,生成字符特征文件;

        (4) 利用TessBoxEditor手動(dòng)對(duì)每張圖片中識(shí)別錯(cuò)誤的字符進(jìn)行校正并保存;

        (5) 生成字庫(kù)文件,并在樣本圖片所在目錄下創(chuàng)建一個(gè)批處理文件;

        (6) 合并多個(gè)訓(xùn)練文件后的字庫(kù)文件。

        通過對(duì)Tesseract的訓(xùn)練,可以大大提高識(shí)別的精度,同時(shí)使得文字識(shí)別將不再局限于標(biāo)準(zhǔn)字體,甚至能夠支持較為規(guī)范的手寫字體。

        Tesseract引擎封裝了多個(gè)API函數(shù),包括設(shè)置文本識(shí)別字庫(kù)、文本識(shí)別圖像、獲取識(shí)別后的文本,通過調(diào)用這些API函數(shù),可以方便地識(shí)別圖像中的文字,核心代碼如下。

        Tesseract::TessBaseAPI tess;

        tess.Init(NULL, chice, Tesseract::OEM_DEFAULT);

        //初始化Tesseract對(duì)象,其中chice為識(shí)別使用的字庫(kù)

        tess.SetImage((uchar*)im.data, im.cols, im.rows, 1, im.cols);

        //設(shè)置被識(shí)別的圖片

        out = tess.GetUTF8Text();

        //獲取識(shí)別后的以UTF-8編碼的文本

        CEdit* pBoxOne;

        pBoxOne = (CEdit*)GetDlgItem(IDC_EDIT1);

        CString str1 = UTF82WCS(out);

        //將TCHAR數(shù)組轉(zhuǎn)換為CString

        //刪除緩沖區(qū)

        for (int i = 0; i < str1.GetLength(); ++i)

        {if (i % 55 == 0 && i != 0)

        str += "\r\n";

        str += str1[i];}

        pBoxOne→SetWindowTextW(str);//獲取識(shí)別結(jié)果并顯示在文本框中

        在實(shí)驗(yàn)中,只需要引入頭文件和dll文件,并把字庫(kù)文件與工程文件放在一起,便可調(diào)用Tesseract中的函數(shù)進(jìn)行文字識(shí)別。利用訓(xùn)練后的Tesseract引擎識(shí)別后結(jié)果與未訓(xùn)練識(shí)別的結(jié)果如圖4所示。

        (a) 文字圖像

        (b) 未訓(xùn)練識(shí)別結(jié)果

        (c) 訓(xùn)練后識(shí)別結(jié)果

        圖4 圖像文字識(shí)別

        通過比較圖4(b)和(c),Tesseract經(jīng)過訓(xùn)練后大大增加了識(shí)別的精度,并且可以識(shí)別不同的字體。為了驗(yàn)證算法的可靠性,對(duì)其他獲取的自然場(chǎng)景文字圖像進(jìn)行識(shí)別,識(shí)別結(jié)果如圖5所示。

        (a) (b) (c)

        (a1) (b1) (c1)

        (d) (e) (f)

        (d1) (e1) (f1)

        圖5(a)-(f)為獲取的自然場(chǎng)景中的文字圖像,來源于不同的場(chǎng)景,圖5(a1)-(f1)為對(duì)應(yīng)原圖像中的文字識(shí)別結(jié)果。其中,圖5(a1)-(e1)均準(zhǔn)確的識(shí)別出了圖像中的文字,沒有錯(cuò)誤,因?yàn)槲淖直尘跋鄬?duì)干凈。圖5(f1)識(shí)別出現(xiàn)錯(cuò)誤,原因是“軟件”二字背景顏色較為復(fù)雜,文本定位后未能完全清除背景對(duì)文字的干擾,難以完全分離文本和背景,造成識(shí)別失敗。

        5 結(jié)論

        自然場(chǎng)景下的圖像文字自動(dòng)識(shí)別應(yīng)用領(lǐng)域廣泛,本文設(shè)計(jì)并實(shí)現(xiàn)了該系統(tǒng)。該系統(tǒng)一定程度上改善了傳統(tǒng)文字識(shí)別技術(shù)在自然場(chǎng)景下識(shí)別率低的缺陷。系統(tǒng)通過讀取文字圖像,經(jīng)過一系列灰度化、去噪、二值化等預(yù)處理,然后進(jìn)行文本定位,將自然場(chǎng)景下圖像中的文字較為干凈地提取出來,通過訓(xùn)練過的Tesseract引擎將圖像中的文字識(shí)別出來。但是本系統(tǒng)仍有一定的缺陷,對(duì)于背景較為復(fù)雜的自然場(chǎng)景圖片,本系統(tǒng)難以將其中的文字精確的定位出來。即使準(zhǔn)確定位,也難以將文本與背景分離,導(dǎo)致后面利用Tesseract引擎識(shí)別時(shí)識(shí)別率降低。同時(shí),由于樣本較少,導(dǎo)致Tesseract目前只能識(shí)別較為常規(guī)的字體,對(duì)于一些不常用的字體,也會(huì)降低識(shí)別率。針對(duì)以上兩個(gè)問題,我們將在后續(xù)的研究中加大訓(xùn)練樣本,改進(jìn)識(shí)別算法以提高識(shí)別率。

        參考文獻(xiàn):

        [1] Ali H, Y. Ali Y ,Hossain E, et al. Character recognition using wavelet compression [C]. Proc. of 13th international conference on computer & information technology. Dhaka: IEEE, 2010: 452-457.

        [2] 馮永康, 王艷紅, 章立. 一種自動(dòng)模糊識(shí)別文字圖像的實(shí)現(xiàn)方法[J]. 電腦編程技巧與維護(hù), 2015(15):82, 89.

        [3] 陳梓洋, 王宇飛, 錢侃, 等. 自然場(chǎng)景下基于區(qū)域檢測(cè)的文字識(shí)別算法 [J]. 計(jì)算機(jī)技術(shù)與發(fā)展, 2015, 25(7):230-233.

        [4] 李月潔. 自然場(chǎng)景中特定文字圖像優(yōu)化識(shí)別研究與仿真[J]. 計(jì)算機(jī)仿真, 2016, 33(11):357-360.

        [5] 胡文, 馬玲玉. 基于OpenCV 手機(jī)拍照快遞單文字識(shí)別的研究[J]. 哈爾濱商業(yè)大學(xué)學(xué)報(bào):自然科學(xué)版, 2015, 31(5):564-568.

        [6] B. Epshtein, E. Ofek, Y. Wexler. Detecting Text in Natural Scenes with Stroke Width Transform[C]. IEEE International Conference on Computer Vision and Pattern Recognition. CVPR, 2010: 2963-2970.

        [7] J. Matas, O. Chum, M. Urban, et al. Robust wide-baseline stereo from maximally stable extremal regions [J]. Image & Vision Computing, 2004, 22(10):761-767.

        [8] Tesseract 4.0 [EB/OL]. https://github.com/Tesseract-ocr/Tesseract/wiki/TrainingTesseract-4.00, 2017.1.

        [9] OpenCV 3.2 [EB/OL]. https://github.com/opencv/opencv/releases/tag/3.2.0, 2016.12.23.

        [10] 毛云星, 冷雪飛. OpenCV 3編程入門[M]. 北京: 電子工業(yè)出版社, 2015.

        [11] P. D. Wellner. Adaptive thresholding for the digital desk [M]. Technical Report EPC-93-110, Rank Xerox EuroPARC, 1993.

        [12] D. Nistér, H. Stewénius. Linear time maximally stable extremal regions [C]. Computer Vision, ECCV 2008. LNCS 5303, 2008: 183-196.

        亚洲欧洲一区二区三区波多野| 无码人妻人妻经典| a级毛片内射免费视频| 天天狠天天透天干天天| 国内精品嫩模av私拍在线观看| 国产自拍精品视频免费| 大肉大捧一进一出视频| 婷婷丁香91| 都市激情亚洲综合一区| 日本熟女中文字幕在线| 久久精品噜噜噜成人| 国产成人77亚洲精品www| 精品人妻一区二区三区av | 中文字幕有码人妻在线| 国产成人精品久久综合| 亞洲綜合無碼av一區二區| 亚洲av色在线观看网站| 97精品一区二区三区| 乌克兰少妇xxxx做受野外| 免费无码中文字幕A级毛片| 女人天堂av免费在线| 国产av无码专区亚洲版综合| 亚洲 暴爽 av人人爽日日碰| 无码国产日韩精品一区二区| 国产精品亚洲综合久久| 国产欧美一区二区三区在线看| 乱子真实露脸刺激对白| 久久久亚洲日本精品一区| 开心五月婷婷激情综合网| 久久久久香蕉国产线看观看伊| av无码天堂一区二区三区| 久久精品国产在热亚洲不卡| 欧美大片aaaaa免费观看| 毛片免费在线播放| 日本不卡的一区二区三区| 久久综合伊人77777麻豆| 一本大道无码av天堂| 99久久精品久久久| 久久精品国产亚洲av不卡国产| 欧美性巨大╳╳╳╳╳高跟鞋| 国产精品18久久久久网站|