반응형

 

 

1. D2-Net (https://arxiv.org/pdf/1905.03561.pdf)

: CNN 기반

 

 

2. LF-Net (https://papers.nips.cc/paper/7861-lf-net-learning-local-features-from-images.pdf)

Local feature를 학습

3. Feature matching CNN 기반 (https://ieeexplore.ieee.org/abstract/document/8780936)

 

 

4. Deep Grapthical feature learning for feature matching (https://openaccess.thecvf.com/content_ICCV_2019/papers/Zhang_Deep_Graphical_Feature_Learning_for_the_Feature_Matching_Problem_ICCV_2019_paper.pdf)

GNN 기반 feature point를 local feature 로 변환. 이로 인해 feature matching 시에 inference 알고리즘이 단순화됨.

 

 

 

 

출처 : https://towardsdatascience.com/image-feature-extraction-traditional-and-deep-learning-techniques-ccc059195d04

반응형

'Programming > SLAM' 카테고리의 다른 글

iMap : Implicit Mapping and Positioning in Real-Time 논문 리뷰  (0) 2023.05.21
DROID SLAM 논문 리뷰  (0) 2023.05.20
SLAM 비선형 최적화 기법  (0) 2023.05.01
NICE-SLAM 논문리뷰  (0) 2023.03.28
Optical Flow란?  (0) 2023.02.19
반응형

 

 

https://arxiv.org/pdf/2103.12352.pdf

 

0. Title

iMap : Implicit Mapping and Positioning in Real-Time

-> Real-Time 환경에서 사용 가능한, 절대적인 mapping과 positioning 방법이다.

 

1. Introduction

2. Structure

1) System Overview

-> Tracker에서 포즈를 뽑고, 만약 키프레임이라면 Mapper에서 네트워크를 통해 최적화하여 tracker로 다시 정보를 보내주는 것 같다.

 

2) Implicit Scene Neural Network

NeRF와 유사하게, 4개의 히든 레이어를 가진 MLP와 

2개의 아웃풋 헤드를 이용한다. 이는 3D 좌표를 color와 volume density value인 F(p)=(c,r)으로 매핑한다. (volume density value란 depth를 말하는 듯 싶다.)

NeRF와 다른 점은, 보는 방향은 고려하지 않는다는 것이다. 우리에게 반사성은 중요하지 않기 때문이다.

 

3) Depth and color Rendering

4) Joint Optimization

 

 

 

 

 

반응형

'Programming > SLAM' 카테고리의 다른 글

Deep Learning based Feature extraction 기법  (0) 2023.05.24
DROID SLAM 논문 리뷰  (0) 2023.05.20
SLAM 비선형 최적화 기법  (0) 2023.05.01
NICE-SLAM 논문리뷰  (0) 2023.03.28
Optical Flow란?  (0) 2023.02.19
반응형

 

0. Title

DROID-SLAM: Deep Visual SLAM for Monocular, Stereo, and RGB-D Cameras

-> 이미지를 딥러닝으로 학습시켜 만든 SLAM 시스템인가보다,, 단안, 스테레오, RGB-D 카메라환경에서 쓰일 수 있나보다.

 

1. Introduction

 

2. Structure

: 단안, 스테레오, 혹은 RGB-D 데이터를 넣어주면 End-to-End로 SLAM pose와 depth를 구하는 것으로 보인다.

 

: LSTM의 구조를 단순화시킨 GRU를 이용한다. 프레임 그래프에서 엣지를 대상으로 작동하며, 플로우 변화를 예측하여 DBA(Dense Bundle Adjustment) layer를 통해 depth와 pose를 업데이트한다.

 

3. Approach

1) Feature Extraction and Correlation

RAFT 와 비슷한 방법으로 모든 새로운 이미지에서 feature를 추출한다.

- Feature Extraction

: feature extraction network에 의해 피쳐가 뽑아진다. 네트워크는 6개의 residual block과 3개의 downsampling layer로 구성되어 있다. 이는, 1/8 이미지 resolution에서 촘촘한 피쳐맵을 만든다.

RAFT와 유사하게, 두개의 네트워크를 사용한다. : 피쳐 네트워크와 컨텍스트 네트워크이다.

피쳐 네트워크는 correlation volume을 구하고, 컨텍스트 네트워크는 각 어플리케이션의 update operator에 주입된다.

- correlation pyramid

: 프레임 그래프에 있는 모든 엣지에 대하여, 모든 피쳐 페어에 대하여 dot product를 수행함으로써 4d correlation volume을 계산한다.

(한 피쳐 당 x,y 한 묶음이므로 2x2 = 4d)

즉, structure의 인풋 데이터 중 하나인, Cij 는 모든 피쳐에 대한 dot product 결과이다.

 

2) Update Operator

반응형
반응형

 

 

Google I/O의 가장 인상적인 데모는 폭포 앞의 여인의 사진이다.

여인의 사진을 꾹 누르면 자동으로 그 부분만을 떼어내어서 이미지 밖으로 꺼낼 수 있다.

반응형
반응형

출처 : https://darkpgmr.tistory.com/142

 

함수최적화 기법 정리 (Levenberg–Marquardt 방법 등)

※ 참고로, 아래 글 보다는 최근에 올린 [기계학습] - 최적화 기법의 직관적 이해를 먼저 읽어볼 것을 추천합니다. 그 이후에 아래 글을 읽어보시면 좋을 것 같습니다. ---------- 원래는 Levenberg-Marqu

darkpgmr.tistory.com

 

1. 최소자승법

관측값을 x, 모델 파라미터를 p, 모델을 y=f(x,p), 관측값과 모델의 오차를 r이라고 할 때,

오차 제곱합이 최소화 되도록 모델 파라미터 p를 정하는 방법을 최소자승법(least square method)이라 한다.

 

2. Gradient Descent

Gradient Descent 방법은 아래 식과 같이 어떤 초기값 x0으로부터 시작하여 

그레디언트의 반대 방향으로 계속 내려가다 보면 함수의 최소값을 찾을 수 있다는 방법이다.

 

* 어떤 다변수 함수의 그레디언트는

로 정의되며, 함수값이 가장 가파르게 증가하는 방향을 나타낸다

 

[ 최소자승 문제에의 적용 ]

r(x,p) = y-f(xp) 라하면 최소화시키고자 하는 목적함수는 다음과 같다.

따라서, 비선형 최소자승 문제에 대한 gradient descent의 해는 모델 파라미터 p에 대한 초기 추정값 p0에서 시작하여

p를 다음 수식에 의해 반복적으로 갱신함으로써 얻어진다. (람다는 step size이다.)

 

아래의 참고 글에서 일차미분을 이용한 최적화에 해당한다.

https://darkpgmr.tistory.com/149

 

최적화 기법의 직관적 이해

일전에 최적화 기법에 대해 정리하는 글(기계학습 - 함수 최적화 기법 정리)을 썼었는데, 지금에 와서 보니 너무 수식만 가득한 글이었던 것 같습니다. 그래서 수식보다는 좀더 직관적으로 이해

darkpgmr.tistory.com

 

3. 뉴턴법 

어떤 함수 E(x)=0의 해를 찾기 위해

임의의 초기값 x0으로부터 시작하여 다음 수식에 따라 x를 반복적으로 갱신함으로써 해를 찾아가는 방법니다.

 

그 원리는 미분이 접선의 기울기임을 이용하여 

현재의 x에서 E(x)의 부호와 기울기 E'(x)의 부호에 따라 x를  증가시킬지 감소시킬지를 결정하고

그 기울기의 크기에 따라서 x를 얼마나 많이 증가(감소)시킬지를 결정하는 방식이다.

 

만일 뉴턴법을 함수 E(x)의 최소(최대)값을 찾는 최적화 문제에 적용할 경우에는

다음과 같이 E'(x)=0의 해를 찾는 문제로 식을 변형하여 적용할 수 있다.

 

또한, 뉴턴법을 다변수 함수의 최적화 문제로 확장하면 식을 아래와 같이 수정하여 적용할 수 있다.

(단, H는 E''(x)로써 헤시안 값을 나타낸다.)

 

[최소자승 문제에의 적용]

뉴턴법의 식을 적용하면 비선형 최소자승 문제에 직접 적용하는 것도 가능은 하다.

하지만, E(p)에 두 번 미분해야 하는 부담이 존재한다.

따라서, 비선형 최소자승 문제의 경우에는 뉴턴법 대신에 일차 미분만으로 해의 계산이 가능한 가우스-뉴턴법이 사용된다.

 

아래의 참고 글에서 이차미분을 이용한 최적화에 해당한다.

https://darkpgmr.tistory.com/149

 

최적화 기법의 직관적 이해

일전에 최적화 기법에 대해 정리하는 글(기계학습 - 함수 최적화 기법 정리)을 썼었는데, 지금에 와서 보니 너무 수식만 가득한 글이었던 것 같습니다. 그래서 수식보다는 좀더 직관적으로 이해

darkpgmr.tistory.com

 

 

 

4. 가우스-뉴턴법

뉴턴법의 변형된 형태로서 비선형 최소자승 문제에 대한 대표적인 최적화 방법 중 하나이다.

앞서 뉴턴법을 최적화 문제에 적용할 경우에는 2차 미분이 필요하지만,

가우스-뉴턴법을 이용하면 1차 미분만으로 해를 찾을 수 있다.

 

비선형 최소자승 문제에서의 E(p)의 정의이다.

 

이 때, E(p)를 최소화시키는 즉, E'(p)=0으로 만드는 가우스-뉴턴 해는 모델 파라미터 p에 대해

초기 추정값 p0에서 시작하여 p를 다음 수식에 의해 반복적으로 갱신함으로써 얻어진다.

(JrTJr)-1JrT는 사실 Jr의 pseudo inverse이다. 따라서 식을 좀 더 간략히 표현하면 다음과 같다.

 

 

 

5. Levenberg-Marquardt 방법

LM 방법은 가우스-뉴턴과 gradient descent 방법이 결합된 형태로서

해로부터 멀리 떨어져 있을 떄는 gradient descent 방식으로 동작하고,

해 근처에서는 가우스-뉴턴 방식으로 해를 찾는다. 

 

빠른 비교 및 참조를 위해 지금까지 배운 방식들을 함께 적어보면 다음과 같다.

 

가우스-뉴턴법을 살펴보면 계산 과정에 (JrT Jr)의 역행렬 계산을 필요로 한다.

따라서 (JrT Jr)가 singular 행렬(역행렬이 존재하지 않는 행렬)에 근접한 경우에는 계산된 역행렬이 수치적으로 불안정하여 해가 발산할 수 있는 문제점이 있다.

 

Levenberg 방법은 가우스-뉴턴법을 개선하여 JrTJr에 항등행렬의 상수배 ml을 더함으로써 발산의 위험을 낮추고 보다 안정적으로 해를 찾을 수 있도록 한 방법이다.

상수 m(m>0)을 damping factor라 부르는데, m값이 작으면 Levenberg 방법은 가우스-뉴턴법과 유사해지고, m값이 크면 gradient descent 방법과 유사해진다. 

그런데, damping factor m은 고정된 값이 아니라 매 iteration마다 바뀌는 값으로서 현재 안정적으로 해에 수렴하고 있을 경우에는

작은 값을 주고 해를 잘 찾지 못하고 있을 경우에는 큰 값을 주는 방법을 사용한다.

 

Levenberg-Marquardt 방법은 기존의 Levenberg의 방법을 Marquadt가 좀 더 개선시킨 방법을 말한다.

원래의 Levenberg 방법은 m이 큰 경우에 step size가 1/m인 gradient descent 방법과 유사해짐은 앞서 설명한 바 있다.

하지만, 이 경우 수렴 속도가 느린 문제점이 있다. Marquardt는 이러한 문제를 보완하기 위해 항등행렬 I 대신에 diag(JrTJr)을 더해주는 방식을 제안하였다. (diag(A)는 A의 대각원소는 유지하고, 나머지 원소들의 값을 0으로 만든 대각행렬을 나타냄)

JrTJr은 원래 헤시안에 대한 근사행렬의 의미를 갖기 때문에 JrTJr의 대각 원소들은 각 파라미터 성분(pi)에 대한 곡률을 나타낸다.

즉, Levenberg-Marquardt 방법은 가우스-뉴턴법의 singular 문제를 피하면서도 m이 큰 경우에도 곡률을 반영하여 효과적으로 해를 찾을 수 있도록 한 방법이다.

반응형

'Programming > SLAM' 카테고리의 다른 글

iMap : Implicit Mapping and Positioning in Real-Time 논문 리뷰  (0) 2023.05.21
DROID SLAM 논문 리뷰  (0) 2023.05.20
NICE-SLAM 논문리뷰  (0) 2023.03.28
Optical Flow란?  (0) 2023.02.19
Bag of Visual word 알고리즘이란?  (0) 2023.02.19
반응형

 

 

1. 제목

NICE-SLAM: Neural Implicit Scalable Encoding for SLAM

=> 뉴럴 네트워크를 이용해서 절대적이고 확장가능한 Encoding을 한다.

 

2. Abstract

요즘 slam이 많이 발전하고 있지만, too-much smoothed scene reconstruction 문제와 scaling up이 잘 되지 않는 문제가 있었다. 

이 문제는 단순하게 완전 연결된 뉴럴 네트워크 때문이고, 이는 지역적인 정보를 포함하지 못 한다.

NICE-slam은 계층적인 장면 표현을 통해 지역적인 정보도 포함한다.

이는 더 큰 실내 환경에서도 잘 작동한다.

 

 

3. Structure

대충 보면,

RGB-D 데이터를 넣으면

Depth 데이터로부터 Depth Loss를 최소화한다.

RGB 데이터로부터 Photometric Loss를 최소화한다.

그렇게 생성된 Depth와 RGB 데이터를 넣는다.

계층적으로 feature를 뽑아서(tri-linear interpolation?)

coarse level / mid level / fine level / color level 로 나누어서 encoding한다. => 각자 뉴럴 네트워크에서 연산한 결과를 합친다.

뽑아낸 feature를 camera pose와 함께 넣어서 slam pose를 뽑는다.

* Mapping: The backpropagation only updates the hierarchical scene representation;

* Tracking: The backpropagation only updates the camera pose.

 

 

 

3. Method

1) Hierarchical Scene Representation

Mid-&Fine-level Geometric Representation

* 아래 수식들은 위의 structure 이미지를 보면서 따라가면 된다.

- (1) 수식 : mid level

자... 이걸 해석해보자면!

은 3개의 feature grid 중 하나이다.

f1 은 3개의 feature grid 에 대응되는 decoder(MLP)이다.

p 는 3d 포인트이다. 

 

- (2) 수식 : fine level

 

- (3) 수식 : final level occupancy

 

 

Coarse-level Geometric Representation

 

반응형

+ Recent posts