Monocular Visual Odmetry

2022. 1. 6.
#SLAM

๋‹ค์Œ ๋ธ”๋กœ๊ทธ ํฌ์ŠคํŠธ์˜ ๊ธ€์„ ์ •๋ฆฌํ•œ ๊ฒƒ ์ž…๋‹ˆ๋‹ค. Link
์ด ๊ธ€์„ ๋ณด๊ธฐ ์ „์— ์ด์ „ ๊ธ€์„ ๋ณด์‹œ๋Š” ๊ฒƒ์„ ์ถ”์ฒœํ•ฉ๋‹ˆ๋‹ค.

Demo

๋ฌธ์ œ Formulation

input
It,It+1I^t, I^{t+1}
II๋Š” ์ด๋ฏธ์ง€
์œ— ์ฒจ์ž t,t+1t, t+1์€ ์‹œ๊ฐ„

output
RR ํšŒ์ „ Matrix
tt ์ด๋™ vector

์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ฐœ์š”

  1. ์ด๋ฏธ์ง€ ์บก์ฒ˜: It,It+1I^t, I^{t+1}.
  2. camera calibration.
  3. ItI^t ์—์„œ feature๋ฅผ ์ฐพ๊ณ  ๊ทธ๊ฒƒ๋“ค์„ It+1I^{t+1} ์—์„œ tracking. ๋งŒ์•ฝ feature์˜ ์ˆ˜๊ฐ€ ์ผ์ • threshold๋ณด๋‹ค ์•„๋ž˜๋กœ ๋–จ์–ด์ง€๋ฉด ๋‹ค์‹œ detect
  4. RANSAC๊ณผ Nister์˜ 5 point algorithm์„ ์ด์šฉํ•˜์—ฌ essential matrix ๊ณ„์‚ฐ
  5. (4)์—์„œ ๊ตฌํ•œ essential matrix๋ฅผ ์ด์šฉํ•ด R,tR, t ๋ฅผ ๊ตฌํ•จ
  6. scale ์ •๋ณด๋ฅผ ์™ธ๋ถ€์˜ ์ •๋ณด(ex. ์†๋„๊ณ„)๋กœ ๋ถ€ํ„ฐ ๊ตฌํ•จ, ์ด๋ฅผ matrix์— ํ•ฉ์นจ

Undistortion

์ƒ๋žต

Feature detection

FAST ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์‚ฌ์šฉ

(์ด์ „ ๊ธ€์— ์„ค๋ช… ์žˆ์Œ)

Feature Tracking

KLT Tracker ์‚ฌ์šฉ

(์ด์ „ ๊ธ€์— ์„ค๋ช… ์žˆ์Œ)

Feature Re-Detection

detection์„ ํ•  ๋•Œ ๊ฒฐ๊ตญ ์›€์ง์ด๊ธฐ ๋•Œ๋ฌธ์— ํฌ์ธํŠธ์˜ ์ˆ˜๊ฐ€ ์ค„์–ด๋“ค ์ˆ˜ ๋ฐ–์— ์—†์Œ

๋”ฐ๋ผ์„œ ํŠน์ •ํ•œ threshold๊ฐ’๋ณด๋‹ค feature๊ฐ€ ์ ์–ด์ง€๋ฉด ๋‹ค์‹œ detectํ•˜๋„๋ก ํ•จ (์˜ˆ์‹œ์˜ ์ฝ”๋“œ์—์„œ๋Š” 2000๊ฐœ)

Essential Matrix Estimation

esseential matrix๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ •์˜๋  ์ˆ˜ ์žˆ์Œ

y1TEy2=0y^T_1 E y_2 = 0

y1,y2y_1, y_2 : homogeneous normalized image coordinates

๊ฐ„๋‹จํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด 8๊ฐœ์˜ point correspondences ์š”๊ตฌํ•˜์ง€๋งŒ, ์ตœ๊ทผ์— 5๊ฐœ์˜ point ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ๋” ์ข‹์€ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์—ฌ์ค€๋‹ค๊ณ  ํ•œ๋‹ค.

RANSAC

๋งŒ์•ฝ์˜ ๋ชจ๋“  correspondence๊ฐ€ ์™„๋ฒฝํ•˜๋‹ค๋ฉด 5 point ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ frame๊ณผ frame์‚ฌ์ด์˜ ์›€์ง์ž„์„ ์™„๋ฒฝํ•˜๊ฒŒ ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค. ํ•˜์ง€๋งŒ ํ˜„์‹ค์€ ์™„๋ฒฝํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— RANSAC๊ณผ ๊ฐ™์€ ๋ฐฉ๋ฒ•์„ ์ด์šฉํ•ด outlier๋ฅผ ์ œ๊ฑฐํ•จ

R,tR,t ๊ตฌํ•˜๊ธฐ

Essetial matrix๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ‘œํ˜„ ๊ฐ€๋Šฅ

E=R[t]xE = R[t]_x

RR : ํšŒ์ „ ํ–‰๋ ฌ

[t]x[t]_x : tt ์™€์˜ cross product

EE ์— SVD๋ฅผ ์ ์šฉํ•˜๋ฉด

E=UฮฃVTE = U\Sigma V^T
[t]x=VWฮฃVT[t]_x = VW\Sigma V^T
R=UWโˆ’1VTR = UW^{-1}V^T

Constructing Trajectory

์šฐ๋ฆฌ๋Š” ๊ฒฝ๋กœ๋ฅผ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ณต์‹์„ ํ†ตํ•ด ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค.

Rpos=RRposR_{pos} = RR_{pos}
tpos=tpos+tRpost_{pos} = t_{pos} + tR_{pos}

Heuristics

๋Œ€๋ถ€๋ถ„์˜ ์ปดํ“จํ„ฐ ๋น„์ „ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ๊ฒฝํ—˜์ ์ธ ๋ถ€๋ถ„์„ ํฌํ•จํ•˜์—ฌ ์ข€ ๋” ์™„๋ฒฝํ•ด์ง„๋‹ค.

Monocular Visual Odometry ์—์„œ๋Š” Dominant Motion is Forward๋ผ๋Š” ์›์น™์„ ๊ฐ€์ง„๋‹ค.