3D物品檢測算法及應(yīng)用
在圖像上進(jìn)行2D物品檢測,在學(xué)術(shù)界已有較多的研究,在工業(yè)界也有成熟的應(yīng)用。但是物理空間實(shí)際是3D的,在與空間數(shù)字化緊密相連的一些應(yīng)用中,業(yè)務(wù)往往還需要關(guān)注物品的3D位置。針對數(shù)據(jù)獲取成本和數(shù)據(jù)處理難度問題,如視都進(jìn)行了研究并積累了較多成果。
1 背景概述
在圖像上進(jìn)行2D物品檢測,在學(xué)術(shù)界已有較多的研究,在工業(yè)界也有成熟的應(yīng)用。但是物理空間實(shí)際是3D的,在與空間數(shù)字化緊密相連的一些應(yīng)用中,業(yè)務(wù)往往還需要關(guān)注物品的3D位置。通常限制3D物品檢測算法及應(yīng)用的兩個原因如下:
a) 數(shù)據(jù)獲取成本
在攝像頭非常普及的當(dāng)下,圖像獲取是非常容易的。但是帶3D信息的深度圖或點(diǎn)云獲取,則更專業(yè)和稀少。
b) 數(shù)據(jù)處理難度
圖像數(shù)據(jù)本質(zhì)是規(guī)則排列的像素,而3D數(shù)據(jù)的分布是不規(guī)則的:有的稀疏、有的稠密;遮擋部分?jǐn)?shù)據(jù)缺失等。不規(guī)則的數(shù)據(jù)格式增加了處理難度。
針對上述問題,如視都進(jìn)行了研究并積累了較多成果。如視采集了千萬量級套數(shù)的室內(nèi)場景數(shù)據(jù),利用Galois激光掃描采集點(diǎn)云,或大數(shù)據(jù)訓(xùn)練的智能算法估算深度,大量的數(shù)據(jù)為3D檢測提供了堅(jiān)實(shí)的基礎(chǔ)。在3D檢測算法方面,研究、實(shí)現(xiàn)多種技術(shù)路線,針對不同的需求。
2 算法介紹
在不同的需求中,輸入的數(shù)據(jù)、要求的精度都有差異。可以選擇不同的技術(shù)路線實(shí)現(xiàn)3D物品檢測。
2.1 級聯(lián)式檢測(Cascaded Detection)
級聯(lián)式檢測即把整個數(shù)據(jù)處理流程分為兩級并串聯(lián):第一級使用圖像2D檢測;第二級再加入深度圖,計(jì)算3D物品包圍盒的位置。其中,第二級中還可利用相機(jī)多視約束關(guān)系(Multi-View Constraint),對結(jié)果進(jìn)一步篩選和優(yōu)化。
這種算法的最大優(yōu)勢是可以直接利用成熟的2D檢測結(jié)果,但是在提出候選物品時只用到了圖像,對深度圖或點(diǎn)云包含的物品幾何特征沒有充分發(fā)掘利用。

2.2 基于點(diǎn)云的檢測(Point Cloud based Detection)
物品及場景的3D點(diǎn)云,由于不是規(guī)則排列的數(shù)據(jù),很難像圖像那樣直接輸入神經(jīng)網(wǎng)絡(luò)。早期的研究傾向于把3D點(diǎn)云投影到2D圖像上,或者對點(diǎn)云進(jìn)行規(guī)則的體素化(Voxelization)后再處理。但這些方法都有量化誤差(Quantization Error),讓點(diǎn)云失去了原始的精度。
隨著 PointNet[1] 及 PointNet++[2] 系列研究開始,算法可以直接從3D點(diǎn)云上提取特征,其中使用一個對稱函數(shù)(Symmetric Function)對多個點(diǎn)的特征進(jìn)行一次聚合(Aggregate),使提取的特征具有排列不變性(Permutation Invariance)。這樣就能對不規(guī)則數(shù)據(jù)提取穩(wěn)定的特征。
如視使用 PointNet 為骨干(Backbone)的神經(jīng)網(wǎng)絡(luò)提取室內(nèi)場景點(diǎn)云的特征,再通過物品候選、分類的神經(jīng)網(wǎng)絡(luò),推算家具、電器等物品的3D包圍盒。本算法直接對點(diǎn)云進(jìn)行處理,結(jié)果的形狀、位置等比級聯(lián)式算法更加貼合采集的3D數(shù)據(jù)。

2.3 多模態(tài)融合檢測(Detection with Multi-Modal Fusion)
單獨(dú)使用2D圖像或者3D點(diǎn)云提出候選物品,都屬于單模態(tài)檢測。它們各自都有一定的局限性:圖像不包含準(zhǔn)確的3D信息;而點(diǎn)云不包含物品高頻的紋理特征。只用圖像提出候選物品,則最終的3D位置、尺寸偏差可能較大;只用點(diǎn)云提出候選物品,則難以區(qū)分幾何外形類似、但實(shí)際不同的物品(例如餐桌和辦公桌、冰箱和尺寸類似的柜子)。
我們使用多模態(tài)融合的檢測,即指在物品候選階段就同時使用從2D圖像上提取的紋理特征以及從3D點(diǎn)云中提取的幾何特征。把兩方面的特征連接在一起后,再通過聯(lián)合的物品候選、分類的神經(jīng)網(wǎng)絡(luò),推算家具、電器等物品的3D包圍盒。
“簡單粗暴”地把更多模態(tài)的數(shù)據(jù)堆疊在一起,理論上可以讓算法的上限更高,但在工程實(shí)踐中,可能造成算法模型的過度擬合[3]。為了解決這些問題,我們需要針對性的調(diào)整多模態(tài)的權(quán)重比例,引入多模態(tài)聯(lián)合損失函數(shù)(Multi-Modal Joint Loss)、單模態(tài)輔助損失函數(shù)(Uni-Modal Auxiliary Loss)等,使訓(xùn)練的算法模型能夠達(dá)到比較理想的狀態(tài)。最終結(jié)果優(yōu)于單模態(tài)算法。

3 行業(yè)應(yīng)用
與空間數(shù)字化相關(guān)的很多業(yè)務(wù),都需要識別或標(biāo)注目標(biāo)物體的位置、尺寸、角度等。3D物品檢測算法可以被封裝成一個基礎(chǔ)服務(wù),提供給更外層的應(yīng)用。以下提供兩個應(yīng)用示例。
3.1 為AI家裝設(shè)計(jì)提供參考方案
通常而言,AI家裝設(shè)計(jì)需要采用復(fù)雜的規(guī)則或者推薦算法,對家具的擺放位置進(jìn)行推理。但從另外一個角度來說,如視已經(jīng)采集了海量的新房樣板間數(shù)據(jù),其中包含不同戶型、不同家具的真實(shí)擺放方案,可以為AI設(shè)計(jì)算法的訓(xùn)練提供參考。而這些真實(shí)方案的獲取需要依賴人工標(biāo)注家具位置或者自動的3D物品檢測算法。顯然,自動算法能夠極大提高數(shù)據(jù)處理流程的效率。

3.2 助力工業(yè)設(shè)備數(shù)字化管理
在某些工業(yè)設(shè)備區(qū)域,企業(yè)不僅需要可視化的查看,還需要精確地標(biāo)注具體設(shè)備,錄入數(shù)字化管理系統(tǒng)。而3D物品檢測算法可以降低人工標(biāo)注工作量,提升運(yùn)營效率。

4 論文引用
[1] [Charles R. Qi et al. 2017] PointNet: Deep Learning on Point Sets for 3D Classification and Segmentation
[2] [Charles R. Qi et al. 2017] PointNet++: Deep Hierarchical Feature Learning on Point Sets in a Metric Space
[3] [Weiyao Wang et al. 2020] What Makes Training Multi-modal Classification Networks Hard?


