黃 煒 ,朱映韜 ,陳冬杰 ,王寶土 *,陳 建 ,
(1.福州大學 先進制造學院,福建 泉州 362200;2.福州大學 物理與信息工程學院,福建 福州 350108)
點云是三維空間中的點集,不僅能夠表達物體與場景的幾何信息,還包含了顏色或反射率等屬性信息,比起傳統(tǒng)的二維圖像、視頻,可以更逼真地展現(xiàn)三維世界,被廣泛應用于沉浸式視頻媒體、自由視點電視、移動機器人以及自動駕駛等智能領域。然而,點云龐大的數(shù)據(jù)量是限制其相關應用發(fā)展的一大瓶頸。因此,高效的點云壓縮算法已成為新興智能領域的研究熱點之一。
近幾年,動態(tài)圖像專家組(Moving Picture Experts Group,MPEG)正積極推進著點云壓縮的標準化進程?,F(xiàn)有的點云壓縮標準主要有基于視頻的點云壓縮(Video-based Point Cloud Compression,V-PCC)和基于幾何的點云壓縮(Geometry-based Point Cloud Compression,G-PCC),前者主要針對二類動態(tài)點云,后者則應用于一類靜態(tài)點云和三類激光雷達點云。本文討論的重點為一、二類密集點云的幾何壓縮方案。除了以V-PCC和G-PCC為代表的經(jīng)典壓縮算法,深度學習近年來也被成功應用于點云數(shù)據(jù)?;趯W習的點云壓縮方法傾向于采用自編碼器網(wǎng)絡[1-7],從自重建中學習點云幾何特征。然而,自編碼器網(wǎng)絡雖然能從自重建中學習全局幾何特征,但其降維過程會丟失一部分高維豐富的局部特征,簡單的重復降維與升維并不能實現(xiàn)較好的局部特征學習。此外,點云的龐大計算開銷限制了網(wǎng)絡設計時卷積層的深度與寬度,從而限制了壓縮性能。針對這些問題,本文提出了基于稀疏卷積的非對稱特征聚合點云壓縮算法。
在自編碼器相關的點云壓縮工作中,主流方法可分為基于點集的方法或基于體素的方法。基于點集的處理直接從三維點云數(shù)據(jù)中提取特征,而基于體素的方法使點云變得有序化和結構化,進而可對體素進行三維卷積特征提取,在當下能夠實現(xiàn)更高的重建精度。GUARDA等人最早將點云體素化并分塊進行特征學習與壓縮[1],該團隊后續(xù)在此基礎上進一步研究了顯隱式量化結合[2],在解碼端進行由粗到細的多分辨率重建[3]。MILANI等人[4]則將自編碼器網(wǎng)絡與對抗網(wǎng)絡的理念結合,實現(xiàn)更高精度的解碼。然而在上述工作[1-4]中,解碼端均通過固定閾值二分類判決重建點云的體素占用情況,對重建點云的準確度存在一定的影響。為解決這一問題,QUACH等人提出的GeoCNN[5]通過最小化輸入點云與重構點云間的失真計算得到動態(tài)閾值,優(yōu)化重建點云的準確度。FRANK等人[6]在Quach等人的基礎上進一步研究通道熵建模,優(yōu)化變分自編碼器網(wǎng)絡性能。WANG等人提出的Learned-PCGC[7]則通過匹配原始點云的點數(shù)提出另一種自適應閾值,進而優(yōu)化率失真性能。
本節(jié)對所提出的非對稱特征聚合編解碼網(wǎng)絡進行闡述,并說明逐通道稀疏殘差卷積的結構。
為解決現(xiàn)有自編碼器網(wǎng)絡不能有效學習局部幾何特征的問題,本文設計了非對稱特征聚合編解碼網(wǎng)絡。如圖1(a)所示,在所設計的編碼網(wǎng)絡內部,稀疏卷積層與ReLU函數(shù)用于特征粗提取與通道、維度變換,通過卷積核尺寸為2×2×2,步長為2的稀疏卷積實現(xiàn)降維。鑒于自編碼器相關的大量工作[1-7]已驗證過,當自編碼器網(wǎng)絡的升降維次數(shù)為3時,可在保證良好的率失真性能的同時具有適中的復雜度與計算開銷。在如圖1(b)所示的解碼網(wǎng)絡中,使用卷積核尺寸為2×2×2,步長為2的轉置稀疏卷積實現(xiàn)升維,同時為了避免柵格效應,在轉置稀疏卷積后銜接一次稀疏卷積。藍色虛線框所示的特征精提取結構則通過本文設計的逐通道稀疏殘差卷積進行高效的特征學習;綠色虛線框所示的多尺度特征聚合支路將高分辨率特征降維匹配維度后級聯(lián)傳遞至深層,保證進行良好的全局特征學習的同時,實現(xiàn)更好的局部幾何特征提??;二分類判決層用于判斷體素是否被占用,以確定非空體素集,迭代3次最終輸出重建點云??梢宰⒁獾?,應用自編碼器的工作中[1-7],編解碼網(wǎng)絡的結構設計通常是對稱的。本文在解碼網(wǎng)絡中并沒有對稱地設計特征融合支路,這是因為,若保持自編碼器網(wǎng)絡的對稱結構而在解碼網(wǎng)絡中設計支路傳遞特征,則理論上需要隨著自重建而不斷升維匹配特征維度,然而點云數(shù)據(jù)的計算開銷極其龐大,解碼支路不斷升維會導致模型的復雜度過高,進而造成嚴重的過擬合。
圖1 非對稱特征聚合編解碼網(wǎng)絡模型
為實現(xiàn)更高效的特征精提取,受深度可分離卷積[8]啟發(fā),本文將稀疏卷積、瓶頸層、逐通道卷積和殘差鏈接有機結合,設計了逐通道稀疏殘差卷積。如圖2所示,經(jīng)稀疏卷積層粗提取的特征以V通道特征的形式輸入到逐通道稀疏殘差卷積,對經(jīng)由卷積核尺寸為1×1×1且輸出通道數(shù)為1的瓶頸層生成的跨通道特征逐通道進行稀疏卷積,每一個通道對應不同的權重矩陣,分別學習每一個通道的特征。由于點云極其龐大的數(shù)據(jù)特性,若不對深度可分離卷積做改進就直接應用于點云數(shù)據(jù),深度可分離卷積本身的結構將造成巨大的計算復雜度,而在稀疏卷積神經(jīng)網(wǎng)絡[9]中,稀疏張量被定義為由三維空間坐標矩陣和特征向量矩陣組成的數(shù)據(jù)結構,通過索引坐標實現(xiàn)僅在非空的體素上執(zhí)行卷積運算,將稀疏卷積引入深度可分離卷積可以明顯提升計算效率。而相比直接輸入同樣卷積核尺寸的稀疏卷積層,逐通道稀疏殘差卷積通過引入瓶頸層與逐通道卷積,并通過殘差鏈接復用相鄰模塊的特征輸入,捕捉網(wǎng)絡中更長的依賴關系,在優(yōu)化網(wǎng)絡計算復雜度的同時也能提升整體的特征學習效果。此外,由于模塊內部的每個稀疏卷積層的輸入和輸出均為1通道特征,激活函數(shù)可能導致較為明顯的信息損失,因此在模塊內部均不使用激活函數(shù)。
圖2 逐通道稀疏殘差卷積
在訓練過程中,本文的網(wǎng)絡模型應用率失真優(yōu)化模型作為損失函數(shù),定義為
式中:λ為拉格朗日乘子,用于約束率失真性能的權衡,R即編碼端輸出碼流的大小,D表示輸入點云與重建點云之間的二元交叉熵。
由于解碼端重建點云的過程可近似為二分類任務,升維后通過1或0來標識重建點云的體素是否非空,因此二元交叉熵可用于衡量編碼輸入與解碼重建的失真,αn為輸入點云中第n個體素占用與否的情況,αn的值為1時表示體素被占用,αn的值為0時表示空體素,pn為重建點云預測第n個體素非空的概率,由Sigmoid函數(shù)映射得到。
為了保證公平對比,本文的訓練集采用Shape Net[10]數(shù)據(jù)集,共有24 641幀大小不等的點云,訓練時隨機抽取10%的點云作為驗證集。本文的網(wǎng)絡模型實現(xiàn)平臺為Pytorch,采用Adam算法作為優(yōu)化器,初始學習率設置為0.001,隨著訓練進程衰減至0.000 01,Batchsize設置為4,每個目標碼率的模型統(tǒng)一訓練100輪,訓練與測試的硬件環(huán)境為Nvidia GeForce GTX 2080Ti GPU和Intel Xeon Gold 6230 CPU。為說明網(wǎng)絡的率失真性能提升,本文在 8iVFB(8i Voxelized Full Bodies)和 Owlii(Owlii dynamic human mesh)數(shù)據(jù)集上進行測試,使用峰值信噪比(Peak Signal to Noise Ratio,PSNR)和碼率(bits per point,bpp)作為客觀評價指標,測量點到面誤差的均方誤差作為失真指標,與點云壓縮經(jīng)典算法V-PCC、G-PCC以及基于深度學習的點云壓縮算法Learned-PCGC進行比較。ShapeNet、8iVFB與Owlii均為許多工作[1-7]廣泛使用的數(shù)據(jù)集。
表1給出了本文算法相對于上述現(xiàn)有算法在不同數(shù)據(jù)集上的 BD-Rate(Bj?ntegaard-Delta Rate)和BD-PSNR增益(Bj?ntegaard-Delta PSNR)。其中,各實驗對比算法的數(shù)據(jù)均來源于相關文獻公開的測試結果與可復現(xiàn)的網(wǎng)絡模型。從表1可以看出,本文的BD-Rate相對于經(jīng)典算法和基于學習的算法都有不同程度的降低,BD-PSNR也有不同程度的提升,說明本文的編碼性能是最優(yōu)的。
表1 本文方法相比于各個算法在不同數(shù)據(jù)集上的增益
為了更直觀地展示本文算法的率失真性能,選 取 測 試 集 中 的“l(fā)ongdress_vox10_1300”、“redandblack_vox10_1550”為例,將各個算法的測試結果繪制了相應的率失真曲線,直觀地進行不同碼率下的峰值信噪比評估,實驗結果如圖3所示。圖3表明,本文方法在低碼率情況下取得了與現(xiàn)有先進方法相近的重建精度。而隨著碼率的提高,重建精度的提升愈發(fā)明顯,主要體現(xiàn)在曲線提升的幅度上。這主要得益于本文方法對局部特征學習的優(yōu)化,高碼率情況下豐富的局部特征學習能夠更加精準地進行解碼重建。相對地,極低碼率情況下的重建更加依賴于全局特征,并且無法傳輸足夠的特征進行解碼。因此,本文方法在極低碼率情況下的率失真曲線提升便沒有高碼率情況下顯著。
圖3 各個算法在不同數(shù)據(jù)集上的率失真曲線對比
除了率失真性能的比較,表2也以8iVFB數(shù)據(jù)集為例,展示了各個算法的時間復雜度對比。為保證對比公平,在同一設備上分別循環(huán)測試10次取均值計算數(shù)據(jù)。其中,各實驗對比算法的測試結果均來源于相關文獻可復現(xiàn)的網(wǎng)絡模型。本文在實驗中測試了各算法碼率最低(Lowest Rate,LR)與碼率最高(Highest Rate,HR)時的編解碼所需時間,以評估各實驗對比算法在極端情況下的時間復雜度。從表2可知,V-PCC算法的編解碼時間最長,G-PCC算法耗時最短,本文方法提升率失真性能的同時合理控制了時間復雜度,與同為基于學習的點云壓縮算法相比實現(xiàn)了較快的編解碼速度,并在HR情況下取得了快于G-PCC的編碼速度。
表2 各個算法在8iVFB數(shù)據(jù)集上的時間復雜度對比
除了客觀指標評估,本文還以圖3(a)中的“l(fā)ongdress_vox10_1300”點云為例,提供了現(xiàn)有算法與本文方法的視覺對比,實驗結果如圖4所示。圖4(a)展示了該幀原始點云的人物整體以及放大的裙子細節(jié),圖4(b)為本文方法在碼率為0.22 bpp時解碼的重建點云,圖4(c)—圖4(e)則分別展示了Learned-PCGC,G-PCC,V-PCC算法在相應或更高碼率情況下的解碼重建結果。由圖4可看出,本文方法在整體上比Learned-PCGC算法和G-PCC算法更準確地還原了原始點云,與整體稠密程度也明顯較好的V-PCC算法相比,V-PCC算法在原本不存在點的位置重建了點,而本文方法在細節(jié)上不僅保留了應當重建的點,也相應保留了不應重建的位置,驗證了本文算法對點云數(shù)據(jù)局部幾何特征學習效果的提升。
圖4 各個算法解碼重建的視覺對比
本文基于稀疏卷積與自編碼器提出一個點云壓縮算法。首先,為解決自編碼器網(wǎng)絡對局部特征提取相對不足的問題,提出了非對稱特征聚合編解碼網(wǎng)絡,通過將特征學習任務的重心放在編碼端,進行多分辨率特征的深層傳遞與聚合,合理控制模型復雜度以減少過擬合現(xiàn)象的同時,能夠保證更好的點云局部幾何特征提取。其次,為實現(xiàn)更高效的特征提取,本文設計了逐通道稀疏殘差卷積,有效優(yōu)化網(wǎng)絡的壓縮性能的同時合理控制計算復雜度。在8iVFB和Owlii數(shù)據(jù)集上選取多種點云的實驗結果證明,本文所提出的網(wǎng)絡相較現(xiàn)有算法有效提升了率失真性能,同時合理地控制了時間復雜度。