李東勤 徐 勇 周萬懷
(安徽財經(jīng)大學管理科學與工程學院, 安徽 蚌埠 233030)
借助于智能移動設備或可穿戴設備,人們可以隨時隨地獲取各種自然場景圖像。在豐富多彩的自然場景圖像中,文字信息往往具有特殊且無法替代的重要作用。從自然場景圖像中檢測和識別文字信息,將其用于對圖像的標注和檢索等,可以增強用戶體驗。自然場景圖像文字提取技術(shù)包含文字檢測、文字分割和增強、文字識別等核心問題。其中,準確進行文字檢測和定位是文字提取技術(shù)的前提。近年來,文本檢測技術(shù)成了計算機視覺、模式識別、文檔分析與識別等領域的一個研究熱點。在借鑒已有文本檢測與定位算法研究成果的基礎上,我們將提出一種基于邊緣與筆畫特征的文本檢測及定位算法?;舅悸肥牵合忍崛∽匀粓鼍皥D像中的邊緣信息,運用數(shù)學形態(tài)學方法形成候選文本區(qū)域;然后,根據(jù)筆畫特征將文本從背景區(qū)域中提取出來;最后,通過自定義規(guī)則,去除部分非文本塊,實現(xiàn)對文本塊邊界位置的界定。
邊緣點其實就是圖像中灰度跳變劇烈的點。自然場景圖像中的文本通常具有較強的邊緣信息,因此可以利用邊緣信息首先在圖像中初步確定可能存在的文本塊區(qū)域。
選用相對比較簡單且效率較高的Sobel算子[1-3]進行邊緣檢測。運用Sobel算子進行邊緣檢測,結(jié)果不如Canny檢測的準確。相對于其他算法而言,Sobel算子檢測得到的邊緣會更粗一些,也就更容易包含所有的文本區(qū)域。Sobel邊緣檢測通常帶有方向性,可以只檢測水平邊緣或垂直邊緣,也可以同時檢查水平與垂直邊緣。首先,定義兩個方向的梯度系數(shù),水平方向x=1,y=0;垂直方向x=0,y=1。然后,計算梯度圖像,將梯度圖像中較亮的那一部分提取出來,它就是簡單的邊緣部分。Sobel算子使用3×3的濾波器(見圖1)對圖像進行濾波,從而得到水平方向的梯度圖像bx和垂直方向的梯度圖像by。于是,最終的梯度圖像為:b=x*bx.*bx+y*by.*by。
水平方向 垂直方向圖1 Sobel 濾波算子的邊緣檢測模板
得到梯度圖像后進行閾值計算,這是Sobel算法很重要的一部分。定義參數(shù):sc=4,cf= sc*mean2(m),th= sqrt(cf)。其中,mean2函數(shù)是求圖像所有點灰度的平均值;sc是一個系數(shù)。有了閾值后,對最終的梯度圖像進行二值化。為了得到更理想的邊緣圖,對二值化圖像進行優(yōu)化:如果是垂直邊緣且它的梯度值要比其左邊和右邊的點都大,或者如果是水平邊緣且該點的梯度值要比其上邊和下邊的都大,則置為白色;其余情況,則置為黑色。處理后的結(jié)果如圖2b所示。
由于自然場景圖像自身的特點,可能受背景、噪聲、對比度等因素的影響,前面獲得的邊緣結(jié)果圖中可能存在文本筆畫斷裂的現(xiàn)象。因此,運用數(shù)學形態(tài)學方法將斷裂的筆畫連接起來,形成候選文本區(qū)域。
根據(jù)有關研究,國標《信息交換用漢字編碼字符集:基本集》(GB2312-80)收入的6 763個漢字中,包含筆畫橫的漢字占99.8%,包含筆畫豎的漢字占99.85%,包含筆畫撇的漢字占93.5%,包含筆畫捺的漢字占76.5%[4]。由此推斷,自然場景圖像中的文本包含筆畫橫和豎的漢字較多。利用這種筆畫特征,運用數(shù)學形態(tài)學方法進行系列操作,將前面所得邊緣圖像中斷裂的筆畫進行有效連接,凸顯自然場景圖像中文本的特征。
數(shù)學形態(tài)學包括膨脹、腐蝕、開運算和閉運算等4種最基本的運算算子。
膨脹(或擴張),是指將與物體接觸的背景點合并到該物體中,使邊界向外部擴張的過程。我們使用3×3的正方形作為結(jié)構(gòu)元素,對前面所得邊緣圖像進行膨脹運算,填補文本筆畫的小溝和裂縫,實現(xiàn)對斷裂筆畫的有效連接。共進行5次膨脹操作。
腐蝕(或侵蝕),是指消除邊界點而使邊界向內(nèi)收縮的過程。因為膨脹操作會造成候選文本區(qū)域面積增大,所以對膨脹之后的結(jié)果再進行腐蝕操作。為了使圖像保持原來的幾何形狀,對邊緣圖像進行腐蝕運算時,仍然使用與膨脹操作時相同的結(jié)構(gòu)元素。共進行5次腐蝕操作。
經(jīng)過一些列形態(tài)學運算處理后,得到的結(jié)果如圖2c所示。由此可以看出,文本在圖像中已經(jīng)形成了比較明顯的塊狀區(qū)域。
利用文本的筆畫特征,實現(xiàn)對候選文本區(qū)域中文本與背景的分類。首先,定義一個長度為4、方向為θ的一維窗口,然后計算邊緣圖中的像素在每個方向上的筆劃特征值。
(1)
式(1)中,f(i,j)為像素點(i,j)的灰度強度;k和l為變化參數(shù);c1和c2為各個方向上的系數(shù)。具體取值見表1。
表1 各個方向系數(shù)的定義
通過式(2)得到各個像素點的筆畫特征。
bf=max(bfθ)
(2)
對得到的筆畫特征向量使用K均值算法,實現(xiàn)文本與背景的分類。筆畫特征值較高的像素可能是文本的筆畫組成部分,其余像素很可能就是背景部分。利用該特征可以有效去除一些雜亂的背景,保留絕大多數(shù)文本的邊緣信息。處理結(jié)果如圖2d所示。
根據(jù)文本塊的大小以及排列的特點,將相鄰的候選文本塊進行合并。合并之后的文本區(qū)域,基本可以定位圖像中文本的區(qū)域。根據(jù)文本在圖像中的分布特征定義合并規(guī)則,從而去除不符合條件的候選文本塊。定義的合并規(guī)則為:1) 文本塊的面積大小要適中;2) 文本塊的縱橫比不宜太大或者太?。?) 任意兩個文本塊不宜存在重疊部分。合并之后的結(jié)果如圖2e所示。
經(jīng)合并操作后得到的候選文本塊的邊界還不夠準確。因為這些文本塊的尺寸是固定的,經(jīng)過合并操作之后,可能保留了多余的背景區(qū)域或者漏掉了部分文本塊。對各個候選區(qū)域進行投影輪廓分析,從而將候選文本區(qū)域的邊界進行準確定位。處理結(jié)果如圖2f所示。
為測試上述算法的性能,定義了在自然場景圖像文本檢測中常用的文本塊的查全率和誤檢率。查全率是指被檢測出來的文本行數(shù)在總的文本行數(shù)中的占比;誤檢率是指檢測到的文本塊數(shù)中非文本塊數(shù)的占比。測試結(jié)果:在文本塊粗定位階段,查全率為95.6%,誤檢率為28.5%;在候選文本塊確認階段,查全率為90.4%,誤檢率為15.6%。
圖2 文本檢測步驟及結(jié)果示意圖
在文本塊的粗定位階段,查全率和誤檢率都比較高。文本塊粗定位階段,主要目的是讓定位區(qū)域盡可能包含所有的文本區(qū)域,避免漏檢。因此,這個階段的查全率和誤檢率比較高是合理的。在候選文本塊確認階段,誤檢率從之前的28.5%降到了15.6%,這說明通過筆畫特征進行檢測,抓住了文本的主要特征因素,可以實現(xiàn)文本與背景之間的有效分離。