3D目标检测常见体素化方法总结(原理及代码)(持续更新)
體素化就是將點云分成在空間上均勻的體素格,然后生成3D點和它們對應的體素之間多對一的映射。
一、硬體素化
? ? ? ? 在VoxelNet中,體素化分為兩個階段,第一個階段叫grouping——分組,第二個階段叫sampling——采樣。比如,給定一個點云,共N個點,將這N個點分配到一個K×T×F的緩沖區中,其中K是體素最大數量,T是每個體素中點的最大數量,F是每個點的特征維度。
? ? ? ? 在grouping分組階段,每個點基于其空間坐標都會被分配到對應的體素中。由于會有許多點分配到一個體素中,超過了允許的固定的點容量T,那么就需要sampling采樣階段在每個體素中下采樣T個點。
? ? ? ? 類似地,如果點云產生的體素個數超過了固定的體素容量K,體素也會被下采樣。
? ? ? ? 如果體素數量和體素中點的數量都沒有超過固定的容量,緩沖區中未使用的部分就用0填充。
? ? ? ? 硬體素化HV有三個限制:
? ? ? ? 硬體素化在點/體素覆蓋和高效的內存使用之間達到平衡是很有挑戰的。
????????硬編碼的簡單體素特征提取,即將一個體素中的所有點簡單地進行求取平均值的操作,得到的結果作為這一個體素的特征向量。這是最簡單的體素特征編碼器。
二、動態體素化
? ? ? ? 動態體素化DV克服了硬體素化HV的一些缺點。動態體素化DV保留了分組grouping階段,相反,它沒有采樣固定的點數或體素容量,它保留了點和體素之間的完全映射。因此,體素數和每個體素中的點數都是動態的,依賴于具體的映射函數。這消除了對固定大小緩沖區的需求,也消除了對隨機點和體素的丟棄過程。
? ? ? ? 因為所有原始點和體素信息都被保留了,動態體素化DV沒有引入信息丟失,并產生了確定的體素嵌入,使得檢測結果更穩定。
? ? ? ? 另外,動態體素化建立了每一個點和體素對之間的雙向關系,為從不同視圖融合點級上下文特征提供了自然基礎。
? ? ? ? 動態體素化DV動態高效分配資源來管理所有體素和點。
????????簡單的動態體素特征編碼,也是簡單地對體素中所有點的特征向量進行平均值運算作為整個體素的特征,只不過每個體素中的點個數是動態的,每個體素都不同。
?
在體素化完成后,就可以將激光雷達點通過特征編碼方法轉換到高維度空間。
總結
以上是生活随笔為你收集整理的3D目标检测常见体素化方法总结(原理及代码)(持续更新)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 电脑主机灯一直闪烁怎么办
- 下一篇: 基于体素的3D目标检测网络:VoxelN