본문 바로가기
3D point clouds/Segmentation

[논문리뷰] 3D Semantic Segmentation with Submanifold Sparse Convolutional Networks

by khslab 2023. 7. 20.

이 논문은 앞서 포스팅한 3D semantic segmentation의

discretization-based methods의

Sparse Discretization Representation 범주에 들어가는 논문이다.

 

CVPR'18

https://arxiv.org/abs/1711.10275

 

3D Semantic Segmentation with Submanifold Sparse Convolutional Networks

Convolutional networks are the de-facto standard for analyzing spatio-temporal data such as images, videos, and 3D shapes. Whilst some of this data is naturally dense (e.g., photos), many other data sources are inherently sparse. Examples include 3D point

arxiv.org


Abstract

 

CNN network는 사실상 spatio-temporal data 분석의 표준이다.

사진은 자연적으로 밀도 있는 데이터지만,

point cloud같은 데이터는 내제적으로 sparse한 데이터다.

CNN network의 dense implementation은

sparse data에 적용하는 것이 매우 비효율적이다.

이를 위해, 저자들은 공간적으로 sparse한 data를 매우 효율적으로 처리하도록

설계된 sparse conv. operation을 제안한다.


1. Introduction

 

차원의 저주로인해 3차원 이상의 data에서

gird에 있는 point의 수는 차원에 지수적으로 증가한다.

이때문에, 데이터 처리를 위해 cumputational resource를 줄이려고

data의 sparsity를 이용하는 것의 중요성이 점차 증가하고 있다.

 

현재의 traditional CNN은 sparse한 data를

효율적으로 처리하지 못한다.

CNN의 sparse implementation의 주된 단점 중 하나는

"dilate"현상이 full conv. 연산을 적용할 때

모든 layer에서 발생한다는 것이다.

위 그림이 "dilate"현상의 예시인데

좌측 input data가 layer를 지날수록

넓게 퍼지는 것을 확인할 수 있다.

 

저자들은 network를 통과할 때 다음과 같이

sprsity의 같은 level을 유지하도록하는

새로운 conv.를 제안한다.

층을 지나도 변하지 않는다.

그것이 submanifold sparse convolution이다.

다음 표는 보면 submanifold sparse conv.의 효용성을 보여준다.


3. Spatial Sparsity for Convolutional Networks

 

저자들은 input으로 ($d$+1)-dimensional tensor를 받는

$d$-dimensional conv. network를 정의한다.

input tensor는 $d$개의 spatio-temporal dimension과

(너비, 폭, 높이, 시간 등)

하나의 추가적인 feature space dimension을 가진다.

(RGB channel 또는 normal vector)

 

저자들은 만약 feature vector가 ground state (none 또는 0상태)가

아닐경우 input을 active라는 것으로 정의하는 site를 만든다.

 

input tensor가 ($d$+1)-dimensional tensor에서

feature dimension 사이의 모든 line은

activive또는 inacitve 중 하나를 가진다.

(즉, input이 비었냐 안비었냐를 뜻하는게 active다)

 

input active는 hidden active로 전달되고

또 hidden active는 다음 layer에 또 activity를 전달한다.

이렇게 됐을 때 앞서 말한것 처럼

일반적인 conv. operator 특성상 activity는 층을 지날수록 점점 팽창된다.

https://github.com/facebookresearch/SparseConvNet

이것을 submanifold dilation problem이라 정의한다.


4. Submanifold Convolutional Networks

 

이를 해결하기 위해

 conv. 연산을 active input point에만 적용하는 방안을 제안한다.

이렇게 되면 다음 layer에도 input의 sparsity를 유지할 수 있다.

즉 다음 그림과 같이 커널을 active input에만 적용하는 것이다.

 

https://github.com/facebookresearch/SparseConvNet


4.1. Sparse Convolutional Operations

 

저자들은 sparse conv.를 $SC(m,n,f,s)$라고 정의한다.

$m$은 input featuer plane, $n$은 output feature plane,

$f$는 filter size, $s$는 stride다.

$SC$ conv.는 conv. 연산을 할 때 active만 "연산"을 한다.

만약 input size가 $l%이면 output size는 $(l-f+s)/s$다.

$SC$ conv.는 ground state는 버리고 계산하므로

약 50% computational cost를 줄인다.

쉽게 설명하자면 일반 conv.처럼 kernel을 이동하는데

kernel에 대응되는 input이 "모두" ground state일 경우

계산을 안하고 0으로 취급하여 넘어간다는 뜻이다.

즉, 0 * kernel weight 연산 자체를 시도하지 않는다는 것이다.

 

Submanifold sparse convolution

 

$f$를 홀수 크기로 나타내고 submanifold sparse conv.는

$SSC(m,n, f)$로 정의한다. stride는 1이다.

먼저 input에 $(f-1)/2$로 zero padding을 해서

input output 크기가 같도록 한다.

다음 active input 위에서 kernel 곱 연산을 수행한다.

(active input pixel에 커널의 중심을 두고 연산한다는 뜻)

 

이때 sparse conv.와 submanifold sparse conv.와

일반 conv.연산의 차이를 다음 표를 통해 알 수 있다.

설명한대로 $SSC$는 반드시 active input에서만 연산이 수행된다.

$SC$는 inactive input에서도 연산이 수행되는데

kernel input이 모두 0인 경우는 연산하지 않는다.

일반적인 conv.는 모두 연산을 한다.


5. Submanifold FCNs and U-Nets for Semantic Segmentation

 

저자들은 input을 voxelization을 한 뒤,

FCN과 U-Net을 submanifold sparse conv.로 만든다.

여기서 max pooling이나 deconv.는 $SC$기반으로 연산된다.


6. Experiments

 

실험은 ShapeNet과 NYU Depth (v2)를 사용한다.

그리고 기존의 방법과 성능과 computation efficiency를

측정한다.


6.1 Dataset

 

Dataset을 3D translation과 rotation을 통해

augmentation을 적용한다.

이 augmentation을 쓰지 않으면 다음처럼

IoU acc.가 상당히 떨어진 다는것을 알 수 있다.


6.4. Results

 

실험결과 baselise 모델보다

훨씬 효율적이라는 것을 알 수 있다.

또 평균적으로 FCNs가 U-Net보다 낫다는 것을 볼 수 있다.

S는 voxel과 관련된 내용인데 이에 대해서는

아직 구체적으로 파악하지 못해서 생략..


6.6 Semantic Segmentation of Scenes

 

저자들은 NYU Depth (v2)에 대해서 실험을 수행했다.

 이 dataset의 예시는 다음과 같다.

실험결과는 다음과 같다.

Depth영상을 통해 point cloud를 만들어서 실험했다.


7. Conclusions

 

저자들은 submanifold sparse convolutional networks를 제안한다.

이것은 효율적으로 고차원 sparse data를 처리한다.