吳岳洲,傅 強(qiáng),郭 康,張先浩
(中國(guó)民用航空飛行學(xué)院計(jì)算機(jī)學(xué)院,四川 德陽(yáng) 618307)
基于多攝像機(jī)視頻的機(jī)場(chǎng)場(chǎng)面監(jiān)視中,全景圖像生成是最為關(guān)鍵的技術(shù),基于該方法可以將多路不同點(diǎn)位不同朝向的視頻整合成一個(gè)用戶感興趣的大場(chǎng)景視圖,既保留了原始圖像的細(xì)節(jié)信息,又具有較好的整體場(chǎng)景態(tài)勢(shì)感知體驗(yàn)。全景生成常用的圖像配準(zhǔn)方法包括:基于變換域的圖像配準(zhǔn)法,如對(duì)數(shù)-極坐標(biāo)變換、傅里葉變換等[1-3];基于時(shí)域的圖像配準(zhǔn)法,如基于紋理特征、角點(diǎn)特征、像素值等的圖像配準(zhǔn)方法。機(jī)場(chǎng)場(chǎng)面全景監(jiān)視目前主要應(yīng)用于遠(yuǎn)程塔臺(tái)領(lǐng)域[4-6],多視點(diǎn)全景有利于空中交通管制中心同時(shí)觀察多個(gè)遠(yuǎn)程中小機(jī)場(chǎng)場(chǎng)面運(yùn)行態(tài)勢(shì),為其提供管制服務(wù)。國(guó)內(nèi)外基于多路攝像機(jī)視頻的遠(yuǎn)程塔臺(tái)全景監(jiān)視系統(tǒng)一般在180度的環(huán)幕上進(jìn)行顯示,對(duì)監(jiān)視中小安裝環(huán)境要求較高,且前端采集攝像機(jī)位置多集中安裝于一個(gè)點(diǎn)位,沒有考慮多點(diǎn)位全景整合生成問題。文獻(xiàn)[5,6]對(duì)遠(yuǎn)程虛擬塔臺(tái)中的全景監(jiān)視技術(shù)功能進(jìn)行了擴(kuò)充,加入了視頻圖像增強(qiáng)和目標(biāo)提取功能,但是并沒有解決多路攝像機(jī)視頻間亮度不一致和高清實(shí)時(shí)全景生成問題。
本文在已有報(bào)道文獻(xiàn)的基礎(chǔ)上,引入光照一致化、動(dòng)態(tài)規(guī)劃拼接縫、GPU統(tǒng)一計(jì)算設(shè)備架構(gòu)(Compute unified device architecture,CUDA)并行加速等技術(shù),設(shè)計(jì)并實(shí)現(xiàn)一套實(shí)時(shí)、高清的機(jī)場(chǎng)場(chǎng)面全景監(jiān)視方法。全景拼接前,首先對(duì)每一路視頻圖像進(jìn)行光照一致化處理,然后提取圖像的FAST特征[6],利用隨機(jī)抽樣一致算法(Random sample consensus,RANSAC)[7,8]進(jìn)行相鄰攝像機(jī)圖像間變換模型的魯棒估計(jì)。為實(shí)現(xiàn)相鄰攝像機(jī)圖像的平滑過渡,采用基于動(dòng)態(tài)規(guī)劃縫合線的相鄰圖像縫合。由于拼接過程中的圖像變換、圖像插值與圖像融合具有數(shù)據(jù)結(jié)構(gòu)相似、大規(guī)模、高并發(fā)的特點(diǎn),本文設(shè)計(jì)了一套基于CUDA并行加速的全景圖生成方法,充分利用CUDA的單指令多線程(Single instruction multiple thread,SIMT)特性,滿足實(shí)時(shí)性要求。
全景拼接前,需要校正各通道攝像機(jī)由于曝光差異、環(huán)境光和朝向不同導(dǎo)致的圖像亮度不一致。通常在圖像配準(zhǔn)后即可確定兩圖像的重疊部分,分別計(jì)算兩圖像在重疊區(qū)域光照強(qiáng)度的平均值或方差等統(tǒng)計(jì)量,對(duì)各通道圖像間進(jìn)行比較,計(jì)算它們的差異,然后將光照強(qiáng)度較強(qiáng)的圖像亮度降低,將光照強(qiáng)度較弱的圖像亮度增強(qiáng),達(dá)到均衡光差的效果。但是該方法對(duì)于圖像通道數(shù)超過3時(shí)校正效果并不理想,很難保證多通道圖像的亮度一致化,且無法保持原圖像亮度的對(duì)比度,容易出現(xiàn)矯正后圖像過亮或過暗的現(xiàn)象[9]??紤]到HSV色彩空間中各分量相對(duì)獨(dú)立,本文選擇其中亮度分量作為光照一致化的參考變量,與同時(shí)校正RGB三個(gè)通道的分量的方法相比,在減小計(jì)算復(fù)雜度的同時(shí),該方法有效防止了因?yàn)槟惩ǖ缊D像過亮或過暗而導(dǎo)致全景圖過亮或過暗的影響[10]。
各路視頻圖像亮度進(jìn)行全局一致化校正時(shí),定義一個(gè)基于相鄰圖像重疊區(qū)域像素亮度值的全局優(yōu)化函數(shù),均衡調(diào)整各通道圖像亮度。
+(1-gi)2β)
(1)
其中
(2)
式中,gi,gj是圖像的整體亮度校正值,Nij=|R(i,j)|表示圖像i與圖像j的重疊區(qū)域R(i,j)的像素個(gè)數(shù),α是保持多路圖像光照一致的權(quán)重,β是圖像保持原來亮度值的權(quán)重。
(3)
光照一致化后,提取特征點(diǎn)進(jìn)行變換模型參數(shù)的估計(jì)。常用的圖像特征有SIFT、SURF和FAST等,具有128維描述向量的SIFT特征計(jì)算復(fù)雜度高,FAST描述子與SURF都具有較高的匹配精度,但是FAST特征的提取速度更快,更適用于實(shí)時(shí)性要求高的應(yīng)用,因此本文采用FAST特征。為提高相鄰圖像特征檢測(cè)效率、降低誤匹配率,本文根據(jù)相鄰攝像機(jī)Ii和Ii+1的方位、場(chǎng)景等先驗(yàn)知識(shí),預(yù)設(shè)粗匹配區(qū)域Ri和Ri+1,再提取粗匹配區(qū)域的FAST特征。本文采用八參數(shù)投影變換模型,變換前像素坐標(biāo)X=(x,y,1)與變換后像素坐標(biāo)X′=(x′,y′,1)的關(guān)系見式(4)
(4)
其中,h11,h12,h21,h22為縮放、旋轉(zhuǎn)因子,h13,h23分別是水平平移因子、垂直平移因子,h31,h32是仿射變換因子。
特征點(diǎn)p周圍一圈的像素要滿足以下要求才能作為FAST特征點(diǎn):
1)候選點(diǎn)圓鄰域內(nèi)有足夠比率的像素點(diǎn)(3/4左右)與該候選點(diǎn)的灰度值差別足夠大;
(5)
其中,I(p)表示圓心p的灰度值,circle(p)表示p點(diǎn)的周圍一圈,I(x)表示circle(p)上任意點(diǎn)x的灰度值,εd為閾值。
2)候選點(diǎn)某圓鄰域內(nèi)滿足(5)式的像素點(diǎn)構(gòu)成的最大弧度值θ大于等于閥值θt。
提取FAST-16特征,然后進(jìn)行m×m(m≥3)鄰域的非極值抑制,特征點(diǎn)賦值規(guī)則如式(6)
(6)
本文中,基于RANSAC算法的FAST特征匹配流程如下:
步驟1:基于FANN方法[11],對(duì)感興趣區(qū)域Ri內(nèi)的FAST特征進(jìn)行粗匹配,得到n(n>4)對(duì)匹配點(diǎn)對(duì)。
步驟2:隨機(jī)抽取粗匹配點(diǎn)對(duì)中m(m≥4)個(gè)匹配點(diǎn)對(duì),任意三點(diǎn)不共線。
步驟3:利用抽取的m(m≥4)匹配點(diǎn)對(duì)建立線性方程組,求解模型M。
M=[h11,h12,…,h32]T
(7)
步驟4:定義歐式距離dis與距離閥值th,dis≤th時(shí),匹配點(diǎn)對(duì)為內(nèi)點(diǎn),同時(shí)更新內(nèi)點(diǎn)數(shù)目num。
(8)
步驟5:重復(fù)步驟2到步驟4直達(dá)最大采樣次數(shù)MAX或者num足夠大。MAX通過式(9)確定
(9)
其中,β表示任一對(duì)匹配點(diǎn)對(duì)是內(nèi)點(diǎn)的概率,p表示采樣的m對(duì)匹配點(diǎn)對(duì)中內(nèi)點(diǎn)的概率。
步驟6:利用獲得的內(nèi)點(diǎn)實(shí)現(xiàn)精匹配,用最小二乘法計(jì)算各變換模型參數(shù)。
特征提取的結(jié)果和匹配點(diǎn)對(duì)見圖1。
圖1 FAST特粗匹配與精匹配結(jié)果
求得變換模型參數(shù)后,需要進(jìn)行圖像縫合。由于攝像機(jī)安裝位置和環(huán)境光不同等因素,雖然攝像機(jī)型號(hào)相同,但各攝像機(jī)圖像顏色或亮度等方面會(huì)存在差異,如果對(duì)相鄰圖像直接進(jìn)行融合,在重疊區(qū)域?qū)?huì)出現(xiàn)明顯的融合帶現(xiàn)象[12]。因此,本文設(shè)計(jì)一種動(dòng)態(tài)規(guī)劃縫合線方法,采用相鄰攝像機(jī)圖像重疊區(qū)域內(nèi)HSV色彩分量作為縫合準(zhǔn)則,動(dòng)態(tài)規(guī)劃縫合線示意圖見圖2中相鄰兩圖重疊區(qū)域的虛線部分。
圖2 動(dòng)態(tài)規(guī)劃拼接縫
本文定義的相鄰攝像機(jī)圖像縫合線準(zhǔn)則是:縫合線兩邊r鄰域內(nèi)(r=9)的梯度差最小,圖像梯度分量通過Sobel算子得到;縫合線像素點(diǎn)的色差最小,色差用HSV色彩空間中反映色彩本質(zhì)特性的色度和飽和度的和進(jìn)行分析計(jì)量。每條縫合線上縫合點(diǎn)個(gè)數(shù)為mi。
(10)
其中H(·)、S(·)分別為某點(diǎn)的色度值、飽和度值,最佳縫合線即為Powermin所對(duì)應(yīng)的縫合線:
(11)
圖3是3路視頻全景拼接后的效果圖,其中圖a為沒有進(jìn)行光照一致化的縫合圖像,圖b是經(jīng)過光照一致化后的縫合圖像。
圖3 全景圖縫合
為使相鄰圖像實(shí)現(xiàn)重疊區(qū)域內(nèi)平滑過渡,采用符合人眼視覺感知的分段三角函數(shù)加權(quán)融合方法,融合函數(shù)見式(12),融合區(qū)域?yàn)榛诳p合線向兩邊鄰域擴(kuò)展得到的區(qū)域。
f(i)(x)=θ(x)f(i)(x)
(12)
其中,f(i)(x)(i=1,2,3)表示圖像在X方向坐標(biāo)值x處的R,G,B分量值,θ表示基于分段三角函數(shù)的權(quán)值。設(shè)xmin,xmax為縫合線X方向r鄰域內(nèi)(r=9)坐標(biāo)值的最小值和最大值,θ取值規(guī)則見式(13-15)。
當(dāng)xmin≤x (13) 當(dāng)xmin+(xmax-xmin)/4≤x≤3/4(xmax-xmin)時(shí) (14) 當(dāng)xmin+3/4(xmax-xmin) (15) 由于全景拼接對(duì)各通道視頻數(shù)據(jù)的訪問是相互獨(dú)立的,充分利用CUDA的SIMT特性進(jìn)行高性能并行處理,基于GPU CUDA加速的系統(tǒng)架構(gòu)示意圖見圖4。 圖4 系統(tǒng)架構(gòu) 由于CUDA中二維結(jié)構(gòu)線程劃分正好與二維圖像空間對(duì)應(yīng),該設(shè)計(jì)便于在并行平臺(tái)中產(chǎn)生與圖像像素?cái)?shù)目相等的線程數(shù)量,可做到每個(gè)獨(dú)立線程實(shí)現(xiàn)一個(gè)像素點(diǎn)相關(guān)處理。因此,CUDA內(nèi)核函數(shù)執(zhí)行時(shí)GPU線程分配采用二維分配方式。假設(shè)有48×32像素大小的圖像數(shù)據(jù)塊(如圖5),考慮CUDA內(nèi)線程調(diào)度單位是以32個(gè)線程構(gòu)成的線程束(warp),線程塊(Block)規(guī)模一般設(shè)計(jì)為16×16,因此就有3×2個(gè)線程塊處理對(duì)應(yīng)的該圖像數(shù)據(jù)塊。 圖5 CUDA線程劃分 設(shè)備端(GPU)實(shí)時(shí)生成全景監(jiān)視圖像前,主機(jī)端(CPU)和設(shè)備端需進(jìn)行以下操作:通過CPU端同步采集多通道視頻幀到主機(jī)端內(nèi)存,并動(dòng)態(tài)更新上載到CUDA全局存儲(chǔ)器;加載圖像配準(zhǔn)變換模型對(duì)應(yīng)的反向插值映射矩陣到CUDA全局存儲(chǔ)器;加載動(dòng)態(tài)規(guī)劃圖像縫合矩陣到CUDA全局存儲(chǔ)器;間歇式動(dòng)態(tài)更新光照一致化參數(shù)到CUDA常數(shù)存儲(chǔ)器(相對(duì)于全局存儲(chǔ)器訪問速度更快)。 CPU端啟動(dòng)GPU端全景實(shí)時(shí)生成的CUDA內(nèi)核函數(shù)(Kernel function),進(jìn)行以下操作:對(duì)動(dòng)態(tài)加載的多通道同步視頻幀進(jìn)行光照一致化校正;實(shí)現(xiàn)基于預(yù)加載圖像變換模型的反向插值映射;實(shí)現(xiàn)動(dòng)態(tài)規(guī)劃縫合和基于式(12)對(duì)應(yīng)的分段三角函數(shù)加權(quán)融合。以上步驟動(dòng)態(tài)循環(huán)執(zhí)行,實(shí)時(shí)生成高分辨率全景監(jiān)視圖像。CUDA加速算法流程如圖6所示。 圖6 CUDA加速算法流程圖 機(jī)場(chǎng)場(chǎng)面全景監(jiān)視對(duì)實(shí)時(shí)性、分辨率等要求較高,項(xiàng)目采用的服務(wù)器配置為:英特爾至強(qiáng)處理器E5-2650CPU,英偉達(dá)GTX Titan顯卡。前端兩個(gè)全景監(jiān)視點(diǎn)位分別架設(shè)了3個(gè)和2個(gè)1920×1080像素高清網(wǎng)絡(luò)攝像機(jī)。攝像機(jī)布局與成像示意圖如圖7。 圖7 攝像機(jī)布局及多路視頻效果 最終兩個(gè)全景監(jiān)視點(diǎn)位的全景圖合并到一起,根據(jù)需要真實(shí)監(jiān)視場(chǎng)景需求,修剪為4537×1724的高分辨率全景圖像,系統(tǒng)在機(jī)場(chǎng)塔臺(tái)的實(shí)景圖見圖8,全景監(jiān)視效果見圖9。 圖8 塔臺(tái)全景監(jiān)視系統(tǒng) 圖9 全景監(jiān)視效果圖 實(shí)際攝像機(jī)環(huán)境無法獲取各攝像機(jī)通道間的真實(shí)配準(zhǔn)模型參數(shù),本文采用均方根誤差(Root mean square error,RMSE)作為配準(zhǔn)精度計(jì)量指標(biāo)[13],利用參與配準(zhǔn)模型計(jì)算的匹配點(diǎn)對(duì)進(jìn)行計(jì)算,計(jì)算方法見式(16)。 (16) 其中,M為圖像I1,I2間的變換矩陣,x1,i,x2,i是相鄰圖像重疊區(qū)域內(nèi)匹配點(diǎn)對(duì)的坐標(biāo),m為重疊區(qū)域內(nèi)匹配點(diǎn)對(duì)的個(gè)數(shù)。通過對(duì)視頻任意抽取10幀同步數(shù)據(jù),經(jīng)過特征提取、匹配和計(jì)算分析,RMSE=0.822,配準(zhǔn)幾何誤差范圍小,滿足全景質(zhì)量要求。主機(jī)端(CPU)的圖像配準(zhǔn)算法用時(shí)對(duì)比分析見表1。 表1 配準(zhǔn)算法用時(shí)對(duì)比 實(shí)驗(yàn)表明,如果只依靠主機(jī)端(CPU)完成如圖6所示的視頻幀光照一致化、視頻幀反向插值映射和動(dòng)態(tài)規(guī)劃圖像縫合,基于5幀1920×1080像素圖像生成1幀全景監(jiān)視圖像,耗時(shí)約為2000~2300毫秒(ms)。通過算法移植設(shè)備端(GPU),通過CUDA并行加速,相同視頻場(chǎng)景下,耗時(shí)約為65~70毫秒(ms),在不影響全景生成質(zhì)量的前提下,性能得到大幅度提升。 本文提出的全景監(jiān)視方法中,各攝像機(jī)視頻間的變換模型參數(shù)實(shí)現(xiàn)基于RANSAC與FAST的全自動(dòng)計(jì)算,無需進(jìn)行攝像機(jī)標(biāo)定、現(xiàn)場(chǎng)測(cè)量等,只需在安裝時(shí)保證相鄰攝像機(jī)圖像間有一定重合區(qū)域即可。通過加入基于HSV色彩空間與全局優(yōu)化函數(shù)的動(dòng)態(tài)光照一致化,實(shí)現(xiàn)多路攝像機(jī)視頻亮度間全局自動(dòng)校正。通過動(dòng)態(tài)規(guī)劃縫合線實(shí)現(xiàn)高質(zhì)量全景生成。通過對(duì)圖像變換、圖像縫合等關(guān)鍵步驟的GPU CUDA并行加速,實(shí)現(xiàn)全景實(shí)時(shí)生成。通過在某機(jī)場(chǎng)的應(yīng)用示范,驗(yàn)證了本文提出方法的科學(xué)合理性和工程實(shí)用性。在未來的工作中,將開展基于大尺度機(jī)場(chǎng)場(chǎng)面監(jiān)視的目標(biāo)行為建模、事件挖掘分析等工作。3.3 基于CUDA加速的全景視頻生成
4 實(shí)驗(yàn)
5 結(jié)論