본 논문은 ECCV 2020에 투고된 3D Scene Reconstruction 분야 논문 중 높은 성능을 보인 논문이다.

 

1. Introduction

 컴퓨터 비전 분야에서 우리 주변 세계를 재구성하는 것은 오래된 목표이다. AR, 자율주행과 같은 많은 응용 프로그램이 등장하고, 이는 3D 재구성에 크게 의존한다. 이 재구성은 구조화된 빛, ToF, LIDAR 등과 같은 특수한 센서들을 활용하여 깊이를 측정하고, 이를 3D Model로 융합한다. 이는 효과적이지만 , 가격이 비싸고, 특수한 하드웨어가 필요하다. 

 다른 방법론으로는 단안영상, MVS, Stereo Method 등 RGB 카메라를 사용하여 깊이 지도를 예측한다. 이는 위의 센서들 보다 덜 정확하고, 만족스럽지 못한다고 저자는 설명한다.

 본 논문에서 저자는 Sequnce RGB Image를 가지고, 3D Model을 예측하는 End-to-End Network을 제안한다. 이를 통해 네트워크는 더 많은 정보를 융합하고, 3D Geometric 사전 정보를 학습하여, 더 나은 재구성을 생성한다. 또한, 키프레임을 선택함으로써, 시스템의 복잡성을 줄이고 코스트를 줄인다.

 본 논문의 방법은 Cost volume based MVS(Multi View Stereo), TSDF(Truncated Signed Distance Function) Fusion 방법을 사용한다.

  먼저, RGB Image에서 2D CNN을 통해 Features를 추출하고 이를 Back Project을 통해 3D Feature Volume을 생성한다. 이를 3D CNN을 통해 TSDF Volume으로 재생성한다. 

 

2. Method

Input : length sequnece of RGB Image with intrinsics and pose

아래는 전체 네트워크 구성이다.

2.1 Feautre Volume Construction

 먼저 입력인 시퀀스 이미지를 Backbone Netwokr (2D CNN) 을 통과시켜, 2D Feature를 추출한다. 이후 보유하고 있는 Camera Parameters, Pose와 2D Feature와 수식(1)을 활용하여 World Space의 Voxle 좌표를 구하는 Back Projection을 진행한다. 이를 통해 3D Voxel Volume을 얻을 수 있다. 이러한 Volume은 모든 Sequnce에서 TSDF Fusion과 유사하게 Weighted Average-수식 (2)을 통해 축적되어 하나의 Volume을 얻을 수 있다.

2.2 3D Encoder-Decoder

위에서 축적된 하나의 Volume을 입력으로 한다. AutoEncoder 구조를 활용하여 3D Enoder-Deconder Network를 구성했다. 이를 통해 Feature을 Refine 하고, TSDF Output을 추출한다.

 위 그림처럼 Encoder-Decoder는 residual blocks, Downsampling, Upsampling으로 구성되고 각각은 위와 같다.

 또한 마지막 레이어에 1x1x1 CNN을 사용하여 TSDF Value를 추출한다. Sematic Segmentation Model 또한, 1x1x1 CNN을 통해 Segmentation Logits을 예측한다.

 

3. Implemenation Deatils

해당 부분은 논문에서 따로 살펴보는게 구현 및 이해하기에는 편하다. 하지만 장면의 개수는 짚고 넘어가야 할  것 같다.

본 논문 다음에 나온 NeuraRecon과 다르게, 본 논문은 전체 시퀀스에서 50개의 이미지를 랜덤으로 선택하여 입력으로 사용한다. 해당 부분은 다른 논문들과 많이 다르다. 논문에서는 Backbone Netwokr와 Encoder-Decoder 구성 방법 및 사용한 Loss와 Optimizer 등 다양한 Parameters를 설명하고 있다. 만약 구현을 원한다면 논문과 github를 참고하는 것이 좋을 것 같다.

3. Results

 본 논문은 ScanNet을 활용하여 평가를 진행하였다. 평가 지표는 아래의 표와 같다

나는 3D 재구성을 목적을 두고 해당 논문을 읽고 공부 했기 때문에 3D geometry Metrics에 대해서만 결과를 확인하였다.  본 논문은  컴퓨터 비전 기반의 방법론인 COLMAP, Depth 기반의 방법론들을 비교하였다. 결과는 아래와 같다.

이전의 방법론들 보다 L1 Score에서 많은 차이를 보여주고 있다.

 

본 논문은 기존의 다른 방법과 다르게 Depth Map을 사용하지 않고, End-to-End로 3D Model을 구성할 수 있다. 다음은 본 논문의 성능을 뛰어넘은 NeuralReocon을 포스팅할 예정이다.

 

출처 

Project Page : http://zak.murez.com/atlas/

github : https://github.com/magicleap/Atlas

  • Docker 란?

 

  • Docker 설치 전

먼저 컴퓨터 하드웨어가 가상화를 지원해야만 가능합니다.

그래서 작업 관리자(ctrl + alt + del)에 진입 후 성능에 들어가서 가상화를 확인할 수 있습니다.

 

 

  • Docker 설치

가상화가 사용이 가능하면 Docker 사용이 가능합니다..

 

이전에는 Docker Toolbox를 많이들 사용 했지만 현재는 사용이 불가능하기 때문에 Docker DeskTop for Windows을 사용해야 합니다. Docker 공식 홈페이지에서 가입 후 다운을 진행해주시면 됩니다.

 

Docker Desktop for Windows

 

Docker Desktop for Windows - Docker Hub

Docker Desktop for Windows Docker Desktop for Windows is Docker designed to run on Windows 10. It is a native Windows application that provides an easy-to-use development environment for building, shipping, and running dockerized apps. Docker Desktop for W

hub.docker.com

 

    다운 후 저와 같은 Error가 발생 할 수 있습니다.

다음과 같은 Error 가 나오게 되면 Linux 커널을 업데이트해주시면 됩니다.

 

  • Tutorial 진행

설치가 완료 되면  Docker Desktop을 실행 후 Tutorial을 진행해주시면 됩니다.

 

그리고 CMD창에 아래를 입력하시면 버전을 확인할 수 있습니다.

docker -v 

 

 

 

 

 

  • Image 다운로드

Docker에는 위에서 말한 것처럼 Image와 Container로 구성되어 있습니다.

 

그래서 Docker의  Image 목록을 찾기 위해서는 Docker hub을 통해서 목록을 찾을 수 있습니다.

 

그래서 작업관리자(ctrl + alt + del)에 진입 후 성능에 들어가서 가상화를 확인할 수 있습니그래서 작업 관리자(ctrl + alt + del)에 진입 후 성능에 들어가서 가상화를 확인할 수 있습니다.

 

 

예를 들어 Dokcer의 ubuntu Image을 다운 받고 싶으면 ubuntu 검색을 통해 사용할 수 있습니다.

 

또한 cmd 창에서도 아래의 명령어를 통해 검색이 가능합니다.

 

docker search ubuntu

 

원하는 Image을 찾으셧다면 Image을 아래의 명령어로 다운로드하시면 됩니다.

 

docker pull ubuntu:18.04

 

그러면 다운로드가 완료된 Image을 확인할 수 있습니다

 

  • Container 생성 및 실행

Image을 생성 했으면 해당 Image안에 여러 개의 Container 설치가 가능합니다.

 

아래의 명령어로 Container 생성이 가능합니다.

 

docker run -it --name 이름 Image이름 /bin/bash

 

docker run -it --name Ubuntu ubuntu:18.04 /bin/bash

 

 

 

docker ps -a 

위 명령어로 Container 확인이 가능합니다.

 

Container 시작 방법은 2가지로 첫번째 명령어, 두 번째 프로그램 내에서 가능합니다.

 

docker start 컨테이너이름

 

 

아래의 명령어로 진입이 가능합니다.

 

docker attach 컨테이너이름

 

이상으로 Docker Desktop for Windows 사용법에 대해서 알아보았습니다.

다음에는 Nvidia Docker을 Linux에서 사용해서 포스팅 하겠습니다.

감사합니다.

'Install' 카테고리의 다른 글

Machine Learning & Deep Learing - GPU 환경설정  (0) 2020.11.02
PyTorch_Anaconda & JupterLab Install  (0) 2020.11.02

Stereo Maching을 공부한 후 Vision Based로 더 공부하기 위해서 Shape - From - Shading(SFS)을 공부했다.

 

Shape - From - Shading(SFS)은 빛으로 인해 생기는 그림자의 모양을 통해 3D Shpae을 추정하는 Algortihm이다.

Object에 따라 최적의 광원 위치가 달라지면서, 표면의 반사율과 Texture에 따라 성능이 달라진다.

 

SFS을 공부하기 위해서 논문 "Hand on Shape from Shading'을 읽으면서 공부를 진행했다. 정확한 참고자료는 밑에 기재했다.

 

해당 논문은 Matlab으로 구성되어 있어서 이를 Python으로 재 구현했다.

그래서 논문 결과와 구현 결과를 비교해가면서 공부를 진행했다.

 

1. Terminology

SFS을 공부하기 전에 사용되는 용어를 공부했다.

2. Synthesized image generation

두 번째 챕터에서는 합성된 이미지를 Python을 통해 만들었다.

만드는 순서는 다음과 같다.

해당 순서를 통해 만들어낸 합성 이미지를 보면,

왼쪽 이미지에서 Illumination은 [0. 5, 0, 0.98] 이기 때문에 x축 양의 방향으로 빛이 들어온 합성 이미지를 만들었고, 

오른쪽 이미지에서는 [-0.5, -0.5, 0.98]의 방향을 통해 만들었기 때문에 x축과 y축 음의 방향으로 이미지가 만들어졌다.

3. Finding surface albedo and illumination Direction

세 번째 챕터에서는 2번째 챕터에서 사용한 Surface Albedo와 Illuminatio Direction을 찾았다.

 순서는

 1. 위에서 구한 합성 이미지를 Normalization을 진행

 2. μ_1,μ_2를

 3. E_x, E_y을 찾고 &  이를 Normalization

 4. Illumination & Albedo을 찾는다

 

구현한 결과가 논문 결과와 너무 다르게 나와서 해당 부분을 지속적으로 찾아본 결과 문제점을 파악했다.

논문에 나와있는 합성된 사진에서는 Object 말고 나머지 공간이 매우 적었다. 하지만 구현한  합성 이미지에서는 논문 이미지보다 더 큰 공간을 가지고 있었다. 따라서 이 두 개의 이미지에서 μ_1,μ_2 값이 다르게 나왔다. 그래서 논문과 최대한 비슷한 모양의 이미지를 만들어 결과를 비교했다.

논문의 결과와 유사한 값의 Albedo, illumination이 나왔다.

4. Finding Surface

Python으로 위 식들을 구현한 순서는 아래와 같다.

1. Section 3Finding surface albedo and illumination Direction Algorithm을 통해 Albedo 와 Illumination을 계산

2. Initializations

3. Surface normalConvolution을 위한 필터 생성

4. Iterate

 4.1 Convolution을 통해 Second derivatives인 p1,q1p1, q1을 구하고

 4.2 1에서 구한 AlbedoIllumination을 통해 Reflectance map 계산

 4.3 Reflectancederivatives 계산

 4.4 p , q Updating

 4.5 p와와 qFFT를 통해  Z을 계산

 4.6 다음 Step의 p,q 계산

5. Linear approaches

 5.1 Pentland Approach

 5.2 Shah Approach

 

최종 결과는 Shah Approach가 가장 좋은 결과를 얻을 수 있었다.

 

참고자료

Hands on Shape from Shading, Technical Report, Shireen Y. Elhabian, CVIP, May 2008

 

'Computer Vision > 3D Reconstruction' 카테고리의 다른 글

Stereo Camera Calibration  (0) 2021.01.26
Stereo Matching  (0) 2020.12.26
3D Reconstruction의 다양한 기법  (0) 2020.11.04

+ Recent posts