hyunjin

Sparse Convolution 본문

개인 공부/컴퓨터비전

Sparse Convolution

_h.j 2021. 7. 5. 15:34
728x90

convolutions

 

kernel size : convolution의 view(시야) 결정. 보통 2D에서 3X3 pixel

Stride : 커널 사이 스텝 사이즈. 기본값 보통 1 이지만 보통 Max pooling과 비슷하게 이미지 다운 샘플링하기 위해 stride 2로 사용할 수 있다.

Padding : 샘플 테두리를 어떻게 조절할지 결정. 패딩된 Convolution은 input, output 차원을 유지

Input & Output Channels : Convolution layer 는 Input 채널의 특정 수(I)를 받아 output 채널의 특정 수 (O)로 계산. 이런 계층에서 필요한 파라미터 수는 I*O*K(kernel 수)

 

 

 

Sparse Convolution

LiDAR 신호 처리에서 필수적인 역할

기존 convolution과는 상당히 다른 개념과 GPU 계산 스키마를 사용하는 방식

 

LiDAR 신호 처리에서 필수적인 역할

기존 convolution과는 상당히 다른 개념과 GPU 계산 스키마를 사용하는 방식

 

동기

CNN이 2D 이미지 신호 처리에 매우 효과적인 것으로 입증됨.

그러나 3D point cloud 신호의 경우 추가적인 차원 Z는 계산을 크게 증가시킴.

반면 일반 이미지와 달리 3D 포인트 클라우드의 대부분 voxel은 비어있기 때문에 3D voxel point cloud 데이터는 종종 sparse 신호가 됨.

그림1(상단) : sparse voxel이 있는 3D grid./ 그림2(하단) : 진한 회색 픽셀은 모두 0, 밝은 회색 픽셀은 0이 아닌 데이터 포인트를 나타내는 희소 픽셀이 있는 데이터. 빨간색 사각형은 Graham,Benjamin의 컨볼루션 커널

 

문제는 모든 이미지 픽셀이나 공간 복셀을 스캔하는 대신 희소 데이터로만 컨볼 루션을 효율적으로 계산할 수 있는지 여부

 

In our Sparse Convolutional Neural Networks (SCNN) model, each sparse convolutional layer can be performed with a few convolution kernels followed by a sparse matrix multiplication. It could be assumed that the sparse matrix formulation naturally leads to highly efficient computation. However, computing sparse matrix multiplication can involve severe overhead that makes it difficult to actually achieve attractive acceleration. Thus, we also propose an efficient sparse matrix multiplication algorithm.

 

 

5. 결론 및 요약

sparse covolution은 모든 픽셀이나 voxel을 스캔 할 필요가 없기 때문에 매우 효율적

0이 아닌 요소에 대해서만 convolution 계산

 

 

 

 

 

 

 

 

딥러닝에서 사용되는 여러 유형의 convolution 소개

sparse convolution neural network 논문

sparse convolution 설명

728x90

'개인 공부 > 컴퓨터비전' 카테고리의 다른 글

Marching Cube  (0) 2021.08.04
좌표계, 좌표계 변환  (0) 2021.07.30
Affine Plane, Affine Space, Affine Transformation  (0) 2021.07.28
Point Cloud  (0) 2021.07.06
3D Reconstruction , TSDF  (0) 2021.07.05