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

        ?

        基于Tesseract文字識別的預(yù)處理研究

        2021-01-19 02:24:14馬明棟
        關(guān)鍵詞:印刷體像素點版面

        章 安,馬明棟

        (1.南京郵電大學(xué) 通信與信息工程學(xué)院,江蘇 南京 210003; 2.南京郵電大學(xué) 地理與生物信息學(xué)院,江蘇 南京 210003)

        0 引 言

        1929年德國科學(xué)家Tausheck提出了OCR的概念[1],通過對圖像像素點的分割,與字符庫對照,獲取最近似的計算機(jī)文字。最初的OCR技術(shù)目的在于信息化處理大量的印刷品,例如報刊雜志、文件資料和其他文字材料,進(jìn)而開始了西文OCR技術(shù)的研究,以便代替人工鍵盤輸入[2]。隨著時間的推移,科技公司的不懈努力以及計算機(jī)技術(shù)的飛速發(fā)展,西文OCR技術(shù)現(xiàn)已廣泛應(yīng)用于各個領(lǐng)域,實現(xiàn)了“電子化”信息處理。

        國內(nèi)對于印刷體漢字識別的研究從20世紀(jì)70年代末起步[3],至今己有近四十年的發(fā)展歷史。從最開始對數(shù)字、英文、符號識別的研究,到對漢字識別進(jìn)行了探索,80年代后期,大量研究人員鉆研其中,漢字識別技術(shù)也趨于實用化[4]。如今市場上的OCR識別平臺層出不窮,最常見的百度、華為和騰訊等公司都提供了文字識別云平臺,在所需的環(huán)境之下,調(diào)用其提供的在線接口,便可以實現(xiàn)文字的識別。

        Tesseract是一個開源OCR庫,源碼存在于github上?;谄溟_源的特性,可以添加接口,豐富其功能。支持Tesseract的Leptonica組件有著優(yōu)越的圖像分析性能,保證了文字識別的精度。除此之外,Tesseract還具有多平臺的可移植性,擁有龐大的Unicode字符識別庫。

        識別是智能的基礎(chǔ)[5],目前互聯(lián)網(wǎng)技術(shù)迅速發(fā)展,在AI(artificial intelligence,人工智能)技術(shù)的需求之下,OCR技術(shù)成為了不可忽略的部分,通過文字的識別,提高了各行各業(yè)的生產(chǎn)效率。

        1 文字識別流程

        文字識別通常有兩種形式,手寫體與印刷體[6]。對于印刷體而言,研究結(jié)果相對成熟,而手寫體更為復(fù)雜,該文的討論范圍僅在于印刷體的文字識別。

        文字識別通常包括以下流程:

        (1)預(yù)處理:預(yù)處理操作在圖像識別之前。已采集的圖像質(zhì)量受多方面因素影響,圖像的亮暗、印刷體質(zhì)量、污點或陰影都是干擾識別的因素。預(yù)處理主要是對圖像進(jìn)行處理,將圖像灰度化以及二值化,進(jìn)而對圖像的傾斜、邊框等問題進(jìn)行處理,使得文字規(guī)范,圖像平滑,從而有利于接下來的處理操作[7]。

        (2)版面分析:版面分析主要處理文本圖像的不同部分,分析圖像中不同類型文本,例如標(biāo)題或是正文,插圖或是表格,從而獲取文章邏輯結(jié)構(gòu),包括各區(qū)域的邏輯屬性、文章的層次關(guān)系和閱讀順序。最后根據(jù)版面分析和文字的結(jié)果,進(jìn)行版面重構(gòu)。

        (3)圖像切分:識別是單個文字的識別,因而必須對圖像進(jìn)行行列切分。印刷體文字圖像行列間距、字間距大致相等,簡化了處理方法。

        (4)特征提取與模型訓(xùn)練:通過深度學(xué)習(xí)框架,對文字識別進(jìn)行特征提取和模型訓(xùn)練,提高了識別的有效性和可靠性。

        (5)識別后處理:識別后處理通常包括版面的重構(gòu)和識別的校正,對原圖像版面的恢復(fù)以及不同語言模型的校正[8]。

        通過以上流程,計算機(jī)通過輸入的圖像,分析并識別文字,同時保存于硬件中。識別流程不包括圖像的采集、最終圖像的輸出,這類工作由其他硬件實現(xiàn)。

        2 圖像預(yù)處理

        預(yù)處理是文字識別的重要一環(huán),預(yù)處理對圖像質(zhì)量的提升起到了關(guān)鍵作用。預(yù)處理通常包括灰度化、二值化、傾斜校正和噪聲消除[9],該文實現(xiàn)了以下幾個預(yù)處理方法,為Tesseract文字識別做好準(zhǔn)備。

        2.1 圖像縮放

        Tesseract處理圖像的DPI(dots per inch,每英寸點像素數(shù))默認(rèn)為300 DPI,因而對于DPI不足的圖片,需要進(jìn)行縮放處理。常用的縮放算法有最近鄰算法(最近鄰插值)、雙線性插值算法以及更為復(fù)雜的三次插值算法[10],三種算法的精度不一。基于文字識別的精度要求,該文實現(xiàn)了雙線性插值圖像縮放算法。

        在離散數(shù)學(xué)中,插值是指在離散數(shù)據(jù)的基礎(chǔ)上補(bǔ)差連續(xù)函數(shù)[11],使得該連續(xù)曲線通過全部給定的離散數(shù)據(jù)點,關(guān)鍵在于恢復(fù)曲線的連續(xù)與平滑。與之類似,圖像基本構(gòu)成是有限像素集,在圖像縮放的過程中,需要對圖像進(jìn)行像素的插入(放大)或是疊加(縮小)。

        圖像縮放的過程中,原圖像與輸出圖像具有一定的映射關(guān)系:

        Y(x'+u,y'+v)=X(x,y)=X(h1(x,y),h2(x,y))

        (1)

        其中,X(x,y)表示輸入圖像,Y(x'+u,y'+v)表示輸出圖像,h1和h2表示映射函數(shù)。轉(zhuǎn)換之后可能出現(xiàn)小數(shù)的情況,令x'和y'作為坐標(biāo)的整數(shù)部分,u和v作為小數(shù)部分。

        圖1 雙線性插值示意

        如圖1所示,取轉(zhuǎn)換點四個領(lǐng)域整數(shù)位置點(x',y'),(x',y'+1),(x'+1,y'),(x'+1,y'+1)。設(shè)RGB滿足函數(shù)f(x,y),則轉(zhuǎn)換之后的點坐標(biāo)中的RGB值為:

        f(x,y)=f(x'+u,y'+v)

        (2)

        f(x'+u,y'+v)=f(x,y)*(1-u)*(1-v)+

        f(x',y'+1)*(1-u)*v+

        f(x'+1,y)*u*(1-v)+

        f(x'+1,y'+1)*u*v

        (3)

        式(3)類比于一維坐標(biāo)系下的長度比值關(guān)系,在二維坐標(biāo)系下,是富含規(guī)律的面積比值關(guān)系。即所求點的RGB等于:

        f(x,y)=∑Ri*S對角

        (4)

        其中,Ri表示領(lǐng)域點的RGB中的某一項,S對角表示對角的矩形面積值。

        示例代碼:

        for (int k=0;k<3;k++)

        {

        change[x+k]=image[o_x+k]*(1-a_x)*(1-a_y)+

        //對應(yīng)f(x,y)*(1-u)*(1-v)

        image[o_b+k]*a_x*(1-a_y)+

        /對應(yīng)/f(x',y'+1)*(1-u)*v

        image[o_c+k]* a_y*(1 - a_x) +

        //對應(yīng)f(x'+1,y)*u*(1-v)

        image[o_d+k]* a_y*a_x;

        //對應(yīng)f(x'+1,y'+1)*u*v

        }

        2.2 二值化

        二值化的過程形如二進(jìn)制中的01變化,圖像的二值化就是將圖像的像素點的灰度值設(shè)置成0或255。首要工作是將圖像灰度化,灰度化是將原圖像各像素R、G、B三個值按照不同的權(quán)值,將加權(quán)和均賦值給目標(biāo)圖像的RGB值。二值化的算法的重點是獲取像素點灰度的閾值,高于閾值的像素點灰度設(shè)置為255,反之設(shè)置為0。二值化的算法眾多,常用的如利用聚類思想、根據(jù)灰度特征劃分前景后景的Otsu算法,以及基于像素點為中心確定利用范圍像素確定像素閾值的Bernsen算法[12]。

        由于人眼對RGB三色的敏感度不同[13],因而灰度化時權(quán)值必然不同,該文利用心理學(xué)公式(5)中的權(quán)值實現(xiàn)灰度化,該公式適用于sRGB存儲空間的圖像。

        Gray=R*0.299+G*0.587+B*0.114

        (5)

        實現(xiàn)方法只需遍歷所有像素點,對其RGB求加權(quán)和,將新值更新到源像素點中。

        對于二值化過程,該文使用Otsu算法,Otsu算法又稱為“大津法”、最大類間方差法[14]。該算法的主要思想是根據(jù)圖像的灰度特征將圖像分為前景與背景兩部分,而前景就是所求的目標(biāo)圖像[15],使用方差這一統(tǒng)計量,反映前后景灰度差距,其中存在概率分布,實行概率加權(quán),最終遍歷所有可能的灰度值,方差最大處為灰度閾值。

        具體流程如下:

        設(shè)圖像灰度范圍為[0,L-1],閾值M∈[0,L-1]。

        (1)分別計算像素灰度值在[0,M]與(M,L-1]出現(xiàn)的概率P1和P2,其中:

        P1+P2=1

        (6)

        (2)分別計算像素在[0,M]和(M,L-1]的平均值μ1和μ2及總體灰度平均值μ。

        (3)灰度類間方差函數(shù)為:

        σ2=P1(μ1-μ)2+P2(μ2-μ)2

        (7)

        由概率以及均值關(guān)系可推出最終表達(dá)式:

        σ2=P1P2(μ1μ2)2

        (8)

        (4)遍歷所有灰度閾值M,方差最大時的M即為最佳閾值。

        示例為部分代碼:

        int OtsuAlgThreshold(const Mat){

        int M;//閾值

        for(int i=0;i < 255;i++){

        double p1=0,u1=0,p2=0,u2=0;

        double sum1=0,sum2=0;//像素點總數(shù)

        double gray_sum1=0,gray_sum2=0;//灰度值總數(shù)

        for(int j=0;j<=i;j++){

        sum2+=gram[j];

        gray_num2+= j*gram[j];

        sum1+= gram[i+j];

        gray_num1+=(i +j)*gram[i+j];

        }

        u2=gray_sum2/sum2;

        p2=sum2/total;

        u1=gray_sum1/sum1;

        p1=sum1/total;

        //類間方差計算

        double Sq=p1*p2*(u1-u2)*(u1-u2);

        if(SqMax < sq){

        SqMax=sq;//更新最大方差值

        M=i;

        }

        }

        return M;//返回閾值M

        }

        以上獲取最佳方差的灰度值之后,便可通過遍歷像素點進(jìn)行灰度值調(diào)整。

        2.3 邊框與偏移

        輸入的圖像由于采集設(shè)備的原因可能存在意想不到的邊框,或是圖像角度發(fā)生了偏移,因而會影響接下來的版面分析與行列切分工作,最終影響識別效果。此部分涉及到兩個部分,一是發(fā)生偏移的角度,二是邊框的選取。該文參考OpenCV庫中的函數(shù),實現(xiàn)了一種方法,方法的重點在于遍歷查找最小外接矩形,旋轉(zhuǎn)之后進(jìn)行切割,從而獲取最終圖像。方法流程如下:

        (1)獲取圖像最小外接矩形。

        (2)獲取圖像偏移角度,同時進(jìn)行旋轉(zhuǎn)操作。

        (3)對圖像進(jìn)行輪廓檢測,循環(huán)篩選。

        (4)切邊,獲取最終圖像。

        該思路之前需要對圖像進(jìn)行灰度化和二值化處理,以便于提高檢測的精度。

        3 文字識別

        此前的圖像預(yù)處理是為了文字識別作鋪墊。預(yù)處理過程使得圖像質(zhì)量得到一定的改善,其DPI和對比度得到顯著提升,文字的方向和邊框也得到校正,從而改善了識別的準(zhǔn)確性。文中的漢字識別,依賴于Tesseract框架,識別出Unicode字符。

        此測試環(huán)境需要的配置如表1所示。

        表1 配置環(huán)境與說明

        預(yù)先需要使用CMake編譯工具將Libtiff、Leptonica編譯,在Tesseract中添加動態(tài)鏈接庫(后綴為.dll)文件之后方可使用。

        識別代碼如下:

        char *outPut;

        tesseract::TessBaseAPI *ocr=new tesseract::TessBaseAPI();

        //初始化ocr識別模式

        if(ocr->Init(NULL, "eng")) {

        cerr<<"Initialize Failed”<

        exit(1);//退出

        }

        //傳入?yún)?shù)

        Pix *image=pixRead(Imag_name);

        ocr->SetImage(image);

        //輸出結(jié)果

        outPut=ocr->GetUTF8Text();

        cout<

        ocr->End();

        上述代碼中的接口功能如表2所示。

        表2 接口與功能

        參數(shù)及說明如表3所示。

        表3 參數(shù)與說明

        輸入圖像通過預(yù)先的縮放、二值化、邊框處理的工作之后,輸入到Tesseract工作環(huán)境中,實現(xiàn)最終屏幕控制臺的輸出顯示,從而完成文字識別的基本流程。

        4 結(jié)束語

        該文概述了文字識別的基本過程,對每一個過程進(jìn)行了基本的介紹。在Tesseract框架已有的基礎(chǔ)上,對預(yù)處理階段的圖像縮放、二值化、邊框處理、傾斜校正重點研究,相應(yīng)的模塊具有公式的推導(dǎo)以及代碼的實現(xiàn)。最后依賴于Tesseract框架,先調(diào)用實現(xiàn)的預(yù)處理方法,實現(xiàn)預(yù)處理,繼而調(diào)用Tesseract對象提供的初始化、讀入、處理接口進(jìn)行圖像的操作,從而輸出字符串變量,實現(xiàn)文字的識別。

        該文的OCR文字識別研究較為普通,面向的場景也較為單一,精度要求不甚嚴(yán)格。除印刷體以外,還有較為復(fù)雜的手寫體,證件識別,高精度識別。在OCR的工作流程中,除了預(yù)處理之外,還可通過版面分析、圖像切分以及后續(xù)的特征匹配和模型訓(xùn)練的算法提升來提高識別的效率。實現(xiàn)的預(yù)處理方法只是領(lǐng)域中的一種可行的方法,除此之外也有眾多優(yōu)秀的算法。

        Tesseract框架的功能強(qiáng)大,可移植性強(qiáng),識別范圍廣。Tesseract支持Linux、Windows、Mac OS,在各個領(lǐng)域應(yīng)用廣泛。Tesseract框架只能識別印刷體,而不能識別手寫體,除此之外,如上文提到的,Tesseract依賴于圖像的質(zhì)量,對于圖像的DPI,文字的排布也有著要求。因此,圖像的預(yù)處理工作必不可少,其中的算法研究也是研究重點。

        猜你喜歡
        印刷體像素點版面
        西夏文楷書和草書手寫體探微
        淺談小學(xué)英語字母手寫體與印刷體的教學(xué)
        基于canvas的前端數(shù)據(jù)加密
        基于逐像素點深度卷積網(wǎng)絡(luò)分割模型的上皮和間質(zhì)組織分割
        高考的時候,把字寫得像印刷體有用嗎
        版面擷英
        好版面要有獨到的創(chuàng)新技巧
        新聞傳播(2016年3期)2016-07-12 12:55:35
        版面“三評”看得失
        新聞前哨(2015年2期)2015-03-11 19:29:25
        基于Node-Cell結(jié)構(gòu)的HEVC幀內(nèi)編碼
        漂亮的印刷體
        久久久精品国产av麻豆樱花| 五月天激情综合网| 超级碰碰色偷偷免费视频 | 一卡二卡三卡视频| 欧洲国产成人精品91铁牛tv| 亚洲av手机在线观看| 国产97色在线 | 国产| 一本无码人妻在中文字幕免费| 日韩久久久久中文字幕人妻| 少妇高潮呻吟求饶视频网站| 色欲色香天天天综合网www| 国产69精品久久久久999小说| 伊人久久一区二区三区无码| 久久精品亚洲熟女九色| 日本妇人成熟免费2020| 少妇无码av无码专区线| 不卡国产视频| 亚洲av综合日韩精品久久| 户外精品一区二区三区| 蜜臀色欲av在线播放国产日韩 | 免费国产一级片内射老| 日本久久久精品免费免费理论| 国产亚洲综合一区二区三区| 亚洲国产精品特色大片观看完整版 | 国产精品美女自在线观看| 亚洲精品无码精品mv在线观看| 色婷婷综合久久久久中文| 911国产在线观看精品| 精品熟女视频一区二区三区国产 | 99国产免费热播视频| 一本色道亚州综合久久精品| 色婷婷av一区二区三区久久 | 人妻在线中文字幕视频| 性色视频加勒比在线观看| 开心五月激情综合婷婷| 成年女人在线观看毛片| 亚洲一区二区精品在线| 久久久久国产综合av天堂| 96免费精品视频在线观看| 亚洲小少妇一区二区三区| 亚洲精品一区二区国产精华液|