王棟梁,徐嘯康,白宏陽,郭宏偉
(1 中國兵器工業(yè)試驗測試研究院 華陰 714200;2 南京理工大學(xué)能源與動力工程學(xué)院 南京 210094)
隨著科技的進(jìn)步,現(xiàn)代化戰(zhàn)爭逐漸向著信息化、智能化方向發(fā)展,其中制導(dǎo)武器的發(fā)展極為迅速。制導(dǎo)武器因其在戰(zhàn)場上能夠?qū)崿F(xiàn)自主、高效費比地精準(zhǔn)打擊而在戰(zhàn)場上扮演的角色越來越重要。在圖像導(dǎo)引頭中捷聯(lián)式導(dǎo)引頭與框架式導(dǎo)引頭相比,有著抗過載、體積小、成本低等優(yōu)勢[1]。但捷聯(lián)式圖像導(dǎo)引頭具備這些優(yōu)勢的同時也因?qū)б^與彈體固連的結(jié)構(gòu)導(dǎo)致圖像導(dǎo)引頭獲取的目標(biāo)視頻會隨著彈體擾動而產(chǎn)生抖動,嚴(yán)重影響了后續(xù)的目標(biāo)跟蹤檢測精度。此外,在實際應(yīng)用中發(fā)現(xiàn)單目圖像導(dǎo)引頭存在視野窄等弊端。借鑒仿生學(xué)原理,多路復(fù)眼圖像導(dǎo)引頭通過多路光學(xué)設(shè)計,可實現(xiàn)大視場并行探測,同時又不需要框架平臺,成本低??惯^載能力強(qiáng),近幾年備受國內(nèi)外研究學(xué)者的關(guān)注。由于無穩(wěn)定平臺,解決捷聯(lián)式復(fù)眼導(dǎo)引頭的多路視頻抖動的穩(wěn)像技術(shù)是復(fù)眼導(dǎo)引頭形成裝備需要突破的關(guān)鍵技術(shù)之一。
通常視頻穩(wěn)像技術(shù)可分為機(jī)械式穩(wěn)像、光學(xué)穩(wěn)像和電子穩(wěn)像技術(shù)三類[2]。機(jī)械式穩(wěn)像技術(shù)是最早被應(yīng)用的穩(wěn)像技術(shù),通常需要陀螺穩(wěn)定平臺衰減低頻震動或采用減震裝置來隔離載體的抖動來實現(xiàn)穩(wěn)像。光學(xué)穩(wěn)像是通過采用光穩(wěn)元件實現(xiàn),當(dāng)儀器受到載體擾動,穩(wěn)像元件能夠借助慣性穩(wěn)定機(jī)構(gòu)保持穩(wěn)定不動,滿足穩(wěn)像要求。相比上述兩種方法,電子穩(wěn)像技術(shù)則采用純數(shù)字圖像處理的方法,具備成本低、精度高、速度快等優(yōu)點,成為穩(wěn)像技術(shù)的重要研究方向,也更適用于解決捷聯(lián)式圖像導(dǎo)引頭存在的視頻抖動問題。
傳統(tǒng)電子穩(wěn)像主要分為3 個步驟:運動估計、運動補(bǔ)償、圖像修補(bǔ)[3]。其中運動估計步驟最為重要,運動參數(shù)估計的準(zhǔn)確與否很大程度地決定了后續(xù)視頻穩(wěn)像的質(zhì)量。目前主流的運動參數(shù)估計方法有塊匹配法、灰度投影法以及特征點匹配法[4,5]。塊匹配法對選取塊的尺寸大小十分敏感,灰度投影法在灰度信息單一的場景中處理效果較差,且這兩種方法易受背景影響,多應(yīng)用于只有平移運動的參數(shù)估計,而基于特征點匹配的方法對平轉(zhuǎn)、旋轉(zhuǎn)以及縮放等變化場景皆有較好的估計效果[6]。
常用的特征點檢測方法主要有:SIFT(Scale Invariant Feature Transform,尺度不變特征變換)算法、SURF(Speed-Up Robust Feature,加速魯棒特征提取)算法、FAST(Features from Accelerated Seg?ment Test,角點檢測)算法等。2004 年,SIFT 算法被D.Lowe[7]提出,該算法利用高斯差分算子結(jié)合梯度直方圖完成特征的描述,具有尺度、旋轉(zhuǎn)、光照以及平移等多方面的不變性,隨即用于電子穩(wěn)像算法中特征點的提取,但是計算量大。2006年,Bay 等人[8]針對SIFT 算法在初始特征篩選步驟太過耗時的缺陷,提出了SURF算法,其利用積分圖像提升了計算效率,比SIFT 算法快近3 倍,不足之處是會增加誤匹配率。2006年,E.Rosten和T.Drummond[9]提出了一種簡單快速的特征點檢測方法,并在2010 年稍作修改發(fā)表了FAST。FAST 特征點檢測算法通過像素點之間像素值的比較從而確定特征點的位置,也正因此被認(rèn)為是最快的特征點檢測算法,然而它不具備圖像尺度不變性。M.Agrawal 等 人[10]提 出 了CenSurE(Center Sur‐round Extremas,中心環(huán)繞極值)特征提取方法,采用了雙層濾波器來近似高斯拉普拉斯算子,大大減少了計算時間,然而由于其使用的是方型濾波器,在應(yīng)對旋轉(zhuǎn)45o時性能較差。針對這個缺點,Star 特征提取算法[11],采用星型濾波器,由方形濾波器與旋轉(zhuǎn)45o后的方形濾波器組合而成。主要分為以下三個步驟:
①使用雙層濾波器構(gòu)建尺度空間
CenSurE 構(gòu)建尺度空間時采用簡單的雙層濾波器來近似高斯拉普拉斯。圖1 所示為方型濾波器,又稱CenSurE-DOB。CenSurE-DOB 濾波器的內(nèi)核尺寸為(2n+1)×(2n+1),外核尺寸為(4n+1)×(4n+1)。設(shè)In為內(nèi)核權(quán)重系數(shù),On為外核權(quán)重系數(shù)。為了使這種濾波器的DC 響應(yīng)為0,權(quán)重系數(shù)需滿足等式:
圖1 方型濾波器Fig.1 CenSurE-DOB
對尺度進(jìn)行歸一化:
星型濾波器,即CenSurE-star,由方型濾波器和一個45°旋轉(zhuǎn)的方型濾波器組合而成,如圖2 所示。每個像素點的中心環(huán)繞哈爾小波響應(yīng)值也由原始積分圖像和45°旋轉(zhuǎn)積分圖像疊加得到。CenSurE-star 生成尺度空間時采用7 個尺度,檢測子是在每一個像素上將濾波器與影像進(jìn)行卷積運算,并利用積分圖像加速運算進(jìn)程,從而獲取該像素對應(yīng)尺度的空間值,循環(huán)計算各尺度便可得到近似的LoG空間。
圖2 星型濾波器Fig.2 CenSurE-star
②檢測局部極值點
采用非極大值抑制的方法檢測尺度空間極值點作為候選特征點。將尺度空間每個像素點與本尺度層的8 個鄰域點和上下相鄰兩尺度層的18 個鄰域點進(jìn)行響應(yīng)值比較,濾除小于設(shè)定閾值的極值點。
③濾除邊緣上的不穩(wěn)定點
采用尺度適應(yīng)的Harris 方法計算主曲率[12],表達(dá)式為:
式中:Lx、Ly為響應(yīng)函數(shù)L在x和y方向的偏導(dǎo),通過計算Ha的跡和行列式即可計算出相應(yīng)的主曲率,主曲率閾值設(shè)為10。濾除大于閾值的候選點,即剔除邊緣響應(yīng),剩余的候選點即為包含了位置和尺度信息的CenSurE-star特征點。
Star特征提取算法不僅提供了尺度不變性,且穩(wěn)定性好、計算效率高。本文基于Star算法,設(shè)計了Star與光流法結(jié)合的特征提取算法,加快了前后幀特征點的提取速度,降低了特征點的誤匹配率;同時針對多路抖動視頻產(chǎn)生的并行穩(wěn)像問題,利用了并行開發(fā)庫的并行處理思路,提出了先對圖像進(jìn)行分塊,后對圖像塊并行提取特征點的解決措施,大幅度減少了穩(wěn)像耗時。
運動估計模塊首先對待處理的抖動視頻提取連續(xù)兩幀圖像,灰度化處理完提取幀,改進(jìn)后的特征點提取算法選取了Star算法提取當(dāng)前幀的特征點,記做(xi,yi),然后利用金字塔光流法預(yù)測下一幀對應(yīng)的特征點(xi',yi')。金字塔光流法的原理主要是:首先對相鄰兩幀圖像進(jìn)行分層(方便理解,假設(shè)為3層)處理,然后計算當(dāng)前幀已提取的特征點U0在各個層中的對應(yīng)的點U1、U2和U3,接著從金字塔最高層開始,以U3作為下一幀中最高層的初始點V3計算當(dāng)前最高層中的最小誤差點V'3以及得到相應(yīng)的光流,再由計算出來的光流找到下一幀中第二層的V2作為初始點,經(jīng)過相似計算后得到第二層的最小誤差點V'2,以此類推最終得到第0層的最小誤差點V'0,即特征點U0在下一幀中對應(yīng)的特征點。
如圖3所示,金字塔光流法利用了當(dāng)前幀已提取出來的特征點信息去跟蹤預(yù)測下一幀對應(yīng)的特征點,加快了特征點的提取速度,提升了特征點匹配的準(zhǔn)確率。
圖3 金字塔光流法原理圖Fig.3 Pyramid optical flow principle diagram
隨后,依據(jù)前后兩幀匹配特征點的位置(xi,yi)和,由計算公式(4)可得出前后兩幀圖像間的仿射變換矩陣H:
其中,H=,參數(shù)a11、a12、a21、a22表示視頻幀間的旋轉(zhuǎn)以及縮放部分,參數(shù)a13和a23則表示視頻幀間的平移運動。上述運動估計步驟具體流程如圖4所示。
圖4 改進(jìn)后的運動參數(shù)估計步驟流程圖Fig.4 Flow chart of improved motion parameter estimation steps
相機(jī)在拍攝過程中,相機(jī)的運動矢量通常由主觀運動矢量和隨機(jī)抖動矢量結(jié)合而成,運動平滑步驟則需要濾除隨機(jī)抖動矢量,保留相機(jī)的主觀運動矢量,使得穩(wěn)像后的視頻流運動軌跡平滑,以提升視頻穩(wěn)像效果。
Kalman濾波器是常用的濾波器之一,它采取預(yù)測值加上觀測值的方法來計算當(dāng)前時刻的估計值。本文采取Kalman濾波器對上述求出的運動參數(shù)做濾波平滑處理[13,14]。預(yù)測模型的具體計算公式為:
上式中,X(t|t-1)為第t幀對應(yīng)狀態(tài)預(yù)測量,X(t-1|t-1)為第t-1 幀對應(yīng)狀態(tài)的最優(yōu)估計值,P(t|t-1)為第t幀對應(yīng)的狀態(tài)協(xié)方差矩陣,F(xiàn)為系統(tǒng)轉(zhuǎn)移矩陣,Q為預(yù)測噪聲的方差陣。
Kalman濾波器的更新模型具體計算公式為:
上式中,M(t)為第t幀的Kalman 增益,Z(t)為觀測矩陣,I為單位矩陣,R為測量噪聲的協(xié)方差,P(t|t)為濾波后的協(xié)方差,H為均方誤差。
根據(jù)已分離出來的抖動分量對圖像進(jìn)行補(bǔ)償。首先,計算相鄰兩幀之間的運動矢量?Vk,累加得到當(dāng)前幀圖像的絕對運動矢量Sk,得到每一幀圖像的絕對運動矢量Sk后,對Sk做平滑濾波,得到平滑后的絕對運動矢量Sk',則Sk'-Sk就是每一幀圖像的補(bǔ)償運動矢量,然后,加上補(bǔ)償運動矢量后的圖像序列,則可得到最終穩(wěn)像后的視頻。
由于單目導(dǎo)引頭的視場受限,彈體在實際飛行中需要采用多目導(dǎo)引頭,亦稱復(fù)眼導(dǎo)引頭,以提供一個更廣闊的視野。然而復(fù)眼導(dǎo)引頭受彈體抖動的影響也隨多目的數(shù)量被放大,由于多路視頻的同時輸入,對彈載處理器資源造成了一定的壓力,多路抖動視頻存在實時數(shù)字穩(wěn)像的困難。
目前對于圖像處理程序的并行化處理主要通過硬件和軟件兩個方面去實現(xiàn)。硬件方面主要是通過GPU、DSP、Intel多核處理器等多核平臺進(jìn)行加速,軟件方面主要是利用并行化庫對軟件程序進(jìn)行并行改造。當(dāng)前常用的并行化庫有MPI(Message Passing Interface,消息傳遞并行編程環(huán)境)和OpenMP(Open Multi-Processing,共享存儲并行編程)。MPI在并行規(guī)模上伸縮性很強(qiáng),適用于個人電腦以及超級計算機(jī),但缺點是編程麻煩且并行效率低、內(nèi)存開銷大;OpenMP 是一套共享存儲方式并行程序接口,采用Fork-Join 模型來實現(xiàn)程序的并行化,無需再進(jìn)行復(fù)雜的線程創(chuàng)建、同步、負(fù)載平衡和銷毀工作,應(yīng)用到多核結(jié)構(gòu)上并行效率高、內(nèi)存開銷小,因此可利用OpenMP并行開發(fā)庫對多路輸入視頻進(jìn)行并行化穩(wěn)像處理。
針對穩(wěn)像算法中耗時較多的步驟:運動估計以及運動濾波,設(shè)計改進(jìn)后的并行穩(wěn)像算法步驟流程圖如圖5所示:
圖5 并行穩(wěn)像算法步驟流程圖Fig.5 Parallel video stabilization algorithm step
第一步:對輸入的多路視頻進(jìn)行幀緩沖、循環(huán)提取連續(xù)兩幀圖像以及完成圖像灰度化預(yù)處理;
第二步:基于并行化庫OpenMP對預(yù)處理完后的當(dāng)前幀先分塊再并行提取各圖像塊特征點,完成當(dāng)前幀特征點的提取后進(jìn)而并行采用光流法跟蹤提取下一幀的特征點;
第三步:對前后幀匹配的特征點,并行計算出各自對應(yīng)的仿射變換矩陣H1、H2……Hi(i=1,2......n);
第四步:對上述通過仿射變換求出來的運動矢量,采用卡爾曼濾波器并行濾波,濾除各路的隨機(jī)抖動矢量[15];
第五步:為各路濾波后的運動矢量計算對應(yīng)的補(bǔ)償運動矢量,各路圖像序列加上補(bǔ)償運動矢量,完成視頻穩(wěn)像。
具體并行化處理程序示例如下:
#pragma omp parallel sections
#pragma omp section
{第1路當(dāng)前幀特征點提取}
#pragma omp section
{第2路當(dāng)前幀特征點提取}
……
#pragma omp section
{第n路當(dāng)前幀特征點提取}
其中OpenMP 指導(dǎo)語句“#pragma omp parallel sections”用來明確開啟多線程的起始點,指導(dǎo)語句“#pragma omp section”用來明確子線程的起始點。
本文最終選取了兩種平臺進(jìn)行所設(shè)計算法性能的測試比較:PC 端與NVIDIA 的嵌入式開發(fā)板TX2,其中PC 端硬件配置如下:Intel(R) Core(TM) CPU i7-7700@3.60 GHz,16 G 內(nèi)存,操作系統(tǒng)為Windows 10。軟件平臺選取包含Opencv 庫(3.4.3 版本)的Visual Studio 2013。TX2 的配置如下:操作系統(tǒng)為Ubuntu 16.04,編譯器為GCC 6.1版本。抖動視頻選取OTB100 數(shù)據(jù)集中的BlurCar系列作為輸入測試視頻。
幀間峰值信噪比PSNR 是廣泛用于評價電子穩(wěn)像效果的指標(biāo)之一,通過比較連續(xù)兩幀圖像之間像素值的變化,最終客觀、定量地評價穩(wěn)像算法的好壞。計算公式如下:
上式中EMSE為幀間均方差,W、H 分別為圖像長寬,I(x,y)為當(dāng)前幀點(x,y)處的像素值,I'(x,y)為下一幀點(x,y)處的像素值,Imax為當(dāng)前幀中圖像最大像素值。前后兩幀圖像之間RPSNR值越大,意味著視頻前后兩幀重合度越高,視頻穩(wěn)像效果越好。
仿真測試視頻選取OTB 100 數(shù)據(jù)集中的Blur系列視頻以及外場試驗拍攝的旋轉(zhuǎn)抖動視頻。本文選取近幾年的穩(wěn)像算法進(jìn)行比較,分別是酒銳波等人[16]的基于FAST-9 角點檢測與光流法結(jié)合的穩(wěn)像算法和曾強(qiáng)等人[17]的基于SURF 特征提取算法加 上BRIEF(Binary Robust Independent Elemen‐tary Features,二進(jìn)制特征描述)運動估計的穩(wěn)像算法。
圖6、圖7 為上述方法在復(fù)雜車輛抖動場景、旋轉(zhuǎn)抖動場景下的兩種抖動視頻中提取的特征點以及前后幀特征點匹配的效果圖。
圖6 場景1算法特征點匹配圖對比Fig.6 Scene 1 feature point matching map comparison
圖7 場景2算法特征點匹配圖對比Fig.7 Scene 2 feature point matching map comparison
觀察在上述不同場景下的特征點提取以及匹配效果圖,可以發(fā)現(xiàn),對當(dāng)前幀提取特征點后,F(xiàn)AST-9 算法提取得到的特征點呈現(xiàn)聚簇的現(xiàn)象,而SURF 算法與Star 算法提取到的特征點較均勻。隨后用光流法跟蹤提取下一幀相應(yīng)的特征點,使用BRIEF 對三種算法提取到的前后幀特征點進(jìn)行特征描述進(jìn)而進(jìn)行特征點匹配。在特征點匹配圖中,近乎水平的直線表明前后幀特征點獲得了準(zhǔn)確的匹配,再觀察可知,F(xiàn)AST-9 算法與SURF 算法在場景1中均存在數(shù)量較多的誤匹配點,而改進(jìn)后的Star算法近乎沒有誤匹配點,針對旋轉(zhuǎn)變化大的場景2,F(xiàn)AST-9 算法與SURF 算法的準(zhǔn)確匹配率急劇下降,而改進(jìn)后的Star算法依舊保持較高的準(zhǔn)確匹配率。綜上2種典型場景下的特征點匹配效果圖,可以看出改進(jìn)后的Star 算法相比另外兩種算法,可以更好地適應(yīng)各種復(fù)雜背景下的特征點提取與匹配。
三種算法針對上述提到的BlurCar 系列視頻在PC 端以及TX2 兩種平臺下的具體穩(wěn)像參數(shù)對比如圖8以及表1所示。
圖8 各場景下各算法穩(wěn)像后提升PSNR對比Fig.8 Comparison of improved PSNR after image stabilization in various scenes
由表1 可以看出,本文算法穩(wěn)像后的視頻在PSNR 提升方面略優(yōu)于另外兩種算法,在PC 端以及TX2 平臺下穩(wěn)像速度方面則有著明顯優(yōu)勢,能夠較好地滿足實時穩(wěn)像的需求。
為了定量對比串行與并行的穩(wěn)像速度,本文選擇輸入同一抖動視頻BlurCar2。鑒于創(chuàng)建多線程的過程也會耗費時間,因此分別選取2 路、4 路和8 路同時輸入的情況作為串、并行穩(wěn)像耗時比較。完成對整個抖動視頻的穩(wěn)像操作后,再由已知的視頻幀數(shù)求出平均每幀穩(wěn)像耗時。兩種平臺下的具體耗時對比如下表2所示:
表2 串、并行穩(wěn)像速度對比Table 2 Serial and parallel image stabilization speed comparison
由表1 觀察可知:在PC 平臺下,多路視頻輸入的情況中,并行穩(wěn)像的平均每幀耗時比串行穩(wěn)像耗時依次減少了56.57%、59.64%和54.36%。相應(yīng)的在TX2 平臺下,并行穩(wěn)像的耗時也同樣減少了34.26%、29.76%和27.74%。綜上可見,改進(jìn)后的穩(wěn)像算法在應(yīng)對多路抖動視頻的穩(wěn)像問題上,極大程度減少了穩(wěn)像步驟的耗時,能夠較好地滿足多路實時穩(wěn)像的要求。
本文對電子穩(wěn)像算法中運動估計模塊進(jìn)行了研究,基于Star特征點提取算法,采用光流法跟蹤預(yù)測下一幀特征點,以BRIEF 二進(jìn)制特征描述算法描述特征點,實現(xiàn)了圖像幀間的運動估計,最終完成了單路視頻的穩(wěn)像。在此基礎(chǔ)上,采用OpenMP 并行開發(fā)庫對穩(wěn)像算法進(jìn)行了并行改造,實現(xiàn)了多路輸入視頻的并行實時穩(wěn)像。最后,基于OTB100 數(shù)據(jù)集的BlurCar 系列視頻,本算法在PC 平臺下對4 路抖動視頻并行穩(wěn)像的結(jié)果參數(shù)為:PSNR 平均提升4.62 dB,單幀耗時平均為14.51 ms。經(jīng)實驗比較證實,本文的多路視頻穩(wěn)像方法在速度以及穩(wěn)像效果上提升明顯,具有一定的實際應(yīng)用價值。