董 雯 林靖宇
(廣西大學(xué)電氣工程學(xué)院 南寧 530004)
隨著科技的發(fā)展,研究者可以更方便地獲得場(chǎng)景的三維點(diǎn)云數(shù)據(jù)。三維點(diǎn)云相對(duì)于二維圖像包含更豐富的空間信息,因此被應(yīng)用于無人駕駛[1~2]、室內(nèi)機(jī)器人[3]、三維重建[4]等領(lǐng)域。但是點(diǎn)云具有稀疏性和無序性,這使得圖像中廣泛應(yīng)用的卷積神經(jīng)網(wǎng)絡(luò)無法直接應(yīng)用于點(diǎn)云。目前基于點(diǎn)云的目標(biāo)檢測(cè)在準(zhǔn)確度方面不如圖像目標(biāo)檢測(cè),仍有很大的研究空間。
目前點(diǎn)云目標(biāo)檢測(cè)存在以下幾種方法:1)將點(diǎn)云轉(zhuǎn)化為鳥瞰圖[2],然后使用全卷積網(wǎng)絡(luò)估計(jì)目標(biāo)的位置和航向角。這種方法缺點(diǎn)就是轉(zhuǎn)化過程中垂直方向上的信息丟失。為了避免信息丟失出現(xiàn)了鳥瞰圖與點(diǎn)云相結(jié)合的方法[5]。2)將點(diǎn)云轉(zhuǎn)化為前視圖[6],然后使用2D 卷積神經(jīng)網(wǎng)絡(luò)估計(jì)目標(biāo)位置和航向角。這種投影方法同樣存在著信息丟失問題。3)將點(diǎn)云轉(zhuǎn)化為體素[7],再利用3D 卷積進(jìn)行特征提取,最后回歸得到邊界框和航向角。這種方法存在著內(nèi)存占用大計(jì)算困難的問題。4)點(diǎn)云與圖像融合的方法[8],將點(diǎn)云的優(yōu)勢(shì)和圖像的優(yōu)勢(shì)相結(jié)合,以達(dá)到更好的檢測(cè)效果。但是目前對(duì)于純點(diǎn)云數(shù)據(jù)的應(yīng)用挖掘還遠(yuǎn)遠(yuǎn)不夠,不依賴圖像的點(diǎn)云目標(biāo)檢測(cè)仍然還有很大的潛力。5)直接處理點(diǎn)云的方法。如VoteNet 模型[9],首先利用Point-Net++網(wǎng)絡(luò)[10]提取點(diǎn)云特征,然后利用霍夫投票機(jī)制得到投票點(diǎn),并聚類獲得投票簇,最后提取每個(gè)簇的特征預(yù)測(cè)目標(biāo)位置和類別。
為了解決室內(nèi)環(huán)境目標(biāo)檢測(cè)精度不高的問題。本文利用目前相對(duì)較為成熟的點(diǎn)云語義分割技術(shù),在VoteNet模型的基礎(chǔ)上進(jìn)行了兩個(gè)改進(jìn):1)添加了一個(gè)能有效提取語義特征的前置網(wǎng)絡(luò),通過點(diǎn)云重染色將提取到的語義特征與幾何特征進(jìn)行融合,提高了特征的質(zhì)量,取得了更好的檢測(cè)效果。2)通過在VoteNet投票簇生成階段添加了語義約束,一定程度上解決了VoteNet 投票簇中點(diǎn)的語義非一致性問題。
改進(jìn)VoteNet模型框架如圖1所示。
圖1 改進(jìn)VoteNet模型框架
點(diǎn)云是離散、稀疏的數(shù)據(jù),因此點(diǎn)云特別適合做分割,目前點(diǎn)云語義分割技術(shù)也相對(duì)成熟,能夠分割出較小的目標(biāo)。點(diǎn)云語義分割,是點(diǎn)云數(shù)據(jù)點(diǎn)級(jí)別的分類,會(huì)得到每個(gè)點(diǎn)的語義標(biāo)簽,可以區(qū)分不同類別的目標(biāo),但是同類目標(biāo)不會(huì)被區(qū)分(可以區(qū)分某個(gè)點(diǎn)屬于桌子還是椅子,但是無法區(qū)分這個(gè)點(diǎn)屬于哪一張桌子)。而目標(biāo)檢測(cè)則是要得到所有待測(cè)目標(biāo)的位置及分類。點(diǎn)云語義分割與目標(biāo)檢測(cè)是有關(guān)聯(lián)的,在已知點(diǎn)云語義標(biāo)簽的情況下進(jìn)行目標(biāo)檢測(cè),就相當(dāng)于只需要對(duì)同類目標(biāo)進(jìn)行區(qū)分。因此本文利用了點(diǎn)云語義分割技術(shù)來提取準(zhǔn)確度較高的語義特征,并將語義特征應(yīng)用到目標(biāo)檢測(cè)模型VoteNet中以達(dá)到提高目標(biāo)檢測(cè)精度的目的。
經(jīng)過實(shí)驗(yàn),確定了語義分割網(wǎng)絡(luò)輸出的語義特征應(yīng)用到目標(biāo)檢測(cè)模型VoteNet 中的方式為:點(diǎn)云輸入語義分割網(wǎng)絡(luò),得到每個(gè)點(diǎn)的語義類別;然后對(duì)每個(gè)語義類別賦予一種顏色,生成新的染色點(diǎn)云,最后將染色后的點(diǎn)云作為目標(biāo)檢測(cè)模型Vote-Net 的輸入。本文將這個(gè)染色過程稱為點(diǎn)云重染色。
RandLA-Net[11]是一個(gè)輕量級(jí)的點(diǎn)云語義分割網(wǎng)絡(luò),其網(wǎng)絡(luò)結(jié)構(gòu)也是類似于PointNet++的編碼-解碼結(jié)構(gòu),如圖2 所示。其編碼模塊是由多個(gè)局部特征聚合模塊(LFA)和隨機(jī)采樣(RS)的組合層組成,解碼模塊則是由多個(gè)上采樣(US)和多層感知機(jī)(MLP)的組合層組成。RandLA-Net 與Point-Net++的區(qū)別在于其編碼模塊是采用了隨機(jī)采樣而不是最遠(yuǎn)點(diǎn)采樣,時(shí)間復(fù)雜度和空間復(fù)雜度都是常數(shù)級(jí)別,因此可以直接處理大規(guī)模點(diǎn)云,而不需要將點(diǎn)云拆分再拼接。為了解決隨機(jī)采樣的信息丟失問題,其設(shè)計(jì)了局部特征聚合模塊,該模塊可以較好地解決信息丟失。因RandLA-Net進(jìn)行點(diǎn)云語義分割具有高效、準(zhǔn)確的特點(diǎn),故選擇RandLA-Net作為本文的語義特征提取網(wǎng)絡(luò)。
圖2 RandLA-Net網(wǎng)絡(luò)結(jié)構(gòu)
VoteNet 模型由投票點(diǎn)經(jīng)過采樣、分組生成投票簇時(shí),可能將具有不同語義標(biāo)簽的點(diǎn)劃分到一個(gè)簇中(投票簇中的點(diǎn)語義非一致),這樣會(huì)導(dǎo)致神經(jīng)網(wǎng)絡(luò)對(duì)每個(gè)簇提取的特征質(zhì)量變差,從而導(dǎo)致邊界框參數(shù)不準(zhǔn)確,甚至目標(biāo)分類錯(cuò)誤。使用語義類別約束投票簇的分組過程,使得每個(gè)投票簇中的點(diǎn)具有相對(duì)較為一致的語義類別,就能提高每個(gè)簇提取特征的質(zhì)量,進(jìn)而提高目標(biāo)檢測(cè)精度。
添加投票簇語義約束后VoteNet 模型如圖3 所示,實(shí)線為原始VoteNet模型,虛線為改進(jìn)所添加的部分。與原始VoteNet相比其主干網(wǎng)絡(luò)添加了兩層解碼層,再通過共享PointNet 層,最終輸出N個(gè)點(diǎn)的分類矩陣(N×b),其中b為點(diǎn)云的語義類別個(gè)數(shù)。通過查找編號(hào)記錄可以得到投票點(diǎn)對(duì)應(yīng)的分類矩陣(M×b)。將M個(gè)投票點(diǎn){vi=[yi;gi∈R3+C]}Mi=1的(3+C)維特征與其對(duì)應(yīng)的b維分類特征{qi∈Rb}Mi=1級(jí)聯(lián),作為新的投票點(diǎn)特征{ui=[yi;gi;qi∈R3+C+b]}Mi=1。最后,從M個(gè)投票點(diǎn)中以最遠(yuǎn)點(diǎn)采樣得到K個(gè)點(diǎn),然后以這K個(gè)點(diǎn)為中心,r為半徑去尋找(3+C+b)維特征空間中臨近投票點(diǎn),將半徑r范圍內(nèi)的點(diǎn)劃分為一個(gè)投票簇,最終得到K個(gè)投票簇,投票簇的表示如式(1)所示。
圖3 添加投票簇語義約束后的Votenet框架
實(shí)驗(yàn)平臺(tái)為Intel Core i7-7700HQ、NVIDIA GTX 1060、16GB 內(nèi)存,在Ubuntu 16.04 和Python3.6下搭建CUDA 10.0、CUDNN 7.6.4、TensorFlow 1.15深度學(xué)習(xí)環(huán)境。
實(shí)驗(yàn)采用公開數(shù)據(jù)集ScanNet。ScanNet 是一個(gè)大型室內(nèi)環(huán)境數(shù)據(jù)集,包含1513 個(gè)室內(nèi)場(chǎng)景數(shù)據(jù),數(shù)據(jù)包括2D 圖像數(shù)據(jù)和3D 點(diǎn)云數(shù)據(jù)。數(shù)據(jù)集1201 個(gè)場(chǎng)景用于訓(xùn)練,312 個(gè)場(chǎng)景用于測(cè)試。語義分割類別為21類,目標(biāo)檢測(cè)類別為18類。
為了從整體上驗(yàn)證本文模型在室內(nèi)點(diǎn)云目標(biāo)檢測(cè)上的有效性,將本文模型在ScanNet 數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn),并與近年來主流的3D 目標(biāo)檢測(cè)模型進(jìn)行對(duì)比。
各模型在ScanNet數(shù)據(jù)集上的全類別目標(biāo)檢測(cè)平均精度如表2 所示,表格中對(duì)最優(yōu)結(jié)果進(jìn)行了加粗顯示。輸入坐標(biāo)及RGB 時(shí)的VoteNet 模型結(jié)果為復(fù)現(xiàn)結(jié)果(論文中僅給出輸入坐標(biāo)的實(shí)驗(yàn)結(jié)果)。從表2 可以看出:改進(jìn)VoteNet 模型在3D IoU(交并比閾值)為0.25以及0.5時(shí),mAP(全部類別平均精度)都遠(yuǎn)高于其他方法。在輸入坐標(biāo)和RGB信息時(shí),與原VoteNet模型相比,3D IoU 閾值為0.25時(shí)的平均精度提高了18.1%;3D IoU 閾值為0.5 時(shí)的平均精度提高了11.7%。表1 為各模型在Scan-Net數(shù)據(jù)集上的每類目標(biāo)檢測(cè)精度。從表1 可以看出,改進(jìn)模型除了在浴缸這個(gè)類別檢測(cè)精度比原始VoteNet 低外,其余類別檢測(cè)精度都高于包括原始VoteNet在內(nèi)的其他模型。對(duì)于擁有水平面的大型目標(biāo),如床、沙發(fā)等,檢測(cè)精度較高,但對(duì)于垂直片狀的目標(biāo),如門、窗,檢測(cè)精度則低一些。特別是小型垂直片狀目標(biāo),如圖片,檢測(cè)精度較低,但高于其他模型。實(shí)驗(yàn)證明,本文模型對(duì)室內(nèi)點(diǎn)云目標(biāo)檢測(cè)是相對(duì)有效的。
表1 各模型在ScanNet數(shù)據(jù)集上的每類目標(biāo)檢測(cè)精度
為了驗(yàn)證語義特征提取與重染色的有效性,在ScanNet數(shù)據(jù)集上進(jìn)行了對(duì)比實(shí)驗(yàn),來比較原始VoteNet 與添加了語義特征提取和點(diǎn)云重染色后的VoteNet 的目標(biāo)檢測(cè)結(jié)果。另外,為了證明采用不同重染色編碼不會(huì)對(duì)目標(biāo)檢測(cè)精度造成影響,實(shí)驗(yàn)分別采用了兩種不同的重染色編碼。
實(shí)驗(yàn)結(jié)果如表3 所示。從表3 可以看出,添加了語義特征提取和點(diǎn)云重染色后的VoteNet,目標(biāo)檢測(cè)平均精度要高于原始VoteNet;語義重染色模型在兩種重染色編碼下的目標(biāo)檢測(cè)精度相差不大。圖4 為某個(gè)場(chǎng)景在兩種重染色編碼下的預(yù)測(cè)框可視化結(jié)果。從圖4 來看,采用不同的重染色編碼方式,最終預(yù)測(cè)的邊界框基本一致。因此,采用不同重染色編碼不會(huì)對(duì)目標(biāo)檢測(cè)精度造成影響。
表3 添加了語義特征提取和點(diǎn)云重染色后的VoteNet與原始VoteNet檢測(cè)精度對(duì)比
圖4 添加了語義特征提取和點(diǎn)云重染色后的VoteNet在不同重染色編碼下的預(yù)測(cè)框可視化結(jié)果
最終得出結(jié)論:添加語義特征提取與重染色能夠顯著提高ScanNet 數(shù)據(jù)集上點(diǎn)云目標(biāo)的檢測(cè)精度。目標(biāo)檢測(cè)精度的提高得益于語義特征的提取和語義特征與幾何特征(即坐標(biāo))的融合。實(shí)驗(yàn)證明,重染色是將語義特征與幾何特征融合的一種可行的方式。
為了驗(yàn)證投票簇語義約束的有效性,在Scan-Net 數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn),實(shí)驗(yàn)將有色點(diǎn)云分別輸入原始VoteNet 和添加投票簇語義約束后的Vote-Net。實(shí)驗(yàn)結(jié)果如表4 所示。添加語義約束后,在IoU=0.25 和IoU=0.5 時(shí),mAP 分別提高了4.41%和2.83%。實(shí)驗(yàn)證明,對(duì)投票簇添加語義約束,能夠使得每個(gè)投票簇中的點(diǎn)具有相對(duì)較為一致的語義類別,進(jìn)而可以提高目標(biāo)檢測(cè)精度。
表4 添加語義約束后的VoteNet與原始VoteNet檢測(cè)精度對(duì)比
對(duì)改進(jìn)VoteNet模型中語義染色的結(jié)果及最終預(yù)測(cè)的邊界框進(jìn)行三維空間可視化,如圖5 所示。圖5 中每行為一個(gè)室內(nèi)場(chǎng)景,第一列為輸入點(diǎn)云,第二列為根據(jù)真實(shí)語義染色的點(diǎn)云,第三列為根據(jù)RandLA-Net 網(wǎng)絡(luò)預(yù)測(cè)的語義標(biāo)簽染色的點(diǎn)云,第四列為真實(shí)邊界框的可視化效果,第五列為改進(jìn)Vote-Net模型預(yù)測(cè)的邊界框的可視化效果。
圖5 語義染色和目標(biāo)檢測(cè)可視化
由可視化結(jié)果可以看出,語義特征提取確實(shí)有助于提高目標(biāo)檢測(cè)精度。比如,第二行場(chǎng)景中間圓桌旁邊的椅子由于采集過程中的遮擋存在數(shù)據(jù)殘缺,有的只剩下椅背,但是由于語義分割網(wǎng)絡(luò)預(yù)測(cè)到了這些點(diǎn)是椅子這個(gè)類別而非旁邊的桌子,所以改進(jìn)VoteNet模型最終也預(yù)測(cè)出了椅背的邊界框。
但是在以下幾種情況,目標(biāo)檢測(cè)效果仍然不理想:1)兩個(gè)待測(cè)目標(biāo)的邊界框有交集時(shí),仍存在預(yù)測(cè)邊界框位置或大小不準(zhǔn)確的情況。2)當(dāng)語義分割網(wǎng)絡(luò)預(yù)測(cè)出錯(cuò)時(shí),改進(jìn)VoteNet 模型最終可能會(huì)預(yù)測(cè)錯(cuò)誤或漏檢。
針對(duì)點(diǎn)云室內(nèi)目標(biāo)檢測(cè)模型較少且檢測(cè)精度不高的問題,本文利用了相對(duì)較為成熟的點(diǎn)云語義分割技術(shù),在目標(biāo)檢測(cè)模型VoteNet的基礎(chǔ)上,提出改進(jìn)模型。
對(duì)本文中的兩個(gè)改進(jìn)分別進(jìn)行實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果表明兩個(gè)改進(jìn)對(duì)于提高室內(nèi)點(diǎn)云目標(biāo)檢測(cè)精度都是有效的。將本文的改進(jìn)模型,與其他3D 目標(biāo)檢測(cè)模型進(jìn)行對(duì)比實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果表明,本文模型可以較好地利用點(diǎn)云的語義特征,并在室內(nèi)點(diǎn)云數(shù)據(jù)集ScanNet 上取得了高于其他模型的目標(biāo)檢測(cè)精度。