Point-GNN: Graph Neural Network for 3D Object Detection in a Point Cloud
Abstract
- Point Cloud에서 객체 탐지를 위한 GNN
- Translation variance를 줄이기 위해 auto-registration mechanism 도입
- Multiple vertex에서 예측된 box를 merge하는 단계 설계
Introduction
- point cloud의 sparse하고 irregular 특성떄문에 Convolution 연산이 비효울적임
point를 집합으로 만들어 신경망을 통해 특징을 추츨하는 방법은 반복적으로 sampling하고 grouping하는 단계에서 계산 비용이 많이 든다.
- irregular point에 그래프 구조 적용하여 구조적인 특성을 이용할수 있다.
- 각 레이어에서 그래프 Edge들을 재사용하면서 학습하고 sampling과 grouping을 반복적으로 하지 않는다.
Related work
Point cloud in grids
- 2D image로 사영하여 CNN 적용
- 3D Voxel을 활용하여 CNN 적용
Point cloud in sets
- point sets을 만들어 MLP를 적용해 feature 추출
- max pooling 을 활용하여 계층구조를 가지고있는 point를 구함
Point cloud in graphs
- 밑에 내용 참고(이 논문에서는 single-stage detection 구조를 사용함)
Graph Construction
- 모든 Point들을 사용하여 그래프를 설계하는 것은 계산비용이 많이든다.
- Voxel downsampled point cloud P^를 통해 그래프를 설계한다.
- 그래프 설계는 고정된 반지름내에 point들을 찾아 edge를 연결하는 방식 (Cell List 알고리즘)
- initial state value s_i는 반지름 r_0 내에서 raw point들을 집합으로 만들고 MLP를 적용하여 lidar reflection intensity와 relative coordinates 반영한 vertex를 생성
Graph Neural Network with AutoRegistration
relative coordinate(상대좌표)로 인해서 point cloud의 global한 변화가 상쇄 된다
하지만 local structure에서 vertex의 변화는 전체적인 구조가 여전히 비슷함에도 불구하고 상대좌표에 변화로인해 variance를 높인다.
structure 특징을 가지고 있는 center vertex feature를 사용하여 이웃좌표들을 정렬할수있는 offset을 학습한다.
+ e_t: edge features from the iteration
+ v_t: vertex features from the iteration
+ fuction f_t() : 두 vertices간의 edge feature 계산
+ p() : a set function which aggregates the edge features for each vertex
+ g_t(): the aggregated edge features to update the vertex features
- Edge연결: cell list 알고리즘을 사용하여 edge생성
- GNN 정의: 좌표 x와 value s를 통해 vertex feature update
- 신경망 상세 구조: e_t에서 center vertex feature를 x feature에 더해주어 translation variance를 reduce 한다. (center vetex는 이전 iteration에서 구조적인 특성을 내포하고 있기 때문에)
- 신경망 상세 구조: 각 iteration에 사용되는 MLP는 다른 MLP 즉 공유하지 않음(vertex들 끼리만 공유)
loss
Object category
- 각각의 vertex마다 prob를 가지고 있음(background를 포함하여)
- y_i는 one-hot label이며 p_i는 predicted prob임
Object bounding box
- x,y,z는 vertex cooldinates
- l,h,w,θ ?
- Huber loss를 사용
- 오버피팅 방지를 위해 L1 정규화 항을 추가
Box Merging and Scoring
- Multiple한 vertex들이 같은 객체에 대해 multiple한 box를 출력 할 수 있음
- NMS 통해 box를 선택
- 기존 NMS는 Classicfication score가 가장 높은 것을 선택하고 다른 박스들은 작을 값을 주어 상쇄시키는 방식
- Classicfication score가 localization quality를 항상 잘 반영하는 것이 아님
- 전체 box를 고려하여 Classicfication score(신뢰도로 간주)의 합을 Iou factor와 occlution factor를 고려하여 box마다 가중치 할당해 합을 해줌
Experiments
kitti dataset에서 point cloud만 사용
Auto-Registration mechanism
- vertex position이 차량 중앙으로 이동한다.
- GNN layer가 깊어질 수록 상대좌표에 덜 의존하고 Point cloud 특성의 의존한다.