邢寶峻 彭曉明 殷 哲
(空軍預(yù)警學(xué)院 武漢 430014)
近年來,隨著軍事科技的不斷發(fā)展,越來越多的高技術(shù)裝備列裝部隊(duì),這些裝備技術(shù)集成度高,操作難度大,對(duì)部隊(duì)訓(xùn)練水平提出了更高的要求,尤其是對(duì)于航空兵部隊(duì),隨著戰(zhàn)斗機(jī)的不斷更新,如何正確評(píng)估飛行員的訓(xùn)練水平、制定科學(xué)高效的訓(xùn)練計(jì)劃成為制約半部隊(duì)實(shí)戰(zhàn)化水平提升的關(guān)鍵。而隨著視頻與圖像識(shí)別技術(shù)的發(fā)展,視頻的識(shí)別與分析與軍事訓(xùn)練結(jié)合的越來越緊密,通過對(duì)戰(zhàn)斗機(jī)機(jī)載雷達(dá)視頻進(jìn)行分析,不僅可以準(zhǔn)確評(píng)估飛行員對(duì)機(jī)載雷達(dá)的操縱水平,還可以為查找飛行員飛行訓(xùn)練短板弱項(xiàng),針對(duì)性制定飛行訓(xùn)練計(jì)劃提供有力的數(shù)據(jù)支撐,提升飛行部隊(duì)實(shí)戰(zhàn)化訓(xùn)練水平。
現(xiàn)代主流視頻分析的設(shè)計(jì)模式分為前端視頻分析和后端視頻分析,由于戰(zhàn)場(chǎng)環(huán)境瞬息萬變,且前端視頻分析具有對(duì)硬件資源要求高和緩存難度大的特點(diǎn)[1],而戰(zhàn)斗機(jī)機(jī)載雷達(dá)視頻分析,更多地是為飛行訓(xùn)練計(jì)劃制定、飛行員雷達(dá)操縱評(píng)估等方面提供可靠依據(jù),所以主要采用后端視頻分析的方式,即將視頻采集和視頻分析分離進(jìn)行,對(duì)實(shí)時(shí)性要求不高。本文主要通過對(duì)已有的戰(zhàn)斗機(jī)機(jī)載雷達(dá)視頻特點(diǎn)進(jìn)行分析,提出了視頻識(shí)別的方法手段,為利用雷達(dá)視頻為下步飛行相關(guān)訓(xùn)練進(jìn)行評(píng)估和計(jì)劃制定提升了可能。
1)分辨率較低。由于戰(zhàn)斗機(jī)在作戰(zhàn)過程中機(jī)動(dòng)性強(qiáng)、電信通道低的特點(diǎn),所以機(jī)載雷達(dá)視頻通常采用H.263編碼模式進(jìn)行,H.263是由ITU-T制定的應(yīng)用低碼率的視頻編碼標(biāo)準(zhǔn),它采用混合的視頻編碼體系,可以保證視頻信息在易誤碼、易丟包的異構(gòu)網(wǎng)絡(luò)環(huán)境下的傳輸,同時(shí)采用高精度的運(yùn)動(dòng)補(bǔ)償來實(shí)現(xiàn)更加精確的預(yù)測(cè)[2],但是由于H.263模式是面向低碼率的視頻編碼而設(shè)定的,所以得到的視頻分辨率較低。
2)視頻畫面呈現(xiàn)二值化。為方便飛行員戰(zhàn)斗時(shí)快速尋找并鎖定目標(biāo),戰(zhàn)斗機(jī)機(jī)載雷達(dá)視頻普遍簡(jiǎn)捷易懂,視頻畫面以黑白兩色為主,以幾何圖形、字符為主要形式,在進(jìn)行視頻處理時(shí)無需對(duì)視頻畫面進(jìn)行灰度處理,有利于提升視頻處理的效率。
由于現(xiàn)代機(jī)載視頻的分辨率較低、視頻畫面二值化等特點(diǎn),所以為準(zhǔn)確分析戰(zhàn)斗機(jī)機(jī)載雷達(dá)視頻,首先要對(duì)視頻進(jìn)行預(yù)處理,通過視頻的壓縮、按幀截取成圖像、圖像的拼接融合等工作,將視頻信息轉(zhuǎn)化為圖像信息,再通過對(duì)拼接的圖像進(jìn)行腐蝕與膨脹的操作,降低原機(jī)載雷達(dá)視頻分辨率低以及在圖像拼接過程中對(duì)圖像造成的損壞的影響,為下步識(shí)別做準(zhǔn)備。
由于戰(zhàn)斗機(jī)機(jī)載視頻占用空間較大,在進(jìn)行視頻分析過程中會(huì)占用大量的時(shí)長,導(dǎo)致分析效率降低。針對(duì)這一情況,在對(duì)視頻進(jìn)行預(yù)處理時(shí),可先對(duì)視頻進(jìn)行有損壓縮,即舍棄視頻中不影響原含義的數(shù)據(jù)[3],由于視頻中的數(shù)據(jù)信息實(shí)際由信息量和冗余數(shù)據(jù)量兩部分組成,通過視頻的壓縮算法,可以對(duì)視頻原始數(shù)據(jù)進(jìn)行變換、量化、編碼,保留信息量,把實(shí)際存在的冗余信息去掉,從而減少它的數(shù)據(jù)量,既保證了視頻圖像質(zhì)量,又達(dá)到了減小占用容量的目的。通常重新進(jìn)行編碼后的視頻會(huì)完成視頻文件格式的轉(zhuǎn)換,由AVI視頻文件格式轉(zhuǎn)換為占用空間較小的flv、mp4等格式,這些格式的特點(diǎn)是自身空間占有率低、視頻畫面質(zhì)量良好,有利于縮短視頻分析過程中的時(shí)長,提高分析效率。
由于是對(duì)已有的戰(zhàn)斗機(jī)機(jī)載雷達(dá)視頻進(jìn)行分析,實(shí)時(shí)性要求不高,所以采用將視頻信息轉(zhuǎn)化為圖像信息而后進(jìn)行識(shí)別的方法進(jìn)行,利用python語言和OpenCV將視頻按幀截取成圖像進(jìn)行保存,而后利用Tesseract引擎對(duì)圖像信息進(jìn)行OCR識(shí)別,提取出關(guān)鍵信息。
由于對(duì)視頻流進(jìn)行按幀截取操作得到的圖像較多,為提高識(shí)別效率,適當(dāng)采用圖像拼接技術(shù)將截取的圖像進(jìn)行拼接,再對(duì)拼接后的圖像進(jìn)行識(shí)別。圖像的拼接技術(shù)通常包括特征點(diǎn)提取與匹配、圖像配準(zhǔn)、圖像融合等三大部分。首先,進(jìn)行特征點(diǎn)提取,由于SURF算法[4]具有良好的精度和魯棒性,同時(shí)又具有較好的實(shí)時(shí)性,所以采用SURF算法完成圖像序列特征點(diǎn)的提取。其次,圖像配準(zhǔn)是一種確定待拼接圖像間的重疊區(qū)域以及重疊位置的技術(shù),是整個(gè)圖像拼接的核心,可以采用基于特征點(diǎn)的圖像配準(zhǔn)方法,即通過匹配點(diǎn)對(duì)構(gòu)建圖像序列之間的變換矩陣完成全景圖像的拼接。最后,根據(jù)圖像間變換矩陣,對(duì)相應(yīng)圖像進(jìn)行變換以確定圖像間的重疊區(qū)域,并將待融合圖像映射到到一幅新的空白圖像中形成拼接圖。
圖1 拼接后的圖像
在進(jìn)行戰(zhàn)斗機(jī)機(jī)載雷達(dá)視頻預(yù)處理時(shí),由于視頻具有分辨率低的特點(diǎn),且在經(jīng)過對(duì)視頻進(jìn)行壓縮和圖像的拼接后,得到的圖像中個(gè)別字符會(huì)變得模糊不清,同時(shí)會(huì)出現(xiàn)一些孤立的“白點(diǎn)”,這些“白點(diǎn)”的存在會(huì)影響識(shí)別的準(zhǔn)確率,所以要對(duì)圖像進(jìn)行腐蝕與膨脹的處理,以消除“白點(diǎn)”的影響。
圖像形狀學(xué)中膨脹運(yùn)算實(shí)質(zhì)是采用向量加法對(duì)兩個(gè)集合進(jìn)行合并,達(dá)到將目標(biāo)區(qū)域的外邊界變成對(duì)象,使目標(biāo)區(qū)域得以擴(kuò)展,即將圖像的邊緣進(jìn)行擴(kuò)大的目的,實(shí)現(xiàn)將目標(biāo)的邊緣或者是內(nèi)部的坑填掉的效果[5]。其表達(dá)式如下:
其中膨脹A⊕B是兩個(gè)向量之和的集合,而向量加法的兩個(gè)操作數(shù)分別取自向量A和B。
而腐蝕運(yùn)算的實(shí)質(zhì)則是通過向量減法實(shí)現(xiàn)對(duì)兩個(gè)集合元素的合并,通過運(yùn)算,尋找線段的內(nèi)點(diǎn)段并將它們保存下來,起到將目標(biāo)區(qū)域的內(nèi)邊界變成背景,以此來縮小目標(biāo)區(qū)域的目的,實(shí)現(xiàn)將圖像邊緣的“毛刺”踢除掉的效果。腐蝕算法是膨脹算法的對(duì)偶運(yùn)算,其表達(dá)式:
在對(duì)圖像進(jìn)行處理時(shí),本文通過進(jìn)行形態(tài)學(xué)梯度計(jì)算,即膨脹圖像與腐蝕圖像的作差得到的差值圖像,來刻畫目標(biāo)邊界或邊緣位于圖像灰度級(jí)劇烈變化的區(qū)域,以此突出圖像中處于高亮區(qū)域的字符的外圍,從而使字符的外輪廓更加突出,方便進(jìn)行字符的識(shí)別。
圖2 原圖
圖3 膨脹圖像
圖4 腐蝕圖像
圖5 形態(tài)學(xué)梯度圖像
對(duì)戰(zhàn)斗機(jī)機(jī)載雷達(dá)視頻的識(shí)別主要通過調(diào)用Tesseract引擎進(jìn)行。Tesseract是惠普實(shí)驗(yàn)室在1985到1995年間開發(fā)的一個(gè)開源的OCR(Optical Character Recognition,光學(xué)字符識(shí)別)引擎[6]。2005年,惠普將Tesseract的源代碼對(duì)外開放并放棄對(duì)其的維護(hù),2006年Google繼續(xù)對(duì)Tesseract進(jìn)行改進(jìn)、消除Bug以及優(yōu)化工作[7]。由于Tessseract引擎具有開源性和提供自定義字符庫訓(xùn)練方法的特殊性,所以其可以通過不斷進(jìn)行訓(xùn)練,增加字符庫,不斷增強(qiáng)其圖像轉(zhuǎn)換為文本的能力,最終使Tesseract成為目前公認(rèn)最優(yōu)秀、最精確的開源OCR系統(tǒng)。
Tesseract識(shí)別字符過程通常由五個(gè)部分構(gòu)成:頁面布局分析、查找目標(biāo)塊區(qū)域、定位文本行和單詞并進(jìn)行分割、分析識(shí)別、模糊區(qū)域改進(jìn)。
圖6 Tesseract的架構(gòu)
1)頁面布局分析。對(duì)文本進(jìn)行頁面布局分析,通過頁面布局分析,可以將圖像中的文本和非文本區(qū)分開,同時(shí)提取出文本區(qū)域,得到圖像中文本區(qū)域的排列布局和分布方式,并檢測(cè)出文本區(qū)域中的字符的輪廓。
2)查找目標(biāo)塊區(qū)域。在Tesseract中,通過對(duì)文本區(qū)域中的排列布局進(jìn)行分析,可以得到一個(gè)或多個(gè)相互關(guān)聯(lián)的“塊”,這個(gè)“塊”被稱為Blob,在計(jì)算機(jī)視覺中的Blob是指圖像中的具有相似顏色、紋理等特征所組成的一塊連通區(qū)域,這些“塊”組合形成目標(biāo)塊區(qū)域。
3)定位文本行和單詞并進(jìn)行分割。在找到目標(biāo)塊區(qū)域后,通過對(duì)區(qū)域中相鄰字符之間的垂直重疊關(guān)系進(jìn)行檢測(cè),可以得到處于水平狀態(tài)的文本行。對(duì)字符間的水平關(guān)系進(jìn)行檢測(cè)可得到字符的間隔,根據(jù)字符間隔對(duì)文本行進(jìn)行分割方可得到單詞。通常文本中的字符連通區(qū)域的間隔可分為固定字符間隔、按比例排列的字符間隔和模糊字符間隔,對(duì)于固定間隔的文本可通過字符單元分割出單個(gè)字符,而對(duì)按比例排列的文本和模糊間隔的文本以協(xié)作關(guān)系共同分割得到單個(gè)字符。
4)分析識(shí)別。Tesseract會(huì)采用自適應(yīng)分類器依次對(duì)每個(gè)單詞進(jìn)行分析,分類器會(huì)對(duì)每個(gè)單詞進(jìn)行分類,并將結(jié)果在相對(duì)應(yīng)的字典中進(jìn)行搜索,并與樣本圖像進(jìn)行對(duì)比,在字典中找到相似度最高的樣本圖片對(duì)應(yīng)的單詞則進(jìn)行確認(rèn)[9]。自適應(yīng)分類器本身具有“學(xué)習(xí)能力”,可以將先分析得到的滿足條件的單詞作為訓(xùn)練樣本,增加后面字符識(shí)別的準(zhǔn)確率。而對(duì)于識(shí)別不準(zhǔn)的單詞,則通過利用A*算法搜索最優(yōu)的字符組合,直到得到滿意的識(shí)別結(jié)果。
5)模糊區(qū)域改進(jìn)。對(duì)于粘連的字符形成的模糊區(qū)域,可以將字體形狀的幾何體頂點(diǎn)作為備選分割點(diǎn)進(jìn)行分割,之后根據(jù)識(shí)別置信度來判別字符。如果都失敗,就認(rèn)為字符破損不全,則對(duì)字符進(jìn)行修補(bǔ),而后利用A*算法搜索最優(yōu)的字符組合,得到識(shí)別結(jié)果。
雖然Tesseract引擎提供了相應(yīng)字符庫以滿足字符識(shí)別的需要,但是通過實(shí)驗(yàn)發(fā)現(xiàn)直接調(diào)用Tesseract引擎中的字符庫進(jìn)行識(shí)別準(zhǔn)確率不高,會(huì)影響相關(guān)數(shù)據(jù)的分析效果,所以利用Tesseract引擎可自行訓(xùn)練字符庫的特點(diǎn),結(jié)合戰(zhàn)斗機(jī)機(jī)載雷達(dá)視頻中字符的特點(diǎn),訓(xùn)練出自己的字符庫。具體方法如下:
圖7 Tesseract訓(xùn)練字符過程
1)選取樣本圖像。在戰(zhàn)斗機(jī)機(jī)載雷達(dá)視頻截取的圖像中選取一定數(shù)量有代表性的圖片作為樣本圖像,根據(jù)機(jī)載雷達(dá)視頻的記錄特點(diǎn),主要識(shí)別內(nèi)容有三項(xiàng)內(nèi)容,一是作戰(zhàn)時(shí)間,二是雷達(dá)所處的工作狀態(tài),三是雷達(dá)中記錄的飛機(jī)的飛行狀態(tài)、搜索到的目標(biāo)等相關(guān)參數(shù),根據(jù)這三項(xiàng)內(nèi)容選取樣本,樣本內(nèi)容要包含全部需要識(shí)別的字符,其中對(duì)于經(jīng)常出現(xiàn)的字符,每個(gè)字符至少選取10次以上的樣本數(shù)量,保證樣本數(shù)量充足,有利于提高訓(xùn)練的質(zhì)量,提升識(shí)別的準(zhǔn)確率。此外,在訓(xùn)練字庫時(shí),對(duì)視頻中出現(xiàn)的不同字體的字符分成不同的字庫進(jìn)行訓(xùn)練,保證同一個(gè)字庫內(nèi)的字體的統(tǒng)一。
2)合并樣本圖像,生成Tiff圖片集。Tiff(Taggen Image File Format,標(biāo)記位圖文件格式)是為跨平臺(tái)儲(chǔ)存掃描圖像而設(shè)計(jì)的一種圖像文件格式,由于它采用無損壓縮的形式,所以以tiff格式存儲(chǔ)的圖像信息多、質(zhì)量高,具有拓展性強(qiáng)、存儲(chǔ)方便、可改性的特點(diǎn),基于這些特點(diǎn),在進(jìn)行字符訓(xùn)練時(shí),多采用tiff格式的圖像進(jìn)行。因此,將準(zhǔn)備好的戰(zhàn)斗機(jī)機(jī)載雷達(dá)視頻字符的樣本圖片統(tǒng)一轉(zhuǎn)換成tiff格式文件,并整合到同一個(gè)Tiff圖片集里,供后面訓(xùn)練使用。
3)文本檢測(cè),生成Box文件。文本檢測(cè)是一種特殊的目標(biāo)檢測(cè),可以對(duì)圖像中的文本進(jìn)行定位,正確檢測(cè)出需要覆蓋的文本的長度,并在文本四周生成矩形邊界框[10]。通過文本檢測(cè)可以按順序地列出訓(xùn)練圖像中的字符,并通過邊界框?qū)⒚總€(gè)字符分開,同時(shí)顯示出每個(gè)字符在圖像中的定位信息和邊界框的長寬、大小,其中Box文件是一個(gè)文本文件,是Tesseract引擎中識(shí)別出的文字和其坐標(biāo)的集合。
4)文字校正。對(duì)文本檢測(cè)后的文本進(jìn)行校正,調(diào)整在文本檢測(cè)中標(biāo)記邊界框時(shí)出現(xiàn)的偏差。在對(duì)新字符進(jìn)行訓(xùn)練時(shí),由于Tesseract對(duì)新字體的識(shí)別正確率有限,所以文本檢測(cè)時(shí)會(huì)出現(xiàn)一些錯(cuò)誤,可以通過合并、分離、添加、刪除等手段對(duì)矩形邊界框進(jìn)行調(diào)整,使邊界框剛好框住每個(gè)字符,通過校正可以使Tesseract引擎在識(shí)別時(shí)正確分割出每個(gè)字符并進(jìn)行識(shí)別,以此形成的字庫才可以有效提升識(shí)別的準(zhǔn)確率。
圖8 文字校正
5)計(jì)算字符集,生成字符集文件:Unicharset文件。Unicharset文件是Tesseract中的字符集文件,它包含了Tesseract引擎訓(xùn)練后可以識(shí)別的每個(gè)字符的信息,是Tesseract新字庫語言的一部分,其中Unicharset文件的第一行顯示了文件中所包含的字符數(shù),后面的每一行則是所有單個(gè)字符的信息。
6)生成字體特征文件。由于在現(xiàn)實(shí)生活中,同一種語言中往往存在很多種不同的字體,所以字庫文件中也包含了記錄字體屬性的文件,這類文件就是字體特征文件,而字體特征則是用來識(shí)別文字的關(guān)鍵信息,每個(gè)不同的文字都能通過特征來和其他文字進(jìn)行區(qū)分。而常用的特征提取方法是HOG(Histogram of Oriented Gridients)方向梯度直方圖[11]。方向梯度直方圖是目前計(jì)算機(jī)視覺、模式識(shí)別領(lǐng)域中常用的一種描述圖像局部紋理特征的一種方法。首先將文本圖像分成小的連通區(qū)域,這些連通區(qū)域也被叫做細(xì)胞單元。然后采集細(xì)胞單元中各像素點(diǎn)的梯度的或邊緣的方向直方圖。最后把這些直方圖累積組合起來,構(gòu)成特征描述符,并作為特征,可以輸入Tesseract分類器中完成字符的識(shí)別。
7)合并訓(xùn)練文件,生成字符庫。將box文件、Unicharset文件、字體特征文件等文件進(jìn)行合并,生成字符庫。
對(duì)于Tesseract引擎而言,雖然其可以通過改變圖像尺度、二值化、旋轉(zhuǎn)和抗扭斜等方法來提升識(shí)別的質(zhì)量,但是基于戰(zhàn)斗機(jī)機(jī)載雷達(dá)視頻的特點(diǎn),通過不斷完善字符庫提升識(shí)別的準(zhǔn)確率無疑是最有效的途徑,在后期進(jìn)行訓(xùn)練時(shí),可以字庫中添加模糊字文件[12]來提升識(shí)別質(zhì)量。模糊字文件不是字庫中所必需的文件,它是對(duì)識(shí)別過程中容易出錯(cuò)的字符的匯總,通過調(diào)用模糊文件,可以幫助修正識(shí)別中的錯(cuò)誤,以提高最終準(zhǔn)確率。在后期進(jìn)行識(shí)別時(shí),對(duì)容易出錯(cuò)的字符進(jìn)行整理與匯總,形成模糊字文件,并對(duì)這些字符進(jìn)行多次訓(xùn)練與識(shí)別,最終形成詞典。再次調(diào)用Tesseract引擎對(duì)類似字符進(jìn)行識(shí)別時(shí),可以通過A*算法搜索最優(yōu)的字符組合,自動(dòng)調(diào)用形成的詞典,得到正確的識(shí)別結(jié)果,達(dá)到提升識(shí)別準(zhǔn)確率的效果。
為檢驗(yàn)方法的有效性,本文將收集到的戰(zhàn)斗機(jī)機(jī)載雷達(dá)視頻分為樣本集和測(cè)試集兩部分,其中,對(duì)樣本集中的視頻主要進(jìn)行字符樣本的收集和字符庫的訓(xùn)練,通過大量的樣本字符建立起完整可靠的字符庫。測(cè)試集中的視頻主要用來檢測(cè)視頻識(shí)別的可靠性,通過調(diào)用利用樣本集訓(xùn)練的字符庫,對(duì)測(cè)試集中的視頻進(jìn)行識(shí)別,檢測(cè)出識(shí)別的準(zhǔn)確率。通過測(cè)試發(fā)現(xiàn),利用本文研究的視頻關(guān)鍵信息識(shí)別方法準(zhǔn)確率為90.72%。
圖9 字符重疊圖
其中,絕大部分內(nèi)容識(shí)別正確。少數(shù)內(nèi)容在識(shí)別過程中會(huì)出現(xiàn)符號(hào)識(shí)別錯(cuò)誤,主要原因在視頻運(yùn)行過程中部分非符號(hào)部分會(huì)與符號(hào)部分在個(gè)別時(shí)段會(huì)產(chǎn)生重疊(如圖9所示),產(chǎn)生交叉后的字符與原本字符形態(tài)相差較大,這導(dǎo)致在對(duì)字符進(jìn)行分割后,Tesseract引擎無法在字庫中找到與之相對(duì)應(yīng)的字符,影響對(duì)符號(hào)的識(shí)別。在后期研究中,會(huì)加大視頻的語義分析,根據(jù)視頻前后幀之間的關(guān)聯(lián)進(jìn)行識(shí)別。
本文通過研究,得出了對(duì)戰(zhàn)斗機(jī)機(jī)載雷達(dá)視頻識(shí)別的一般方法,通過前期對(duì)視頻進(jìn)行預(yù)處理后,調(diào)用Tesseract引擎對(duì)視頻內(nèi)容進(jìn)行識(shí)別,同時(shí)不斷訓(xùn)練字符庫以增強(qiáng)識(shí)別的質(zhì)量和準(zhǔn)確率,對(duì)戰(zhàn)斗機(jī)機(jī)載雷達(dá)視頻的識(shí)別與分析,不僅可以科學(xué)準(zhǔn)確地評(píng)估飛行員對(duì)機(jī)載雷達(dá)的操作水平,查找其在飛行過程中的短板弱項(xiàng),完成對(duì)飛行訓(xùn)練的復(fù)盤檢討和對(duì)飛行訓(xùn)練的成績?cè)u(píng)定的需要,進(jìn)而促進(jìn)航空兵部隊(duì)實(shí)戰(zhàn)化訓(xùn)練水平的提升,還可以通過對(duì)不同人員的訓(xùn)練數(shù)據(jù)進(jìn)行匯總,能夠形成相關(guān)的飛行訓(xùn)練數(shù)據(jù)庫,為下一步的訓(xùn)練評(píng)估與訓(xùn)練計(jì)劃制定提供依據(jù)。