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를 생성

image

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

  1. Edge연결: cell list 알고리즘을 사용하여 edge생성

  1. GNN 정의: 좌표 x와 value s를 통해 vertex feature update

  1. 신경망 상세 구조: e_t에서 center vertex feature를 x feature에 더해주어 translation variance를 reduce 한다. (center vetex는 이전 iteration에서 구조적인 특성을 내포하고 있기 때문에)

  1. 신경망 상세 구조: 각 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만 사용

image

Auto-Registration mechanism

  • vertex position이 차량 중앙으로 이동한다.
  • GNN layer가 깊어질 수록 상대좌표에 덜 의존하고 Point cloud 특성의 의존한다.





© 2021.11. by zziny

Powered by zziny