值得一看的文本檢測(cè)方法
? ?作者:晟? 沚?? ? ? ?
? ? ? ??
????目前深度學(xué)習(xí)方法做文本檢測(cè)比較普遍,但是也存在一些時(shí)候GPU資源不夠,這時(shí)候就需要一些其他的方法來(lái)檢測(cè)文本信息,本文主要介紹不使用深度學(xué)習(xí)進(jìn)行文本檢測(cè)的方法。文本檢測(cè)的瓶頸主要是處理那些對(duì)比度不同或嵌入復(fù)雜背景的文本。為了解決這些困難,本文主要介紹的方法可以基于不變的特征,例如邊緣強(qiáng)度,邊緣密度和水平分布。首先,它應(yīng)用邊緣檢測(cè),并使用較低的閾值來(lái)過濾掉非文本邊緣。然后,選擇局部閾值以保留低對(duì)比度文本并簡(jiǎn)化高對(duì)比度文本的復(fù)雜背景。接下來(lái),用兩個(gè)文本區(qū)域增強(qiáng)operator,以突出顯示具有高邊緣強(qiáng)度或高邊緣密度的那些區(qū)域。最后,從粗到細(xì)的檢測(cè)可以有效地定位文本區(qū)域。實(shí)驗(yàn)結(jié)果表明,本文提出的方法在對(duì)比度,字體大小,字體顏色,語(yǔ)言和背景復(fù)雜性方面均十分可靠。
01
分析
????當(dāng)文本嵌入復(fù)雜的背景中時(shí),文本的對(duì)比度,即文本的顏色(或亮度)與其局部背景之間的差異,會(huì)在圖像的不同區(qū)域發(fā)生變化。因此,使用全局閾值分隔文本和背景的方法將丟失低對(duì)比度文本。例如,(圖a)顯示了具有不同對(duì)比度文本的圖像。應(yīng)用Sobel運(yùn)算符后,如果閾值是40(圖b),則所有文本都會(huì)保留,閾值為65,則低對(duì)比度文本消失(圖c)。
????另外,不同語(yǔ)言的字符具有各種筆畫結(jié)構(gòu)。使用筆劃密度約束的方法可以成功檢測(cè)英語(yǔ)等。但是無(wú)法正確檢測(cè)亞洲語(yǔ)言文字,例如中文。例如,區(qū)域增長(zhǎng)方法使用小尺寸的窗口掃描圖像并將每個(gè)窗口分類為文本或非文本,然后合并相鄰的文本塊形成文本區(qū)域。由于每個(gè)漢字占用相同的空間,而筆劃數(shù)從1到大于20不等,因此筆劃少的字符將不會(huì)被筆劃密度約束分類為文本。
????針對(duì)文本的特殊,總結(jié)如下規(guī)律:
盡管文本字符串的像素顏色不均勻,但是視頻中可識(shí)別的文本字符串確實(shí)具有密集或鮮明的顏色或亮度過渡,即相對(duì)于其背景的邊緣。因此,邊緣是比字體顏色更可靠的功能。邊緣具有兩個(gè)屬性:邊緣強(qiáng)度和邊緣密度。當(dāng)嵌入在簡(jiǎn)單且高對(duì)比度的背景中時(shí),文本字符串在邊緣強(qiáng)度和邊緣密度上都很明顯。當(dāng)嵌入在簡(jiǎn)單且低對(duì)比度的背景中時(shí),主要是邊緣密度很明顯。當(dāng)嵌入到充滿非文本對(duì)象邊緣的復(fù)雜背景中時(shí),主要是邊緣強(qiáng)度就很明顯。由于不可能用很少的筆劃由所有字符組成文本字符串,因此其平均邊緣密度明顯高于背景。字符大多是直立的,并在與水平線對(duì)齊的有限距離內(nèi)成簇出現(xiàn),并且它們顯示出空間凝聚力–同一文本字符串的字符具有相似的高度,方向和間距。
所以,基于邊緣強(qiáng)度,邊緣密度和水平分布,可以設(shè)計(jì)一種有效的方法來(lái)檢測(cè)復(fù)雜背景下的多語(yǔ)言文本。
02
具體方法
????本文的方法的目標(biāo)是在不受到語(yǔ)言和字體大小影響的情況下,檢測(cè)低對(duì)比度文本和高對(duì)比度文本。首先,使用彩色邊緣檢測(cè)器將視頻圖像轉(zhuǎn)換為邊緣圖,并使用較低的全局閾值來(lái)過濾掉絕對(duì)非邊緣點(diǎn)。然后,執(zhí)行選擇性局部閾值處理以簡(jiǎn)化復(fù)雜背景。接下來(lái),用一個(gè)邊緣強(qiáng)度平滑算子和一個(gè)邊緣聚類功率算子,以突出顯示那些邊緣強(qiáng)度高或邊緣密度高的區(qū)域,即文本候選者。最后,考慮到特征隨語(yǔ)言和字體大小不變,采用一種面向字符串的從粗到細(xì)的檢測(cè)方法來(lái)快速定位文本字符串。
邊緣檢測(cè)
????彩色邊緣檢測(cè)器使用Sobel運(yùn)算符檢測(cè)YUV顏色空間中的邊緣。最終的顏色邊緣圖是Y,U和V通道的三個(gè)邊緣圖的并集。但是,由于閾值太高而無(wú)法保留低對(duì)比度文本,因此不使用快速熵閾值化。取而代之的是,應(yīng)用由邊緣強(qiáng)度直方圖確定的低閾值,以僅消除絕對(duì)的非文本點(diǎn)。首先,在直方圖中找到排名0-20的峰,并獲得其周圍的平均高度;然后,低閾值是峰后高度低于平均高度10%的第一個(gè)位置。在全局閾值化之后,非邊緣點(diǎn)的值為零,而邊緣點(diǎn)的值為其各自的邊緣強(qiáng)度。
局部閾值
????如果背景是簡(jiǎn)單的,則可以通過低閾值輕松檢測(cè)甚至低對(duì)比度的文本字符串,而嵌入復(fù)雜背景中的文本字符串需要更高的閾值才能進(jìn)一步簡(jiǎn)化背景。因此,有必要根據(jù)每個(gè)局部區(qū)域的背景復(fù)雜度確定適當(dāng)?shù)拈撝怠6x一個(gè)大小為H×W的窗口(H和W分別與圖像的高度和寬度成比例)。窗口首先在水平方向上然后在垂直方向上逐步掃描邊緣特征圖,如下圖所示。
????在每個(gè)步驟中,窗口的原點(diǎn)僅在水平方向上移動(dòng)W / 2(或在垂直方向上移動(dòng)H / 2),因此可以補(bǔ)償因使用窗口邊框分割字符而導(dǎo)致的不準(zhǔn)確性。窗口覆蓋的邊緣圖部分是要分析的局部區(qū)域。
背景復(fù)雜度定義如下。
????如果像素是非邊緣點(diǎn),將其稱為空白點(diǎn)。如果該局部區(qū)域中全部空白行的數(shù)量不少于10%×H,則背景復(fù)雜度很簡(jiǎn)單。簡(jiǎn)單區(qū)域不再需要閾值,而復(fù)雜區(qū)域則需要更高的閾值。從該區(qū)域的局部直方圖中可以找到新的閾值。令MAX和MIN分別為最高邊緣強(qiáng)度和最低邊緣強(qiáng)度。在[MIN,MAX]的下半部分找到低峰,在[MIN,MAX]的上半部分找到高峰,然后將新閾值確定為低峰和高峰之間的最低位置。在該區(qū)域中強(qiáng)度低于Tlocal的邊緣點(diǎn)標(biāo)記。掃描完整個(gè)邊緣圖后,將刪除所有帶有標(biāo)志的邊緣點(diǎn)。應(yīng)用選擇性局部閾值,可以保持簡(jiǎn)單背景下的低對(duì)比度文本,同時(shí)簡(jiǎn)化了高對(duì)比度文本的背景。
文本區(qū)域的增強(qiáng)
????通過選擇性局部閾值選取出在局部背景中明顯的邊緣點(diǎn)。然而,僅利用了邊緣強(qiáng)度特征。為了通過邊緣密度功能進(jìn)一步突出顯示文本區(qū)域,通過邊緣強(qiáng)度平滑(ESS)算子和邊緣聚類功率(ECP)算子,其卷積內(nèi)核如下圖所示。
????兩個(gè)核中的權(quán)重均來(lái)自歐幾里得距離。最后是使用整數(shù)來(lái)加快卷積速度,因此將卷積結(jié)果除以權(quán)重之和(ESS的權(quán)重為220,ECP的權(quán)重為100)。ESS權(quán)重與從中心向外的距離的平方成反比。它反映了中心邊緣點(diǎn)周圍的平均邊緣強(qiáng)度。由于局部閾值處理可能會(huì)降低文本區(qū)域中的邊緣密度,因此首先使用如下等式對(duì)邊緣圖中每個(gè)表示為EM(x,y)的點(diǎn)執(zhí)行ESS算子,以增加邊緣密度。

??? ESS特征圖是平滑的邊緣強(qiáng)度特征圖。然后,通過僅對(duì)ESS算子中的非零點(diǎn)執(zhí)行ECP算子來(lái)增強(qiáng)高邊緣密度區(qū)域,如下公式所示。
??? ECP權(quán)重與從中心向外的距離的平方成正比,卷積結(jié)果除以其自身的ESS值。如果ECP有許多相鄰的邊緣點(diǎn)具有更高或相似的邊緣強(qiáng)度,則無(wú)論邊緣點(diǎn)的ESS值是什么,ECP都僅會(huì)突出顯示中心點(diǎn)周圍的邊緣密度。最后,通過如下公式對(duì)ESS值和ECP值進(jìn)行積分,并更新邊緣圖。
通常,ESS和ECP,α為0.5。
粗到細(xì)的檢測(cè)方法
????顯然,具有高密度的水平矩形區(qū)域表示文本字符串。投影是查找此類高密度區(qū)域的一種比其他方法(例如區(qū)域生長(zhǎng)方法)更有效的方法,因?yàn)槲谋咀址谒酵队爸惺冀K會(huì)產(chǎn)生急劇的跳躍。但是,在視頻圖像中,文本字符串不會(huì)逐行顯示。它們通常在水平或垂直維度上重疊。由于簡(jiǎn)單的投影僅反映一維的分布,因此無(wú)法很好地處理這種情況。因此,通過一種從粗到精的檢測(cè)方案來(lái)解決此問題。粗到細(xì)檢測(cè)的想法是通過兩階段投影來(lái)逐步定位文本區(qū)域,如下圖。

????
????在第一階段,它使用粗水平投影和粗垂直投影將邊緣圖粗略地分割為文本塊。然后,在第二階段,它通過精細(xì)的水平投影和精細(xì)的垂直投影來(lái)精確地定位文本區(qū)域。請(qǐng)注意,只有粗略的水平投影是整體投影,其他都是矩形區(qū)域中的局部投影。最后,根據(jù)平均密度,精細(xì)的垂直投影中的峰分布和密度分布的規(guī)則檢查文本狀區(qū)域非文本區(qū)域。由于預(yù)處理顯著突出了類似文本的區(qū)域,因此可以輕松快速地找到文本字符串。下面給出一些結(jié)果:



?
END
機(jī)器學(xué)習(xí)算法工程師
? ??? ? ? ? ? ? ? ? ? ? ? ??????????????????一個(gè)用心的公眾號(hào)
?

