萬 杰,廖燕俊,朱映韜,羅承明,陳 建,2*
(1.福州大學(xué) 先進(jìn)制造學(xué)院,福建 泉州 362200;2.福州大學(xué) 物理與信息工程學(xué)院,福建 福州 350116)
動(dòng)態(tài)點(diǎn)云[1]能準(zhǔn)確表達(dá)三維空間位置關(guān)系,相較于二維影像,在目標(biāo)檢測(cè)、姿態(tài)跟蹤、虛擬現(xiàn)實(shí)(Virtual Reality,VR)[2]、增強(qiáng)現(xiàn)實(shí)(Augmented Reality,AR)[3]以及三維場景可視化等方面具有更好的表現(xiàn),因此在視頻監(jiān)控領(lǐng)域具有廣闊應(yīng)用前景。基于此,本文實(shí)現(xiàn)了一種基于動(dòng)態(tài)點(diǎn)云的三維監(jiān)控與壓縮系統(tǒng)。該系統(tǒng)以雙目相機(jī)作為三維點(diǎn)云獲取設(shè)備,以NVIDIA 公司的Jetson Nano 作為壓縮編碼的處理器,以個(gè)人計(jì)算機(jī)作為遠(yuǎn)程監(jiān)控終端,將所提出的改進(jìn)的動(dòng)態(tài)點(diǎn)云編解碼框架[4]嵌入三維視頻監(jiān)控系統(tǒng)中,實(shí)現(xiàn)了動(dòng)態(tài)點(diǎn)云的獲取、呈現(xiàn)、壓縮與傳輸?shù)耐暾到y(tǒng)流程,為3D 目標(biāo)監(jiān)控、3D 遠(yuǎn)程會(huì)議和AR/VR 等新興智能產(chǎn)業(yè)提供一定的學(xué)術(shù)參考和應(yīng)用實(shí)例。本文的主要貢獻(xiàn)如下。第一,實(shí)現(xiàn)了一種基于動(dòng)態(tài)點(diǎn)云的三維監(jiān)控與壓縮系統(tǒng),實(shí)現(xiàn)了三維監(jiān)控場景下點(diǎn)云數(shù)據(jù)的獲取、預(yù)處理、呈現(xiàn)以及壓縮存儲(chǔ)的整個(gè)流程。第二,提出了一種針對(duì)監(jiān)控場景的視頻點(diǎn)云編碼方法,基于監(jiān)控場景動(dòng)靜特性,對(duì)點(diǎn)云幀進(jìn)行前景動(dòng)態(tài)目標(biāo)識(shí)別并使用改進(jìn)的幀間壓縮算法進(jìn)行編碼,而后對(duì)背景點(diǎn)云計(jì)算幀間誤差實(shí)現(xiàn)選擇性編碼,實(shí)現(xiàn)了對(duì)3D 監(jiān)控視頻的高效壓縮和存儲(chǔ)。
本文以雙目相機(jī)為核心硬件,以提出的適用于監(jiān)控場景的改進(jìn)動(dòng)態(tài)點(diǎn)云編碼器為編碼方式,配合當(dāng)前點(diǎn)云處理中經(jīng)典的三維獲取和預(yù)處理技術(shù)[5],共同實(shí)現(xiàn)對(duì)三維場景的實(shí)時(shí)監(jiān)控與動(dòng)態(tài)點(diǎn)云視頻的壓縮存儲(chǔ)。圖1 展示了系統(tǒng)采集與編碼端的整體框架,分為以下步驟。
圖1 基于動(dòng)態(tài)點(diǎn)云的三維監(jiān)控與壓縮系統(tǒng)編碼框架
步驟一,點(diǎn)云數(shù)據(jù)的獲取。通過雙目相機(jī)的雙紅綠藍(lán)(Red Green Blue,RGB)攝像頭進(jìn)行二維圖像采集,之后依據(jù)三角測(cè)量原理進(jìn)行深度信息計(jì)算,實(shí)現(xiàn)從二維視頻到三維動(dòng)態(tài)點(diǎn)云視頻的生成。
步驟二,對(duì)獲取點(diǎn)云數(shù)據(jù)的預(yù)處理。在實(shí)驗(yàn)中發(fā)現(xiàn),雙目相機(jī)噪點(diǎn)以離散、隨機(jī)的方式出現(xiàn)于物體邊緣和前后景空隙處,采用基于統(tǒng)計(jì)學(xué)的離群點(diǎn)去除方法[6]對(duì)原始點(diǎn)云去噪。
步驟三,對(duì)預(yù)處理點(diǎn)云數(shù)據(jù)的可視化。去噪后的點(diǎn)云序列分為兩個(gè)路徑,先是通過ZED 公司提供的可視化接口在監(jiān)控前臺(tái)進(jìn)行實(shí)時(shí)可視化展示,實(shí)現(xiàn)監(jiān)控環(huán)境的三維監(jiān)視效果。
步驟四,對(duì)點(diǎn)云數(shù)據(jù)的壓縮編碼。對(duì)點(diǎn)云序列進(jìn)行前后景分割,得到監(jiān)控背景和監(jiān)控前景兩個(gè)不同性質(zhì)的點(diǎn)云序列。前景點(diǎn)云被認(rèn)為是存在運(yùn)動(dòng)變化的監(jiān)控主體,選擇所提出的基于視頻的點(diǎn)云壓縮標(biāo)準(zhǔn)(Video-based Point Cloud Compression,V-PCC)[7]改進(jìn)算法進(jìn)行編碼。而背景點(diǎn)云被認(rèn)為是幾乎不存在運(yùn)動(dòng)的非主體靜態(tài)對(duì)象,通過幀間變化程度判定以選擇是否需要進(jìn)一步編碼。對(duì)于變化不大的幀間背景點(diǎn)云進(jìn)行舍棄,由前幀復(fù)用實(shí)現(xiàn)完整的監(jiān)控場景重構(gòu);對(duì)于存在足夠差異的背景點(diǎn)云,通過點(diǎn)云庫中的八叉樹編碼進(jìn)行編碼。
對(duì)于編碼后的點(diǎn)云數(shù)據(jù),需要通過解碼重構(gòu)才能進(jìn)行回放,解碼重構(gòu)流程如圖2所示。由圖2可知,本文的解碼框架可以理解為編碼的逆過程。
圖2 基于動(dòng)態(tài)點(diǎn)云的三維監(jiān)控與壓縮系統(tǒng)解碼框架
本文的基于動(dòng)態(tài)點(diǎn)云的三維監(jiān)控與壓縮系統(tǒng)中,采用的硬件如圖3 所示,通過ZED 軟件開發(fā)工具包(Software Development Kit,SDK)創(chuàng)建InitParameters 對(duì)象對(duì)關(guān)鍵信息初始化,實(shí)現(xiàn)基于雙目相機(jī)的三維點(diǎn)云數(shù)據(jù)的獲取功能。
圖3 系統(tǒng)搭建所涉及的硬件
圖4 展示了室內(nèi)測(cè)試場景下系統(tǒng)采集到的點(diǎn)云示例。可以觀察到,直接捕獲的點(diǎn)云數(shù)據(jù)存在一定噪點(diǎn)。這些點(diǎn)是由于采集過程中受限于視角差、光線、振動(dòng)等外界客觀因素,導(dǎo)致三維構(gòu)建中目標(biāo)的邊緣可能存在深度信息估計(jì)不精準(zhǔn)的問題。
圖4 雙目相機(jī)獲取的點(diǎn)云示例圖
在噪聲濾波階段,所采用的算法為統(tǒng)計(jì)學(xué)濾波算法。雙目相機(jī)采集得到的三維點(diǎn)云中,各點(diǎn)相較于k個(gè)鄰近點(diǎn)間的距離在一定領(lǐng)域內(nèi)大致服從高斯分布,可用概率密度函數(shù)表示為
式中:xi為點(diǎn)云第i個(gè)點(diǎn)在當(dāng)前鄰域k個(gè)鄰近點(diǎn)的平均距離,μ為距離均值,σ為標(biāo)準(zhǔn)差。
由于離群點(diǎn)噪聲分布相對(duì)稀疏,因此通過遍歷點(diǎn)及鄰近區(qū)域點(diǎn)的平均距離來確定。對(duì)于當(dāng)前幀點(diǎn)云P共有n個(gè)點(diǎn),遍歷每個(gè)pi點(diǎn),其中(xi,yi,zi)為該點(diǎn)幾何坐標(biāo),之后建立KD 樹查找最近的k個(gè)點(diǎn)計(jì)算平均距離di;依據(jù)設(shè)定的離群點(diǎn)閾值D,將平均值超過該閾值的點(diǎn)去除,在算法中D=μ±ασ,α為標(biāo)準(zhǔn)差倍數(shù),平均距離與標(biāo)準(zhǔn)差的計(jì)算公式為
對(duì)采集點(diǎn)云使用不同k與α進(jìn)行多次測(cè)試后去噪的比較,經(jīng)多次實(shí)驗(yàn),當(dāng)取k=16、α=0.5 時(shí),在圖5 的主觀視圖中取得最佳的降噪結(jié)果。該參數(shù)下實(shí)現(xiàn)了3.99%的去噪比,盡管隨著參數(shù)的進(jìn)一步提升能實(shí)現(xiàn)更高的去噪比例,但會(huì)導(dǎo)致過度濾波。因此,本文均以k=16、α=0.5 作為運(yùn)行時(shí)的濾波參數(shù)。
圖5 不同k 與α 參數(shù)下的濾波效果圖
雙目相機(jī)采集動(dòng)態(tài)點(diǎn)云序列后,需傳輸和存儲(chǔ)大量的監(jiān)控?cái)?shù)據(jù)。以使用的1 080 分辨率、30 f·s-1的采集率為例,每幀動(dòng)態(tài)點(diǎn)云序列包含兩百余萬點(diǎn),大約需要80 MB 空間存儲(chǔ),1 min 的錄制信息需要上百吉字節(jié)存儲(chǔ)空間,因而必須進(jìn)行相關(guān)壓縮編碼處理以節(jié)省存儲(chǔ)消耗。本文提出了一種基于深度信息的動(dòng)靜分割方法,實(shí)現(xiàn)了監(jiān)控目標(biāo)與背景的輕便分離。
進(jìn)行前后景點(diǎn)云分割的目的在于依據(jù)點(diǎn)云特性采用相對(duì)應(yīng)的編碼方式進(jìn)行編碼。其中,前景為存在運(yùn)動(dòng)變化的監(jiān)控主體目標(biāo),采用提出的V-PCC改進(jìn)算法進(jìn)行動(dòng)態(tài)點(diǎn)云的編碼,減少幀間信息冗余性。其中,為實(shí)現(xiàn)改進(jìn)算法的應(yīng)用以提高幀間編碼性能,需對(duì)監(jiān)控前景進(jìn)行尺度轉(zhuǎn)換使其滿足編碼要求,并在解碼后與背景點(diǎn)云融合。圖6 給出了尺度轉(zhuǎn)換的步驟。
圖6 適用于改進(jìn)V-PCC 編碼的尺度變換步驟圖
背景點(diǎn)云是幾乎不存在運(yùn)動(dòng)的非主體如墻面、固定物體等靜態(tài)對(duì)象。本文中,通過對(duì)當(dāng)前幀背景與上一個(gè)需要編碼的背景點(diǎn)云進(jìn)行幾何相似度判定,以確定當(dāng)前幀中的背景信息是否存在明顯變化,若誤差較大,則舍棄。幀間誤差的判定方式為
式中:cur 為當(dāng)前待判定背景點(diǎn)云幀,ref 為上一個(gè)需要進(jìn)行編碼的背景點(diǎn)云幀,表示cur 與ref 兩幀間的幾何誤差,Φ為背景編碼判定閾值。
當(dāng)CNeedCode值為1,表示幀間差異較大,應(yīng)當(dāng)保留當(dāng)前背景點(diǎn)云;CNeedCode值為0 時(shí)則可舍棄。由于采集到的背景點(diǎn)云依舊存在較多孔隙及離散區(qū)域,無法適用于提出的V-PCC 改進(jìn)算法。因此,通過引入PCL 庫中的八叉樹編碼進(jìn)行背景點(diǎn)云的壓縮。
為測(cè)試提出的三維監(jiān)控與壓縮系統(tǒng)的點(diǎn)云質(zhì)量和壓縮性能,首先與標(biāo)準(zhǔn)數(shù)據(jù)集進(jìn)行主觀對(duì)比,衡量三維點(diǎn)云質(zhì)量。之后,與動(dòng)態(tài)圖像專家組(Moving Pictures Experts Group,MPEG)提出的V-PCC 標(biāo)準(zhǔn)進(jìn)行對(duì)比,以分析提出的基于三維監(jiān)控場景的基于V-PCC 改進(jìn)的壓縮算法在實(shí)際應(yīng)用中的性能表現(xiàn)。
圖7 以MPEG 點(diǎn)云壓縮標(biāo)準(zhǔn)推薦的8iVSLF 數(shù)據(jù)集中的Red and Black 模型為例,將其與室內(nèi)監(jiān)控下捕獲的前景點(diǎn)云人物進(jìn)行細(xì)節(jié)對(duì)比,采集到的點(diǎn)云具有較為豐富的細(xì)節(jié)。
圖7 實(shí)驗(yàn)前景點(diǎn)云相較于8iVSLF 數(shù)據(jù)集點(diǎn)云細(xì)節(jié)對(duì)比圖
在針對(duì)前景點(diǎn)云序列進(jìn)行性能分析的實(shí)驗(yàn)中,選取30 幀實(shí)際場景采集的動(dòng)態(tài)點(diǎn)云作為測(cè)試數(shù)據(jù)展開測(cè)試。觀察圖8 展示的針對(duì)幾何D1屬性Luma的峰值信噪比(Peak Signal to Noise Ratio,PSNR)增益曲線,提出的改進(jìn)算法在前景點(diǎn)云的編碼中,相較于V-PCC 在不同量化等級(jí)中均實(shí)現(xiàn)了性能增益。進(jìn)一步分析可發(fā)現(xiàn),幾何D1在各分量的增益曲線相較于屬性Luma 的改善較小,原因在于雙目相機(jī)對(duì)幀間光線變化敏感,使得屬性信息在幀間差異相較于幾何信息變化較大。
圖8 改進(jìn)算法的BD-PSNR 曲線圖(相較于V-PCC)
進(jìn)一步地,針對(duì)幾何與屬性,與V-PCC 進(jìn)行比較,平均BD-BR 負(fù)增益的實(shí)驗(yàn)結(jié)果如表1 所示。
表1 壓縮平均BD-BR 增益表
為了對(duì)所提出的動(dòng)態(tài)點(diǎn)云監(jiān)控與壓縮系統(tǒng)在編碼壓縮中對(duì)于存儲(chǔ)空間的節(jié)省程度,在此選取了室內(nèi)監(jiān)控場景中的30 幀實(shí)時(shí)監(jiān)控?cái)?shù)據(jù)進(jìn)行測(cè)試。其中,在背景點(diǎn)云編碼中需盡可能實(shí)現(xiàn)與前景動(dòng)態(tài)點(diǎn)云R1~R5相匹配的碼率控制量化參數(shù),因此通過對(duì)式(4)中背景編碼判定閾值Φ參數(shù)進(jìn)行背景點(diǎn)是否進(jìn)行編碼的誤差設(shè)置,以調(diào)整編碼與丟棄的背景點(diǎn)云幀比例來改變不同碼率下編碼碼流的高低。其中,Φ參數(shù)的設(shè)置分別從R1至R5取3.0、2.5、2.0、1.5、1.0 展開壓縮性能測(cè)試實(shí)驗(yàn)。整體壓縮性能如表2 所示。
表2 各量化等級(jí)下的壓縮性能統(tǒng)計(jì)表
觀察表2 可發(fā)現(xiàn),在最低量化等級(jí)R1下,相較于原始數(shù)據(jù)僅需1.1%的存儲(chǔ)空間,盡管隨著量化等級(jí)提升壓縮性能隨之下降,但在最高量化等級(jí)R5中,依舊取得了10.1%的壓縮率。該結(jié)果表明,所提出的基于動(dòng)態(tài)點(diǎn)云的三維監(jiān)控與壓縮系統(tǒng)在整體壓縮性能的測(cè)試中實(shí)現(xiàn)了較好的表現(xiàn),具備應(yīng)用前景。
本文以雙目相機(jī)作為采集設(shè)備,以提出的自適應(yīng)分割的視頻點(diǎn)云幀間編碼方法作為編碼手段,結(jié)合PCL 點(diǎn)云庫中的經(jīng)典點(diǎn)云壓縮方法共同設(shè)計(jì)實(shí)現(xiàn)了一個(gè)基于動(dòng)態(tài)點(diǎn)云的三維監(jiān)控與壓縮系統(tǒng),完整實(shí)現(xiàn)了從雙目相機(jī)的動(dòng)態(tài)點(diǎn)云數(shù)據(jù)獲取、預(yù)處理到應(yīng)用改進(jìn)幀間編碼器實(shí)現(xiàn)壓縮的整個(gè)系統(tǒng)框架流程。在系統(tǒng)實(shí)現(xiàn)中,提出的根據(jù)監(jiān)控場景特點(diǎn)靈活應(yīng)用不同編碼方式,實(shí)現(xiàn)了編碼比特消耗的節(jié)省。經(jīng)過主觀對(duì)比與客觀誤差分析驗(yàn)證,所提出的系統(tǒng)在點(diǎn)云錄制質(zhì)量與編碼性能上均達(dá)到了理想效果,符合低成本下實(shí)現(xiàn)動(dòng)態(tài)點(diǎn)云獲取與編碼的設(shè)計(jì)目標(biāo),具備落地應(yīng)用前景。