記錄centerpoint學習筆記。目前被引用1275次,非常高。
地址:Center-Based 3D Object Detection and Tracking (thecvf.com)
GitHub - tianweiy/CenterPoint
CenterPoint:三維點云目標檢測算法梳理及最新進展(CVPR2021)_嗶哩嗶哩_bilibili?作者解釋。
CenterPoint 是一種用于激光點云的3D目標檢測與跟蹤算法框架,由2021年CVPR論文《Center-based 3D Object Detection and Tracking》提出。與以往算法不同,CenterPoint使用關鍵點而不是邊界框來表示、檢測和跟蹤3D目標。
具體來說,CenterPoint算法分為兩個階段:
-
第一階段:使用關鍵點檢測器檢測目標的中心點,然后基于中心點特征回歸出目標的3D尺寸、朝向和速度等屬性。
-
第二階段:基于目標額外的點特征,對第一階段得到的屬性進行優(yōu)化。
CenterPoint算法的優(yōu)點包括簡單高效,在nuScenes和Waymo數據集上都取得了state-of-the-art的性能表現。此外,目標跟蹤被簡化為一個簡單的最近點匹配過程。
2D目標檢測:
2D目標檢測需要輸出每個對象的類別(如人、車、貓等)以及一個包圍框(bounding box),該包圍框在圖像中精確地定位了對象的位置。常見算法有基于區(qū)域提議(region proposal)的兩階段檢測算法(如Faster R-CNN)和基于單階段檢測(one-stage detection)的算法(如YOLO、RetinaNet)
anchor
anchor(錨點)通常是指在目標檢測任務中使用的一系列預定義的邊界框(bounding boxes)。這些錨點具有不同的尺寸和寬高比,以覆蓋圖像中可能出現的各種形狀和大小的目標。
錨點機制的工作流程如下:
- 在訓練階段,網絡首先生成一系列錨點,這些錨點覆蓋了圖像中可能出現的各種形狀和大小的目標。
- 然后,網絡預測每個錨點內部是否包含一個目標,如果是,則進一步預測目標的類別和錨點需要調整的偏移量,以更好地匹配目標的真實邊界框。
- 在推理階段,網絡使用這些錨點作為初始猜測,快速檢測圖像中的目標
缺點:不是end2end,需要nms后處理。
NMS
NMS(Non-Maximum Suppression,非極大值抑制)是一種在目標檢測任務中常用的后處理步驟,用于去除冗余的檢測邊界框,確保每個目標只被檢測一次。
NMS的主要步驟如下:
-
排序:首先,根據檢測邊界框的置信度(通常由檢測算法給出)對所有邊界框進行降序排序。
-
選擇最高置信度的邊界框:選擇置信度最高的邊界框作為當前考慮的邊界框。
-
抑制與當前邊界框高度重疊的邊界框:計算當前邊界框與其他所有邊界框的交并比(IoU,Intersection over Union),如果IoU超過某個預定義的閾值(例如0.5),則將這些邊界框抑制(即移除或忽略)。
-
重復步驟2和3:從剩余的邊界框中選擇置信度最高的邊界框,重復步驟3,直到所有的邊界框都被處理過。
-
輸出最終檢測結果:最后,剩下的邊界框就是NMS處理后的檢測結果,每個目標只被檢測一次。
NMS在目標檢測算法中起著關鍵作用,可以顯著減少冗余的檢測結果,提高檢測的準確性和效率。然而,NMS也有一些局限性,例如可能會抑制一些具有高置信度但與當前邊界框重疊的邊界框,這可能導致一些真正的目標被遺漏。為了解決這個問題,研究者們提出了改進的NMS算法,如Soft-NMS、Softer-NMS等,它們通過更柔和的抑制策略來減少誤抑制。
3D目標檢測:
3D目標檢測是計算機視覺領域的一項重要任務,其目標是在三維空間中檢測和定位圖像中的各種對象。與2D目標檢測相比,3D目標檢測不僅需要輸出每個對象的類別和位置,還需要輸出其在三維空間中的尺寸、方向和姿態(tài)等信息。
為了實現3D目標檢測,研究者們提出了多種算法,包括基于深度學習的端到端檢測算法和基于幾何學的算法。近年來,基于深度學習的3D目標檢測算法取得了顯著的進展,特別是基于點云(如PointNet、PointNet++)和基于體素(如VoxelNet)的方法。
2D的預測:xy,wh(寬高),cls類別
3D的預測:xyz,lwh(長寬高),θ朝向角度,cls類別
pointnet
PointNet是一種用于點云處理的深度學習模型,由2017年CVPR論文《PointNet: Deep Learning on Point Sets for 3D Classification and Segmentation》提出。該模型的主要思想是將點云數據作為輸入,通過神經網絡對其進行處理,以實現對點云數據的深度學習分析。
PointNet的關鍵創(chuàng)新點包括:
-
對稱函數(Set Abstraction):為了處理點云的無序性,PointNet引入了對稱函數,也稱為集合函數。該操作將無序的點集表示為固定長度的向量。在PointNet中,集合函數的實現形式是基于最大池化(max)。
-
T-Net:為了獲得點云的幾何變換不變性,PointNet通過學習幾何變換的參數,對點云數據進行對齊和變換。T-Net通過生成變換矩陣對原始點云數據進行變換,以更好地進行特征學習和提取。
-
多層感知器(MLP):PointNet使用多層感知器(MLP)對點云進行特征提取和分類/分割。
PointNet的主要應用包括:
- 3D物體分類:給定N個3D的點云,通過PointNet進行分類。
- 3D物體分割:對點云進行語義分割或實例分割。
PointNet的優(yōu)勢在于其簡單高效的設計,能夠直接處理點云數據,而無需將其轉換為其他表示形式(如體素或網格)。這使得PointNet在基于點云的3D物體檢測和分割任務中取得了當時最先進的性能。
voxelnet
VoxelNet是一種用于基于點云的3D物體檢測的端到端學習框架,由2018年CVPR論文《VoxelNet: End-to-End Learning for Point Cloud Based 3D Object Detection》提出。該框架的主要思想是將稀疏的點云數據轉換成密集的體素表示,然后使用3D卷積網絡進行特征提取和物體檢測。
VoxelNet框架主要包括以下步驟:
-
點云預處理:將稀疏的點云數據轉換成規(guī)則的體素網格表示。這一步通過將點云劃分成規(guī)則的體素,并對每個體素內的點進行統(tǒng)計(如最大值、最小值、平均值等)來實現。
-
體素特征提取:使用3D卷積網絡從體素網格中提取特征。這些特征能夠描述體素內的點云分布和結構信息。
-
區(qū)域提議網絡(RPN):基于提取的體素特征,使用RPN生成候選物體的3D邊界框提議。RPN是一個全卷積網絡,能夠輸出一系列3D邊界框提議以及每個提議的置信度。
-
邊界框回歸和分類:對RPN生成的邊界框提議進行回歸和分類,以獲得最終的物體檢測結果。這一步通常使用3D卷積網絡實現。
pointpillar
PointPillar是一種用于基于激光雷達(LiDAR)點云的3D物體檢測的算法,由2019年CVPR論文《PointPillars: Fast Encoders for Object Detection from Point Clouds》提出。該算法的主要思想是將稀疏的點云數據轉換成偽圖像表示(每一個pixel不僅有原始的2D信息還包括了高度信息),然后使用2D卷積網絡進行特征提取和物體檢測。voxelnet很慢也很占內存。
PointPillar框架主要包括以下步驟:
-
點云預處理:將稀疏的點云數據轉換成規(guī)則的偽圖像表示。這一步通過將點云劃分成規(guī)則的柱體(pillars),并對每個柱體內的點進行統(tǒng)計(如最大值、最小值、平均值等)來實現。
-
偽圖像特征提取:使用2D卷積網絡從偽圖像中提取特征。這些特征能夠描述每個柱體內的點云分布和結構信息。
-
區(qū)域提議網絡(RPN):基于提取的偽圖像特征,使用RPN生成候選物體的3D邊界框提議。RPN是一個全卷積網絡,能夠輸出一系列3D邊界框提議以及每個提議的置信度。
-
邊界框回歸和分類:對RPN生成的邊界框提議進行回歸和分類,以獲得最終的物體檢測結果。這一步通常使用3D卷積網絡實現。
PointPillar的創(chuàng)新之處在于其高效的計算方式,能夠將稀疏的點云數據轉換為密集的偽圖像表示,從而利用成熟的2D卷積網絡進行特征提取。這使得PointPillar在基于激光雷達的3D物體檢測任務中取得了當時最先進的性能。
centerpoint
當anchor感應到附件有目標物體的時候,就會有一個很大的激活值,就是上面紅色部分。
當物體是旋轉的時候,anchor會誤匹配,主要是因為anchor是正的,不能斜著
文章來源:http://www.zghlxwxcb.cn/news/detail-855611.html
中心點的表征是熱力圖(關鍵點檢測的loss):CLS*H*W,熱力圖的局部最大值認為是有目標obj文章來源地址http://www.zghlxwxcb.cn/news/detail-855611.html
到了這里,關于3D檢測:從pointnet,voxelnet,pointpillar到centerpoint的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!