【CVPR 2023】LinK:用線性核實現3D激光雷達感知任務中的large kernel
本文介紹我們媒體計算研究組(MCG)在3D激光雷達感知領域提出的新型網絡設計。針對點云數據的稀疏性,使用線性核(LinK)來擴大模型的有效感受野,提升3D檢測、分割等任務的性能。
LinK: Linear Kernel for LiDAR-based 3D Perception
論文鏈接:https://arxiv.org/abs/2303.16094
代碼鏈接:https://github.com/MCG-NJU/LinK
研究動機
在2D計算機視覺任務中,更大的感受野使得模型在語義分割、目標檢測等下游任務上的性能獲得顯著的提升。此前,一些方法(RepLKNet[1]等)探究了2D圖像處理領域中使用更大的卷積核來獲得更大范圍的感知能力。
由于3D數據模態的稀疏性,將大卷積核的設計引入3D存在兩方面的障礙。一是效率問題:3D任務中,開銷隨尺寸立方增長,若將卷積核大小從3×3×3簡單地擴張到7×7×7,模型大小會是原來的10倍,擴展到21×21×21則會變為343倍。另一方面是優化問題:由于點云在空間中分布較為稀疏,如果卷積核的每個位置都被賦予一定的權重,那么3D數據的稀疏性會導致大量空閑位置的權重在網絡迭代中并沒有參與更新,導致參數更新緩慢。此前有人嘗試使用局部塊內元素共享參數的方式來緩解這兩個問題,提出了大小為7×7×7的空間共享權重卷積核(LargeKernel3D[2])。該設計成功地在3D語義分割和目標檢測任務上提升了小卷積核的性能,但感受野的擴張幅度仍然有限。
為了解決這些問題,我們提出線性核LinK,以類卷積的方式實現更大的感知范圍。該方法有兩處核心設計:一是用線性核生成器替換靜態的卷積權重,僅為非空區域的點云提供權重。同時,該模塊是逐層共享的,避免了稀疏分布的權重在某次迭代中沒有被優化的情況,改善了優化問題。二是在不同滑動窗口的重疊區域復用預先計算的聚合結果,使整體計算復雜度進一步降低,甚至最終計算量為常量,與實際感受范圍無關。換句話說,我們可以基于LinK以一致的開銷實現任意大小的線性核。
我們的方法
核生成器
前文中討論了大卷積核下稀疏卷積的兩大缺陷:開銷大以及優化困難。我們首先采用神經網絡模塊 來在線生成權重,取代靜態卷積核 ,使得網絡參數量與不隨卷積核尺寸增長而增長,與之前方法對比如下:
線性核生成器解決了參數量增長的問題,然后,并沒有解決計算量的問題。于是我們考慮,能否將不同卷積窗口的重疊區域的特征聚合結果進行復用,這樣有可能降低計算量。
為此,我們以一個toy case為例。假設兩個相鄰窗口中的元素集合分別為
其中每個元素表示一個體素。這兩個窗口的重疊區域為
我們分別將 中的元素特征聚合到 和 ,聚合過程為
可以發現,每個重疊區域中的元素對 和 采用不同的local offset來獲得權重。因此,基于local offset的方式難以復用重疊區域的聚合結果,如下圖所示:
基于global coordinate的預聚合
為了解決這個問題,考慮到每個位置的global coordinate是唯一的,我們提出,將local offset拆分為global coordinate的組合。對于區域 ,我們使用如下公式計算這三個元素的預聚合結果:
也是kernel generator。然后,若要得到 在區域 上的聚合特征,我們用如下方式生成基于local offset的結果:
這樣,不管有多少個元素要來復用區域 上的聚合特征,都不需要再重新計算 。
那么問題來了,上式成立的前提是
為了使其成立,我們參考APP-Net[3],使用線性映射 來實現 和 。我們將這過程稱為線性核生成器,也即LinK方法名字的由來(Linear Kernel Generator)。這兩個函數可以用三角函數、指數函數等不同的形式進行激活,正文中主要采用了余弦函數的方式。此時兩個窗口A、B的聚合過程如下圖所示:
基于LinK的類卷積核設計
基于上述設計,我們將整體點云劃分為不重疊的塊,每個塊的大小為 ,對每個塊進行特征預聚合。為每個塊查詢其周圍 個近鄰塊,生成一個感受范圍為 的大塊的預聚合特征 。對 使用上述合成local offset的操作,即可為每個聚合中心算得最終的特征。這部分的具體公式可見論文原文。在實驗中,設 ,即可得到 21×21×21 的感知范圍。整體過程如下圖所示:
網絡結構
LinK模塊結構
LinK模塊由兩個分支組成:一個分支為使用線性投影+三角核函數實現的大核分支,另一分支為 3×3×3 的稀疏卷積小核旁路,結構圖如下所示。
下游任務應用
應用到下游任務(檢測和分割)中時,我們分別選取CenterPoint和MinkUnet作為基礎架構,并使用基于LinK的backbone替代了原本基于稀疏卷積實現的backbone,保留了原始的檢測頭和分割頭不變,具體結構如下圖所示。
實驗
我們在nuScenes上評估了目標檢測的結果,在SemanticKITTI上評估了語義分割的結果。結果分別如下所示:
nuScenes
截止論文發表,我們的方法在nuScenes數據集上取得了SOTA(73.4 NDS)。得益于超大的感受野,與baseline CenterPoint相比,我們的方法在大尺寸的物體(例如bus、con-veh等)上提升顯著。
SemanticKITTI
在SemanticKITTI上,我們的方法相較baseline MinkUNet獲得了2.7 mIoU的提升。更多可視化分析見原始論文。
總結
在本文中,我們提出了一個線性核生成器LinK,能夠以不變的計算量任意擴大模型感受野,大幅提升現有模型在下游任務(檢測、分割)上的性能。我們通過實驗證明了LinK對下游任務性能提升的有效性與通用性。LinK在nuScenes(LiDAR only)上達到了SOTA性能,希望可以讓大家對大感受野的新方法以及其在3D感知任務上的應用有更多關注。
審核編輯 :李倩
-
Link
+關注
關注
0文章
101瀏覽量
26964 -
生成器
+關注
關注
7文章
315瀏覽量
21011 -
激光雷達
+關注
關注
968文章
3972瀏覽量
189923
原文標題:LinK: Linear Kernel for LiDAR-based 3D Perception
文章出處:【微信號:CVer,微信公眾號:CVer】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論