꿈꾸는 개발자

Dynamic Graph CNN for Learning on Point Clouds 논문 리뷰 본문

논문 리뷰

Dynamic Graph CNN for Learning on Point Clouds 논문 리뷰

Anssony 2024. 1. 10. 13:00

논문 제목 : Dynamic Graph CNN for Learning on Point Clouds

Introduction

point clouds의  high-level task를 CNN 기반의 EdgeConv라는 neural network module로 classification과 segmentation을 수행하는 DGCNN 모델을 제안

EdgeConv는 포인트와 그 포인트의 이웃간 관계를 설명하는 edge feature를 생성하는 모듈미분 가능하고 기존에 존재하는 아키텍쳐에 추가할 수 있음

OUR APPROACH

DGCNN은 Edge 정보를 활용한 CNN과 비슷한 연산으로 특징을 추출하는 방식

DGCNN에서 주요 모듈로 EdgeConv가 존재하고, 이는 포인트와 인접한 포인트 간의 관계를 Edge로 표현하고 이들의 관계에 대한 특징을 추출함으로써 동작

graph CNN과 달리 EdgeConv는 고정되어있지 않고 dynamic하게 네트워크의 각 layer가 업데이트 되는 방식

DGCNN 구조

i 번째 vertex에서 EdgeConv의 출력은 다음과 같다.

$ x_{i}^{'} = \underset{ j:(i,j) \in \varepsilon }{\square} h_{\Theta}(x_{i}, x_{j}) $

$ x_{i} $ 와 $ x_{j} $를 이용해 $ h_{\Theta} $ 와 symmetric aggregation function($ \square $)를 어떤 식으로 정의하는 것이 올바른 것인가에 대해 설명(EdgeConv 연산 수식 선정)

  1. standard convolution을 사용
    • $ x_{im}^{'} = \underset{j:(i,j) \in \varepsilon}{\Sigma} \theta_{m} \cdot x_{j} $
    • 구조적인 한계로 사용이 불가능
  2. PointNet 연산을 활용
    • $ h_{\Theta}(x_{i}, x_{j}) = h_{\Theta}(x_{i}) $
    • 전역적인 정보만을 활용하고 로컬 이웃 정보를 활용하지 않기 때문에 한계점 존재
  3. Gaussian kernel과 pairwise distance를 활용
    • $ h_{\Theta}(x_{i}, x_{j}) = h_{\Theta}(x_{j}) $
    • $ x_{im}^{'} = \underset{j \in \upsilon}{\Sigma} h_{\theta_{(x_j)}}g(u(x_i, x_j)) $
    • local 과 global 모두 강건하지는 않았다는 한계점 존재
  4. 상대 거리를 입력으로 사용
    • $ h_{\Theta}(x_{i}, x_{j}) = h_{\Theta}(x_{i}, x_{j}) $
    • PointNet++에서 사용한 내용으로 인접한 포인트와의 상대 거리를 이용하다보니 local 정보를 잘 취득하나 global 정보가 상대적으로 취약하다는 단점이 있음
  5. 포인트 i 위치와 이웃 포인트의 상대 거리를 모두 입력으로 사용
    • $ h_{\Theta}(x_{i}, x_{j}) = h_{\Theta}(x_{i}, x_{i} - x_{j}) $
    • PointNet 연산과 PointNet++ 연산에서 사용한 내용을 함께 사용

EdgeConv Operation

EdgeConv를 진행함으로써 포인트와 인접한 포인트에 대한 edge feature인 $ e_{ij_{in}} $ 를 추출한 후 최종적으로 edge feature들에 대해 max pooling 을 사용함으로써 최종 특징을 추출

$ e_{ijm}^{'} = ReLU(\theta_{m} \cdot (x_{j} - x_{i}) + \phi_{m} \cdot x_{i}) $

$ x_{im}^{'} = \underset{j:(i,j) \in \varepsilon}{max} e_{ijm}^{'} $

 

Dynamic graph update

dynamic graph update
dynamic graph update

EVALUATION

Classification 결과
DGCNN이 다른 모델 대비 정확도가 뛰어난 것을 확인할 수 있다.
part segmentation 결과
semantic segmentation 결과

DISCUSSION

EdgeConv 연산을 활용한 classification, segmentation을 수행하는 DGCNN 모델 제안

EdgeConv를 통해 인접한 포인트와의 관계를 함께 학습한다는 것이 장점

PointNet, PointNet++ 모델보다 성능이 우수함을 보임 

특히, PointNet++의 경우 연산량이 많아 시간이 오래 걸리는 반면 DGCNN은 효율적으로 계산함에도 불구하고 성능이 뛰어남을 보임

 

개인적인 생각

Part segmentation 에서 다른 딥러닝 기반 모델보다 유리할 것으로 생각