王 瑞, 李海峰, 馬 琳
(哈爾濱工業(yè)大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院, 哈爾濱 150001)
隨著科技的發(fā)展,便攜式的智能設(shè)備已經(jīng)進(jìn)入普及階段,而設(shè)備中往往都具有著視頻錄制功能,通過智能手機(jī)、平板電腦等任何實(shí)體,人們錄制視頻也日漸趨于簡易,而網(wǎng)絡(luò)的日益發(fā)達(dá),又促使人們將視頻上傳至網(wǎng)絡(luò),形成了海量的視頻數(shù)據(jù)。作為一種信息傳遞的模式,相對于文字、聲音,視頻數(shù)據(jù)攜帶的信息量更為豐富。如何從當(dāng)下人們產(chǎn)生的海量視頻數(shù)據(jù)中提取有意義的信息一直以來即是學(xué)界研究熱點(diǎn),其中一個(gè)備受多方關(guān)注的課題方向就是視頻中文本的識別技術(shù),因?yàn)橐曨l中出現(xiàn)的文本信息常常會與視頻的內(nèi)容主題直接相關(guān),可以將其應(yīng)用于視頻檢索領(lǐng)域,或者作為下一步數(shù)據(jù)挖掘的數(shù)據(jù)來源[1]。
而這些視頻當(dāng)中,很多視頻由于錄制設(shè)備的限制(手機(jī)、平板電腦、監(jiān)控設(shè)備等),其分辨率往往不高,甚至受到干擾噪聲影響,質(zhì)量上跡近低劣。本文主要對于超低分辨率視頻的字符識別進(jìn)行了研究。目前針對此類視頻的字符識別,傳統(tǒng)的視頻OCR技術(shù)無法應(yīng)用于其中,比如由于字符過小,二值化處理后信息會丟失許多,許多經(jīng)典的特征提取方法也不再適用[2]。時(shí)下,關(guān)于此類低分辨率的視頻識別問題,Ohkura等人[3]提出使用超分辨率(Super Resolution)的識別方法,將低分辨率的圖片復(fù)原為高分辨率圖片,再使用傳統(tǒng)的字符識別技術(shù)即可獲得有效實(shí)現(xiàn)。Einsele-Aazami[4]的研究是將高清圖片進(jìn)行處理,模擬低分辨率視頻的生成模型,生成低分辨的字符后再用于其后的識別。而本次研究中,擬將使用基于模板匹配的核心識別算法,對超低分辨率的視頻進(jìn)行識別。同時(shí)為了減少用戶標(biāo)注的工作量,提出了自動生成模板庫的算法,以及為了改進(jìn)識別率而提出的糾錯后處理算法。最終,又設(shè)計(jì)研發(fā)了一套完整的視頻字符識別系統(tǒng),在實(shí)際應(yīng)用中取得了穩(wěn)定良好的效果,具有高度重要的現(xiàn)實(shí)意義。
目前,對于超低分辨率的界定并未形成公認(rèn)的定義,本文根據(jù)已有研究者給出的定義[5-6],認(rèn)為字符大小在3x5像素至10x10像素下的字符為超低分辨率字符。如圖1所示,左側(cè)文本圖片的字符大小為5x8像素,右側(cè)文本的大小為3x5像素。在超低分辨率下,由于像素點(diǎn)很少,攜帶信息的能力有限,因此形態(tài)較為復(fù)雜的字符,比如漢字,在此分辨率下根本無法做到清晰識別。為此,定義本算法識別的字符范圍為阿拉伯?dāng)?shù)字0-9、大小寫英文字符,以及某些形狀單一的特殊符號,如“.”、“-”、“+”等。
(a) 5×8像素文本圖片 (b) 3×5像素文本圖片
(a) 5×8 pixel text image (b) 3×5 pixel text image
圖1視頻字符示意圖
Fig.1Textimageinultra-lowresolutionvideo
基于模板匹配的字符識別算法,需要建立一個(gè)高質(zhì)量的模板庫。也就是模板庫中需要包含不同字符的圖片,這些圖片與視頻中待識別的圖片大小相同。為了取得較好的識別效果,這些模板的最佳選擇就是直接來自于待識別視頻,因?yàn)檫@樣模板庫的數(shù)據(jù)與識別數(shù)據(jù)即會屬于同一個(gè)概率分布。
如果由人工進(jìn)行模板挑選,需要較大的工作量,尤其是面對需要識別大量視頻的情況下,工作量將更加可觀。因此需要建立一種自動生成識別模板庫的方法。自動生成模板庫算法的步驟流程具體如下。
(1)用戶設(shè)置識別字符的字符集。研究中設(shè)計(jì)了一個(gè)人機(jī)交互界面,具有相應(yīng)的選項(xiàng),供用戶選擇字符集。比如數(shù)字字符集、大寫英文字母字符集、小寫英文字母字符集。同時(shí),用戶也可以自定義字符集,輸入一些符號類型的字符,比如逗號、句號、問號等。
(2)按照用戶定義的字符集生成高清字模圖片。將用戶定義的字符集生成分辨率高的圖片。由于未能確定用戶的字符背景色是黑色、還是白色,有針對性地將生成2套高質(zhì)量字模圖片。此步驟由編寫的程序自動生成某一字體的單一字符圖片。
(3)將高清字模圖片按照目標(biāo)視頻識別的大小進(jìn)行縮放。對于(2)中生成的高分辨率字符圖片使用圖像處理算法進(jìn)行處理,使得其圖片大小與待識別字符整體保持一致。并且能夠最大程度地保留字符原有信息,即依然可以分辨出處理后是哪個(gè)字符。
綜上3個(gè)步驟生成的標(biāo)準(zhǔn)字模圖片如圖2所示。第一行是高清字符圖片,每個(gè)字符高52像素,寬30像素。第二行是經(jīng)過高斯平滑后的圖片。第三行是最終加入縮放處理后生成的圖片,字符高8像素,寬5像素。
圖2 高清字符縮放結(jié)果
(4)對于待識別的字符背景是黑色、還是白色進(jìn)行檢測。此處需要開展是黑色背景、白色背景、至灰度圖片中背景接近黑色、或者接近白色情況的應(yīng)用辨識。該步驟是為下一步挑選模板提供基礎(chǔ)準(zhǔn)備,如果未能獲知當(dāng)前的字符背景信息,那么也將無法生成和待識別字符相近的模板庫。識別的基本假設(shè)如下:如果待識別字符是黑色背景,那么總體上待識別字符與黑色背景的距離要小于白色背景的標(biāo)準(zhǔn)字模,反之亦然。
(5)從待識別的圖片中挑選出與標(biāo)準(zhǔn)字模接近的圖片加入模板庫。使用模板匹配算法,以(3)中生成的字模圖片作為模板原型,對于視頻進(jìn)行字符識別,將與模板原型最接近的字符挑選出來。加入到模板庫中。目前的選擇策略是對于每一個(gè)標(biāo)準(zhǔn)字模,將其與每個(gè)待識別的字符計(jì)算距離形成距離分布,取前K個(gè)加入模板庫。如圖3所示,第一列是自動生成的標(biāo)準(zhǔn)模板,其后的圖片是根據(jù)選擇策略從待識別字符中選取的新模板。
(6)對于每一個(gè)字符,保存其垃圾模板的閾值。利用上一步中每個(gè)標(biāo)準(zhǔn)字模的距離分布,可以確定垃圾模板的距離閾值。當(dāng)進(jìn)行模板匹配時(shí),會檢查是否超過此閾值,若超過則認(rèn)為識別結(jié)果無效,該字符質(zhì)量過差,無法識別。
(7)保存模板庫至文件,模板庫建立完成。將模板庫中的多幅圖片轉(zhuǎn)換為一個(gè)灰度值矩陣,并將此矩陣保存為特殊格式的文件存儲在磁盤中。其它視頻進(jìn)行字符識別時(shí)可以共用此模板庫。
圖3 模板自動生成算法結(jié)果
OCR系統(tǒng)的識別引擎基于模板匹配算法。其輸入為已分割好的待識別字符以及模板庫,輸出為圖片中表示的字符內(nèi)容。
本字符識別模板匹配算法的步驟主要包括:圖像預(yù)處理,提取特征,進(jìn)行特征匹配,記錄候選名單,輸出識別結(jié)果。在此,對于每一步驟的實(shí)現(xiàn)解析可給出如下論述。
(1)預(yù)處理階段。將分割的圖片進(jìn)行灰度化與標(biāo)準(zhǔn)化處理,同時(shí)檢測分割圖片中沒有文字內(nèi)容的空白圖片。對于極低分辨率的字符,由于二值化后圖片的信息丟失嚴(yán)重,研究中并未采用傳統(tǒng)的二值化方法進(jìn)行預(yù)處理。
(2)特征提取階段。本識別引擎使用的是圖像像素的灰度值數(shù)據(jù),在極低分辨率的情況下,無法提取經(jīng)典的特征,比如點(diǎn)、線等特征,因此本次研究采用了最直觀的像素特征。
(3)特征匹配。計(jì)算待識別圖片與模板庫中圖片的相似度,經(jīng)過實(shí)驗(yàn),使用余弦距離的識別效果要更顯優(yōu)勢。
(4)記錄候選名單。對于每一個(gè)待識別的字符,各自記錄模板庫中與待識別字符的相似度在前3位的字符,形成第一候選(即識別結(jié)果)、第二候選、第三候選。注意,這里要求3個(gè)字符分別屬于不同類別。為此,則將第一候選的內(nèi)容作為結(jié)果輸出。同時(shí)將第二候選、第三候選的記錄也保存起來,供后處理模塊調(diào)取使用。
在自動建立模板庫后,此時(shí)的模板庫的質(zhì)量并不高,因?yàn)槭褂玫母咔遄址淖煮w可能與視頻中的字符不同,存在一定的差異,因此生成的模板庫也不會是完全正確,導(dǎo)致第一次識別的準(zhǔn)確率不會太高。綜上分析可知,識別后處理過程就尤顯重要,在后處理過程中對于模板庫進(jìn)行逐步的優(yōu)化,使用人工糾錯與自動糾錯互相配合的方法使得識別結(jié)果不斷提高。
1.4.1 AR模型自動糾錯算法
自動糾錯算法針對的是數(shù)值類型的變量的糾錯。其基本假設(shè)是,視頻中的數(shù)值一般都代表自然界中的物理量,而這些物理量隨著時(shí)間的變化都是連續(xù)的,很少會發(fā)生數(shù)值的突變。如果出現(xiàn)突變,自動糾錯算法會認(rèn)為是錯誤,并且自行糾正,同時(shí)提醒用戶。
本系統(tǒng)使用自回歸模型(Autoregressive model,AR模型)進(jìn)行糾錯。AR模型是統(tǒng)計(jì)中一種處理時(shí)間序列的方法。對于變量x,則有:
(1)
由式(1)可知,當(dāng)前t時(shí)刻的值可由之前的歷史數(shù)據(jù)的線性組合形成。本系統(tǒng)中使用的AR模型為5階模型,即:
(2)
AR模型的自動糾錯步驟,可分述如下:
(1)對于包含錯誤的識別結(jié)果X(t),可以使用AR模型參數(shù)估計(jì)得到預(yù)測結(jié)果X′(t)。
(2)若|X′(t)-X(t)|≥thresh,則認(rèn)為這里出現(xiàn)了異常的突變點(diǎn),需要對識別錯誤的數(shù)據(jù)進(jìn)行糾正。根據(jù)實(shí)驗(yàn),閾值的取值為預(yù)測與識別結(jié)果均值的N倍,此處N取為3。閾值計(jì)算的數(shù)學(xué)表述如式(3)所示:
(3)
這樣的閾值將可以達(dá)到較好的糾錯結(jié)果。
(3)糾正的時(shí)候,首先確定是哪一位導(dǎo)致錯誤最大,接著從識別產(chǎn)生的第一候選與第二候選列表中嘗試糾錯,如果使用候選名單中替換后小于閾值,則糾錯結(jié)束。如果候選列表糾錯效果未臻理想,則直接使用AR模型擬合所得值。同時(shí),配合識別可信度進(jìn)行檢查,對于可信度高的字符不予糾錯。
實(shí)踐中發(fā)現(xiàn),AR模型的局限性在于:對于識別錯誤率較大的情況下(大于5%),AR模型無法使用,此時(shí)需要進(jìn)行手動糾錯。另外,對于比較小的突變,比如數(shù)值類型末尾,由于變化量小,也無法糾錯,因此自動糾錯主要就是在手動糾錯修正了幾次后,錯誤率較低的情況下獲得使用。
1.4.2 人工糾錯
人工糾錯算法通過一個(gè)用戶界面,將識別結(jié)果與實(shí)際圖像同時(shí)顯示,由用戶進(jìn)行手動糾錯。用戶可以在人機(jī)界面中輸入正確的標(biāo)簽,而后將該字符圖片以及標(biāo)簽加入模板庫。人工糾錯時(shí),對于質(zhì)量處理特別差的字符,可以標(biāo)注為垃圾模板。
視頻OCR系統(tǒng)的整體運(yùn)行流程如圖4所示。
圖4 系統(tǒng)運(yùn)行流程圖
由圖4可知,用戶對于一個(gè)新類的視頻,首先進(jìn)行識別區(qū)域的選擇,對待識別的每個(gè)字符分辨進(jìn)行框選。接著將視頻每一幀的圖像預(yù)處理按照確定的識別區(qū)域予以分割,之后開啟預(yù)處理,比如灰度化、標(biāo)準(zhǔn)化等。
在此基礎(chǔ)上,運(yùn)行系統(tǒng)初始模板庫建立算法,建立初始模板庫,接著進(jìn)行第一次識別。識別后將啟用后處理模塊對于識別結(jié)果進(jìn)行分析,在這一模塊會用到一些先驗(yàn)知識來進(jìn)行自動糾錯,例如數(shù)值型物理量連續(xù)變化的特點(diǎn),以及識別引擎對于識別結(jié)果的可信度信息。如果可信度高,那么不進(jìn)行糾錯。
模板庫維護(hù)算法可以判定甄別是否將糾錯后的字符加入模板庫,而由更新后的模板庫對視頻給出二次優(yōu)化識別。重復(fù)如上糾錯步驟,使得模板庫質(zhì)量不斷提升,識別效果持續(xù)改進(jìn)。直到用戶認(rèn)為識別準(zhǔn)確率滿足要求,保存最終結(jié)果。
系統(tǒng)整體功能結(jié)構(gòu)如圖5所示。系統(tǒng)開發(fā)環(huán)境為VS2013,開發(fā)語言為C++,使用Qt GUI Framework設(shè)計(jì)界面,研發(fā)定制功能。使用OpenCV開源庫輔助實(shí)現(xiàn)圖像處理算法。
圖5 系統(tǒng)整體功能結(jié)構(gòu)圖
實(shí)驗(yàn)時(shí),使用項(xiàng)目合作方提供的5個(gè)視頻數(shù)據(jù)。6個(gè)視頻的基本信息見表1。
表1 測試數(shù)據(jù)基本信息
為了驗(yàn)證后處理糾錯反饋算法的有效性,記錄了每一輪糾錯迭代過后的識別結(jié)果,這里定義一輪迭代為用戶糾錯5次,且每一次的糾錯類型不同(處于不同位置,錯誤類型不同),5次糾錯后更新模板庫,再次識別。具體數(shù)據(jù)可見表2。
表2 迭代識別錯誤率統(tǒng)計(jì)
由表1、表2可以看出,使用自動生成的模板庫進(jìn)行首次識別的時(shí)候,識別率都不高。這是由于在這一環(huán)節(jié)并未讓用戶進(jìn)行任何的標(biāo)注,因此缺少關(guān)于問題域的知識,這就使得自動生成的模板庫比較粗糙,摻雜了一些錯誤模板,導(dǎo)致識別率降低。而由之后每一輪糾錯迭代后的識別率可以看出,使用本文的糾錯算法,模板庫的質(zhì)量快速提高,從而使得識別的錯誤率顯著下降。這也充分證明了后處理糾錯算法的有效性。
從超低分辨率視頻中提取有效的字符信息,目前研究成果較少,現(xiàn)階段大多都是針對高清分辨率下的視頻字符開展研究。在本文中,設(shè)計(jì)的核心識別引擎采用了模板匹配算法,為了盡量減少用戶標(biāo)注的工作量,再次提出了全自動生成模板庫的算法,大大提高了用戶的工作效率。同時(shí)為了彌補(bǔ)自動生成模板庫導(dǎo)致的模板庫質(zhì)量的退化,又專門提出了一種糾錯反饋機(jī)制,包含人工糾錯與自動糾錯,使得模板庫的質(zhì)量快速提高,從而保證了優(yōu)異的字符識別準(zhǔn)確率。最后,則綜合研發(fā)了一套完整的視頻OCR識別系統(tǒng),提供了人性化的用戶界面,滿足了項(xiàng)目方實(shí)踐使用的需求。在接下來的工作中,主要將重點(diǎn)研究低分辨率視頻下的文本區(qū)域自動定位,以及文本跟蹤技術(shù)。目前識別區(qū)域的確定是需要用戶編輯,今后則將通過自動文本定位算法,進(jìn)一步優(yōu)化系統(tǒng)識別流程,讓用戶的操作更加簡單、便捷。