本發(fā)明涉及文本圖像增強(qiáng)技術(shù),尤其是針對(duì)掃描文本圖像的方向倒置檢測(cè)技術(shù)。
背景技術(shù):
隨著計(jì)算機(jī)技術(shù)的不斷發(fā)展,基于OCR(光學(xué)字符識(shí)別)的文本圖像數(shù)字化技術(shù)得到了廣泛地應(yīng)用。在完成OCR過(guò)程中,文本圖像中的文字方向?qū)ψ址R(shí)別性能影響至關(guān)重要。當(dāng)文字存在傾斜時(shí),如果不加以校正,會(huì)嚴(yán)重影響文字的識(shí)別率。特別是當(dāng)文字存在倒置情況(即與正常方向偏差180°左右)。因此,在進(jìn)行OCR之前,必須判斷文本圖像是否存在倒置情況,針對(duì)倒置情況應(yīng)考慮首先進(jìn)行旋轉(zhuǎn)處理,以保證后續(xù)識(shí)別過(guò)程正常執(zhí)行。
針對(duì)存在傾斜情況的文本圖像,可以借助現(xiàn)有糾偏算法,檢測(cè)傾斜度并進(jìn)行相應(yīng)地校正。但現(xiàn)有文本圖像糾偏方法大都假定輸入的文本圖像傾斜度在一定范圍之內(nèi),首先獲取傾斜角度信息,進(jìn)而完成傾斜度校正。但當(dāng)輸入文本圖像完全倒置時(shí),現(xiàn)有傾斜角度檢測(cè)方法基本失效。曾凡鋒等人提出了一種基于標(biāo)點(diǎn)符號(hào)的文本圖像倒置快速檢測(cè)方法。該方法首先檢測(cè)文本字符;然后結(jié)合中文字符及標(biāo)點(diǎn)符號(hào)結(jié)構(gòu)特征,篩選出文本圖像中的標(biāo)點(diǎn)符號(hào),根據(jù)標(biāo)點(diǎn)符號(hào)像素分布特點(diǎn),判斷標(biāo)點(diǎn)符號(hào)類(lèi)型;最后結(jié)合標(biāo)點(diǎn)符號(hào)使用習(xí)慣,判斷中文文本圖像是否倒置。朱敏等人(專(zhuān)利公開(kāi)號(hào)CN102831421A)提出一種基于標(biāo)點(diǎn)符號(hào)的文本上下方向檢測(cè)方法。該專(zhuān)利所提方法根據(jù)標(biāo)點(diǎn)符號(hào)與文本行的相對(duì)位置屬性來(lái)判斷文本的方向,其基本思路與曾凡鋒所提方法類(lèi)似。這類(lèi)基于標(biāo)點(diǎn)符號(hào)的方法完全依靠標(biāo)點(diǎn)特征,對(duì)于標(biāo)點(diǎn)符號(hào)較少的文本圖像無(wú)效,因此這類(lèi)方法適用范圍有限,不具有普遍性。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的是克服現(xiàn)有技術(shù)的上述不足,提供一種面向文本圖像的方向倒置快速檢測(cè)方法。技術(shù)方案如下:
一種文本圖像倒置快速檢測(cè)方法,包括下列步驟:
第一步:對(duì)輸入的文本圖像進(jìn)行預(yù)處理,得到二值化處理結(jié)果用B;
第二步:進(jìn)行有效文本行檢測(cè),得到有效文本行序列;
第三步:進(jìn)行文本行分類(lèi),方法如下:
1)對(duì)于有效文本行序列的各個(gè)有效文本行s,使用矩形結(jié)構(gòu)算子進(jìn)行膨脹運(yùn)算,填充該有效文本行s相鄰字符之間的空白;
2)計(jì)算各個(gè)有效文本行s在垂直方向的投影值,用V(c)表示,其中c表示列序號(hào);
3)統(tǒng)計(jì)滿(mǎn)足條件V(c)>0.5×Rhei(s)的c取值,將c的最小值記為cmin,稱(chēng)為該有效文本行s的左邊界;將最大值分別記為cmax,稱(chēng)為有效文本行s的右邊界,該掃描行的長(zhǎng)度為Rleg=cmax-cmin;
4)統(tǒng)計(jì)同一個(gè)有效文本行序列內(nèi)各有效文本行對(duì)應(yīng)的cmin(m)和cmax(m),將cmin(m)的最小值稱(chēng)為該有效文本行序列的左邊界,記為clef;將cmax(m)的最大值稱(chēng)為該有效文本行序列的右邊界,記為crgt;
5)對(duì)于某有效文本行m,如果滿(mǎn)足0.6<|cmin(m)-clef|/|cmax(m)-cmin(m)|<0.9,則將該有效文本行m判為“左縮進(jìn)文本行”;如果滿(mǎn)足0.6<|crgt-cmax(m)|/(cmax(m)-cmin(m))<0.9,則將該有效文本行m判為“右縮進(jìn)文本行”;如果上述兩個(gè)條件都不滿(mǎn)足,則將該文本行判為“非縮進(jìn)文本行”;
第四步:文本圖像倒置檢測(cè),方法如下:
統(tǒng)計(jì)單幅文本圖像中左縮進(jìn)文本行和右縮進(jìn)文本行的數(shù)目,分別用Nlef和Nrgt表示;使用下式判斷文本圖像是否存在倒置:
優(yōu)選地,第二步的方法如下:
1)計(jì)算B中各行在水平方向的投影值,用H(r)表示,其中r表示行號(hào)序號(hào);
2)計(jì)算H(r)的最大值,用Hmax表示;
3)對(duì)于第r掃描行,如果滿(mǎn)足H(r)>0.5×Hmax,則將該行判為一個(gè)有效掃描行;
4)統(tǒng)計(jì)各有效掃描行的分布情況,如果檢測(cè)到連續(xù)m行被判為有效掃描行,且滿(mǎn)足m>M/100,則由這連續(xù)m個(gè)有效掃描行組成一個(gè)有效文本行序列;
確定該有效文本行序列中最上方和最下方有效掃描行的行號(hào),用Rtop(s)和Rbot(s)分別表示該有效文本行序列的上下邊界,定義該有效文本行序列的高度為Rhei(s)=|Rtop(s)-Rbot(s)|,符號(hào)|·|表示取絕對(duì)值符號(hào),式中s是有效文本行的序號(hào)。
附圖說(shuō)明
圖1是本發(fā)明所提方法的流程圖
圖2是本發(fā)明所用到的重要定義示意圖
圖3本發(fā)明定義的文本行類(lèi)型示意圖
圖4本發(fā)明實(shí)驗(yàn)所用的文本圖像左右縮進(jìn)文本行數(shù)目示意圖
具體實(shí)施方式
首先將輸入文本彩色圖像進(jìn)行灰度化、雙邊濾波、對(duì)比度增強(qiáng)、二值化等預(yù)處理操作,提高文檔圖像視覺(jué)質(zhì)量;然后借助水平投影分析,檢測(cè)文本圖像中的有效文本行,并結(jié)合文本行的位置和長(zhǎng)度特征,對(duì)文本行進(jìn)行分類(lèi);最后根據(jù)左縮進(jìn)文本行和右縮進(jìn)文本行的相對(duì)數(shù)目,判斷文本圖像是否存在倒置。圖1所示為所提方法的框圖。
首先給出若干有用的定義。一幅文本圖像由多個(gè)段落構(gòu)成,每一個(gè)段落中的字符字體、格式等特征基本一致。本發(fā)明將每一段落內(nèi)各字符所能出現(xiàn)的最左側(cè)和最右側(cè)位置,分別稱(chēng)為“段落左邊界”和“段落右邊界”。圖2給出了一個(gè)段落左邊界和右邊界的示意圖。每個(gè)段落可能包括一個(gè)或多個(gè)文本行,對(duì)于任意文本行,將其最左側(cè)字符的左側(cè)和最右側(cè)字符的右側(cè)分別稱(chēng)為該文本行的“行左邊界”和“行右邊界”。圖2給出了行左邊界和行右邊界的示意圖。
對(duì)于某個(gè)文本行,其左右邊界與所屬段落的左右邊界基本重合,則稱(chēng)該文本行為“完整文本行”。如果對(duì)于某個(gè)文本行,其左邊界距離所屬段落的左邊界有2~4個(gè)字符,同時(shí)該文本行右邊界與所屬段落右邊界基本重合,則稱(chēng)該文本行為“左縮進(jìn)文本行”。對(duì)于某個(gè)文本行,其右邊界距離所屬段落右邊界有2~4個(gè)字符,同時(shí)該文本行左邊界與所屬段落左邊界基本重合,則稱(chēng)該文本行為“右縮進(jìn)文本行”。圖3給出了上述三類(lèi)文本行的示意圖。
根據(jù)中英文的書(shū)寫(xiě)習(xí)慣,每一個(gè)段落首行字符一般向右縮進(jìn)2~4個(gè)字符,即對(duì)于包含兩個(gè)或兩個(gè)以上文本行的段落,其必然存在一個(gè)左縮進(jìn)文本行。如果文本圖像是正向的,則必然能檢測(cè)到多個(gè)左縮進(jìn)文本行。反之,如果文本圖像是倒置的,則能檢測(cè)到多個(gè)右縮進(jìn)文本行。本發(fā)明正是通過(guò)檢測(cè)和判斷文本圖像中左縮進(jìn)文本行和右縮進(jìn)文本行的相對(duì)數(shù)目,來(lái)判斷該文本圖像是否存在倒置情況。
本發(fā)明所提方法具體處理過(guò)程包括:預(yù)處理、文本行檢測(cè)、文本行分類(lèi)、文本方向倒置檢測(cè)等四個(gè)主要步驟。
1、預(yù)處理
預(yù)處理的目的是提高文檔圖像的視覺(jué)質(zhì)量,主要包括:灰度化、平滑濾波、對(duì)比度增強(qiáng)和二值化等步驟。
(1)灰度化:
判斷輸入文本圖像是否是灰度圖像,如果是灰度圖像,則保持不變;如果是彩色圖像,用CR、CG和CB分別表示紅、綠、藍(lán)三個(gè)顏色通道,使用式(1)計(jì)算灰度圖像,用I表示。
I(x,y)=min{CR(x,y),CG(x,y),CB(x,y)} (1)
式中,x=0,1,2,...,M-1,y=0,1,2,...,N-1,M和N分別是文本圖像的高度和寬度,即掃描總行數(shù)和掃描總列數(shù)。
(2)平滑濾波
考慮到文本圖像在采集及數(shù)字化過(guò)程中受到噪聲污染,采用雙邊濾波技術(shù)對(duì)灰度圖像I進(jìn)行濾波處理,降低噪聲影響。用G表示經(jīng)雙邊濾波處理后的圖像。
(3)對(duì)比度增強(qiáng)
由于光照等原因的影響,文本圖像的對(duì)比度可能偏低,采用直方圖均衡技術(shù)對(duì)濾波圖像G進(jìn)行增強(qiáng)處理,處理結(jié)果用E表示。
(4)二值化處理
使用經(jīng)典的Otsu法計(jì)算E對(duì)應(yīng)的全局閾值,用Th表示。使用Th對(duì)E進(jìn)行二值化處理,處理結(jié)果用B來(lái)表示,具體的做法是:
其中,B中取值為1的點(diǎn)代表文本點(diǎn),取值為0的點(diǎn)代表背景點(diǎn)。
2、有效文本行檢測(cè)
使用以下算法完成有效文本行檢測(cè):
有效文本行檢測(cè)算法:
1)計(jì)算B中各行在水平方向的投影值,用H(r)表示,其中r表示行號(hào)序號(hào)。
2)計(jì)算H(r)的最大值,用Hmax表示。
3)對(duì)于第r掃描行,如果滿(mǎn)足H(r)>0.5×Hmax,則將該行判為一個(gè)有效掃描行。
4)統(tǒng)計(jì)各有效掃描行的分布情況,如果檢測(cè)到連續(xù)m行被判為有效掃描行,且滿(mǎn)足m>M/100,則由這連續(xù)m個(gè)有效掃描行組成一個(gè)有效文本行。
5)確定該有效文本行中最上方和最下方有效掃描行的行號(hào),用Rtop(s)和Rbot(s)分別表示該文本行的上下邊界,定義該文本行的高度為Rhei(s)=|Rtop(s)-Rbot(s)|,符號(hào)|·|表示取絕對(duì)值符號(hào),式中s是有效文本行的序號(hào)。
3、文本行分類(lèi)
使用以下算法完成文本行分類(lèi):
文本行分類(lèi)算法:
1)對(duì)于某一個(gè)有效文本行s,使用矩形結(jié)構(gòu)算子對(duì)該文本行進(jìn)行膨脹運(yùn)算,填充該文本行相鄰字符之間的空白。矩形結(jié)構(gòu)算子的高度為2個(gè)像素,寬度為該文本行高度50%。
2)計(jì)算文本行在垂直方向的投影值,用V(c)表示,其中c表示列序號(hào)。
3)統(tǒng)計(jì)滿(mǎn)足條件V(c)>0.5×Rhei(s)的c取值,將c的最小值記為cmin,稱(chēng)為該文本行的左邊界;將最大值分別記為cmax,稱(chēng)為該文本行的右邊界,該掃描行的長(zhǎng)度為Rleg=cmax-cmin。
4)統(tǒng)計(jì)同一個(gè)段落內(nèi)各有效文本行對(duì)應(yīng)的cmin(m)和cmax(m),將cmin(m)的最小值稱(chēng)為該段落的左左邊界,記為clef;將cmax(m)的最大值稱(chēng)為該段落的右邊界,記為crgt。
5)對(duì)于某有效文本行m,如果滿(mǎn)足0.6<|cmin(m)-clef|/|cmax(m)-cmin(m)|<0.9,則將該文本行判為“左縮進(jìn)文本行”;如果滿(mǎn)足0.6<|crgt-cmax(m)|/(cmax(m)-cmin(m))<0.9,則將該文本行判為“右縮進(jìn)文本行”;如果上述兩個(gè)條件都不滿(mǎn)足,則將該文本行判為“非縮進(jìn)文本行”。
4、文本圖像倒置檢測(cè)
統(tǒng)計(jì)單幅文本圖像中左縮進(jìn)文本行和右縮進(jìn)文本行的數(shù)目,分別用Nlef和Nrgt表示。使用式(3)判斷文本圖像是否存在倒置:
實(shí)施例如下:
采用Windows10專(zhuān)業(yè)版系統(tǒng)下的Matlab2015a作為實(shí)驗(yàn)仿真平臺(tái),硬件平臺(tái)是Intel i5-6200U CPU,8G內(nèi)存。
選用專(zhuān)利申請(qǐng)人自行采集的90幅文本圖像作為測(cè)試集,其中倒置文本圖像78幅,正方向文本圖像12幅。在全部90幅文本圖像中,中文文本圖像有56幅,占62%,英文文本圖像34幅,占38%。采用本發(fā)明提出方法對(duì)測(cè)試圖像進(jìn)行處理,100%的倒置圖像都正常檢出。圖4給出了90幅文檔圖像中左縮進(jìn)文本行和右縮進(jìn)文本行數(shù)目的分布情況。由圖可見(jiàn),對(duì)于正向文本圖像,其左縮進(jìn)文本行數(shù)明顯大于右縮進(jìn)文本行數(shù);反之,對(duì)于倒置方向文本圖像,是右縮進(jìn)文本行數(shù)大于左縮進(jìn)文本行數(shù)。很明顯分為兩類(lèi),即倒置文本圖像類(lèi)(在圖中用符號(hào)“*”標(biāo)識(shí))和正向文本圖像類(lèi)(在圖中用符號(hào)“o”標(biāo)識(shí))。
測(cè)試圖像的尺寸是1944×2592分辨率達(dá)到了5000萬(wàn)像素,處理一幅圖像的平均速度約為2300ms,如果換成執(zhí)行效率更高的C語(yǔ)言編寫(xiě)算法,處理速度會(huì)更快,能夠滿(mǎn)足實(shí)時(shí)處理的要求。
由實(shí)驗(yàn)結(jié)果可見(jiàn),采用本發(fā)明所述方法,可以快速有效的判斷輸入的掃描文本圖像是否存在倒置情況,并能對(duì)包括中英文在內(nèi)的多種語(yǔ)言類(lèi)型的文本圖像進(jìn)行處理。
本發(fā)明的步驟總結(jié)如下:
步驟1:判斷輸入掃描文本圖像類(lèi)型,如果是灰度圖像,則保持不變;如果是彩色圖像,則用式(1)轉(zhuǎn)換為灰度圖像,用I表示灰度圖像。
步驟2:采用雙邊濾波技術(shù)對(duì)灰度圖像I進(jìn)行濾波處理,濾波結(jié)果用G表示。
步驟3:采用直方圖均衡技術(shù),對(duì)濾波結(jié)果圖像G進(jìn)行增強(qiáng)處理,處理結(jié)果用E表示。
步驟4:使用Otsu法計(jì)算增強(qiáng)結(jié)果圖像的全局閾值,并結(jié)合式(2)對(duì)E進(jìn)行二值化處理,處理結(jié)果用B表示。
步驟5:采用有效文本行檢測(cè)算法,檢測(cè)掃描文本圖像中的有效文本行。
步驟6:使用文本行分類(lèi)算法,對(duì)每一個(gè)有效文本行進(jìn)行分類(lèi),確定左縮進(jìn)文本行和右縮進(jìn)文本行的數(shù)目Nlef和Nrgt。
步驟7:結(jié)合式(3),判斷掃描文本圖像是否存在倒置情況。