SlideShare a Scribd company logo
1 of 273
Download to read offline
Direct Sparse Odometry (DSO)
pdf ๋ณด๊ธฐ ํƒญ์—์„œ ํ•œ ํŽ˜์ด์ง€ ์”ฉ ๋ณด๊ธฐ๋กœ ์„ค์ •ํ•˜์‹œ๋ฉด ppt ์Šฌ๋ผ์ด๋“œ ๋„˜๊ธฐ๋“ฏ์ด ๋ณด์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค
๊ฐœ์ธ์ ์œผ๋กœ ๊ณต๋ถ€ํ•˜๊ธฐ ์œ„ํ•ด ์ž‘์„ฑํ•œ ์ž๋ฃŒ์ž…๋‹ˆ๋‹ค
๋‚ด์šฉ ์ค‘ ํ‹€๋ฆฐ ๋ถ€๋ถ„์ด๋‚˜ ๋น ์ง„ ๋‚ด์šฉ์ด ์žˆ๋‹ค๋ฉด gyurse@gmail.com ์œผ๋กœ ๋ง์”€ํ•ด์ฃผ์‹œ๋ฉด ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค :-)
References: 1) [EN] DSO paper - http://vladlen.info/papers/DSO.pdf
2) [KR] SLAMKR study - SLAMKR Study Season 1
3) [CH] DSO code reading - https://x007dwd.github.io/2017/02/28/dso-slam/
4) [CH] jingeTUโ€™s SLAM blog - https://www.cnblogs.com/JingeTU/category/954354.html
5) [CH] DSO tracking and optimization - https://blog.csdn.net/xxxlinttp/article/details/90640350
6) [CH] DSO initialization - https://blog.csdn.net/xxxlinttp/article/details/89379785
7) [CH] Detailed in DSO - https://zhuanlan.zhihu.com/p/29177540
8) [CH] DSO photometric calibration - https://www.cnblogs.com/luyb/p/6077478.html
9) [CH] DSO code with comments - https://github.com/alalagong/DSO
2020/03/05
1st: 2020/01/02
2nd: 2020/01/06
3rd: 2020/01/18
4th: 2020/01/20
5th: 2020/01/23
6th: 2020/01/26
7th: 2020/02/01
8th: 2020/02/10
9th: 2020/02/23
Last modified:
10th: 2020/03/03
11th: 2020/03/04
Contents
1. Initialization
1.1. Error Function Formulation
1.2. Gauss-Newton Optimization
1.3. Jacobian Derivation
1.4. Solving The Incremental Equation (Schur Complement)
2. Frames
2.1. Pose Tracking
2.2. Keyframe Decision
3. Non-Keyframes
3.1. Inverse Depth Update
Contents
4. Keyframes
4.1. Inverse Depth Update
4.2. Immature Point Activation
4.3. Sliding Window Optimization
4.3.1. Error Function Formulation
4.3.2. Jacobian Derivation of Camera Intrinsics
4.3.3. First Estimate Jacobian (FEJ)
4.3.4. Adjoint Transformation
4.3.5. Marginalization
4.3.6. Solving The Incremental Equation
5. Pixel Selection
5.1. Make Histogram
5.2. Dynamic Grid
6. DSO Code review
1. Initialization
1.1. Initialization โž” Error Function Formulation
3์ฐจ์› ๊ณต๊ฐ„ ์ƒ์˜ ํ•œ ์ 
2์ฐจ์› ์ด๋ฏธ์ง€ ํ‰๋ฉด ์ƒ์˜ ํ•œ ์ 
์นด๋ฉ”๋ผ ๋‚ด๋ถ€ ํŒŒ๋ผ๋ฏธํ„ฐ(3x3ํ–‰๋ ฌ)
๊นŠ์ด ๊ฐ’์˜ ์—ญ์ˆ˜ (inverse depth)
์นด๋ฉ”๋ผ ์ขŒํ‘œ๊ณ„
3์ฐจ์› ์ƒ์˜ ํ•œ ์  ๊ณผ 2์ฐจ์› ์ด๋ฏธ์ง€ ํ‰๋ฉด ์ƒ์˜ ํ•œ ์  ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ด€๊ณ„๋ฅผ ๊ฐ€์ง„๋‹ค.
3์ฐจ์› ๊ณต๊ฐ„ ์ƒ์˜ ํ•œ ์ 
2์ฐจ์› ์ด๋ฏธ์ง€ ํ‰๋ฉด ์ƒ์˜ ํ•œ ์ 
์นด๋ฉ”๋ผ ๋‚ด๋ถ€ ํŒŒ๋ผ๋ฏธํ„ฐ(3x3ํ–‰๋ ฌ)
๊นŠ์ด ๊ฐ’์˜ ์—ญ์ˆ˜ (inverse depth)
์นด๋ฉ”๋ผ ์ขŒํ‘œ๊ณ„
1.1. Initialization โž” Error Function Formulation
3์ฐจ์› ์ƒ์˜ ํ•œ ์  ๊ณผ 2์ฐจ์› ์ด๋ฏธ์ง€ ํ‰๋ฉด ์ƒ์˜ ํ•œ ์  ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ด€๊ณ„๋ฅผ ๊ฐ€์ง„๋‹ค.
3์ฐจ์› ๊ณต๊ฐ„ ์ƒ์˜ ํ•œ ์ 
2์ฐจ์› ์ด๋ฏธ์ง€ ํ‰๋ฉด ์ƒ์˜ ํ•œ ์ 
์นด๋ฉ”๋ผ ๋‚ด๋ถ€ ํŒŒ๋ผ๋ฏธํ„ฐ(3x3ํ–‰๋ ฌ)
๊นŠ์ด ๊ฐ’์˜ ์—ญ์ˆ˜ (inverse depth)
์นด๋ฉ”๋ผ ์ขŒํ‘œ๊ณ„
1.1. Initialization โž” Error Function Formulation
3์ฐจ์› ์ƒ์˜ ํ•œ ์  ๊ณผ 2์ฐจ์› ์ด๋ฏธ์ง€ ํ‰๋ฉด ์ƒ์˜ ํ•œ ์  ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ด€๊ณ„๋ฅผ ๊ฐ€์ง„๋‹ค.
์ด ๋•Œ, ์นด๋ฉ”๋ผ๊ฐ€ ๋งŒํผ ์›€์ง์—ฌ์„œ ์นด๋ฉ”๋ผ๊ฐ€ ์œผ๋กœ
์ด๋™ํ•œ ๊ฒฝ์šฐ๋ฅผ ์ƒ๊ฐํ•ด๋ณด์ž.
1.1. Initialization โž” Error Function Formulation
์นด๋ฉ”๋ผ์˜ 3์ฐจ์› ํฌ์ฆˆ (4x4ํ–‰๋ ฌ)
C1,C2 ์นด๋ฉ”๋ผ ๊ฐ„ ์ƒ๋Œ€ ํฌ์ฆˆ
(transform) (lie group) (4x4ํ–‰๋ ฌ)
C1,C2 ์นด๋ฉ”๋ผ ๊ฐ„ ์ƒ๋Œ€ ํฌ์ฆˆ ๋ณ€ํ™”๋Ÿ‰
(twist) (6์ฐจ์›๋ฒกํ„ฐ)
hat ์—ฐ์‚ฐ์ž๊ฐ€ ์ ์šฉ๋œ twist
(lie algebra) (4x4ํ–‰๋ ฌ)
3์ฐจ์› ์ƒ์˜ ํ•œ ์  ๊ณผ 2์ฐจ์› ์ด๋ฏธ์ง€ ํ‰๋ฉด ์ƒ์˜ ํ•œ ์  ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ด€๊ณ„๋ฅผ ๊ฐ€์ง„๋‹ค.
์ด ๋•Œ, ์นด๋ฉ”๋ผ๊ฐ€ ๋งŒํผ ์›€์ง์—ฌ์„œ ์นด๋ฉ”๋ผ๊ฐ€ ์œผ๋กœ
์ด๋™ํ•œ ๊ฒฝ์šฐ๋ฅผ ์ƒ๊ฐํ•ด๋ณด์ž.
์„ ๋‘ ๋ฒˆ์งธ ์นด๋ฉ”๋ผ ์ƒ์— ํ”„๋กœ์ ์…˜ํ•œ ์  ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ณต์‹์œผ๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค.
1.1. Initialization โž” Error Function Formulation
์นด๋ฉ”๋ผ์˜ 3์ฐจ์› ํฌ์ฆˆ (4x4ํ–‰๋ ฌ)
C1,C2 ์นด๋ฉ”๋ผ ๊ฐ„ ์ƒ๋Œ€ ํฌ์ฆˆ
(transform) (lie group) (4x4ํ–‰๋ ฌ)
C1,C2 ์นด๋ฉ”๋ผ ๊ฐ„ ์ƒ๋Œ€ ํฌ์ฆˆ ๋ณ€ํ™”๋Ÿ‰
(twist) (6์ฐจ์›๋ฒกํ„ฐ)
hat ์—ฐ์‚ฐ์ž๊ฐ€ ์ ์šฉ๋œ twist
(lie algebra) (4x4ํ–‰๋ ฌ)
3์ฐจ์› ์ƒ์˜ ํ•œ ์  ๊ณผ 2์ฐจ์› ์ด๋ฏธ์ง€ ํ‰๋ฉด ์ƒ์˜ ํ•œ ์  ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ด€๊ณ„๋ฅผ ๊ฐ€์ง„๋‹ค.
์ด ๋•Œ, ์นด๋ฉ”๋ผ๊ฐ€ ๋งŒํผ ์›€์ง์—ฌ์„œ ์นด๋ฉ”๋ผ๊ฐ€ ์œผ๋กœ
์ด๋™ํ•œ ๊ฒฝ์šฐ๋ฅผ ์ƒ๊ฐํ•ด๋ณด์ž.
์„ ๋‘ ๋ฒˆ์งธ ์นด๋ฉ”๋ผ ์ƒ์— ํ”„๋กœ์ ์…˜ํ•œ ์  ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ณต์‹์œผ๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค.
์นด๋ฉ”๋ผ์˜ 3์ฐจ์› ํฌ์ฆˆ (4x4ํ–‰๋ ฌ)
C1,C2 ์นด๋ฉ”๋ผ ๊ฐ„ ์ƒ๋Œ€ ํฌ์ฆˆ
(transform) (lie group) (4x4ํ–‰๋ ฌ)
C1,C2 ์นด๋ฉ”๋ผ ๊ฐ„ ์ƒ๋Œ€ ํฌ์ฆˆ ๋ณ€ํ™”๋Ÿ‰
(twist) (6์ฐจ์›๋ฒกํ„ฐ)
hat ์—ฐ์‚ฐ์ž๊ฐ€ ์ ์šฉ๋œ twist
(lie algebra) (4x4ํ–‰๋ ฌ)
1.1. Initialization โž” Error Function Formulation
3์ฐจ์› ์ƒ์˜ ํ•œ ์  ๊ณผ 2์ฐจ์› ์ด๋ฏธ์ง€ ํ‰๋ฉด ์ƒ์˜ ํ•œ ์  ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ด€๊ณ„๋ฅผ ๊ฐ€์ง„๋‹ค.
์ด ๋•Œ, ์นด๋ฉ”๋ผ๊ฐ€ ๋งŒํผ ์›€์ง์—ฌ์„œ ์นด๋ฉ”๋ผ๊ฐ€ ์œผ๋กœ
์ด๋™ํ•œ ๊ฒฝ์šฐ๋ฅผ ์ƒ๊ฐํ•ด๋ณด์ž.
์„ ๋‘ ๋ฒˆ์งธ ์นด๋ฉ”๋ผ ์ƒ์— ํ”„๋กœ์ ์…˜ํ•œ ์  ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ณต์‹์œผ๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค.
direct method๋Š” photometric error๋ฅผ ์—๋Ÿฌํ•จ์ˆ˜๋กœ ์‚ฌ์šฉํ•˜๋ฏ€๋กœ ํ”ฝ์…€์˜ ๋ฐ๊ธฐ(intensity)
๊ฐ’์˜ ์ฐจ์ด๋ฅผ ๊ตฌํ•ด์•ผ ํ•œ๋‹ค. ์ด ๋•Œ DSO๋Š” ์นด๋ฉ”๋ผ์˜ exposure time์„ ๊ณ ๋ คํ•˜์—ฌ ๋ฐ๊ธฐ ์˜ค์ฐจ๋ฅผ
์กฐ์ •ํ•˜๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ์ด๋ฅผ Photometric Calibration parameter(a, b)๋ผ๊ณ  ํ•œ๋‹ค.
i๋ฒˆ์งธ ์ด๋ฏธ์ง€์—์„œ j๋ฒˆ์งธ ์ ์˜ ๋ฐ๊ธฐ (grayscale)(intensity)(0~255๋‹จ์œ„)
i๋ฒˆ์งธ ์ด๋ฏธ์ง€๊ฐ€ ์ดฌ์˜๋œ ์ˆœ๊ฐ„์˜ exposure time (๋˜๋Š” Shutter time)(ms๋‹จ์œ„)
๋‘ ์ด๋ฏธ์ง€ ๊ฐ„ exposure time์„ ๊ณ ๋ คํ•˜์—ฌ ์ด๋ฏธ์ง€ ๋ฐ๊ธฐ๋ฅผ ์กฐ์ ˆํ•˜๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ
๋˜๋Š” Affine brightness transfer parameters (a,b)
1.1. Initialization โž” Error Function Formulation
์ด ๋•Œ ๋‘ ์ ์˜ ํ”ฝ์…€ ๋ฐ๊ธฐ์˜ ์ฐจ์ด๋ฅผ ์—๋Ÿฌ(error, residual)๋กœ ์„ค์ •ํ•œ๋‹ค.
1.1. Initialization โž” Error Function Formulation
์ด ๋•Œ ๋‘ ์ ์˜ ํ”ฝ์…€ ๋ฐ๊ธฐ์˜ ์ฐจ์ด๋ฅผ ์—๋Ÿฌ(error, residual)๋กœ ์„ค์ •ํ•œ๋‹ค.
DSO๋Š” ํ•œ ์ ์—์„œ ๋ฐ๊ธฐ ์ฐจ์ด๋งŒ์„ ๊ณ ๋ คํ•˜์ง€ ์•Š๊ณ  ํ•œ ์  ์ฃผ์œ„์˜ ์ด 8๊ฐœ ์ ๋“ค patch์˜ ๋ฐ๊ธฐ ์ฐจ์ด๋ฅผ
๊ณ ๋ คํ•œ๋‹ค. ์•„๋ž˜ ์ด๋ฏธ์ง€์™€ ๊ฐ™์ด 1๊ฐœ์˜ ์ ์ด ์ƒ๋žต๋œ ์ด์œ ๋Š” ์„ฑ๋Šฅ์— ํฌ๊ฒŒ ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š์œผ๋ฉด์„œ
4๋ฒˆ์˜ float ์—ฐ์‚ฐ์„ ํ•œ ๋ฒˆ์— ๊ณ„์‚ฐํ•  ์ˆ˜ ์žˆ๋Š” SSE2 ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์†๋„๋ฅผ ๊ฐ€์†ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋‹ค.
1.1. Initialization โž” Error Function Formulation
์ด ๋•Œ ๋‘ ์ ์˜ ํ”ฝ์…€ ๋ฐ๊ธฐ์˜ ์ฐจ์ด๋ฅผ ์—๋Ÿฌ(error, residual)๋กœ ์„ค์ •ํ•œ๋‹ค.
patch๋ฅผ ๊ณ ๋ คํ•˜๊ณ  weighting ํ•จ์ˆ˜ + Huber ํ•จ์ˆ˜๊นŒ์ง€ ์ ์šฉํ•œ ์—๋Ÿฌ ํ•จ์ˆ˜ ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.
๋‘ ์  ์‚ฌ์ด์˜ ๋ฐ๊ธฐ ์˜ค์ฐจ ๋˜๋Š” ์—๋„ˆ์ง€. Photometric Error(Energy)
Patch ์ƒ์˜ ํ•œ ์ 
์ž„์˜์˜ weighting ํ•จ์ˆ˜.
Huber function
Huber norm (Huber function๊ณผ ๋™์ผ)
DSO๋Š” ํ•œ ์ ์—์„œ ๋ฐ๊ธฐ ์ฐจ์ด๋งŒ์„ ๊ณ ๋ คํ•˜์ง€ ์•Š๊ณ  ํ•œ ์  ์ฃผ์œ„์˜ ์ด 8๊ฐœ ์ ๋“ค patch์˜ ๋ฐ๊ธฐ ์ฐจ์ด๋ฅผ
๊ณ ๋ คํ•œ๋‹ค. ์•„๋ž˜ ์ด๋ฏธ์ง€์™€ ๊ฐ™์ด 1๊ฐœ์˜ ์ ์ด ์ƒ๋žต๋œ ์ด์œ ๋Š” ์„ฑ๋Šฅ์— ํฌ๊ฒŒ ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š์œผ๋ฉด์„œ
4๋ฒˆ์˜ float ์—ฐ์‚ฐ์„ ํ•œ ๋ฒˆ์— ๊ณ„์‚ฐํ•  ์ˆ˜ ์žˆ๋Š” SSE2 ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์†๋„๋ฅผ ๊ฐ€์†ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋‹ค.
1.1. Initialization โž” Error Function Formulation
์ด ๋•Œ ๋‘ ์ ์˜ ํ”ฝ์…€ ๋ฐ๊ธฐ์˜ ์ฐจ์ด๋ฅผ ์—๋Ÿฌ(error, residual)๋กœ ์„ค์ •ํ•œ๋‹ค.
patch๋ฅผ ๊ณ ๋ คํ•˜๊ณ  weighting ํ•จ์ˆ˜ + Huber ํ•จ์ˆ˜๊นŒ์ง€ ์ ์šฉํ•œ ์—๋Ÿฌ ํ•จ์ˆ˜ ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.
๋‘ ์  ์‚ฌ์ด์˜ ๋ฐ๊ธฐ ์˜ค์ฐจ ๋˜๋Š” ์—๋„ˆ์ง€. Photometric Error(Energy)
Patch ์ƒ์˜ ํ•œ ์ 
์ž„์˜์˜ weighting ํ•จ์ˆ˜.
Huber function
Huber norm (Huber function๊ณผ ๋™์ผ)
DSO๋Š” ํ•œ ์ ์—์„œ ๋ฐ๊ธฐ ์ฐจ์ด๋งŒ์„ ๊ณ ๋ คํ•˜์ง€ ์•Š๊ณ  ํ•œ ์  ์ฃผ์œ„์˜ ์ด 8๊ฐœ ์ ๋“ค patch์˜ ๋ฐ๊ธฐ ์ฐจ์ด๋ฅผ
๊ณ ๋ คํ•œ๋‹ค. ์•„๋ž˜ ์ด๋ฏธ์ง€์™€ ๊ฐ™์ด 1๊ฐœ์˜ ์ ์ด ์ƒ๋žต๋œ ์ด์œ ๋Š” ์„ฑ๋Šฅ์— ํฌ๊ฒŒ ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š์œผ๋ฉด์„œ
4๋ฒˆ์˜ float ์—ฐ์‚ฐ์„ ํ•œ ๋ฒˆ์— ๊ณ„์‚ฐํ•  ์ˆ˜ ์žˆ๋Š” SSE2 ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์†๋„๋ฅผ ๊ฐ€์†ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋‹ค.
1.1. Initialization โž” Error Function Formulation
์ด ๋•Œ ๋‘ ์ ์˜ ํ”ฝ์…€ ๋ฐ๊ธฐ์˜ ์ฐจ์ด๋ฅผ ์—๋Ÿฌ(error, residual)๋กœ ์„ค์ •ํ•œ๋‹ค.
patch๋ฅผ ๊ณ ๋ คํ•˜๊ณ  weighting ํ•จ์ˆ˜ + Huber ํ•จ์ˆ˜๊นŒ์ง€ ์ ์šฉํ•œ ์—๋Ÿฌ ํ•จ์ˆ˜ ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.
์ž„์˜์˜ weighting ํ•จ์ˆ˜ ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ •์˜๋˜๊ณ  image gradient๊ฐ€ ํฐ ์ ์˜ ๊ฒฝ์šฐ
down-weighting ๋œ๋‹ค.
๋‘ ์  ์‚ฌ์ด์˜ ๋ฐ๊ธฐ ์˜ค์ฐจ ๋˜๋Š” ์—๋„ˆ์ง€. Photometric Error(Energy)
Patch ์ƒ์˜ ํ•œ ์ 
์ž„์˜์˜ weighting ํ•จ์ˆ˜.
Huber function
Huber norm (Huber function๊ณผ ๋™์ผ)
DSO๋Š” ํ•œ ์ ์—์„œ ๋ฐ๊ธฐ ์ฐจ์ด๋งŒ์„ ๊ณ ๋ คํ•˜์ง€ ์•Š๊ณ  ํ•œ ์  ์ฃผ์œ„์˜ ์ด 8๊ฐœ ์ ๋“ค patch์˜ ๋ฐ๊ธฐ ์ฐจ์ด๋ฅผ
๊ณ ๋ คํ•œ๋‹ค. ์•„๋ž˜ ์ด๋ฏธ์ง€์™€ ๊ฐ™์ด 1๊ฐœ์˜ ์ ์ด ์ƒ๋žต๋œ ์ด์œ ๋Š” ์„ฑ๋Šฅ์— ํฌ๊ฒŒ ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š์œผ๋ฉด์„œ
4๋ฒˆ์˜ float ์—ฐ์‚ฐ์„ ํ•œ ๋ฒˆ์— ๊ณ„์‚ฐํ•  ์ˆ˜ ์žˆ๋Š” SSE2 ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์†๋„๋ฅผ ๊ฐ€์†ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋‹ค.
1.1. Initialization โž” Error Function Formulation
๋‘ ์  ์‚ฌ์ด์˜ ๋ฐ๊ธฐ ์˜ค์ฐจ ๋˜๋Š” ์—๋„ˆ์ง€. Photometric Error(Energy)
Patch ์ƒ์˜ ํ•œ ์ 
์ž„์˜์˜ weighting ํ•จ์ˆ˜.
Huber function
Huber norm (Huber function๊ณผ ๋™์ผ)
Huber function ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ •์˜๋˜๊ณ  DSO์˜ ๊ฒฝ์šฐ ์˜ ์ƒ์ˆ˜๊ฐ’์„ ๊ฐ€์ง„๋‹ค.
1.1. Initialization โž” Error Function Formulation
๋‘ ์  ์‚ฌ์ด์˜ ๋ฐ๊ธฐ ์˜ค์ฐจ ๋˜๋Š” ์—๋„ˆ์ง€. Photometric Error(Energy)
Patch ์ƒ์˜ ํ•œ ์ 
์ž„์˜์˜ weighting ํ•จ์ˆ˜.
Huber function
Huber norm (Huber function๊ณผ ๋™์ผ)
Huber function ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ •์˜๋˜๊ณ  DSO์˜ ๊ฒฝ์šฐ ์˜ ์ƒ์ˆ˜๊ฐ’์„ ๊ฐ€์ง„๋‹ค.
์œ„ ์‹์„ ์ปดํŒฉํŠธํ•˜๊ฒŒ ํ‘œํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด
์•„๋ž˜์™€ ๊ฐ™์ด ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ๋‹ค.
1.1. Initialization โž” Error Function Formulation
๋‘ ์  ์‚ฌ์ด์˜ ๋ฐ๊ธฐ ์˜ค์ฐจ ๋˜๋Š” ์—๋„ˆ์ง€. Photometric Error(Energy)
Patch ์ƒ์˜ ํ•œ ์ 
์ž„์˜์˜ weighting ํ•จ์ˆ˜.
Huber function
Huber norm (Huber function๊ณผ ๋™์ผ)
Huber function ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ •์˜๋˜๊ณ  DSO์˜ ๊ฒฝ์šฐ ์˜ ์ƒ์ˆ˜๊ฐ’์„ ๊ฐ€์ง„๋‹ค.
์œ„ ์‹์„ ์ปดํŒฉํŠธํ•˜๊ฒŒ ํ‘œํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด
์•„๋ž˜์™€ ๊ฐ™์ด ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ๋‹ค.
์ด๋ฅผ ๋‘ ์นด๋ฉ”๋ผ ์ด๋ฏธ์ง€ ์ƒ์˜ ๋ชจ๋“  ์ ์— ๋Œ€ํ•ด ์—๋Ÿฌ๋ฅผ ๊ณ„์‚ฐํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™๋‹ค.
1.1. Initialization โž” Error Function Formulation
1.2. Initialization โž” Gauss-Newton Optimization
Huber function๊นŒ์ง€ ์ ์šฉํ•œ ์—๋Ÿฌ ํ•จ์ˆ˜ (๋˜๋Š” residual) ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.
Huber function๊นŒ์ง€ ์ ์šฉํ•œ ์—๋Ÿฌ ํ•จ์ˆ˜ (๋˜๋Š” residual) ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.
์œ„ ํ•จ์ˆ˜๋ฅผ Least Square method๋กœ ์ตœ์ ํ™”ํ•˜๊ธฐ ์œ„ํ•ด์„œ ๊ฐ€ Squared form์ด๋ผ๊ณ  ๊ฐ€์ •ํ•˜๋ฉด
์„ ๋งŒ์กฑํ•˜๋Š” ๋ฅผ ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ๊ณ  ์ด ๋•Œ ๊ฐ€ ์ตœ์†Œ์ด๋ฉด ์˜ ์ œ๊ณฑ์ธ ์—ญ์‹œ ์ตœ์†Œ๊ฐ€ ๋œ๋‹ค.
DSO์—์„œ ์˜ ๋ถ€๋ถ„์€ ํฌ๊ธฐ๊ฐ€ ์ƒ๋Œ€์ ์œผ๋กœ ์ž‘์œผ๋ฏ€๋กœ ์ƒ๋žตํ–ˆ๋‹ค.
1.2. Initialization โž” Gauss-Newton Optimization
๋”ฐ๋ผ์„œ ํ•ด๋‹น ๋ฌธ์ œ๋ฅผ ์ตœ์†Œํ™” ๋ฌธ์ œ๋กœ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๊ณ  ์ด ๋•Œ state variable ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.
1๋ฒˆ ์ด๋ฏธ์ง€์—์„œ i๋ฒˆ์งธ inverse depth ๊ฐ’ (N๊ฐœ)
๋‘ ์นด๋ฉ”๋ผ ๊ฐ„ ์ƒ๋Œ€ ํฌ์ฆˆ ๋ณ€ํ™”๋Ÿ‰ (twist)(6์ฐจ์› ๋ฒกํ„ฐ) (6๊ฐœ)
๋‘ ์ด๋ฏธ์ง€ ๊ฐ„ exposure time์„ ๊ณ ๋ คํ•˜์—ฌ ์ด๋ฏธ์ง€ ๋ฐ๊ธฐ๋ฅผ ์กฐ์ ˆํ•˜๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ (2๊ฐœ)
Huber function๊นŒ์ง€ ์ ์šฉํ•œ ์—๋Ÿฌ ํ•จ์ˆ˜ (๋˜๋Š” residual) ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.
์œ„ ํ•จ์ˆ˜๋ฅผ Least Square method๋กœ ์ตœ์ ํ™”ํ•˜๊ธฐ ์œ„ํ•ด์„œ ๊ฐ€ Squared form์ด๋ผ๊ณ  ๊ฐ€์ •ํ•˜๋ฉด
์„ ๋งŒ์กฑํ•˜๋Š” ๋ฅผ ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ๊ณ  ์ด ๋•Œ ๊ฐ€ ์ตœ์†Œ์ด๋ฉด ์˜ ์ œ๊ณฑ์ธ ์—ญ์‹œ ์ตœ์†Œ๊ฐ€ ๋œ๋‹ค.
DSO์—์„œ ์˜ ๋ถ€๋ถ„์€ ํฌ๊ธฐ๊ฐ€ ์ƒ๋Œ€์ ์œผ๋กœ ์ž‘์œผ๋ฏ€๋กœ ์ƒ๋žตํ–ˆ๋‹ค.
1.2. Initialization โž” Gauss-Newton Optimization
๋”ฐ๋ผ์„œ ํ•ด๋‹น ๋ฌธ์ œ๋ฅผ ์ตœ์†Œํ™” ๋ฌธ์ œ๋กœ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๊ณ  ์ด ๋•Œ state variable ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.
1๋ฒˆ ์ด๋ฏธ์ง€์—์„œ i๋ฒˆ์งธ inverse depth ๊ฐ’ (N๊ฐœ)
๋‘ ์ด๋ฏธ์ง€ ๊ฐ„ exposure time์„ ๊ณ ๋ คํ•˜์—ฌ ์ด๋ฏธ์ง€ ๋ฐ๊ธฐ๋ฅผ ์กฐ์ ˆํ•˜๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ (2๊ฐœ)
Huber function๊นŒ์ง€ ์ ์šฉํ•œ ์—๋Ÿฌ ํ•จ์ˆ˜ (๋˜๋Š” residual) ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.
์œ„ ํ•จ์ˆ˜๋ฅผ Least Square method๋กœ ์ตœ์ ํ™”ํ•˜๊ธฐ ์œ„ํ•ด์„œ ๊ฐ€ Squared form์ด๋ผ๊ณ  ๊ฐ€์ •ํ•˜๋ฉด
์„ ๋งŒ์กฑํ•˜๋Š” ๋ฅผ ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ๊ณ  ์ด ๋•Œ ๊ฐ€ ์ตœ์†Œ์ด๋ฉด ์˜ ์ œ๊ณฑ์ธ ์—ญ์‹œ ์ตœ์†Œ๊ฐ€ ๋œ๋‹ค.
DSO์—์„œ ์˜ ๋ถ€๋ถ„์€ ํฌ๊ธฐ๊ฐ€ ์ƒ๋Œ€์ ์œผ๋กœ ์ž‘์œผ๋ฏ€๋กœ ์ƒ๋žตํ–ˆ๋‹ค.
๋‘ ์นด๋ฉ”๋ผ ๊ฐ„ ์ƒ๋Œ€ ํฌ์ฆˆ ๋ณ€ํ™”๋Ÿ‰ (twist)(6์ฐจ์› ๋ฒกํ„ฐ) (6๊ฐœ)
1.2. Initialization โž” Gauss-Newton Optimization
๋Š” ๋น„์„ ํ˜• ํ•จ์ˆ˜์ด๋ฏ€๋กœ non linear least square method๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ตœ์†Œํ™”ํ•ด์•ผ ํ•œ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด Gauss-Newton method๊ฐ€ ์‚ฌ์šฉ๋œ๋‹ค.
Gauss-Newton method๋Š” ๋ฐ˜๋ณต์ (Iterative)์œผ๋กœ ๊ฐ’์ด ๊ฐ์†Œํ•˜๋Š” ๋ฅผ ๊ตฌํ•˜์—ฌ ๋น„์„ ํ˜• ํ•จ์ˆ˜๋ฅผ ์ตœ์ ํ™”ํ•˜๋Š” ๋ฐฉ๋ฒ• ์ค‘ ํ•˜๋‚˜์ด๋‹ค.
1.2. Initialization โž” Gauss-Newton Optimization
๋Š” ๋น„์„ ํ˜• ํ•จ์ˆ˜์ด๋ฏ€๋กœ non linear least square method๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ตœ์†Œํ™”ํ•ด์•ผ ํ•œ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด Gauss-Newton method๊ฐ€ ์‚ฌ์šฉ๋œ๋‹ค.
์ž์„ธํ•œ ๊ณผ์ •์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.
1. ๋ฅผ 1์ฐจ ํ…Œ์ผ๋Ÿฌ ์ „๊ฐœํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ทผ์‚ฌํ•  ์ˆ˜ ์žˆ๋‹ค.
Gauss-Newton method๋Š” ๋ฐ˜๋ณต์ (Iterative)์œผ๋กœ ๊ฐ’์ด ๊ฐ์†Œํ•˜๋Š” ๋ฅผ ๊ตฌํ•˜์—ฌ ๋น„์„ ํ˜• ํ•จ์ˆ˜๋ฅผ ์ตœ์ ํ™”ํ•˜๋Š” ๋ฐฉ๋ฒ• ์ค‘ ํ•˜๋‚˜์ด๋‹ค.
1.2. Initialization โž” Gauss-Newton Optimization
๋Š” ๋น„์„ ํ˜• ํ•จ์ˆ˜์ด๋ฏ€๋กœ non linear least square method๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ตœ์†Œํ™”ํ•ด์•ผ ํ•œ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด Gauss-Newton method๊ฐ€ ์‚ฌ์šฉ๋œ๋‹ค.
์ž์„ธํ•œ ๊ณผ์ •์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.
1. ๋ฅผ 1์ฐจ ํ…Œ์ผ๋Ÿฌ ์ „๊ฐœํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ทผ์‚ฌํ•  ์ˆ˜ ์žˆ๋‹ค.
2. ์˜ ์ตœ์†Œ๊ฐ’์„ ๊ตฌํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๋ฉด ํ•ด๋‹น ํ•จ์ˆ˜์˜ 1์ฐจ ๋ฏธ๋ถ„์ด 0์ด ๋˜๋Š” ๋ฅผ ๊ตฌํ•˜๋ฉด ๊ทธ ์ ์ด ์ตœ์†Œ๊ฐ€ ๋œ๋‹ค.
Gauss-Newton method๋Š” ๋ฐ˜๋ณต์ (Iterative)์œผ๋กœ ๊ฐ’์ด ๊ฐ์†Œํ•˜๋Š” ๋ฅผ ๊ตฌํ•˜์—ฌ ๋น„์„ ํ˜• ํ•จ์ˆ˜๋ฅผ ์ตœ์ ํ™”ํ•˜๋Š” ๋ฐฉ๋ฒ• ์ค‘ ํ•˜๋‚˜์ด๋‹ค.
1.2. Initialization โž” Gauss-Newton Optimization
๋Š” ๋น„์„ ํ˜• ํ•จ์ˆ˜์ด๋ฏ€๋กœ non linear least square method๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ตœ์†Œํ™”ํ•ด์•ผ ํ•œ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด Gauss-Newton method๊ฐ€ ์‚ฌ์šฉ๋œ๋‹ค.
์ž์„ธํ•œ ๊ณผ์ •์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.
1. ๋ฅผ 1์ฐจ ํ…Œ์ผ๋Ÿฌ ์ „๊ฐœํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ทผ์‚ฌํ•  ์ˆ˜ ์žˆ๋‹ค.
2. ์˜ ์ตœ์†Œ๊ฐ’์„ ๊ตฌํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๋ฉด ํ•ด๋‹น ํ•จ์ˆ˜์˜ 1์ฐจ ๋ฏธ๋ถ„์ด 0์ด ๋˜๋Š” ๋ฅผ ๊ตฌํ•˜๋ฉด ๊ทธ ์ ์ด ์ตœ์†Œ๊ฐ€ ๋œ๋‹ค.
Gauss-Newton method๋Š” ๋ฐ˜๋ณต์ (Iterative)์œผ๋กœ ๊ฐ’์ด ๊ฐ์†Œํ•˜๋Š” ๋ฅผ ๊ตฌํ•˜์—ฌ ๋น„์„ ํ˜• ํ•จ์ˆ˜๋ฅผ ์ตœ์ ํ™”ํ•˜๋Š” ๋ฐฉ๋ฒ• ์ค‘ ํ•˜๋‚˜์ด๋‹ค.
1.2. Initialization โž” Gauss-Newton Optimization
3. ์˜ ์ตœ์†Œ๊ฐ’์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค.
1.2. Initialization โž” Gauss-Newton Optimization
3. ์˜ ์ตœ์†Œ๊ฐ’์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค.
1.2. Initialization โž” Gauss-Newton Optimization
3. ์˜ ์ตœ์†Œ๊ฐ’์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค.
4. ์œ„ ์‹์„ ์ •๋ฆฌํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์‹์ด ๋‚˜์˜ค๊ณ 
1.2. Initialization โž” Gauss-Newton Optimization
3. ์˜ ์ตœ์†Œ๊ฐ’์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค.
4. ์œ„ ์‹์„ ์ •๋ฆฌํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์‹์ด ๋‚˜์˜ค๊ณ 
1.2. Initialization โž” Gauss-Newton Optimization
3. ์˜ ์ตœ์†Œ๊ฐ’์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค.
4. ์œ„ ์‹์„ ์ •๋ฆฌํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์‹์ด ๋‚˜์˜ค๊ณ 
5. ์ด๋ฅผ ์ปดํŒฉํŠธํ•˜๊ฒŒ ํ‘œํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ์น˜ํ™˜ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.
1.2. Initialization โž” Gauss-Newton Optimization
3. ์˜ ์ตœ์†Œ๊ฐ’์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค.
4. ์œ„ ์‹์„ ์ •๋ฆฌํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์‹์ด ๋‚˜์˜ค๊ณ 
5. ์ด๋ฅผ ์ปดํŒฉํŠธํ•˜๊ฒŒ ํ‘œํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ์น˜ํ™˜ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.
1.2. Initialization โž” Gauss-Newton Optimization
3. ์˜ ์ตœ์†Œ๊ฐ’์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค.
4. ์œ„ ์‹์„ ์ •๋ฆฌํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์‹์ด ๋‚˜์˜ค๊ณ 
5. ์ด๋ฅผ ์ปดํŒฉํŠธํ•˜๊ฒŒ ํ‘œํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ์น˜ํ™˜ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.
6. ์œ„ ์‹์„ ๊ณ„์‚ฐํ•˜๋ฉด ์ตœ์ ์˜ ๋ฅผ ๊ณ„์‚ฐํ•  ์ˆ˜ ์žˆ๊ณ  ์ด๋ฅผ ๊ธฐ์กด์˜ state variable์— ์—…๋ฐ์ดํŠธ ํ•ด์ค€๋‹ค.
1.2. Initialization โž” Gauss-Newton Optimization
3. ์˜ ์ตœ์†Œ๊ฐ’์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค.
4. ์œ„ ์‹์„ ์ •๋ฆฌํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์‹์ด ๋‚˜์˜ค๊ณ 
5. ์ด๋ฅผ ์ปดํŒฉํŠธํ•˜๊ฒŒ ํ‘œํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ์น˜ํ™˜ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.
6. ์œ„ ์‹์„ ๊ณ„์‚ฐํ•˜๋ฉด ์ตœ์ ์˜ ๋ฅผ ๊ณ„์‚ฐํ•  ์ˆ˜ ์žˆ๊ณ  ์ด๋ฅผ ๊ธฐ์กด์˜ state variable์— ์—…๋ฐ์ดํŠธ ํ•ด์ค€๋‹ค.
1.2. Initialization โž” Gauss-Newton Optimization
1.3. Initialization โž” Jacobian Derivation
์•ž์„œ ์–ธ๊ธ‰ํ•œ Gauss Newton method๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ตœ์ ํ™”๋ฅผ ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” Jacobian ๊ณ„์‚ฐ์ด ์„ ํ–‰๋˜์–ด์•ผ ํ•œ๋‹ค.
์•ž์„œ ์–ธ๊ธ‰ํ•œ Gauss Newton method๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ตœ์ ํ™”๋ฅผ ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” Jacobian ๊ณ„์‚ฐ์ด ์„ ํ–‰๋˜์–ด์•ผ ํ•œ๋‹ค.
์˜ state variable ๋ฅผ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ •์˜ํ–ˆ์œผ๋ฏ€๋กœ ์ด N+8๊ฐœ์˜ ๋ณ€์ˆ˜์— ๋Œ€ํ•œ Jacobian์„ ๊ณ„์‚ฐํ•ด์•ผ ํ•œ๋‹ค. (inverse depth(N), relative pose(6), photometric parameters(2))
1๋ฒˆ ์ด๋ฏธ์ง€์—์„œ i๋ฒˆ์งธ inverse depth ๊ฐ’ (N๊ฐœ)
๋‘ ์นด๋ฉ”๋ผ ๊ฐ„ ์ƒ๋Œ€ ํฌ์ฆˆ ๋ณ€ํ™”๋Ÿ‰ (twist)(6์ฐจ์› ๋ฒกํ„ฐ) (6๊ฐœ)
๋‘ ์ด๋ฏธ์ง€ ๊ฐ„ exposure time์„ ๊ณ ๋ คํ•˜์—ฌ ์ด๋ฏธ์ง€ ๋ฐ๊ธฐ๋ฅผ ์กฐ์ ˆํ•˜๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ (2๊ฐœ)
1.3. Initialization โž” Jacobian Derivation
photometric parameter a,b์— ๋Œ€ํ•œ Jacobian์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ณ„์‚ฐํ•  ์ˆ˜ ์žˆ๋‹ค.
์•ž์„œ ์–ธ๊ธ‰ํ•œ Gauss Newton method๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ตœ์ ํ™”๋ฅผ ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” Jacobian ๊ณ„์‚ฐ์ด ์„ ํ–‰๋˜์–ด์•ผ ํ•œ๋‹ค.
์˜ state variable ๋ฅผ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ •์˜ํ–ˆ์œผ๋ฏ€๋กœ ์ด N+8๊ฐœ์˜ ๋ณ€์ˆ˜์— ๋Œ€ํ•œ Jacobian์„ ๊ณ„์‚ฐํ•ด์•ผ ํ•œ๋‹ค. (inverse depth(N), relative pose(6), photometric parameters(2))
1๋ฒˆ ์ด๋ฏธ์ง€์—์„œ i๋ฒˆ์งธ inverse depth ๊ฐ’ (N๊ฐœ)
๋‘ ์ด๋ฏธ์ง€ ๊ฐ„ exposure time์„ ๊ณ ๋ คํ•˜์—ฌ ์ด๋ฏธ์ง€ ๋ฐ๊ธฐ๋ฅผ ์กฐ์ ˆํ•˜๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ (2๊ฐœ)
derivation of photometric parameters
๋‘ ์นด๋ฉ”๋ผ ๊ฐ„ ์ƒ๋Œ€ ํฌ์ฆˆ ๋ณ€ํ™”๋Ÿ‰ (twist)(6์ฐจ์› ๋ฒกํ„ฐ) (6๊ฐœ)
1.3. Initialization โž” Jacobian Derivation
derivation of relative pose
์—๋Ÿฌ ํ•จ์ˆ˜ ๊ฐ€ ์นด๋ฉ”๋ผ ํฌ์ฆˆ ๋ณ€ํ™”๋Ÿ‰ ์— ๋”ฐ๋ผ ์–ด๋–ป๊ฒŒ ๋ณ€ํ•˜๋Š” ์ง€ ๊ณ„์‚ฐํ•˜๊ธฐ ์œ„ํ•ด ๋ฅผ ๊ตฌํ•ด์•ผ ํ•œ๋‹ค.
1.3. Initialization โž” Jacobian Derivation
derivation of relative pose
๋‹ค์Œ๊ณผ ๊ฐ™์ด Jacobian ์—ฐ์‡„๋ฒ•์น™์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฅผ ์œ ๋„ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด ๊ฐœ๋ณ„ Jacobian๋“ค์„ ๋ชจ๋‘ ๊ตฌํ•ด์•ผ ํ•œ๋‹ค.
์—๋Ÿฌ ํ•จ์ˆ˜ ๊ฐ€ ์นด๋ฉ”๋ผ ํฌ์ฆˆ ๋ณ€ํ™”๋Ÿ‰ ์— ๋”ฐ๋ผ ์–ด๋–ป๊ฒŒ ๋ณ€ํ•˜๋Š” ์ง€ ๊ณ„์‚ฐํ•˜๊ธฐ ์œ„ํ•ด ๋ฅผ ๊ตฌํ•ด์•ผ ํ•œ๋‹ค.
1.3. Initialization โž” Jacobian Derivation
derivation of relative pose
๋‹ค์Œ๊ณผ ๊ฐ™์ด Jacobian ์—ฐ์‡„๋ฒ•์น™์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฅผ ์œ ๋„ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด ๊ฐœ๋ณ„ Jacobian๋“ค์„ ๋ชจ๋‘ ๊ตฌํ•ด์•ผ ํ•œ๋‹ค.
์—๋Ÿฌ ํ•จ์ˆ˜ ๊ฐ€ ์นด๋ฉ”๋ผ ํฌ์ฆˆ ๋ณ€ํ™”๋Ÿ‰ ์— ๋”ฐ๋ผ ์–ด๋–ป๊ฒŒ ๋ณ€ํ•˜๋Š” ์ง€ ๊ณ„์‚ฐํ•˜๊ธฐ ์œ„ํ•ด ๋ฅผ ๊ตฌํ•ด์•ผ ํ•œ๋‹ค.
1.3. Initialization โž” Jacobian Derivation
derivation of relative pose
๋‹ค์Œ๊ณผ ๊ฐ™์ด Jacobian ์—ฐ์‡„๋ฒ•์น™์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฅผ ์œ ๋„ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด ๊ฐœ๋ณ„ Jacobian๋“ค์„ ๋ชจ๋‘ ๊ตฌํ•ด์•ผ ํ•œ๋‹ค.
๋ฅผ ์—์„œ ๊ฐ๊ฐ x,y ๋ฐฉํ–ฅ์˜ image gradient๋ผ๊ณ  ํ•˜๋ฉด ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค.
์—๋Ÿฌ ํ•จ์ˆ˜ ๊ฐ€ ์นด๋ฉ”๋ผ ํฌ์ฆˆ ๋ณ€ํ™”๋Ÿ‰ ์— ๋”ฐ๋ผ ์–ด๋–ป๊ฒŒ ๋ณ€ํ•˜๋Š” ์ง€ ๊ณ„์‚ฐํ•˜๊ธฐ ์œ„ํ•ด ๋ฅผ ๊ตฌํ•ด์•ผ ํ•œ๋‹ค.
1.3. Initialization โž” Jacobian Derivation
derivation of relative pose
๋‹ค์Œ์œผ๋กœ ๋ฅผ ๊ตฌํ•ด๋ณด๋ฉด, ์šฐ์„  ๋Š” 2์ฐจ์› ์ด๋ฏธ์ง€ ํ‰๋ฉด ์ƒ์˜ ์  ์™€ 3์ฐจ์› ๊ณต๊ฐ„ ์ƒ์˜ ์  ์‚ฌ์ด์˜ ๊ด€๊ณ„๋ฅผ ์˜๋ฏธํ•˜๋ฏ€๋กœ
1.3. Initialization โž” Jacobian Derivation
derivation of relative pose
๋‹ค์Œ์œผ๋กœ ๋ฅผ ๊ตฌํ•ด๋ณด๋ฉด, ์šฐ์„  ๋Š” 2์ฐจ์› ์ด๋ฏธ์ง€ ํ‰๋ฉด ์ƒ์˜ ์  ์™€ 3์ฐจ์› ๊ณต๊ฐ„ ์ƒ์˜ ์  ์‚ฌ์ด์˜ ๊ด€๊ณ„๋ฅผ ์˜๋ฏธํ•˜๋ฏ€๋กœ
๋‘ ์  ์‚ฌ์ด์—๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ณต์‹์ด ์„ฑ๋ฆฝํ•˜๊ณ 
1.3. Initialization โž” Jacobian Derivation
derivation of relative pose
๋‹ค์Œ์œผ๋กœ ๋ฅผ ๊ตฌํ•ด๋ณด๋ฉด, ์šฐ์„  ๋Š” 2์ฐจ์› ์ด๋ฏธ์ง€ ํ‰๋ฉด ์ƒ์˜ ์  ์™€ 3์ฐจ์› ๊ณต๊ฐ„ ์ƒ์˜ ์  ์‚ฌ์ด์˜ ๊ด€๊ณ„๋ฅผ ์˜๋ฏธํ•˜๋ฏ€๋กœ
๋‘ ์  ์‚ฌ์ด์—๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ณต์‹์ด ์„ฑ๋ฆฝํ•˜๊ณ 
์œ„ ์‹์„ ํ†ตํ•ด ๊ด€๊ณ„์‹์„ ๋„์ถœํ•  ์ˆ˜ ์žˆ๊ณ  ์ด๋ฅผ ํ† ๋Œ€๋กœ ๋ฅผ ๊ตฌํ•ด๋ณด๋ฉด ์•„๋ž˜์™€ ๊ฐ™๋‹ค.
1.3. Initialization โž” Jacobian Derivation
derivation of relative pose
1.3. Initialization โž” Jacobian Derivation
์นด๋ฉ”๋ผ ๊ฐ„ ์ƒ๋Œ€ ํฌ์ฆˆ
(transform)(4x4ํ–‰๋ ฌ)(lie group)
hat ์—ฐ์‚ฐ์ž๊ฐ€ ์ ์šฉ๋œ twist
(4x4ํ–‰๋ ฌ)(lie algebra)
์นด๋ฉ”๋ผ ๊ฐ„ ์ƒ๋Œ€ ํฌ์ฆˆ ๋ณ€ํ™”๋Ÿ‰
(twist)(6์ฐจ์›๋ฒกํ„ฐ)
๋‹ค์Œ์œผ๋กœ ์—์„œ ๋ฅผ ๊ตฌํ•˜๊ธฐ ์ „ ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๋ฉด
https://docs.google.com/document/d/1icPjUyT3nPvjZ1OVMtWp9afUtuJ4gXLJL-ex7A9FpNs/edit?usp=sharing
http://ethaneade.com/lie.pdf
lie theory์— ๋Œ€ํ•ด ๋ณด๋‹ค ์ž์„ธํ•œ ์œ ๋„ ๋ฐ ์„ค๋ช…์€ ์•„๋ž˜ ๋งํฌ ์ฐธ์กฐ
derivation of relative pose
1.3. Initialization โž” Jacobian Derivation
์นด๋ฉ”๋ผ ๊ฐ„ ์ƒ๋Œ€ ํฌ์ฆˆ
(transform)(4x4ํ–‰๋ ฌ)(lie group)
hat ์—ฐ์‚ฐ์ž๊ฐ€ ์ ์šฉ๋œ twist
(4x4ํ–‰๋ ฌ)(lie algebra)
์นด๋ฉ”๋ผ ๊ฐ„ ์ƒ๋Œ€ ํฌ์ฆˆ ๋ณ€ํ™”๋Ÿ‰
(twist)(6์ฐจ์›๋ฒกํ„ฐ)
๋‹ค์Œ์œผ๋กœ ์—์„œ ๋ฅผ ๊ตฌํ•˜๊ธฐ ์ „ ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๋ฉด
๋Š” 3์ฐจ์› ์นด๋ฉ”๋ผ์˜ ํฌ์ฆˆ ๋ณ€ํ™”๋Ÿ‰์„ ์˜๋ฏธํ•˜๊ณ  twist๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.
https://docs.google.com/document/d/1icPjUyT3nPvjZ1OVMtWp9afUtuJ4gXLJL-ex7A9FpNs/edit?usp=sharing
http://ethaneade.com/lie.pdf
lie theory์— ๋Œ€ํ•ด ๋ณด๋‹ค ์ž์„ธํ•œ ์œ ๋„ ๋ฐ ์„ค๋ช…์€ ์•„๋ž˜ ๋งํฌ ์ฐธ์กฐ
derivation of relative pose
1.3. Initialization โž” Jacobian Derivation
์นด๋ฉ”๋ผ ๊ฐ„ ์ƒ๋Œ€ ํฌ์ฆˆ
(transform)(4x4ํ–‰๋ ฌ)(lie group)
hat ์—ฐ์‚ฐ์ž๊ฐ€ ์ ์šฉ๋œ twist
(4x4ํ–‰๋ ฌ)(lie algebra)
์นด๋ฉ”๋ผ ๊ฐ„ ์ƒ๋Œ€ ํฌ์ฆˆ ๋ณ€ํ™”๋Ÿ‰
(twist)(6์ฐจ์›๋ฒกํ„ฐ)
https://docs.google.com/document/d/1icPjUyT3nPvjZ1OVMtWp9afUtuJ4gXLJL-ex7A9FpNs/edit?usp=sharing
http://ethaneade.com/lie.pdf
lie theory์— ๋Œ€ํ•ด ๋ณด๋‹ค ์ž์„ธํ•œ ์œ ๋„ ๋ฐ ์„ค๋ช…์€ ์•„๋ž˜ ๋งํฌ ์ฐธ์กฐ
๋‹ค์Œ์œผ๋กœ ์—์„œ ๋ฅผ ๊ตฌํ•˜๊ธฐ ์ „ ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๋ฉด
๋Š” 3์ฐจ์› ์นด๋ฉ”๋ผ์˜ ํฌ์ฆˆ ๋ณ€ํ™”๋Ÿ‰์„ ์˜๋ฏธํ•˜๊ณ  twist๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.
๋Š” twist์— hat operator๋ฅผ ์ ์šฉํ•œ ๊ฐ’์œผ๋กœ์จ Lie algebra of SE(3)๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.
์œ„ ๊ฐ’์— exponential mapping์„ ์ ์šฉํ•˜๋ฉด 4x4 ํ–‰๋ ฌ์˜ 3์ฐจ์› ํฌ์ฆˆ ๋กœ ๋ณ€ํ™˜ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋ฅผ Lie group of SE(3)๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.
์ž์„ธํ•˜๊ฒŒ ํ‘œํ˜„ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.
linear velocity
angular velocity
derivation of relative pose
๋ฅผ ์œ ๋„ํ•ด๋ณด๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.
https://docs.google.com/document/d/1icPjUyT3nPvjZ1OVMtWp9afUtuJ4gXLJL-ex7A9FpNs/edit?usp=sharing
http://ethaneade.com/lie.pdf
lie theory์— ๋Œ€ํ•ด ๋ณด๋‹ค ์ž์„ธํ•œ ์œ ๋„ ๋ฐ ์„ค๋ช…์€ ์•„๋ž˜ ๋งํฌ ์ฐธ์กฐ
1.3. Initialization โž” Jacobian Derivation
derivation of relative pose
์ง€๊ธˆ๊นŒ์ง€ ์œ ๋„ํ•œ ๊ณต์‹๋“ค์„ ๊ฒฐํ•ฉํ•˜์—ฌ ํ•˜๋‚˜์˜ Jacobian of relative pose๋กœ ํ‘œํ˜„ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.
1.3. Initialization โž” Jacobian Derivation
derivation of relative pose
์ง€๊ธˆ๊นŒ์ง€ ์œ ๋„ํ•œ ๊ณต์‹๋“ค์„ ๊ฒฐํ•ฉํ•˜์—ฌ ํ•˜๋‚˜์˜ Jacobian of relative pose๋กœ ํ‘œํ˜„ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.
1.3. Initialization โž” Jacobian Derivation
derivation of relative pose
์ง€๊ธˆ๊นŒ์ง€ ์œ ๋„ํ•œ ๊ณต์‹๋“ค์„ ๊ฒฐํ•ฉํ•˜์—ฌ ํ•˜๋‚˜์˜ Jacobian of relative pose๋กœ ํ‘œํ˜„ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.
1.3. Initialization โž” Jacobian Derivation
derivation of inverse depth
๋งˆ์ง€๋ง‰์œผ๋กœ Jacobian of inverse depth ๋ฅผ ์œ ๋„ํ•ด์•ผ ํ•œ๋‹ค.
๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์—ฌ๋Ÿฌ ์—ฐ์‡„์ ์ธ Jacobian์˜ ๊ณฑ์œผ๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค.
1.3. Initialization โž” Jacobian Derivation
derivation of inverse depth
๋งˆ์ง€๋ง‰์œผ๋กœ Jacobian of inverse depth ๋ฅผ ์œ ๋„ํ•ด์•ผ ํ•œ๋‹ค.
๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์—ฌ๋Ÿฌ ์—ฐ์‡„์ ์ธ Jacobian์˜ ๊ณฑ์œผ๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค.
์ด ๋•Œ, ๋Š” ์ด์ „์— ๋ฏธ๋ฆฌ ๊ตฌํ–ˆ์œผ๋ฏ€๋กœ ๋งŒ ์ถ”๊ฐ€์ ์œผ๋กœ ๊ตฌํ•˜๋ฉด ๋œ๋‹ค.
1.3. Initialization โž” Jacobian Derivation
derivation of inverse depth
์—์„œ ๋Š” 3์ฐจ์› ๊ณต๊ฐ„ ์ƒ์˜ ์  ๊ณผ Inverse depth ์‚ฌ์ด์˜ ๊ด€๊ณ„๋ฅผ ๋‚˜ํƒ€๋‚ด๋ฏ€๋กœ ์ด๋ฅผ ๊ณต์‹์œผ๋กœ ํ‘œํ˜„ํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™๋‹ค.
i๋ฒˆ ์นด๋ฉ”๋ผ ์ขŒํ‘œ๊ณ„์—์„œ 3์ฐจ์› ๊ณต๊ฐ„ ์ƒ์˜ ํ•œ ์ 
2์ฐจ์› ์ด๋ฏธ์ง€ ํ‰๋ฉด ์ƒ์˜ ํ•œ ์ 
1๋ฒˆ์—์„œ 2๋ฒˆ ์นด๋ฉ”๋ผ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ํšŒ์ „ํ–‰๋ ฌ (3x3ํ–‰๋ ฌ)
1๋ฒˆ ์นด๋ฉ”๋ผ ์ขŒํ‘œ๊ณ„์—์„œ ํ•œ ์ ์˜ ๊นŠ์ด ๊ฐ’์˜ ์—ญ์ˆ˜ (inverse depth)
1๋ฒˆ์—์„œ 2๋ฒˆ ์นด๋ฉ”๋ผ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๋ณ‘์ง„ํ–‰๋ ฌ (3x1๋ฒกํ„ฐ)
1.3. Initialization โž” Jacobian Derivation
derivation of inverse depth
์—์„œ ๋Š” 3์ฐจ์› ๊ณต๊ฐ„ ์ƒ์˜ ์  ๊ณผ Inverse depth ์‚ฌ์ด์˜ ๊ด€๊ณ„๋ฅผ ๋‚˜ํƒ€๋‚ด๋ฏ€๋กœ ์ด๋ฅผ ๊ณต์‹์œผ๋กœ ํ‘œํ˜„ํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™๋‹ค.
i๋ฒˆ ์นด๋ฉ”๋ผ ์ขŒํ‘œ๊ณ„์—์„œ 3์ฐจ์› ๊ณต๊ฐ„ ์ƒ์˜ ํ•œ ์ 
2์ฐจ์› ์ด๋ฏธ์ง€ ํ‰๋ฉด ์ƒ์˜ ํ•œ ์ 
1๋ฒˆ์—์„œ 2๋ฒˆ ์นด๋ฉ”๋ผ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ํšŒ์ „ํ–‰๋ ฌ (3x3ํ–‰๋ ฌ)
1๋ฒˆ ์นด๋ฉ”๋ผ ์ขŒํ‘œ๊ณ„์—์„œ ํ•œ ์ ์˜ ๊นŠ์ด ๊ฐ’์˜ ์—ญ์ˆ˜ (inverse depth)
1๋ฒˆ์—์„œ 2๋ฒˆ ์นด๋ฉ”๋ผ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๋ณ‘์ง„ํ–‰๋ ฌ (3x1๋ฒกํ„ฐ)
์œ„ ๊ด€๊ณ„์‹์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฅผ ๊ตฌํ•ด๋ณด๋ฉด ์•„๋ž˜์™€ ๊ฐ™๋‹ค.
1.3. Initialization โž” Jacobian Derivation
derivation of inverse depth
์—์„œ ๋Š” 3์ฐจ์› ๊ณต๊ฐ„ ์ƒ์˜ ์  ๊ณผ Inverse depth ์‚ฌ์ด์˜ ๊ด€๊ณ„๋ฅผ ๋‚˜ํƒ€๋‚ด๋ฏ€๋กœ ์ด๋ฅผ ๊ณต์‹์œผ๋กœ ํ‘œํ˜„ํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™๋‹ค.
i๋ฒˆ ์นด๋ฉ”๋ผ ์ขŒํ‘œ๊ณ„์—์„œ 3์ฐจ์› ๊ณต๊ฐ„ ์ƒ์˜ ํ•œ ์ 
2์ฐจ์› ์ด๋ฏธ์ง€ ํ‰๋ฉด ์ƒ์˜ ํ•œ ์ 
1๋ฒˆ์—์„œ 2๋ฒˆ ์นด๋ฉ”๋ผ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ํšŒ์ „ํ–‰๋ ฌ (3x3ํ–‰๋ ฌ)
1๋ฒˆ ์นด๋ฉ”๋ผ ์ขŒํ‘œ๊ณ„์—์„œ ํ•œ ์ ์˜ ๊นŠ์ด ๊ฐ’์˜ ์—ญ์ˆ˜ (inverse depth)
1๋ฒˆ์—์„œ 2๋ฒˆ ์นด๋ฉ”๋ผ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๋ณ‘์ง„ํ–‰๋ ฌ (3x1๋ฒกํ„ฐ)
์œ„ ๊ด€๊ณ„์‹์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฅผ ๊ตฌํ•ด๋ณด๋ฉด ์•„๋ž˜์™€ ๊ฐ™๋‹ค.
๋”ฐ๋ผ์„œ ์—์„œ ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค.
1.3. Initialization โž” Jacobian Derivation
Jacobians in DSO Initialization
์ •๋ฆฌํ•ด๋ณด๋ฉด Initialization์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์ž์ฝ”๋น„์•ˆ๋“ค์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค.
์ฐธ๊ณ ๋กœ ์ด ํ›„ 8๊ฐœ์˜ keyframe๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ sliding window optimization๋ฅผ ์ˆ˜ํ–‰ํ•  ๋•Œ๋Š”
camera intrinsics( )๊ฐ€ ์ตœ์ ํ™”์— ํฌํ•จ๋˜๋ฏ€๋กœ ์ด 12+N๊ฐœ์˜ ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ ์ตœ์ ํ™” ๋ณ€์ˆ˜๊ฐ€ ๋œ๋‹ค. (pose(6), photometric(2), intrinsics(4), idepth(N))
ํ•˜์ง€๋งŒ Initialization ๊ณผ์ •์—์„œ๋Š” intrinsics๋Š” ํฌํ•จ๋˜์ง€ ์•Š์œผ๋ฏ€๋กœ 8+N๊ฐœ์˜ ํŒŒ๋ผ๋ฏธํ„ฐ๋งŒ ์ตœ์ ํ™”์— ์‚ฌ์šฉ๋œ๋‹ค.
photometric(2)pose(6)idepth(N)
1.3. Initialization โž” Jacobian Derivation
idepth(N), pose(6), photometric (2) ๋ชจ๋‘์— ๋Œ€ํ•œ Jacobian์„ ์œ ๋„ํ–ˆ์œผ๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด ํ•ฉ์ณ์ค€๋‹ค.
1.3. Initialization โž” Jacobian Derivation
์ตœ์ข…์ ์œผ๋กœ ์œ„ Jacobian ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ state variable ๋ฅผ ์—…๋ฐ์ดํŠธํ•  ์ˆ˜ ์žˆ๋‹ค.
idepth(N), pose(6), photometric (2) ๋ชจ๋‘์— ๋Œ€ํ•œ Jacobian์„ ์œ ๋„ํ–ˆ์œผ๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด ํ•ฉ์ณ์ค€๋‹ค.
1.3. Initialization โž” Jacobian Derivation
1.4. Initialization โž” Solving the incremental equation (Schur Complement)
Jacobian๊นŒ์ง€ ๋ชจ๋‘ ์œ ๋„๋ฅผ ๋งˆ์ณค์œผ๋ฉด Gauss Newton method๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์•„๋ž˜์™€ ๊ฐ™์€ ์ตœ์ ํ™”๋ฅผ ๋ฐ˜๋ณตํ•ด์„œ ํ’€์–ด์•ผ ํ•œ๋‹ค.
Jacobian๊นŒ์ง€ ๋ชจ๋‘ ์œ ๋„๋ฅผ ๋งˆ์ณค์œผ๋ฉด Gauss Newton method๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์•„๋ž˜์™€ ๊ฐ™์€ ์ตœ์ ํ™”๋ฅผ ๋ฐ˜๋ณตํ•ด์„œ ํ’€์–ด์•ผ ํ•œ๋‹ค.
ํ•˜์ง€๋งŒ ์‹ค์ œ ์œ„ ์ตœ์ ํ™” ๊ณต์‹์„ ๋ฐ˜๋ณต์ ์œผ๋กœ ํ’€๋ฉด ๋งค์šฐ ๋Š๋ฆฐ ์†๋„๋กœ ์ธํ•ด ์ •์ƒ์ ์œผ๋กœ Pose tracking์„ ํ•  ์ˆ˜ ์—†๋‹ค.
์ด๋Š” ๋ฅผ ๊ณ„์‚ฐํ•  ๋•Œ ๋งค์šฐ ํฐ ํ–‰๋ ฌ์˜ ํŠน์„ฑ ์ƒ ์—ญํ•จ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š”๋ฐ ๋งค์šฐ ๋งŽ์€ ์‹œ๊ฐ„์ด ์†Œ๋ชจ๋˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.
ํ•ด๋‹น ๊ณต์‹์„ ์กฐ๊ธˆ ๋” ์ž์„ธํžˆ ํ‘œํ˜„ํ•ด๋ณด๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.
(-)๋ถ€ํ˜ธ๋ฅผ b ์•ˆ์œผ๋กœ ์‚ฝ์ž…
1.4. Initialization โž” Solving the incremental equation (Schur Complement)
idepth (N)
pose +
photometric (8)
idepth (N)
pose +
photometric (8)
Hessian Matrix ๋ฅผ ์ „๊ฐœํ•˜๋ฉด ๋‚ด๋ถ€ ๊ตฌ์กฐ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค
1.4. Initialization โž” Solving the incremental equation (Schur Complement)
์ผ๋ฐ˜์ ์ธ ๊ฒฝ์šฐ 3์ฐจ์› ์ ์˜ ๊ฐœ์ˆ˜๊ฐ€ ์นด๋ฉ”๋ผ pose๋ณด๋‹ค ํ›จ์”ฌ ๋งŽ์œผ๋ฏ€๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฑฐ๋Œ€ํ•œ matrix๊ฐ€ ์ƒ์„ฑ๋œ๋‹ค.
๋”ฐ๋ผ์„œ ์—ญํ–‰๋ ฌ์„ ๊ณ„์‚ฐํ•  ๋•Œ ๋งค์šฐ ํฐ ์—ฐ์‚ฐ์‹œ๊ฐ„์ด ์†Œ์š”๋˜๋ฏ€๋กœ ์ด๋ฅผ ๋น ๋ฅด๊ฒŒ ๊ณ„์‚ฐํ• 
์ˆ˜ ์žˆ๋Š” ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์ด ํ•„์š”ํ•˜๋‹ค
large computational cost!
real world data
1.4. Initialization โž” Solving the incremental equation (Schur Complement)
์ด ๋•Œ, Schur Complement๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด computational cost๋ฅผ ๋Œ€ํญ ๋‚ฎ์ถœ ์ˆ˜ ์žˆ๋‹ค
1.4. Initialization โž” Solving the incremental equation (Schur Complement)
์ด ๋•Œ, Schur Complement๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด computational cost๋ฅผ ๋Œ€ํญ ๋‚ฎ์ถœ ์ˆ˜ ์žˆ๋‹ค
์ด๋ฅผ ์œ„ํ•ด ์–‘๋ณ€์— ์•„๋ž˜์™€ ๊ฐ™์€ ํŠน์ˆ˜ํ•œ ํ˜•ํƒœ์˜ ํ–‰๋ ฌ์„ ์–‘๋ณ€์— ๊ณฑํ•ด์ค€๋‹ค.
1.4. Initialization โž” Solving the incremental equation (Schur Complement)
์ด ๋•Œ, Schur Complement๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด computational cost๋ฅผ ๋Œ€ํญ ๋‚ฎ์ถœ ์ˆ˜ ์žˆ๋‹ค
์ด๋ฅผ ์œ„ํ•ด ์–‘๋ณ€์— ์•„๋ž˜์™€ ๊ฐ™์€ ํŠน์ˆ˜ํ•œ ํ˜•ํƒœ์˜ ํ–‰๋ ฌ์„ ์–‘๋ณ€์— ๊ณฑํ•ด์ค€๋‹ค.
1
์œ„ ์‹์„ ์ „๊ฐœํ•ด์„œ ์˜ ๊ฐ’์„ ์ˆœ์ฐจ์ ์œผ๋กœ ๊ณ„์‚ฐํ•  ์ˆ˜ ์žˆ๋‹ค. ์œ„ ์‹์„ ์ „๊ฐœํ•˜๋ฉด ๋งŒ ์กด์žฌํ•˜๋Š” ํ•ญ์ด ์œ ๋„๋œ๋‹ค.
1.4. Initialization โž” Solving the incremental equation (Schur Complement)
์ด ๋•Œ, Schur Complement๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด computational cost๋ฅผ ๋Œ€ํญ ๋‚ฎ์ถœ ์ˆ˜ ์žˆ๋‹ค
์ด๋ฅผ ์œ„ํ•ด ์–‘๋ณ€์— ์•„๋ž˜์™€ ๊ฐ™์€ ํŠน์ˆ˜ํ•œ ํ˜•ํƒœ์˜ ํ–‰๋ ฌ์„ ์–‘๋ณ€์— ๊ณฑํ•ด์ค€๋‹ค.
์œ„ ์‹์„ ํ†ตํ•ด ๋ฅผ ๋จผ์ € ๊ณ„์‚ฐํ•œ ํ›„ ์ด๋ฅผ ํ† ๋Œ€๋กœ ๋ฅผ ๊ณ„์‚ฐํ•œ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์—ญํ–‰๋ ฌ์„ ๊ตฌํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ๋”์šฑ ๋น ๋ฅด๊ฒŒ ์ตœ์ ํ™” ๊ณต์‹์„ ํ’€ ์ˆ˜ ์žˆ๋‹ค.
2
1.4. Initialization โž” Solving the incremental equation (Schur Complement)
1
์œ„ ์‹์„ ์ „๊ฐœํ•ด์„œ ์˜ ๊ฐ’์„ ์ˆœ์ฐจ์ ์œผ๋กœ ๊ณ„์‚ฐํ•  ์ˆ˜ ์žˆ๋‹ค. ์œ„ ์‹์„ ์ „๊ฐœํ•˜๋ฉด ๋งŒ ์กด์žฌํ•˜๋Š” ํ•ญ์ด ์œ ๋„๋œ๋‹ค.
Inverse depth์™€ ๊ด€๋ จ ์žˆ๋Š” ํ•ญ์ธ ๋Š” N x N ํฌ๊ธฐ์˜ ๋Œ€๊ฐํ–‰๋ ฌ(diagonal matrix)์ด๋ฏ€๋กœ ์‰ฝ๊ฒŒ ์—ญํ–‰๋ ฌ์„ ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค.
๋”ฐ๋ผ์„œ ๋˜ํ•œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋น„๊ต์  ๊ฐ„๋‹จํ•˜๊ฒŒ ๊ณ„์‚ฐํ•  ์ˆ˜ ์žˆ๋‹ค.
1.4. Initialization โž” Solving the incremental equation (Schur Complement)
Inverse depth์™€ ๊ด€๋ จ ์žˆ๋Š” ํ•ญ์ธ ๋Š” N x N ํฌ๊ธฐ์˜ ๋Œ€๊ฐํ–‰๋ ฌ(diagonal matrix)์ด๋ฏ€๋กœ ์‰ฝ๊ฒŒ ์—ญํ–‰๋ ฌ์„ ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค.
๋”ฐ๋ผ์„œ ๋˜ํ•œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋น„๊ต์  ๊ฐ„๋‹จํ•˜๊ฒŒ ๊ณ„์‚ฐํ•  ์ˆ˜ ์žˆ๋‹ค.
์ตœ์ข…์ ์œผ๋กœ damping ๊ณ„์ˆ˜ ๊ธฐ๋ฐ˜์˜ Levenberg-Marquardt ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•˜์—ฌ Optimization์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.
1.4. Initialization โž” Solving the incremental equation (Schur Complement)
2. Frames
keyframe
frame
?
์ƒˆ๋กœ์šด ์ด๋ฏธ์ง€๊ฐ€ ๋“ค์–ด์˜ค๋ฉด ํ•ด๋‹น ์ด๋ฏธ์ง€์— ํ•ด๋‹นํ•˜๋Š” 3์ฐจ์› ์ž์„ธ๋ฅผ ์•„์ง ๋ชจ๋ฅด๊ธฐ ๋•Œ๋ฌธ์—
์ด๋ฅผ ์˜ˆ์ธกํ•˜๊ธฐ ์œ„ํ•ด DSO๋Š” ๊ฐ€์žฅ ์ตœ๊ทผ ๋‘ ํ”„๋ ˆ์ž„ ๊ณผ ๊ฐ€์žฅ ๊ทผ์ ‘ํ•œ ํ‚คํ”„๋ ˆ์ž„
์˜ ์ •๋ณด๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.
2.1. Frames โž” Pose Tracking
Keyframe
Frame
Pose candidates
๋‘ ํ”„๋ ˆ์ž„๊ณผ ํ•œ ๊ฐœ์˜ ํ‚คํ”„๋ ˆ์ž„์„ ๋ฐ”ํƒ•์œผ๋กœ ์ด๋“ค์˜ ์ƒ๋Œ€ ํฌ์ฆˆ๋ฅผ ๊ตฌํ•œ ํ›„
์ •์ง€, ์ง์ง„, ํ›„์ง„, ํšŒ์ „ ๋“ฑ ๋‹ค์–‘ํ•œ ์ผ€์ด์Šค๋ฅผ ์˜ˆ์ธกํ•œ๋‹ค.
์ƒˆ๋กœ์šด ์ด๋ฏธ์ง€๊ฐ€ ๋“ค์–ด์˜ค๋ฉด ํ•ด๋‹น ์ด๋ฏธ์ง€์— ํ•ด๋‹นํ•˜๋Š” 3์ฐจ์› ์ž์„ธ๋ฅผ ์•„์ง ๋ชจ๋ฅด๊ธฐ ๋•Œ๋ฌธ์—
์ด๋ฅผ ์˜ˆ์ธกํ•˜๊ธฐ ์œ„ํ•ด DSO๋Š” ๊ฐ€์žฅ ์ตœ๊ทผ ๋‘ ํ”„๋ ˆ์ž„ ๊ณผ ๊ฐ€์žฅ ๊ทผ์ ‘ํ•œ ํ‚คํ”„๋ ˆ์ž„
์˜ ์ •๋ณด๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.
๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํฌ์ฆˆ ์˜ˆ์ธก
2.1. Frames โž” Pose Tracking
Keyframe
Frame
Pose candidates
๋‘ ํ”„๋ ˆ์ž„๊ณผ ํ•œ ๊ฐœ์˜ ํ‚คํ”„๋ ˆ์ž„์„ ๋ฐ”ํƒ•์œผ๋กœ ์ด๋“ค์˜ ์ƒ๋Œ€ ํฌ์ฆˆ๋ฅผ ๊ตฌํ•œ ํ›„
์ •์ง€, ์ง์ง„, ํ›„์ง„, ํšŒ์ „ ๋“ฑ ๋‹ค์–‘ํ•œ ์ผ€์ด์Šค๋ฅผ ์˜ˆ์ธกํ•œ๋‹ค.
์ƒˆ๋กœ์šด ์ด๋ฏธ์ง€๊ฐ€ ๋“ค์–ด์˜ค๋ฉด ํ•ด๋‹น ์ด๋ฏธ์ง€์— ํ•ด๋‹นํ•˜๋Š” 3์ฐจ์› ์ž์„ธ๋ฅผ ์•„์ง ๋ชจ๋ฅด๊ธฐ ๋•Œ๋ฌธ์—
์ด๋ฅผ ์˜ˆ์ธกํ•˜๊ธฐ ์œ„ํ•ด DSO๋Š” ๊ฐ€์žฅ ์ตœ๊ทผ ๋‘ ํ”„๋ ˆ์ž„ ๊ณผ ๊ฐ€์žฅ ๊ทผ์ ‘ํ•œ ํ‚คํ”„๋ ˆ์ž„
์˜ ์ •๋ณด๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.
๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํฌ์ฆˆ ์˜ˆ์ธก
์ด ๋•Œ ๊ฐ€์žฅ ๋†’์€ ์ด๋ฏธ์ง€ ํ”ผ๋ผ๋ฏธ๋“œ(๊ฐ€์žฅ ์ž‘์€)๋ถ€ํ„ฐ ๋‚ฎ์€ ์ด๋ฏธ์ง€ ํ”ผ๋ผ๋ฏธ๋“œ(์›๋ณธ)๊นŒ์ง€ ์ˆœ์ฐจ์ ์œผ๋กœ ์‚ฌ
์šฉํ•˜๋Š” coarse-to-fine ๋ฐฉ๋ฒ•์„ ํ†ตํ•ด ํ˜„์žฌ ํ”„๋ ˆ์ž„์˜ 3์ฐจ์› ์ž์„ธ๋ฅผ ์˜ˆ์ธกํ•œ๋‹ค.
2.1. Frames โž” Pose Tracking
Keyframe
Frame
Pose candidates
๋‘ ํ”„๋ ˆ์ž„๊ณผ ํ•œ ๊ฐœ์˜ ํ‚คํ”„๋ ˆ์ž„์„ ๋ฐ”ํƒ•์œผ๋กœ ์ด๋“ค์˜ ์ƒ๋Œ€ ํฌ์ฆˆ๋ฅผ ๊ตฌํ•œ ํ›„
์ •์ง€, ์ง์ง„, ํ›„์ง„, ํšŒ์ „ ๋“ฑ ๋‹ค์–‘ํ•œ ์ผ€์ด์Šค๋ฅผ ์˜ˆ์ธกํ•œ๋‹ค.
์ƒˆ๋กœ์šด ์ด๋ฏธ์ง€๊ฐ€ ๋“ค์–ด์˜ค๋ฉด ํ•ด๋‹น ์ด๋ฏธ์ง€์— ํ•ด๋‹นํ•˜๋Š” 3์ฐจ์› ์ž์„ธ๋ฅผ ์•„์ง ๋ชจ๋ฅด๊ธฐ ๋•Œ๋ฌธ์—
์ด๋ฅผ ์˜ˆ์ธกํ•˜๊ธฐ ์œ„ํ•ด DSO๋Š” ๊ฐ€์žฅ ์ตœ๊ทผ ๋‘ ํ”„๋ ˆ์ž„ ๊ณผ ๊ฐ€์žฅ ๊ทผ์ ‘ํ•œ ํ‚คํ”„๋ ˆ์ž„
์˜ ์ •๋ณด๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.
๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํฌ์ฆˆ ์˜ˆ์ธก
์ด ๋•Œ ๊ฐ€์žฅ ๋†’์€ ์ด๋ฏธ์ง€ ํ”ผ๋ผ๋ฏธ๋“œ(๊ฐ€์žฅ ์ž‘์€)๋ถ€ํ„ฐ ๋‚ฎ์€ ์ด๋ฏธ์ง€ ํ”ผ๋ผ๋ฏธ๋“œ(์›๋ณธ)๊นŒ์ง€ ์ˆœ์ฐจ์ ์œผ๋กœ ์‚ฌ
์šฉํ•˜๋Š” coarse-to-fine ๋ฐฉ๋ฒ•์„ ํ†ตํ•ด ํ˜„์žฌ ํ”„๋ ˆ์ž„์˜ 3์ฐจ์› ์ž์„ธ๋ฅผ ์˜ˆ์ธกํ•œ๋‹ค.
๊ฐ ํฌ์ฆˆ ํ›„๋ณด๋งˆ๋‹ค ์ˆœ์ฐจ์ ์œผ๋กœ ๋ฐ๊ธฐ ์˜ค์ฐจ(Photometric Error)๋ฅผ ๊ณ„์‚ฐํ•˜๊ณ  ์ด๋ฅผ ์ตœ์ ํ™”ํ•˜์—ฌ ์ตœ์ ์˜ ํฌ
์ฆˆ๋ฅผ ๊ตฌํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ตœ์ ์˜ ํฌ์ฆˆ์—์„œ ๋‹ค์‹œ ํ•œ ๋ฒˆ ๋ฐ๊ธฐ ์˜ค์ฐจ๋ฅผ ๊ตฌํ•œ ํ›„(resNew) ์ด์ „ ์˜ค์ฐจ
(resOld)์™€ ๋น„๊ตํ•˜์—ฌ ์ถฉ๋ถ„ํžˆ ์˜ค์ฐจ๊ฐ€ ๊ฐ์†Œํ•˜์˜€๋Š”์ง€ ํŒ๋‹จํ•œ๋‹ค. ์ถฉ๋ถ„ํžˆ ๊ฐ์†Œํ•˜์˜€๋‹ค๋ฉด ๋‹ค๋ฅธ ํฌ์ฆˆ
ํ›„๋ณด๋ฅผ ๊ณ ๋ คํ•˜์ง€ ์•Š๊ณ  ๋ฃจํ”„๋ฅผ ํƒˆ์ถœํ•œ๋‹ค. (coarseTracker::trackNewestCoarse() ํ•จ์ˆ˜ ์ฐธ์กฐ)
2.1. Frames โž” Pose Tracking
i๋ฒˆ์งธ ์ด๋ฏธ์ง€์—์„œ j๋ฒˆ์งธ ์ ์˜ ๋ฐ๊ธฐ (grayscale)(intensity)(0~255๋‹จ์œ„)
i๋ฒˆ์งธ ์ด๋ฏธ์ง€๊ฐ€ ์ดฌ์˜๋œ ์ˆœ๊ฐ„์˜ exposure time (๋˜๋Š” Shutter time)(ms๋‹จ์œ„)
๋‘ ์ด๋ฏธ์ง€ ๊ฐ„ exposure time์„ ๊ณ ๋ คํ•˜์—ฌ ์ด๋ฏธ์ง€ ๋ฐ๊ธฐ๋ฅผ ์กฐ์ ˆํ•˜๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ
์—ฌ๋Ÿฌ ํ›„๋ณด ํฌ์ฆˆ๋“ค ์ค‘ ํ•˜๋‚˜์˜ ํฌ์ฆˆ๋ฅผ ์„ ํƒํ•œ ํ›„ ๋ฐ๊ธฐ ์˜ค์ฐจ(Photometric Error)๋ฅผ ๊ณ„์‚ฐํ•œ๋‹ค.
2.1. Frames โž” Pose Tracking
i๋ฒˆ์งธ ์ด๋ฏธ์ง€์—์„œ j๋ฒˆ์งธ ์ ์˜ ๋ฐ๊ธฐ (grayscale)(intensity)(0~255๋‹จ์œ„)
i๋ฒˆ์งธ ์ด๋ฏธ์ง€๊ฐ€ ์ดฌ์˜๋œ ์ˆœ๊ฐ„์˜ exposure time (๋˜๋Š” Shutter time)(ms๋‹จ์œ„)
๋‘ ์ด๋ฏธ์ง€ ๊ฐ„ exposure time์„ ๊ณ ๋ คํ•˜์—ฌ ์ด๋ฏธ์ง€ ๋ฐ๊ธฐ๋ฅผ ์กฐ์ ˆํ•˜๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ
์—ฌ๋Ÿฌ ํ›„๋ณด ํฌ์ฆˆ๋“ค ์ค‘ ํ•˜๋‚˜์˜ ํฌ์ฆˆ๋ฅผ ์„ ํƒํ•œ ํ›„ ๋ฐ๊ธฐ ์˜ค์ฐจ(Photometric Error)๋ฅผ ๊ณ„์‚ฐํ•œ๋‹ค.
์ด ๋•Œ, ํ•œ ์ ์˜ ๊ด‘๋„ ์˜ค์ฐจ๋งŒ ๊ณ„์‚ฐํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ ์ฃผ๋ณ€ 8๊ฐœ์˜ ์ ๋“ค์˜ ๋ฐ๊ธฐ ์˜ค์ฐจ๋ฅผ ๋ชจ๋‘ ๊ณ„์‚ฐํ•œ๋‹ค.
2.1. Frames โž” Pose Tracking
์—ฌ๋Ÿฌ ํ›„๋ณด ํฌ์ฆˆ๋“ค ์ค‘ ํ•˜๋‚˜์˜ ํฌ์ฆˆ๋ฅผ ์„ ํƒํ•œ ํ›„ ๋ฐ๊ธฐ ์˜ค์ฐจ(Photometric Error)๋ฅผ ๊ณ„์‚ฐํ•œ๋‹ค.
์ด ๋•Œ, ํ•œ ์ ์˜ ๊ด‘๋„ ์˜ค์ฐจ๋งŒ ๊ณ„์‚ฐํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ ์ฃผ๋ณ€ 8๊ฐœ์˜ ์ ๋“ค์˜ ๋ฐ๊ธฐ ์˜ค์ฐจ๋ฅผ ๋ชจ๋‘ ๊ณ„์‚ฐํ•œ๋‹ค.
Initialization ๋‹จ๊ณ„์™€ ๋‹ค๋ฅด๊ฒŒ ์ดˆ๊ธฐ๊ฐ’ b0 ์ถ”๊ฐ€๋จ
๋‹ค์Œ์œผ๋กœ ํ•ด๋‹น ๋น„์„ ํ˜• ํ•จ์ˆ˜๋ฅผ ์ตœ์ ํ™”ํ•˜๊ธฐ ์œ„ํ•ด Jacobian์„ ๊ณ„์‚ฐํ•œ๋‹ค.
ํ•ด๋‹น Jacobian์€ ์ด๋ฏธ Initialization ๋‹จ๊ณ„์—์„œ ์œ ๋„ ํ–ˆ์œผ๋ฏ€๋กœ ์œ ๋„ ๊ณผ์ •์€ ์ƒ๋žตํ•œ๋‹ค.
์ด ๋•Œ, ์—์„œ ๋งŒ ์šฐ์„  ๊ณ ๋ คํ•œ๋‹ค.
2.1. Frames โž” Pose Tracking
ํ•ด๋‹น Jacobian์„ ์‚ฌ์šฉํ•˜์—ฌ , ๋ฅผ ๊ฐ๊ฐ ๊ณ„์‚ฐํ•œ๋‹ค.
์—ฌ๋Ÿฌ ํ›„๋ณด ํฌ์ฆˆ๋“ค ์ค‘ ํ•˜๋‚˜์˜ ํฌ์ฆˆ๋ฅผ ์„ ํƒํ•œ ํ›„ ๋ฐ๊ธฐ ์˜ค์ฐจ(Photometric Error)๋ฅผ ๊ณ„์‚ฐํ•œ๋‹ค.
์ด ๋•Œ, ํ•œ ์ ์˜ ๊ด‘๋„ ์˜ค์ฐจ๋งŒ ๊ณ„์‚ฐํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ ์ฃผ๋ณ€ 8๊ฐœ์˜ ์ ๋“ค์˜ ๋ฐ๊ธฐ ์˜ค์ฐจ๋ฅผ ๋ชจ๋‘ ๊ณ„์‚ฐํ•œ๋‹ค.
๋‹ค์Œ์œผ๋กœ ํ•ด๋‹น ๋น„์„ ํ˜• ํ•จ์ˆ˜๋ฅผ ์ตœ์ ํ™”ํ•˜๊ธฐ ์œ„ํ•ด Jacobian์„ ๊ณ„์‚ฐํ•œ๋‹ค.
ํ•ด๋‹น Jacobian์€ ์ด๋ฏธ Initialization ๋‹จ๊ณ„์—์„œ ์œ ๋„ ํ–ˆ์œผ๋ฏ€๋กœ ์œ ๋„ ๊ณผ์ •์€ ์ƒ๋žตํ•œ๋‹ค.
์ด ๋•Œ, ์—์„œ ๋งŒ ์šฐ์„  ๊ณ ๋ คํ•œ๋‹ค.
2.1. Frames โž” Pose Tracking
, ๋ฅผ ๊ฐ๊ฐ ๊ณ„์‚ฐํ•œ ๋‹ค์Œ Levenberg-Marquardt ๋ฐฉ๋ฒ•์„ ํ†ตํ•ด ๋ฐ˜๋ณต์ ์œผ๋กœ ์—๋Ÿฌ๋ฅผ ๊ฐ์†Œ์‹œํ‚จ๋‹ค. ์ดˆ๊ธฐ ๋กœ ์„ค์ •ํ•œ๋‹ค.
2.1. Frames โž” Pose Tracking
, ๋ฅผ ๊ฐ๊ฐ ๊ณ„์‚ฐํ•œ ๋‹ค์Œ Levenberg-Marquardt ๋ฐฉ๋ฒ•์„ ํ†ตํ•ด ๋ฐ˜๋ณต์ ์œผ๋กœ ์—๋Ÿฌ๋ฅผ ๊ฐ์†Œ์‹œํ‚จ๋‹ค. ์ดˆ๊ธฐ ๋กœ ์„ค์ •ํ•œ๋‹ค.
์ด ๋•Œ ๋Š” ์นด๋ฉ”๋ผ์˜ ํฌ์ฆˆ๋ฅผ ์˜๋ฏธํ•˜๋ฏ€๋กœ ์ฆ๋ถ„๋Ÿ‰ ๋Š” ์‹ค์ œ๋กœ ์•„๋ž˜์™€ ๊ฐ™์ด ์—…๋ฐ์ดํŠธ ๋œ๋‹ค.
2.1. Frames โž” Pose Tracking
, ๋ฅผ ๊ฐ๊ฐ ๊ณ„์‚ฐํ•œ ๋‹ค์Œ Levenberg-Marquardt ๋ฐฉ๋ฒ•์„ ํ†ตํ•ด ๋ฐ˜๋ณต์ ์œผ๋กœ ์—๋Ÿฌ๋ฅผ ๊ฐ์†Œ์‹œํ‚จ๋‹ค. ์ดˆ๊ธฐ ๋กœ ์„ค์ •ํ•œ๋‹ค.
์ด ๋•Œ ๋Š” ์นด๋ฉ”๋ผ์˜ ํฌ์ฆˆ๋ฅผ ์˜๋ฏธํ•˜๋ฏ€๋กœ ์ฆ๋ถ„๋Ÿ‰ ๋Š” ์‹ค์ œ๋กœ ์•„๋ž˜์™€ ๊ฐ™์ด ์—…๋ฐ์ดํŠธ ๋œ๋‹ค.
๋Š” Photometric parameter a,b๋ฅผ ์˜๋ฏธํ•˜๋ฏ€๋กœ ์•„๋ž˜์™€ ๊ฐ™์ด ์—…๋ฐ์ดํŠธ ๋œ๋‹ค.
2.1. Frames โž” Pose Tracking
, ๋ฅผ ๊ฐ๊ฐ ๊ณ„์‚ฐํ•œ ๋‹ค์Œ Levenberg-Marquardt ๋ฐฉ๋ฒ•์„ ํ†ตํ•ด ๋ฐ˜๋ณต์ ์œผ๋กœ ์—๋Ÿฌ๋ฅผ ๊ฐ์†Œ์‹œํ‚จ๋‹ค. ์ดˆ๊ธฐ ๋กœ ์„ค์ •ํ•œ๋‹ค.
์ด ๋•Œ ๋Š” ์นด๋ฉ”๋ผ์˜ ํฌ์ฆˆ๋ฅผ ์˜๋ฏธํ•˜๋ฏ€๋กœ ์ฆ๋ถ„๋Ÿ‰ ๋Š” ์‹ค์ œ๋กœ ์•„๋ž˜์™€ ๊ฐ™์ด ์—…๋ฐ์ดํŠธ ๋œ๋‹ค.
2.1. Frames โž” Pose Tracking
๋Š” Photometric parameter a,b๋ฅผ ์˜๋ฏธํ•˜๋ฏ€๋กœ ์•„๋ž˜์™€ ๊ฐ™์ด ์—…๋ฐ์ดํŠธ ๋œ๋‹ค.
ํฌ์ฆˆ๊ฐ€ ์—…๋ฐ์ดํŠธ๋˜๋ฉด ๋‹ค์‹œ ํ•œ ๋ฒˆ ์—๋Ÿฌ๋ฅผ ๊ณ„์‚ฐํ•œ ํ›„ ์—๋Ÿฌ๊ฐ€ ์ถฉ๋ถ„ํžˆ ๊ฐ์†Œํ•˜์˜€๋Š”์ง€ ํŒ๋‹จํ•œ๋‹ค.
์—๋Ÿฌ๊ฐ€ ์ถฉ๋ถ„ํžˆ ๊ฐ์†Œํ•˜์˜€๋‹ค๋ฉด ๋‚˜๋จธ์ง€ ํ›„๋ณด ํฌ์ฆˆ๋“ค์„ ๊ณ ๋ คํ•˜์ง€ ์•Š๊ณ  ๋ฃจํ”„๋ฅผ ํƒˆ์ถœํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  lambda ๊ฐ’์„ ์ ˆ๋ฐ˜์œผ๋กœ ์ค„์ธ๋‹ค.
๋งŒ์•ฝ ์—๋Ÿฌ๊ฐ€ ์ค„์–ด๋“ค์ง€ ์•Š์•˜๋‹ค๋ฉด lambda ๊ฐ’์„ 4๋ฐฐ๋กœ ๋Š˜๋ฆฐ๋‹ค.
๋งค ํ”„๋ ˆ์ž„๋งˆ๋‹ค Pose tracking์ด ๋๋‚˜๋ฉด ํ•ด๋‹น ํ”„๋ ˆ์ž„์„ ํ‚คํ”„๋ ˆ์ž„์œผ๋กœ ๊ฒฐ์ •ํ•  ์ง€ ํŒ๋‹จํ•œ๋‹ค.
2.2. Frames โž” Keyframe Decision
๋งค ํ”„๋ ˆ์ž„๋งˆ๋‹ค Pose tracking์ด ๋๋‚˜๋ฉด ํ•ด๋‹น ํ”„๋ ˆ์ž„์„ ํ‚คํ”„๋ ˆ์ž„์œผ๋กœ ๊ฒฐ์ •ํ•  ์ง€ ํŒ๋‹จํ•œ๋‹ค.
ํ‚คํ”„๋ ˆ์ž„์œผ๋กœ ๊ฒฐ์ •ํ•˜๋Š” ๊ธฐ์ค€์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.
1. ํ•ด๋‹น ํ”„๋ ˆ์ž„์ด ๊ฐ€์žฅ ์ฒซ ๋ฒˆ์งธ ํ”„๋ ˆ์ž„์ธ๊ฐ€?
2. (์ˆœ์ˆ˜ ํšŒ์ „์„ ์ œ์™ธํ•œ) ์นด๋ฉ”๋ผ ์›€์ง์ž„์œผ๋กœ ์ธํ•œ Optical flow์˜ ๋ณ€ํ™”๋Ÿ‰ + Photometric (a,b)์˜ ๋ณ€ํ™”๋Ÿ‰์ด
์ผ์ • ๊ธฐ์ค€ ์ด์ƒ์ธ๊ฐ€?
3. Residual ๊ฐ’์ด ์ด์ „ ํ‚คํ”„๋ ˆ์ž„๊ณผ ๋น„๊ตํ–ˆ์„ ๋•Œ ๊ธ‰๊ฒฉํ•˜๊ฒŒ ๋ณ€ํ–ˆ๋Š”๊ฐ€?
2.2. Frames โž” Keyframe Decision
๋งค ํ”„๋ ˆ์ž„๋งˆ๋‹ค Pose tracking์ด ๋๋‚˜๋ฉด ํ•ด๋‹น ํ”„๋ ˆ์ž„์„ ํ‚คํ”„๋ ˆ์ž„์œผ๋กœ ๊ฒฐ์ •ํ•  ์ง€ ํŒ๋‹จํ•œ๋‹ค.
ํ‚คํ”„๋ ˆ์ž„์œผ๋กœ ๊ฒฐ์ •ํ•˜๋Š” ๊ธฐ์ค€์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.
์œ„ ์„ธ ๊ฐ€์ง€ ๊ธฐ์ค€ ์ค‘ ํ•œ๊ฐ€์ง€๋ผ๋„ ๋งŒ์กฑํ•˜๊ฒŒ ๋˜๋ฉด ํ•ด๋‹น ํ”„๋ ˆ์ž„์€ ํ‚คํ”„๋ ˆ์ž„์œผ๋กœ ๊ฐ„์ฃผ๋œ๋‹ค.
1. ํ•ด๋‹น ํ”„๋ ˆ์ž„์ด ๊ฐ€์žฅ ์ฒซ ๋ฒˆ์งธ ํ”„๋ ˆ์ž„์ธ๊ฐ€?
2. (์ˆœ์ˆ˜ ํšŒ์ „์„ ์ œ์™ธํ•œ) ์นด๋ฉ”๋ผ ์›€์ง์ž„์œผ๋กœ ์ธํ•œ Optical flow์˜ ๋ณ€ํ™”๋Ÿ‰ + Photometric (a,b)์˜ ๋ณ€ํ™”๋Ÿ‰์ด
์ผ์ • ๊ธฐ์ค€ ์ด์ƒ์ธ๊ฐ€?
3. Residual ๊ฐ’์ด ์ด์ „ ํ‚คํ”„๋ ˆ์ž„๊ณผ ๋น„๊ตํ–ˆ์„ ๋•Œ ๊ธ‰๊ฒฉํ•˜๊ฒŒ ๋ณ€ํ–ˆ๋Š”๊ฐ€?
2.2. Frames โž” Keyframe Decision
3. Non-Keyframes
keyframe
frame
ํ‚คํ”„๋ ˆ์ž„์œผ๋กœ ๊ฐ„์ฃผ๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ, ํ•ด๋‹น ํ”„๋ ˆ์ž„์€ ํ˜„์žฌ Sliding Window์— ์žˆ๋Š” ํ‚คํ”„๋ ˆ์ž„๋“ค์˜ Immature point idepth ์—…๋ฐ์ดํŠธ์— ์‚ฌ์šฉ๋œ๋‹ค.
3.1. Non-Keyframes โž” Inverse Depth Update
keyframe
frame
Immature point idepth ์—…๋ฐ์ดํŠธ์˜ ์ž์„ธํ•œ ๊ณผ์ •์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.
1) ์šฐ์„ , ์ด์ „ ํ‚คํ”„๋ ˆ์ž„์— ์กด์žฌํ•˜๋Š” idepth๋ฅผ ์•Œ๊ณ  ์žˆ๋Š” Immature point๋“ค์„ ์ƒ๋Œ€ ํฌ์ฆˆ ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ˜„์žฌ ํ”„๋ ˆ์ž„์— ํ”„๋กœ์ ์…˜ํ•œ๋‹ค.
Immature point idepth update
ํ‚คํ”„๋ ˆ์ž„์œผ๋กœ ๊ฐ„์ฃผ๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ, ํ•ด๋‹น ํ”„๋ ˆ์ž„์€ ํ˜„์žฌ Sliding Window์— ์žˆ๋Š” ํ‚คํ”„๋ ˆ์ž„๋“ค์˜ Immature point idepth ์—…๋ฐ์ดํŠธ์— ์‚ฌ์šฉ๋œ๋‹ค.
3.1. Non-Keyframes โž” Inverse Depth Update
2) ์ด ๋•Œ, ์„ ํ•œ ๋ฒˆ๋งŒ ํ”„๋กœ์ ์…˜ ํ•˜์ง€ ์•Š๊ณ  Epipolar line์„ ์ฐพ๊ธฐ ์œ„ํ•ด idepth ๊ฐ’์„ ๋ณ€๊ฒฝํ•ด์„œ ์ด 2๋ฒˆ ํ”„๋กœ์ ์…˜ํ•œ๋‹ค.
Immature point idepth update
์ด ๊ธฐ์กด์— ์„ค์ •๋˜์–ด ์žˆ์ง€ ์•Š๋‹ค๋ฉด
Epipolar line์„ ์ฐพ๊ธฐ ์œ„ํ•ด ์ž„์˜๋กœ ์„ค์ •ํ•œ ๊ฐ’์„ ์‚ฌ์šฉํ•œ๋‹ค.
3.1. Non-Keyframes โž” Inverse Depth Update
3) ๊ฐ’์„ ๊ณ„์‚ฐํ•ด์„œ Epipolar Line์˜ ๋ฐฉํ–ฅ์„ ๊ตฌํ•œ๋‹ค. Epipolar Line์„ ์ˆ˜์‹์œผ๋กœ ํ‘œํ˜„ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.
Immature point idepth update
3.1. Non-Keyframes โž” Inverse Depth Update
3) ๊ฐ’์„ ๊ณ„์‚ฐํ•ด์„œ Epipolar Line์˜ ๋ฐฉํ–ฅ์„ ๊ตฌํ•œ๋‹ค. Epipolar Line์„ ์ˆ˜์‹์œผ๋กœ ํ‘œํ˜„ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.
Immature point idepth update
๋Š” discrete search step size๋ฅผ ์˜๋ฏธํ•œ๋‹ค.
์ด ๋•Œ, ๋Š” ์›์ ์„ ์˜๋ฏธํ•˜๊ณ  ๋Š” ๋ฐฉํ–ฅ์„ ์˜๋ฏธํ•œ๋‹ค.
3.1. Non-Keyframes โž” Inverse Depth Update
3) ๊ฐ’์„ ๊ณ„์‚ฐํ•ด์„œ Epipolar Line์˜ ๋ฐฉํ–ฅ์„ ๊ตฌํ•œ๋‹ค. Epipolar Line์„ ์ˆ˜์‹์œผ๋กœ ํ‘œํ˜„ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.
4) ๋‹ค์Œ์œผ๋กœ maximum discrete search ๋ฒ”์œ„๋ฅผ ์ •ํ•œ ํ›„ ์œ„์—์„œ ๊ฐ€์žฅ ๋ฐ๊ธฐ ์˜ค์ฐจ๊ฐ€ ์ž‘์€ ํ”ฝ์…€์„ ์„ ์ •ํ•œ๋‹ค.
์ด ๋•Œ๋„ ํŒจ์น˜ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ฐ๊ธฐ ์˜ค์ฐจ๋ฅผ ๊ณ„์‚ฐํ•œ๋‹ค.
๋Š” discrete search step size๋ฅผ ์˜๋ฏธํ•œ๋‹ค.
์ด ๋•Œ, ๋Š” ์›์ ์„ ์˜๋ฏธํ•˜๊ณ  ๋Š” ๋ฐฉํ–ฅ์„ ์˜๋ฏธํ•œ๋‹ค.
Immature point idepth update
3.1. Non-Keyframes โž” Inverse Depth Update
5) ๋ฐ๊ธฐ ์˜ค์ฐจ๊ฐ€ ๊ฐ€์žฅ ์ž‘์€ ์ ์„ ์„ ์ •ํ–ˆ์œผ๋ฉด ํŒจ์น˜ ๋‚ด์—์„œ ๋ฐ๊ธฐ ์˜ค์ฐจ๊ฐ€ ๋‘ ๋ฒˆ์งธ๋กœ ์ž‘์€ ์ ์„ ์„ ์ •ํ•œ ํ›„ ๋‘ ์˜ค์ฐจ์˜ ๋น„์œจ์„ ํ†ตํ•ด ํ•ด๋‹น ์ ์˜ ํ€„๋ฆฌํ‹ฐ๋ฅผ ๊ณ„์‚ฐํ•œ๋‹ค.
Immature point idepth update
3.1. Non-Keyframes โž” Inverse Depth Update
5) ๋ฐ๊ธฐ ์˜ค์ฐจ๊ฐ€ ๊ฐ€์žฅ ์ž‘์€ ์ ์„ ์„ ์ •ํ–ˆ์œผ๋ฉด ํŒจ์น˜ ๋‚ด์—์„œ ๋ฐ๊ธฐ ์˜ค์ฐจ๊ฐ€ ๋‘ ๋ฒˆ์งธ๋กœ ์ž‘์€ ์ ์„ ์„ ์ •ํ•œ ํ›„ ๋‘ ์˜ค์ฐจ์˜ ๋น„์œจ์„ ํ†ตํ•ด ํ•ด๋‹น ์ ์˜ ํ€„๋ฆฌํ‹ฐ๋ฅผ ๊ณ„์‚ฐํ•œ๋‹ค.
Immature point idepth update
6) ํ•ด๋‹น ์ ์€ discrete search๋ฅผ ํ†ตํ•ด ์ฐพ์€ ๊ฐ’์ด๋ฏ€๋กœ ๋ณด๋‹ค ์ •๊ตํ•œ ์œ„์น˜๋ฅผ ์ฐพ๊ธฐ ์œ„ํ•ด Gauss-Newton optimization์„ ์ˆ˜ํ–‰ํ•˜์—ฌ ์ตœ์ ์˜ ์œ„์น˜ ๋ฅผ ๊ตฌํ•œ๋‹ค.
3.1. Non-Keyframes โž” Inverse Depth Update
7) ์ตœ์ ํ™” ๊ณผ์ •์„ ํ†ตํ•ด ์ตœ์ ์˜ ์œ„์น˜ ๋ฅผ ์ฐพ์•˜์œผ๋ฉด ๋‹ค์Œ์œผ๋กœ ํ•ด๋‹น ํ”ฝ์…€์˜ idepth ๊ฐ’์„ ์—…๋ฐ์ดํŠธํ•ด์ค€๋‹ค.
Immature point idepth update
3.1. Non-Keyframes โž” Inverse Depth Update
7) ์ตœ์ ํ™” ๊ณผ์ •์„ ํ†ตํ•ด ์ตœ์ ์˜ ์œ„์น˜ ๋ฅผ ์ฐพ์•˜์œผ๋ฉด ๋‹ค์Œ์œผ๋กœ ํ•ด๋‹น ํ”ฝ์…€์˜ idepth ๊ฐ’์„ ์—…๋ฐ์ดํŠธํ•ด์ค€๋‹ค.
idepth ๊ฐ’์„ ์—…๋ฐ์ดํŠธํ•˜๊ธฐ ์œ„ํ•ด ํ•ด๋‹น ์ ์„ ์ˆ˜์‹์œผ๋กœ ์ „๊ฐœํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.
Immature point idepth update
๋ฅผ ์ „๊ฐœํ•˜๋ฉด ์ด ๋œ๋‹ค.
3.1. Non-Keyframes โž” Inverse Depth Update
7) ์ตœ์ ํ™” ๊ณผ์ •์„ ํ†ตํ•ด ์ตœ์ ์˜ ์œ„์น˜ ๋ฅผ ์ฐพ์•˜์œผ๋ฉด ๋‹ค์Œ์œผ๋กœ ํ•ด๋‹น ํ”ฝ์…€์˜ idepth ๊ฐ’์„ ์—…๋ฐ์ดํŠธํ•ด์ค€๋‹ค.
idepth ๊ฐ’์„ ์—…๋ฐ์ดํŠธํ•˜๊ธฐ ์œ„ํ•ด ํ•ด๋‹น ์ ์„ ์ˆ˜์‹์œผ๋กœ ์ „๊ฐœํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.
Immature point idepth update
๋ฅผ ์ „๊ฐœํ•˜๋ฉด ์ด ๋œ๋‹ค.
์ด๋ฅผ idepth๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋‹ค์‹œ ์ •๋ฆฌํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ 2๊ฐœ์˜ ์‹์ด ์œ ๋„๋œ๋‹ค.
3.1. Non-Keyframes โž” Inverse Depth Update
8) ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์œ ๋„๋œ ์‹์—์„œ ์ตœ์ ์˜ ์œ„์น˜ ๋ฅผ ๋„ฃ๊ณ  ๋‹ค์‹œ ์ „๊ฐœํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.
Immature point idepth update
x gradient๊ฐ€ ํฐ ๊ฒฝ์šฐ y gradient๊ฐ€ ํฐ ๊ฒฝ์šฐ
3.1. Non-Keyframes โž” Inverse Depth Update
8) ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์œ ๋„๋œ ์‹์—์„œ ์ตœ์ ์˜ ์œ„์น˜ ๋ฅผ ๋„ฃ๊ณ  ๋‹ค์‹œ ์ „๊ฐœํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.
Immature point idepth update
x gradient๊ฐ€ ํฐ ๊ฒฝ์šฐ y gradient๊ฐ€ ํฐ ๊ฒฝ์šฐ
https://jsturm.de/publications/data/engel2013iccv.pdf ๋…ผ๋ฌธ ์ฐธ์กฐ
์—ฌ๊ธฐ์„œ ๊ฐ’์€ gradient ๋ฐฉํ–ฅ๊ณผ Epipolar line์˜ ๋ฐฉํ–ฅ์ด ์ˆ˜์ง์ผ์ˆ˜๋ก 1์—์„œ๋ถ€ํ„ฐ ๊ฐ’์ด ์ฆ๊ฐ€ํ•˜๋Š” ๊ฐ€์ค‘์น˜๋ฅผ ์˜๋ฏธํ•œ๋‹ค.
ํ•ด๋‹น ๊ฐ’์ด ๋„ˆ๋ฌด ์ปค์ง€๋ฉด ๋‘ ๋ฐฉํ–ฅ์ด ๊ฑฐ์˜ ์ˆ˜์ง์— ๊ฐ€๊น๋‹ค๊ณ  ํŒ๋‹จํ•˜์—ฌ idepth ์—…๋ฐ์ดํŠธ๋ฅผ ์ค‘๋‹จํ•œ๋‹ค.
3.1. Non-Keyframes โž” Inverse Depth Update
8) ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์œ ๋„๋œ ์‹์—์„œ ์ตœ์ ์˜ ์œ„์น˜ ๋ฅผ ๋„ฃ๊ณ  ๋‹ค์‹œ ์ „๊ฐœํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.
Immature point idepth update
x gradient๊ฐ€ ํฐ ๊ฒฝ์šฐ y gradient๊ฐ€ ํฐ ๊ฒฝ์šฐ
์ด์™€ ๊ฐ™์€ 1)~8) ๊ณผ์ •์„ ํ†ตํ•ด ์ด์ „ ํ‚คํ”„๋ ˆ์ž„์—์„œ Immature point ์˜ idepth ๊ฐ’์„ ์—…๋ฐ์ดํŠธํ•  ์ˆ˜ ์žˆ๋‹ค.
https://jsturm.de/publications/data/engel2013iccv.pdf ๋…ผ๋ฌธ ์ฐธ์กฐ
์—ฌ๊ธฐ์„œ ๊ฐ’์€ gradient ๋ฐฉํ–ฅ๊ณผ Epipolar line์˜ ๋ฐฉํ–ฅ์ด ์ˆ˜์ง์ผ์ˆ˜๋ก 1์—์„œ๋ถ€ํ„ฐ ๊ฐ’์ด ์ฆ๊ฐ€ํ•˜๋Š” ๊ฐ€์ค‘์น˜๋ฅผ ์˜๋ฏธํ•œ๋‹ค.
ํ•ด๋‹น ๊ฐ’์ด ๋„ˆ๋ฌด ์ปค์ง€๋ฉด ๋‘ ๋ฐฉํ–ฅ์ด ๊ฑฐ์˜ ์ˆ˜์ง์— ๊ฐ€๊น๋‹ค๊ณ  ํŒ๋‹จํ•˜์—ฌ idepth ์—…๋ฐ์ดํŠธ๋ฅผ ์ค‘๋‹จํ•œ๋‹ค.
3.1. Non-Keyframes โž” Inverse Depth Update
4. Keyframes
ํŠน์ • ํ”„๋ ˆ์ž„์ด ํ‚คํ”„๋ ˆ์ž„์œผ๋กœ ๊ฒฐ์ •๋˜๋ฉด Sliding Window ๋‚ด๋ถ€์— ํ‚คํ”„๋ ˆ์ž„๋“ค๊ณผ ์ƒˆ๋กœ์šด ํ‚คํ”„๋ ˆ์ž„ ์‚ฌ์ด์— ์—๋Ÿฌํ•จ์ˆ˜๋ฅผ ์—…๋ฐ์ดํŠธํ•ด์•ผ ํ•œ๋‹ค.
์ด ๋•Œ, ํ‚คํ”„๋ ˆ์ž„ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์ด์™€ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋Š” ๋งต ์ƒ์˜ ํฌ์ธํŠธ๋“ค๊นŒ์ง€ ๊ฐ™์ด ์ตœ์ ํ™”ํ•˜๋Š” Local Bundle Adjustment๋ฅผ ์ˆ˜ํ–‰ํ•œ๋‹ค.
4.3.1. Keyframes โž” Sliding Window Optimization โž” Error Function Formulation
map point
keyframe
frame
edge of host keyframe
edge of target keyframe
ํŠน์ • ํ”„๋ ˆ์ž„์ด ํ‚คํ”„๋ ˆ์ž„์œผ๋กœ ๊ฒฐ์ •๋˜๋ฉด Sliding Window ๋‚ด๋ถ€์— ํ‚คํ”„๋ ˆ์ž„๋“ค๊ณผ ์ƒˆ๋กœ์šด ํ‚คํ”„๋ ˆ์ž„ ์‚ฌ์ด์— ์—๋Ÿฌํ•จ์ˆ˜๋ฅผ ์—…๋ฐ์ดํŠธํ•ด์•ผ ํ•œ๋‹ค.
์ด ๋•Œ, ํ‚คํ”„๋ ˆ์ž„ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์ด์™€ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋Š” ๋งต ์ƒ์˜ ํฌ์ธํŠธ๋“ค๊นŒ์ง€ ๊ฐ™์ด ์ตœ์ ํ™”ํ•˜๋Š” Local Bundle Adjustment๋ฅผ ์ˆ˜ํ–‰ํ•œ๋‹ค.
์ฃผ๋ชฉํ•  ์ ์€ ํ•˜๋‚˜์˜ ๋งตํฌ์ธํŠธ๊ฐ€ ๋‘ ๊ฐœ์˜ ํ‚คํ”„๋ ˆ์ž„(host, target)๊ณผ ์—ฐ๊ฒฐ๋˜์–ด ์ตœ์ ํ™”๋œ๋‹ค๋Š” ์ ์ด๋‹ค.
์—ฌ๊ธฐ์„œ host ํ‚คํ”„๋ ˆ์ž„์€ ํ•ด๋‹น ๋งตํฌ์ธํŠธ๋ฅผ ๊ฐ€์žฅ ๋จผ์ € ๋ฐœ๊ฒฌํ•œ ํ‚คํ”„๋ ˆ์ž„์ด๊ณ  target ํ‚คํ”„๋ ˆ์ž„์€ ์ดํ›„์— ๋ฐœ๊ฒฌํ•œ ํ‚คํ”„๋ ˆ์ž„์„ ์˜๋ฏธํ•œ๋‹ค.
DSO paper Figure 5
blue: host, red: target
4.3.1. Keyframes โž” Sliding Window Optimization โž” Error Function Formulation
map point
keyframe
frame
edge of host keyframe
edge of target keyframe
ํŠน์ • ํ”„๋ ˆ์ž„์ด ํ‚คํ”„๋ ˆ์ž„์œผ๋กœ ๊ฒฐ์ •๋˜๋ฉด Sliding Window ๋‚ด๋ถ€์— ํ‚คํ”„๋ ˆ์ž„๋“ค๊ณผ ์ƒˆ๋กœ์šด ํ‚คํ”„๋ ˆ์ž„ ์‚ฌ์ด์— ์—๋Ÿฌํ•จ์ˆ˜๋ฅผ ์—…๋ฐ์ดํŠธํ•ด์•ผ ํ•œ๋‹ค.
์ด ๋•Œ, ํ‚คํ”„๋ ˆ์ž„ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์ด์™€ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋Š” ๋งต ์ƒ์˜ ํฌ์ธํŠธ๋“ค๊นŒ์ง€ ๊ฐ™์ด ์ตœ์ ํ™”ํ•˜๋Š” Local Bundle Adjustment๋ฅผ ์ˆ˜ํ–‰ํ•œ๋‹ค.
์ฃผ๋ชฉํ•  ์ ์€ ํ•˜๋‚˜์˜ ๋งตํฌ์ธํŠธ๊ฐ€ ๋‘ ๊ฐœ์˜ ํ‚คํ”„๋ ˆ์ž„(host, target)๊ณผ ์—ฐ๊ฒฐ๋˜์–ด ์ตœ์ ํ™”๋œ๋‹ค๋Š” ์ ์ด๋‹ค.
์—ฌ๊ธฐ์„œ host ํ‚คํ”„๋ ˆ์ž„์€ ํ•ด๋‹น ๋งตํฌ์ธํŠธ๋ฅผ ๊ฐ€์žฅ ๋จผ์ € ๋ฐœ๊ฒฌํ•œ ํ‚คํ”„๋ ˆ์ž„์ด๊ณ  target ํ‚คํ”„๋ ˆ์ž„์€ ์ดํ›„์— ๋ฐœ๊ฒฌํ•œ ํ‚คํ”„๋ ˆ์ž„์„ ์˜๋ฏธํ•œ๋‹ค.
๋˜ํ•œ ์ตœ์ ํ™” ๊ณผ์ •์—์„œ ์—ฐ์‚ฐ๋Ÿ‰์„ ์ค„์ด๊ธฐ ์œ„ํ•ด Jacobian์„ ๊ณ„์‚ฐํ•  ๋•Œ ์นด๋ฉ”๋ผ์˜ ์›”๋“œ์ขŒํ‘œ๊ณ„๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๊ณ„์‚ฐํ•œ Jacobian ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ 
host, target ํ‚คํ”„๋ ˆ์ž„ ๊ฐ„ ์ƒ๋Œ€ ํฌ์ฆˆ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๊ณ„์‚ฐํ•œ Jacobian ์„ ์‚ฌ์šฉํ•œ๋‹ค.
๋”ฐ๋ผ์„œ ํ•ด๋‹น Jacobian์„ ์‚ฌ์šฉํ•˜์—ฌ ๋‘ ํ‚คํ”„๋ ˆ์ž„์˜ ์›”๋“œ์ขŒํ‘œ๊ณ„ ๊ธฐ๋ฐ˜ ์นด๋ฉ”๋ผ ํฌ์ฆˆ ๋ฅผ ์ตœ์ ํ™” ํ•˜๊ธฐ ์œ„ํ•ด Adjoint Transformation๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.
4.3.1. Keyframes โž” Sliding Window Optimization โž” Error Function Formulation
map point
keyframe
frame
edge of host keyframe
edge of target keyframe
4.3.1. Keyframes โž” Sliding Window Optimization โž” Error Function Formulation
Sliding Window Optimization์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ์šฐ์„  ์—๋Ÿฌ ํ•จ์ˆ˜๋ฅผ ์„ค์ •ํ•ด์•ผ ํ•œ๋‹ค.
4.3.1. Keyframes โž” Sliding Window Optimization โž” Error Function Formulation
Sliding Window Optimization์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ์šฐ์„  ์—๋Ÿฌ ํ•จ์ˆ˜๋ฅผ ์„ค์ •ํ•ด์•ผ ํ•œ๋‹ค.
์ด ๋•Œ ์—๋Ÿฌ ํ•จ์ˆ˜์˜ ํŒŒ๋ผ๋ฏธํ„ฐ๋Š” Pose(6) + Photometric(2) + Camera Intrinsics(4) + Idepth(N)๋กœ์จ ์ด 12+N๊ฐœ์˜ ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ ์ตœ์ ํ™”์— ์‚ฌ์šฉ๋œ๋‹ค.
์ฐธ๊ณ ๋กœ Initialization ๊ณผ์ •์—์„œ๋Š” Pose(6) + Photometric(2) + Idepth(N)์˜ 8+N๊ฐœ์˜ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์ตœ์ ํ™”ํ•˜์˜€๋‹ค.
์ฆ‰, Initialization ๊ณผ์ •์— ์ถ”๊ฐ€์ ์œผ๋กœ Camera Intrinsics ๋ฅผ ๊ฐ™์ด ์ตœ์ ํ™” ํ–ˆ์œผ๋ฏ€๋กœ ์—๋Ÿฌ ํ•จ์ˆ˜ ๋˜ํ•œ Initialization ๊ณผ์ •๊ณผ ๋™์ผํ•˜๋‹ค.
4.3.1. Keyframes โž” Sliding Window Optimization โž” Error Function Formulation
Initialization ๋‹จ๊ณ„์™€ ๋‹ค๋ฅด๊ฒŒ ์ดˆ๊ธฐ๊ฐ’ b0 ์ถ”๊ฐ€๋จ
residual(=์—๋Ÿฌ)๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.
Sliding Window Optimization์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ์šฐ์„  ์—๋Ÿฌ ํ•จ์ˆ˜๋ฅผ ์„ค์ •ํ•ด์•ผ ํ•œ๋‹ค.
์ด ๋•Œ ์—๋Ÿฌ ํ•จ์ˆ˜์˜ ํŒŒ๋ผ๋ฏธํ„ฐ๋Š” Pose(6) + Photometric(2) + Camera Intrinsics(4) + Idepth(N)๋กœ์จ ์ด 12+N๊ฐœ์˜ ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ ์ตœ์ ํ™”์— ์‚ฌ์šฉ๋œ๋‹ค.
์ฐธ๊ณ ๋กœ Initialization ๊ณผ์ •์—์„œ๋Š” Pose(6) + Photometric(2) + Idepth(N)์˜ 8+N๊ฐœ์˜ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์ตœ์ ํ™”ํ•˜์˜€๋‹ค.
์ฆ‰, Initialization ๊ณผ์ •์— ์ถ”๊ฐ€์ ์œผ๋กœ Camera Intrinsics ๋ฅผ ๊ฐ™์ด ์ตœ์ ํ™” ํ–ˆ์œผ๋ฏ€๋กœ ์—๋Ÿฌ ํ•จ์ˆ˜ ๋˜ํ•œ Initialization ๊ณผ์ •๊ณผ ๋™์ผํ•˜๋‹ค.
map point
keyframe
edge of host keyframe
edge of target keyframe
4.3.1. Keyframes โž” Sliding Window Optimization โž” Error Function Formulation
residual(=์—๋Ÿฌ)๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.
์ด ๋•Œ, residual์€ ํ•œ ์ ์ด ์•„๋‹Œ ์ฃผ๋ณ€ ์ ๋“ค์„ ํฌํ•จํ•œ 8๊ฐœ ์ ๋“ค ์—๋Ÿฌ์˜ ํ•ฉ์„ ์˜๋ฏธํ•œ๋‹ค.
Sliding Window Optimization์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ์šฐ์„  ์—๋Ÿฌ ํ•จ์ˆ˜๋ฅผ ์„ค์ •ํ•ด์•ผ ํ•œ๋‹ค.
์ด ๋•Œ ์—๋Ÿฌ ํ•จ์ˆ˜์˜ ํŒŒ๋ผ๋ฏธํ„ฐ๋Š” Pose(6) + Photometric(2) + Camera Intrinsics(4) + Idepth(N)๋กœ์จ ์ด 12+N๊ฐœ์˜ ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ ์ตœ์ ํ™”์— ์‚ฌ์šฉ๋œ๋‹ค.
์ฐธ๊ณ ๋กœ Initialization ๊ณผ์ •์—์„œ๋Š” Pose(6) + Photometric(2) + Idepth(N)์˜ 8+N๊ฐœ์˜ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์ตœ์ ํ™”ํ•˜์˜€๋‹ค.
์ฆ‰, Initialization ๊ณผ์ •์— ์ถ”๊ฐ€์ ์œผ๋กœ Camera Intrinsics ๋ฅผ ๊ฐ™์ด ์ตœ์ ํ™” ํ–ˆ์œผ๋ฏ€๋กœ ์—๋Ÿฌ ํ•จ์ˆ˜ ๋˜ํ•œ Initialization ๊ณผ์ •๊ณผ ๋™์ผํ•˜๋‹ค.
map point
keyframe
edge of host keyframe
edge of target keyframe
4.3.1. Keyframes โž” Sliding Window Optimization โž” Error Function Formulation
์ตœ์ข…์ ์œผ๋กœ huber norm๊นŒ์ง€ ์ ์šฉ๋œ ์—๋Ÿฌํ•จ์ˆ˜๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.
residual(=์—๋Ÿฌ)๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.
Sliding Window Optimization์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ์šฐ์„  ์—๋Ÿฌ ํ•จ์ˆ˜๋ฅผ ์„ค์ •ํ•ด์•ผ ํ•œ๋‹ค.
์ด ๋•Œ ์—๋Ÿฌ ํ•จ์ˆ˜์˜ ํŒŒ๋ผ๋ฏธํ„ฐ๋Š” Pose(6) + Photometric(2) + Camera Intrinsics(4) + Idepth(N)๋กœ์จ ์ด 12+N๊ฐœ์˜ ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ ์ตœ์ ํ™”์— ์‚ฌ์šฉ๋œ๋‹ค.
์ฐธ๊ณ ๋กœ Initialization ๊ณผ์ •์—์„œ๋Š” Pose(6) + Photometric(2) + Idepth(N)์˜ 8+N๊ฐœ์˜ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์ตœ์ ํ™”ํ•˜์˜€๋‹ค.
์ฆ‰, Initialization ๊ณผ์ •์— ์ถ”๊ฐ€์ ์œผ๋กœ Camera Intrinsics ๋ฅผ ๊ฐ™์ด ์ตœ์ ํ™” ํ–ˆ์œผ๋ฏ€๋กœ ์—๋Ÿฌ ํ•จ์ˆ˜ ๋˜ํ•œ Initialization ๊ณผ์ •๊ณผ ๋™์ผํ•˜๋‹ค.
map point
keyframe
edge of host keyframe
edge of target keyframe
์ด ๋•Œ, residual์€ ํ•œ ์ ์ด ์•„๋‹Œ ์ฃผ๋ณ€ ์ ๋“ค์„ ํฌํ•จํ•œ 8๊ฐœ ์ ๋“ค ์—๋Ÿฌ์˜ ํ•ฉ์„ ์˜๋ฏธํ•œ๋‹ค.
4.3.1. Keyframes โž” Sliding Window Optimization โž” Error Function Formulation
์ตœ์ข…์ ์œผ๋กœ huber norm๊นŒ์ง€ ์ ์šฉ๋œ ์—๋Ÿฌํ•จ์ˆ˜๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.
residual(=์—๋Ÿฌ)๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.
ํ•ด๋‹น ์—๋Ÿฌํ•จ์ˆ˜๊ฐ€ ์ตœ์†Œ๊ฐ€ ๋˜๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์ฐพ๊ธฐ ์œ„ํ•ด ๋ฅผ ๋งŒ์กฑํ•˜๋Š”
๋ฅผ ์ตœ์†Œํ™”ํ•˜๋Š” ๋ฌธ์ œ๋กœ ๋ณ€๊ฒฝํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.
Sliding Window Optimization์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ์šฐ์„  ์—๋Ÿฌ ํ•จ์ˆ˜๋ฅผ ์„ค์ •ํ•ด์•ผ ํ•œ๋‹ค.
์ด ๋•Œ ์—๋Ÿฌ ํ•จ์ˆ˜์˜ ํŒŒ๋ผ๋ฏธํ„ฐ๋Š” Pose(6) + Photometric(2) + Camera Intrinsics(4) + Idepth(N)๋กœ์จ ์ด 12+N๊ฐœ์˜ ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ ์ตœ์ ํ™”์— ์‚ฌ์šฉ๋œ๋‹ค.
์ฐธ๊ณ ๋กœ Initialization ๊ณผ์ •์—์„œ๋Š” Pose(6) + Photometric(2) + Idepth(N)์˜ 8+N๊ฐœ์˜ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์ตœ์ ํ™”ํ•˜์˜€๋‹ค.
์ฆ‰, Initialization ๊ณผ์ •์— ์ถ”๊ฐ€์ ์œผ๋กœ Camera Intrinsics ๋ฅผ ๊ฐ™์ด ์ตœ์ ํ™” ํ–ˆ์œผ๋ฏ€๋กœ ์—๋Ÿฌ ํ•จ์ˆ˜ ๋˜ํ•œ Initialization ๊ณผ์ •๊ณผ ๋™์ผํ•˜๋‹ค.
map point
keyframe
edge of host keyframe
edge of target keyframe
์ด ๋•Œ, residual์€ ํ•œ ์ ์ด ์•„๋‹Œ ์ฃผ๋ณ€ ์ ๋“ค์„ ํฌํ•จํ•œ 8๊ฐœ ์ ๋“ค ์—๋Ÿฌ์˜ ํ•ฉ์„ ์˜๋ฏธํ•œ๋‹ค.
4.3.1. Keyframes โž” Sliding Window Optimization โž” Error Function Formulation
์—๋Ÿฌํ•จ์ˆ˜ ์˜ state variable ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.
1๋ฒˆ ์ด๋ฏธ์ง€์—์„œ i๋ฒˆ์งธ inverse depth ๊ฐ’ (N๊ฐœ)
๋‘ ์ด๋ฏธ์ง€ ๊ฐ„ exposure time์„ ๊ณ ๋ คํ•˜์—ฌ ์ด๋ฏธ์ง€ ๋ฐ๊ธฐ๋ฅผ ์กฐ์ ˆํ•˜๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ (2๊ฐœ)
๋‘ ์นด๋ฉ”๋ผ ๊ฐ„ ์ƒ๋Œ€ ํฌ์ฆˆ ๋ณ€ํ™”๋Ÿ‰ (twist)(6์ฐจ์› ๋ฒกํ„ฐ) (6๊ฐœ)
์นด๋ฉ”๋ผ ๋‚ด๋ถ€ ํŒŒ๋ผ๋ฏธํ„ฐ (fx, fy, cx, cy) (4๊ฐœ)
4.3.1. Keyframes โž” Sliding Window Optimization โž” Error Function Formulation
์—๋Ÿฌํ•จ์ˆ˜ ์˜ state variable ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.
1๋ฒˆ ์ด๋ฏธ์ง€์—์„œ i๋ฒˆ์งธ inverse depth ๊ฐ’ (N๊ฐœ)
๋‘ ์ด๋ฏธ์ง€ ๊ฐ„ exposure time์„ ๊ณ ๋ คํ•˜์—ฌ ์ด๋ฏธ์ง€ ๋ฐ๊ธฐ๋ฅผ ์กฐ์ ˆํ•˜๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ (2๊ฐœ)
๋‘ ์นด๋ฉ”๋ผ ๊ฐ„ ์ƒ๋Œ€ ํฌ์ฆˆ ๋ณ€ํ™”๋Ÿ‰ (twist)(6์ฐจ์› ๋ฒกํ„ฐ) (6๊ฐœ)
์นด๋ฉ”๋ผ ๋‚ด๋ถ€ ํŒŒ๋ผ๋ฏธํ„ฐ (fx, fy, cx, cy) (4๊ฐœ)
Initialization ๊ณผ์ •๊ณผ ๋‹ฌ๋ฆฌ state variable์— camera intrinsics ๊ฐ€ ํฌํ•จ๋œ ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.
4.3.1. Keyframes โž” Sliding Window Optimization โž” Error Function Formulation
์—๋Ÿฌํ•จ์ˆ˜ ์˜ state variable ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.
1๋ฒˆ ์ด๋ฏธ์ง€์—์„œ i๋ฒˆ์งธ inverse depth ๊ฐ’ (N๊ฐœ)
๋‘ ์ด๋ฏธ์ง€ ๊ฐ„ exposure time์„ ๊ณ ๋ คํ•˜์—ฌ ์ด๋ฏธ์ง€ ๋ฐ๊ธฐ๋ฅผ ์กฐ์ ˆํ•˜๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ (2๊ฐœ)
๋‘ ์นด๋ฉ”๋ผ ๊ฐ„ ์ƒ๋Œ€ ํฌ์ฆˆ ๋ณ€ํ™”๋Ÿ‰ (twist)(6์ฐจ์› ๋ฒกํ„ฐ) (6๊ฐœ)
์นด๋ฉ”๋ผ ๋‚ด๋ถ€ ํŒŒ๋ผ๋ฏธํ„ฐ (fx, fy, cx, cy) (4๊ฐœ)
Initialization ๊ณผ์ •๊ณผ ๋‹ฌ๋ฆฌ state variable์— camera intrinsics ๊ฐ€ ํฌํ•จ๋œ ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.
Initialization ๊ณผ์ •์—์„œ ์ด๋ฏธ ์•„๋ž˜์™€ ๊ฐ™์ด ์ตœ์ ํ™”์— ํ•„์š”ํ•œ Jacobian๋“ค์„ ์œ ๋„ํ•˜์˜€๋‹ค.
ํ•˜์ง€๋งŒ Sliding Window Optimization ๊ณผ์ •์—์„œ๋Š” ์ถ”๊ฐ€์ ์œผ๋กœ Jacobian of Camera Intrinsics ์„ ์œ ๋„ํ•ด์•ผ ํ•œ๋‹ค.
photometric(2)pose(6)idepth(N)
4.3.2. Keyframes โž” Sliding Window Optimization โž” Jacobian Derivation of Camera Intrinsics
Jacobian of Camera Intrinsics ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ถ„ํ•ดํ•  ์ˆ˜ ์žˆ๋‹ค.
map point
keyframe
edge of host keyframe
edge of target keyframe
More detail: https://blog.csdn.net/xxxlinttp/article/details/90640350
4.3.2. Keyframes โž” Sliding Window Optimization โž” Jacobian Derivation of Camera Intrinsics
Jacobian of Camera Intrinsics ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ถ„ํ•ดํ•  ์ˆ˜ ์žˆ๋‹ค.
์ด ๋•Œ, ์ด๋ฏ€๋กœ ๊ฐ„๊ฒฐํ•˜๊ฒŒ residual ํ•ญ์œผ๋กœ ํ‘œํ˜„ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.
map point
keyframe
edge of host keyframe
edge of target keyframe
More detail: https://blog.csdn.net/xxxlinttp/article/details/90640350
4.3.2. Keyframes โž” Sliding Window Optimization โž” Jacobian Derivation of Camera Intrinsics
Jacobian of Camera Intrinsics ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ถ„ํ•ดํ•  ์ˆ˜ ์žˆ๋‹ค.
์ด ๋•Œ, ์ด๋ฏ€๋กœ ๊ฐ„๊ฒฐํ•˜๊ฒŒ residual ํ•ญ์œผ๋กœ ํ‘œํ˜„ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.
๋Š” Initialization ์„น์…˜์—์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ด๋ฏธ ์œ ๋„ํ•˜์˜€๋‹ค.
map point
keyframe
edge of host keyframe
edge of target keyframe
More detail: https://blog.csdn.net/xxxlinttp/article/details/90640350
4.3.2. Keyframes โž” Sliding Window Optimization โž” Jacobian Derivation of Camera Intrinsics
Jacobian of Camera Intrinsics ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ถ„ํ•ดํ•  ์ˆ˜ ์žˆ๋‹ค.
์ด ๋•Œ, ์ด๋ฏ€๋กœ ๊ฐ„๊ฒฐํ•˜๊ฒŒ residual ํ•ญ์œผ๋กœ ํ‘œํ˜„ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.
๊ทธ๋ฆฌ๊ณ  ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์œ ๋„ํ•  ์ˆ˜ ์žˆ๋‹ค.
๋Š” Initialization ์„น์…˜์—์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ด๋ฏธ ์œ ๋„ํ•˜์˜€๋‹ค.
map point
keyframe
edge of host keyframe
edge of target keyframe
More detail: https://blog.csdn.net/xxxlinttp/article/details/90640350
4.3.2. Keyframes โž” Sliding Window Optimization โž” Jacobian Derivation of Camera Intrinsics
ํ˜„์žฌ๊นŒ์ง€ ์œ ๋„๋œ ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.
map point
keyframe
edge of host keyframe
edge of target keyframe
More detail: https://blog.csdn.net/xxxlinttp/article/details/90640350
4.3.2. Keyframes โž” Sliding Window Optimization โž” Jacobian Derivation of Camera Intrinsics
ํ˜„์žฌ๊นŒ์ง€ ์œ ๋„๋œ ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.
map point
keyframe
edge of host keyframe
edge of target keyframe
๋‹ค์Œ ์ˆœ์„œ๋กœ ๊ฐ’์„ ๊ตฌํ•ด์•ผ ํ•œ๋‹ค.
More detail: https://blog.csdn.net/xxxlinttp/article/details/90640350
4.3.2. Keyframes โž” Sliding Window Optimization โž” Jacobian Derivation of Camera Intrinsics
ํ˜„์žฌ๊นŒ์ง€ ์œ ๋„๋œ ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.
map point
keyframe
edge of host keyframe
edge of target keyframe
์šฐ์„  ๋ฅผ ์ „๊ฐœํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.
๋‹ค์Œ ์ˆœ์„œ๋กœ ๊ฐ’์„ ๊ตฌํ•ด์•ผ ํ•œ๋‹ค.
More detail: https://blog.csdn.net/xxxlinttp/article/details/90640350
4.3.2. Keyframes โž” Sliding Window Optimization โž” Jacobian Derivation of Camera Intrinsics
map point
keyframe
edge of host keyframe
edge of target keyframe
More detail: https://blog.csdn.net/xxxlinttp/article/details/90640350
4.3.2. Keyframes โž” Sliding Window Optimization โž” Jacobian Derivation of Camera Intrinsics
map point
keyframe
edge of host keyframe
edge of target keyframe
๋”ฐ๋ผ์„œ ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ๋‹ค.
More detail: https://blog.csdn.net/xxxlinttp/article/details/90640350
4.3.2. Keyframes โž” Sliding Window Optimization โž” Jacobian Derivation of Camera Intrinsics
More detail: https://blog.csdn.net/xxxlinttp/article/details/90640350
4.3.2. Keyframes โž” Sliding Window Optimization โž” Jacobian Derivation of Camera Intrinsics
์œ„ ์‹์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฅผ ๊ตฌํ•ด๋ณด๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.
More detail: https://blog.csdn.net/xxxlinttp/article/details/90640350
4.3.2. Keyframes โž” Sliding Window Optimization โž” Jacobian Derivation of Camera Intrinsics
์ตœ์ข…์ ์œผ๋กœ ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ๋‹ค.
More detail: https://blog.csdn.net/xxxlinttp/article/details/90640350
camera intrinsics(4)
4.3.3. Keyframes โž” Sliding Window Optimization โž” First Estimate Jacobian
Sliding Window Optimization์„ ์ˆ˜ํ–‰ํ•˜๋ฉด ๋งค iteration๋งˆ๋‹ค state variable ๊ฐ€ ์—…๋ฐ์ดํŠธ ๋œ๋‹ค.
์ด ๋•Œ ์—ฐ์‚ฐ์ž๋Š” N+12๊ฐœ์˜ ์ƒํƒœ๋ฅผ ๊ฐ ํŒŒ๋ผ๋ฏธํ„ฐ ๋ณ„๋กœ ์—…๋ฐ์ดํŠธํ•ด์ฃผ๋Š” ์—ฐ์‚ฐ์ž์ด๋‹ค.
DSO paper Figure 6
Notation์˜ ํ˜ผ์šฉ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ๋…ผ๋ฌธ์˜ ๊ธฐํ˜ธ๋ฅผ ์ผ๋ถ€ ์ˆ˜์ •ํ•จ
LBA๋ฅผ ์‹œ์ž‘ํ•˜๋Š” ์‹œ์ ์—์„œ state variable
LBA๊ฐ€ ๋๋‚œ ํ›„ state variable
๋งค iteration ์—…๋ฐ์ดํŠธ(marginalization ํฌํ•จ)๋กœ ์ธํ•œ ๋ˆ„์  ์ฆ๋ถ„๋Ÿ‰
๋งค iteration ์—…๋ฐ์ดํŠธ ์ฆ๋ถ„๋Ÿ‰
more detailed: https://blog.csdn.net/heyijia0327/article/details/53707261
4.3.3. Keyframes โž” Sliding Window Optimization โž” First Estimate Jacobian
Sliding Window Optimization์„ ์ˆ˜ํ–‰ํ•˜๋ฉด ๋งค iteration๋งˆ๋‹ค state variable ๊ฐ€ ์—…๋ฐ์ดํŠธ ๋œ๋‹ค.
์ด ๋•Œ ์—ฐ์‚ฐ์ž๋Š” N+12๊ฐœ์˜ ์ƒํƒœ๋ฅผ ๊ฐ ํŒŒ๋ผ๋ฏธํ„ฐ ๋ณ„๋กœ ์—…๋ฐ์ดํŠธํ•ด์ฃผ๋Š” ์—ฐ์‚ฐ์ž์ด๋‹ค.
DSO์—์„œ๋Š” LBA์„ ์ˆ˜ํ–‰ํ•  ๋•Œ๋งˆ๋‹ค 6๋ฒˆ์˜ ์ตœ์ ํ™”๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š”๋ฐ ๋งŒ์•ฝ ๋งค iteration๋งˆ๋‹ค Jacobian์„ ์ƒˆ๋กœ ๊ณ„์‚ฐํ•˜๋ฉด
๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋‹จ์ ์ด ์กด์žฌํ•œ๋‹ค. (์ž์„ธํ•œ ๋‚ด์šฉ์€ ์šฐ์ธก ํ•˜๋‹จ์˜ ๋งํฌ ์ฐธ์กฐ)
DSO paper Figure 6
Notation์˜ ํ˜ผ์šฉ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ๋…ผ๋ฌธ์˜ ๊ธฐํ˜ธ๋ฅผ ์ผ๋ถ€ ์ˆ˜์ •ํ•จ
LBA๋ฅผ ์‹œ์ž‘ํ•˜๋Š” ์‹œ์ ์—์„œ state variable
LBA๊ฐ€ ๋๋‚œ ํ›„ state variable
๋งค iteration ์—…๋ฐ์ดํŠธ(marginalization ํฌํ•จ)๋กœ ์ธํ•œ ๋ˆ„์  ์ฆ๋ถ„๋Ÿ‰
๋งค iteration ์—…๋ฐ์ดํŠธ ์ฆ๋ถ„๋Ÿ‰
more detailed: https://blog.csdn.net/heyijia0327/article/details/53707261
4.3.3. Keyframes โž” Sliding Window Optimization โž” First Estimate Jacobian
Sliding Window Optimization์„ ์ˆ˜ํ–‰ํ•˜๋ฉด ๋งค iteration๋งˆ๋‹ค state variable ๊ฐ€ ์—…๋ฐ์ดํŠธ ๋œ๋‹ค.
์ด ๋•Œ ์—ฐ์‚ฐ์ž๋Š” N+12๊ฐœ์˜ ์ƒํƒœ๋ฅผ ๊ฐ ํŒŒ๋ผ๋ฏธํ„ฐ ๋ณ„๋กœ ์—…๋ฐ์ดํŠธํ•ด์ฃผ๋Š” ์—ฐ์‚ฐ์ž์ด๋‹ค.
DSO์—์„œ๋Š” LBA์„ ์ˆ˜ํ–‰ํ•  ๋•Œ๋งˆ๋‹ค 6๋ฒˆ์˜ ์ตœ์ ํ™”๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š”๋ฐ ๋งŒ์•ฝ ๋งค iteration๋งˆ๋‹ค Jacobian์„ ์ƒˆ๋กœ ๊ณ„์‚ฐํ•˜๋ฉด
๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋‹จ์ ์ด ์กด์žฌํ•œ๋‹ค. (์ž์„ธํ•œ ๋‚ด์šฉ์€ ์šฐ์ธก ํ•˜๋‹จ์˜ ๋งํฌ ์ฐธ์กฐ)
DSO paper Figure 6
Notation์˜ ํ˜ผ์šฉ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ๋…ผ๋ฌธ์˜ ๊ธฐํ˜ธ๋ฅผ ์ผ๋ถ€ ์ˆ˜์ •ํ•จ
LBA๋ฅผ ์‹œ์ž‘ํ•˜๋Š” ์‹œ์ ์—์„œ state variable
LBA๊ฐ€ ๋๋‚œ ํ›„ state variable
๋งค iteration ์—…๋ฐ์ดํŠธ(marginalization ํฌํ•จ)๋กœ ์ธํ•œ ๋ˆ„์  ์ฆ๋ถ„๋Ÿ‰
๋งค iteration ์—…๋ฐ์ดํŠธ ์ฆ๋ถ„๋Ÿ‰
more detailed: https://blog.csdn.net/heyijia0327/article/details/53707261
1) ์—ฐ์‚ฐ๋Ÿ‰์ด ๋งค์šฐ ์ฆ๊ฐ€ํ•˜๋ฏ€๋กœ ์‹ค์‹œ๊ฐ„ ์„ฑ๋Šฅ์„ ๋ณด์žฅํ•  ์ˆ˜ ์—†๋‹ค.
2) ์„œ๋กœ ๋‹ค๋ฅธ state์˜ Jacobian์„ ํ•œ ์‹œ์Šคํ…œ์—์„œ ๊ฐ™์ด ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ์„ฑ๋Šฅ์˜ ์ €ํ•˜๋ฅผ ์ผ์œผํ‚ฌ ๊ฐ€๋Šฅ์„ฑ์ด ์กด์žฌํ•œ๋‹ค.
Adding linearizations around different evaluation points eliminates these and thus slowly corrupts the system. (DSO paper)
4.3.3. Keyframes โž” Sliding Window Optimization โž” First Estimate Jacobian
Sliding Window Optimization์„ ์ˆ˜ํ–‰ํ•˜๋ฉด ๋งค iteration๋งˆ๋‹ค state variable ๊ฐ€ ์—…๋ฐ์ดํŠธ ๋œ๋‹ค.
์ด ๋•Œ ์—ฐ์‚ฐ์ž๋Š” N+12๊ฐœ์˜ ์ƒํƒœ๋ฅผ ๊ฐ ํŒŒ๋ผ๋ฏธํ„ฐ ๋ณ„๋กœ ์—…๋ฐ์ดํŠธํ•ด์ฃผ๋Š” ์—ฐ์‚ฐ์ž์ด๋‹ค.
DSO์—์„œ๋Š” LBA์„ ์ˆ˜ํ–‰ํ•  ๋•Œ๋งˆ๋‹ค 6๋ฒˆ์˜ ์ตœ์ ํ™”๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š”๋ฐ ๋งŒ์•ฝ ๋งค iteration๋งˆ๋‹ค Jacobian์„ ์ƒˆ๋กœ ๊ณ„์‚ฐํ•˜๋ฉด
๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋‹จ์ ์ด ์กด์žฌํ•œ๋‹ค. (์ž์„ธํ•œ ๋‚ด์šฉ์€ ์šฐ์ธก ํ•˜๋‹จ์˜ ๋งํฌ ์ฐธ์กฐ)
DSO paper Figure 6
Notation์˜ ํ˜ผ์šฉ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ๋…ผ๋ฌธ์˜ ๊ธฐํ˜ธ๋ฅผ ์ผ๋ถ€ ์ˆ˜์ •ํ•จ
LBA๋ฅผ ์‹œ์ž‘ํ•˜๋Š” ์‹œ์ ์—์„œ state variable
LBA๊ฐ€ ๋๋‚œ ํ›„ state variable
๋งค iteration ์—…๋ฐ์ดํŠธ(marginalization ํฌํ•จ)๋กœ ์ธํ•œ ๋ˆ„์  ์ฆ๋ถ„๋Ÿ‰
๋งค iteration ์—…๋ฐ์ดํŠธ ์ฆ๋ถ„๋Ÿ‰
more detailed: https://blog.csdn.net/heyijia0327/article/details/53707261
1) ์—ฐ์‚ฐ๋Ÿ‰์ด ๋งค์šฐ ์ฆ๊ฐ€ํ•˜๋ฏ€๋กœ ์‹ค์‹œ๊ฐ„ ์„ฑ๋Šฅ์„ ๋ณด์žฅํ•  ์ˆ˜ ์—†๋‹ค.
2) ์„œ๋กœ ๋‹ค๋ฅธ state์˜ Jacobian์„ ํ•œ ์‹œ์Šคํ…œ์—์„œ ๊ฐ™์ด ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ์„ฑ๋Šฅ์˜ ์ €ํ•˜๋ฅผ ์ผ์œผํ‚ฌ ๊ฐ€๋Šฅ์„ฑ์ด ์กด์žฌํ•œ๋‹ค.
๋”ฐ๋ผ์„œ LBA๋ฅผ ์ˆ˜ํ–‰ํ•  ๋•Œ ๋งค iteration๋งˆ๋‹ค(marginalization ํฌํ•จ) ์—…๋ฐ์ดํŠธ๋กœ ์ธํ•ด state variable ๊ฐ€ ๋ณ€ํ•˜๋”๋ผ๋„
Jacobian์€ ์ƒˆ๋กœ ๊ณ„์‚ฐํ•˜์ง€ ์•Š๊ณ  LBA๋ฅผ ์‹œ์ž‘ํ•˜๋Š” ์‹œ์ ( )์—์„œ ๊ณ„์‚ฐํ•œ Jacobian์„ ์‚ฌ์šฉํ•˜์—ฌ ์—…๋ฐ์ดํŠธํ•˜๋Š” ๋ฐฉ๋ฒ•์„ First Estimate Jacobian(FEJ)๋ผ๊ณ  ํ•œ๋‹ค.
FEJ์˜ ์ ์šฉ ์ˆœ์„œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.
4.3.3. Keyframes โž” Sliding Window Optimization โž” First Estimate Jacobian
Sliding Window Optimization์„ ์ˆ˜ํ–‰ํ•˜๋ฉด ๋งค iteration๋งˆ๋‹ค state variable ๊ฐ€ ์—…๋ฐ์ดํŠธ ๋œ๋‹ค.
์ด ๋•Œ ์—ฐ์‚ฐ์ž๋Š” N+12๊ฐœ์˜ ์ƒํƒœ๋ฅผ ๊ฐ ํŒŒ๋ผ๋ฏธํ„ฐ ๋ณ„๋กœ ์—…๋ฐ์ดํŠธํ•ด์ฃผ๋Š” ์—ฐ์‚ฐ์ž์ด๋‹ค.
DSO์—์„œ๋Š” LBA์„ ์ˆ˜ํ–‰ํ•  ๋•Œ๋งˆ๋‹ค 6๋ฒˆ์˜ ์ตœ์ ํ™”๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š”๋ฐ ๋งŒ์•ฝ ๋งค iteration๋งˆ๋‹ค Jacobian์„ ์ƒˆ๋กœ ๊ณ„์‚ฐํ•˜๋ฉด
๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋‹จ์ ์ด ์กด์žฌํ•œ๋‹ค. (์ž์„ธํ•œ ๋‚ด์šฉ์€ ์šฐ์ธก ํ•˜๋‹จ์˜ ๋งํฌ ์ฐธ์กฐ)
DSO paper Figure 6
Notation์˜ ํ˜ผ์šฉ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ๋…ผ๋ฌธ์˜ ๊ธฐํ˜ธ๋ฅผ ์ผ๋ถ€ ์ˆ˜์ •ํ•จ
LBA๋ฅผ ์‹œ์ž‘ํ•˜๋Š” ์‹œ์ ์—์„œ state variable
LBA๊ฐ€ ๋๋‚œ ํ›„ state variable
๋งค iteration ์—…๋ฐ์ดํŠธ(marginalization ํฌํ•จ)๋กœ ์ธํ•œ ๋ˆ„์  ์ฆ๋ถ„๋Ÿ‰
๋งค iteration ์—…๋ฐ์ดํŠธ ์ฆ๋ถ„๋Ÿ‰
more detailed: https://blog.csdn.net/heyijia0327/article/details/53707261
1) ์—ฐ์‚ฐ๋Ÿ‰์ด ๋งค์šฐ ์ฆ๊ฐ€ํ•˜๋ฏ€๋กœ ์‹ค์‹œ๊ฐ„ ์„ฑ๋Šฅ์„ ๋ณด์žฅํ•  ์ˆ˜ ์—†๋‹ค.
2) ์„œ๋กœ ๋‹ค๋ฅธ state์˜ Jacobian์„ ํ•œ ์‹œ์Šคํ…œ์—์„œ ๊ฐ™์ด ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ์„ฑ๋Šฅ์˜ ์ €ํ•˜๋ฅผ ์ผ์œผํ‚ฌ ๊ฐ€๋Šฅ์„ฑ์ด ์กด์žฌํ•œ๋‹ค.
1) LBA๋ฅผ ์‹œ์ž‘ํ•˜๊ธฐ ์ „ ํ˜„์žฌ ๋ฅผ ์— ์ €์žฅํ•œ ํ›„ Jacobian์„ ๊ณ„์‚ฐํ•œ๋‹ค.
2) LBA๋ฅผ ์ˆ˜ํ–‰ํ•˜๋ฉด์„œ ๋งค iteration๋งˆ๋‹ค ์—…๋ฐ์ดํŠธ ๊ฐ’์„ ๋ˆ„์ ์‹œํ‚จ๋‹ค.
3) ๋งค iteration๋™์•ˆ Jacobian์€ ์—์„œ ๊ณ„์‚ฐํ•œ ๊ฐ’์„ ์‚ฌ์šฉํ•œ๋‹ค.
4) LBA iteration์ด ๋๋‚œ ๊ฒฝ์šฐ ํ˜„์žฌ ์ƒํƒœ์—์„œ ๋ˆ„์ ๋œ ์ฆ๋ถ„๋Ÿ‰์„ ์—…๋ฐ์ดํŠธํ•œ๋‹ค.
๋”ฐ๋ผ์„œ LBA๋ฅผ ์ˆ˜ํ–‰ํ•  ๋•Œ ๋งค iteration๋งˆ๋‹ค(marginalization ํฌํ•จ) ์—…๋ฐ์ดํŠธ๋กœ ์ธํ•ด state variable ๊ฐ€ ๋ณ€ํ•˜๋”๋ผ๋„
Jacobian์€ ์ƒˆ๋กœ ๊ณ„์‚ฐํ•˜์ง€ ์•Š๊ณ  LBA๋ฅผ ์‹œ์ž‘ํ•˜๋Š” ์‹œ์ ( )์—์„œ ๊ณ„์‚ฐํ•œ Jacobian์„ ์‚ฌ์šฉํ•˜์—ฌ ์—…๋ฐ์ดํŠธํ•˜๋Š” ๋ฐฉ๋ฒ•์„ First Estimate Jacobian(FEJ)๋ผ๊ณ  ํ•œ๋‹ค.
FEJ์˜ ์ ์šฉ ์ˆœ์„œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.
์•ž์„œ ์„ค๋ช…ํ•œ ๊ฒƒ๊ณผ ๊ฐ™์ด DSO์—์„œ๋Š” ํ•˜๋‚˜์˜ ๋งตํฌ์ธํŠธ์— 2๊ฐœ์˜ ํ‚คํ”„๋ ˆ์ž„(host, target)์ด ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋‹ค.
์ด์— ๋”ฐ๋ผ ์ตœ์ ํ™” ์ˆ˜ํ–‰ ์‹œ ์—ฐ์‚ฐ๋Ÿ‰์„ ์ค„์ด๊ธฐ ์œ„ํ•ด target, host ํ‚คํ”„๋ ˆ์ž„ ์‚ฌ์ด์˜ ์ƒ๋Œ€ ํฌ์ฆˆ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ณ„์‚ฐํ•œ Jacobian ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.
map point
keyframe
์›”๋“œ์ขŒํ‘œ๊ณ„ {w}์—์„œ ๋ฐ”๋ผ๋ณธ host ํ‚คํ”„๋ ˆ์ž„์˜ ํฌ์ฆˆ(4x4ํ–‰๋ ฌ)
์›”๋“œ์ขŒํ‘œ๊ณ„ {w}์—์„œ ๋ฐ”๋ผ๋ณธ target ํ‚คํ”„๋ ˆ์ž„์˜ ํฌ์ฆˆ(4x4ํ–‰๋ ฌ)
residual
target ๊ธฐ์ค€ host ํ‚คํ”„๋ ˆ์ž„์˜ ์ƒ๋Œ€ ํฌ์ฆˆ ๋ณ€ํ™”๋Ÿ‰(twist)(6์ฐจ์›๋ฒกํ„ฐ)
์ž์„ธํ•œ ๋‚ด์šฉ์€ ํ•ด๋‹น ๋ธ”๋กœ๊ทธ ์ฐธ์กฐ: https://www.cnblogs.com/JingeTU/p/8306727.html
4.3.4. Keyframes โž” Sliding Window Optimization โž” Adjoint Transformation
๊ฐ„๊ฒฐํ•œ ํ‘œํ˜„์„ ์œ„ํ•ด w ๊ธฐํ˜ธ ์ƒ๋žต
์•ž์„œ ์„ค๋ช…ํ•œ ๊ฒƒ๊ณผ ๊ฐ™์ด DSO์—์„œ๋Š” ํ•˜๋‚˜์˜ ๋งตํฌ์ธํŠธ์— 2๊ฐœ์˜ ํ‚คํ”„๋ ˆ์ž„(host, target)์ด ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋‹ค.
์ด์— ๋”ฐ๋ผ ์ตœ์ ํ™” ์ˆ˜ํ–‰ ์‹œ ์—ฐ์‚ฐ๋Ÿ‰์„ ์ค„์ด๊ธฐ ์œ„ํ•ด target, host ํ‚คํ”„๋ ˆ์ž„ ์‚ฌ์ด์˜ ์ƒ๋Œ€ ํฌ์ฆˆ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ณ„์‚ฐํ•œ Jacobian ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.
ํ•˜์ง€๋งŒ ํ•ด๋‹น Jacobian์„ ์‚ฌ์šฉํ•˜์—ฌ Iterative Solution์„ ๊ตฌํ•˜๊ฒŒ ๋˜๋ฉด ๋‘ host, target ํ‚คํ”„๋ ˆ์ž„ ์‚ฌ์ด์˜ ์ƒ๋Œ€ํฌ์ฆˆ๋งŒ ์ตœ์ ํ™”๋˜๋ฏ€๋กœ
์›”๋“œ์ขŒํ‘œ๊ณ„ ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ํ•œ ์นด๋ฉ”๋ผ ํฌ์ฆˆ๋Š” ๊ณ„์‚ฐํ•  ์ˆ˜ ์—†๋‹ค.
์ž์„ธํ•œ ๋‚ด์šฉ์€ ํ•ด๋‹น ๋ธ”๋กœ๊ทธ ์ฐธ์กฐ: https://www.cnblogs.com/JingeTU/p/8306727.html
๊ฐ„๊ฒฐํ•œ ํ‘œํ˜„์„ ์œ„ํ•ด w ๊ธฐํ˜ธ ์ƒ๋žต
map point
keyframe
์›”๋“œ์ขŒํ‘œ๊ณ„ {w}์—์„œ ๋ฐ”๋ผ๋ณธ host ํ‚คํ”„๋ ˆ์ž„์˜ ํฌ์ฆˆ(4x4ํ–‰๋ ฌ)
์›”๋“œ์ขŒํ‘œ๊ณ„ {w}์—์„œ ๋ฐ”๋ผ๋ณธ target ํ‚คํ”„๋ ˆ์ž„์˜ ํฌ์ฆˆ(4x4ํ–‰๋ ฌ)
residual
target ๊ธฐ์ค€ host ํ‚คํ”„๋ ˆ์ž„์˜ ์ƒ๋Œ€ ํฌ์ฆˆ ๋ณ€ํ™”๋Ÿ‰(twist)(6์ฐจ์›๋ฒกํ„ฐ)
4.3.4. Keyframes โž” Sliding Window Optimization โž” Adjoint Transformation
์•ž์„œ ์„ค๋ช…ํ•œ ๊ฒƒ๊ณผ ๊ฐ™์ด DSO์—์„œ๋Š” ํ•˜๋‚˜์˜ ๋งตํฌ์ธํŠธ์— 2๊ฐœ์˜ ํ‚คํ”„๋ ˆ์ž„(host, target)์ด ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋‹ค.
์ด์— ๋”ฐ๋ผ ์ตœ์ ํ™” ์ˆ˜ํ–‰ ์‹œ ์—ฐ์‚ฐ๋Ÿ‰์„ ์ค„์ด๊ธฐ ์œ„ํ•ด target, host ํ‚คํ”„๋ ˆ์ž„ ์‚ฌ์ด์˜ ์ƒ๋Œ€ ํฌ์ฆˆ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ณ„์‚ฐํ•œ Jacobian ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.
ํ•˜์ง€๋งŒ ํ•ด๋‹น Jacobian์„ ์‚ฌ์šฉํ•˜์—ฌ Iterative Solution์„ ๊ตฌํ•˜๊ฒŒ ๋˜๋ฉด ๋‘ host, target ํ‚คํ”„๋ ˆ์ž„ ์‚ฌ์ด์˜ ์ƒ๋Œ€ํฌ์ฆˆ๋งŒ ์ตœ์ ํ™”๋˜๋ฏ€๋กœ
์›”๋“œ์ขŒํ‘œ๊ณ„ ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ํ•œ ์นด๋ฉ”๋ผ ํฌ์ฆˆ๋Š” ๊ณ„์‚ฐํ•  ์ˆ˜ ์—†๋‹ค.
์ด ๋•Œ, DSO์—์„œ๋Š” Adjoint Transformation์„ ํ†ตํ•ด ๋ฅผ ๊ณ„์‚ฐํ•˜์—ฌ ์›”๋“œ์ขŒํ‘œ๊ณ„์˜ ์นด๋ฉ”๋ผ ํฌ์ฆˆ๋ฅผ ์ตœ์ ํ™”ํ•˜์˜€๋‹ค.
๊ฐ„๊ฒฐํ•œ ํ‘œํ˜„์„ ์œ„ํ•ด w ๊ธฐํ˜ธ ์ƒ๋žต
์ž์„ธํ•œ ๋‚ด์šฉ์€ ํ•ด๋‹น ๋ธ”๋กœ๊ทธ ์ฐธ์กฐ: https://www.cnblogs.com/JingeTU/p/8306727.html
map point
keyframe
์›”๋“œ์ขŒํ‘œ๊ณ„ {w}์—์„œ ๋ฐ”๋ผ๋ณธ host ํ‚คํ”„๋ ˆ์ž„์˜ ํฌ์ฆˆ(4x4ํ–‰๋ ฌ)
์›”๋“œ์ขŒํ‘œ๊ณ„ {w}์—์„œ ๋ฐ”๋ผ๋ณธ target ํ‚คํ”„๋ ˆ์ž„์˜ ํฌ์ฆˆ(4x4ํ–‰๋ ฌ)
residual
target ๊ธฐ์ค€ host ํ‚คํ”„๋ ˆ์ž„์˜ ์ƒ๋Œ€ ํฌ์ฆˆ ๋ณ€ํ™”๋Ÿ‰(twist)(6์ฐจ์›๋ฒกํ„ฐ)
4.3.4. Keyframes โž” Sliding Window Optimization โž” Adjoint Transformation
์„ ๋กœ ๋ณ€ํ™˜ํ•˜๊ธฐ ์œ„ํ•ด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์—ฐ์‚ฐ์„ ์‚ฌ์šฉํ•œ๋‹ค.
residual
target ๊ธฐ์ค€ host ํ‚คํ”„๋ ˆ์ž„์˜ ์ƒ๋Œ€ ํฌ์ฆˆ ๋ณ€ํ™”๋Ÿ‰(twist)(6์ฐจ์›๋ฒกํ„ฐ)
์›”๋“œ์ขŒํ‘œ๊ณ„ ๊ธฐ์ค€ host ํ‚คํ”„๋ ˆ์ž„์˜ ์ƒ๋Œ€ ํฌ์ฆˆ ๋ณ€ํ™”๋Ÿ‰(twist)(6์ฐจ์›๋ฒกํ„ฐ)
์›”๋“œ์ขŒํ‘œ๊ณ„ ๊ธฐ์ค€ target ํ‚คํ”„๋ ˆ์ž„์˜ ์ƒ๋Œ€ ํฌ์ฆˆ ๋ณ€ํ™”๋Ÿ‰(twist)(6์ฐจ์›๋ฒกํ„ฐ)
host target
์ž์„ธํ•œ ๋‚ด์šฉ์€ ํ•ด๋‹น ๋ธ”๋กœ๊ทธ ์ฐธ์กฐ: https://www.cnblogs.com/JingeTU/p/8306727.html
4.3.4. Keyframes โž” Sliding Window Optimization โž” Adjoint Transformation
์„ ๋กœ ๋ณ€ํ™˜ํ•˜๊ธฐ ์œ„ํ•ด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์—ฐ์‚ฐ์„ ์‚ฌ์šฉํ•œ๋‹ค.
residual
target ๊ธฐ์ค€ host ํ‚คํ”„๋ ˆ์ž„์˜ ์ƒ๋Œ€ ํฌ์ฆˆ ๋ณ€ํ™”๋Ÿ‰(twist)(6์ฐจ์›๋ฒกํ„ฐ)
์›”๋“œ์ขŒํ‘œ๊ณ„ ๊ธฐ์ค€ host ํ‚คํ”„๋ ˆ์ž„์˜ ์ƒ๋Œ€ ํฌ์ฆˆ ๋ณ€ํ™”๋Ÿ‰(twist)(6์ฐจ์›๋ฒกํ„ฐ)
์›”๋“œ์ขŒํ‘œ๊ณ„ ๊ธฐ์ค€ target ํ‚คํ”„๋ ˆ์ž„์˜ ์ƒ๋Œ€ ํฌ์ฆˆ ๋ณ€ํ™”๋Ÿ‰(twist)(6์ฐจ์›๋ฒกํ„ฐ)
host target
์ด ๋•Œ twist ๋ณ€ํ™”๋Ÿ‰์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ณ„์‚ฐํ•  ์ˆ˜ ์žˆ๋‹ค.
์ž์„ธํ•œ ๋‚ด์šฉ์€ ํ•ด๋‹น ๋ธ”๋กœ๊ทธ ์ฐธ์กฐ: https://www.cnblogs.com/JingeTU/p/8306727.html
4.3.4. Keyframes โž” Sliding Window Optimization โž” Adjoint Transformation
์„ ๋กœ ๋ณ€ํ™˜ํ•˜๊ธฐ ์œ„ํ•ด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์—ฐ์‚ฐ์„ ์‚ฌ์šฉํ•œ๋‹ค.
residual
target ๊ธฐ์ค€ host ํ‚คํ”„๋ ˆ์ž„์˜ ์ƒ๋Œ€ ํฌ์ฆˆ ๋ณ€ํ™”๋Ÿ‰(twist)(6์ฐจ์›๋ฒกํ„ฐ)
์›”๋“œ์ขŒํ‘œ๊ณ„ ๊ธฐ์ค€ host ํ‚คํ”„๋ ˆ์ž„์˜ ์ƒ๋Œ€ ํฌ์ฆˆ ๋ณ€ํ™”๋Ÿ‰(twist)(6์ฐจ์›๋ฒกํ„ฐ)
์›”๋“œ์ขŒํ‘œ๊ณ„ ๊ธฐ์ค€ target ํ‚คํ”„๋ ˆ์ž„์˜ ์ƒ๋Œ€ ํฌ์ฆˆ ๋ณ€ํ™”๋Ÿ‰(twist)(6์ฐจ์›๋ฒกํ„ฐ)
host target
์ด ๋•Œ twist ๋ณ€ํ™”๋Ÿ‰์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ณ„์‚ฐํ•  ์ˆ˜ ์žˆ๋‹ค.
์ž์„ธํ•œ ๋‚ด์šฉ์€ ํ•ด๋‹น ๋ธ”๋กœ๊ทธ ์ฐธ์กฐ: https://www.cnblogs.com/JingeTU/p/8306727.html
์—ฌ๊ธฐ์„œ ๋ฅผ Adjoint Transformation of SE(3) Group๋ผ๊ณ  ํ•œ๋‹ค.
ํ•ด๋‹น ๋ณ€ํ™˜์ด ํ•˜๋Š” ์—ญํ• ์€ 3์ฐจ์› ๊ณต๊ฐ„ ์ƒ์—์„œ ํŠน์ • ์ขŒํ‘œ๊ณ„(๋˜๋Š” ํฌ์ฆˆ)์—์„œ ๋ฐ”๋ผ๋ณธ twist๋ฅผ ๋‹ค๋ฅธ ์ขŒํ‘œ๊ณ„(๋˜๋Š” ํฌ์ฆˆ)์—์„œ ๋ฐ”๋ผ๋ณธ twist๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ์—ญํ• ์„ ํ•œ๋‹ค.
4.3.4. Keyframes โž” Sliding Window Optimization โž” Adjoint Transformation
์„ ๋กœ ๋ณ€ํ™˜ํ•˜๊ธฐ ์œ„ํ•ด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์—ฐ์‚ฐ์„ ์‚ฌ์šฉํ•œ๋‹ค.
residual
target ๊ธฐ์ค€ host ํ‚คํ”„๋ ˆ์ž„์˜ ์ƒ๋Œ€ ํฌ์ฆˆ ๋ณ€ํ™”๋Ÿ‰(twist)(6์ฐจ์›๋ฒกํ„ฐ)
์›”๋“œ์ขŒํ‘œ๊ณ„ ๊ธฐ์ค€ host ํ‚คํ”„๋ ˆ์ž„์˜ ์ƒ๋Œ€ ํฌ์ฆˆ ๋ณ€ํ™”๋Ÿ‰(twist)(6์ฐจ์›๋ฒกํ„ฐ)
์›”๋“œ์ขŒํ‘œ๊ณ„ ๊ธฐ์ค€ target ํ‚คํ”„๋ ˆ์ž„์˜ ์ƒ๋Œ€ ํฌ์ฆˆ ๋ณ€ํ™”๋Ÿ‰(twist)(6์ฐจ์›๋ฒกํ„ฐ)
host target
์ด ๋•Œ twist ๋ณ€ํ™”๋Ÿ‰์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ณ„์‚ฐํ•  ์ˆ˜ ์žˆ๋‹ค.
์ž์„ธํ•œ ๋‚ด์šฉ์€ ํ•ด๋‹น ๋ธ”๋กœ๊ทธ ์ฐธ์กฐ: https://www.cnblogs.com/JingeTU/p/8306727.html
์—ฌ๊ธฐ์„œ ๋ฅผ Adjoint Transformation of SE(3) Group๋ผ๊ณ  ํ•œ๋‹ค.
ํ•ด๋‹น ๋ณ€ํ™˜์ด ํ•˜๋Š” ์—ญํ• ์€ 3์ฐจ์› ๊ณต๊ฐ„ ์ƒ์—์„œ ํŠน์ • ์ขŒํ‘œ๊ณ„(๋˜๋Š” ํฌ์ฆˆ)์—์„œ ๋ฐ”๋ผ๋ณธ twist๋ฅผ ๋‹ค๋ฅธ ์ขŒํ‘œ๊ณ„(๋˜๋Š” ํฌ์ฆˆ)์—์„œ ๋ฐ”๋ผ๋ณธ twist๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ์—ญํ• ์„ ํ•œ๋‹ค.
๊ตฌ์ฒด์ ์œผ๋กœ ๋Š” host ํ‚คํ”„๋ ˆ์ž„์—์„œ ๋ฐ”๋ผ๋ณธ ํŠน์ • twist๋ฅผ target ํ‚คํ”„๋ ˆ์ž„์—์„œ ๋ฐ”๋ผ๋ณธ twist๋กœ ๋ณ€ํ™˜ํ•˜๋Š”
์—ฐ์‚ฐ์ž์ด๋‹ค.
ํ•˜์ง€๋งŒ ํ•ด๋‹น ์Šฌ๋ผ์ด๋“œ์—์„œ๋Š” ๊ฐ’์œผ๋กœ ์œ ๋„๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ฅผ ๊ณ„์‚ฐํ•˜๊ธฐ ์œ„ํ•œ ๋„๊ตฌ๋กœ๋งŒ ์‚ฌ์šฉ๋œ๋‹ค.
4.3.4. Keyframes โž” Sliding Window Optimization โž” Adjoint Transformation
์˜ ์ž์„ธํ•œ ์ •์˜ ๋ฐ ์—ญํ• ์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์•Œ๊ณ  ์‹ถ์œผ๋ฉด ์šฐ์ธก ํ•˜๋‹จ์˜ ๋งํฌ๋ฅผ ์ฐธ์กฐํ•˜๋ฉด ๋œ๋‹ค.
์ž์„ธํ•œ ๋‚ด์šฉ์€ ํ•ด๋‹น ๋ธ”๋กœ๊ทธ ์ฐธ์กฐ: https://www.cnblogs.com/JingeTU/p/9077372.html
Lie Theory for Robotics ๊ด€๋ จ ๋‚ด์šฉ์€ ๋‹ค์Œ ์ž๋ฃŒ ์ฐธ์กฐ: http://ethaneade.com/lie.pdf
3์ฐจ์› ํฌ์ฆˆ
(transform)(4x4ํ–‰๋ ฌ)(lie group)
hat ์—ฐ์‚ฐ์ž๊ฐ€ ์ ์šฉ๋œ twist
(4x4ํ–‰๋ ฌ)(lie algebra)
์ƒ๋Œ€ ํฌ์ฆˆ ๋ณ€ํ™”๋Ÿ‰
(twist)(6์ฐจ์›๋ฒกํ„ฐ)
4.3.4. Keyframes โž” Sliding Window Optimization โž” Adjoint Transformation
์˜ ์ž์„ธํ•œ ์ •์˜ ๋ฐ ์—ญํ• ์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์•Œ๊ณ  ์‹ถ์œผ๋ฉด ์šฐ์ธก ํ•˜๋‹จ์˜ ๋งํฌ๋ฅผ ์ฐธ์กฐํ•˜๋ฉด ๋œ๋‹ค.
์ž์„ธํ•œ ๋‚ด์šฉ์€ ํ•ด๋‹น ๋ธ”๋กœ๊ทธ ์ฐธ์กฐ: https://www.cnblogs.com/JingeTU/p/9077372.html
Lie Theory for Robotics ๊ด€๋ จ ๋‚ด์šฉ์€ ๋‹ค์Œ ์ž๋ฃŒ ์ฐธ์กฐ: http://ethaneade.com/lie.pdf
ํ•ด๋‹น ์Šฌ๋ผ์ด๋“œ์—์„œ๋Š” ๋‘ ๊ฐ’์˜ ์œ ๋„ ๊ณผ์ •์— ๋Œ€ํ•ด ์„ค๋ช…ํ•œ๋‹ค.
์šฐ์„  ๊ณผ ๊ฐ™์ด 2๊ฐœ์˜ ํฌ์ฆˆ๋กœ ๋ถ„ํ• ํ•  ์ˆ˜ ์žˆ๊ณ  ์ด๋ฅผ Iterative ์—…๋ฐ์ดํŠธ ๊ณต์‹์œผ๋กœ ํ™•์žฅํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.
3์ฐจ์› ํฌ์ฆˆ
(transform)(4x4ํ–‰๋ ฌ)(lie group)
hat ์—ฐ์‚ฐ์ž๊ฐ€ ์ ์šฉ๋œ twist
(4x4ํ–‰๋ ฌ)(lie algebra)
์ƒ๋Œ€ ํฌ์ฆˆ ๋ณ€ํ™”๋Ÿ‰
(twist)(6์ฐจ์›๋ฒกํ„ฐ)
4.3.4. Keyframes โž” Sliding Window Optimization โž” Adjoint Transformation
์˜ ์ž์„ธํ•œ ์ •์˜ ๋ฐ ์—ญํ• ์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์•Œ๊ณ  ์‹ถ์œผ๋ฉด ์šฐ์ธก ํ•˜๋‹จ์˜ ๋งํฌ๋ฅผ ์ฐธ์กฐํ•˜๋ฉด ๋œ๋‹ค.
์ž์„ธํ•œ ๋‚ด์šฉ์€ ํ•ด๋‹น ๋ธ”๋กœ๊ทธ ์ฐธ์กฐ: https://www.cnblogs.com/JingeTU/p/9077372.html
Lie Theory for Robotics ๊ด€๋ จ ๋‚ด์šฉ์€ ๋‹ค์Œ ์ž๋ฃŒ ์ฐธ์กฐ: http://ethaneade.com/lie.pdf
ํ•ด๋‹น ์Šฌ๋ผ์ด๋“œ์—์„œ๋Š” ๋‘ ๊ฐ’์˜ ์œ ๋„ ๊ณผ์ •์— ๋Œ€ํ•ด ์„ค๋ช…ํ•œ๋‹ค.
์šฐ์„  ๊ณผ ๊ฐ™์ด 2๊ฐœ์˜ ํฌ์ฆˆ๋กœ ๋ถ„ํ• ํ•  ์ˆ˜ ์žˆ๊ณ  ์ด๋ฅผ Iterative ์—…๋ฐ์ดํŠธ ๊ณต์‹์œผ๋กœ ํ™•์žฅํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.
3์ฐจ์› ํฌ์ฆˆ
(transform)(4x4ํ–‰๋ ฌ)(lie group)
hat ์—ฐ์‚ฐ์ž๊ฐ€ ์ ์šฉ๋œ twist
(4x4ํ–‰๋ ฌ)(lie algebra)
์ƒ๋Œ€ ํฌ์ฆˆ ๋ณ€ํ™”๋Ÿ‰
(twist)(6์ฐจ์›๋ฒกํ„ฐ)
host
4.3.4. Keyframes โž” Sliding Window Optimization โž” Adjoint Transformation
์˜ ์ž์„ธํ•œ ์ •์˜ ๋ฐ ์—ญํ• ์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์•Œ๊ณ  ์‹ถ์œผ๋ฉด ์šฐ์ธก ํ•˜๋‹จ์˜ ๋งํฌ๋ฅผ ์ฐธ์กฐํ•˜๋ฉด ๋œ๋‹ค.
์ž์„ธํ•œ ๋‚ด์šฉ์€ ํ•ด๋‹น ๋ธ”๋กœ๊ทธ ์ฐธ์กฐ: https://www.cnblogs.com/JingeTU/p/9077372.html
Lie Theory for Robotics ๊ด€๋ จ ๋‚ด์šฉ์€ ๋‹ค์Œ ์ž๋ฃŒ ์ฐธ์กฐ: http://ethaneade.com/lie.pdf
ํ•ด๋‹น ์Šฌ๋ผ์ด๋“œ์—์„œ๋Š” ๋‘ ๊ฐ’์˜ ์œ ๋„ ๊ณผ์ •์— ๋Œ€ํ•ด ์„ค๋ช…ํ•œ๋‹ค.
์šฐ์„  ๊ณผ ๊ฐ™์ด 2๊ฐœ์˜ ํฌ์ฆˆ๋กœ ๋ถ„ํ• ํ•  ์ˆ˜ ์žˆ๊ณ  ์ด๋ฅผ Iterative ์—…๋ฐ์ดํŠธ ๊ณต์‹์œผ๋กœ ํ™•์žฅํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.
host
3์ฐจ์› ํฌ์ฆˆ
(transform)(4x4ํ–‰๋ ฌ)(lie group)
hat ์—ฐ์‚ฐ์ž๊ฐ€ ์ ์šฉ๋œ twist
(4x4ํ–‰๋ ฌ)(lie algebra)
์ƒ๋Œ€ ํฌ์ฆˆ ๋ณ€ํ™”๋Ÿ‰
(twist)(6์ฐจ์›๋ฒกํ„ฐ)
target
4.3.4. Keyframes โž” Sliding Window Optimization โž” Adjoint Transformation
4.3.5. Keyframes โž” Sliding Window Optimization โž” Marginalization
TBA
4.3.6. Keyframes โž” Sliding Window Optimization โž” Solving The Incremental Equation
DSO์—์„œ๋Š” Sliding Window ๋‚ด๋ถ€์˜ ํ•ญ์ƒ 8๊ฐœ์˜ ํ‚คํ”„๋ ˆ์ž„์„ ์œ ์ง€ํ•˜๋ฉด์„œ
Pose(6) + Photometric(2) + Camera Intrinsics(4) + Idepth(N)์˜ ์ด 12+N๊ฐœ์˜ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์ตœ์ ํ™”ํ•œ๋‹ค.
DSO์—์„œ๋Š” Sliding Window ๋‚ด๋ถ€์˜ ํ•ญ์ƒ 8๊ฐœ์˜ ํ‚คํ”„๋ ˆ์ž„์„ ์œ ์ง€ํ•˜๋ฉด์„œ
Pose(6) + Photometric(2) + Camera Intrinsics(4) + Idepth(N)์˜ ์ด 12+N๊ฐœ์˜ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์ตœ์ ํ™”ํ•œ๋‹ค.
์ด๋ ‡๊ฒŒ ํŠน์ • ์˜์—ญ ๋‚ด์˜ ํ‚คํ”„๋ ˆ์ž„์˜ ํฌ์ฆˆ์™€ ๋งตํฌ์ธํŠธ๋ฅผ ๋™์‹œ์— ์ตœ์ ํ™”ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ Local Bundle Adjustment(LBA)๋ผ๊ณ  ํ•œ๋‹ค.
์„ค๋ช…์˜ ํŽธ์˜์ƒ ์ดํ›„ ์„น์…˜์—์„œ๋Š” Sliding Window Optimization์„ LBA๋ผ๊ณ  ์–ธ๊ธ‰ํ•œ๋‹ค.
4.3.6. Keyframes โž” Sliding Window Optimization โž” Solving The Incremental Equation
1๋ฒˆ ์ด๋ฏธ์ง€์—์„œ i๋ฒˆ์งธ inverse depth ๊ฐ’ (N๊ฐœ)
๋‘ ์ด๋ฏธ์ง€ ๊ฐ„ exposure time์„ ๊ณ ๋ คํ•˜์—ฌ ์ด๋ฏธ์ง€ ๋ฐ๊ธฐ๋ฅผ ์กฐ์ ˆํ•˜๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ (2๊ฐœ)
๋‘ ์นด๋ฉ”๋ผ ๊ฐ„ ์ƒ๋Œ€ ํฌ์ฆˆ ๋ณ€ํ™”๋Ÿ‰ (twist)(6์ฐจ์› ๋ฒกํ„ฐ) (6๊ฐœ)
์นด๋ฉ”๋ผ ๋‚ด๋ถ€ ํŒŒ๋ผ๋ฏธํ„ฐ (fx, fy, cx, cy) (4๊ฐœ)
์ด์ „ ์„น์…˜์—์„œ ์œ ๋„ํ•œ LBA์˜ ์—๋Ÿฌํ•จ์ˆ˜๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๊ณ  ์ด ๋•Œ state variable ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.
DSO์—์„œ๋Š” Sliding Window ๋‚ด๋ถ€์˜ ํ•ญ์ƒ 8๊ฐœ์˜ ํ‚คํ”„๋ ˆ์ž„์„ ์œ ์ง€ํ•˜๋ฉด์„œ
Pose(6) + Photometric(2) + Camera Intrinsics(4) + Idepth(N)์˜ ์ด 12+N๊ฐœ์˜ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์ตœ์ ํ™”ํ•œ๋‹ค.
์ด๋ ‡๊ฒŒ ํŠน์ • ์˜์—ญ ๋‚ด์˜ ํ‚คํ”„๋ ˆ์ž„์˜ ํฌ์ฆˆ์™€ ๋งตํฌ์ธํŠธ๋ฅผ ๋™์‹œ์— ์ตœ์ ํ™”ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ Local Bundle Adjustment(LBA)๋ผ๊ณ  ํ•œ๋‹ค.
์„ค๋ช…์˜ ํŽธ์˜์ƒ ์ดํ›„ ์„น์…˜์—์„œ๋Š” Sliding Window Optimization์„ LBA๋ผ๊ณ  ์–ธ๊ธ‰ํ•œ๋‹ค.
4.3.6. Keyframes โž” Sliding Window Optimization โž” Solving The Incremental Equation
1๋ฒˆ ์ด๋ฏธ์ง€์—์„œ i๋ฒˆ์งธ inverse depth ๊ฐ’ (N๊ฐœ)
๋‘ ์ด๋ฏธ์ง€ ๊ฐ„ exposure time์„ ๊ณ ๋ คํ•˜์—ฌ ์ด๋ฏธ์ง€ ๋ฐ๊ธฐ๋ฅผ ์กฐ์ ˆํ•˜๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ (2๊ฐœ)
๋‘ ์นด๋ฉ”๋ผ ๊ฐ„ ์ƒ๋Œ€ ํฌ์ฆˆ ๋ณ€ํ™”๋Ÿ‰ (twist)(6์ฐจ์› ๋ฒกํ„ฐ) (6๊ฐœ)
์นด๋ฉ”๋ผ ๋‚ด๋ถ€ ํŒŒ๋ผ๋ฏธํ„ฐ (fx, fy, cx, cy) (4๊ฐœ)
์ด์ „ ์„น์…˜์—์„œ ์œ ๋„ํ•œ LBA์˜ ์—๋Ÿฌํ•จ์ˆ˜๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๊ณ  ์ด ๋•Œ state variable ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.
DSO์—์„œ๋Š” Sliding Window ๋‚ด๋ถ€์˜ ํ•ญ์ƒ 8๊ฐœ์˜ ํ‚คํ”„๋ ˆ์ž„์„ ์œ ์ง€ํ•˜๋ฉด์„œ
Pose(6) + Photometric(2) + Camera Intrinsics(4) + Idepth(N)์˜ ์ด 12+N๊ฐœ์˜ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์ตœ์ ํ™”ํ•œ๋‹ค.
์ด๋ ‡๊ฒŒ ํŠน์ • ์˜์—ญ ๋‚ด์˜ ํ‚คํ”„๋ ˆ์ž„์˜ ํฌ์ฆˆ์™€ ๋งตํฌ์ธํŠธ๋ฅผ ๋™์‹œ์— ์ตœ์ ํ™”ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ Local Bundle Adjustment(LBA)๋ผ๊ณ  ํ•œ๋‹ค.
์„ค๋ช…์˜ ํŽธ์˜์ƒ ์ดํ›„ ์„น์…˜์—์„œ๋Š” Sliding Window Optimization์„ LBA๋ผ๊ณ  ์–ธ๊ธ‰ํ•œ๋‹ค.
์ˆ˜์‹์„ ๊ฐ„๊ฒฐํ•˜๊ฒŒ ๋‚˜ํƒ€๋‚ด๊ธฐ ์œ„ํ•ด Idepth๋ฅผ ์ œ์™ธํ•œ ๋‚˜๋จธ์ง€ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ๋กœ ์ถ•์•ฝํ•˜์˜€๋‹ค.
4.3.6. Keyframes โž” Sliding Window Optimization โž” Solving The Incremental Equation
ํ•ด๋‹น ์—๋Ÿฌํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•ด Least Square Optimization ํ˜•ํƒœ๋กœ ๋‚˜ํƒ€๋‚ด๋ฉด ์ตœ์ข…์ ์œผ๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ˜•ํƒœ์˜ ์‹์ด ์œ ๋„๋œ๋‹ค.
ํ•ด๋‹น ์‹์˜ ์œ ๋„๋Š” 1์žฅ์—์„œ ์ž์„ธํžˆ ๋‹ค๋ค˜๊ธฐ ๋•Œ๋ฌธ์— ์ƒ๋žตํ•œ๋‹ค.
4.3.6. Keyframes โž” Sliding Window Optimization โž” Solving The Incremental Equation
ํ•ด๋‹น ์—๋Ÿฌํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•ด Least Square Optimization ํ˜•ํƒœ๋กœ ๋‚˜ํƒ€๋‚ด๋ฉด ์ตœ์ข…์ ์œผ๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ˜•ํƒœ์˜ ์‹์ด ์œ ๋„๋œ๋‹ค.
ํ•ด๋‹น ์‹์˜ ์œ ๋„๋Š” 1์žฅ์—์„œ ์ž์„ธํžˆ ๋‹ค๋ค˜๊ธฐ ๋•Œ๋ฌธ์— ์ƒ๋žตํ•œ๋‹ค.
์ด ๋•Œ Hessian Matrix๋ฅผ ์ž์„ธํ•˜๊ฒŒ ํŽผ์ณ๋ณด๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.
idepth (N)
idepth (N)
pose +
photometric +
intrinsics (12)
pose +
photometric +
intrinsics (12)
4.3.6. Keyframes โž” Sliding Window Optimization โž” Solving The Incremental Equation
ํ•ด๋‹น ์—๋Ÿฌํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•ด Least Square Optimization ํ˜•ํƒœ๋กœ ๋‚˜ํƒ€๋‚ด๋ฉด ์ตœ์ข…์ ์œผ๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ˜•ํƒœ์˜ ์‹์ด ์œ ๋„๋œ๋‹ค.
ํ•ด๋‹น ์‹์˜ ์œ ๋„๋Š” 1์žฅ์—์„œ ์ž์„ธํžˆ ๋‹ค๋ค˜๊ธฐ ๋•Œ๋ฌธ์— ์ƒ๋žตํ•œ๋‹ค.
์ด ๋•Œ, Initialization ์„น์…˜์—์„œ ์–ธ๊ธ‰ํ•œ ๊ฒƒ์ฒ˜๋Ÿผ Inverse Depth(N๊ฐœ)์˜ ๊ฒฝ์šฐ ์ตœ์†Œ ์ˆ˜ ๋ฐฑ ~ ์ˆ˜ ์ฒœ๊ฐœ์˜ ๋งตํฌ์ธํŠธ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ํฌํ•จํ•˜๊ณ  ์žˆ์œผ๋ฏ€๋กœ
ํ•ด๋‹น Hessian Matrix์˜ ์—ญํ–‰๋ ฌ์„ ๊ณ„์‚ฐํ•˜๋Š”๋ฐ ๋งค์šฐ ๋งŽ์€ ์‹œ๊ฐ„์ด ์†Œ๋ชจ๋œ๋‹ค.
๋”ฐ๋ผ์„œ ์ด๋ฅผ ํšจ์œจ์ ์œผ๋กœ ๊ณ„์‚ฐํ•˜๊ธฐ ์œ„ํ•ด Schur Complement๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.
์ด ๋•Œ Hessian Matrix๋ฅผ ์ž์„ธํ•˜๊ฒŒ ํŽผ์ณ๋ณด๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.
idepth (N)
idepth (N)
pose +
photometric +
intrinsics (12)
pose +
photometric +
intrinsics (12)
4.3.6. Keyframes โž” Sliding Window Optimization โž” Solving The Incremental Equation
4.3.6. Keyframes โž” Sliding Window Optimization โž” Solving The Incremental Equation
Schur Complement๋Š” Initialization ์„น์…˜์—์„œ ์ด๋ฏธ ์„ค๋ช…ํ–ˆ์œผ๋‚˜ ์ค‘์š”ํ•œ ๋‚ด์šฉ์ด๋ฏ€๋กœ LBA ๊ณผ์ •์—์„œ๋„ ๋ฐ˜๋ณตํ•ด์„œ ์„ค๋ช…ํ•œ๋‹ค.
Schur Complement๋Š” Initialization ์„น์…˜์—์„œ ์ด๋ฏธ ์„ค๋ช…ํ–ˆ์œผ๋‚˜ ์ค‘์š”ํ•œ ๋‚ด์šฉ์ด๋ฏ€๋กœ LBA ๊ณผ์ •์—์„œ๋„ ๋ฐ˜๋ณตํ•ด์„œ ์„ค๋ช…ํ•œ๋‹ค.
์œ„ ์‹์— ์–‘๋ณ€์— ์•„๋ž˜์™€ ๊ฐ™์€ ํŠน์ˆ˜ํ•œ ํ˜•ํƒœ์˜ ํ–‰๋ ฌ์„ ์–‘๋ณ€์— ๊ณฑํ•ด์ค€๋‹ค.
4.3.6. Keyframes โž” Sliding Window Optimization โž” Solving The Incremental Equation
์œ„ ์‹์— ์–‘๋ณ€์— ์•„๋ž˜์™€ ๊ฐ™์€ ํŠน์ˆ˜ํ•œ ํ˜•ํƒœ์˜ ํ–‰๋ ฌ์„ ์–‘๋ณ€์— ๊ณฑํ•ด์ค€๋‹ค.
1
์œ„ ์‹์„ ์ „๊ฐœํ•ด์„œ ์˜ ๊ฐ’์„ ์ˆœ์ฐจ์ ์œผ๋กœ ๊ณ„์‚ฐํ•  ์ˆ˜ ์žˆ๋‹ค. ์œ„ ์‹์„ ์ „๊ฐœํ•˜๋ฉด ๋งŒ ์กด์žฌํ•˜๋Š” ํ•ญ์ด ์œ ๋„๋œ๋‹ค.
4.3.6. Keyframes โž” Sliding Window Optimization โž” Solving The Incremental Equation
Schur Complement๋Š” Initialization ์„น์…˜์—์„œ ์ด๋ฏธ ์„ค๋ช…ํ–ˆ์œผ๋‚˜ ์ค‘์š”ํ•œ ๋‚ด์šฉ์ด๋ฏ€๋กœ LBA ๊ณผ์ •์—์„œ๋„ ๋ฐ˜๋ณตํ•ด์„œ ์„ค๋ช…ํ•œ๋‹ค.
์œ„ ์‹์— ์–‘๋ณ€์— ์•„๋ž˜์™€ ๊ฐ™์€ ํŠน์ˆ˜ํ•œ ํ˜•ํƒœ์˜ ํ–‰๋ ฌ์„ ์–‘๋ณ€์— ๊ณฑํ•ด์ค€๋‹ค.
์œ„ ์‹์„ ํ†ตํ•ด ๋ฅผ ๋จผ์ € ๊ณ„์‚ฐํ•œ ํ›„ ์ด๋ฅผ ํ† ๋Œ€๋กœ ๋ฅผ ๊ณ„์‚ฐํ•œ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์—ญํ–‰๋ ฌ์„ ๊ตฌํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ๋”์šฑ ๋น ๋ฅด๊ฒŒ ์ตœ์ ํ™” ๊ณต์‹์„ ํ’€ ์ˆ˜ ์žˆ๋‹ค.
2
1
์œ„ ์‹์„ ์ „๊ฐœํ•ด์„œ ์˜ ๊ฐ’์„ ์ˆœ์ฐจ์ ์œผ๋กœ ๊ณ„์‚ฐํ•  ์ˆ˜ ์žˆ๋‹ค. ์œ„ ์‹์„ ์ „๊ฐœํ•˜๋ฉด ๋งŒ ์กด์žฌํ•˜๋Š” ํ•ญ์ด ์œ ๋„๋œ๋‹ค.
4.3.6. Keyframes โž” Sliding Window Optimization โž” Solving The Incremental Equation
Schur Complement๋Š” Initialization ์„น์…˜์—์„œ ์ด๋ฏธ ์„ค๋ช…ํ–ˆ์œผ๋‚˜ ์ค‘์š”ํ•œ ๋‚ด์šฉ์ด๋ฏ€๋กœ LBA ๊ณผ์ •์—์„œ๋„ ๋ฐ˜๋ณตํ•ด์„œ ์„ค๋ช…ํ•œ๋‹ค.
Inverse depth์™€ ๊ด€๋ จ ์žˆ๋Š” ํ•ญ์ธ ๋Š” N x N ํฌ๊ธฐ์˜ ๋Œ€๊ฐํ–‰๋ ฌ(diagonal matrix)์ด๋ฏ€๋กœ ์‰ฝ๊ฒŒ ์—ญํ–‰๋ ฌ์„ ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค.
๋”ฐ๋ผ์„œ ๋˜ํ•œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋น„๊ต์  ๊ฐ„๋‹จํ•˜๊ฒŒ ๊ณ„์‚ฐํ•  ์ˆ˜ ์žˆ๋‹ค.
4.3.6. Keyframes โž” Sliding Window Optimization โž” Solving The Incremental Equation
Inverse depth์™€ ๊ด€๋ จ ์žˆ๋Š” ํ•ญ์ธ ๋Š” N x N ํฌ๊ธฐ์˜ ๋Œ€๊ฐํ–‰๋ ฌ(diagonal matrix)์ด๋ฏ€๋กœ ์‰ฝ๊ฒŒ ์—ญํ–‰๋ ฌ์„ ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค.
๋”ฐ๋ผ์„œ ๋˜ํ•œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋น„๊ต์  ๊ฐ„๋‹จํ•˜๊ฒŒ ๊ณ„์‚ฐํ•  ์ˆ˜ ์žˆ๋‹ค.
์ตœ์ข…์ ์œผ๋กœ damping ๊ณ„์ˆ˜ ๊ธฐ๋ฐ˜์˜ Levenberg-Marquardt ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•˜์—ฌ Optimization์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.
4.3.6. Keyframes โž” Sliding Window Optimization โž” Solving The Incremental Equation
4.3.6. Keyframes โž” Sliding Window Optimization โž” Solving The Incremental Equation
pose(6) + photo(2)
more detail: https://www.cnblogs.com/JingeTU/p/8395046.html
H, b ํ–‰๋ ฌ์— ๋Œ€ํ•ด ์ž์„ธํ•˜๊ฒŒ ํ‘œํ˜„ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.
4.3.6. Keyframes โž” Sliding Window Optimization โž” Solving The Incremental Equation
pose(6) + photo(2)
more detail: https://www.cnblogs.com/JingeTU/p/8395046.html
H, b ํ–‰๋ ฌ์— ๋Œ€ํ•ด ์ž์„ธํ•˜๊ฒŒ ํ‘œํ˜„ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.
4.3.6. Keyframes โž” Sliding Window Optimization โž” Solving The Incremental Equation
pose(6) + photo(2)
more detail: https://www.cnblogs.com/JingeTU/p/8395046.html
H, b ํ–‰๋ ฌ์— ๋Œ€ํ•ด ์ž์„ธํ•˜๊ฒŒ ํ‘œํ˜„ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.
4.3.6. Keyframes โž” Sliding Window Optimization โž” Solving The Incremental Equation
pose(6) + photo(2)
more detail: https://www.cnblogs.com/JingeTU/p/8395046.html
H, b ํ–‰๋ ฌ์— ๋Œ€ํ•ด ์ž์„ธํ•˜๊ฒŒ ํ‘œํ˜„ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.
4.3.6. Keyframes โž” Sliding Window Optimization โž” Solving The Incremental Equation
more detail: https://www.cnblogs.com/JingeTU/p/8395046.html
H, b ํ–‰๋ ฌ์— ๋Œ€ํ•ด ์ž์„ธํ•˜๊ฒŒ ํ‘œํ˜„ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.
4.3.6. Keyframes โž” Sliding Window Optimization โž” Solving The Incremental Equation
more detail: https://www.cnblogs.com/JingeTU/p/8395046.html
H, b ํ–‰๋ ฌ์— ๋Œ€ํ•ด ์ž์„ธํ•˜๊ฒŒ ํ‘œํ˜„ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.
4.3.6. Keyframes โž” Sliding Window Optimization โž” Solving The Incremental Equation
more detail: https://www.cnblogs.com/JingeTU/p/8395046.html
H, b ํ–‰๋ ฌ์— ๋Œ€ํ•ด ์ž์„ธํ•˜๊ฒŒ ํ‘œํ˜„ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.
4.3.6. Keyframes โž” Sliding Window Optimization โž” Solving The Incremental Equation
more detail: https://www.cnblogs.com/JingeTU/p/8395046.html
H, b ํ–‰๋ ฌ์— ๋Œ€ํ•ด ์ž์„ธํ•˜๊ฒŒ ํ‘œํ˜„ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.
4.3.6. Keyframes โž” Sliding Window Optimization โž” Solving The Incremental Equation
more detail: https://www.cnblogs.com/JingeTU/p/8395046.html
H, b ํ–‰๋ ฌ์— ๋Œ€ํ•ด ์ž์„ธํ•˜๊ฒŒ ํ‘œํ˜„ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.
4.3.6. Keyframes โž” Sliding Window Optimization โž” Solving The Incremental Equation
H, b ํ–‰๋ ฌ์— ๋Œ€ํ•ด ์ž์„ธํ•˜๊ฒŒ ํ‘œํ˜„ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.
์ด๋ฏ€๋กœ huber norm์„ ์ƒ๋žตํ•˜๊ณ  residual๋งŒ ํ‘œํ˜„ํ•˜๋ฉด
4.3.6. Keyframes โž” Sliding Window Optimization โž” Solving The Incremental Equation
H, b ํ–‰๋ ฌ์— ๋Œ€ํ•ด ์ž์„ธํ•˜๊ฒŒ ํ‘œํ˜„ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.
์ด๋ฏ€๋กœ huber norm์„ ์ƒ๋žตํ•˜๊ณ  residual๋งŒ ํ‘œํ˜„ํ•˜๋ฉด
4.3.6. Keyframes โž” Sliding Window Optimization โž” Solving The Incremental Equation
H, b ํ–‰๋ ฌ์— ๋Œ€ํ•ด ์ž์„ธํ•˜๊ฒŒ ํ‘œํ˜„ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.
์ด๋ฏ€๋กœ huber norm์„ ์ƒ๋žตํ•˜๊ณ  residual๋งŒ ํ‘œํ˜„ํ•˜๋ฉด
5. Pixel Selection
5.1. Pixel Selection โž” Make Histogram
ORB-SLAM2์™€ ๊ฐ™์€ feature-based method์˜ ๊ฒฝ์šฐ ์ด๋ฏธ์ง€ ๋‚ด์—์„œ ํŠน์ • ํฌ์ธํŠธ๋ฅผ ์ถ”์ถœํ• 
๋•Œ feature extraction ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•˜์—ฌ ํ‚คํฌ์ธํŠธ๋ฅผ ์ถ”์ถœํ•œ๋‹ค. ๊ทธ ๋‹ค์Œ ํ•ด๋‹น ํ‚คํฌ์ธํŠธ๋ฅผ
3์ฐจ์› ์ ์œผ๋กœ Unprojection ํ•˜๊ณ  ๋‹ค์Œ ํ”„๋ ˆ์ž„์—์„œ ๋‹ค์‹œ 2์ฐจ์› ์ ์œผ๋กœ Reprojection
ํ•ด์„œ Reprojection Error๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์นด๋ฉ”๋ผ ๋ชจ์…˜์„ ๊ณ„์‚ฐํ•œ๋‹ค.
ํ•˜์ง€๋งŒ direct method๋ฅผ ์‚ฌ์šฉํ•˜๋Š” DSO์˜ ๊ฒฝ์šฐ feature๋ฅผ ๋ณ„๋„๋กœ ์ถ”์ถœํ•˜๋Š” ๊ณผ์ •์—†์ด ํŠน์ •
ํ”ฝ์…€์˜ ๋ฐ๊ธฐ ์˜ค์ฐจ๋ฅผ ๊ณ„์‚ฐํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํŠน์ • ํฌ์ธํŠธ๋ฅผ ์ธก์ •ํ•˜๋Š” ๋ฐฉ๋ฒ• ๋˜ํ•œ feature-based์™€
๋‹ฌ๋ผ์ง€๊ฒŒ ๋œ๋‹ค.
ORB-SLAM2์™€ ๊ฐ™์€ feature-based method์˜ ๊ฒฝ์šฐ ์ด๋ฏธ์ง€ ๋‚ด์—์„œ ํŠน์ • ํฌ์ธํŠธ๋ฅผ ์ถ”์ถœํ• 
๋•Œ feature extraction ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•˜์—ฌ ํ‚คํฌ์ธํŠธ๋ฅผ ์ถ”์ถœํ•œ๋‹ค. ๊ทธ ๋‹ค์Œ ํ•ด๋‹น ํ‚คํฌ์ธํŠธ๋ฅผ
3์ฐจ์› ์ ์œผ๋กœ Unprojection ํ•˜๊ณ  ๋‹ค์Œ ํ”„๋ ˆ์ž„์—์„œ ๋‹ค์‹œ 2์ฐจ์› ์ ์œผ๋กœ Reprojection
ํ•ด์„œ Reprojection Error๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์นด๋ฉ”๋ผ ๋ชจ์…˜์„ ๊ณ„์‚ฐํ•œ๋‹ค.
5.1. Pixel Selection โž” Make Histogram
DSO์—์„œ๋Š” ์ด๋ฏธ์ง€์—์„œ ํŠน์ • ํฌ์ธํŠธ๋ฅผ ์ถ”์ถœํ•˜๊ธฐ ์œ„ํ•ด Gradient Histogram ๋ฐฉ๋ฒ•๊ณผ
Dynamic Grid ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ–ˆ๋‹ค. ํ•ด๋‹น ๋ฐฉ๋ฒ•์€ DSO ๋…ผ๋ฌธ์—์„œ๋„ ์ž์„ธํ•œ ์„ค๋ช…์ด ๋ถ€์กฑํ•˜๊ณ 
์ฐธ๊ณ  ๋…ผ๋ฌธ์ด ์—†์œผ๋ฉฐ ๊ตฌ๊ธ€๋งํ•ด๋„ ๋‚˜์˜ค๋Š” ์ •๋ณด๊ฐ€ ๊ฑฐ์˜ ์—†์œผ๋ฏ€๋กœ ํ•ด๋‹น ์„น์…˜์—์„œ ๋‹ค๋ฃจ๋Š” ๋‚ด์šฉ์ด
100% ์ •ํ™•ํ•˜๋‹ค๊ณ  ๋ณผ ์ˆ˜ ์—†๋‹ค. ํ•ด๋‹น ๋‚ด์šฉ์€ ๋…ผ๋ฌธ์„ ๋ณผ ๋•Œ ์ฐธ๊ณ ์šฉ์œผ๋กœ ๋ณด๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™๋‹ค.
https://github.com/alalagong/DSO
์ฐธ์กฐ github
ORB-SLAM2์™€ ๊ฐ™์€ feature-based method์˜ ๊ฒฝ์šฐ ์ด๋ฏธ์ง€ ๋‚ด์—์„œ ํŠน์ • ํฌ์ธํŠธ๋ฅผ ์ถ”์ถœํ• 
๋•Œ feature extraction ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•˜์—ฌ ํ‚คํฌ์ธํŠธ๋ฅผ ์ถ”์ถœํ•œ๋‹ค. ๊ทธ ๋‹ค์Œ ํ•ด๋‹น ํ‚คํฌ์ธํŠธ๋ฅผ
3์ฐจ์› ์ ์œผ๋กœ Unprojection ํ•˜๊ณ  ๋‹ค์Œ ํ”„๋ ˆ์ž„์—์„œ ๋‹ค์‹œ 2์ฐจ์› ์ ์œผ๋กœ Reprojection
ํ•ด์„œ Reprojection Error๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์นด๋ฉ”๋ผ ๋ชจ์…˜์„ ๊ณ„์‚ฐํ•œ๋‹ค.
ํ•˜์ง€๋งŒ direct method๋ฅผ ์‚ฌ์šฉํ•˜๋Š” DSO์˜ ๊ฒฝ์šฐ feature๋ฅผ ๋ณ„๋„๋กœ ์ถ”์ถœํ•˜๋Š” ๊ณผ์ •์—†์ด ํŠน์ •
ํ”ฝ์…€์˜ ๋ฐ๊ธฐ ์˜ค์ฐจ๋ฅผ ๊ณ„์‚ฐํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํŠน์ • ํฌ์ธํŠธ๋ฅผ ์ธก์ •ํ•˜๋Š” ๋ฐฉ๋ฒ• ๋˜ํ•œ feature-based์™€
๋‹ฌ๋ผ์ง€๊ฒŒ ๋œ๋‹ค.
5.1. Pixel Selection โž” Make Histogram
1) ์šฐ์„  ์ƒˆ๋กœ์šด ์ด๋ฏธ์ง€๊ฐ€ ๋“ค์–ด์˜ค๋ฉด Gradient Histogram์„ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•ด ์ด๋ฏธ์ง€๋ฅผ
32x32 ์˜์—ญ์œผ๋กœ ๋‚˜๋ˆˆ๋‹ค. (grayscale image)
Make Histrogram
5.1. Pixel Selection โž” Make Histogram
1) ์šฐ์„  ์ƒˆ๋กœ์šด ์ด๋ฏธ์ง€๊ฐ€ ๋“ค์–ด์˜ค๋ฉด Gradient Histogram์„ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•ด ์ด๋ฏธ์ง€๋ฅผ
32x32 ์˜์—ญ์œผ๋กœ ๋‚˜๋ˆˆ๋‹ค. (grayscale image)
2) ํ•˜๋‚˜์˜ ์˜์—ญ์„ ํ™•๋Œ€ํ•ด์„œ ๋ณด๋ฉด ์•„๋ž˜ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด ์—ฌ๋Ÿฌ ํ”ฝ์…€๋“ค๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๊ณ  ๊ฐ ํ”ฝ์…€๋งˆ๋‹ค
๊ณ ์œ ์˜ ๋ฐ๊ธฐ(intensity) ๊ฐ’์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ์ด๋ฅผ ์ด์šฉํ•ด Image Gradient(dx,dy)๋ฅผ ๊ตฌํ•  ์ˆ˜
์žˆ๊ณ  ์ด๋ฅผ ์ด์šฉํ•ด ํ•ด๋‹น ์˜์—ญ์— ๋Œ€ํ•œ ํžˆ์Šคํ† ๊ทธ๋žจ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.
Make Histrogram
5.1. Pixel Selection โž” Make Histogram
1) ์šฐ์„  ์ƒˆ๋กœ์šด ์ด๋ฏธ์ง€๊ฐ€ ๋“ค์–ด์˜ค๋ฉด Gradient Histogram์„ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•ด ์ด๋ฏธ์ง€๋ฅผ
32x32 ์˜์—ญ์œผ๋กœ ๋‚˜๋ˆˆ๋‹ค. (grayscale image)
2) ํ•˜๋‚˜์˜ ์˜์—ญ์„ ํ™•๋Œ€ํ•ด์„œ ๋ณด๋ฉด ์•„๋ž˜ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด ์—ฌ๋Ÿฌ ํ”ฝ์…€๋“ค๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๊ณ  ๊ฐ ํ”ฝ์…€๋งˆ๋‹ค
๊ณ ์œ ์˜ ๋ฐ๊ธฐ(intensity) ๊ฐ’์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ์ด๋ฅผ ์ด์šฉํ•ด Image Gradient(dx,dy)๋ฅผ ๊ตฌํ•  ์ˆ˜
์žˆ๊ณ  ์ด๋ฅผ ์ด์šฉํ•ด ํ•ด๋‹น ์˜์—ญ์— ๋Œ€ํ•œ ํžˆ์Šคํ† ๊ทธ๋žจ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.
Make Histrogram
3) ์ด ๋•Œ Gradient ๋Š” ์›๋ž˜ 0~255 ๊ฐ’์„ ๊ฐ€์ง€์ง€๋งŒ DSO์—์„œ๋Š” ํ•œ ํ”ฝ์…€์˜
๊ฐ’์„ ์‚ฌ์šฉํ•˜์—ฌ ํžˆ์Šคํ† ๊ทธ๋žจ์„ ์ƒ์„ฑํ–ˆ๋‹ค.
bin์€ ์œ„์™€ ๊ฐ™์€ ๋ฒ”์œ„๋ฅผ ๊ฐ€์ง€์ง€๋งŒ ์ด๋ฅผ 1~50 ๋ฒ”์œ„๋กœ ์ œํ•œํ•˜์—ฌ 50์ด ๋„˜๋Š” ๊ฒฝ์šฐ 50์œผ๋กœ
์„ค์ •ํ•˜์—ฌ ํžˆ์Šคํ† ๊ทธ๋žจ์˜ ๋ฒ”์œ„๋ฅผ ๋‹จ์ˆœํ™”ํ–ˆ๋‹ค.
5.1. Pixel Selection โž” Make Histogram
4) ์ด๋Ÿฌํ•œ ํžˆ์Šคํ† ๊ทธ๋žจ์„ 32x32 ๋ชจ๋“  ์˜์—ญ์— ๋Œ€ํ•ด ๊ฐ๊ฐ ๊ณ„์‚ฐํ•œ๋‹ค.
Make Histrogram
5.1. Pixel Selection โž” Make Histogram
4) ์ด๋Ÿฌํ•œ ํžˆ์Šคํ† ๊ทธ๋žจ์„ 32x32 ๋ชจ๋“  ์˜์—ญ์— ๋Œ€ํ•ด ๊ฐ๊ฐ ๊ณ„์‚ฐํ•œ๋‹ค.
Make Histrogram
5) ํžˆ์Šคํ† ๊ทธ๋žจ์—์„œ Total count์˜ 50%๊ฐ€ ๋˜๋Š” bin ๊ฐ’์„ 1-50 ์ˆœ์„œ๋Œ€๋กœ ์ฐพ๋Š”๋‹ค.
์˜ˆ๋ฅผ๋“ค์–ด ํžˆ์Šคํ† ๊ทธ๋žจ์˜ ๋ชจ๋“  bin์—์„œ ์ด 1000๊ฐœ๊ฐ€ ์นด์šดํŠธ ๋˜์—ˆ๋‹ค๋ฉด 1๋ฒˆ bin๋ถ€ํ„ฐ ์ˆœ์„œ๋Œ€๋กœ
์นด์šดํŠธ ๊ฐ’์„ ๋นผ๋ฉด์„œ ํ•ด๋‹น ๊ฐ’์ด 500๋ณด๋‹ค ์ž‘์•„์ง€๋Š” bin์„ threshold๋กœ ์„ค์ •ํ•œ๋‹ค.
๋˜ํ•œ ์ฃผ๋ณ€ 3x3 ์˜์—ญ์˜ threshold์˜ ํ‰๊ท ์„ ์‚ฌ์šฉํ•œ smoothed threshold ๊ฐ’ ๋˜ํ•œ ์„ค์ •ํ•œ๋‹ค.
threshold: 1~50
smoothed threshold: 1~50
ths
thsSmoothed
ths
thsSmoothed
ths
thsSmoothed
๊ฐ ์˜์—ญ๋งˆ๋‹ค ths, thsSmoothed๋ฅผ ๊ณ„์‚ฐํ•œ๋‹ค.
โ€ฆ
5.1. Pixel Selection โž” Make Histogram
ํ•œ ์ด๋ฏธ์ง€์— ๋Œ€ํ•œ 32x32 ํžˆ์Šคํ† ๊ทธ๋žจ์„ ์ƒ์„ฑํ•˜๊ณ  threshold ๊ฐ’์„ ์„ค์ •ํ•˜์˜€์œผ๋ฉด ๋‹ค์Œ์œผ๋กœ
Dynamic Grid ๋ฐฉ๋ฒ•์„ ํ†ตํ•ด ์ด๋ฏธ์ง€ ๋‚ด์—์„œ ํ”ฝ์…€์„ ์„ ํƒํ•œ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด High gradient ์˜์—ญ์—
๋Œ€๋ถ€๋ถ„์˜ ํฌ์ธํŠธ๊ฐ€ ์ถ”์ถœ๋˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•˜๊ณ  ํ•œ ์ด๋ฏธ์ง€ ๋‚ด์—์„œ ์ถ”์ถœํ•  ์ˆ˜ ์žˆ๋Š” ์ด ํฌ์ธํŠธ์˜
๊ฐœ์ˆ˜(N=2000)๋ฅผ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ์žฅ์ ์„ ์ง€๋‹Œ๋‹ค.
5.2. Pixel Selection โž” Dynamic Grid
ํ•œ ์ด๋ฏธ์ง€์— ๋Œ€ํ•œ 32x32 ํžˆ์Šคํ† ๊ทธ๋žจ์„ ์ƒ์„ฑํ•˜๊ณ  threshold ๊ฐ’์„ ์„ค์ •ํ•˜์˜€์œผ๋ฉด ๋‹ค์Œ์œผ๋กœ
Dynamic Grid ๋ฐฉ๋ฒ•์„ ํ†ตํ•ด ์ด๋ฏธ์ง€ ๋‚ด์—์„œ ํ”ฝ์…€์„ ์„ ํƒํ•œ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด High gradient ์˜์—ญ์—
๋Œ€๋ถ€๋ถ„์˜ ํฌ์ธํŠธ๊ฐ€ ์ถ”์ถœ๋˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•˜๊ณ  ํ•œ ์ด๋ฏธ์ง€ ๋‚ด์—์„œ ์ถ”์ถœํ•  ์ˆ˜ ์žˆ๋Š” ์ด ํฌ์ธํŠธ์˜
๊ฐœ์ˆ˜(N=2000)๋ฅผ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ์žฅ์ ์„ ์ง€๋‹Œ๋‹ค.
Dynamic Grid
1) ํ•˜๋‚˜์˜ Grid ์˜์—ญ์˜ ํฌ๊ธฐ๋ฅผ ์„ค์ •ํ•œ๋‹ค. DSO์—์„œ๋Š” ์ดˆ๊ธฐ๊ฐ’์œผ๋กœ 12x12 [pixel]๋ฅผ ์‚ฌ์šฉํ–ˆ๋‹ค.
640x480 ์ด๋ฏธ์ง€ ๊ธฐ์ค€์œผ๋กœ ๋ดค์„ ๋•Œ ์ผ๋ฐ˜์ ์œผ๋กœ 32x32 histogram ์˜์—ญ๋ณด๋‹ค ์ž‘์€ ํฌ๊ธฐ๋ฅผ
์‚ฌ์šฉํ•œ๋‹ค. Grid ํฌ๊ธฐ๋ฅผ ์„ค์ •ํ–ˆ์œผ๋ฉด ์ด๋ฏธ์ง€ ์ „์ฒด๋ฅผ Grid๋กœ ๋‚˜๋ˆˆ๋‹ค.
5.2. Pixel Selection โž” Dynamic Grid
ํ•œ ์ด๋ฏธ์ง€์— ๋Œ€ํ•œ 32x32 ํžˆ์Šคํ† ๊ทธ๋žจ์„ ์ƒ์„ฑํ•˜๊ณ  threshold ๊ฐ’์„ ์„ค์ •ํ•˜์˜€์œผ๋ฉด ๋‹ค์Œ์œผ๋กœ
Dynamic Grid ๋ฐฉ๋ฒ•์„ ํ†ตํ•ด ์ด๋ฏธ์ง€ ๋‚ด์—์„œ ํ”ฝ์…€์„ ์„ ํƒํ•œ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด High gradient ์˜์—ญ์—
๋Œ€๋ถ€๋ถ„์˜ ํฌ์ธํŠธ๊ฐ€ ์ถ”์ถœ๋˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•˜๊ณ  ํ•œ ์ด๋ฏธ์ง€ ๋‚ด์—์„œ ์ถ”์ถœํ•  ์ˆ˜ ์žˆ๋Š” ์ด ํฌ์ธํŠธ์˜
๊ฐœ์ˆ˜(N=2000)๋ฅผ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ์žฅ์ ์„ ์ง€๋‹Œ๋‹ค.
Dynamic Grid
1) ํ•˜๋‚˜์˜ Grid ์˜์—ญ์˜ ํฌ๊ธฐ๋ฅผ ์„ค์ •ํ•œ๋‹ค. DSO์—์„œ๋Š” ์ดˆ๊ธฐ๊ฐ’์œผ๋กœ 12x12 [pixel]๋ฅผ ์‚ฌ์šฉํ–ˆ๋‹ค.
640x480 ์ด๋ฏธ์ง€ ๊ธฐ์ค€์œผ๋กœ ๋ดค์„ ๋•Œ ์ผ๋ฐ˜์ ์œผ๋กœ 32x32 histogram ์˜์—ญ๋ณด๋‹ค ์ž‘์€ ํฌ๊ธฐ๋ฅผ
์‚ฌ์šฉํ•œ๋‹ค. Grid ํฌ๊ธฐ๋ฅผ ์„ค์ •ํ–ˆ์œผ๋ฉด ์ด๋ฏธ์ง€ ์ „์ฒด๋ฅผ Grid๋กœ ๋‚˜๋ˆˆ๋‹ค.
2) ํ•œ Grid ์˜์—ญ์„ ํ™•๋Œ€ํ•ด์„œ ๋ณด๋ฉด ์•„๋ž˜์™€ ๊ฐ™๋‹ค.
https://github.com/alalagong/DSO
์ฐธ์กฐ github
5.2. Pixel Selection โž” Dynamic Grid
ํ•œ ์ด๋ฏธ์ง€์— ๋Œ€ํ•œ 32x32 ํžˆ์Šคํ† ๊ทธ๋žจ์„ ์ƒ์„ฑํ•˜๊ณ  threshold ๊ฐ’์„ ์„ค์ •ํ•˜์˜€์œผ๋ฉด ๋‹ค์Œ์œผ๋กœ
Dynamic Grid ๋ฐฉ๋ฒ•์„ ํ†ตํ•ด ์ด๋ฏธ์ง€ ๋‚ด์—์„œ ํ”ฝ์…€์„ ์„ ํƒํ•œ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด High gradient ์˜์—ญ์—
๋Œ€๋ถ€๋ถ„์˜ ํฌ์ธํŠธ๊ฐ€ ์ถ”์ถœ๋˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•˜๊ณ  ํ•œ ์ด๋ฏธ์ง€ ๋‚ด์—์„œ ์ถ”์ถœํ•  ์ˆ˜ ์žˆ๋Š” ์ด ํฌ์ธํŠธ์˜
๊ฐœ์ˆ˜(N=2000)๋ฅผ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ์žฅ์ ์„ ์ง€๋‹Œ๋‹ค.
Dynamic Grid
1) ํ•˜๋‚˜์˜ Grid ์˜์—ญ์˜ ํฌ๊ธฐ๋ฅผ ์„ค์ •ํ•œ๋‹ค. DSO์—์„œ๋Š” ์ดˆ๊ธฐ๊ฐ’์œผ๋กœ 12x12 [pixel]๋ฅผ ์‚ฌ์šฉํ–ˆ๋‹ค.
640x480 ์ด๋ฏธ์ง€ ๊ธฐ์ค€์œผ๋กœ ๋ดค์„ ๋•Œ ์ผ๋ฐ˜์ ์œผ๋กœ 32x32 histogram ์˜์—ญ๋ณด๋‹ค ์ž‘์€ ํฌ๊ธฐ๋ฅผ
์‚ฌ์šฉํ•œ๋‹ค. Grid ํฌ๊ธฐ๋ฅผ ์„ค์ •ํ–ˆ์œผ๋ฉด ์ด๋ฏธ์ง€ ์ „์ฒด๋ฅผ Grid๋กœ ๋‚˜๋ˆˆ๋‹ค.
2) ํ•œ Grid ์˜์—ญ์„ ํ™•๋Œ€ํ•ด์„œ ๋ณด๋ฉด ์•„๋ž˜์™€ ๊ฐ™๋‹ค. ์ด ๋•Œ ํ•œ ์˜์—ญ์—์„œ ์ด 3๊ฐœ์˜ ํ”ผ๋ผ๋ฏธ๋“œ ์ด๋ฏธ์ง€์˜
Gradient๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. Alalagong๋‹˜์˜ ์ž๋ฃŒ๋ฅผ ์ฐธ์กฐํ•˜์—ฌ ํ”ผ๋ผ๋ฏธ๋“œ ๋ณ„๋กœ ํŒŒ๋ž€์ƒ‰(Lv2), ์ดˆ๋ก์ƒ‰(Lv1),
๋นจ๊ฐ„์ƒ‰(Lv0,์›๋ณธ)๋กœ ํ‘œ์‹œํ•˜๋ฉด ์•„๋ž˜ ๊ทธ๋ฆผ๊ณผ ๊ฐ™๊ณ  ์‹œ๊ณ„๋ฐฉํ–ฅ ์ˆœ์„œ๋Œ€๋กœ ํ•ด๋‹น ์˜์—ญ์˜ ํ”ฝ์…€์„ ํƒ์ƒ‰ํ•œ๋‹ค.
https://github.com/alalagong/DSO
์ฐธ์กฐ github
5.2. Pixel Selection โž” Dynamic Grid
ํ•œ ์ด๋ฏธ์ง€์— ๋Œ€ํ•œ 32x32 ํžˆ์Šคํ† ๊ทธ๋žจ์„ ์ƒ์„ฑํ•˜๊ณ  threshold ๊ฐ’์„ ์„ค์ •ํ•˜์˜€์œผ๋ฉด ๋‹ค์Œ์œผ๋กœ
Dynamic Grid ๋ฐฉ๋ฒ•์„ ํ†ตํ•ด ์ด๋ฏธ์ง€ ๋‚ด์—์„œ ํ”ฝ์…€์„ ์„ ํƒํ•œ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด High gradient ์˜์—ญ์—
๋Œ€๋ถ€๋ถ„์˜ ํฌ์ธํŠธ๊ฐ€ ์ถ”์ถœ๋˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•˜๊ณ  ํ•œ ์ด๋ฏธ์ง€ ๋‚ด์—์„œ ์ถ”์ถœํ•  ์ˆ˜ ์žˆ๋Š” ์ด ํฌ์ธํŠธ์˜
๊ฐœ์ˆ˜(N=2000)๋ฅผ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ์žฅ์ ์„ ์ง€๋‹Œ๋‹ค.
Dynamic Grid
1) ํ•˜๋‚˜์˜ Grid ์˜์—ญ์˜ ํฌ๊ธฐ๋ฅผ ์„ค์ •ํ•œ๋‹ค. DSO์—์„œ๋Š” ์ดˆ๊ธฐ๊ฐ’์œผ๋กœ 12x12 [pixel]๋ฅผ ์‚ฌ์šฉํ–ˆ๋‹ค.
640x480 ์ด๋ฏธ์ง€ ๊ธฐ์ค€์œผ๋กœ ๋ดค์„ ๋•Œ ์ผ๋ฐ˜์ ์œผ๋กœ 32x32 histogram ์˜์—ญ๋ณด๋‹ค ์ž‘์€ ํฌ๊ธฐ๋ฅผ
์‚ฌ์šฉํ•œ๋‹ค. Grid ํฌ๊ธฐ๋ฅผ ์„ค์ •ํ–ˆ์œผ๋ฉด ์ด๋ฏธ์ง€ ์ „์ฒด๋ฅผ Grid๋กœ ๋‚˜๋ˆˆ๋‹ค.
2) ํ•œ Grid ์˜์—ญ์„ ํ™•๋Œ€ํ•ด์„œ ๋ณด๋ฉด ์•„๋ž˜์™€ ๊ฐ™๋‹ค. ์ด ๋•Œ ํ•œ ์˜์—ญ์—์„œ ์ด 3๊ฐœ์˜ ํ”ผ๋ผ๋ฏธ๋“œ ์ด๋ฏธ์ง€์˜
Gradient๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. Alalagong๋‹˜์˜ ์ž๋ฃŒ๋ฅผ ์ฐธ์กฐํ•˜์—ฌ ํ”ผ๋ผ๋ฏธ๋“œ ๋ณ„๋กœ ํŒŒ๋ž€์ƒ‰(Lv2), ์ดˆ๋ก์ƒ‰(Lv1),
๋นจ๊ฐ„์ƒ‰(Lv0,์›๋ณธ)๋กœ ํ‘œ์‹œํ•˜๋ฉด ์•„๋ž˜ ๊ทธ๋ฆผ๊ณผ ๊ฐ™๊ณ  ์‹œ๊ณ„๋ฐฉํ–ฅ ์ˆœ์„œ๋Œ€๋กœ ํ•ด๋‹น ์˜์—ญ์˜ ํ”ฝ์…€์„ ํƒ์ƒ‰ํ•œ๋‹ค.
https://github.com/alalagong/DSO
์ฐธ์กฐ github
1 2
3 4
11 12
13 14
111 112 113
114 115 116
117 118 119
5.2. Pixel Selection โž” Dynamic Grid
Dynamic Grid
1 2
3 4
11 12
13 14
111 112 113
114 115 116
117 118 119
3) ํ”ผ๋ผ๋ฏธ๋“œ ๋ ˆ๋ฒจ์ด ๋‚ฎ์€ ๊ณณ(Lv0,์›๋ณธ)๋ถ€ํ„ฐ ํ•œ ํ”ฝ์…€ ์”ฉ ๋ฃจํ”„๋ฅผ ๋Œ๋ฉด์„œ ํ•ด๋‹น ์˜์—ญ ํžˆ์Šคํ† ๊ทธ๋žจ์˜
Smoothed threshold ๊ฐ’๊ณผ ํ”ฝ์…€์˜ Squared Gradient ๊ฐ’์„ ๋น„๊ตํ•œ๋‹ค.
(111โ†’112โ†’113โ†’โ€ฆโ†’119โ†’11โ†’1โ†’121โ†’122โ†’123โ†’โ€ฆโ†’129โ†’12โ†’2โ†’โ€ฆ)
5.2. Pixel Selection โž” Dynamic Grid
์ด ๋•Œ, ํŠน์ • ํ”ฝ์…€ ๊ฐ’์ด Smoothed threshold๋ณด๋‹ค ํฌ๋ฉด ๋‹ค์Œ ๋‹จ๊ณ„๋กœ์จ ํ•ด๋‹น ํ”ฝ์…€์˜ ๊ฐ’๊ณผ
๋žœ๋คํ•œ ๋ฐฉํ–ฅ๋ฒกํ„ฐ์ธ randdir๊ณผ norm์„ ๊ณ„์‚ฐํ•œ ํ›„ ํ•ด๋‹น ๊ฐ’์ด 0๋ณด๋‹ค ํฐ ์ง€ ๊ฒ€์‚ฌํ•œ๋‹ค.
์ตœ์ข…์ ์œผ๋กœ norm๊นŒ์ง€ ํŠน์ •๊ฐ’๋ณด๋‹ค ํฌ๋‹ค๋ฉด ํ•ด๋‹น ํ”ฝ์…€์„ ๋ฅผ ๋Œ€ํ‘œํ•˜๋Š” ํ”ฝ์…€๋กœ ์„ ์ •ํ•˜๊ณ  ๋ฃจํ”„๋ฅผ
ํƒˆ์ถœํ•œ๋‹ค.
Dynamic Grid
1 2
3 4
11 12
13 14
111 112 113
114 115 116
117 118 119
3) ํ”ผ๋ผ๋ฏธ๋“œ ๋ ˆ๋ฒจ์ด ๋‚ฎ์€ ๊ณณ(Lv0,์›๋ณธ)๋ถ€ํ„ฐ ํ•œ ํ”ฝ์…€ ์”ฉ ๋ฃจํ”„๋ฅผ ๋Œ๋ฉด์„œ ํ•ด๋‹น ์˜์—ญ ํžˆ์Šคํ† ๊ทธ๋žจ์˜
Smoothed threshold ๊ฐ’๊ณผ ํ”ฝ์…€์˜ Squared Gradient ๊ฐ’์„ ๋น„๊ตํ•œ๋‹ค.
(111โ†’112โ†’113โ†’โ€ฆโ†’119โ†’11โ†’1โ†’121โ†’122โ†’123โ†’โ€ฆโ†’129โ†’12โ†’2โ†’โ€ฆ)
5.2. Pixel Selection โž” Dynamic Grid
์ด ๋•Œ, ํŠน์ • ํ”ฝ์…€ ๊ฐ’์ด Smoothed threshold๋ณด๋‹ค ํฌ๋ฉด ๋‹ค์Œ ๋‹จ๊ณ„๋กœ์จ ํ•ด๋‹น ํ”ฝ์…€์˜ ๊ฐ’๊ณผ
๋žœ๋คํ•œ ๋ฐฉํ–ฅ๋ฒกํ„ฐ์ธ randdir๊ณผ norm์„ ๊ณ„์‚ฐํ•œ ํ›„ ํ•ด๋‹น ๊ฐ’์ด 0๋ณด๋‹ค ํฐ ์ง€ ๊ฒ€์‚ฌํ•œ๋‹ค.
์ตœ์ข…์ ์œผ๋กœ norm๊นŒ์ง€ ํŠน์ •๊ฐ’๋ณด๋‹ค ํฌ๋‹ค๋ฉด ํ•ด๋‹น ํ”ฝ์…€์„ ๋ฅผ ๋Œ€ํ‘œํ•˜๋Š” ํ”ฝ์…€๋กœ ์„ ์ •ํ•˜๊ณ  ๋ฃจํ”„๋ฅผ
ํƒˆ์ถœํ•œ๋‹ค.
Dynamic Grid
1 2
3 4
11 12
13 14
111 112 113
114 115 116
117 118 119
ex) ๋งŒ์•ฝ 115 ํ”ฝ์…€์˜ ๊ฐ’์ด Smoothed threshold๋ณด๋‹ค ํฐ ๊ฒฝ์šฐ
๋ฅผ ๊ฒ€์‚ฌํ•˜๊ณ  ์ด ๋˜ํ•œ ๋งŒ์กฑํ•˜๋Š” ๊ฒฝ์šฐ 115 ํ”ฝ์…€์„ ์˜์—ญ์˜ ๋Œ€ํ‘œ ํ”ฝ์…€๋กœ ์„ ์ •ํ•œ๋‹ค.
๋žœ๋คํ•œ ๋ฐฉํ–ฅ๋ฒกํ„ฐ์™€ norm์„ ๊ณ„์‚ฐํ•จ์œผ๋กœ์จ ํŠน์ • ํ”ฝ์…€ ์˜์—ญ์— ํฌ์ธํŠธ ์ถ”์ถœ์ด ๋ชฐ๋ฆฌ๋Š” ํ˜„์ƒ์„
๋ฐฉ์ง€ํ•œ๋‹ค.
3) ํ”ผ๋ผ๋ฏธ๋“œ ๋ ˆ๋ฒจ์ด ๋‚ฎ์€ ๊ณณ(Lv0,์›๋ณธ)๋ถ€ํ„ฐ ํ•œ ํ”ฝ์…€ ์”ฉ ๋ฃจํ”„๋ฅผ ๋Œ๋ฉด์„œ ํ•ด๋‹น ์˜์—ญ ํžˆ์Šคํ† ๊ทธ๋žจ์˜
Smoothed threshold ๊ฐ’๊ณผ ํ”ฝ์…€์˜ Squared Gradient ๊ฐ’์„ ๋น„๊ตํ•œ๋‹ค.
(111โ†’112โ†’113โ†’โ€ฆโ†’119โ†’11โ†’1โ†’121โ†’122โ†’123โ†’โ€ฆโ†’129โ†’12โ†’2โ†’โ€ฆ)
5.2. Pixel Selection โž” Dynamic Grid
Dynamic Grid
4) ๋งŒ์•ฝ ํ”ฝ์…€์ด Smoothed threshold๋ณด๋‹ค ์ž‘์€ ๊ฒฝ์šฐ Lv0โ†’Lv1โ†’Lv2 ์ˆœ์„œ๋กœ ๊ฐ’์„ ๋น„๊ตํ•œ๋‹ค.
์ด ๋•Œ ๋ ˆ๋ฒจ์ด ๋†’์„์ˆ˜๋ก threshold์— 0.75๋ฅผ ๊ณฑํ•œ ํ›„ ํ”ฝ์…€์˜ ๋ฐ๊ธฐ ๊ฐ’๊ณผ ๋น„๊ตํ•˜์—ฌ ๋†’์€ ํ”ผ๋ผ๋ฏธ๋“œ
๋ ˆ๋ฒจ์˜ ํ”ฝ์…€์ผ์ˆ˜๋ก ์ถ”์ถœ๋  ํ™•๋ฅ ์„ ๋†’์ธ๋‹ค.
5.2. Pixel Selection โž” Dynamic Grid
Dynamic Grid
5) ๋ชจ๋“  ํ”ฝ์…€์„ ์ „๋ถ€ ๊ฒ€์‚ฌํ–ˆ์Œ์—๋„ ์ถ”์ถœํ•œ ํฌ์ธํŠธ์˜ ์ดํ•ฉ์ด ์›ํ•˜๋Š” ์ด๋Ÿ‰๋ณด๋‹ค ์ ์€ ๊ฒฝ์šฐ
์—๋Š” 8x8๋กœ ํ•œ Grid์˜ ํฌ๊ธฐ๋ฅผ ์ค„์ธ ํ›„ ๋‹ค์‹œ ๊ฒ€์ƒ‰ํ•˜๊ณ  ๋งŒ์•ฝ ์ถ”์ถœํ•œ ํฌ์ธํŠธ๊ฐ€
๋„ˆ๋ฌด ๋งŽ์€ ๊ฒฝ์šฐ ์—๋Š” 16x16์˜ Grid ํฌ๊ธฐ๋กœ ํฌ์ธํŠธ๋ฅผ ๋‹ค์‹œ ์ถ”์ถœํ•œ๋‹ค.
Original increasedecrease
4) ๋งŒ์•ฝ ํ”ฝ์…€์ด Smoothed threshold๋ณด๋‹ค ์ž‘์€ ๊ฒฝ์šฐ Lv0โ†’Lv1โ†’Lv2 ์ˆœ์„œ๋กœ ๊ฐ’์„ ๋น„๊ตํ•œ๋‹ค.
์ด ๋•Œ ๋ ˆ๋ฒจ์ด ๋†’์„์ˆ˜๋ก threshold์— 0.75๋ฅผ ๊ณฑํ•œ ํ›„ ํ”ฝ์…€์˜ ๋ฐ๊ธฐ ๊ฐ’๊ณผ ๋น„๊ตํ•˜์—ฌ ๋†’์€ ํ”ผ๋ผ๋ฏธ๋“œ
๋ ˆ๋ฒจ์˜ ํ”ฝ์…€์ผ์ˆ˜๋ก ์ถ”์ถœ๋  ํ™•๋ฅ ์„ ๋†’์ธ๋‹ค.
5.2. Pixel Selection โž” Dynamic Grid
Dynamic Grid
6) ํ•œ ์ด๋ฏธ์ง€์—์„œ ๋ชจ๋“  Grid์— ๋Œ€ํ•ด ๋ฃจํ”„๋ฅผ ๋Œ๋ฉด์„œ Smoothed threshold๋ฅผ ํ†ต๊ณผํ•œ
ํ”ฝ์…€๋“ค๋งŒ Pixel map์— ์ €์žฅํ•œ๋‹ค.
5.2. Pixel Selection โž” Dynamic Grid
Dynamic Grid
6) ํ•œ ์ด๋ฏธ์ง€์—์„œ ๋ชจ๋“  Grid์— ๋Œ€ํ•ด ๋ฃจํ”„๋ฅผ ๋Œ๋ฉด์„œ Smoothed threshold๋ฅผ ํ†ต๊ณผํ•œ
ํ”ฝ์…€๋“ค๋งŒ Pixel map์— ์ €์žฅํ•œ๋‹ค.
Pixel map์—๋Š” Lv0์—์„œ ์ถ”์ถœ๋œ ํฌ์ธํŠธ์ผ ๊ฒฝ์šฐ 1, Lv1์—์„œ ์ถ”์ถœ๋œ ํฌ์ธํŠธ๋Š” 2,
Lv3์—์„œ ์ถ”์ถœ๋œ ํฌ์ธํŠธ๋Š” 4์˜ ๊ฐ’์ด ํ•ด๋‹น ํ”ฝ์…€ ์œ„์น˜์— ์ €์žฅ๋œ๋‹ค. ํฌ์ธํŠธ๊ฐ€ ์ถ”์ถœ๋˜์ง€
์•Š์€ ์˜์—ญ์˜ ๊ฐ’์€ ์ €์žฅ๋˜์ง€ ์•Š๋Š”๋‹ค. (== 0)
๋ชจ๋“  ํ”ฝ์…€์„ ๊ทธ๋ฆฌ์ง€ ์•Š๊ณ  12x12 Grid๋งŒ ๊ทธ๋ฆฐ ๊ทธ๋ฆผ
๊ธ€์”จ๊ฐ€ Grid ์˜์—ญ๋ณด๋‹ค ์ž‘์€ ์ด์œ ๋Š” ๊ธ€์”จ๊ฐ€ ํ•œ ํ”ฝ์…€์„ ์˜๋ฏธํ•˜๊ธฐ ๋•Œ๋ฌธ
1 2
4
1
24
1
2
4
2
1
Pixel map
2
1
5.2. Pixel Selection โž” Dynamic Grid
6. DSO Code Review
for(int idx=0;idx<patternNum;idx++)
{
int dx = patternP[idx][0];
int dy = patternP[idx][1];
Vec3f pt = RKi * Vec3f(point->u+dx, point->v+dy, 1) + t*point->idepth_new;
float u = pt[0] / pt[2];
float v = pt[1] / pt[2];
float Ku = fxl * u + cxl;
float Kv = fyl * v + cyl;
float new_idepth = point->idepth_new/pt[2];
if(!(Ku > 1 && Kv > 1 && Ku < wl-2 && Kv < hl-2 && new_idepth > 0))
{
isGood = false;
break;
}
Vec3f hitColor = getInterpolatedElement33(colorNew, Ku, Kv, wl);
//Vec3f hitColor = getInterpolatedElement33BiCub(colorNew, Ku, Kv, wl);
//float rlR = colorRef[point->u+dx + (point->v+dy) * wl][0];
float rlR = getInterpolatedElement31(colorRef, point->u+dx, point->v+dy, wl);
if(!std::isfinite(rlR) || !std::isfinite((float)hitColor[0]))
{
isGood = false;
break;
}
float residual = hitColor[0] - r2new_aff[0] * rlR - r2new_aff[1];
float hw = fabs(residual) < setting_huberTH ? 1 : setting_huberTH / fabs(residual);
energy += hw *residual*residual*(2-hw);
CoarseInitializer.cpp::calcResAndGS()::L385
ํŒจํ„ด์˜ ๊ฐœ์ˆ˜(8๊ฐœ)๋งŒํผ ๋ฃจํ”„๋ฅผ ๋Œ๋ฉด์„œ
๊ฐ ์ ๋“ค์˜ residual์„ ๊ณ„์‚ฐํ•œ๋‹ค.
CODE REVIEW
1.1. Initialization โž” Error Function Formulation
for(int idx=0;idx<patternNum;idx++)
{
int dx = patternP[idx][0];
int dy = patternP[idx][1];
Vec3f pt = RKi * Vec3f(point->u+dx, point->v+dy, 1) + t*point->idepth_new;
float u = pt[0] / pt[2];
float v = pt[1] / pt[2];
float Ku = fxl * u + cxl;
float Kv = fyl * v + cyl;
float new_idepth = point->idepth_new/pt[2];
if(!(Ku > 1 && Kv > 1 && Ku < wl-2 && Kv < hl-2 && new_idepth > 0))
{
isGood = false;
break;
}
Vec3f hitColor = getInterpolatedElement33(colorNew, Ku, Kv, wl);
//Vec3f hitColor = getInterpolatedElement33BiCub(colorNew, Ku, Kv, wl);
//float rlR = colorRef[point->u+dx + (point->v+dy) * wl][0];
float rlR = getInterpolatedElement31(colorRef, point->u+dx, point->v+dy, wl);
if(!std::isfinite(rlR) || !std::isfinite((float)hitColor[0]))
{
isGood = false;
break;
}
float residual = hitColor[0] - r2new_aff[0] * rlR - r2new_aff[1];
float hw = fabs(residual) < setting_huberTH ? 1 : setting_huberTH / fabs(residual);
energy += hw *residual*residual*(2-hw);
CoarseInitializer.cpp::calcResAndGS()::L385
๋‹ค์Œ์„ ์ˆœ์„œ๋Œ€๋กœ ๊ณ„์‚ฐํ•œ๋‹ค.
๏ƒง ํ•ด๋‹น ๋ถ€๋ถ„ ๋ถˆํ™•์‹ค
CODE REVIEW
1.1. Initialization โž” Error Function Formulation
for(int idx=0;idx<patternNum;idx++)
{
int dx = patternP[idx][0];
int dy = patternP[idx][1];
Vec3f pt = RKi * Vec3f(point->u+dx, point->v+dy, 1) + t*point->idepth_new;
float u = pt[0] / pt[2];
float v = pt[1] / pt[2];
float Ku = fxl * u + cxl;
float Kv = fyl * v + cyl;
float new_idepth = point->idepth_new/pt[2];
if(!(Ku > 1 && Kv > 1 && Ku < wl-2 && Kv < hl-2 && new_idepth > 0))
{
isGood = false;
break;
}
Vec3f hitColor = getInterpolatedElement33(colorNew, Ku, Kv, wl);
//Vec3f hitColor = getInterpolatedElement33BiCub(colorNew, Ku, Kv, wl);
//float rlR = colorRef[point->u+dx + (point->v+dy) * wl][0];
float rlR = getInterpolatedElement31(colorRef, point->u+dx, point->v+dy, wl);
if(!std::isfinite(rlR) || !std::isfinite((float)hitColor[0]))
{
isGood = false;
break;
}
float residual = hitColor[0] - r2new_aff[0] * rlR - r2new_aff[1];
float hw = fabs(residual) < setting_huberTH ? 1 : setting_huberTH / fabs(residual);
energy += hw *residual*residual*(2-hw);
CoarseInitializer.cpp::calcResAndGS()::L385
์ƒˆ๋กœ ๊ณ„์‚ฐํ•œ ํ”ฝ์…€์ด ์ด๋ฏธ์ง€ ๋‚ด๋ถ€์— ์žˆ๋Š”์ง€
์ƒˆ๋กœ ๊ณ„์‚ฐํ•œ idepth ๊ฐ’์ด 0๋ณด๋‹ค ํฐ ์ง€ ํ™•์ธ
CODE REVIEW
1.1. Initialization โž” Error Function Formulation
Direct Sparse Odometry (DSO) Review
Direct Sparse Odometry (DSO) Review
Direct Sparse Odometry (DSO) Review
Direct Sparse Odometry (DSO) Review
Direct Sparse Odometry (DSO) Review
Direct Sparse Odometry (DSO) Review
Direct Sparse Odometry (DSO) Review
Direct Sparse Odometry (DSO) Review
Direct Sparse Odometry (DSO) Review
Direct Sparse Odometry (DSO) Review
Direct Sparse Odometry (DSO) Review
Direct Sparse Odometry (DSO) Review
Direct Sparse Odometry (DSO) Review
Direct Sparse Odometry (DSO) Review
Direct Sparse Odometry (DSO) Review
Direct Sparse Odometry (DSO) Review
Direct Sparse Odometry (DSO) Review
Direct Sparse Odometry (DSO) Review
Direct Sparse Odometry (DSO) Review
Direct Sparse Odometry (DSO) Review
Direct Sparse Odometry (DSO) Review
Direct Sparse Odometry (DSO) Review
Direct Sparse Odometry (DSO) Review
Direct Sparse Odometry (DSO) Review
Direct Sparse Odometry (DSO) Review
Direct Sparse Odometry (DSO) Review
Direct Sparse Odometry (DSO) Review
Direct Sparse Odometry (DSO) Review
Direct Sparse Odometry (DSO) Review
Direct Sparse Odometry (DSO) Review
Direct Sparse Odometry (DSO) Review
Direct Sparse Odometry (DSO) Review
Direct Sparse Odometry (DSO) Review
Direct Sparse Odometry (DSO) Review
Direct Sparse Odometry (DSO) Review
Direct Sparse Odometry (DSO) Review
Direct Sparse Odometry (DSO) Review
Direct Sparse Odometry (DSO) Review
Direct Sparse Odometry (DSO) Review
Direct Sparse Odometry (DSO) Review
Direct Sparse Odometry (DSO) Review
Direct Sparse Odometry (DSO) Review
Direct Sparse Odometry (DSO) Review
Direct Sparse Odometry (DSO) Review
Direct Sparse Odometry (DSO) Review
Direct Sparse Odometry (DSO) Review
Direct Sparse Odometry (DSO) Review
Direct Sparse Odometry (DSO) Review
Direct Sparse Odometry (DSO) Review
Direct Sparse Odometry (DSO) Review
Direct Sparse Odometry (DSO) Review
Direct Sparse Odometry (DSO) Review
Direct Sparse Odometry (DSO) Review
Direct Sparse Odometry (DSO) Review
Direct Sparse Odometry (DSO) Review
Direct Sparse Odometry (DSO) Review
Direct Sparse Odometry (DSO) Review
Direct Sparse Odometry (DSO) Review
Direct Sparse Odometry (DSO) Review
Direct Sparse Odometry (DSO) Review
Direct Sparse Odometry (DSO) Review
Direct Sparse Odometry (DSO) Review
Direct Sparse Odometry (DSO) Review
Direct Sparse Odometry (DSO) Review
Direct Sparse Odometry (DSO) Review
Direct Sparse Odometry (DSO) Review
Direct Sparse Odometry (DSO) Review
Direct Sparse Odometry (DSO) Review
Direct Sparse Odometry (DSO) Review
Direct Sparse Odometry (DSO) Review
Direct Sparse Odometry (DSO) Review
Direct Sparse Odometry (DSO) Review
Direct Sparse Odometry (DSO) Review
Direct Sparse Odometry (DSO) Review
Direct Sparse Odometry (DSO) Review
Direct Sparse Odometry (DSO) Review
Direct Sparse Odometry (DSO) Review
Direct Sparse Odometry (DSO) Review
Direct Sparse Odometry (DSO) Review

More Related Content

What's hot

Gradient descent method
Gradient descent methodGradient descent method
Gradient descent methodProf. Neeta Awasthy
ย 
Artificial fish swarm optimization
Artificial fish swarm optimizationArtificial fish swarm optimization
Artificial fish swarm optimizationAhmed Fouad Ali
ย 
Hyperparameter Optimization for Machine Learning
Hyperparameter Optimization for Machine LearningHyperparameter Optimization for Machine Learning
Hyperparameter Optimization for Machine LearningFrancesco Casalegno
ย 
Ch.5 machine learning basics
Ch.5  machine learning basicsCh.5  machine learning basics
Ch.5 machine learning basicsJinho Lee
ย 
Particle swarm optimization
Particle swarm optimizationParticle swarm optimization
Particle swarm optimizationAbhishek Agrawal
ย 
๊ฐ•ํ™”ํ•™์Šต ๊ธฐ์ดˆ_2(Deep sarsa, Deep Q-learning, DQN)
๊ฐ•ํ™”ํ•™์Šต ๊ธฐ์ดˆ_2(Deep sarsa, Deep Q-learning, DQN)๊ฐ•ํ™”ํ•™์Šต ๊ธฐ์ดˆ_2(Deep sarsa, Deep Q-learning, DQN)
๊ฐ•ํ™”ํ•™์Šต ๊ธฐ์ดˆ_2(Deep sarsa, Deep Q-learning, DQN)Euijin Jeong
ย 
Lecture1 AI1 Introduction to artificial intelligence
Lecture1 AI1 Introduction to artificial intelligenceLecture1 AI1 Introduction to artificial intelligence
Lecture1 AI1 Introduction to artificial intelligenceAlbert Orriols-Puig
ย 
Reinforcement Learning Q-Learning
Reinforcement Learning   Q-Learning Reinforcement Learning   Q-Learning
Reinforcement Learning Q-Learning Melaku Eneayehu
ย 
Particles Swarm Optimization
Particles Swarm OptimizationParticles Swarm Optimization
Particles Swarm OptimizationBrian Raafiu
ย 
Uninformed search /Blind search in AI
Uninformed search /Blind search in AIUninformed search /Blind search in AI
Uninformed search /Blind search in AIKirti Verma
ย 
Object detection - RCNNs vs Retinanet
Object detection - RCNNs vs RetinanetObject detection - RCNNs vs Retinanet
Object detection - RCNNs vs RetinanetRishabh Indoria
ย 
Artificial intelligence and knowledge representation
Artificial intelligence and knowledge representationArtificial intelligence and knowledge representation
Artificial intelligence and knowledge representationSajan Sahu
ย 
YOLO V6
YOLO V6YOLO V6
YOLO V6taeseon ryu
ย 
Informed and Uninformed search Strategies
Informed and Uninformed search StrategiesInformed and Uninformed search Strategies
Informed and Uninformed search StrategiesAmey Kerkar
ย 
Informed search (heuristics)
Informed search (heuristics)Informed search (heuristics)
Informed search (heuristics)Bablu Shofi
ย 
An introduction to reinforcement learning
An introduction to  reinforcement learningAn introduction to  reinforcement learning
An introduction to reinforcement learningJie-Han Chen
ย 
Stylized Rendering in Battlefield Heroes
Stylized Rendering in Battlefield HeroesStylized Rendering in Battlefield Heroes
Stylized Rendering in Battlefield HeroesElectronic Arts / DICE
ย 
AI_Session 7 Greedy Best first search algorithm.pptx
AI_Session 7 Greedy Best first search algorithm.pptxAI_Session 7 Greedy Best first search algorithm.pptx
AI_Session 7 Greedy Best first search algorithm.pptxAsst.prof M.Gokilavani
ย 
Simulated annealing-global optimization algorithm
Simulated annealing-global optimization algorithmSimulated annealing-global optimization algorithm
Simulated annealing-global optimization algorithmAkhil Prabhakar
ย 
Building and road detection from large aerial imagery
Building and road detection from large aerial imageryBuilding and road detection from large aerial imagery
Building and road detection from large aerial imageryShunta Saito
ย 

What's hot (20)

Gradient descent method
Gradient descent methodGradient descent method
Gradient descent method
ย 
Artificial fish swarm optimization
Artificial fish swarm optimizationArtificial fish swarm optimization
Artificial fish swarm optimization
ย 
Hyperparameter Optimization for Machine Learning
Hyperparameter Optimization for Machine LearningHyperparameter Optimization for Machine Learning
Hyperparameter Optimization for Machine Learning
ย 
Ch.5 machine learning basics
Ch.5  machine learning basicsCh.5  machine learning basics
Ch.5 machine learning basics
ย 
Particle swarm optimization
Particle swarm optimizationParticle swarm optimization
Particle swarm optimization
ย 
๊ฐ•ํ™”ํ•™์Šต ๊ธฐ์ดˆ_2(Deep sarsa, Deep Q-learning, DQN)
๊ฐ•ํ™”ํ•™์Šต ๊ธฐ์ดˆ_2(Deep sarsa, Deep Q-learning, DQN)๊ฐ•ํ™”ํ•™์Šต ๊ธฐ์ดˆ_2(Deep sarsa, Deep Q-learning, DQN)
๊ฐ•ํ™”ํ•™์Šต ๊ธฐ์ดˆ_2(Deep sarsa, Deep Q-learning, DQN)
ย 
Lecture1 AI1 Introduction to artificial intelligence
Lecture1 AI1 Introduction to artificial intelligenceLecture1 AI1 Introduction to artificial intelligence
Lecture1 AI1 Introduction to artificial intelligence
ย 
Reinforcement Learning Q-Learning
Reinforcement Learning   Q-Learning Reinforcement Learning   Q-Learning
Reinforcement Learning Q-Learning
ย 
Particles Swarm Optimization
Particles Swarm OptimizationParticles Swarm Optimization
Particles Swarm Optimization
ย 
Uninformed search /Blind search in AI
Uninformed search /Blind search in AIUninformed search /Blind search in AI
Uninformed search /Blind search in AI
ย 
Object detection - RCNNs vs Retinanet
Object detection - RCNNs vs RetinanetObject detection - RCNNs vs Retinanet
Object detection - RCNNs vs Retinanet
ย 
Artificial intelligence and knowledge representation
Artificial intelligence and knowledge representationArtificial intelligence and knowledge representation
Artificial intelligence and knowledge representation
ย 
YOLO V6
YOLO V6YOLO V6
YOLO V6
ย 
Informed and Uninformed search Strategies
Informed and Uninformed search StrategiesInformed and Uninformed search Strategies
Informed and Uninformed search Strategies
ย 
Informed search (heuristics)
Informed search (heuristics)Informed search (heuristics)
Informed search (heuristics)
ย 
An introduction to reinforcement learning
An introduction to  reinforcement learningAn introduction to  reinforcement learning
An introduction to reinforcement learning
ย 
Stylized Rendering in Battlefield Heroes
Stylized Rendering in Battlefield HeroesStylized Rendering in Battlefield Heroes
Stylized Rendering in Battlefield Heroes
ย 
AI_Session 7 Greedy Best first search algorithm.pptx
AI_Session 7 Greedy Best first search algorithm.pptxAI_Session 7 Greedy Best first search algorithm.pptx
AI_Session 7 Greedy Best first search algorithm.pptx
ย 
Simulated annealing-global optimization algorithm
Simulated annealing-global optimization algorithmSimulated annealing-global optimization algorithm
Simulated annealing-global optimization algorithm
ย 
Building and road detection from large aerial imagery
Building and road detection from large aerial imageryBuilding and road detection from large aerial imagery
Building and road detection from large aerial imagery
ย 

Similar to Direct Sparse Odometry (DSO) Review

Pose Graph based SLAM
Pose Graph based SLAMPose Graph based SLAM
Pose Graph based SLAMEdwardIm1
ย 
Chapter 8 - optimization for training deep models
Chapter 8 - optimization for training deep modelsChapter 8 - optimization for training deep models
Chapter 8 - optimization for training deep modelsKyeongUkJang
ย 
Coursera Machine Learning (by Andrew Ng)_๊ฐ•์˜์ •๋ฆฌ
Coursera Machine Learning (by Andrew Ng)_๊ฐ•์˜์ •๋ฆฌCoursera Machine Learning (by Andrew Ng)_๊ฐ•์˜์ •๋ฆฌ
Coursera Machine Learning (by Andrew Ng)_๊ฐ•์˜์ •๋ฆฌSANG WON PARK
ย 
111118 ch 4_basic image manipulation_web
111118 ch 4_basic image manipulation_web111118 ch 4_basic image manipulation_web
111118 ch 4_basic image manipulation_webCARROTCG
ย 
Deep neural networks for You-Tube recommendations
Deep neural networks for You-Tube recommendationsDeep neural networks for You-Tube recommendations
Deep neural networks for You-Tube recommendationsseungwoo kim
ย 
Improved techniques for grid mapping with rao blackwellized particle filters ๋ฒˆ์—ญ
Improved techniques for grid mapping with rao blackwellized particle filters ๋ฒˆ์—ญImproved techniques for grid mapping with rao blackwellized particle filters ๋ฒˆ์—ญ
Improved techniques for grid mapping with rao blackwellized particle filters ๋ฒˆ์—ญjdo
ย 
Control as Inference.pptx
Control as Inference.pptxControl as Inference.pptx
Control as Inference.pptxssuserbd1647
ย 
MRC recent trend_ppt
MRC recent trend_pptMRC recent trend_ppt
MRC recent trend_pptseungwoo kim
ย 
์ด์ •๊ทผ_project_๋กœ๋ด‡๋น„์ „์‹œ์Šคํ…œ.pdf
์ด์ •๊ทผ_project_๋กœ๋ด‡๋น„์ „์‹œ์Šคํ…œ.pdf์ด์ •๊ทผ_project_๋กœ๋ด‡๋น„์ „์‹œ์Šคํ…œ.pdf
์ด์ •๊ทผ_project_๋กœ๋ด‡๋น„์ „์‹œ์Šคํ…œ.pdftangtang1026
ย 
แ„Œแ…กแ„‡แ…กแ„…แ…ฉ Mnist แ„€แ…ฎแ„’แ…งแ†ซแ„’แ…กแ„€แ…ฉ_แ„‰แ…ณแ„‘แ…ณแ„…แ…ตแ†ผแ„‹แ…ฐแ†ธแ„‰แ…ฅแ„‡แ…ฅแ„‡แ…ฎแ‡€แ„‹แ…ตแ„€แ…ต
แ„Œแ…กแ„‡แ…กแ„…แ…ฉ Mnist แ„€แ…ฎแ„’แ…งแ†ซแ„’แ…กแ„€แ…ฉ_แ„‰แ…ณแ„‘แ…ณแ„…แ…ตแ†ผแ„‹แ…ฐแ†ธแ„‰แ…ฅแ„‡แ…ฅแ„‡แ…ฎแ‡€แ„‹แ…ตแ„€แ…ตแ„Œแ…กแ„‡แ…กแ„…แ…ฉ Mnist แ„€แ…ฎแ„’แ…งแ†ซแ„’แ…กแ„€แ…ฉ_แ„‰แ…ณแ„‘แ…ณแ„…แ…ตแ†ผแ„‹แ…ฐแ†ธแ„‰แ…ฅแ„‡แ…ฅแ„‡แ…ฎแ‡€แ„‹แ…ตแ„€แ…ต
แ„Œแ…กแ„‡แ…กแ„…แ…ฉ Mnist แ„€แ…ฎแ„’แ…งแ†ซแ„’แ…กแ„€แ…ฉ_แ„‰แ…ณแ„‘แ…ณแ„…แ…ตแ†ผแ„‹แ…ฐแ†ธแ„‰แ…ฅแ„‡แ…ฅแ„‡แ…ฎแ‡€แ„‹แ…ตแ„€แ…ต๋ผํ•œ์‚ฌ ์•„
ย 
๋ฉด์ ‘ ๋Œ€๋น„ ๋ฒกํ„ฐ, CS ๊ฐœ๋…๊ณผ ์‚ฌ๋ก€
๋ฉด์ ‘ ๋Œ€๋น„ ๋ฒกํ„ฐ, CS ๊ฐœ๋…๊ณผ ์‚ฌ๋ก€๋ฉด์ ‘ ๋Œ€๋น„ ๋ฒกํ„ฐ, CS ๊ฐœ๋…๊ณผ ์‚ฌ๋ก€
๋ฉด์ ‘ ๋Œ€๋น„ ๋ฒกํ„ฐ, CS ๊ฐœ๋…๊ณผ ์‚ฌ๋ก€Soochan Park
ย 
๋…ผ๋ฌธ-์ •๊ทœ๋ถ„ํฌ๋ณ€ํ™˜
๋…ผ๋ฌธ-์ •๊ทœ๋ถ„ํฌ๋ณ€ํ™˜๋…ผ๋ฌธ-์ •๊ทœ๋ถ„ํฌ๋ณ€ํ™˜
๋…ผ๋ฌธ-์ •๊ทœ๋ถ„ํฌ๋ณ€ํ™˜jdo
ย 
introduction to dynamic programming and linear programming
introduction to dynamic programming and linear programmingintroduction to dynamic programming and linear programming
introduction to dynamic programming and linear programmingGyeongwook Choi
ย 
[IGC 2017] ์—ํ”ฝ๊ฒŒ์ž„์ฆˆ ์ตœ์šฉํ›ˆ - ๋ฐค๋‚ฎ์œผ๋กœ ๋ถ€์ˆ˜๊ณ  ์ง“๊ณ  ์•ก์…˜ ๋นŒ๋”ฉ ๊ฒŒ์ž„ ๋งŒ๋“ค๊ธฐ - ํฌํŠธ๋‚˜์ดํŠธ
[IGC 2017] ์—ํ”ฝ๊ฒŒ์ž„์ฆˆ ์ตœ์šฉํ›ˆ - ๋ฐค๋‚ฎ์œผ๋กœ ๋ถ€์ˆ˜๊ณ  ์ง“๊ณ  ์•ก์…˜ ๋นŒ๋”ฉ ๊ฒŒ์ž„ ๋งŒ๋“ค๊ธฐ - ํฌํŠธ๋‚˜์ดํŠธ[IGC 2017] ์—ํ”ฝ๊ฒŒ์ž„์ฆˆ ์ตœ์šฉํ›ˆ - ๋ฐค๋‚ฎ์œผ๋กœ ๋ถ€์ˆ˜๊ณ  ์ง“๊ณ  ์•ก์…˜ ๋นŒ๋”ฉ ๊ฒŒ์ž„ ๋งŒ๋“ค๊ธฐ - ํฌํŠธ๋‚˜์ดํŠธ
[IGC 2017] ์—ํ”ฝ๊ฒŒ์ž„์ฆˆ ์ตœ์šฉํ›ˆ - ๋ฐค๋‚ฎ์œผ๋กœ ๋ถ€์ˆ˜๊ณ  ์ง“๊ณ  ์•ก์…˜ ๋นŒ๋”ฉ ๊ฒŒ์ž„ ๋งŒ๋“ค๊ธฐ - ํฌํŠธ๋‚˜์ดํŠธ๊ฐ• ๋ฏผ์šฐ
ย 
Bag of Tricks for Image Classification with Convolutional Neural Networks (C...
Bag of Tricks for Image Classification  with Convolutional Neural Networks (C...Bag of Tricks for Image Classification  with Convolutional Neural Networks (C...
Bag of Tricks for Image Classification with Convolutional Neural Networks (C...gohyunwoong
ย 
Soft Actor-Critic Algorithms and Applications ํ•œ๊ตญ์–ด ๋ฆฌ๋ทฐ
Soft Actor-Critic Algorithms and Applications ํ•œ๊ตญ์–ด ๋ฆฌ๋ทฐSoft Actor-Critic Algorithms and Applications ํ•œ๊ตญ์–ด ๋ฆฌ๋ทฐ
Soft Actor-Critic Algorithms and Applications ํ•œ๊ตญ์–ด ๋ฆฌ๋ทฐํƒœ์˜ ์ •
ย 
๊ตฌ์„ธ๋Œ€ ์—”์ง„ ์‹ ๋ฐ๋ ๋ผ ๋งŒ๋“ค๊ธฐ ์ตœ์ข…๋ณธ ์œ ํŠธ๋ธŒ2
๊ตฌ์„ธ๋Œ€ ์—”์ง„ ์‹ ๋ฐ๋ ๋ผ ๋งŒ๋“ค๊ธฐ ์ตœ์ข…๋ณธ ์œ ํŠธ๋ธŒ2๊ตฌ์„ธ๋Œ€ ์—”์ง„ ์‹ ๋ฐ๋ ๋ผ ๋งŒ๋“ค๊ธฐ ์ตœ์ข…๋ณธ ์œ ํŠธ๋ธŒ2
๊ตฌ์„ธ๋Œ€ ์—”์ง„ ์‹ ๋ฐ๋ ๋ผ ๋งŒ๋“ค๊ธฐ ์ตœ์ข…๋ณธ ์œ ํŠธ๋ธŒ2Kyoung Seok(๊ฒฝ์„) Ko(๊ณ )
ย 
[์ปดํ“จํ„ฐ๋น„์ „๊ณผ ์ธ๊ณต์ง€๋Šฅ] 5. ์‹ ๊ฒฝ๋ง
[์ปดํ“จํ„ฐ๋น„์ „๊ณผ ์ธ๊ณต์ง€๋Šฅ] 5. ์‹ ๊ฒฝ๋ง[์ปดํ“จํ„ฐ๋น„์ „๊ณผ ์ธ๊ณต์ง€๋Šฅ] 5. ์‹ ๊ฒฝ๋ง
[์ปดํ“จํ„ฐ๋น„์ „๊ณผ ์ธ๊ณต์ง€๋Šฅ] 5. ์‹ ๊ฒฝ๋งjdo
ย 
Optimizing the graphics_pipeline_
Optimizing the graphics_pipeline_Optimizing the graphics_pipeline_
Optimizing the graphics_pipeline_ozlael ozlael
ย 
Bundle Adjustment
Bundle AdjustmentBundle Adjustment
Bundle AdjustmentJongho Choi
ย 

Similar to Direct Sparse Odometry (DSO) Review (20)

Pose Graph based SLAM
Pose Graph based SLAMPose Graph based SLAM
Pose Graph based SLAM
ย 
Chapter 8 - optimization for training deep models
Chapter 8 - optimization for training deep modelsChapter 8 - optimization for training deep models
Chapter 8 - optimization for training deep models
ย 
Coursera Machine Learning (by Andrew Ng)_๊ฐ•์˜์ •๋ฆฌ
Coursera Machine Learning (by Andrew Ng)_๊ฐ•์˜์ •๋ฆฌCoursera Machine Learning (by Andrew Ng)_๊ฐ•์˜์ •๋ฆฌ
Coursera Machine Learning (by Andrew Ng)_๊ฐ•์˜์ •๋ฆฌ
ย 
111118 ch 4_basic image manipulation_web
111118 ch 4_basic image manipulation_web111118 ch 4_basic image manipulation_web
111118 ch 4_basic image manipulation_web
ย 
Deep neural networks for You-Tube recommendations
Deep neural networks for You-Tube recommendationsDeep neural networks for You-Tube recommendations
Deep neural networks for You-Tube recommendations
ย 
Improved techniques for grid mapping with rao blackwellized particle filters ๋ฒˆ์—ญ
Improved techniques for grid mapping with rao blackwellized particle filters ๋ฒˆ์—ญImproved techniques for grid mapping with rao blackwellized particle filters ๋ฒˆ์—ญ
Improved techniques for grid mapping with rao blackwellized particle filters ๋ฒˆ์—ญ
ย 
Control as Inference.pptx
Control as Inference.pptxControl as Inference.pptx
Control as Inference.pptx
ย 
MRC recent trend_ppt
MRC recent trend_pptMRC recent trend_ppt
MRC recent trend_ppt
ย 
์ด์ •๊ทผ_project_๋กœ๋ด‡๋น„์ „์‹œ์Šคํ…œ.pdf
์ด์ •๊ทผ_project_๋กœ๋ด‡๋น„์ „์‹œ์Šคํ…œ.pdf์ด์ •๊ทผ_project_๋กœ๋ด‡๋น„์ „์‹œ์Šคํ…œ.pdf
์ด์ •๊ทผ_project_๋กœ๋ด‡๋น„์ „์‹œ์Šคํ…œ.pdf
ย 
แ„Œแ…กแ„‡แ…กแ„…แ…ฉ Mnist แ„€แ…ฎแ„’แ…งแ†ซแ„’แ…กแ„€แ…ฉ_แ„‰แ…ณแ„‘แ…ณแ„…แ…ตแ†ผแ„‹แ…ฐแ†ธแ„‰แ…ฅแ„‡แ…ฅแ„‡แ…ฎแ‡€แ„‹แ…ตแ„€แ…ต
แ„Œแ…กแ„‡แ…กแ„…แ…ฉ Mnist แ„€แ…ฎแ„’แ…งแ†ซแ„’แ…กแ„€แ…ฉ_แ„‰แ…ณแ„‘แ…ณแ„…แ…ตแ†ผแ„‹แ…ฐแ†ธแ„‰แ…ฅแ„‡แ…ฅแ„‡แ…ฎแ‡€แ„‹แ…ตแ„€แ…ตแ„Œแ…กแ„‡แ…กแ„…แ…ฉ Mnist แ„€แ…ฎแ„’แ…งแ†ซแ„’แ…กแ„€แ…ฉ_แ„‰แ…ณแ„‘แ…ณแ„…แ…ตแ†ผแ„‹แ…ฐแ†ธแ„‰แ…ฅแ„‡แ…ฅแ„‡แ…ฎแ‡€แ„‹แ…ตแ„€แ…ต
แ„Œแ…กแ„‡แ…กแ„…แ…ฉ Mnist แ„€แ…ฎแ„’แ…งแ†ซแ„’แ…กแ„€แ…ฉ_แ„‰แ…ณแ„‘แ…ณแ„…แ…ตแ†ผแ„‹แ…ฐแ†ธแ„‰แ…ฅแ„‡แ…ฅแ„‡แ…ฎแ‡€แ„‹แ…ตแ„€แ…ต
ย 
๋ฉด์ ‘ ๋Œ€๋น„ ๋ฒกํ„ฐ, CS ๊ฐœ๋…๊ณผ ์‚ฌ๋ก€
๋ฉด์ ‘ ๋Œ€๋น„ ๋ฒกํ„ฐ, CS ๊ฐœ๋…๊ณผ ์‚ฌ๋ก€๋ฉด์ ‘ ๋Œ€๋น„ ๋ฒกํ„ฐ, CS ๊ฐœ๋…๊ณผ ์‚ฌ๋ก€
๋ฉด์ ‘ ๋Œ€๋น„ ๋ฒกํ„ฐ, CS ๊ฐœ๋…๊ณผ ์‚ฌ๋ก€
ย 
๋…ผ๋ฌธ-์ •๊ทœ๋ถ„ํฌ๋ณ€ํ™˜
๋…ผ๋ฌธ-์ •๊ทœ๋ถ„ํฌ๋ณ€ํ™˜๋…ผ๋ฌธ-์ •๊ทœ๋ถ„ํฌ๋ณ€ํ™˜
๋…ผ๋ฌธ-์ •๊ทœ๋ถ„ํฌ๋ณ€ํ™˜
ย 
introduction to dynamic programming and linear programming
introduction to dynamic programming and linear programmingintroduction to dynamic programming and linear programming
introduction to dynamic programming and linear programming
ย 
[IGC 2017] ์—ํ”ฝ๊ฒŒ์ž„์ฆˆ ์ตœ์šฉํ›ˆ - ๋ฐค๋‚ฎ์œผ๋กœ ๋ถ€์ˆ˜๊ณ  ์ง“๊ณ  ์•ก์…˜ ๋นŒ๋”ฉ ๊ฒŒ์ž„ ๋งŒ๋“ค๊ธฐ - ํฌํŠธ๋‚˜์ดํŠธ
[IGC 2017] ์—ํ”ฝ๊ฒŒ์ž„์ฆˆ ์ตœ์šฉํ›ˆ - ๋ฐค๋‚ฎ์œผ๋กœ ๋ถ€์ˆ˜๊ณ  ์ง“๊ณ  ์•ก์…˜ ๋นŒ๋”ฉ ๊ฒŒ์ž„ ๋งŒ๋“ค๊ธฐ - ํฌํŠธ๋‚˜์ดํŠธ[IGC 2017] ์—ํ”ฝ๊ฒŒ์ž„์ฆˆ ์ตœ์šฉํ›ˆ - ๋ฐค๋‚ฎ์œผ๋กœ ๋ถ€์ˆ˜๊ณ  ์ง“๊ณ  ์•ก์…˜ ๋นŒ๋”ฉ ๊ฒŒ์ž„ ๋งŒ๋“ค๊ธฐ - ํฌํŠธ๋‚˜์ดํŠธ
[IGC 2017] ์—ํ”ฝ๊ฒŒ์ž„์ฆˆ ์ตœ์šฉํ›ˆ - ๋ฐค๋‚ฎ์œผ๋กœ ๋ถ€์ˆ˜๊ณ  ์ง“๊ณ  ์•ก์…˜ ๋นŒ๋”ฉ ๊ฒŒ์ž„ ๋งŒ๋“ค๊ธฐ - ํฌํŠธ๋‚˜์ดํŠธ
ย 
Bag of Tricks for Image Classification with Convolutional Neural Networks (C...
Bag of Tricks for Image Classification  with Convolutional Neural Networks (C...Bag of Tricks for Image Classification  with Convolutional Neural Networks (C...
Bag of Tricks for Image Classification with Convolutional Neural Networks (C...
ย 
Soft Actor-Critic Algorithms and Applications ํ•œ๊ตญ์–ด ๋ฆฌ๋ทฐ
Soft Actor-Critic Algorithms and Applications ํ•œ๊ตญ์–ด ๋ฆฌ๋ทฐSoft Actor-Critic Algorithms and Applications ํ•œ๊ตญ์–ด ๋ฆฌ๋ทฐ
Soft Actor-Critic Algorithms and Applications ํ•œ๊ตญ์–ด ๋ฆฌ๋ทฐ
ย 
๊ตฌ์„ธ๋Œ€ ์—”์ง„ ์‹ ๋ฐ๋ ๋ผ ๋งŒ๋“ค๊ธฐ ์ตœ์ข…๋ณธ ์œ ํŠธ๋ธŒ2
๊ตฌ์„ธ๋Œ€ ์—”์ง„ ์‹ ๋ฐ๋ ๋ผ ๋งŒ๋“ค๊ธฐ ์ตœ์ข…๋ณธ ์œ ํŠธ๋ธŒ2๊ตฌ์„ธ๋Œ€ ์—”์ง„ ์‹ ๋ฐ๋ ๋ผ ๋งŒ๋“ค๊ธฐ ์ตœ์ข…๋ณธ ์œ ํŠธ๋ธŒ2
๊ตฌ์„ธ๋Œ€ ์—”์ง„ ์‹ ๋ฐ๋ ๋ผ ๋งŒ๋“ค๊ธฐ ์ตœ์ข…๋ณธ ์œ ํŠธ๋ธŒ2
ย 
[์ปดํ“จํ„ฐ๋น„์ „๊ณผ ์ธ๊ณต์ง€๋Šฅ] 5. ์‹ ๊ฒฝ๋ง
[์ปดํ“จํ„ฐ๋น„์ „๊ณผ ์ธ๊ณต์ง€๋Šฅ] 5. ์‹ ๊ฒฝ๋ง[์ปดํ“จํ„ฐ๋น„์ „๊ณผ ์ธ๊ณต์ง€๋Šฅ] 5. ์‹ ๊ฒฝ๋ง
[์ปดํ“จํ„ฐ๋น„์ „๊ณผ ์ธ๊ณต์ง€๋Šฅ] 5. ์‹ ๊ฒฝ๋ง
ย 
Optimizing the graphics_pipeline_
Optimizing the graphics_pipeline_Optimizing the graphics_pipeline_
Optimizing the graphics_pipeline_
ย 
Bundle Adjustment
Bundle AdjustmentBundle Adjustment
Bundle Adjustment
ย 

Direct Sparse Odometry (DSO) Review

  • 1. Direct Sparse Odometry (DSO) pdf ๋ณด๊ธฐ ํƒญ์—์„œ ํ•œ ํŽ˜์ด์ง€ ์”ฉ ๋ณด๊ธฐ๋กœ ์„ค์ •ํ•˜์‹œ๋ฉด ppt ์Šฌ๋ผ์ด๋“œ ๋„˜๊ธฐ๋“ฏ์ด ๋ณด์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค ๊ฐœ์ธ์ ์œผ๋กœ ๊ณต๋ถ€ํ•˜๊ธฐ ์œ„ํ•ด ์ž‘์„ฑํ•œ ์ž๋ฃŒ์ž…๋‹ˆ๋‹ค ๋‚ด์šฉ ์ค‘ ํ‹€๋ฆฐ ๋ถ€๋ถ„์ด๋‚˜ ๋น ์ง„ ๋‚ด์šฉ์ด ์žˆ๋‹ค๋ฉด gyurse@gmail.com ์œผ๋กœ ๋ง์”€ํ•ด์ฃผ์‹œ๋ฉด ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค :-)
  • 2. References: 1) [EN] DSO paper - http://vladlen.info/papers/DSO.pdf 2) [KR] SLAMKR study - SLAMKR Study Season 1 3) [CH] DSO code reading - https://x007dwd.github.io/2017/02/28/dso-slam/ 4) [CH] jingeTUโ€™s SLAM blog - https://www.cnblogs.com/JingeTU/category/954354.html 5) [CH] DSO tracking and optimization - https://blog.csdn.net/xxxlinttp/article/details/90640350 6) [CH] DSO initialization - https://blog.csdn.net/xxxlinttp/article/details/89379785 7) [CH] Detailed in DSO - https://zhuanlan.zhihu.com/p/29177540 8) [CH] DSO photometric calibration - https://www.cnblogs.com/luyb/p/6077478.html 9) [CH] DSO code with comments - https://github.com/alalagong/DSO 2020/03/05 1st: 2020/01/02 2nd: 2020/01/06 3rd: 2020/01/18 4th: 2020/01/20 5th: 2020/01/23 6th: 2020/01/26 7th: 2020/02/01 8th: 2020/02/10 9th: 2020/02/23 Last modified: 10th: 2020/03/03 11th: 2020/03/04
  • 3. Contents 1. Initialization 1.1. Error Function Formulation 1.2. Gauss-Newton Optimization 1.3. Jacobian Derivation 1.4. Solving The Incremental Equation (Schur Complement) 2. Frames 2.1. Pose Tracking 2.2. Keyframe Decision 3. Non-Keyframes 3.1. Inverse Depth Update
  • 4. Contents 4. Keyframes 4.1. Inverse Depth Update 4.2. Immature Point Activation 4.3. Sliding Window Optimization 4.3.1. Error Function Formulation 4.3.2. Jacobian Derivation of Camera Intrinsics 4.3.3. First Estimate Jacobian (FEJ) 4.3.4. Adjoint Transformation 4.3.5. Marginalization 4.3.6. Solving The Incremental Equation 5. Pixel Selection 5.1. Make Histogram 5.2. Dynamic Grid 6. DSO Code review
  • 6. 1.1. Initialization โž” Error Function Formulation 3์ฐจ์› ๊ณต๊ฐ„ ์ƒ์˜ ํ•œ ์  2์ฐจ์› ์ด๋ฏธ์ง€ ํ‰๋ฉด ์ƒ์˜ ํ•œ ์  ์นด๋ฉ”๋ผ ๋‚ด๋ถ€ ํŒŒ๋ผ๋ฏธํ„ฐ(3x3ํ–‰๋ ฌ) ๊นŠ์ด ๊ฐ’์˜ ์—ญ์ˆ˜ (inverse depth) ์นด๋ฉ”๋ผ ์ขŒํ‘œ๊ณ„
  • 7. 3์ฐจ์› ์ƒ์˜ ํ•œ ์  ๊ณผ 2์ฐจ์› ์ด๋ฏธ์ง€ ํ‰๋ฉด ์ƒ์˜ ํ•œ ์  ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ด€๊ณ„๋ฅผ ๊ฐ€์ง„๋‹ค. 3์ฐจ์› ๊ณต๊ฐ„ ์ƒ์˜ ํ•œ ์  2์ฐจ์› ์ด๋ฏธ์ง€ ํ‰๋ฉด ์ƒ์˜ ํ•œ ์  ์นด๋ฉ”๋ผ ๋‚ด๋ถ€ ํŒŒ๋ผ๋ฏธํ„ฐ(3x3ํ–‰๋ ฌ) ๊นŠ์ด ๊ฐ’์˜ ์—ญ์ˆ˜ (inverse depth) ์นด๋ฉ”๋ผ ์ขŒํ‘œ๊ณ„ 1.1. Initialization โž” Error Function Formulation
  • 8. 3์ฐจ์› ์ƒ์˜ ํ•œ ์  ๊ณผ 2์ฐจ์› ์ด๋ฏธ์ง€ ํ‰๋ฉด ์ƒ์˜ ํ•œ ์  ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ด€๊ณ„๋ฅผ ๊ฐ€์ง„๋‹ค. 3์ฐจ์› ๊ณต๊ฐ„ ์ƒ์˜ ํ•œ ์  2์ฐจ์› ์ด๋ฏธ์ง€ ํ‰๋ฉด ์ƒ์˜ ํ•œ ์  ์นด๋ฉ”๋ผ ๋‚ด๋ถ€ ํŒŒ๋ผ๋ฏธํ„ฐ(3x3ํ–‰๋ ฌ) ๊นŠ์ด ๊ฐ’์˜ ์—ญ์ˆ˜ (inverse depth) ์นด๋ฉ”๋ผ ์ขŒํ‘œ๊ณ„ 1.1. Initialization โž” Error Function Formulation
  • 9. 3์ฐจ์› ์ƒ์˜ ํ•œ ์  ๊ณผ 2์ฐจ์› ์ด๋ฏธ์ง€ ํ‰๋ฉด ์ƒ์˜ ํ•œ ์  ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ด€๊ณ„๋ฅผ ๊ฐ€์ง„๋‹ค. ์ด ๋•Œ, ์นด๋ฉ”๋ผ๊ฐ€ ๋งŒํผ ์›€์ง์—ฌ์„œ ์นด๋ฉ”๋ผ๊ฐ€ ์œผ๋กœ ์ด๋™ํ•œ ๊ฒฝ์šฐ๋ฅผ ์ƒ๊ฐํ•ด๋ณด์ž. 1.1. Initialization โž” Error Function Formulation ์นด๋ฉ”๋ผ์˜ 3์ฐจ์› ํฌ์ฆˆ (4x4ํ–‰๋ ฌ) C1,C2 ์นด๋ฉ”๋ผ ๊ฐ„ ์ƒ๋Œ€ ํฌ์ฆˆ (transform) (lie group) (4x4ํ–‰๋ ฌ) C1,C2 ์นด๋ฉ”๋ผ ๊ฐ„ ์ƒ๋Œ€ ํฌ์ฆˆ ๋ณ€ํ™”๋Ÿ‰ (twist) (6์ฐจ์›๋ฒกํ„ฐ) hat ์—ฐ์‚ฐ์ž๊ฐ€ ์ ์šฉ๋œ twist (lie algebra) (4x4ํ–‰๋ ฌ)
  • 10. 3์ฐจ์› ์ƒ์˜ ํ•œ ์  ๊ณผ 2์ฐจ์› ์ด๋ฏธ์ง€ ํ‰๋ฉด ์ƒ์˜ ํ•œ ์  ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ด€๊ณ„๋ฅผ ๊ฐ€์ง„๋‹ค. ์ด ๋•Œ, ์นด๋ฉ”๋ผ๊ฐ€ ๋งŒํผ ์›€์ง์—ฌ์„œ ์นด๋ฉ”๋ผ๊ฐ€ ์œผ๋กœ ์ด๋™ํ•œ ๊ฒฝ์šฐ๋ฅผ ์ƒ๊ฐํ•ด๋ณด์ž. ์„ ๋‘ ๋ฒˆ์งธ ์นด๋ฉ”๋ผ ์ƒ์— ํ”„๋กœ์ ์…˜ํ•œ ์  ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ณต์‹์œผ๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค. 1.1. Initialization โž” Error Function Formulation ์นด๋ฉ”๋ผ์˜ 3์ฐจ์› ํฌ์ฆˆ (4x4ํ–‰๋ ฌ) C1,C2 ์นด๋ฉ”๋ผ ๊ฐ„ ์ƒ๋Œ€ ํฌ์ฆˆ (transform) (lie group) (4x4ํ–‰๋ ฌ) C1,C2 ์นด๋ฉ”๋ผ ๊ฐ„ ์ƒ๋Œ€ ํฌ์ฆˆ ๋ณ€ํ™”๋Ÿ‰ (twist) (6์ฐจ์›๋ฒกํ„ฐ) hat ์—ฐ์‚ฐ์ž๊ฐ€ ์ ์šฉ๋œ twist (lie algebra) (4x4ํ–‰๋ ฌ)
  • 11. 3์ฐจ์› ์ƒ์˜ ํ•œ ์  ๊ณผ 2์ฐจ์› ์ด๋ฏธ์ง€ ํ‰๋ฉด ์ƒ์˜ ํ•œ ์  ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ด€๊ณ„๋ฅผ ๊ฐ€์ง„๋‹ค. ์ด ๋•Œ, ์นด๋ฉ”๋ผ๊ฐ€ ๋งŒํผ ์›€์ง์—ฌ์„œ ์นด๋ฉ”๋ผ๊ฐ€ ์œผ๋กœ ์ด๋™ํ•œ ๊ฒฝ์šฐ๋ฅผ ์ƒ๊ฐํ•ด๋ณด์ž. ์„ ๋‘ ๋ฒˆ์งธ ์นด๋ฉ”๋ผ ์ƒ์— ํ”„๋กœ์ ์…˜ํ•œ ์  ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ณต์‹์œผ๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค. ์นด๋ฉ”๋ผ์˜ 3์ฐจ์› ํฌ์ฆˆ (4x4ํ–‰๋ ฌ) C1,C2 ์นด๋ฉ”๋ผ ๊ฐ„ ์ƒ๋Œ€ ํฌ์ฆˆ (transform) (lie group) (4x4ํ–‰๋ ฌ) C1,C2 ์นด๋ฉ”๋ผ ๊ฐ„ ์ƒ๋Œ€ ํฌ์ฆˆ ๋ณ€ํ™”๋Ÿ‰ (twist) (6์ฐจ์›๋ฒกํ„ฐ) hat ์—ฐ์‚ฐ์ž๊ฐ€ ์ ์šฉ๋œ twist (lie algebra) (4x4ํ–‰๋ ฌ) 1.1. Initialization โž” Error Function Formulation
  • 12. 3์ฐจ์› ์ƒ์˜ ํ•œ ์  ๊ณผ 2์ฐจ์› ์ด๋ฏธ์ง€ ํ‰๋ฉด ์ƒ์˜ ํ•œ ์  ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ด€๊ณ„๋ฅผ ๊ฐ€์ง„๋‹ค. ์ด ๋•Œ, ์นด๋ฉ”๋ผ๊ฐ€ ๋งŒํผ ์›€์ง์—ฌ์„œ ์นด๋ฉ”๋ผ๊ฐ€ ์œผ๋กœ ์ด๋™ํ•œ ๊ฒฝ์šฐ๋ฅผ ์ƒ๊ฐํ•ด๋ณด์ž. ์„ ๋‘ ๋ฒˆ์งธ ์นด๋ฉ”๋ผ ์ƒ์— ํ”„๋กœ์ ์…˜ํ•œ ์  ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ณต์‹์œผ๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค. direct method๋Š” photometric error๋ฅผ ์—๋Ÿฌํ•จ์ˆ˜๋กœ ์‚ฌ์šฉํ•˜๋ฏ€๋กœ ํ”ฝ์…€์˜ ๋ฐ๊ธฐ(intensity) ๊ฐ’์˜ ์ฐจ์ด๋ฅผ ๊ตฌํ•ด์•ผ ํ•œ๋‹ค. ์ด ๋•Œ DSO๋Š” ์นด๋ฉ”๋ผ์˜ exposure time์„ ๊ณ ๋ คํ•˜์—ฌ ๋ฐ๊ธฐ ์˜ค์ฐจ๋ฅผ ์กฐ์ •ํ•˜๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ์ด๋ฅผ Photometric Calibration parameter(a, b)๋ผ๊ณ  ํ•œ๋‹ค. i๋ฒˆ์งธ ์ด๋ฏธ์ง€์—์„œ j๋ฒˆ์งธ ์ ์˜ ๋ฐ๊ธฐ (grayscale)(intensity)(0~255๋‹จ์œ„) i๋ฒˆ์งธ ์ด๋ฏธ์ง€๊ฐ€ ์ดฌ์˜๋œ ์ˆœ๊ฐ„์˜ exposure time (๋˜๋Š” Shutter time)(ms๋‹จ์œ„) ๋‘ ์ด๋ฏธ์ง€ ๊ฐ„ exposure time์„ ๊ณ ๋ คํ•˜์—ฌ ์ด๋ฏธ์ง€ ๋ฐ๊ธฐ๋ฅผ ์กฐ์ ˆํ•˜๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ ๋˜๋Š” Affine brightness transfer parameters (a,b) 1.1. Initialization โž” Error Function Formulation
  • 13. ์ด ๋•Œ ๋‘ ์ ์˜ ํ”ฝ์…€ ๋ฐ๊ธฐ์˜ ์ฐจ์ด๋ฅผ ์—๋Ÿฌ(error, residual)๋กœ ์„ค์ •ํ•œ๋‹ค. 1.1. Initialization โž” Error Function Formulation
  • 14. ์ด ๋•Œ ๋‘ ์ ์˜ ํ”ฝ์…€ ๋ฐ๊ธฐ์˜ ์ฐจ์ด๋ฅผ ์—๋Ÿฌ(error, residual)๋กœ ์„ค์ •ํ•œ๋‹ค. DSO๋Š” ํ•œ ์ ์—์„œ ๋ฐ๊ธฐ ์ฐจ์ด๋งŒ์„ ๊ณ ๋ คํ•˜์ง€ ์•Š๊ณ  ํ•œ ์  ์ฃผ์œ„์˜ ์ด 8๊ฐœ ์ ๋“ค patch์˜ ๋ฐ๊ธฐ ์ฐจ์ด๋ฅผ ๊ณ ๋ คํ•œ๋‹ค. ์•„๋ž˜ ์ด๋ฏธ์ง€์™€ ๊ฐ™์ด 1๊ฐœ์˜ ์ ์ด ์ƒ๋žต๋œ ์ด์œ ๋Š” ์„ฑ๋Šฅ์— ํฌ๊ฒŒ ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š์œผ๋ฉด์„œ 4๋ฒˆ์˜ float ์—ฐ์‚ฐ์„ ํ•œ ๋ฒˆ์— ๊ณ„์‚ฐํ•  ์ˆ˜ ์žˆ๋Š” SSE2 ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์†๋„๋ฅผ ๊ฐ€์†ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋‹ค. 1.1. Initialization โž” Error Function Formulation
  • 15. ์ด ๋•Œ ๋‘ ์ ์˜ ํ”ฝ์…€ ๋ฐ๊ธฐ์˜ ์ฐจ์ด๋ฅผ ์—๋Ÿฌ(error, residual)๋กœ ์„ค์ •ํ•œ๋‹ค. patch๋ฅผ ๊ณ ๋ คํ•˜๊ณ  weighting ํ•จ์ˆ˜ + Huber ํ•จ์ˆ˜๊นŒ์ง€ ์ ์šฉํ•œ ์—๋Ÿฌ ํ•จ์ˆ˜ ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. ๋‘ ์  ์‚ฌ์ด์˜ ๋ฐ๊ธฐ ์˜ค์ฐจ ๋˜๋Š” ์—๋„ˆ์ง€. Photometric Error(Energy) Patch ์ƒ์˜ ํ•œ ์  ์ž„์˜์˜ weighting ํ•จ์ˆ˜. Huber function Huber norm (Huber function๊ณผ ๋™์ผ) DSO๋Š” ํ•œ ์ ์—์„œ ๋ฐ๊ธฐ ์ฐจ์ด๋งŒ์„ ๊ณ ๋ คํ•˜์ง€ ์•Š๊ณ  ํ•œ ์  ์ฃผ์œ„์˜ ์ด 8๊ฐœ ์ ๋“ค patch์˜ ๋ฐ๊ธฐ ์ฐจ์ด๋ฅผ ๊ณ ๋ คํ•œ๋‹ค. ์•„๋ž˜ ์ด๋ฏธ์ง€์™€ ๊ฐ™์ด 1๊ฐœ์˜ ์ ์ด ์ƒ๋žต๋œ ์ด์œ ๋Š” ์„ฑ๋Šฅ์— ํฌ๊ฒŒ ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š์œผ๋ฉด์„œ 4๋ฒˆ์˜ float ์—ฐ์‚ฐ์„ ํ•œ ๋ฒˆ์— ๊ณ„์‚ฐํ•  ์ˆ˜ ์žˆ๋Š” SSE2 ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์†๋„๋ฅผ ๊ฐ€์†ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋‹ค. 1.1. Initialization โž” Error Function Formulation
  • 16. ์ด ๋•Œ ๋‘ ์ ์˜ ํ”ฝ์…€ ๋ฐ๊ธฐ์˜ ์ฐจ์ด๋ฅผ ์—๋Ÿฌ(error, residual)๋กœ ์„ค์ •ํ•œ๋‹ค. patch๋ฅผ ๊ณ ๋ คํ•˜๊ณ  weighting ํ•จ์ˆ˜ + Huber ํ•จ์ˆ˜๊นŒ์ง€ ์ ์šฉํ•œ ์—๋Ÿฌ ํ•จ์ˆ˜ ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. ๋‘ ์  ์‚ฌ์ด์˜ ๋ฐ๊ธฐ ์˜ค์ฐจ ๋˜๋Š” ์—๋„ˆ์ง€. Photometric Error(Energy) Patch ์ƒ์˜ ํ•œ ์  ์ž„์˜์˜ weighting ํ•จ์ˆ˜. Huber function Huber norm (Huber function๊ณผ ๋™์ผ) DSO๋Š” ํ•œ ์ ์—์„œ ๋ฐ๊ธฐ ์ฐจ์ด๋งŒ์„ ๊ณ ๋ คํ•˜์ง€ ์•Š๊ณ  ํ•œ ์  ์ฃผ์œ„์˜ ์ด 8๊ฐœ ์ ๋“ค patch์˜ ๋ฐ๊ธฐ ์ฐจ์ด๋ฅผ ๊ณ ๋ คํ•œ๋‹ค. ์•„๋ž˜ ์ด๋ฏธ์ง€์™€ ๊ฐ™์ด 1๊ฐœ์˜ ์ ์ด ์ƒ๋žต๋œ ์ด์œ ๋Š” ์„ฑ๋Šฅ์— ํฌ๊ฒŒ ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š์œผ๋ฉด์„œ 4๋ฒˆ์˜ float ์—ฐ์‚ฐ์„ ํ•œ ๋ฒˆ์— ๊ณ„์‚ฐํ•  ์ˆ˜ ์žˆ๋Š” SSE2 ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์†๋„๋ฅผ ๊ฐ€์†ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋‹ค. 1.1. Initialization โž” Error Function Formulation
  • 17. ์ด ๋•Œ ๋‘ ์ ์˜ ํ”ฝ์…€ ๋ฐ๊ธฐ์˜ ์ฐจ์ด๋ฅผ ์—๋Ÿฌ(error, residual)๋กœ ์„ค์ •ํ•œ๋‹ค. patch๋ฅผ ๊ณ ๋ คํ•˜๊ณ  weighting ํ•จ์ˆ˜ + Huber ํ•จ์ˆ˜๊นŒ์ง€ ์ ์šฉํ•œ ์—๋Ÿฌ ํ•จ์ˆ˜ ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. ์ž„์˜์˜ weighting ํ•จ์ˆ˜ ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ •์˜๋˜๊ณ  image gradient๊ฐ€ ํฐ ์ ์˜ ๊ฒฝ์šฐ down-weighting ๋œ๋‹ค. ๋‘ ์  ์‚ฌ์ด์˜ ๋ฐ๊ธฐ ์˜ค์ฐจ ๋˜๋Š” ์—๋„ˆ์ง€. Photometric Error(Energy) Patch ์ƒ์˜ ํ•œ ์  ์ž„์˜์˜ weighting ํ•จ์ˆ˜. Huber function Huber norm (Huber function๊ณผ ๋™์ผ) DSO๋Š” ํ•œ ์ ์—์„œ ๋ฐ๊ธฐ ์ฐจ์ด๋งŒ์„ ๊ณ ๋ คํ•˜์ง€ ์•Š๊ณ  ํ•œ ์  ์ฃผ์œ„์˜ ์ด 8๊ฐœ ์ ๋“ค patch์˜ ๋ฐ๊ธฐ ์ฐจ์ด๋ฅผ ๊ณ ๋ คํ•œ๋‹ค. ์•„๋ž˜ ์ด๋ฏธ์ง€์™€ ๊ฐ™์ด 1๊ฐœ์˜ ์ ์ด ์ƒ๋žต๋œ ์ด์œ ๋Š” ์„ฑ๋Šฅ์— ํฌ๊ฒŒ ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š์œผ๋ฉด์„œ 4๋ฒˆ์˜ float ์—ฐ์‚ฐ์„ ํ•œ ๋ฒˆ์— ๊ณ„์‚ฐํ•  ์ˆ˜ ์žˆ๋Š” SSE2 ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์†๋„๋ฅผ ๊ฐ€์†ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋‹ค. 1.1. Initialization โž” Error Function Formulation
  • 18. ๋‘ ์  ์‚ฌ์ด์˜ ๋ฐ๊ธฐ ์˜ค์ฐจ ๋˜๋Š” ์—๋„ˆ์ง€. Photometric Error(Energy) Patch ์ƒ์˜ ํ•œ ์  ์ž„์˜์˜ weighting ํ•จ์ˆ˜. Huber function Huber norm (Huber function๊ณผ ๋™์ผ) Huber function ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ •์˜๋˜๊ณ  DSO์˜ ๊ฒฝ์šฐ ์˜ ์ƒ์ˆ˜๊ฐ’์„ ๊ฐ€์ง„๋‹ค. 1.1. Initialization โž” Error Function Formulation
  • 19. ๋‘ ์  ์‚ฌ์ด์˜ ๋ฐ๊ธฐ ์˜ค์ฐจ ๋˜๋Š” ์—๋„ˆ์ง€. Photometric Error(Energy) Patch ์ƒ์˜ ํ•œ ์  ์ž„์˜์˜ weighting ํ•จ์ˆ˜. Huber function Huber norm (Huber function๊ณผ ๋™์ผ) Huber function ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ •์˜๋˜๊ณ  DSO์˜ ๊ฒฝ์šฐ ์˜ ์ƒ์ˆ˜๊ฐ’์„ ๊ฐ€์ง„๋‹ค. ์œ„ ์‹์„ ์ปดํŒฉํŠธํ•˜๊ฒŒ ํ‘œํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ๋‹ค. 1.1. Initialization โž” Error Function Formulation
  • 20. ๋‘ ์  ์‚ฌ์ด์˜ ๋ฐ๊ธฐ ์˜ค์ฐจ ๋˜๋Š” ์—๋„ˆ์ง€. Photometric Error(Energy) Patch ์ƒ์˜ ํ•œ ์  ์ž„์˜์˜ weighting ํ•จ์ˆ˜. Huber function Huber norm (Huber function๊ณผ ๋™์ผ) Huber function ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ •์˜๋˜๊ณ  DSO์˜ ๊ฒฝ์šฐ ์˜ ์ƒ์ˆ˜๊ฐ’์„ ๊ฐ€์ง„๋‹ค. ์œ„ ์‹์„ ์ปดํŒฉํŠธํ•˜๊ฒŒ ํ‘œํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ๋‹ค. ์ด๋ฅผ ๋‘ ์นด๋ฉ”๋ผ ์ด๋ฏธ์ง€ ์ƒ์˜ ๋ชจ๋“  ์ ์— ๋Œ€ํ•ด ์—๋Ÿฌ๋ฅผ ๊ณ„์‚ฐํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™๋‹ค. 1.1. Initialization โž” Error Function Formulation
  • 21. 1.2. Initialization โž” Gauss-Newton Optimization Huber function๊นŒ์ง€ ์ ์šฉํ•œ ์—๋Ÿฌ ํ•จ์ˆ˜ (๋˜๋Š” residual) ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.
  • 22. Huber function๊นŒ์ง€ ์ ์šฉํ•œ ์—๋Ÿฌ ํ•จ์ˆ˜ (๋˜๋Š” residual) ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. ์œ„ ํ•จ์ˆ˜๋ฅผ Least Square method๋กœ ์ตœ์ ํ™”ํ•˜๊ธฐ ์œ„ํ•ด์„œ ๊ฐ€ Squared form์ด๋ผ๊ณ  ๊ฐ€์ •ํ•˜๋ฉด ์„ ๋งŒ์กฑํ•˜๋Š” ๋ฅผ ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ๊ณ  ์ด ๋•Œ ๊ฐ€ ์ตœ์†Œ์ด๋ฉด ์˜ ์ œ๊ณฑ์ธ ์—ญ์‹œ ์ตœ์†Œ๊ฐ€ ๋œ๋‹ค. DSO์—์„œ ์˜ ๋ถ€๋ถ„์€ ํฌ๊ธฐ๊ฐ€ ์ƒ๋Œ€์ ์œผ๋กœ ์ž‘์œผ๋ฏ€๋กœ ์ƒ๋žตํ–ˆ๋‹ค. 1.2. Initialization โž” Gauss-Newton Optimization
  • 23. ๋”ฐ๋ผ์„œ ํ•ด๋‹น ๋ฌธ์ œ๋ฅผ ์ตœ์†Œํ™” ๋ฌธ์ œ๋กœ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๊ณ  ์ด ๋•Œ state variable ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. 1๋ฒˆ ์ด๋ฏธ์ง€์—์„œ i๋ฒˆ์งธ inverse depth ๊ฐ’ (N๊ฐœ) ๋‘ ์นด๋ฉ”๋ผ ๊ฐ„ ์ƒ๋Œ€ ํฌ์ฆˆ ๋ณ€ํ™”๋Ÿ‰ (twist)(6์ฐจ์› ๋ฒกํ„ฐ) (6๊ฐœ) ๋‘ ์ด๋ฏธ์ง€ ๊ฐ„ exposure time์„ ๊ณ ๋ คํ•˜์—ฌ ์ด๋ฏธ์ง€ ๋ฐ๊ธฐ๋ฅผ ์กฐ์ ˆํ•˜๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ (2๊ฐœ) Huber function๊นŒ์ง€ ์ ์šฉํ•œ ์—๋Ÿฌ ํ•จ์ˆ˜ (๋˜๋Š” residual) ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. ์œ„ ํ•จ์ˆ˜๋ฅผ Least Square method๋กœ ์ตœ์ ํ™”ํ•˜๊ธฐ ์œ„ํ•ด์„œ ๊ฐ€ Squared form์ด๋ผ๊ณ  ๊ฐ€์ •ํ•˜๋ฉด ์„ ๋งŒ์กฑํ•˜๋Š” ๋ฅผ ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ๊ณ  ์ด ๋•Œ ๊ฐ€ ์ตœ์†Œ์ด๋ฉด ์˜ ์ œ๊ณฑ์ธ ์—ญ์‹œ ์ตœ์†Œ๊ฐ€ ๋œ๋‹ค. DSO์—์„œ ์˜ ๋ถ€๋ถ„์€ ํฌ๊ธฐ๊ฐ€ ์ƒ๋Œ€์ ์œผ๋กœ ์ž‘์œผ๋ฏ€๋กœ ์ƒ๋žตํ–ˆ๋‹ค. 1.2. Initialization โž” Gauss-Newton Optimization
  • 24. ๋”ฐ๋ผ์„œ ํ•ด๋‹น ๋ฌธ์ œ๋ฅผ ์ตœ์†Œํ™” ๋ฌธ์ œ๋กœ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๊ณ  ์ด ๋•Œ state variable ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. 1๋ฒˆ ์ด๋ฏธ์ง€์—์„œ i๋ฒˆ์งธ inverse depth ๊ฐ’ (N๊ฐœ) ๋‘ ์ด๋ฏธ์ง€ ๊ฐ„ exposure time์„ ๊ณ ๋ คํ•˜์—ฌ ์ด๋ฏธ์ง€ ๋ฐ๊ธฐ๋ฅผ ์กฐ์ ˆํ•˜๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ (2๊ฐœ) Huber function๊นŒ์ง€ ์ ์šฉํ•œ ์—๋Ÿฌ ํ•จ์ˆ˜ (๋˜๋Š” residual) ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. ์œ„ ํ•จ์ˆ˜๋ฅผ Least Square method๋กœ ์ตœ์ ํ™”ํ•˜๊ธฐ ์œ„ํ•ด์„œ ๊ฐ€ Squared form์ด๋ผ๊ณ  ๊ฐ€์ •ํ•˜๋ฉด ์„ ๋งŒ์กฑํ•˜๋Š” ๋ฅผ ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ๊ณ  ์ด ๋•Œ ๊ฐ€ ์ตœ์†Œ์ด๋ฉด ์˜ ์ œ๊ณฑ์ธ ์—ญ์‹œ ์ตœ์†Œ๊ฐ€ ๋œ๋‹ค. DSO์—์„œ ์˜ ๋ถ€๋ถ„์€ ํฌ๊ธฐ๊ฐ€ ์ƒ๋Œ€์ ์œผ๋กœ ์ž‘์œผ๋ฏ€๋กœ ์ƒ๋žตํ–ˆ๋‹ค. ๋‘ ์นด๋ฉ”๋ผ ๊ฐ„ ์ƒ๋Œ€ ํฌ์ฆˆ ๋ณ€ํ™”๋Ÿ‰ (twist)(6์ฐจ์› ๋ฒกํ„ฐ) (6๊ฐœ) 1.2. Initialization โž” Gauss-Newton Optimization
  • 25. ๋Š” ๋น„์„ ํ˜• ํ•จ์ˆ˜์ด๋ฏ€๋กœ non linear least square method๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ตœ์†Œํ™”ํ•ด์•ผ ํ•œ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด Gauss-Newton method๊ฐ€ ์‚ฌ์šฉ๋œ๋‹ค. Gauss-Newton method๋Š” ๋ฐ˜๋ณต์ (Iterative)์œผ๋กœ ๊ฐ’์ด ๊ฐ์†Œํ•˜๋Š” ๋ฅผ ๊ตฌํ•˜์—ฌ ๋น„์„ ํ˜• ํ•จ์ˆ˜๋ฅผ ์ตœ์ ํ™”ํ•˜๋Š” ๋ฐฉ๋ฒ• ์ค‘ ํ•˜๋‚˜์ด๋‹ค. 1.2. Initialization โž” Gauss-Newton Optimization
  • 26. ๋Š” ๋น„์„ ํ˜• ํ•จ์ˆ˜์ด๋ฏ€๋กœ non linear least square method๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ตœ์†Œํ™”ํ•ด์•ผ ํ•œ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด Gauss-Newton method๊ฐ€ ์‚ฌ์šฉ๋œ๋‹ค. ์ž์„ธํ•œ ๊ณผ์ •์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. 1. ๋ฅผ 1์ฐจ ํ…Œ์ผ๋Ÿฌ ์ „๊ฐœํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ทผ์‚ฌํ•  ์ˆ˜ ์žˆ๋‹ค. Gauss-Newton method๋Š” ๋ฐ˜๋ณต์ (Iterative)์œผ๋กœ ๊ฐ’์ด ๊ฐ์†Œํ•˜๋Š” ๋ฅผ ๊ตฌํ•˜์—ฌ ๋น„์„ ํ˜• ํ•จ์ˆ˜๋ฅผ ์ตœ์ ํ™”ํ•˜๋Š” ๋ฐฉ๋ฒ• ์ค‘ ํ•˜๋‚˜์ด๋‹ค. 1.2. Initialization โž” Gauss-Newton Optimization
  • 27. ๋Š” ๋น„์„ ํ˜• ํ•จ์ˆ˜์ด๋ฏ€๋กœ non linear least square method๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ตœ์†Œํ™”ํ•ด์•ผ ํ•œ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด Gauss-Newton method๊ฐ€ ์‚ฌ์šฉ๋œ๋‹ค. ์ž์„ธํ•œ ๊ณผ์ •์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. 1. ๋ฅผ 1์ฐจ ํ…Œ์ผ๋Ÿฌ ์ „๊ฐœํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ทผ์‚ฌํ•  ์ˆ˜ ์žˆ๋‹ค. 2. ์˜ ์ตœ์†Œ๊ฐ’์„ ๊ตฌํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๋ฉด ํ•ด๋‹น ํ•จ์ˆ˜์˜ 1์ฐจ ๋ฏธ๋ถ„์ด 0์ด ๋˜๋Š” ๋ฅผ ๊ตฌํ•˜๋ฉด ๊ทธ ์ ์ด ์ตœ์†Œ๊ฐ€ ๋œ๋‹ค. Gauss-Newton method๋Š” ๋ฐ˜๋ณต์ (Iterative)์œผ๋กœ ๊ฐ’์ด ๊ฐ์†Œํ•˜๋Š” ๋ฅผ ๊ตฌํ•˜์—ฌ ๋น„์„ ํ˜• ํ•จ์ˆ˜๋ฅผ ์ตœ์ ํ™”ํ•˜๋Š” ๋ฐฉ๋ฒ• ์ค‘ ํ•˜๋‚˜์ด๋‹ค. 1.2. Initialization โž” Gauss-Newton Optimization
  • 28. ๋Š” ๋น„์„ ํ˜• ํ•จ์ˆ˜์ด๋ฏ€๋กœ non linear least square method๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ตœ์†Œํ™”ํ•ด์•ผ ํ•œ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด Gauss-Newton method๊ฐ€ ์‚ฌ์šฉ๋œ๋‹ค. ์ž์„ธํ•œ ๊ณผ์ •์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. 1. ๋ฅผ 1์ฐจ ํ…Œ์ผ๋Ÿฌ ์ „๊ฐœํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ทผ์‚ฌํ•  ์ˆ˜ ์žˆ๋‹ค. 2. ์˜ ์ตœ์†Œ๊ฐ’์„ ๊ตฌํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๋ฉด ํ•ด๋‹น ํ•จ์ˆ˜์˜ 1์ฐจ ๋ฏธ๋ถ„์ด 0์ด ๋˜๋Š” ๋ฅผ ๊ตฌํ•˜๋ฉด ๊ทธ ์ ์ด ์ตœ์†Œ๊ฐ€ ๋œ๋‹ค. Gauss-Newton method๋Š” ๋ฐ˜๋ณต์ (Iterative)์œผ๋กœ ๊ฐ’์ด ๊ฐ์†Œํ•˜๋Š” ๋ฅผ ๊ตฌํ•˜์—ฌ ๋น„์„ ํ˜• ํ•จ์ˆ˜๋ฅผ ์ตœ์ ํ™”ํ•˜๋Š” ๋ฐฉ๋ฒ• ์ค‘ ํ•˜๋‚˜์ด๋‹ค. 1.2. Initialization โž” Gauss-Newton Optimization
  • 29. 3. ์˜ ์ตœ์†Œ๊ฐ’์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค. 1.2. Initialization โž” Gauss-Newton Optimization
  • 30. 3. ์˜ ์ตœ์†Œ๊ฐ’์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค. 1.2. Initialization โž” Gauss-Newton Optimization
  • 31. 3. ์˜ ์ตœ์†Œ๊ฐ’์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค. 4. ์œ„ ์‹์„ ์ •๋ฆฌํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์‹์ด ๋‚˜์˜ค๊ณ  1.2. Initialization โž” Gauss-Newton Optimization
  • 32. 3. ์˜ ์ตœ์†Œ๊ฐ’์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค. 4. ์œ„ ์‹์„ ์ •๋ฆฌํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์‹์ด ๋‚˜์˜ค๊ณ  1.2. Initialization โž” Gauss-Newton Optimization
  • 33. 3. ์˜ ์ตœ์†Œ๊ฐ’์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค. 4. ์œ„ ์‹์„ ์ •๋ฆฌํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์‹์ด ๋‚˜์˜ค๊ณ  5. ์ด๋ฅผ ์ปดํŒฉํŠธํ•˜๊ฒŒ ํ‘œํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ์น˜ํ™˜ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. 1.2. Initialization โž” Gauss-Newton Optimization
  • 34. 3. ์˜ ์ตœ์†Œ๊ฐ’์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค. 4. ์œ„ ์‹์„ ์ •๋ฆฌํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์‹์ด ๋‚˜์˜ค๊ณ  5. ์ด๋ฅผ ์ปดํŒฉํŠธํ•˜๊ฒŒ ํ‘œํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ์น˜ํ™˜ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. 1.2. Initialization โž” Gauss-Newton Optimization
  • 35. 3. ์˜ ์ตœ์†Œ๊ฐ’์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค. 4. ์œ„ ์‹์„ ์ •๋ฆฌํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์‹์ด ๋‚˜์˜ค๊ณ  5. ์ด๋ฅผ ์ปดํŒฉํŠธํ•˜๊ฒŒ ํ‘œํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ์น˜ํ™˜ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. 6. ์œ„ ์‹์„ ๊ณ„์‚ฐํ•˜๋ฉด ์ตœ์ ์˜ ๋ฅผ ๊ณ„์‚ฐํ•  ์ˆ˜ ์žˆ๊ณ  ์ด๋ฅผ ๊ธฐ์กด์˜ state variable์— ์—…๋ฐ์ดํŠธ ํ•ด์ค€๋‹ค. 1.2. Initialization โž” Gauss-Newton Optimization
  • 36. 3. ์˜ ์ตœ์†Œ๊ฐ’์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค. 4. ์œ„ ์‹์„ ์ •๋ฆฌํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์‹์ด ๋‚˜์˜ค๊ณ  5. ์ด๋ฅผ ์ปดํŒฉํŠธํ•˜๊ฒŒ ํ‘œํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ์น˜ํ™˜ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. 6. ์œ„ ์‹์„ ๊ณ„์‚ฐํ•˜๋ฉด ์ตœ์ ์˜ ๋ฅผ ๊ณ„์‚ฐํ•  ์ˆ˜ ์žˆ๊ณ  ์ด๋ฅผ ๊ธฐ์กด์˜ state variable์— ์—…๋ฐ์ดํŠธ ํ•ด์ค€๋‹ค. 1.2. Initialization โž” Gauss-Newton Optimization
  • 37. 1.3. Initialization โž” Jacobian Derivation ์•ž์„œ ์–ธ๊ธ‰ํ•œ Gauss Newton method๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ตœ์ ํ™”๋ฅผ ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” Jacobian ๊ณ„์‚ฐ์ด ์„ ํ–‰๋˜์–ด์•ผ ํ•œ๋‹ค.
  • 38. ์•ž์„œ ์–ธ๊ธ‰ํ•œ Gauss Newton method๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ตœ์ ํ™”๋ฅผ ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” Jacobian ๊ณ„์‚ฐ์ด ์„ ํ–‰๋˜์–ด์•ผ ํ•œ๋‹ค. ์˜ state variable ๋ฅผ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ •์˜ํ–ˆ์œผ๋ฏ€๋กœ ์ด N+8๊ฐœ์˜ ๋ณ€์ˆ˜์— ๋Œ€ํ•œ Jacobian์„ ๊ณ„์‚ฐํ•ด์•ผ ํ•œ๋‹ค. (inverse depth(N), relative pose(6), photometric parameters(2)) 1๋ฒˆ ์ด๋ฏธ์ง€์—์„œ i๋ฒˆ์งธ inverse depth ๊ฐ’ (N๊ฐœ) ๋‘ ์นด๋ฉ”๋ผ ๊ฐ„ ์ƒ๋Œ€ ํฌ์ฆˆ ๋ณ€ํ™”๋Ÿ‰ (twist)(6์ฐจ์› ๋ฒกํ„ฐ) (6๊ฐœ) ๋‘ ์ด๋ฏธ์ง€ ๊ฐ„ exposure time์„ ๊ณ ๋ คํ•˜์—ฌ ์ด๋ฏธ์ง€ ๋ฐ๊ธฐ๋ฅผ ์กฐ์ ˆํ•˜๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ (2๊ฐœ) 1.3. Initialization โž” Jacobian Derivation
  • 39. photometric parameter a,b์— ๋Œ€ํ•œ Jacobian์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ณ„์‚ฐํ•  ์ˆ˜ ์žˆ๋‹ค. ์•ž์„œ ์–ธ๊ธ‰ํ•œ Gauss Newton method๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ตœ์ ํ™”๋ฅผ ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” Jacobian ๊ณ„์‚ฐ์ด ์„ ํ–‰๋˜์–ด์•ผ ํ•œ๋‹ค. ์˜ state variable ๋ฅผ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ •์˜ํ–ˆ์œผ๋ฏ€๋กœ ์ด N+8๊ฐœ์˜ ๋ณ€์ˆ˜์— ๋Œ€ํ•œ Jacobian์„ ๊ณ„์‚ฐํ•ด์•ผ ํ•œ๋‹ค. (inverse depth(N), relative pose(6), photometric parameters(2)) 1๋ฒˆ ์ด๋ฏธ์ง€์—์„œ i๋ฒˆ์งธ inverse depth ๊ฐ’ (N๊ฐœ) ๋‘ ์ด๋ฏธ์ง€ ๊ฐ„ exposure time์„ ๊ณ ๋ คํ•˜์—ฌ ์ด๋ฏธ์ง€ ๋ฐ๊ธฐ๋ฅผ ์กฐ์ ˆํ•˜๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ (2๊ฐœ) derivation of photometric parameters ๋‘ ์นด๋ฉ”๋ผ ๊ฐ„ ์ƒ๋Œ€ ํฌ์ฆˆ ๋ณ€ํ™”๋Ÿ‰ (twist)(6์ฐจ์› ๋ฒกํ„ฐ) (6๊ฐœ) 1.3. Initialization โž” Jacobian Derivation
  • 40. derivation of relative pose ์—๋Ÿฌ ํ•จ์ˆ˜ ๊ฐ€ ์นด๋ฉ”๋ผ ํฌ์ฆˆ ๋ณ€ํ™”๋Ÿ‰ ์— ๋”ฐ๋ผ ์–ด๋–ป๊ฒŒ ๋ณ€ํ•˜๋Š” ์ง€ ๊ณ„์‚ฐํ•˜๊ธฐ ์œ„ํ•ด ๋ฅผ ๊ตฌํ•ด์•ผ ํ•œ๋‹ค. 1.3. Initialization โž” Jacobian Derivation
  • 41. derivation of relative pose ๋‹ค์Œ๊ณผ ๊ฐ™์ด Jacobian ์—ฐ์‡„๋ฒ•์น™์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฅผ ์œ ๋„ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด ๊ฐœ๋ณ„ Jacobian๋“ค์„ ๋ชจ๋‘ ๊ตฌํ•ด์•ผ ํ•œ๋‹ค. ์—๋Ÿฌ ํ•จ์ˆ˜ ๊ฐ€ ์นด๋ฉ”๋ผ ํฌ์ฆˆ ๋ณ€ํ™”๋Ÿ‰ ์— ๋”ฐ๋ผ ์–ด๋–ป๊ฒŒ ๋ณ€ํ•˜๋Š” ์ง€ ๊ณ„์‚ฐํ•˜๊ธฐ ์œ„ํ•ด ๋ฅผ ๊ตฌํ•ด์•ผ ํ•œ๋‹ค. 1.3. Initialization โž” Jacobian Derivation
  • 42. derivation of relative pose ๋‹ค์Œ๊ณผ ๊ฐ™์ด Jacobian ์—ฐ์‡„๋ฒ•์น™์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฅผ ์œ ๋„ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด ๊ฐœ๋ณ„ Jacobian๋“ค์„ ๋ชจ๋‘ ๊ตฌํ•ด์•ผ ํ•œ๋‹ค. ์—๋Ÿฌ ํ•จ์ˆ˜ ๊ฐ€ ์นด๋ฉ”๋ผ ํฌ์ฆˆ ๋ณ€ํ™”๋Ÿ‰ ์— ๋”ฐ๋ผ ์–ด๋–ป๊ฒŒ ๋ณ€ํ•˜๋Š” ์ง€ ๊ณ„์‚ฐํ•˜๊ธฐ ์œ„ํ•ด ๋ฅผ ๊ตฌํ•ด์•ผ ํ•œ๋‹ค. 1.3. Initialization โž” Jacobian Derivation
  • 43. derivation of relative pose ๋‹ค์Œ๊ณผ ๊ฐ™์ด Jacobian ์—ฐ์‡„๋ฒ•์น™์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฅผ ์œ ๋„ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด ๊ฐœ๋ณ„ Jacobian๋“ค์„ ๋ชจ๋‘ ๊ตฌํ•ด์•ผ ํ•œ๋‹ค. ๋ฅผ ์—์„œ ๊ฐ๊ฐ x,y ๋ฐฉํ–ฅ์˜ image gradient๋ผ๊ณ  ํ•˜๋ฉด ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค. ์—๋Ÿฌ ํ•จ์ˆ˜ ๊ฐ€ ์นด๋ฉ”๋ผ ํฌ์ฆˆ ๋ณ€ํ™”๋Ÿ‰ ์— ๋”ฐ๋ผ ์–ด๋–ป๊ฒŒ ๋ณ€ํ•˜๋Š” ์ง€ ๊ณ„์‚ฐํ•˜๊ธฐ ์œ„ํ•ด ๋ฅผ ๊ตฌํ•ด์•ผ ํ•œ๋‹ค. 1.3. Initialization โž” Jacobian Derivation
  • 44. derivation of relative pose ๋‹ค์Œ์œผ๋กœ ๋ฅผ ๊ตฌํ•ด๋ณด๋ฉด, ์šฐ์„  ๋Š” 2์ฐจ์› ์ด๋ฏธ์ง€ ํ‰๋ฉด ์ƒ์˜ ์  ์™€ 3์ฐจ์› ๊ณต๊ฐ„ ์ƒ์˜ ์  ์‚ฌ์ด์˜ ๊ด€๊ณ„๋ฅผ ์˜๋ฏธํ•˜๋ฏ€๋กœ 1.3. Initialization โž” Jacobian Derivation
  • 45. derivation of relative pose ๋‹ค์Œ์œผ๋กœ ๋ฅผ ๊ตฌํ•ด๋ณด๋ฉด, ์šฐ์„  ๋Š” 2์ฐจ์› ์ด๋ฏธ์ง€ ํ‰๋ฉด ์ƒ์˜ ์  ์™€ 3์ฐจ์› ๊ณต๊ฐ„ ์ƒ์˜ ์  ์‚ฌ์ด์˜ ๊ด€๊ณ„๋ฅผ ์˜๋ฏธํ•˜๋ฏ€๋กœ ๋‘ ์  ์‚ฌ์ด์—๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ณต์‹์ด ์„ฑ๋ฆฝํ•˜๊ณ  1.3. Initialization โž” Jacobian Derivation
  • 46. derivation of relative pose ๋‹ค์Œ์œผ๋กœ ๋ฅผ ๊ตฌํ•ด๋ณด๋ฉด, ์šฐ์„  ๋Š” 2์ฐจ์› ์ด๋ฏธ์ง€ ํ‰๋ฉด ์ƒ์˜ ์  ์™€ 3์ฐจ์› ๊ณต๊ฐ„ ์ƒ์˜ ์  ์‚ฌ์ด์˜ ๊ด€๊ณ„๋ฅผ ์˜๋ฏธํ•˜๋ฏ€๋กœ ๋‘ ์  ์‚ฌ์ด์—๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ณต์‹์ด ์„ฑ๋ฆฝํ•˜๊ณ  ์œ„ ์‹์„ ํ†ตํ•ด ๊ด€๊ณ„์‹์„ ๋„์ถœํ•  ์ˆ˜ ์žˆ๊ณ  ์ด๋ฅผ ํ† ๋Œ€๋กœ ๋ฅผ ๊ตฌํ•ด๋ณด๋ฉด ์•„๋ž˜์™€ ๊ฐ™๋‹ค. 1.3. Initialization โž” Jacobian Derivation
  • 47. derivation of relative pose 1.3. Initialization โž” Jacobian Derivation ์นด๋ฉ”๋ผ ๊ฐ„ ์ƒ๋Œ€ ํฌ์ฆˆ (transform)(4x4ํ–‰๋ ฌ)(lie group) hat ์—ฐ์‚ฐ์ž๊ฐ€ ์ ์šฉ๋œ twist (4x4ํ–‰๋ ฌ)(lie algebra) ์นด๋ฉ”๋ผ ๊ฐ„ ์ƒ๋Œ€ ํฌ์ฆˆ ๋ณ€ํ™”๋Ÿ‰ (twist)(6์ฐจ์›๋ฒกํ„ฐ) ๋‹ค์Œ์œผ๋กœ ์—์„œ ๋ฅผ ๊ตฌํ•˜๊ธฐ ์ „ ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๋ฉด https://docs.google.com/document/d/1icPjUyT3nPvjZ1OVMtWp9afUtuJ4gXLJL-ex7A9FpNs/edit?usp=sharing http://ethaneade.com/lie.pdf lie theory์— ๋Œ€ํ•ด ๋ณด๋‹ค ์ž์„ธํ•œ ์œ ๋„ ๋ฐ ์„ค๋ช…์€ ์•„๋ž˜ ๋งํฌ ์ฐธ์กฐ
  • 48. derivation of relative pose 1.3. Initialization โž” Jacobian Derivation ์นด๋ฉ”๋ผ ๊ฐ„ ์ƒ๋Œ€ ํฌ์ฆˆ (transform)(4x4ํ–‰๋ ฌ)(lie group) hat ์—ฐ์‚ฐ์ž๊ฐ€ ์ ์šฉ๋œ twist (4x4ํ–‰๋ ฌ)(lie algebra) ์นด๋ฉ”๋ผ ๊ฐ„ ์ƒ๋Œ€ ํฌ์ฆˆ ๋ณ€ํ™”๋Ÿ‰ (twist)(6์ฐจ์›๋ฒกํ„ฐ) ๋‹ค์Œ์œผ๋กœ ์—์„œ ๋ฅผ ๊ตฌํ•˜๊ธฐ ์ „ ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๋ฉด ๋Š” 3์ฐจ์› ์นด๋ฉ”๋ผ์˜ ํฌ์ฆˆ ๋ณ€ํ™”๋Ÿ‰์„ ์˜๋ฏธํ•˜๊ณ  twist๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค. https://docs.google.com/document/d/1icPjUyT3nPvjZ1OVMtWp9afUtuJ4gXLJL-ex7A9FpNs/edit?usp=sharing http://ethaneade.com/lie.pdf lie theory์— ๋Œ€ํ•ด ๋ณด๋‹ค ์ž์„ธํ•œ ์œ ๋„ ๋ฐ ์„ค๋ช…์€ ์•„๋ž˜ ๋งํฌ ์ฐธ์กฐ
  • 49. derivation of relative pose 1.3. Initialization โž” Jacobian Derivation ์นด๋ฉ”๋ผ ๊ฐ„ ์ƒ๋Œ€ ํฌ์ฆˆ (transform)(4x4ํ–‰๋ ฌ)(lie group) hat ์—ฐ์‚ฐ์ž๊ฐ€ ์ ์šฉ๋œ twist (4x4ํ–‰๋ ฌ)(lie algebra) ์นด๋ฉ”๋ผ ๊ฐ„ ์ƒ๋Œ€ ํฌ์ฆˆ ๋ณ€ํ™”๋Ÿ‰ (twist)(6์ฐจ์›๋ฒกํ„ฐ) https://docs.google.com/document/d/1icPjUyT3nPvjZ1OVMtWp9afUtuJ4gXLJL-ex7A9FpNs/edit?usp=sharing http://ethaneade.com/lie.pdf lie theory์— ๋Œ€ํ•ด ๋ณด๋‹ค ์ž์„ธํ•œ ์œ ๋„ ๋ฐ ์„ค๋ช…์€ ์•„๋ž˜ ๋งํฌ ์ฐธ์กฐ ๋‹ค์Œ์œผ๋กœ ์—์„œ ๋ฅผ ๊ตฌํ•˜๊ธฐ ์ „ ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๋ฉด ๋Š” 3์ฐจ์› ์นด๋ฉ”๋ผ์˜ ํฌ์ฆˆ ๋ณ€ํ™”๋Ÿ‰์„ ์˜๋ฏธํ•˜๊ณ  twist๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค. ๋Š” twist์— hat operator๋ฅผ ์ ์šฉํ•œ ๊ฐ’์œผ๋กœ์จ Lie algebra of SE(3)๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค. ์œ„ ๊ฐ’์— exponential mapping์„ ์ ์šฉํ•˜๋ฉด 4x4 ํ–‰๋ ฌ์˜ 3์ฐจ์› ํฌ์ฆˆ ๋กœ ๋ณ€ํ™˜ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋ฅผ Lie group of SE(3)๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค. ์ž์„ธํ•˜๊ฒŒ ํ‘œํ˜„ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. linear velocity angular velocity
  • 50. derivation of relative pose ๋ฅผ ์œ ๋„ํ•ด๋ณด๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. https://docs.google.com/document/d/1icPjUyT3nPvjZ1OVMtWp9afUtuJ4gXLJL-ex7A9FpNs/edit?usp=sharing http://ethaneade.com/lie.pdf lie theory์— ๋Œ€ํ•ด ๋ณด๋‹ค ์ž์„ธํ•œ ์œ ๋„ ๋ฐ ์„ค๋ช…์€ ์•„๋ž˜ ๋งํฌ ์ฐธ์กฐ 1.3. Initialization โž” Jacobian Derivation
  • 51. derivation of relative pose ์ง€๊ธˆ๊นŒ์ง€ ์œ ๋„ํ•œ ๊ณต์‹๋“ค์„ ๊ฒฐํ•ฉํ•˜์—ฌ ํ•˜๋‚˜์˜ Jacobian of relative pose๋กœ ํ‘œํ˜„ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. 1.3. Initialization โž” Jacobian Derivation
  • 52. derivation of relative pose ์ง€๊ธˆ๊นŒ์ง€ ์œ ๋„ํ•œ ๊ณต์‹๋“ค์„ ๊ฒฐํ•ฉํ•˜์—ฌ ํ•˜๋‚˜์˜ Jacobian of relative pose๋กœ ํ‘œํ˜„ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. 1.3. Initialization โž” Jacobian Derivation
  • 53. derivation of relative pose ์ง€๊ธˆ๊นŒ์ง€ ์œ ๋„ํ•œ ๊ณต์‹๋“ค์„ ๊ฒฐํ•ฉํ•˜์—ฌ ํ•˜๋‚˜์˜ Jacobian of relative pose๋กœ ํ‘œํ˜„ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. 1.3. Initialization โž” Jacobian Derivation
  • 54. derivation of inverse depth ๋งˆ์ง€๋ง‰์œผ๋กœ Jacobian of inverse depth ๋ฅผ ์œ ๋„ํ•ด์•ผ ํ•œ๋‹ค. ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์—ฌ๋Ÿฌ ์—ฐ์‡„์ ์ธ Jacobian์˜ ๊ณฑ์œผ๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค. 1.3. Initialization โž” Jacobian Derivation
  • 55. derivation of inverse depth ๋งˆ์ง€๋ง‰์œผ๋กœ Jacobian of inverse depth ๋ฅผ ์œ ๋„ํ•ด์•ผ ํ•œ๋‹ค. ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์—ฌ๋Ÿฌ ์—ฐ์‡„์ ์ธ Jacobian์˜ ๊ณฑ์œผ๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด ๋•Œ, ๋Š” ์ด์ „์— ๋ฏธ๋ฆฌ ๊ตฌํ–ˆ์œผ๋ฏ€๋กœ ๋งŒ ์ถ”๊ฐ€์ ์œผ๋กœ ๊ตฌํ•˜๋ฉด ๋œ๋‹ค. 1.3. Initialization โž” Jacobian Derivation
  • 56. derivation of inverse depth ์—์„œ ๋Š” 3์ฐจ์› ๊ณต๊ฐ„ ์ƒ์˜ ์  ๊ณผ Inverse depth ์‚ฌ์ด์˜ ๊ด€๊ณ„๋ฅผ ๋‚˜ํƒ€๋‚ด๋ฏ€๋กœ ์ด๋ฅผ ๊ณต์‹์œผ๋กœ ํ‘œํ˜„ํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™๋‹ค. i๋ฒˆ ์นด๋ฉ”๋ผ ์ขŒํ‘œ๊ณ„์—์„œ 3์ฐจ์› ๊ณต๊ฐ„ ์ƒ์˜ ํ•œ ์  2์ฐจ์› ์ด๋ฏธ์ง€ ํ‰๋ฉด ์ƒ์˜ ํ•œ ์  1๋ฒˆ์—์„œ 2๋ฒˆ ์นด๋ฉ”๋ผ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ํšŒ์ „ํ–‰๋ ฌ (3x3ํ–‰๋ ฌ) 1๋ฒˆ ์นด๋ฉ”๋ผ ์ขŒํ‘œ๊ณ„์—์„œ ํ•œ ์ ์˜ ๊นŠ์ด ๊ฐ’์˜ ์—ญ์ˆ˜ (inverse depth) 1๋ฒˆ์—์„œ 2๋ฒˆ ์นด๋ฉ”๋ผ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๋ณ‘์ง„ํ–‰๋ ฌ (3x1๋ฒกํ„ฐ) 1.3. Initialization โž” Jacobian Derivation
  • 57. derivation of inverse depth ์—์„œ ๋Š” 3์ฐจ์› ๊ณต๊ฐ„ ์ƒ์˜ ์  ๊ณผ Inverse depth ์‚ฌ์ด์˜ ๊ด€๊ณ„๋ฅผ ๋‚˜ํƒ€๋‚ด๋ฏ€๋กœ ์ด๋ฅผ ๊ณต์‹์œผ๋กœ ํ‘œํ˜„ํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™๋‹ค. i๋ฒˆ ์นด๋ฉ”๋ผ ์ขŒํ‘œ๊ณ„์—์„œ 3์ฐจ์› ๊ณต๊ฐ„ ์ƒ์˜ ํ•œ ์  2์ฐจ์› ์ด๋ฏธ์ง€ ํ‰๋ฉด ์ƒ์˜ ํ•œ ์  1๋ฒˆ์—์„œ 2๋ฒˆ ์นด๋ฉ”๋ผ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ํšŒ์ „ํ–‰๋ ฌ (3x3ํ–‰๋ ฌ) 1๋ฒˆ ์นด๋ฉ”๋ผ ์ขŒํ‘œ๊ณ„์—์„œ ํ•œ ์ ์˜ ๊นŠ์ด ๊ฐ’์˜ ์—ญ์ˆ˜ (inverse depth) 1๋ฒˆ์—์„œ 2๋ฒˆ ์นด๋ฉ”๋ผ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๋ณ‘์ง„ํ–‰๋ ฌ (3x1๋ฒกํ„ฐ) ์œ„ ๊ด€๊ณ„์‹์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฅผ ๊ตฌํ•ด๋ณด๋ฉด ์•„๋ž˜์™€ ๊ฐ™๋‹ค. 1.3. Initialization โž” Jacobian Derivation
  • 58. derivation of inverse depth ์—์„œ ๋Š” 3์ฐจ์› ๊ณต๊ฐ„ ์ƒ์˜ ์  ๊ณผ Inverse depth ์‚ฌ์ด์˜ ๊ด€๊ณ„๋ฅผ ๋‚˜ํƒ€๋‚ด๋ฏ€๋กœ ์ด๋ฅผ ๊ณต์‹์œผ๋กœ ํ‘œํ˜„ํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™๋‹ค. i๋ฒˆ ์นด๋ฉ”๋ผ ์ขŒํ‘œ๊ณ„์—์„œ 3์ฐจ์› ๊ณต๊ฐ„ ์ƒ์˜ ํ•œ ์  2์ฐจ์› ์ด๋ฏธ์ง€ ํ‰๋ฉด ์ƒ์˜ ํ•œ ์  1๋ฒˆ์—์„œ 2๋ฒˆ ์นด๋ฉ”๋ผ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ํšŒ์ „ํ–‰๋ ฌ (3x3ํ–‰๋ ฌ) 1๋ฒˆ ์นด๋ฉ”๋ผ ์ขŒํ‘œ๊ณ„์—์„œ ํ•œ ์ ์˜ ๊นŠ์ด ๊ฐ’์˜ ์—ญ์ˆ˜ (inverse depth) 1๋ฒˆ์—์„œ 2๋ฒˆ ์นด๋ฉ”๋ผ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๋ณ‘์ง„ํ–‰๋ ฌ (3x1๋ฒกํ„ฐ) ์œ„ ๊ด€๊ณ„์‹์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฅผ ๊ตฌํ•ด๋ณด๋ฉด ์•„๋ž˜์™€ ๊ฐ™๋‹ค. ๋”ฐ๋ผ์„œ ์—์„œ ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค. 1.3. Initialization โž” Jacobian Derivation
  • 59. Jacobians in DSO Initialization ์ •๋ฆฌํ•ด๋ณด๋ฉด Initialization์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์ž์ฝ”๋น„์•ˆ๋“ค์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค. ์ฐธ๊ณ ๋กœ ์ด ํ›„ 8๊ฐœ์˜ keyframe๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ sliding window optimization๋ฅผ ์ˆ˜ํ–‰ํ•  ๋•Œ๋Š” camera intrinsics( )๊ฐ€ ์ตœ์ ํ™”์— ํฌํ•จ๋˜๋ฏ€๋กœ ์ด 12+N๊ฐœ์˜ ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ ์ตœ์ ํ™” ๋ณ€์ˆ˜๊ฐ€ ๋œ๋‹ค. (pose(6), photometric(2), intrinsics(4), idepth(N)) ํ•˜์ง€๋งŒ Initialization ๊ณผ์ •์—์„œ๋Š” intrinsics๋Š” ํฌํ•จ๋˜์ง€ ์•Š์œผ๋ฏ€๋กœ 8+N๊ฐœ์˜ ํŒŒ๋ผ๋ฏธํ„ฐ๋งŒ ์ตœ์ ํ™”์— ์‚ฌ์šฉ๋œ๋‹ค. photometric(2)pose(6)idepth(N) 1.3. Initialization โž” Jacobian Derivation
  • 60. idepth(N), pose(6), photometric (2) ๋ชจ๋‘์— ๋Œ€ํ•œ Jacobian์„ ์œ ๋„ํ–ˆ์œผ๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด ํ•ฉ์ณ์ค€๋‹ค. 1.3. Initialization โž” Jacobian Derivation
  • 61. ์ตœ์ข…์ ์œผ๋กœ ์œ„ Jacobian ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ state variable ๋ฅผ ์—…๋ฐ์ดํŠธํ•  ์ˆ˜ ์žˆ๋‹ค. idepth(N), pose(6), photometric (2) ๋ชจ๋‘์— ๋Œ€ํ•œ Jacobian์„ ์œ ๋„ํ–ˆ์œผ๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด ํ•ฉ์ณ์ค€๋‹ค. 1.3. Initialization โž” Jacobian Derivation
  • 62. 1.4. Initialization โž” Solving the incremental equation (Schur Complement) Jacobian๊นŒ์ง€ ๋ชจ๋‘ ์œ ๋„๋ฅผ ๋งˆ์ณค์œผ๋ฉด Gauss Newton method๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์•„๋ž˜์™€ ๊ฐ™์€ ์ตœ์ ํ™”๋ฅผ ๋ฐ˜๋ณตํ•ด์„œ ํ’€์–ด์•ผ ํ•œ๋‹ค.
  • 63. Jacobian๊นŒ์ง€ ๋ชจ๋‘ ์œ ๋„๋ฅผ ๋งˆ์ณค์œผ๋ฉด Gauss Newton method๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์•„๋ž˜์™€ ๊ฐ™์€ ์ตœ์ ํ™”๋ฅผ ๋ฐ˜๋ณตํ•ด์„œ ํ’€์–ด์•ผ ํ•œ๋‹ค. ํ•˜์ง€๋งŒ ์‹ค์ œ ์œ„ ์ตœ์ ํ™” ๊ณต์‹์„ ๋ฐ˜๋ณต์ ์œผ๋กœ ํ’€๋ฉด ๋งค์šฐ ๋Š๋ฆฐ ์†๋„๋กœ ์ธํ•ด ์ •์ƒ์ ์œผ๋กœ Pose tracking์„ ํ•  ์ˆ˜ ์—†๋‹ค. ์ด๋Š” ๋ฅผ ๊ณ„์‚ฐํ•  ๋•Œ ๋งค์šฐ ํฐ ํ–‰๋ ฌ์˜ ํŠน์„ฑ ์ƒ ์—ญํ•จ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š”๋ฐ ๋งค์šฐ ๋งŽ์€ ์‹œ๊ฐ„์ด ์†Œ๋ชจ๋˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ํ•ด๋‹น ๊ณต์‹์„ ์กฐ๊ธˆ ๋” ์ž์„ธํžˆ ํ‘œํ˜„ํ•ด๋ณด๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. (-)๋ถ€ํ˜ธ๋ฅผ b ์•ˆ์œผ๋กœ ์‚ฝ์ž… 1.4. Initialization โž” Solving the incremental equation (Schur Complement)
  • 64. idepth (N) pose + photometric (8) idepth (N) pose + photometric (8) Hessian Matrix ๋ฅผ ์ „๊ฐœํ•˜๋ฉด ๋‚ด๋ถ€ ๊ตฌ์กฐ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค 1.4. Initialization โž” Solving the incremental equation (Schur Complement)
  • 65. ์ผ๋ฐ˜์ ์ธ ๊ฒฝ์šฐ 3์ฐจ์› ์ ์˜ ๊ฐœ์ˆ˜๊ฐ€ ์นด๋ฉ”๋ผ pose๋ณด๋‹ค ํ›จ์”ฌ ๋งŽ์œผ๋ฏ€๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฑฐ๋Œ€ํ•œ matrix๊ฐ€ ์ƒ์„ฑ๋œ๋‹ค. ๋”ฐ๋ผ์„œ ์—ญํ–‰๋ ฌ์„ ๊ณ„์‚ฐํ•  ๋•Œ ๋งค์šฐ ํฐ ์—ฐ์‚ฐ์‹œ๊ฐ„์ด ์†Œ์š”๋˜๋ฏ€๋กœ ์ด๋ฅผ ๋น ๋ฅด๊ฒŒ ๊ณ„์‚ฐํ•  ์ˆ˜ ์žˆ๋Š” ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์ด ํ•„์š”ํ•˜๋‹ค large computational cost! real world data 1.4. Initialization โž” Solving the incremental equation (Schur Complement)
  • 66. ์ด ๋•Œ, Schur Complement๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด computational cost๋ฅผ ๋Œ€ํญ ๋‚ฎ์ถœ ์ˆ˜ ์žˆ๋‹ค 1.4. Initialization โž” Solving the incremental equation (Schur Complement)
  • 67. ์ด ๋•Œ, Schur Complement๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด computational cost๋ฅผ ๋Œ€ํญ ๋‚ฎ์ถœ ์ˆ˜ ์žˆ๋‹ค ์ด๋ฅผ ์œ„ํ•ด ์–‘๋ณ€์— ์•„๋ž˜์™€ ๊ฐ™์€ ํŠน์ˆ˜ํ•œ ํ˜•ํƒœ์˜ ํ–‰๋ ฌ์„ ์–‘๋ณ€์— ๊ณฑํ•ด์ค€๋‹ค. 1.4. Initialization โž” Solving the incremental equation (Schur Complement)
  • 68. ์ด ๋•Œ, Schur Complement๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด computational cost๋ฅผ ๋Œ€ํญ ๋‚ฎ์ถœ ์ˆ˜ ์žˆ๋‹ค ์ด๋ฅผ ์œ„ํ•ด ์–‘๋ณ€์— ์•„๋ž˜์™€ ๊ฐ™์€ ํŠน์ˆ˜ํ•œ ํ˜•ํƒœ์˜ ํ–‰๋ ฌ์„ ์–‘๋ณ€์— ๊ณฑํ•ด์ค€๋‹ค. 1 ์œ„ ์‹์„ ์ „๊ฐœํ•ด์„œ ์˜ ๊ฐ’์„ ์ˆœ์ฐจ์ ์œผ๋กœ ๊ณ„์‚ฐํ•  ์ˆ˜ ์žˆ๋‹ค. ์œ„ ์‹์„ ์ „๊ฐœํ•˜๋ฉด ๋งŒ ์กด์žฌํ•˜๋Š” ํ•ญ์ด ์œ ๋„๋œ๋‹ค. 1.4. Initialization โž” Solving the incremental equation (Schur Complement)
  • 69. ์ด ๋•Œ, Schur Complement๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด computational cost๋ฅผ ๋Œ€ํญ ๋‚ฎ์ถœ ์ˆ˜ ์žˆ๋‹ค ์ด๋ฅผ ์œ„ํ•ด ์–‘๋ณ€์— ์•„๋ž˜์™€ ๊ฐ™์€ ํŠน์ˆ˜ํ•œ ํ˜•ํƒœ์˜ ํ–‰๋ ฌ์„ ์–‘๋ณ€์— ๊ณฑํ•ด์ค€๋‹ค. ์œ„ ์‹์„ ํ†ตํ•ด ๋ฅผ ๋จผ์ € ๊ณ„์‚ฐํ•œ ํ›„ ์ด๋ฅผ ํ† ๋Œ€๋กœ ๋ฅผ ๊ณ„์‚ฐํ•œ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์—ญํ–‰๋ ฌ์„ ๊ตฌํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ๋”์šฑ ๋น ๋ฅด๊ฒŒ ์ตœ์ ํ™” ๊ณต์‹์„ ํ’€ ์ˆ˜ ์žˆ๋‹ค. 2 1.4. Initialization โž” Solving the incremental equation (Schur Complement) 1 ์œ„ ์‹์„ ์ „๊ฐœํ•ด์„œ ์˜ ๊ฐ’์„ ์ˆœ์ฐจ์ ์œผ๋กœ ๊ณ„์‚ฐํ•  ์ˆ˜ ์žˆ๋‹ค. ์œ„ ์‹์„ ์ „๊ฐœํ•˜๋ฉด ๋งŒ ์กด์žฌํ•˜๋Š” ํ•ญ์ด ์œ ๋„๋œ๋‹ค.
  • 70. Inverse depth์™€ ๊ด€๋ จ ์žˆ๋Š” ํ•ญ์ธ ๋Š” N x N ํฌ๊ธฐ์˜ ๋Œ€๊ฐํ–‰๋ ฌ(diagonal matrix)์ด๋ฏ€๋กœ ์‰ฝ๊ฒŒ ์—ญํ–‰๋ ฌ์„ ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋˜ํ•œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋น„๊ต์  ๊ฐ„๋‹จํ•˜๊ฒŒ ๊ณ„์‚ฐํ•  ์ˆ˜ ์žˆ๋‹ค. 1.4. Initialization โž” Solving the incremental equation (Schur Complement)
  • 71. Inverse depth์™€ ๊ด€๋ จ ์žˆ๋Š” ํ•ญ์ธ ๋Š” N x N ํฌ๊ธฐ์˜ ๋Œ€๊ฐํ–‰๋ ฌ(diagonal matrix)์ด๋ฏ€๋กœ ์‰ฝ๊ฒŒ ์—ญํ–‰๋ ฌ์„ ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋˜ํ•œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋น„๊ต์  ๊ฐ„๋‹จํ•˜๊ฒŒ ๊ณ„์‚ฐํ•  ์ˆ˜ ์žˆ๋‹ค. ์ตœ์ข…์ ์œผ๋กœ damping ๊ณ„์ˆ˜ ๊ธฐ๋ฐ˜์˜ Levenberg-Marquardt ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•˜์—ฌ Optimization์„ ์ˆ˜ํ–‰ํ•œ๋‹ค. 1.4. Initialization โž” Solving the incremental equation (Schur Complement)
  • 73. keyframe frame ? ์ƒˆ๋กœ์šด ์ด๋ฏธ์ง€๊ฐ€ ๋“ค์–ด์˜ค๋ฉด ํ•ด๋‹น ์ด๋ฏธ์ง€์— ํ•ด๋‹นํ•˜๋Š” 3์ฐจ์› ์ž์„ธ๋ฅผ ์•„์ง ๋ชจ๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ฅผ ์˜ˆ์ธกํ•˜๊ธฐ ์œ„ํ•ด DSO๋Š” ๊ฐ€์žฅ ์ตœ๊ทผ ๋‘ ํ”„๋ ˆ์ž„ ๊ณผ ๊ฐ€์žฅ ๊ทผ์ ‘ํ•œ ํ‚คํ”„๋ ˆ์ž„ ์˜ ์ •๋ณด๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. 2.1. Frames โž” Pose Tracking
  • 74. Keyframe Frame Pose candidates ๋‘ ํ”„๋ ˆ์ž„๊ณผ ํ•œ ๊ฐœ์˜ ํ‚คํ”„๋ ˆ์ž„์„ ๋ฐ”ํƒ•์œผ๋กœ ์ด๋“ค์˜ ์ƒ๋Œ€ ํฌ์ฆˆ๋ฅผ ๊ตฌํ•œ ํ›„ ์ •์ง€, ์ง์ง„, ํ›„์ง„, ํšŒ์ „ ๋“ฑ ๋‹ค์–‘ํ•œ ์ผ€์ด์Šค๋ฅผ ์˜ˆ์ธกํ•œ๋‹ค. ์ƒˆ๋กœ์šด ์ด๋ฏธ์ง€๊ฐ€ ๋“ค์–ด์˜ค๋ฉด ํ•ด๋‹น ์ด๋ฏธ์ง€์— ํ•ด๋‹นํ•˜๋Š” 3์ฐจ์› ์ž์„ธ๋ฅผ ์•„์ง ๋ชจ๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ฅผ ์˜ˆ์ธกํ•˜๊ธฐ ์œ„ํ•ด DSO๋Š” ๊ฐ€์žฅ ์ตœ๊ทผ ๋‘ ํ”„๋ ˆ์ž„ ๊ณผ ๊ฐ€์žฅ ๊ทผ์ ‘ํ•œ ํ‚คํ”„๋ ˆ์ž„ ์˜ ์ •๋ณด๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํฌ์ฆˆ ์˜ˆ์ธก 2.1. Frames โž” Pose Tracking
  • 75. Keyframe Frame Pose candidates ๋‘ ํ”„๋ ˆ์ž„๊ณผ ํ•œ ๊ฐœ์˜ ํ‚คํ”„๋ ˆ์ž„์„ ๋ฐ”ํƒ•์œผ๋กœ ์ด๋“ค์˜ ์ƒ๋Œ€ ํฌ์ฆˆ๋ฅผ ๊ตฌํ•œ ํ›„ ์ •์ง€, ์ง์ง„, ํ›„์ง„, ํšŒ์ „ ๋“ฑ ๋‹ค์–‘ํ•œ ์ผ€์ด์Šค๋ฅผ ์˜ˆ์ธกํ•œ๋‹ค. ์ƒˆ๋กœ์šด ์ด๋ฏธ์ง€๊ฐ€ ๋“ค์–ด์˜ค๋ฉด ํ•ด๋‹น ์ด๋ฏธ์ง€์— ํ•ด๋‹นํ•˜๋Š” 3์ฐจ์› ์ž์„ธ๋ฅผ ์•„์ง ๋ชจ๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ฅผ ์˜ˆ์ธกํ•˜๊ธฐ ์œ„ํ•ด DSO๋Š” ๊ฐ€์žฅ ์ตœ๊ทผ ๋‘ ํ”„๋ ˆ์ž„ ๊ณผ ๊ฐ€์žฅ ๊ทผ์ ‘ํ•œ ํ‚คํ”„๋ ˆ์ž„ ์˜ ์ •๋ณด๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํฌ์ฆˆ ์˜ˆ์ธก ์ด ๋•Œ ๊ฐ€์žฅ ๋†’์€ ์ด๋ฏธ์ง€ ํ”ผ๋ผ๋ฏธ๋“œ(๊ฐ€์žฅ ์ž‘์€)๋ถ€ํ„ฐ ๋‚ฎ์€ ์ด๋ฏธ์ง€ ํ”ผ๋ผ๋ฏธ๋“œ(์›๋ณธ)๊นŒ์ง€ ์ˆœ์ฐจ์ ์œผ๋กœ ์‚ฌ ์šฉํ•˜๋Š” coarse-to-fine ๋ฐฉ๋ฒ•์„ ํ†ตํ•ด ํ˜„์žฌ ํ”„๋ ˆ์ž„์˜ 3์ฐจ์› ์ž์„ธ๋ฅผ ์˜ˆ์ธกํ•œ๋‹ค. 2.1. Frames โž” Pose Tracking
  • 76. Keyframe Frame Pose candidates ๋‘ ํ”„๋ ˆ์ž„๊ณผ ํ•œ ๊ฐœ์˜ ํ‚คํ”„๋ ˆ์ž„์„ ๋ฐ”ํƒ•์œผ๋กœ ์ด๋“ค์˜ ์ƒ๋Œ€ ํฌ์ฆˆ๋ฅผ ๊ตฌํ•œ ํ›„ ์ •์ง€, ์ง์ง„, ํ›„์ง„, ํšŒ์ „ ๋“ฑ ๋‹ค์–‘ํ•œ ์ผ€์ด์Šค๋ฅผ ์˜ˆ์ธกํ•œ๋‹ค. ์ƒˆ๋กœ์šด ์ด๋ฏธ์ง€๊ฐ€ ๋“ค์–ด์˜ค๋ฉด ํ•ด๋‹น ์ด๋ฏธ์ง€์— ํ•ด๋‹นํ•˜๋Š” 3์ฐจ์› ์ž์„ธ๋ฅผ ์•„์ง ๋ชจ๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ฅผ ์˜ˆ์ธกํ•˜๊ธฐ ์œ„ํ•ด DSO๋Š” ๊ฐ€์žฅ ์ตœ๊ทผ ๋‘ ํ”„๋ ˆ์ž„ ๊ณผ ๊ฐ€์žฅ ๊ทผ์ ‘ํ•œ ํ‚คํ”„๋ ˆ์ž„ ์˜ ์ •๋ณด๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํฌ์ฆˆ ์˜ˆ์ธก ์ด ๋•Œ ๊ฐ€์žฅ ๋†’์€ ์ด๋ฏธ์ง€ ํ”ผ๋ผ๋ฏธ๋“œ(๊ฐ€์žฅ ์ž‘์€)๋ถ€ํ„ฐ ๋‚ฎ์€ ์ด๋ฏธ์ง€ ํ”ผ๋ผ๋ฏธ๋“œ(์›๋ณธ)๊นŒ์ง€ ์ˆœ์ฐจ์ ์œผ๋กœ ์‚ฌ ์šฉํ•˜๋Š” coarse-to-fine ๋ฐฉ๋ฒ•์„ ํ†ตํ•ด ํ˜„์žฌ ํ”„๋ ˆ์ž„์˜ 3์ฐจ์› ์ž์„ธ๋ฅผ ์˜ˆ์ธกํ•œ๋‹ค. ๊ฐ ํฌ์ฆˆ ํ›„๋ณด๋งˆ๋‹ค ์ˆœ์ฐจ์ ์œผ๋กœ ๋ฐ๊ธฐ ์˜ค์ฐจ(Photometric Error)๋ฅผ ๊ณ„์‚ฐํ•˜๊ณ  ์ด๋ฅผ ์ตœ์ ํ™”ํ•˜์—ฌ ์ตœ์ ์˜ ํฌ ์ฆˆ๋ฅผ ๊ตฌํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ตœ์ ์˜ ํฌ์ฆˆ์—์„œ ๋‹ค์‹œ ํ•œ ๋ฒˆ ๋ฐ๊ธฐ ์˜ค์ฐจ๋ฅผ ๊ตฌํ•œ ํ›„(resNew) ์ด์ „ ์˜ค์ฐจ (resOld)์™€ ๋น„๊ตํ•˜์—ฌ ์ถฉ๋ถ„ํžˆ ์˜ค์ฐจ๊ฐ€ ๊ฐ์†Œํ•˜์˜€๋Š”์ง€ ํŒ๋‹จํ•œ๋‹ค. ์ถฉ๋ถ„ํžˆ ๊ฐ์†Œํ•˜์˜€๋‹ค๋ฉด ๋‹ค๋ฅธ ํฌ์ฆˆ ํ›„๋ณด๋ฅผ ๊ณ ๋ คํ•˜์ง€ ์•Š๊ณ  ๋ฃจํ”„๋ฅผ ํƒˆ์ถœํ•œ๋‹ค. (coarseTracker::trackNewestCoarse() ํ•จ์ˆ˜ ์ฐธ์กฐ) 2.1. Frames โž” Pose Tracking
  • 77. i๋ฒˆ์งธ ์ด๋ฏธ์ง€์—์„œ j๋ฒˆ์งธ ์ ์˜ ๋ฐ๊ธฐ (grayscale)(intensity)(0~255๋‹จ์œ„) i๋ฒˆ์งธ ์ด๋ฏธ์ง€๊ฐ€ ์ดฌ์˜๋œ ์ˆœ๊ฐ„์˜ exposure time (๋˜๋Š” Shutter time)(ms๋‹จ์œ„) ๋‘ ์ด๋ฏธ์ง€ ๊ฐ„ exposure time์„ ๊ณ ๋ คํ•˜์—ฌ ์ด๋ฏธ์ง€ ๋ฐ๊ธฐ๋ฅผ ์กฐ์ ˆํ•˜๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ ์—ฌ๋Ÿฌ ํ›„๋ณด ํฌ์ฆˆ๋“ค ์ค‘ ํ•˜๋‚˜์˜ ํฌ์ฆˆ๋ฅผ ์„ ํƒํ•œ ํ›„ ๋ฐ๊ธฐ ์˜ค์ฐจ(Photometric Error)๋ฅผ ๊ณ„์‚ฐํ•œ๋‹ค. 2.1. Frames โž” Pose Tracking
  • 78. i๋ฒˆ์งธ ์ด๋ฏธ์ง€์—์„œ j๋ฒˆ์งธ ์ ์˜ ๋ฐ๊ธฐ (grayscale)(intensity)(0~255๋‹จ์œ„) i๋ฒˆ์งธ ์ด๋ฏธ์ง€๊ฐ€ ์ดฌ์˜๋œ ์ˆœ๊ฐ„์˜ exposure time (๋˜๋Š” Shutter time)(ms๋‹จ์œ„) ๋‘ ์ด๋ฏธ์ง€ ๊ฐ„ exposure time์„ ๊ณ ๋ คํ•˜์—ฌ ์ด๋ฏธ์ง€ ๋ฐ๊ธฐ๋ฅผ ์กฐ์ ˆํ•˜๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ ์—ฌ๋Ÿฌ ํ›„๋ณด ํฌ์ฆˆ๋“ค ์ค‘ ํ•˜๋‚˜์˜ ํฌ์ฆˆ๋ฅผ ์„ ํƒํ•œ ํ›„ ๋ฐ๊ธฐ ์˜ค์ฐจ(Photometric Error)๋ฅผ ๊ณ„์‚ฐํ•œ๋‹ค. ์ด ๋•Œ, ํ•œ ์ ์˜ ๊ด‘๋„ ์˜ค์ฐจ๋งŒ ๊ณ„์‚ฐํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ ์ฃผ๋ณ€ 8๊ฐœ์˜ ์ ๋“ค์˜ ๋ฐ๊ธฐ ์˜ค์ฐจ๋ฅผ ๋ชจ๋‘ ๊ณ„์‚ฐํ•œ๋‹ค. 2.1. Frames โž” Pose Tracking
  • 79. ์—ฌ๋Ÿฌ ํ›„๋ณด ํฌ์ฆˆ๋“ค ์ค‘ ํ•˜๋‚˜์˜ ํฌ์ฆˆ๋ฅผ ์„ ํƒํ•œ ํ›„ ๋ฐ๊ธฐ ์˜ค์ฐจ(Photometric Error)๋ฅผ ๊ณ„์‚ฐํ•œ๋‹ค. ์ด ๋•Œ, ํ•œ ์ ์˜ ๊ด‘๋„ ์˜ค์ฐจ๋งŒ ๊ณ„์‚ฐํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ ์ฃผ๋ณ€ 8๊ฐœ์˜ ์ ๋“ค์˜ ๋ฐ๊ธฐ ์˜ค์ฐจ๋ฅผ ๋ชจ๋‘ ๊ณ„์‚ฐํ•œ๋‹ค. Initialization ๋‹จ๊ณ„์™€ ๋‹ค๋ฅด๊ฒŒ ์ดˆ๊ธฐ๊ฐ’ b0 ์ถ”๊ฐ€๋จ ๋‹ค์Œ์œผ๋กœ ํ•ด๋‹น ๋น„์„ ํ˜• ํ•จ์ˆ˜๋ฅผ ์ตœ์ ํ™”ํ•˜๊ธฐ ์œ„ํ•ด Jacobian์„ ๊ณ„์‚ฐํ•œ๋‹ค. ํ•ด๋‹น Jacobian์€ ์ด๋ฏธ Initialization ๋‹จ๊ณ„์—์„œ ์œ ๋„ ํ–ˆ์œผ๋ฏ€๋กœ ์œ ๋„ ๊ณผ์ •์€ ์ƒ๋žตํ•œ๋‹ค. ์ด ๋•Œ, ์—์„œ ๋งŒ ์šฐ์„  ๊ณ ๋ คํ•œ๋‹ค. 2.1. Frames โž” Pose Tracking
  • 80. ํ•ด๋‹น Jacobian์„ ์‚ฌ์šฉํ•˜์—ฌ , ๋ฅผ ๊ฐ๊ฐ ๊ณ„์‚ฐํ•œ๋‹ค. ์—ฌ๋Ÿฌ ํ›„๋ณด ํฌ์ฆˆ๋“ค ์ค‘ ํ•˜๋‚˜์˜ ํฌ์ฆˆ๋ฅผ ์„ ํƒํ•œ ํ›„ ๋ฐ๊ธฐ ์˜ค์ฐจ(Photometric Error)๋ฅผ ๊ณ„์‚ฐํ•œ๋‹ค. ์ด ๋•Œ, ํ•œ ์ ์˜ ๊ด‘๋„ ์˜ค์ฐจ๋งŒ ๊ณ„์‚ฐํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ ์ฃผ๋ณ€ 8๊ฐœ์˜ ์ ๋“ค์˜ ๋ฐ๊ธฐ ์˜ค์ฐจ๋ฅผ ๋ชจ๋‘ ๊ณ„์‚ฐํ•œ๋‹ค. ๋‹ค์Œ์œผ๋กœ ํ•ด๋‹น ๋น„์„ ํ˜• ํ•จ์ˆ˜๋ฅผ ์ตœ์ ํ™”ํ•˜๊ธฐ ์œ„ํ•ด Jacobian์„ ๊ณ„์‚ฐํ•œ๋‹ค. ํ•ด๋‹น Jacobian์€ ์ด๋ฏธ Initialization ๋‹จ๊ณ„์—์„œ ์œ ๋„ ํ–ˆ์œผ๋ฏ€๋กœ ์œ ๋„ ๊ณผ์ •์€ ์ƒ๋žตํ•œ๋‹ค. ์ด ๋•Œ, ์—์„œ ๋งŒ ์šฐ์„  ๊ณ ๋ คํ•œ๋‹ค. 2.1. Frames โž” Pose Tracking
  • 81. , ๋ฅผ ๊ฐ๊ฐ ๊ณ„์‚ฐํ•œ ๋‹ค์Œ Levenberg-Marquardt ๋ฐฉ๋ฒ•์„ ํ†ตํ•ด ๋ฐ˜๋ณต์ ์œผ๋กœ ์—๋Ÿฌ๋ฅผ ๊ฐ์†Œ์‹œํ‚จ๋‹ค. ์ดˆ๊ธฐ ๋กœ ์„ค์ •ํ•œ๋‹ค. 2.1. Frames โž” Pose Tracking
  • 82. , ๋ฅผ ๊ฐ๊ฐ ๊ณ„์‚ฐํ•œ ๋‹ค์Œ Levenberg-Marquardt ๋ฐฉ๋ฒ•์„ ํ†ตํ•ด ๋ฐ˜๋ณต์ ์œผ๋กœ ์—๋Ÿฌ๋ฅผ ๊ฐ์†Œ์‹œํ‚จ๋‹ค. ์ดˆ๊ธฐ ๋กœ ์„ค์ •ํ•œ๋‹ค. ์ด ๋•Œ ๋Š” ์นด๋ฉ”๋ผ์˜ ํฌ์ฆˆ๋ฅผ ์˜๋ฏธํ•˜๋ฏ€๋กœ ์ฆ๋ถ„๋Ÿ‰ ๋Š” ์‹ค์ œ๋กœ ์•„๋ž˜์™€ ๊ฐ™์ด ์—…๋ฐ์ดํŠธ ๋œ๋‹ค. 2.1. Frames โž” Pose Tracking
  • 83. , ๋ฅผ ๊ฐ๊ฐ ๊ณ„์‚ฐํ•œ ๋‹ค์Œ Levenberg-Marquardt ๋ฐฉ๋ฒ•์„ ํ†ตํ•ด ๋ฐ˜๋ณต์ ์œผ๋กœ ์—๋Ÿฌ๋ฅผ ๊ฐ์†Œ์‹œํ‚จ๋‹ค. ์ดˆ๊ธฐ ๋กœ ์„ค์ •ํ•œ๋‹ค. ์ด ๋•Œ ๋Š” ์นด๋ฉ”๋ผ์˜ ํฌ์ฆˆ๋ฅผ ์˜๋ฏธํ•˜๋ฏ€๋กœ ์ฆ๋ถ„๋Ÿ‰ ๋Š” ์‹ค์ œ๋กœ ์•„๋ž˜์™€ ๊ฐ™์ด ์—…๋ฐ์ดํŠธ ๋œ๋‹ค. ๋Š” Photometric parameter a,b๋ฅผ ์˜๋ฏธํ•˜๋ฏ€๋กœ ์•„๋ž˜์™€ ๊ฐ™์ด ์—…๋ฐ์ดํŠธ ๋œ๋‹ค. 2.1. Frames โž” Pose Tracking
  • 84. , ๋ฅผ ๊ฐ๊ฐ ๊ณ„์‚ฐํ•œ ๋‹ค์Œ Levenberg-Marquardt ๋ฐฉ๋ฒ•์„ ํ†ตํ•ด ๋ฐ˜๋ณต์ ์œผ๋กœ ์—๋Ÿฌ๋ฅผ ๊ฐ์†Œ์‹œํ‚จ๋‹ค. ์ดˆ๊ธฐ ๋กœ ์„ค์ •ํ•œ๋‹ค. ์ด ๋•Œ ๋Š” ์นด๋ฉ”๋ผ์˜ ํฌ์ฆˆ๋ฅผ ์˜๋ฏธํ•˜๋ฏ€๋กœ ์ฆ๋ถ„๋Ÿ‰ ๋Š” ์‹ค์ œ๋กœ ์•„๋ž˜์™€ ๊ฐ™์ด ์—…๋ฐ์ดํŠธ ๋œ๋‹ค. 2.1. Frames โž” Pose Tracking ๋Š” Photometric parameter a,b๋ฅผ ์˜๋ฏธํ•˜๋ฏ€๋กœ ์•„๋ž˜์™€ ๊ฐ™์ด ์—…๋ฐ์ดํŠธ ๋œ๋‹ค. ํฌ์ฆˆ๊ฐ€ ์—…๋ฐ์ดํŠธ๋˜๋ฉด ๋‹ค์‹œ ํ•œ ๋ฒˆ ์—๋Ÿฌ๋ฅผ ๊ณ„์‚ฐํ•œ ํ›„ ์—๋Ÿฌ๊ฐ€ ์ถฉ๋ถ„ํžˆ ๊ฐ์†Œํ•˜์˜€๋Š”์ง€ ํŒ๋‹จํ•œ๋‹ค. ์—๋Ÿฌ๊ฐ€ ์ถฉ๋ถ„ํžˆ ๊ฐ์†Œํ•˜์˜€๋‹ค๋ฉด ๋‚˜๋จธ์ง€ ํ›„๋ณด ํฌ์ฆˆ๋“ค์„ ๊ณ ๋ คํ•˜์ง€ ์•Š๊ณ  ๋ฃจํ”„๋ฅผ ํƒˆ์ถœํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  lambda ๊ฐ’์„ ์ ˆ๋ฐ˜์œผ๋กœ ์ค„์ธ๋‹ค. ๋งŒ์•ฝ ์—๋Ÿฌ๊ฐ€ ์ค„์–ด๋“ค์ง€ ์•Š์•˜๋‹ค๋ฉด lambda ๊ฐ’์„ 4๋ฐฐ๋กœ ๋Š˜๋ฆฐ๋‹ค.
  • 85. ๋งค ํ”„๋ ˆ์ž„๋งˆ๋‹ค Pose tracking์ด ๋๋‚˜๋ฉด ํ•ด๋‹น ํ”„๋ ˆ์ž„์„ ํ‚คํ”„๋ ˆ์ž„์œผ๋กœ ๊ฒฐ์ •ํ•  ์ง€ ํŒ๋‹จํ•œ๋‹ค. 2.2. Frames โž” Keyframe Decision
  • 86. ๋งค ํ”„๋ ˆ์ž„๋งˆ๋‹ค Pose tracking์ด ๋๋‚˜๋ฉด ํ•ด๋‹น ํ”„๋ ˆ์ž„์„ ํ‚คํ”„๋ ˆ์ž„์œผ๋กœ ๊ฒฐ์ •ํ•  ์ง€ ํŒ๋‹จํ•œ๋‹ค. ํ‚คํ”„๋ ˆ์ž„์œผ๋กœ ๊ฒฐ์ •ํ•˜๋Š” ๊ธฐ์ค€์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. 1. ํ•ด๋‹น ํ”„๋ ˆ์ž„์ด ๊ฐ€์žฅ ์ฒซ ๋ฒˆ์งธ ํ”„๋ ˆ์ž„์ธ๊ฐ€? 2. (์ˆœ์ˆ˜ ํšŒ์ „์„ ์ œ์™ธํ•œ) ์นด๋ฉ”๋ผ ์›€์ง์ž„์œผ๋กœ ์ธํ•œ Optical flow์˜ ๋ณ€ํ™”๋Ÿ‰ + Photometric (a,b)์˜ ๋ณ€ํ™”๋Ÿ‰์ด ์ผ์ • ๊ธฐ์ค€ ์ด์ƒ์ธ๊ฐ€? 3. Residual ๊ฐ’์ด ์ด์ „ ํ‚คํ”„๋ ˆ์ž„๊ณผ ๋น„๊ตํ–ˆ์„ ๋•Œ ๊ธ‰๊ฒฉํ•˜๊ฒŒ ๋ณ€ํ–ˆ๋Š”๊ฐ€? 2.2. Frames โž” Keyframe Decision
  • 87. ๋งค ํ”„๋ ˆ์ž„๋งˆ๋‹ค Pose tracking์ด ๋๋‚˜๋ฉด ํ•ด๋‹น ํ”„๋ ˆ์ž„์„ ํ‚คํ”„๋ ˆ์ž„์œผ๋กœ ๊ฒฐ์ •ํ•  ์ง€ ํŒ๋‹จํ•œ๋‹ค. ํ‚คํ”„๋ ˆ์ž„์œผ๋กœ ๊ฒฐ์ •ํ•˜๋Š” ๊ธฐ์ค€์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. ์œ„ ์„ธ ๊ฐ€์ง€ ๊ธฐ์ค€ ์ค‘ ํ•œ๊ฐ€์ง€๋ผ๋„ ๋งŒ์กฑํ•˜๊ฒŒ ๋˜๋ฉด ํ•ด๋‹น ํ”„๋ ˆ์ž„์€ ํ‚คํ”„๋ ˆ์ž„์œผ๋กœ ๊ฐ„์ฃผ๋œ๋‹ค. 1. ํ•ด๋‹น ํ”„๋ ˆ์ž„์ด ๊ฐ€์žฅ ์ฒซ ๋ฒˆ์งธ ํ”„๋ ˆ์ž„์ธ๊ฐ€? 2. (์ˆœ์ˆ˜ ํšŒ์ „์„ ์ œ์™ธํ•œ) ์นด๋ฉ”๋ผ ์›€์ง์ž„์œผ๋กœ ์ธํ•œ Optical flow์˜ ๋ณ€ํ™”๋Ÿ‰ + Photometric (a,b)์˜ ๋ณ€ํ™”๋Ÿ‰์ด ์ผ์ • ๊ธฐ์ค€ ์ด์ƒ์ธ๊ฐ€? 3. Residual ๊ฐ’์ด ์ด์ „ ํ‚คํ”„๋ ˆ์ž„๊ณผ ๋น„๊ตํ–ˆ์„ ๋•Œ ๊ธ‰๊ฒฉํ•˜๊ฒŒ ๋ณ€ํ–ˆ๋Š”๊ฐ€? 2.2. Frames โž” Keyframe Decision
  • 89. keyframe frame ํ‚คํ”„๋ ˆ์ž„์œผ๋กœ ๊ฐ„์ฃผ๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ, ํ•ด๋‹น ํ”„๋ ˆ์ž„์€ ํ˜„์žฌ Sliding Window์— ์žˆ๋Š” ํ‚คํ”„๋ ˆ์ž„๋“ค์˜ Immature point idepth ์—…๋ฐ์ดํŠธ์— ์‚ฌ์šฉ๋œ๋‹ค. 3.1. Non-Keyframes โž” Inverse Depth Update
  • 90. keyframe frame Immature point idepth ์—…๋ฐ์ดํŠธ์˜ ์ž์„ธํ•œ ๊ณผ์ •์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. 1) ์šฐ์„ , ์ด์ „ ํ‚คํ”„๋ ˆ์ž„์— ์กด์žฌํ•˜๋Š” idepth๋ฅผ ์•Œ๊ณ  ์žˆ๋Š” Immature point๋“ค์„ ์ƒ๋Œ€ ํฌ์ฆˆ ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ˜„์žฌ ํ”„๋ ˆ์ž„์— ํ”„๋กœ์ ์…˜ํ•œ๋‹ค. Immature point idepth update ํ‚คํ”„๋ ˆ์ž„์œผ๋กœ ๊ฐ„์ฃผ๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ, ํ•ด๋‹น ํ”„๋ ˆ์ž„์€ ํ˜„์žฌ Sliding Window์— ์žˆ๋Š” ํ‚คํ”„๋ ˆ์ž„๋“ค์˜ Immature point idepth ์—…๋ฐ์ดํŠธ์— ์‚ฌ์šฉ๋œ๋‹ค. 3.1. Non-Keyframes โž” Inverse Depth Update
  • 91. 2) ์ด ๋•Œ, ์„ ํ•œ ๋ฒˆ๋งŒ ํ”„๋กœ์ ์…˜ ํ•˜์ง€ ์•Š๊ณ  Epipolar line์„ ์ฐพ๊ธฐ ์œ„ํ•ด idepth ๊ฐ’์„ ๋ณ€๊ฒฝํ•ด์„œ ์ด 2๋ฒˆ ํ”„๋กœ์ ์…˜ํ•œ๋‹ค. Immature point idepth update ์ด ๊ธฐ์กด์— ์„ค์ •๋˜์–ด ์žˆ์ง€ ์•Š๋‹ค๋ฉด Epipolar line์„ ์ฐพ๊ธฐ ์œ„ํ•ด ์ž„์˜๋กœ ์„ค์ •ํ•œ ๊ฐ’์„ ์‚ฌ์šฉํ•œ๋‹ค. 3.1. Non-Keyframes โž” Inverse Depth Update
  • 92. 3) ๊ฐ’์„ ๊ณ„์‚ฐํ•ด์„œ Epipolar Line์˜ ๋ฐฉํ–ฅ์„ ๊ตฌํ•œ๋‹ค. Epipolar Line์„ ์ˆ˜์‹์œผ๋กœ ํ‘œํ˜„ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. Immature point idepth update 3.1. Non-Keyframes โž” Inverse Depth Update
  • 93. 3) ๊ฐ’์„ ๊ณ„์‚ฐํ•ด์„œ Epipolar Line์˜ ๋ฐฉํ–ฅ์„ ๊ตฌํ•œ๋‹ค. Epipolar Line์„ ์ˆ˜์‹์œผ๋กœ ํ‘œํ˜„ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. Immature point idepth update ๋Š” discrete search step size๋ฅผ ์˜๋ฏธํ•œ๋‹ค. ์ด ๋•Œ, ๋Š” ์›์ ์„ ์˜๋ฏธํ•˜๊ณ  ๋Š” ๋ฐฉํ–ฅ์„ ์˜๋ฏธํ•œ๋‹ค. 3.1. Non-Keyframes โž” Inverse Depth Update
  • 94. 3) ๊ฐ’์„ ๊ณ„์‚ฐํ•ด์„œ Epipolar Line์˜ ๋ฐฉํ–ฅ์„ ๊ตฌํ•œ๋‹ค. Epipolar Line์„ ์ˆ˜์‹์œผ๋กœ ํ‘œํ˜„ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. 4) ๋‹ค์Œ์œผ๋กœ maximum discrete search ๋ฒ”์œ„๋ฅผ ์ •ํ•œ ํ›„ ์œ„์—์„œ ๊ฐ€์žฅ ๋ฐ๊ธฐ ์˜ค์ฐจ๊ฐ€ ์ž‘์€ ํ”ฝ์…€์„ ์„ ์ •ํ•œ๋‹ค. ์ด ๋•Œ๋„ ํŒจ์น˜ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ฐ๊ธฐ ์˜ค์ฐจ๋ฅผ ๊ณ„์‚ฐํ•œ๋‹ค. ๋Š” discrete search step size๋ฅผ ์˜๋ฏธํ•œ๋‹ค. ์ด ๋•Œ, ๋Š” ์›์ ์„ ์˜๋ฏธํ•˜๊ณ  ๋Š” ๋ฐฉํ–ฅ์„ ์˜๋ฏธํ•œ๋‹ค. Immature point idepth update 3.1. Non-Keyframes โž” Inverse Depth Update
  • 95. 5) ๋ฐ๊ธฐ ์˜ค์ฐจ๊ฐ€ ๊ฐ€์žฅ ์ž‘์€ ์ ์„ ์„ ์ •ํ–ˆ์œผ๋ฉด ํŒจ์น˜ ๋‚ด์—์„œ ๋ฐ๊ธฐ ์˜ค์ฐจ๊ฐ€ ๋‘ ๋ฒˆ์งธ๋กœ ์ž‘์€ ์ ์„ ์„ ์ •ํ•œ ํ›„ ๋‘ ์˜ค์ฐจ์˜ ๋น„์œจ์„ ํ†ตํ•ด ํ•ด๋‹น ์ ์˜ ํ€„๋ฆฌํ‹ฐ๋ฅผ ๊ณ„์‚ฐํ•œ๋‹ค. Immature point idepth update 3.1. Non-Keyframes โž” Inverse Depth Update
  • 96. 5) ๋ฐ๊ธฐ ์˜ค์ฐจ๊ฐ€ ๊ฐ€์žฅ ์ž‘์€ ์ ์„ ์„ ์ •ํ–ˆ์œผ๋ฉด ํŒจ์น˜ ๋‚ด์—์„œ ๋ฐ๊ธฐ ์˜ค์ฐจ๊ฐ€ ๋‘ ๋ฒˆ์งธ๋กœ ์ž‘์€ ์ ์„ ์„ ์ •ํ•œ ํ›„ ๋‘ ์˜ค์ฐจ์˜ ๋น„์œจ์„ ํ†ตํ•ด ํ•ด๋‹น ์ ์˜ ํ€„๋ฆฌํ‹ฐ๋ฅผ ๊ณ„์‚ฐํ•œ๋‹ค. Immature point idepth update 6) ํ•ด๋‹น ์ ์€ discrete search๋ฅผ ํ†ตํ•ด ์ฐพ์€ ๊ฐ’์ด๋ฏ€๋กœ ๋ณด๋‹ค ์ •๊ตํ•œ ์œ„์น˜๋ฅผ ์ฐพ๊ธฐ ์œ„ํ•ด Gauss-Newton optimization์„ ์ˆ˜ํ–‰ํ•˜์—ฌ ์ตœ์ ์˜ ์œ„์น˜ ๋ฅผ ๊ตฌํ•œ๋‹ค. 3.1. Non-Keyframes โž” Inverse Depth Update
  • 97. 7) ์ตœ์ ํ™” ๊ณผ์ •์„ ํ†ตํ•ด ์ตœ์ ์˜ ์œ„์น˜ ๋ฅผ ์ฐพ์•˜์œผ๋ฉด ๋‹ค์Œ์œผ๋กœ ํ•ด๋‹น ํ”ฝ์…€์˜ idepth ๊ฐ’์„ ์—…๋ฐ์ดํŠธํ•ด์ค€๋‹ค. Immature point idepth update 3.1. Non-Keyframes โž” Inverse Depth Update
  • 98. 7) ์ตœ์ ํ™” ๊ณผ์ •์„ ํ†ตํ•ด ์ตœ์ ์˜ ์œ„์น˜ ๋ฅผ ์ฐพ์•˜์œผ๋ฉด ๋‹ค์Œ์œผ๋กœ ํ•ด๋‹น ํ”ฝ์…€์˜ idepth ๊ฐ’์„ ์—…๋ฐ์ดํŠธํ•ด์ค€๋‹ค. idepth ๊ฐ’์„ ์—…๋ฐ์ดํŠธํ•˜๊ธฐ ์œ„ํ•ด ํ•ด๋‹น ์ ์„ ์ˆ˜์‹์œผ๋กœ ์ „๊ฐœํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. Immature point idepth update ๋ฅผ ์ „๊ฐœํ•˜๋ฉด ์ด ๋œ๋‹ค. 3.1. Non-Keyframes โž” Inverse Depth Update
  • 99. 7) ์ตœ์ ํ™” ๊ณผ์ •์„ ํ†ตํ•ด ์ตœ์ ์˜ ์œ„์น˜ ๋ฅผ ์ฐพ์•˜์œผ๋ฉด ๋‹ค์Œ์œผ๋กœ ํ•ด๋‹น ํ”ฝ์…€์˜ idepth ๊ฐ’์„ ์—…๋ฐ์ดํŠธํ•ด์ค€๋‹ค. idepth ๊ฐ’์„ ์—…๋ฐ์ดํŠธํ•˜๊ธฐ ์œ„ํ•ด ํ•ด๋‹น ์ ์„ ์ˆ˜์‹์œผ๋กœ ์ „๊ฐœํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. Immature point idepth update ๋ฅผ ์ „๊ฐœํ•˜๋ฉด ์ด ๋œ๋‹ค. ์ด๋ฅผ idepth๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋‹ค์‹œ ์ •๋ฆฌํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ 2๊ฐœ์˜ ์‹์ด ์œ ๋„๋œ๋‹ค. 3.1. Non-Keyframes โž” Inverse Depth Update
  • 100. 8) ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์œ ๋„๋œ ์‹์—์„œ ์ตœ์ ์˜ ์œ„์น˜ ๋ฅผ ๋„ฃ๊ณ  ๋‹ค์‹œ ์ „๊ฐœํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. Immature point idepth update x gradient๊ฐ€ ํฐ ๊ฒฝ์šฐ y gradient๊ฐ€ ํฐ ๊ฒฝ์šฐ 3.1. Non-Keyframes โž” Inverse Depth Update
  • 101. 8) ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์œ ๋„๋œ ์‹์—์„œ ์ตœ์ ์˜ ์œ„์น˜ ๋ฅผ ๋„ฃ๊ณ  ๋‹ค์‹œ ์ „๊ฐœํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. Immature point idepth update x gradient๊ฐ€ ํฐ ๊ฒฝ์šฐ y gradient๊ฐ€ ํฐ ๊ฒฝ์šฐ https://jsturm.de/publications/data/engel2013iccv.pdf ๋…ผ๋ฌธ ์ฐธ์กฐ ์—ฌ๊ธฐ์„œ ๊ฐ’์€ gradient ๋ฐฉํ–ฅ๊ณผ Epipolar line์˜ ๋ฐฉํ–ฅ์ด ์ˆ˜์ง์ผ์ˆ˜๋ก 1์—์„œ๋ถ€ํ„ฐ ๊ฐ’์ด ์ฆ๊ฐ€ํ•˜๋Š” ๊ฐ€์ค‘์น˜๋ฅผ ์˜๋ฏธํ•œ๋‹ค. ํ•ด๋‹น ๊ฐ’์ด ๋„ˆ๋ฌด ์ปค์ง€๋ฉด ๋‘ ๋ฐฉํ–ฅ์ด ๊ฑฐ์˜ ์ˆ˜์ง์— ๊ฐ€๊น๋‹ค๊ณ  ํŒ๋‹จํ•˜์—ฌ idepth ์—…๋ฐ์ดํŠธ๋ฅผ ์ค‘๋‹จํ•œ๋‹ค. 3.1. Non-Keyframes โž” Inverse Depth Update
  • 102. 8) ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์œ ๋„๋œ ์‹์—์„œ ์ตœ์ ์˜ ์œ„์น˜ ๋ฅผ ๋„ฃ๊ณ  ๋‹ค์‹œ ์ „๊ฐœํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. Immature point idepth update x gradient๊ฐ€ ํฐ ๊ฒฝ์šฐ y gradient๊ฐ€ ํฐ ๊ฒฝ์šฐ ์ด์™€ ๊ฐ™์€ 1)~8) ๊ณผ์ •์„ ํ†ตํ•ด ์ด์ „ ํ‚คํ”„๋ ˆ์ž„์—์„œ Immature point ์˜ idepth ๊ฐ’์„ ์—…๋ฐ์ดํŠธํ•  ์ˆ˜ ์žˆ๋‹ค. https://jsturm.de/publications/data/engel2013iccv.pdf ๋…ผ๋ฌธ ์ฐธ์กฐ ์—ฌ๊ธฐ์„œ ๊ฐ’์€ gradient ๋ฐฉํ–ฅ๊ณผ Epipolar line์˜ ๋ฐฉํ–ฅ์ด ์ˆ˜์ง์ผ์ˆ˜๋ก 1์—์„œ๋ถ€ํ„ฐ ๊ฐ’์ด ์ฆ๊ฐ€ํ•˜๋Š” ๊ฐ€์ค‘์น˜๋ฅผ ์˜๋ฏธํ•œ๋‹ค. ํ•ด๋‹น ๊ฐ’์ด ๋„ˆ๋ฌด ์ปค์ง€๋ฉด ๋‘ ๋ฐฉํ–ฅ์ด ๊ฑฐ์˜ ์ˆ˜์ง์— ๊ฐ€๊น๋‹ค๊ณ  ํŒ๋‹จํ•˜์—ฌ idepth ์—…๋ฐ์ดํŠธ๋ฅผ ์ค‘๋‹จํ•œ๋‹ค. 3.1. Non-Keyframes โž” Inverse Depth Update
  • 104. ํŠน์ • ํ”„๋ ˆ์ž„์ด ํ‚คํ”„๋ ˆ์ž„์œผ๋กœ ๊ฒฐ์ •๋˜๋ฉด Sliding Window ๋‚ด๋ถ€์— ํ‚คํ”„๋ ˆ์ž„๋“ค๊ณผ ์ƒˆ๋กœ์šด ํ‚คํ”„๋ ˆ์ž„ ์‚ฌ์ด์— ์—๋Ÿฌํ•จ์ˆ˜๋ฅผ ์—…๋ฐ์ดํŠธํ•ด์•ผ ํ•œ๋‹ค. ์ด ๋•Œ, ํ‚คํ”„๋ ˆ์ž„ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์ด์™€ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋Š” ๋งต ์ƒ์˜ ํฌ์ธํŠธ๋“ค๊นŒ์ง€ ๊ฐ™์ด ์ตœ์ ํ™”ํ•˜๋Š” Local Bundle Adjustment๋ฅผ ์ˆ˜ํ–‰ํ•œ๋‹ค. 4.3.1. Keyframes โž” Sliding Window Optimization โž” Error Function Formulation map point keyframe frame edge of host keyframe edge of target keyframe
  • 105. ํŠน์ • ํ”„๋ ˆ์ž„์ด ํ‚คํ”„๋ ˆ์ž„์œผ๋กœ ๊ฒฐ์ •๋˜๋ฉด Sliding Window ๋‚ด๋ถ€์— ํ‚คํ”„๋ ˆ์ž„๋“ค๊ณผ ์ƒˆ๋กœ์šด ํ‚คํ”„๋ ˆ์ž„ ์‚ฌ์ด์— ์—๋Ÿฌํ•จ์ˆ˜๋ฅผ ์—…๋ฐ์ดํŠธํ•ด์•ผ ํ•œ๋‹ค. ์ด ๋•Œ, ํ‚คํ”„๋ ˆ์ž„ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์ด์™€ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋Š” ๋งต ์ƒ์˜ ํฌ์ธํŠธ๋“ค๊นŒ์ง€ ๊ฐ™์ด ์ตœ์ ํ™”ํ•˜๋Š” Local Bundle Adjustment๋ฅผ ์ˆ˜ํ–‰ํ•œ๋‹ค. ์ฃผ๋ชฉํ•  ์ ์€ ํ•˜๋‚˜์˜ ๋งตํฌ์ธํŠธ๊ฐ€ ๋‘ ๊ฐœ์˜ ํ‚คํ”„๋ ˆ์ž„(host, target)๊ณผ ์—ฐ๊ฒฐ๋˜์–ด ์ตœ์ ํ™”๋œ๋‹ค๋Š” ์ ์ด๋‹ค. ์—ฌ๊ธฐ์„œ host ํ‚คํ”„๋ ˆ์ž„์€ ํ•ด๋‹น ๋งตํฌ์ธํŠธ๋ฅผ ๊ฐ€์žฅ ๋จผ์ € ๋ฐœ๊ฒฌํ•œ ํ‚คํ”„๋ ˆ์ž„์ด๊ณ  target ํ‚คํ”„๋ ˆ์ž„์€ ์ดํ›„์— ๋ฐœ๊ฒฌํ•œ ํ‚คํ”„๋ ˆ์ž„์„ ์˜๋ฏธํ•œ๋‹ค. DSO paper Figure 5 blue: host, red: target 4.3.1. Keyframes โž” Sliding Window Optimization โž” Error Function Formulation map point keyframe frame edge of host keyframe edge of target keyframe
  • 106. ํŠน์ • ํ”„๋ ˆ์ž„์ด ํ‚คํ”„๋ ˆ์ž„์œผ๋กœ ๊ฒฐ์ •๋˜๋ฉด Sliding Window ๋‚ด๋ถ€์— ํ‚คํ”„๋ ˆ์ž„๋“ค๊ณผ ์ƒˆ๋กœ์šด ํ‚คํ”„๋ ˆ์ž„ ์‚ฌ์ด์— ์—๋Ÿฌํ•จ์ˆ˜๋ฅผ ์—…๋ฐ์ดํŠธํ•ด์•ผ ํ•œ๋‹ค. ์ด ๋•Œ, ํ‚คํ”„๋ ˆ์ž„ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์ด์™€ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋Š” ๋งต ์ƒ์˜ ํฌ์ธํŠธ๋“ค๊นŒ์ง€ ๊ฐ™์ด ์ตœ์ ํ™”ํ•˜๋Š” Local Bundle Adjustment๋ฅผ ์ˆ˜ํ–‰ํ•œ๋‹ค. ์ฃผ๋ชฉํ•  ์ ์€ ํ•˜๋‚˜์˜ ๋งตํฌ์ธํŠธ๊ฐ€ ๋‘ ๊ฐœ์˜ ํ‚คํ”„๋ ˆ์ž„(host, target)๊ณผ ์—ฐ๊ฒฐ๋˜์–ด ์ตœ์ ํ™”๋œ๋‹ค๋Š” ์ ์ด๋‹ค. ์—ฌ๊ธฐ์„œ host ํ‚คํ”„๋ ˆ์ž„์€ ํ•ด๋‹น ๋งตํฌ์ธํŠธ๋ฅผ ๊ฐ€์žฅ ๋จผ์ € ๋ฐœ๊ฒฌํ•œ ํ‚คํ”„๋ ˆ์ž„์ด๊ณ  target ํ‚คํ”„๋ ˆ์ž„์€ ์ดํ›„์— ๋ฐœ๊ฒฌํ•œ ํ‚คํ”„๋ ˆ์ž„์„ ์˜๋ฏธํ•œ๋‹ค. ๋˜ํ•œ ์ตœ์ ํ™” ๊ณผ์ •์—์„œ ์—ฐ์‚ฐ๋Ÿ‰์„ ์ค„์ด๊ธฐ ์œ„ํ•ด Jacobian์„ ๊ณ„์‚ฐํ•  ๋•Œ ์นด๋ฉ”๋ผ์˜ ์›”๋“œ์ขŒํ‘œ๊ณ„๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๊ณ„์‚ฐํ•œ Jacobian ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  host, target ํ‚คํ”„๋ ˆ์ž„ ๊ฐ„ ์ƒ๋Œ€ ํฌ์ฆˆ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๊ณ„์‚ฐํ•œ Jacobian ์„ ์‚ฌ์šฉํ•œ๋‹ค. ๋”ฐ๋ผ์„œ ํ•ด๋‹น Jacobian์„ ์‚ฌ์šฉํ•˜์—ฌ ๋‘ ํ‚คํ”„๋ ˆ์ž„์˜ ์›”๋“œ์ขŒํ‘œ๊ณ„ ๊ธฐ๋ฐ˜ ์นด๋ฉ”๋ผ ํฌ์ฆˆ ๋ฅผ ์ตœ์ ํ™” ํ•˜๊ธฐ ์œ„ํ•ด Adjoint Transformation๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. 4.3.1. Keyframes โž” Sliding Window Optimization โž” Error Function Formulation map point keyframe frame edge of host keyframe edge of target keyframe
  • 107. 4.3.1. Keyframes โž” Sliding Window Optimization โž” Error Function Formulation Sliding Window Optimization์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ์šฐ์„  ์—๋Ÿฌ ํ•จ์ˆ˜๋ฅผ ์„ค์ •ํ•ด์•ผ ํ•œ๋‹ค.
  • 108. 4.3.1. Keyframes โž” Sliding Window Optimization โž” Error Function Formulation Sliding Window Optimization์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ์šฐ์„  ์—๋Ÿฌ ํ•จ์ˆ˜๋ฅผ ์„ค์ •ํ•ด์•ผ ํ•œ๋‹ค. ์ด ๋•Œ ์—๋Ÿฌ ํ•จ์ˆ˜์˜ ํŒŒ๋ผ๋ฏธํ„ฐ๋Š” Pose(6) + Photometric(2) + Camera Intrinsics(4) + Idepth(N)๋กœ์จ ์ด 12+N๊ฐœ์˜ ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ ์ตœ์ ํ™”์— ์‚ฌ์šฉ๋œ๋‹ค. ์ฐธ๊ณ ๋กœ Initialization ๊ณผ์ •์—์„œ๋Š” Pose(6) + Photometric(2) + Idepth(N)์˜ 8+N๊ฐœ์˜ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์ตœ์ ํ™”ํ•˜์˜€๋‹ค. ์ฆ‰, Initialization ๊ณผ์ •์— ์ถ”๊ฐ€์ ์œผ๋กœ Camera Intrinsics ๋ฅผ ๊ฐ™์ด ์ตœ์ ํ™” ํ–ˆ์œผ๋ฏ€๋กœ ์—๋Ÿฌ ํ•จ์ˆ˜ ๋˜ํ•œ Initialization ๊ณผ์ •๊ณผ ๋™์ผํ•˜๋‹ค.
  • 109. 4.3.1. Keyframes โž” Sliding Window Optimization โž” Error Function Formulation Initialization ๋‹จ๊ณ„์™€ ๋‹ค๋ฅด๊ฒŒ ์ดˆ๊ธฐ๊ฐ’ b0 ์ถ”๊ฐ€๋จ residual(=์—๋Ÿฌ)๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค. Sliding Window Optimization์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ์šฐ์„  ์—๋Ÿฌ ํ•จ์ˆ˜๋ฅผ ์„ค์ •ํ•ด์•ผ ํ•œ๋‹ค. ์ด ๋•Œ ์—๋Ÿฌ ํ•จ์ˆ˜์˜ ํŒŒ๋ผ๋ฏธํ„ฐ๋Š” Pose(6) + Photometric(2) + Camera Intrinsics(4) + Idepth(N)๋กœ์จ ์ด 12+N๊ฐœ์˜ ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ ์ตœ์ ํ™”์— ์‚ฌ์šฉ๋œ๋‹ค. ์ฐธ๊ณ ๋กœ Initialization ๊ณผ์ •์—์„œ๋Š” Pose(6) + Photometric(2) + Idepth(N)์˜ 8+N๊ฐœ์˜ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์ตœ์ ํ™”ํ•˜์˜€๋‹ค. ์ฆ‰, Initialization ๊ณผ์ •์— ์ถ”๊ฐ€์ ์œผ๋กœ Camera Intrinsics ๋ฅผ ๊ฐ™์ด ์ตœ์ ํ™” ํ–ˆ์œผ๋ฏ€๋กœ ์—๋Ÿฌ ํ•จ์ˆ˜ ๋˜ํ•œ Initialization ๊ณผ์ •๊ณผ ๋™์ผํ•˜๋‹ค. map point keyframe edge of host keyframe edge of target keyframe
  • 110. 4.3.1. Keyframes โž” Sliding Window Optimization โž” Error Function Formulation residual(=์—๋Ÿฌ)๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด ๋•Œ, residual์€ ํ•œ ์ ์ด ์•„๋‹Œ ์ฃผ๋ณ€ ์ ๋“ค์„ ํฌํ•จํ•œ 8๊ฐœ ์ ๋“ค ์—๋Ÿฌ์˜ ํ•ฉ์„ ์˜๋ฏธํ•œ๋‹ค. Sliding Window Optimization์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ์šฐ์„  ์—๋Ÿฌ ํ•จ์ˆ˜๋ฅผ ์„ค์ •ํ•ด์•ผ ํ•œ๋‹ค. ์ด ๋•Œ ์—๋Ÿฌ ํ•จ์ˆ˜์˜ ํŒŒ๋ผ๋ฏธํ„ฐ๋Š” Pose(6) + Photometric(2) + Camera Intrinsics(4) + Idepth(N)๋กœ์จ ์ด 12+N๊ฐœ์˜ ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ ์ตœ์ ํ™”์— ์‚ฌ์šฉ๋œ๋‹ค. ์ฐธ๊ณ ๋กœ Initialization ๊ณผ์ •์—์„œ๋Š” Pose(6) + Photometric(2) + Idepth(N)์˜ 8+N๊ฐœ์˜ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์ตœ์ ํ™”ํ•˜์˜€๋‹ค. ์ฆ‰, Initialization ๊ณผ์ •์— ์ถ”๊ฐ€์ ์œผ๋กœ Camera Intrinsics ๋ฅผ ๊ฐ™์ด ์ตœ์ ํ™” ํ–ˆ์œผ๋ฏ€๋กœ ์—๋Ÿฌ ํ•จ์ˆ˜ ๋˜ํ•œ Initialization ๊ณผ์ •๊ณผ ๋™์ผํ•˜๋‹ค. map point keyframe edge of host keyframe edge of target keyframe
  • 111. 4.3.1. Keyframes โž” Sliding Window Optimization โž” Error Function Formulation ์ตœ์ข…์ ์œผ๋กœ huber norm๊นŒ์ง€ ์ ์šฉ๋œ ์—๋Ÿฌํ•จ์ˆ˜๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. residual(=์—๋Ÿฌ)๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค. Sliding Window Optimization์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ์šฐ์„  ์—๋Ÿฌ ํ•จ์ˆ˜๋ฅผ ์„ค์ •ํ•ด์•ผ ํ•œ๋‹ค. ์ด ๋•Œ ์—๋Ÿฌ ํ•จ์ˆ˜์˜ ํŒŒ๋ผ๋ฏธํ„ฐ๋Š” Pose(6) + Photometric(2) + Camera Intrinsics(4) + Idepth(N)๋กœ์จ ์ด 12+N๊ฐœ์˜ ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ ์ตœ์ ํ™”์— ์‚ฌ์šฉ๋œ๋‹ค. ์ฐธ๊ณ ๋กœ Initialization ๊ณผ์ •์—์„œ๋Š” Pose(6) + Photometric(2) + Idepth(N)์˜ 8+N๊ฐœ์˜ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์ตœ์ ํ™”ํ•˜์˜€๋‹ค. ์ฆ‰, Initialization ๊ณผ์ •์— ์ถ”๊ฐ€์ ์œผ๋กœ Camera Intrinsics ๋ฅผ ๊ฐ™์ด ์ตœ์ ํ™” ํ–ˆ์œผ๋ฏ€๋กœ ์—๋Ÿฌ ํ•จ์ˆ˜ ๋˜ํ•œ Initialization ๊ณผ์ •๊ณผ ๋™์ผํ•˜๋‹ค. map point keyframe edge of host keyframe edge of target keyframe ์ด ๋•Œ, residual์€ ํ•œ ์ ์ด ์•„๋‹Œ ์ฃผ๋ณ€ ์ ๋“ค์„ ํฌํ•จํ•œ 8๊ฐœ ์ ๋“ค ์—๋Ÿฌ์˜ ํ•ฉ์„ ์˜๋ฏธํ•œ๋‹ค.
  • 112. 4.3.1. Keyframes โž” Sliding Window Optimization โž” Error Function Formulation ์ตœ์ข…์ ์œผ๋กœ huber norm๊นŒ์ง€ ์ ์šฉ๋œ ์—๋Ÿฌํ•จ์ˆ˜๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. residual(=์—๋Ÿฌ)๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค. ํ•ด๋‹น ์—๋Ÿฌํ•จ์ˆ˜๊ฐ€ ์ตœ์†Œ๊ฐ€ ๋˜๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์ฐพ๊ธฐ ์œ„ํ•ด ๋ฅผ ๋งŒ์กฑํ•˜๋Š” ๋ฅผ ์ตœ์†Œํ™”ํ•˜๋Š” ๋ฌธ์ œ๋กœ ๋ณ€๊ฒฝํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. Sliding Window Optimization์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ์šฐ์„  ์—๋Ÿฌ ํ•จ์ˆ˜๋ฅผ ์„ค์ •ํ•ด์•ผ ํ•œ๋‹ค. ์ด ๋•Œ ์—๋Ÿฌ ํ•จ์ˆ˜์˜ ํŒŒ๋ผ๋ฏธํ„ฐ๋Š” Pose(6) + Photometric(2) + Camera Intrinsics(4) + Idepth(N)๋กœ์จ ์ด 12+N๊ฐœ์˜ ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ ์ตœ์ ํ™”์— ์‚ฌ์šฉ๋œ๋‹ค. ์ฐธ๊ณ ๋กœ Initialization ๊ณผ์ •์—์„œ๋Š” Pose(6) + Photometric(2) + Idepth(N)์˜ 8+N๊ฐœ์˜ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์ตœ์ ํ™”ํ•˜์˜€๋‹ค. ์ฆ‰, Initialization ๊ณผ์ •์— ์ถ”๊ฐ€์ ์œผ๋กœ Camera Intrinsics ๋ฅผ ๊ฐ™์ด ์ตœ์ ํ™” ํ–ˆ์œผ๋ฏ€๋กœ ์—๋Ÿฌ ํ•จ์ˆ˜ ๋˜ํ•œ Initialization ๊ณผ์ •๊ณผ ๋™์ผํ•˜๋‹ค. map point keyframe edge of host keyframe edge of target keyframe ์ด ๋•Œ, residual์€ ํ•œ ์ ์ด ์•„๋‹Œ ์ฃผ๋ณ€ ์ ๋“ค์„ ํฌํ•จํ•œ 8๊ฐœ ์ ๋“ค ์—๋Ÿฌ์˜ ํ•ฉ์„ ์˜๋ฏธํ•œ๋‹ค.
  • 113. 4.3.1. Keyframes โž” Sliding Window Optimization โž” Error Function Formulation ์—๋Ÿฌํ•จ์ˆ˜ ์˜ state variable ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. 1๋ฒˆ ์ด๋ฏธ์ง€์—์„œ i๋ฒˆ์งธ inverse depth ๊ฐ’ (N๊ฐœ) ๋‘ ์ด๋ฏธ์ง€ ๊ฐ„ exposure time์„ ๊ณ ๋ คํ•˜์—ฌ ์ด๋ฏธ์ง€ ๋ฐ๊ธฐ๋ฅผ ์กฐ์ ˆํ•˜๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ (2๊ฐœ) ๋‘ ์นด๋ฉ”๋ผ ๊ฐ„ ์ƒ๋Œ€ ํฌ์ฆˆ ๋ณ€ํ™”๋Ÿ‰ (twist)(6์ฐจ์› ๋ฒกํ„ฐ) (6๊ฐœ) ์นด๋ฉ”๋ผ ๋‚ด๋ถ€ ํŒŒ๋ผ๋ฏธํ„ฐ (fx, fy, cx, cy) (4๊ฐœ)
  • 114. 4.3.1. Keyframes โž” Sliding Window Optimization โž” Error Function Formulation ์—๋Ÿฌํ•จ์ˆ˜ ์˜ state variable ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. 1๋ฒˆ ์ด๋ฏธ์ง€์—์„œ i๋ฒˆ์งธ inverse depth ๊ฐ’ (N๊ฐœ) ๋‘ ์ด๋ฏธ์ง€ ๊ฐ„ exposure time์„ ๊ณ ๋ คํ•˜์—ฌ ์ด๋ฏธ์ง€ ๋ฐ๊ธฐ๋ฅผ ์กฐ์ ˆํ•˜๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ (2๊ฐœ) ๋‘ ์นด๋ฉ”๋ผ ๊ฐ„ ์ƒ๋Œ€ ํฌ์ฆˆ ๋ณ€ํ™”๋Ÿ‰ (twist)(6์ฐจ์› ๋ฒกํ„ฐ) (6๊ฐœ) ์นด๋ฉ”๋ผ ๋‚ด๋ถ€ ํŒŒ๋ผ๋ฏธํ„ฐ (fx, fy, cx, cy) (4๊ฐœ) Initialization ๊ณผ์ •๊ณผ ๋‹ฌ๋ฆฌ state variable์— camera intrinsics ๊ฐ€ ํฌํ•จ๋œ ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.
  • 115. 4.3.1. Keyframes โž” Sliding Window Optimization โž” Error Function Formulation ์—๋Ÿฌํ•จ์ˆ˜ ์˜ state variable ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. 1๋ฒˆ ์ด๋ฏธ์ง€์—์„œ i๋ฒˆ์งธ inverse depth ๊ฐ’ (N๊ฐœ) ๋‘ ์ด๋ฏธ์ง€ ๊ฐ„ exposure time์„ ๊ณ ๋ คํ•˜์—ฌ ์ด๋ฏธ์ง€ ๋ฐ๊ธฐ๋ฅผ ์กฐ์ ˆํ•˜๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ (2๊ฐœ) ๋‘ ์นด๋ฉ”๋ผ ๊ฐ„ ์ƒ๋Œ€ ํฌ์ฆˆ ๋ณ€ํ™”๋Ÿ‰ (twist)(6์ฐจ์› ๋ฒกํ„ฐ) (6๊ฐœ) ์นด๋ฉ”๋ผ ๋‚ด๋ถ€ ํŒŒ๋ผ๋ฏธํ„ฐ (fx, fy, cx, cy) (4๊ฐœ) Initialization ๊ณผ์ •๊ณผ ๋‹ฌ๋ฆฌ state variable์— camera intrinsics ๊ฐ€ ํฌํ•จ๋œ ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค. Initialization ๊ณผ์ •์—์„œ ์ด๋ฏธ ์•„๋ž˜์™€ ๊ฐ™์ด ์ตœ์ ํ™”์— ํ•„์š”ํ•œ Jacobian๋“ค์„ ์œ ๋„ํ•˜์˜€๋‹ค. ํ•˜์ง€๋งŒ Sliding Window Optimization ๊ณผ์ •์—์„œ๋Š” ์ถ”๊ฐ€์ ์œผ๋กœ Jacobian of Camera Intrinsics ์„ ์œ ๋„ํ•ด์•ผ ํ•œ๋‹ค. photometric(2)pose(6)idepth(N)
  • 116. 4.3.2. Keyframes โž” Sliding Window Optimization โž” Jacobian Derivation of Camera Intrinsics Jacobian of Camera Intrinsics ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ถ„ํ•ดํ•  ์ˆ˜ ์žˆ๋‹ค. map point keyframe edge of host keyframe edge of target keyframe More detail: https://blog.csdn.net/xxxlinttp/article/details/90640350
  • 117. 4.3.2. Keyframes โž” Sliding Window Optimization โž” Jacobian Derivation of Camera Intrinsics Jacobian of Camera Intrinsics ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ถ„ํ•ดํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด ๋•Œ, ์ด๋ฏ€๋กœ ๊ฐ„๊ฒฐํ•˜๊ฒŒ residual ํ•ญ์œผ๋กœ ํ‘œํ˜„ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. map point keyframe edge of host keyframe edge of target keyframe More detail: https://blog.csdn.net/xxxlinttp/article/details/90640350
  • 118. 4.3.2. Keyframes โž” Sliding Window Optimization โž” Jacobian Derivation of Camera Intrinsics Jacobian of Camera Intrinsics ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ถ„ํ•ดํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด ๋•Œ, ์ด๋ฏ€๋กœ ๊ฐ„๊ฒฐํ•˜๊ฒŒ residual ํ•ญ์œผ๋กœ ํ‘œํ˜„ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. ๋Š” Initialization ์„น์…˜์—์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ด๋ฏธ ์œ ๋„ํ•˜์˜€๋‹ค. map point keyframe edge of host keyframe edge of target keyframe More detail: https://blog.csdn.net/xxxlinttp/article/details/90640350
  • 119. 4.3.2. Keyframes โž” Sliding Window Optimization โž” Jacobian Derivation of Camera Intrinsics Jacobian of Camera Intrinsics ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ถ„ํ•ดํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด ๋•Œ, ์ด๋ฏ€๋กœ ๊ฐ„๊ฒฐํ•˜๊ฒŒ residual ํ•ญ์œผ๋กœ ํ‘œํ˜„ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์œ ๋„ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋Š” Initialization ์„น์…˜์—์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ด๋ฏธ ์œ ๋„ํ•˜์˜€๋‹ค. map point keyframe edge of host keyframe edge of target keyframe More detail: https://blog.csdn.net/xxxlinttp/article/details/90640350
  • 120. 4.3.2. Keyframes โž” Sliding Window Optimization โž” Jacobian Derivation of Camera Intrinsics ํ˜„์žฌ๊นŒ์ง€ ์œ ๋„๋œ ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. map point keyframe edge of host keyframe edge of target keyframe More detail: https://blog.csdn.net/xxxlinttp/article/details/90640350
  • 121. 4.3.2. Keyframes โž” Sliding Window Optimization โž” Jacobian Derivation of Camera Intrinsics ํ˜„์žฌ๊นŒ์ง€ ์œ ๋„๋œ ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. map point keyframe edge of host keyframe edge of target keyframe ๋‹ค์Œ ์ˆœ์„œ๋กœ ๊ฐ’์„ ๊ตฌํ•ด์•ผ ํ•œ๋‹ค. More detail: https://blog.csdn.net/xxxlinttp/article/details/90640350
  • 122. 4.3.2. Keyframes โž” Sliding Window Optimization โž” Jacobian Derivation of Camera Intrinsics ํ˜„์žฌ๊นŒ์ง€ ์œ ๋„๋œ ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. map point keyframe edge of host keyframe edge of target keyframe ์šฐ์„  ๋ฅผ ์ „๊ฐœํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. ๋‹ค์Œ ์ˆœ์„œ๋กœ ๊ฐ’์„ ๊ตฌํ•ด์•ผ ํ•œ๋‹ค. More detail: https://blog.csdn.net/xxxlinttp/article/details/90640350
  • 123. 4.3.2. Keyframes โž” Sliding Window Optimization โž” Jacobian Derivation of Camera Intrinsics map point keyframe edge of host keyframe edge of target keyframe More detail: https://blog.csdn.net/xxxlinttp/article/details/90640350
  • 124. 4.3.2. Keyframes โž” Sliding Window Optimization โž” Jacobian Derivation of Camera Intrinsics map point keyframe edge of host keyframe edge of target keyframe ๋”ฐ๋ผ์„œ ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ๋‹ค. More detail: https://blog.csdn.net/xxxlinttp/article/details/90640350
  • 125. 4.3.2. Keyframes โž” Sliding Window Optimization โž” Jacobian Derivation of Camera Intrinsics More detail: https://blog.csdn.net/xxxlinttp/article/details/90640350
  • 126. 4.3.2. Keyframes โž” Sliding Window Optimization โž” Jacobian Derivation of Camera Intrinsics ์œ„ ์‹์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฅผ ๊ตฌํ•ด๋ณด๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. More detail: https://blog.csdn.net/xxxlinttp/article/details/90640350
  • 127. 4.3.2. Keyframes โž” Sliding Window Optimization โž” Jacobian Derivation of Camera Intrinsics ์ตœ์ข…์ ์œผ๋กœ ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ๋‹ค. More detail: https://blog.csdn.net/xxxlinttp/article/details/90640350 camera intrinsics(4)
  • 128. 4.3.3. Keyframes โž” Sliding Window Optimization โž” First Estimate Jacobian Sliding Window Optimization์„ ์ˆ˜ํ–‰ํ•˜๋ฉด ๋งค iteration๋งˆ๋‹ค state variable ๊ฐ€ ์—…๋ฐ์ดํŠธ ๋œ๋‹ค. ์ด ๋•Œ ์—ฐ์‚ฐ์ž๋Š” N+12๊ฐœ์˜ ์ƒํƒœ๋ฅผ ๊ฐ ํŒŒ๋ผ๋ฏธํ„ฐ ๋ณ„๋กœ ์—…๋ฐ์ดํŠธํ•ด์ฃผ๋Š” ์—ฐ์‚ฐ์ž์ด๋‹ค. DSO paper Figure 6 Notation์˜ ํ˜ผ์šฉ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ๋…ผ๋ฌธ์˜ ๊ธฐํ˜ธ๋ฅผ ์ผ๋ถ€ ์ˆ˜์ •ํ•จ LBA๋ฅผ ์‹œ์ž‘ํ•˜๋Š” ์‹œ์ ์—์„œ state variable LBA๊ฐ€ ๋๋‚œ ํ›„ state variable ๋งค iteration ์—…๋ฐ์ดํŠธ(marginalization ํฌํ•จ)๋กœ ์ธํ•œ ๋ˆ„์  ์ฆ๋ถ„๋Ÿ‰ ๋งค iteration ์—…๋ฐ์ดํŠธ ์ฆ๋ถ„๋Ÿ‰ more detailed: https://blog.csdn.net/heyijia0327/article/details/53707261
  • 129. 4.3.3. Keyframes โž” Sliding Window Optimization โž” First Estimate Jacobian Sliding Window Optimization์„ ์ˆ˜ํ–‰ํ•˜๋ฉด ๋งค iteration๋งˆ๋‹ค state variable ๊ฐ€ ์—…๋ฐ์ดํŠธ ๋œ๋‹ค. ์ด ๋•Œ ์—ฐ์‚ฐ์ž๋Š” N+12๊ฐœ์˜ ์ƒํƒœ๋ฅผ ๊ฐ ํŒŒ๋ผ๋ฏธํ„ฐ ๋ณ„๋กœ ์—…๋ฐ์ดํŠธํ•ด์ฃผ๋Š” ์—ฐ์‚ฐ์ž์ด๋‹ค. DSO์—์„œ๋Š” LBA์„ ์ˆ˜ํ–‰ํ•  ๋•Œ๋งˆ๋‹ค 6๋ฒˆ์˜ ์ตœ์ ํ™”๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š”๋ฐ ๋งŒ์•ฝ ๋งค iteration๋งˆ๋‹ค Jacobian์„ ์ƒˆ๋กœ ๊ณ„์‚ฐํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋‹จ์ ์ด ์กด์žฌํ•œ๋‹ค. (์ž์„ธํ•œ ๋‚ด์šฉ์€ ์šฐ์ธก ํ•˜๋‹จ์˜ ๋งํฌ ์ฐธ์กฐ) DSO paper Figure 6 Notation์˜ ํ˜ผ์šฉ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ๋…ผ๋ฌธ์˜ ๊ธฐํ˜ธ๋ฅผ ์ผ๋ถ€ ์ˆ˜์ •ํ•จ LBA๋ฅผ ์‹œ์ž‘ํ•˜๋Š” ์‹œ์ ์—์„œ state variable LBA๊ฐ€ ๋๋‚œ ํ›„ state variable ๋งค iteration ์—…๋ฐ์ดํŠธ(marginalization ํฌํ•จ)๋กœ ์ธํ•œ ๋ˆ„์  ์ฆ๋ถ„๋Ÿ‰ ๋งค iteration ์—…๋ฐ์ดํŠธ ์ฆ๋ถ„๋Ÿ‰ more detailed: https://blog.csdn.net/heyijia0327/article/details/53707261
  • 130. 4.3.3. Keyframes โž” Sliding Window Optimization โž” First Estimate Jacobian Sliding Window Optimization์„ ์ˆ˜ํ–‰ํ•˜๋ฉด ๋งค iteration๋งˆ๋‹ค state variable ๊ฐ€ ์—…๋ฐ์ดํŠธ ๋œ๋‹ค. ์ด ๋•Œ ์—ฐ์‚ฐ์ž๋Š” N+12๊ฐœ์˜ ์ƒํƒœ๋ฅผ ๊ฐ ํŒŒ๋ผ๋ฏธํ„ฐ ๋ณ„๋กœ ์—…๋ฐ์ดํŠธํ•ด์ฃผ๋Š” ์—ฐ์‚ฐ์ž์ด๋‹ค. DSO์—์„œ๋Š” LBA์„ ์ˆ˜ํ–‰ํ•  ๋•Œ๋งˆ๋‹ค 6๋ฒˆ์˜ ์ตœ์ ํ™”๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š”๋ฐ ๋งŒ์•ฝ ๋งค iteration๋งˆ๋‹ค Jacobian์„ ์ƒˆ๋กœ ๊ณ„์‚ฐํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋‹จ์ ์ด ์กด์žฌํ•œ๋‹ค. (์ž์„ธํ•œ ๋‚ด์šฉ์€ ์šฐ์ธก ํ•˜๋‹จ์˜ ๋งํฌ ์ฐธ์กฐ) DSO paper Figure 6 Notation์˜ ํ˜ผ์šฉ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ๋…ผ๋ฌธ์˜ ๊ธฐํ˜ธ๋ฅผ ์ผ๋ถ€ ์ˆ˜์ •ํ•จ LBA๋ฅผ ์‹œ์ž‘ํ•˜๋Š” ์‹œ์ ์—์„œ state variable LBA๊ฐ€ ๋๋‚œ ํ›„ state variable ๋งค iteration ์—…๋ฐ์ดํŠธ(marginalization ํฌํ•จ)๋กœ ์ธํ•œ ๋ˆ„์  ์ฆ๋ถ„๋Ÿ‰ ๋งค iteration ์—…๋ฐ์ดํŠธ ์ฆ๋ถ„๋Ÿ‰ more detailed: https://blog.csdn.net/heyijia0327/article/details/53707261 1) ์—ฐ์‚ฐ๋Ÿ‰์ด ๋งค์šฐ ์ฆ๊ฐ€ํ•˜๋ฏ€๋กœ ์‹ค์‹œ๊ฐ„ ์„ฑ๋Šฅ์„ ๋ณด์žฅํ•  ์ˆ˜ ์—†๋‹ค. 2) ์„œ๋กœ ๋‹ค๋ฅธ state์˜ Jacobian์„ ํ•œ ์‹œ์Šคํ…œ์—์„œ ๊ฐ™์ด ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ์„ฑ๋Šฅ์˜ ์ €ํ•˜๋ฅผ ์ผ์œผํ‚ฌ ๊ฐ€๋Šฅ์„ฑ์ด ์กด์žฌํ•œ๋‹ค. Adding linearizations around different evaluation points eliminates these and thus slowly corrupts the system. (DSO paper)
  • 131. 4.3.3. Keyframes โž” Sliding Window Optimization โž” First Estimate Jacobian Sliding Window Optimization์„ ์ˆ˜ํ–‰ํ•˜๋ฉด ๋งค iteration๋งˆ๋‹ค state variable ๊ฐ€ ์—…๋ฐ์ดํŠธ ๋œ๋‹ค. ์ด ๋•Œ ์—ฐ์‚ฐ์ž๋Š” N+12๊ฐœ์˜ ์ƒํƒœ๋ฅผ ๊ฐ ํŒŒ๋ผ๋ฏธํ„ฐ ๋ณ„๋กœ ์—…๋ฐ์ดํŠธํ•ด์ฃผ๋Š” ์—ฐ์‚ฐ์ž์ด๋‹ค. DSO์—์„œ๋Š” LBA์„ ์ˆ˜ํ–‰ํ•  ๋•Œ๋งˆ๋‹ค 6๋ฒˆ์˜ ์ตœ์ ํ™”๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š”๋ฐ ๋งŒ์•ฝ ๋งค iteration๋งˆ๋‹ค Jacobian์„ ์ƒˆ๋กœ ๊ณ„์‚ฐํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋‹จ์ ์ด ์กด์žฌํ•œ๋‹ค. (์ž์„ธํ•œ ๋‚ด์šฉ์€ ์šฐ์ธก ํ•˜๋‹จ์˜ ๋งํฌ ์ฐธ์กฐ) DSO paper Figure 6 Notation์˜ ํ˜ผ์šฉ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ๋…ผ๋ฌธ์˜ ๊ธฐํ˜ธ๋ฅผ ์ผ๋ถ€ ์ˆ˜์ •ํ•จ LBA๋ฅผ ์‹œ์ž‘ํ•˜๋Š” ์‹œ์ ์—์„œ state variable LBA๊ฐ€ ๋๋‚œ ํ›„ state variable ๋งค iteration ์—…๋ฐ์ดํŠธ(marginalization ํฌํ•จ)๋กœ ์ธํ•œ ๋ˆ„์  ์ฆ๋ถ„๋Ÿ‰ ๋งค iteration ์—…๋ฐ์ดํŠธ ์ฆ๋ถ„๋Ÿ‰ more detailed: https://blog.csdn.net/heyijia0327/article/details/53707261 1) ์—ฐ์‚ฐ๋Ÿ‰์ด ๋งค์šฐ ์ฆ๊ฐ€ํ•˜๋ฏ€๋กœ ์‹ค์‹œ๊ฐ„ ์„ฑ๋Šฅ์„ ๋ณด์žฅํ•  ์ˆ˜ ์—†๋‹ค. 2) ์„œ๋กœ ๋‹ค๋ฅธ state์˜ Jacobian์„ ํ•œ ์‹œ์Šคํ…œ์—์„œ ๊ฐ™์ด ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ์„ฑ๋Šฅ์˜ ์ €ํ•˜๋ฅผ ์ผ์œผํ‚ฌ ๊ฐ€๋Šฅ์„ฑ์ด ์กด์žฌํ•œ๋‹ค. ๋”ฐ๋ผ์„œ LBA๋ฅผ ์ˆ˜ํ–‰ํ•  ๋•Œ ๋งค iteration๋งˆ๋‹ค(marginalization ํฌํ•จ) ์—…๋ฐ์ดํŠธ๋กœ ์ธํ•ด state variable ๊ฐ€ ๋ณ€ํ•˜๋”๋ผ๋„ Jacobian์€ ์ƒˆ๋กœ ๊ณ„์‚ฐํ•˜์ง€ ์•Š๊ณ  LBA๋ฅผ ์‹œ์ž‘ํ•˜๋Š” ์‹œ์ ( )์—์„œ ๊ณ„์‚ฐํ•œ Jacobian์„ ์‚ฌ์šฉํ•˜์—ฌ ์—…๋ฐ์ดํŠธํ•˜๋Š” ๋ฐฉ๋ฒ•์„ First Estimate Jacobian(FEJ)๋ผ๊ณ  ํ•œ๋‹ค. FEJ์˜ ์ ์šฉ ์ˆœ์„œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.
  • 132. 4.3.3. Keyframes โž” Sliding Window Optimization โž” First Estimate Jacobian Sliding Window Optimization์„ ์ˆ˜ํ–‰ํ•˜๋ฉด ๋งค iteration๋งˆ๋‹ค state variable ๊ฐ€ ์—…๋ฐ์ดํŠธ ๋œ๋‹ค. ์ด ๋•Œ ์—ฐ์‚ฐ์ž๋Š” N+12๊ฐœ์˜ ์ƒํƒœ๋ฅผ ๊ฐ ํŒŒ๋ผ๋ฏธํ„ฐ ๋ณ„๋กœ ์—…๋ฐ์ดํŠธํ•ด์ฃผ๋Š” ์—ฐ์‚ฐ์ž์ด๋‹ค. DSO์—์„œ๋Š” LBA์„ ์ˆ˜ํ–‰ํ•  ๋•Œ๋งˆ๋‹ค 6๋ฒˆ์˜ ์ตœ์ ํ™”๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š”๋ฐ ๋งŒ์•ฝ ๋งค iteration๋งˆ๋‹ค Jacobian์„ ์ƒˆ๋กœ ๊ณ„์‚ฐํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋‹จ์ ์ด ์กด์žฌํ•œ๋‹ค. (์ž์„ธํ•œ ๋‚ด์šฉ์€ ์šฐ์ธก ํ•˜๋‹จ์˜ ๋งํฌ ์ฐธ์กฐ) DSO paper Figure 6 Notation์˜ ํ˜ผ์šฉ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ๋…ผ๋ฌธ์˜ ๊ธฐํ˜ธ๋ฅผ ์ผ๋ถ€ ์ˆ˜์ •ํ•จ LBA๋ฅผ ์‹œ์ž‘ํ•˜๋Š” ์‹œ์ ์—์„œ state variable LBA๊ฐ€ ๋๋‚œ ํ›„ state variable ๋งค iteration ์—…๋ฐ์ดํŠธ(marginalization ํฌํ•จ)๋กœ ์ธํ•œ ๋ˆ„์  ์ฆ๋ถ„๋Ÿ‰ ๋งค iteration ์—…๋ฐ์ดํŠธ ์ฆ๋ถ„๋Ÿ‰ more detailed: https://blog.csdn.net/heyijia0327/article/details/53707261 1) ์—ฐ์‚ฐ๋Ÿ‰์ด ๋งค์šฐ ์ฆ๊ฐ€ํ•˜๋ฏ€๋กœ ์‹ค์‹œ๊ฐ„ ์„ฑ๋Šฅ์„ ๋ณด์žฅํ•  ์ˆ˜ ์—†๋‹ค. 2) ์„œ๋กœ ๋‹ค๋ฅธ state์˜ Jacobian์„ ํ•œ ์‹œ์Šคํ…œ์—์„œ ๊ฐ™์ด ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ์„ฑ๋Šฅ์˜ ์ €ํ•˜๋ฅผ ์ผ์œผํ‚ฌ ๊ฐ€๋Šฅ์„ฑ์ด ์กด์žฌํ•œ๋‹ค. 1) LBA๋ฅผ ์‹œ์ž‘ํ•˜๊ธฐ ์ „ ํ˜„์žฌ ๋ฅผ ์— ์ €์žฅํ•œ ํ›„ Jacobian์„ ๊ณ„์‚ฐํ•œ๋‹ค. 2) LBA๋ฅผ ์ˆ˜ํ–‰ํ•˜๋ฉด์„œ ๋งค iteration๋งˆ๋‹ค ์—…๋ฐ์ดํŠธ ๊ฐ’์„ ๋ˆ„์ ์‹œํ‚จ๋‹ค. 3) ๋งค iteration๋™์•ˆ Jacobian์€ ์—์„œ ๊ณ„์‚ฐํ•œ ๊ฐ’์„ ์‚ฌ์šฉํ•œ๋‹ค. 4) LBA iteration์ด ๋๋‚œ ๊ฒฝ์šฐ ํ˜„์žฌ ์ƒํƒœ์—์„œ ๋ˆ„์ ๋œ ์ฆ๋ถ„๋Ÿ‰์„ ์—…๋ฐ์ดํŠธํ•œ๋‹ค. ๋”ฐ๋ผ์„œ LBA๋ฅผ ์ˆ˜ํ–‰ํ•  ๋•Œ ๋งค iteration๋งˆ๋‹ค(marginalization ํฌํ•จ) ์—…๋ฐ์ดํŠธ๋กœ ์ธํ•ด state variable ๊ฐ€ ๋ณ€ํ•˜๋”๋ผ๋„ Jacobian์€ ์ƒˆ๋กœ ๊ณ„์‚ฐํ•˜์ง€ ์•Š๊ณ  LBA๋ฅผ ์‹œ์ž‘ํ•˜๋Š” ์‹œ์ ( )์—์„œ ๊ณ„์‚ฐํ•œ Jacobian์„ ์‚ฌ์šฉํ•˜์—ฌ ์—…๋ฐ์ดํŠธํ•˜๋Š” ๋ฐฉ๋ฒ•์„ First Estimate Jacobian(FEJ)๋ผ๊ณ  ํ•œ๋‹ค. FEJ์˜ ์ ์šฉ ์ˆœ์„œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.
  • 133. ์•ž์„œ ์„ค๋ช…ํ•œ ๊ฒƒ๊ณผ ๊ฐ™์ด DSO์—์„œ๋Š” ํ•˜๋‚˜์˜ ๋งตํฌ์ธํŠธ์— 2๊ฐœ์˜ ํ‚คํ”„๋ ˆ์ž„(host, target)์ด ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋‹ค. ์ด์— ๋”ฐ๋ผ ์ตœ์ ํ™” ์ˆ˜ํ–‰ ์‹œ ์—ฐ์‚ฐ๋Ÿ‰์„ ์ค„์ด๊ธฐ ์œ„ํ•ด target, host ํ‚คํ”„๋ ˆ์ž„ ์‚ฌ์ด์˜ ์ƒ๋Œ€ ํฌ์ฆˆ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ณ„์‚ฐํ•œ Jacobian ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. map point keyframe ์›”๋“œ์ขŒํ‘œ๊ณ„ {w}์—์„œ ๋ฐ”๋ผ๋ณธ host ํ‚คํ”„๋ ˆ์ž„์˜ ํฌ์ฆˆ(4x4ํ–‰๋ ฌ) ์›”๋“œ์ขŒํ‘œ๊ณ„ {w}์—์„œ ๋ฐ”๋ผ๋ณธ target ํ‚คํ”„๋ ˆ์ž„์˜ ํฌ์ฆˆ(4x4ํ–‰๋ ฌ) residual target ๊ธฐ์ค€ host ํ‚คํ”„๋ ˆ์ž„์˜ ์ƒ๋Œ€ ํฌ์ฆˆ ๋ณ€ํ™”๋Ÿ‰(twist)(6์ฐจ์›๋ฒกํ„ฐ) ์ž์„ธํ•œ ๋‚ด์šฉ์€ ํ•ด๋‹น ๋ธ”๋กœ๊ทธ ์ฐธ์กฐ: https://www.cnblogs.com/JingeTU/p/8306727.html 4.3.4. Keyframes โž” Sliding Window Optimization โž” Adjoint Transformation ๊ฐ„๊ฒฐํ•œ ํ‘œํ˜„์„ ์œ„ํ•ด w ๊ธฐํ˜ธ ์ƒ๋žต
  • 134. ์•ž์„œ ์„ค๋ช…ํ•œ ๊ฒƒ๊ณผ ๊ฐ™์ด DSO์—์„œ๋Š” ํ•˜๋‚˜์˜ ๋งตํฌ์ธํŠธ์— 2๊ฐœ์˜ ํ‚คํ”„๋ ˆ์ž„(host, target)์ด ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋‹ค. ์ด์— ๋”ฐ๋ผ ์ตœ์ ํ™” ์ˆ˜ํ–‰ ์‹œ ์—ฐ์‚ฐ๋Ÿ‰์„ ์ค„์ด๊ธฐ ์œ„ํ•ด target, host ํ‚คํ”„๋ ˆ์ž„ ์‚ฌ์ด์˜ ์ƒ๋Œ€ ํฌ์ฆˆ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ณ„์‚ฐํ•œ Jacobian ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ํ•˜์ง€๋งŒ ํ•ด๋‹น Jacobian์„ ์‚ฌ์šฉํ•˜์—ฌ Iterative Solution์„ ๊ตฌํ•˜๊ฒŒ ๋˜๋ฉด ๋‘ host, target ํ‚คํ”„๋ ˆ์ž„ ์‚ฌ์ด์˜ ์ƒ๋Œ€ํฌ์ฆˆ๋งŒ ์ตœ์ ํ™”๋˜๋ฏ€๋กœ ์›”๋“œ์ขŒํ‘œ๊ณ„ ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ํ•œ ์นด๋ฉ”๋ผ ํฌ์ฆˆ๋Š” ๊ณ„์‚ฐํ•  ์ˆ˜ ์—†๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ํ•ด๋‹น ๋ธ”๋กœ๊ทธ ์ฐธ์กฐ: https://www.cnblogs.com/JingeTU/p/8306727.html ๊ฐ„๊ฒฐํ•œ ํ‘œํ˜„์„ ์œ„ํ•ด w ๊ธฐํ˜ธ ์ƒ๋žต map point keyframe ์›”๋“œ์ขŒํ‘œ๊ณ„ {w}์—์„œ ๋ฐ”๋ผ๋ณธ host ํ‚คํ”„๋ ˆ์ž„์˜ ํฌ์ฆˆ(4x4ํ–‰๋ ฌ) ์›”๋“œ์ขŒํ‘œ๊ณ„ {w}์—์„œ ๋ฐ”๋ผ๋ณธ target ํ‚คํ”„๋ ˆ์ž„์˜ ํฌ์ฆˆ(4x4ํ–‰๋ ฌ) residual target ๊ธฐ์ค€ host ํ‚คํ”„๋ ˆ์ž„์˜ ์ƒ๋Œ€ ํฌ์ฆˆ ๋ณ€ํ™”๋Ÿ‰(twist)(6์ฐจ์›๋ฒกํ„ฐ) 4.3.4. Keyframes โž” Sliding Window Optimization โž” Adjoint Transformation
  • 135. ์•ž์„œ ์„ค๋ช…ํ•œ ๊ฒƒ๊ณผ ๊ฐ™์ด DSO์—์„œ๋Š” ํ•˜๋‚˜์˜ ๋งตํฌ์ธํŠธ์— 2๊ฐœ์˜ ํ‚คํ”„๋ ˆ์ž„(host, target)์ด ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋‹ค. ์ด์— ๋”ฐ๋ผ ์ตœ์ ํ™” ์ˆ˜ํ–‰ ์‹œ ์—ฐ์‚ฐ๋Ÿ‰์„ ์ค„์ด๊ธฐ ์œ„ํ•ด target, host ํ‚คํ”„๋ ˆ์ž„ ์‚ฌ์ด์˜ ์ƒ๋Œ€ ํฌ์ฆˆ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ณ„์‚ฐํ•œ Jacobian ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ํ•˜์ง€๋งŒ ํ•ด๋‹น Jacobian์„ ์‚ฌ์šฉํ•˜์—ฌ Iterative Solution์„ ๊ตฌํ•˜๊ฒŒ ๋˜๋ฉด ๋‘ host, target ํ‚คํ”„๋ ˆ์ž„ ์‚ฌ์ด์˜ ์ƒ๋Œ€ํฌ์ฆˆ๋งŒ ์ตœ์ ํ™”๋˜๋ฏ€๋กœ ์›”๋“œ์ขŒํ‘œ๊ณ„ ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ํ•œ ์นด๋ฉ”๋ผ ํฌ์ฆˆ๋Š” ๊ณ„์‚ฐํ•  ์ˆ˜ ์—†๋‹ค. ์ด ๋•Œ, DSO์—์„œ๋Š” Adjoint Transformation์„ ํ†ตํ•ด ๋ฅผ ๊ณ„์‚ฐํ•˜์—ฌ ์›”๋“œ์ขŒํ‘œ๊ณ„์˜ ์นด๋ฉ”๋ผ ํฌ์ฆˆ๋ฅผ ์ตœ์ ํ™”ํ•˜์˜€๋‹ค. ๊ฐ„๊ฒฐํ•œ ํ‘œํ˜„์„ ์œ„ํ•ด w ๊ธฐํ˜ธ ์ƒ๋žต ์ž์„ธํ•œ ๋‚ด์šฉ์€ ํ•ด๋‹น ๋ธ”๋กœ๊ทธ ์ฐธ์กฐ: https://www.cnblogs.com/JingeTU/p/8306727.html map point keyframe ์›”๋“œ์ขŒํ‘œ๊ณ„ {w}์—์„œ ๋ฐ”๋ผ๋ณธ host ํ‚คํ”„๋ ˆ์ž„์˜ ํฌ์ฆˆ(4x4ํ–‰๋ ฌ) ์›”๋“œ์ขŒํ‘œ๊ณ„ {w}์—์„œ ๋ฐ”๋ผ๋ณธ target ํ‚คํ”„๋ ˆ์ž„์˜ ํฌ์ฆˆ(4x4ํ–‰๋ ฌ) residual target ๊ธฐ์ค€ host ํ‚คํ”„๋ ˆ์ž„์˜ ์ƒ๋Œ€ ํฌ์ฆˆ ๋ณ€ํ™”๋Ÿ‰(twist)(6์ฐจ์›๋ฒกํ„ฐ) 4.3.4. Keyframes โž” Sliding Window Optimization โž” Adjoint Transformation
  • 136. ์„ ๋กœ ๋ณ€ํ™˜ํ•˜๊ธฐ ์œ„ํ•ด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์—ฐ์‚ฐ์„ ์‚ฌ์šฉํ•œ๋‹ค. residual target ๊ธฐ์ค€ host ํ‚คํ”„๋ ˆ์ž„์˜ ์ƒ๋Œ€ ํฌ์ฆˆ ๋ณ€ํ™”๋Ÿ‰(twist)(6์ฐจ์›๋ฒกํ„ฐ) ์›”๋“œ์ขŒํ‘œ๊ณ„ ๊ธฐ์ค€ host ํ‚คํ”„๋ ˆ์ž„์˜ ์ƒ๋Œ€ ํฌ์ฆˆ ๋ณ€ํ™”๋Ÿ‰(twist)(6์ฐจ์›๋ฒกํ„ฐ) ์›”๋“œ์ขŒํ‘œ๊ณ„ ๊ธฐ์ค€ target ํ‚คํ”„๋ ˆ์ž„์˜ ์ƒ๋Œ€ ํฌ์ฆˆ ๋ณ€ํ™”๋Ÿ‰(twist)(6์ฐจ์›๋ฒกํ„ฐ) host target ์ž์„ธํ•œ ๋‚ด์šฉ์€ ํ•ด๋‹น ๋ธ”๋กœ๊ทธ ์ฐธ์กฐ: https://www.cnblogs.com/JingeTU/p/8306727.html 4.3.4. Keyframes โž” Sliding Window Optimization โž” Adjoint Transformation
  • 137. ์„ ๋กœ ๋ณ€ํ™˜ํ•˜๊ธฐ ์œ„ํ•ด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์—ฐ์‚ฐ์„ ์‚ฌ์šฉํ•œ๋‹ค. residual target ๊ธฐ์ค€ host ํ‚คํ”„๋ ˆ์ž„์˜ ์ƒ๋Œ€ ํฌ์ฆˆ ๋ณ€ํ™”๋Ÿ‰(twist)(6์ฐจ์›๋ฒกํ„ฐ) ์›”๋“œ์ขŒํ‘œ๊ณ„ ๊ธฐ์ค€ host ํ‚คํ”„๋ ˆ์ž„์˜ ์ƒ๋Œ€ ํฌ์ฆˆ ๋ณ€ํ™”๋Ÿ‰(twist)(6์ฐจ์›๋ฒกํ„ฐ) ์›”๋“œ์ขŒํ‘œ๊ณ„ ๊ธฐ์ค€ target ํ‚คํ”„๋ ˆ์ž„์˜ ์ƒ๋Œ€ ํฌ์ฆˆ ๋ณ€ํ™”๋Ÿ‰(twist)(6์ฐจ์›๋ฒกํ„ฐ) host target ์ด ๋•Œ twist ๋ณ€ํ™”๋Ÿ‰์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ณ„์‚ฐํ•  ์ˆ˜ ์žˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ํ•ด๋‹น ๋ธ”๋กœ๊ทธ ์ฐธ์กฐ: https://www.cnblogs.com/JingeTU/p/8306727.html 4.3.4. Keyframes โž” Sliding Window Optimization โž” Adjoint Transformation
  • 138. ์„ ๋กœ ๋ณ€ํ™˜ํ•˜๊ธฐ ์œ„ํ•ด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์—ฐ์‚ฐ์„ ์‚ฌ์šฉํ•œ๋‹ค. residual target ๊ธฐ์ค€ host ํ‚คํ”„๋ ˆ์ž„์˜ ์ƒ๋Œ€ ํฌ์ฆˆ ๋ณ€ํ™”๋Ÿ‰(twist)(6์ฐจ์›๋ฒกํ„ฐ) ์›”๋“œ์ขŒํ‘œ๊ณ„ ๊ธฐ์ค€ host ํ‚คํ”„๋ ˆ์ž„์˜ ์ƒ๋Œ€ ํฌ์ฆˆ ๋ณ€ํ™”๋Ÿ‰(twist)(6์ฐจ์›๋ฒกํ„ฐ) ์›”๋“œ์ขŒํ‘œ๊ณ„ ๊ธฐ์ค€ target ํ‚คํ”„๋ ˆ์ž„์˜ ์ƒ๋Œ€ ํฌ์ฆˆ ๋ณ€ํ™”๋Ÿ‰(twist)(6์ฐจ์›๋ฒกํ„ฐ) host target ์ด ๋•Œ twist ๋ณ€ํ™”๋Ÿ‰์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ณ„์‚ฐํ•  ์ˆ˜ ์žˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ํ•ด๋‹น ๋ธ”๋กœ๊ทธ ์ฐธ์กฐ: https://www.cnblogs.com/JingeTU/p/8306727.html ์—ฌ๊ธฐ์„œ ๋ฅผ Adjoint Transformation of SE(3) Group๋ผ๊ณ  ํ•œ๋‹ค. ํ•ด๋‹น ๋ณ€ํ™˜์ด ํ•˜๋Š” ์—ญํ• ์€ 3์ฐจ์› ๊ณต๊ฐ„ ์ƒ์—์„œ ํŠน์ • ์ขŒํ‘œ๊ณ„(๋˜๋Š” ํฌ์ฆˆ)์—์„œ ๋ฐ”๋ผ๋ณธ twist๋ฅผ ๋‹ค๋ฅธ ์ขŒํ‘œ๊ณ„(๋˜๋Š” ํฌ์ฆˆ)์—์„œ ๋ฐ”๋ผ๋ณธ twist๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ์—ญํ• ์„ ํ•œ๋‹ค. 4.3.4. Keyframes โž” Sliding Window Optimization โž” Adjoint Transformation
  • 139. ์„ ๋กœ ๋ณ€ํ™˜ํ•˜๊ธฐ ์œ„ํ•ด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์—ฐ์‚ฐ์„ ์‚ฌ์šฉํ•œ๋‹ค. residual target ๊ธฐ์ค€ host ํ‚คํ”„๋ ˆ์ž„์˜ ์ƒ๋Œ€ ํฌ์ฆˆ ๋ณ€ํ™”๋Ÿ‰(twist)(6์ฐจ์›๋ฒกํ„ฐ) ์›”๋“œ์ขŒํ‘œ๊ณ„ ๊ธฐ์ค€ host ํ‚คํ”„๋ ˆ์ž„์˜ ์ƒ๋Œ€ ํฌ์ฆˆ ๋ณ€ํ™”๋Ÿ‰(twist)(6์ฐจ์›๋ฒกํ„ฐ) ์›”๋“œ์ขŒํ‘œ๊ณ„ ๊ธฐ์ค€ target ํ‚คํ”„๋ ˆ์ž„์˜ ์ƒ๋Œ€ ํฌ์ฆˆ ๋ณ€ํ™”๋Ÿ‰(twist)(6์ฐจ์›๋ฒกํ„ฐ) host target ์ด ๋•Œ twist ๋ณ€ํ™”๋Ÿ‰์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ณ„์‚ฐํ•  ์ˆ˜ ์žˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ํ•ด๋‹น ๋ธ”๋กœ๊ทธ ์ฐธ์กฐ: https://www.cnblogs.com/JingeTU/p/8306727.html ์—ฌ๊ธฐ์„œ ๋ฅผ Adjoint Transformation of SE(3) Group๋ผ๊ณ  ํ•œ๋‹ค. ํ•ด๋‹น ๋ณ€ํ™˜์ด ํ•˜๋Š” ์—ญํ• ์€ 3์ฐจ์› ๊ณต๊ฐ„ ์ƒ์—์„œ ํŠน์ • ์ขŒํ‘œ๊ณ„(๋˜๋Š” ํฌ์ฆˆ)์—์„œ ๋ฐ”๋ผ๋ณธ twist๋ฅผ ๋‹ค๋ฅธ ์ขŒํ‘œ๊ณ„(๋˜๋Š” ํฌ์ฆˆ)์—์„œ ๋ฐ”๋ผ๋ณธ twist๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ์—ญํ• ์„ ํ•œ๋‹ค. ๊ตฌ์ฒด์ ์œผ๋กœ ๋Š” host ํ‚คํ”„๋ ˆ์ž„์—์„œ ๋ฐ”๋ผ๋ณธ ํŠน์ • twist๋ฅผ target ํ‚คํ”„๋ ˆ์ž„์—์„œ ๋ฐ”๋ผ๋ณธ twist๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ์—ฐ์‚ฐ์ž์ด๋‹ค. ํ•˜์ง€๋งŒ ํ•ด๋‹น ์Šฌ๋ผ์ด๋“œ์—์„œ๋Š” ๊ฐ’์œผ๋กœ ์œ ๋„๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ฅผ ๊ณ„์‚ฐํ•˜๊ธฐ ์œ„ํ•œ ๋„๊ตฌ๋กœ๋งŒ ์‚ฌ์šฉ๋œ๋‹ค. 4.3.4. Keyframes โž” Sliding Window Optimization โž” Adjoint Transformation
  • 140. ์˜ ์ž์„ธํ•œ ์ •์˜ ๋ฐ ์—ญํ• ์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์•Œ๊ณ  ์‹ถ์œผ๋ฉด ์šฐ์ธก ํ•˜๋‹จ์˜ ๋งํฌ๋ฅผ ์ฐธ์กฐํ•˜๋ฉด ๋œ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ํ•ด๋‹น ๋ธ”๋กœ๊ทธ ์ฐธ์กฐ: https://www.cnblogs.com/JingeTU/p/9077372.html Lie Theory for Robotics ๊ด€๋ จ ๋‚ด์šฉ์€ ๋‹ค์Œ ์ž๋ฃŒ ์ฐธ์กฐ: http://ethaneade.com/lie.pdf 3์ฐจ์› ํฌ์ฆˆ (transform)(4x4ํ–‰๋ ฌ)(lie group) hat ์—ฐ์‚ฐ์ž๊ฐ€ ์ ์šฉ๋œ twist (4x4ํ–‰๋ ฌ)(lie algebra) ์ƒ๋Œ€ ํฌ์ฆˆ ๋ณ€ํ™”๋Ÿ‰ (twist)(6์ฐจ์›๋ฒกํ„ฐ) 4.3.4. Keyframes โž” Sliding Window Optimization โž” Adjoint Transformation
  • 141. ์˜ ์ž์„ธํ•œ ์ •์˜ ๋ฐ ์—ญํ• ์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์•Œ๊ณ  ์‹ถ์œผ๋ฉด ์šฐ์ธก ํ•˜๋‹จ์˜ ๋งํฌ๋ฅผ ์ฐธ์กฐํ•˜๋ฉด ๋œ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ํ•ด๋‹น ๋ธ”๋กœ๊ทธ ์ฐธ์กฐ: https://www.cnblogs.com/JingeTU/p/9077372.html Lie Theory for Robotics ๊ด€๋ จ ๋‚ด์šฉ์€ ๋‹ค์Œ ์ž๋ฃŒ ์ฐธ์กฐ: http://ethaneade.com/lie.pdf ํ•ด๋‹น ์Šฌ๋ผ์ด๋“œ์—์„œ๋Š” ๋‘ ๊ฐ’์˜ ์œ ๋„ ๊ณผ์ •์— ๋Œ€ํ•ด ์„ค๋ช…ํ•œ๋‹ค. ์šฐ์„  ๊ณผ ๊ฐ™์ด 2๊ฐœ์˜ ํฌ์ฆˆ๋กœ ๋ถ„ํ• ํ•  ์ˆ˜ ์žˆ๊ณ  ์ด๋ฅผ Iterative ์—…๋ฐ์ดํŠธ ๊ณต์‹์œผ๋กœ ํ™•์žฅํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. 3์ฐจ์› ํฌ์ฆˆ (transform)(4x4ํ–‰๋ ฌ)(lie group) hat ์—ฐ์‚ฐ์ž๊ฐ€ ์ ์šฉ๋œ twist (4x4ํ–‰๋ ฌ)(lie algebra) ์ƒ๋Œ€ ํฌ์ฆˆ ๋ณ€ํ™”๋Ÿ‰ (twist)(6์ฐจ์›๋ฒกํ„ฐ) 4.3.4. Keyframes โž” Sliding Window Optimization โž” Adjoint Transformation
  • 142. ์˜ ์ž์„ธํ•œ ์ •์˜ ๋ฐ ์—ญํ• ์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์•Œ๊ณ  ์‹ถ์œผ๋ฉด ์šฐ์ธก ํ•˜๋‹จ์˜ ๋งํฌ๋ฅผ ์ฐธ์กฐํ•˜๋ฉด ๋œ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ํ•ด๋‹น ๋ธ”๋กœ๊ทธ ์ฐธ์กฐ: https://www.cnblogs.com/JingeTU/p/9077372.html Lie Theory for Robotics ๊ด€๋ จ ๋‚ด์šฉ์€ ๋‹ค์Œ ์ž๋ฃŒ ์ฐธ์กฐ: http://ethaneade.com/lie.pdf ํ•ด๋‹น ์Šฌ๋ผ์ด๋“œ์—์„œ๋Š” ๋‘ ๊ฐ’์˜ ์œ ๋„ ๊ณผ์ •์— ๋Œ€ํ•ด ์„ค๋ช…ํ•œ๋‹ค. ์šฐ์„  ๊ณผ ๊ฐ™์ด 2๊ฐœ์˜ ํฌ์ฆˆ๋กœ ๋ถ„ํ• ํ•  ์ˆ˜ ์žˆ๊ณ  ์ด๋ฅผ Iterative ์—…๋ฐ์ดํŠธ ๊ณต์‹์œผ๋กœ ํ™•์žฅํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. 3์ฐจ์› ํฌ์ฆˆ (transform)(4x4ํ–‰๋ ฌ)(lie group) hat ์—ฐ์‚ฐ์ž๊ฐ€ ์ ์šฉ๋œ twist (4x4ํ–‰๋ ฌ)(lie algebra) ์ƒ๋Œ€ ํฌ์ฆˆ ๋ณ€ํ™”๋Ÿ‰ (twist)(6์ฐจ์›๋ฒกํ„ฐ) host 4.3.4. Keyframes โž” Sliding Window Optimization โž” Adjoint Transformation
  • 143. ์˜ ์ž์„ธํ•œ ์ •์˜ ๋ฐ ์—ญํ• ์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์•Œ๊ณ  ์‹ถ์œผ๋ฉด ์šฐ์ธก ํ•˜๋‹จ์˜ ๋งํฌ๋ฅผ ์ฐธ์กฐํ•˜๋ฉด ๋œ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ํ•ด๋‹น ๋ธ”๋กœ๊ทธ ์ฐธ์กฐ: https://www.cnblogs.com/JingeTU/p/9077372.html Lie Theory for Robotics ๊ด€๋ จ ๋‚ด์šฉ์€ ๋‹ค์Œ ์ž๋ฃŒ ์ฐธ์กฐ: http://ethaneade.com/lie.pdf ํ•ด๋‹น ์Šฌ๋ผ์ด๋“œ์—์„œ๋Š” ๋‘ ๊ฐ’์˜ ์œ ๋„ ๊ณผ์ •์— ๋Œ€ํ•ด ์„ค๋ช…ํ•œ๋‹ค. ์šฐ์„  ๊ณผ ๊ฐ™์ด 2๊ฐœ์˜ ํฌ์ฆˆ๋กœ ๋ถ„ํ• ํ•  ์ˆ˜ ์žˆ๊ณ  ์ด๋ฅผ Iterative ์—…๋ฐ์ดํŠธ ๊ณต์‹์œผ๋กœ ํ™•์žฅํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. host 3์ฐจ์› ํฌ์ฆˆ (transform)(4x4ํ–‰๋ ฌ)(lie group) hat ์—ฐ์‚ฐ์ž๊ฐ€ ์ ์šฉ๋œ twist (4x4ํ–‰๋ ฌ)(lie algebra) ์ƒ๋Œ€ ํฌ์ฆˆ ๋ณ€ํ™”๋Ÿ‰ (twist)(6์ฐจ์›๋ฒกํ„ฐ) target 4.3.4. Keyframes โž” Sliding Window Optimization โž” Adjoint Transformation
  • 144. 4.3.5. Keyframes โž” Sliding Window Optimization โž” Marginalization TBA
  • 145. 4.3.6. Keyframes โž” Sliding Window Optimization โž” Solving The Incremental Equation DSO์—์„œ๋Š” Sliding Window ๋‚ด๋ถ€์˜ ํ•ญ์ƒ 8๊ฐœ์˜ ํ‚คํ”„๋ ˆ์ž„์„ ์œ ์ง€ํ•˜๋ฉด์„œ Pose(6) + Photometric(2) + Camera Intrinsics(4) + Idepth(N)์˜ ์ด 12+N๊ฐœ์˜ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์ตœ์ ํ™”ํ•œ๋‹ค.
  • 146. DSO์—์„œ๋Š” Sliding Window ๋‚ด๋ถ€์˜ ํ•ญ์ƒ 8๊ฐœ์˜ ํ‚คํ”„๋ ˆ์ž„์„ ์œ ์ง€ํ•˜๋ฉด์„œ Pose(6) + Photometric(2) + Camera Intrinsics(4) + Idepth(N)์˜ ์ด 12+N๊ฐœ์˜ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์ตœ์ ํ™”ํ•œ๋‹ค. ์ด๋ ‡๊ฒŒ ํŠน์ • ์˜์—ญ ๋‚ด์˜ ํ‚คํ”„๋ ˆ์ž„์˜ ํฌ์ฆˆ์™€ ๋งตํฌ์ธํŠธ๋ฅผ ๋™์‹œ์— ์ตœ์ ํ™”ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ Local Bundle Adjustment(LBA)๋ผ๊ณ  ํ•œ๋‹ค. ์„ค๋ช…์˜ ํŽธ์˜์ƒ ์ดํ›„ ์„น์…˜์—์„œ๋Š” Sliding Window Optimization์„ LBA๋ผ๊ณ  ์–ธ๊ธ‰ํ•œ๋‹ค. 4.3.6. Keyframes โž” Sliding Window Optimization โž” Solving The Incremental Equation
  • 147. 1๋ฒˆ ์ด๋ฏธ์ง€์—์„œ i๋ฒˆ์งธ inverse depth ๊ฐ’ (N๊ฐœ) ๋‘ ์ด๋ฏธ์ง€ ๊ฐ„ exposure time์„ ๊ณ ๋ คํ•˜์—ฌ ์ด๋ฏธ์ง€ ๋ฐ๊ธฐ๋ฅผ ์กฐ์ ˆํ•˜๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ (2๊ฐœ) ๋‘ ์นด๋ฉ”๋ผ ๊ฐ„ ์ƒ๋Œ€ ํฌ์ฆˆ ๋ณ€ํ™”๋Ÿ‰ (twist)(6์ฐจ์› ๋ฒกํ„ฐ) (6๊ฐœ) ์นด๋ฉ”๋ผ ๋‚ด๋ถ€ ํŒŒ๋ผ๋ฏธํ„ฐ (fx, fy, cx, cy) (4๊ฐœ) ์ด์ „ ์„น์…˜์—์„œ ์œ ๋„ํ•œ LBA์˜ ์—๋Ÿฌํ•จ์ˆ˜๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๊ณ  ์ด ๋•Œ state variable ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. DSO์—์„œ๋Š” Sliding Window ๋‚ด๋ถ€์˜ ํ•ญ์ƒ 8๊ฐœ์˜ ํ‚คํ”„๋ ˆ์ž„์„ ์œ ์ง€ํ•˜๋ฉด์„œ Pose(6) + Photometric(2) + Camera Intrinsics(4) + Idepth(N)์˜ ์ด 12+N๊ฐœ์˜ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์ตœ์ ํ™”ํ•œ๋‹ค. ์ด๋ ‡๊ฒŒ ํŠน์ • ์˜์—ญ ๋‚ด์˜ ํ‚คํ”„๋ ˆ์ž„์˜ ํฌ์ฆˆ์™€ ๋งตํฌ์ธํŠธ๋ฅผ ๋™์‹œ์— ์ตœ์ ํ™”ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ Local Bundle Adjustment(LBA)๋ผ๊ณ  ํ•œ๋‹ค. ์„ค๋ช…์˜ ํŽธ์˜์ƒ ์ดํ›„ ์„น์…˜์—์„œ๋Š” Sliding Window Optimization์„ LBA๋ผ๊ณ  ์–ธ๊ธ‰ํ•œ๋‹ค. 4.3.6. Keyframes โž” Sliding Window Optimization โž” Solving The Incremental Equation
  • 148. 1๋ฒˆ ์ด๋ฏธ์ง€์—์„œ i๋ฒˆ์งธ inverse depth ๊ฐ’ (N๊ฐœ) ๋‘ ์ด๋ฏธ์ง€ ๊ฐ„ exposure time์„ ๊ณ ๋ คํ•˜์—ฌ ์ด๋ฏธ์ง€ ๋ฐ๊ธฐ๋ฅผ ์กฐ์ ˆํ•˜๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ (2๊ฐœ) ๋‘ ์นด๋ฉ”๋ผ ๊ฐ„ ์ƒ๋Œ€ ํฌ์ฆˆ ๋ณ€ํ™”๋Ÿ‰ (twist)(6์ฐจ์› ๋ฒกํ„ฐ) (6๊ฐœ) ์นด๋ฉ”๋ผ ๋‚ด๋ถ€ ํŒŒ๋ผ๋ฏธํ„ฐ (fx, fy, cx, cy) (4๊ฐœ) ์ด์ „ ์„น์…˜์—์„œ ์œ ๋„ํ•œ LBA์˜ ์—๋Ÿฌํ•จ์ˆ˜๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๊ณ  ์ด ๋•Œ state variable ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. DSO์—์„œ๋Š” Sliding Window ๋‚ด๋ถ€์˜ ํ•ญ์ƒ 8๊ฐœ์˜ ํ‚คํ”„๋ ˆ์ž„์„ ์œ ์ง€ํ•˜๋ฉด์„œ Pose(6) + Photometric(2) + Camera Intrinsics(4) + Idepth(N)์˜ ์ด 12+N๊ฐœ์˜ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์ตœ์ ํ™”ํ•œ๋‹ค. ์ด๋ ‡๊ฒŒ ํŠน์ • ์˜์—ญ ๋‚ด์˜ ํ‚คํ”„๋ ˆ์ž„์˜ ํฌ์ฆˆ์™€ ๋งตํฌ์ธํŠธ๋ฅผ ๋™์‹œ์— ์ตœ์ ํ™”ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ Local Bundle Adjustment(LBA)๋ผ๊ณ  ํ•œ๋‹ค. ์„ค๋ช…์˜ ํŽธ์˜์ƒ ์ดํ›„ ์„น์…˜์—์„œ๋Š” Sliding Window Optimization์„ LBA๋ผ๊ณ  ์–ธ๊ธ‰ํ•œ๋‹ค. ์ˆ˜์‹์„ ๊ฐ„๊ฒฐํ•˜๊ฒŒ ๋‚˜ํƒ€๋‚ด๊ธฐ ์œ„ํ•ด Idepth๋ฅผ ์ œ์™ธํ•œ ๋‚˜๋จธ์ง€ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ๋กœ ์ถ•์•ฝํ•˜์˜€๋‹ค. 4.3.6. Keyframes โž” Sliding Window Optimization โž” Solving The Incremental Equation
  • 149. ํ•ด๋‹น ์—๋Ÿฌํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•ด Least Square Optimization ํ˜•ํƒœ๋กœ ๋‚˜ํƒ€๋‚ด๋ฉด ์ตœ์ข…์ ์œผ๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ˜•ํƒœ์˜ ์‹์ด ์œ ๋„๋œ๋‹ค. ํ•ด๋‹น ์‹์˜ ์œ ๋„๋Š” 1์žฅ์—์„œ ์ž์„ธํžˆ ๋‹ค๋ค˜๊ธฐ ๋•Œ๋ฌธ์— ์ƒ๋žตํ•œ๋‹ค. 4.3.6. Keyframes โž” Sliding Window Optimization โž” Solving The Incremental Equation
  • 150. ํ•ด๋‹น ์—๋Ÿฌํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•ด Least Square Optimization ํ˜•ํƒœ๋กœ ๋‚˜ํƒ€๋‚ด๋ฉด ์ตœ์ข…์ ์œผ๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ˜•ํƒœ์˜ ์‹์ด ์œ ๋„๋œ๋‹ค. ํ•ด๋‹น ์‹์˜ ์œ ๋„๋Š” 1์žฅ์—์„œ ์ž์„ธํžˆ ๋‹ค๋ค˜๊ธฐ ๋•Œ๋ฌธ์— ์ƒ๋žตํ•œ๋‹ค. ์ด ๋•Œ Hessian Matrix๋ฅผ ์ž์„ธํ•˜๊ฒŒ ํŽผ์ณ๋ณด๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. idepth (N) idepth (N) pose + photometric + intrinsics (12) pose + photometric + intrinsics (12) 4.3.6. Keyframes โž” Sliding Window Optimization โž” Solving The Incremental Equation
  • 151. ํ•ด๋‹น ์—๋Ÿฌํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•ด Least Square Optimization ํ˜•ํƒœ๋กœ ๋‚˜ํƒ€๋‚ด๋ฉด ์ตœ์ข…์ ์œผ๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ˜•ํƒœ์˜ ์‹์ด ์œ ๋„๋œ๋‹ค. ํ•ด๋‹น ์‹์˜ ์œ ๋„๋Š” 1์žฅ์—์„œ ์ž์„ธํžˆ ๋‹ค๋ค˜๊ธฐ ๋•Œ๋ฌธ์— ์ƒ๋žตํ•œ๋‹ค. ์ด ๋•Œ, Initialization ์„น์…˜์—์„œ ์–ธ๊ธ‰ํ•œ ๊ฒƒ์ฒ˜๋Ÿผ Inverse Depth(N๊ฐœ)์˜ ๊ฒฝ์šฐ ์ตœ์†Œ ์ˆ˜ ๋ฐฑ ~ ์ˆ˜ ์ฒœ๊ฐœ์˜ ๋งตํฌ์ธํŠธ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ํฌํ•จํ•˜๊ณ  ์žˆ์œผ๋ฏ€๋กœ ํ•ด๋‹น Hessian Matrix์˜ ์—ญํ–‰๋ ฌ์„ ๊ณ„์‚ฐํ•˜๋Š”๋ฐ ๋งค์šฐ ๋งŽ์€ ์‹œ๊ฐ„์ด ์†Œ๋ชจ๋œ๋‹ค. ๋”ฐ๋ผ์„œ ์ด๋ฅผ ํšจ์œจ์ ์œผ๋กœ ๊ณ„์‚ฐํ•˜๊ธฐ ์œ„ํ•ด Schur Complement๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค. ์ด ๋•Œ Hessian Matrix๋ฅผ ์ž์„ธํ•˜๊ฒŒ ํŽผ์ณ๋ณด๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. idepth (N) idepth (N) pose + photometric + intrinsics (12) pose + photometric + intrinsics (12) 4.3.6. Keyframes โž” Sliding Window Optimization โž” Solving The Incremental Equation
  • 152. 4.3.6. Keyframes โž” Sliding Window Optimization โž” Solving The Incremental Equation Schur Complement๋Š” Initialization ์„น์…˜์—์„œ ์ด๋ฏธ ์„ค๋ช…ํ–ˆ์œผ๋‚˜ ์ค‘์š”ํ•œ ๋‚ด์šฉ์ด๋ฏ€๋กœ LBA ๊ณผ์ •์—์„œ๋„ ๋ฐ˜๋ณตํ•ด์„œ ์„ค๋ช…ํ•œ๋‹ค.
  • 153. Schur Complement๋Š” Initialization ์„น์…˜์—์„œ ์ด๋ฏธ ์„ค๋ช…ํ–ˆ์œผ๋‚˜ ์ค‘์š”ํ•œ ๋‚ด์šฉ์ด๋ฏ€๋กœ LBA ๊ณผ์ •์—์„œ๋„ ๋ฐ˜๋ณตํ•ด์„œ ์„ค๋ช…ํ•œ๋‹ค. ์œ„ ์‹์— ์–‘๋ณ€์— ์•„๋ž˜์™€ ๊ฐ™์€ ํŠน์ˆ˜ํ•œ ํ˜•ํƒœ์˜ ํ–‰๋ ฌ์„ ์–‘๋ณ€์— ๊ณฑํ•ด์ค€๋‹ค. 4.3.6. Keyframes โž” Sliding Window Optimization โž” Solving The Incremental Equation
  • 154. ์œ„ ์‹์— ์–‘๋ณ€์— ์•„๋ž˜์™€ ๊ฐ™์€ ํŠน์ˆ˜ํ•œ ํ˜•ํƒœ์˜ ํ–‰๋ ฌ์„ ์–‘๋ณ€์— ๊ณฑํ•ด์ค€๋‹ค. 1 ์œ„ ์‹์„ ์ „๊ฐœํ•ด์„œ ์˜ ๊ฐ’์„ ์ˆœ์ฐจ์ ์œผ๋กœ ๊ณ„์‚ฐํ•  ์ˆ˜ ์žˆ๋‹ค. ์œ„ ์‹์„ ์ „๊ฐœํ•˜๋ฉด ๋งŒ ์กด์žฌํ•˜๋Š” ํ•ญ์ด ์œ ๋„๋œ๋‹ค. 4.3.6. Keyframes โž” Sliding Window Optimization โž” Solving The Incremental Equation Schur Complement๋Š” Initialization ์„น์…˜์—์„œ ์ด๋ฏธ ์„ค๋ช…ํ–ˆ์œผ๋‚˜ ์ค‘์š”ํ•œ ๋‚ด์šฉ์ด๋ฏ€๋กœ LBA ๊ณผ์ •์—์„œ๋„ ๋ฐ˜๋ณตํ•ด์„œ ์„ค๋ช…ํ•œ๋‹ค.
  • 155. ์œ„ ์‹์— ์–‘๋ณ€์— ์•„๋ž˜์™€ ๊ฐ™์€ ํŠน์ˆ˜ํ•œ ํ˜•ํƒœ์˜ ํ–‰๋ ฌ์„ ์–‘๋ณ€์— ๊ณฑํ•ด์ค€๋‹ค. ์œ„ ์‹์„ ํ†ตํ•ด ๋ฅผ ๋จผ์ € ๊ณ„์‚ฐํ•œ ํ›„ ์ด๋ฅผ ํ† ๋Œ€๋กœ ๋ฅผ ๊ณ„์‚ฐํ•œ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์—ญํ–‰๋ ฌ์„ ๊ตฌํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ๋”์šฑ ๋น ๋ฅด๊ฒŒ ์ตœ์ ํ™” ๊ณต์‹์„ ํ’€ ์ˆ˜ ์žˆ๋‹ค. 2 1 ์œ„ ์‹์„ ์ „๊ฐœํ•ด์„œ ์˜ ๊ฐ’์„ ์ˆœ์ฐจ์ ์œผ๋กœ ๊ณ„์‚ฐํ•  ์ˆ˜ ์žˆ๋‹ค. ์œ„ ์‹์„ ์ „๊ฐœํ•˜๋ฉด ๋งŒ ์กด์žฌํ•˜๋Š” ํ•ญ์ด ์œ ๋„๋œ๋‹ค. 4.3.6. Keyframes โž” Sliding Window Optimization โž” Solving The Incremental Equation Schur Complement๋Š” Initialization ์„น์…˜์—์„œ ์ด๋ฏธ ์„ค๋ช…ํ–ˆ์œผ๋‚˜ ์ค‘์š”ํ•œ ๋‚ด์šฉ์ด๋ฏ€๋กœ LBA ๊ณผ์ •์—์„œ๋„ ๋ฐ˜๋ณตํ•ด์„œ ์„ค๋ช…ํ•œ๋‹ค.
  • 156. Inverse depth์™€ ๊ด€๋ จ ์žˆ๋Š” ํ•ญ์ธ ๋Š” N x N ํฌ๊ธฐ์˜ ๋Œ€๊ฐํ–‰๋ ฌ(diagonal matrix)์ด๋ฏ€๋กœ ์‰ฝ๊ฒŒ ์—ญํ–‰๋ ฌ์„ ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋˜ํ•œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋น„๊ต์  ๊ฐ„๋‹จํ•˜๊ฒŒ ๊ณ„์‚ฐํ•  ์ˆ˜ ์žˆ๋‹ค. 4.3.6. Keyframes โž” Sliding Window Optimization โž” Solving The Incremental Equation
  • 157. Inverse depth์™€ ๊ด€๋ จ ์žˆ๋Š” ํ•ญ์ธ ๋Š” N x N ํฌ๊ธฐ์˜ ๋Œ€๊ฐํ–‰๋ ฌ(diagonal matrix)์ด๋ฏ€๋กœ ์‰ฝ๊ฒŒ ์—ญํ–‰๋ ฌ์„ ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋˜ํ•œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋น„๊ต์  ๊ฐ„๋‹จํ•˜๊ฒŒ ๊ณ„์‚ฐํ•  ์ˆ˜ ์žˆ๋‹ค. ์ตœ์ข…์ ์œผ๋กœ damping ๊ณ„์ˆ˜ ๊ธฐ๋ฐ˜์˜ Levenberg-Marquardt ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•˜์—ฌ Optimization์„ ์ˆ˜ํ–‰ํ•œ๋‹ค. 4.3.6. Keyframes โž” Sliding Window Optimization โž” Solving The Incremental Equation
  • 158. 4.3.6. Keyframes โž” Sliding Window Optimization โž” Solving The Incremental Equation pose(6) + photo(2) more detail: https://www.cnblogs.com/JingeTU/p/8395046.html H, b ํ–‰๋ ฌ์— ๋Œ€ํ•ด ์ž์„ธํ•˜๊ฒŒ ํ‘œํ˜„ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.
  • 159. 4.3.6. Keyframes โž” Sliding Window Optimization โž” Solving The Incremental Equation pose(6) + photo(2) more detail: https://www.cnblogs.com/JingeTU/p/8395046.html H, b ํ–‰๋ ฌ์— ๋Œ€ํ•ด ์ž์„ธํ•˜๊ฒŒ ํ‘œํ˜„ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.
  • 160. 4.3.6. Keyframes โž” Sliding Window Optimization โž” Solving The Incremental Equation pose(6) + photo(2) more detail: https://www.cnblogs.com/JingeTU/p/8395046.html H, b ํ–‰๋ ฌ์— ๋Œ€ํ•ด ์ž์„ธํ•˜๊ฒŒ ํ‘œํ˜„ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.
  • 161. 4.3.6. Keyframes โž” Sliding Window Optimization โž” Solving The Incremental Equation pose(6) + photo(2) more detail: https://www.cnblogs.com/JingeTU/p/8395046.html H, b ํ–‰๋ ฌ์— ๋Œ€ํ•ด ์ž์„ธํ•˜๊ฒŒ ํ‘œํ˜„ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.
  • 162. 4.3.6. Keyframes โž” Sliding Window Optimization โž” Solving The Incremental Equation more detail: https://www.cnblogs.com/JingeTU/p/8395046.html H, b ํ–‰๋ ฌ์— ๋Œ€ํ•ด ์ž์„ธํ•˜๊ฒŒ ํ‘œํ˜„ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.
  • 163. 4.3.6. Keyframes โž” Sliding Window Optimization โž” Solving The Incremental Equation more detail: https://www.cnblogs.com/JingeTU/p/8395046.html H, b ํ–‰๋ ฌ์— ๋Œ€ํ•ด ์ž์„ธํ•˜๊ฒŒ ํ‘œํ˜„ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.
  • 164. 4.3.6. Keyframes โž” Sliding Window Optimization โž” Solving The Incremental Equation more detail: https://www.cnblogs.com/JingeTU/p/8395046.html H, b ํ–‰๋ ฌ์— ๋Œ€ํ•ด ์ž์„ธํ•˜๊ฒŒ ํ‘œํ˜„ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.
  • 165. 4.3.6. Keyframes โž” Sliding Window Optimization โž” Solving The Incremental Equation more detail: https://www.cnblogs.com/JingeTU/p/8395046.html H, b ํ–‰๋ ฌ์— ๋Œ€ํ•ด ์ž์„ธํ•˜๊ฒŒ ํ‘œํ˜„ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.
  • 166. 4.3.6. Keyframes โž” Sliding Window Optimization โž” Solving The Incremental Equation more detail: https://www.cnblogs.com/JingeTU/p/8395046.html H, b ํ–‰๋ ฌ์— ๋Œ€ํ•ด ์ž์„ธํ•˜๊ฒŒ ํ‘œํ˜„ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.
  • 167. 4.3.6. Keyframes โž” Sliding Window Optimization โž” Solving The Incremental Equation H, b ํ–‰๋ ฌ์— ๋Œ€ํ•ด ์ž์„ธํ•˜๊ฒŒ ํ‘œํ˜„ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. ์ด๋ฏ€๋กœ huber norm์„ ์ƒ๋žตํ•˜๊ณ  residual๋งŒ ํ‘œํ˜„ํ•˜๋ฉด
  • 168. 4.3.6. Keyframes โž” Sliding Window Optimization โž” Solving The Incremental Equation H, b ํ–‰๋ ฌ์— ๋Œ€ํ•ด ์ž์„ธํ•˜๊ฒŒ ํ‘œํ˜„ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. ์ด๋ฏ€๋กœ huber norm์„ ์ƒ๋žตํ•˜๊ณ  residual๋งŒ ํ‘œํ˜„ํ•˜๋ฉด
  • 169. 4.3.6. Keyframes โž” Sliding Window Optimization โž” Solving The Incremental Equation H, b ํ–‰๋ ฌ์— ๋Œ€ํ•ด ์ž์„ธํ•˜๊ฒŒ ํ‘œํ˜„ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. ์ด๋ฏ€๋กœ huber norm์„ ์ƒ๋žตํ•˜๊ณ  residual๋งŒ ํ‘œํ˜„ํ•˜๋ฉด
  • 171. 5.1. Pixel Selection โž” Make Histogram ORB-SLAM2์™€ ๊ฐ™์€ feature-based method์˜ ๊ฒฝ์šฐ ์ด๋ฏธ์ง€ ๋‚ด์—์„œ ํŠน์ • ํฌ์ธํŠธ๋ฅผ ์ถ”์ถœํ•  ๋•Œ feature extraction ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•˜์—ฌ ํ‚คํฌ์ธํŠธ๋ฅผ ์ถ”์ถœํ•œ๋‹ค. ๊ทธ ๋‹ค์Œ ํ•ด๋‹น ํ‚คํฌ์ธํŠธ๋ฅผ 3์ฐจ์› ์ ์œผ๋กœ Unprojection ํ•˜๊ณ  ๋‹ค์Œ ํ”„๋ ˆ์ž„์—์„œ ๋‹ค์‹œ 2์ฐจ์› ์ ์œผ๋กœ Reprojection ํ•ด์„œ Reprojection Error๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์นด๋ฉ”๋ผ ๋ชจ์…˜์„ ๊ณ„์‚ฐํ•œ๋‹ค.
  • 172. ํ•˜์ง€๋งŒ direct method๋ฅผ ์‚ฌ์šฉํ•˜๋Š” DSO์˜ ๊ฒฝ์šฐ feature๋ฅผ ๋ณ„๋„๋กœ ์ถ”์ถœํ•˜๋Š” ๊ณผ์ •์—†์ด ํŠน์ • ํ”ฝ์…€์˜ ๋ฐ๊ธฐ ์˜ค์ฐจ๋ฅผ ๊ณ„์‚ฐํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํŠน์ • ํฌ์ธํŠธ๋ฅผ ์ธก์ •ํ•˜๋Š” ๋ฐฉ๋ฒ• ๋˜ํ•œ feature-based์™€ ๋‹ฌ๋ผ์ง€๊ฒŒ ๋œ๋‹ค. ORB-SLAM2์™€ ๊ฐ™์€ feature-based method์˜ ๊ฒฝ์šฐ ์ด๋ฏธ์ง€ ๋‚ด์—์„œ ํŠน์ • ํฌ์ธํŠธ๋ฅผ ์ถ”์ถœํ•  ๋•Œ feature extraction ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•˜์—ฌ ํ‚คํฌ์ธํŠธ๋ฅผ ์ถ”์ถœํ•œ๋‹ค. ๊ทธ ๋‹ค์Œ ํ•ด๋‹น ํ‚คํฌ์ธํŠธ๋ฅผ 3์ฐจ์› ์ ์œผ๋กœ Unprojection ํ•˜๊ณ  ๋‹ค์Œ ํ”„๋ ˆ์ž„์—์„œ ๋‹ค์‹œ 2์ฐจ์› ์ ์œผ๋กœ Reprojection ํ•ด์„œ Reprojection Error๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์นด๋ฉ”๋ผ ๋ชจ์…˜์„ ๊ณ„์‚ฐํ•œ๋‹ค. 5.1. Pixel Selection โž” Make Histogram
  • 173. DSO์—์„œ๋Š” ์ด๋ฏธ์ง€์—์„œ ํŠน์ • ํฌ์ธํŠธ๋ฅผ ์ถ”์ถœํ•˜๊ธฐ ์œ„ํ•ด Gradient Histogram ๋ฐฉ๋ฒ•๊ณผ Dynamic Grid ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ–ˆ๋‹ค. ํ•ด๋‹น ๋ฐฉ๋ฒ•์€ DSO ๋…ผ๋ฌธ์—์„œ๋„ ์ž์„ธํ•œ ์„ค๋ช…์ด ๋ถ€์กฑํ•˜๊ณ  ์ฐธ๊ณ  ๋…ผ๋ฌธ์ด ์—†์œผ๋ฉฐ ๊ตฌ๊ธ€๋งํ•ด๋„ ๋‚˜์˜ค๋Š” ์ •๋ณด๊ฐ€ ๊ฑฐ์˜ ์—†์œผ๋ฏ€๋กœ ํ•ด๋‹น ์„น์…˜์—์„œ ๋‹ค๋ฃจ๋Š” ๋‚ด์šฉ์ด 100% ์ •ํ™•ํ•˜๋‹ค๊ณ  ๋ณผ ์ˆ˜ ์—†๋‹ค. ํ•ด๋‹น ๋‚ด์šฉ์€ ๋…ผ๋ฌธ์„ ๋ณผ ๋•Œ ์ฐธ๊ณ ์šฉ์œผ๋กœ ๋ณด๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™๋‹ค. https://github.com/alalagong/DSO ์ฐธ์กฐ github ORB-SLAM2์™€ ๊ฐ™์€ feature-based method์˜ ๊ฒฝ์šฐ ์ด๋ฏธ์ง€ ๋‚ด์—์„œ ํŠน์ • ํฌ์ธํŠธ๋ฅผ ์ถ”์ถœํ•  ๋•Œ feature extraction ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•˜์—ฌ ํ‚คํฌ์ธํŠธ๋ฅผ ์ถ”์ถœํ•œ๋‹ค. ๊ทธ ๋‹ค์Œ ํ•ด๋‹น ํ‚คํฌ์ธํŠธ๋ฅผ 3์ฐจ์› ์ ์œผ๋กœ Unprojection ํ•˜๊ณ  ๋‹ค์Œ ํ”„๋ ˆ์ž„์—์„œ ๋‹ค์‹œ 2์ฐจ์› ์ ์œผ๋กœ Reprojection ํ•ด์„œ Reprojection Error๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์นด๋ฉ”๋ผ ๋ชจ์…˜์„ ๊ณ„์‚ฐํ•œ๋‹ค. ํ•˜์ง€๋งŒ direct method๋ฅผ ์‚ฌ์šฉํ•˜๋Š” DSO์˜ ๊ฒฝ์šฐ feature๋ฅผ ๋ณ„๋„๋กœ ์ถ”์ถœํ•˜๋Š” ๊ณผ์ •์—†์ด ํŠน์ • ํ”ฝ์…€์˜ ๋ฐ๊ธฐ ์˜ค์ฐจ๋ฅผ ๊ณ„์‚ฐํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํŠน์ • ํฌ์ธํŠธ๋ฅผ ์ธก์ •ํ•˜๋Š” ๋ฐฉ๋ฒ• ๋˜ํ•œ feature-based์™€ ๋‹ฌ๋ผ์ง€๊ฒŒ ๋œ๋‹ค. 5.1. Pixel Selection โž” Make Histogram
  • 174. 1) ์šฐ์„  ์ƒˆ๋กœ์šด ์ด๋ฏธ์ง€๊ฐ€ ๋“ค์–ด์˜ค๋ฉด Gradient Histogram์„ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•ด ์ด๋ฏธ์ง€๋ฅผ 32x32 ์˜์—ญ์œผ๋กœ ๋‚˜๋ˆˆ๋‹ค. (grayscale image) Make Histrogram 5.1. Pixel Selection โž” Make Histogram
  • 175. 1) ์šฐ์„  ์ƒˆ๋กœ์šด ์ด๋ฏธ์ง€๊ฐ€ ๋“ค์–ด์˜ค๋ฉด Gradient Histogram์„ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•ด ์ด๋ฏธ์ง€๋ฅผ 32x32 ์˜์—ญ์œผ๋กœ ๋‚˜๋ˆˆ๋‹ค. (grayscale image) 2) ํ•˜๋‚˜์˜ ์˜์—ญ์„ ํ™•๋Œ€ํ•ด์„œ ๋ณด๋ฉด ์•„๋ž˜ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด ์—ฌ๋Ÿฌ ํ”ฝ์…€๋“ค๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๊ณ  ๊ฐ ํ”ฝ์…€๋งˆ๋‹ค ๊ณ ์œ ์˜ ๋ฐ๊ธฐ(intensity) ๊ฐ’์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ์ด๋ฅผ ์ด์šฉํ•ด Image Gradient(dx,dy)๋ฅผ ๊ตฌํ•  ์ˆ˜ ์žˆ๊ณ  ์ด๋ฅผ ์ด์šฉํ•ด ํ•ด๋‹น ์˜์—ญ์— ๋Œ€ํ•œ ํžˆ์Šคํ† ๊ทธ๋žจ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค. Make Histrogram 5.1. Pixel Selection โž” Make Histogram
  • 176. 1) ์šฐ์„  ์ƒˆ๋กœ์šด ์ด๋ฏธ์ง€๊ฐ€ ๋“ค์–ด์˜ค๋ฉด Gradient Histogram์„ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•ด ์ด๋ฏธ์ง€๋ฅผ 32x32 ์˜์—ญ์œผ๋กœ ๋‚˜๋ˆˆ๋‹ค. (grayscale image) 2) ํ•˜๋‚˜์˜ ์˜์—ญ์„ ํ™•๋Œ€ํ•ด์„œ ๋ณด๋ฉด ์•„๋ž˜ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด ์—ฌ๋Ÿฌ ํ”ฝ์…€๋“ค๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๊ณ  ๊ฐ ํ”ฝ์…€๋งˆ๋‹ค ๊ณ ์œ ์˜ ๋ฐ๊ธฐ(intensity) ๊ฐ’์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ์ด๋ฅผ ์ด์šฉํ•ด Image Gradient(dx,dy)๋ฅผ ๊ตฌํ•  ์ˆ˜ ์žˆ๊ณ  ์ด๋ฅผ ์ด์šฉํ•ด ํ•ด๋‹น ์˜์—ญ์— ๋Œ€ํ•œ ํžˆ์Šคํ† ๊ทธ๋žจ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค. Make Histrogram 3) ์ด ๋•Œ Gradient ๋Š” ์›๋ž˜ 0~255 ๊ฐ’์„ ๊ฐ€์ง€์ง€๋งŒ DSO์—์„œ๋Š” ํ•œ ํ”ฝ์…€์˜ ๊ฐ’์„ ์‚ฌ์šฉํ•˜์—ฌ ํžˆ์Šคํ† ๊ทธ๋žจ์„ ์ƒ์„ฑํ–ˆ๋‹ค. bin์€ ์œ„์™€ ๊ฐ™์€ ๋ฒ”์œ„๋ฅผ ๊ฐ€์ง€์ง€๋งŒ ์ด๋ฅผ 1~50 ๋ฒ”์œ„๋กœ ์ œํ•œํ•˜์—ฌ 50์ด ๋„˜๋Š” ๊ฒฝ์šฐ 50์œผ๋กœ ์„ค์ •ํ•˜์—ฌ ํžˆ์Šคํ† ๊ทธ๋žจ์˜ ๋ฒ”์œ„๋ฅผ ๋‹จ์ˆœํ™”ํ–ˆ๋‹ค. 5.1. Pixel Selection โž” Make Histogram
  • 177. 4) ์ด๋Ÿฌํ•œ ํžˆ์Šคํ† ๊ทธ๋žจ์„ 32x32 ๋ชจ๋“  ์˜์—ญ์— ๋Œ€ํ•ด ๊ฐ๊ฐ ๊ณ„์‚ฐํ•œ๋‹ค. Make Histrogram 5.1. Pixel Selection โž” Make Histogram
  • 178. 4) ์ด๋Ÿฌํ•œ ํžˆ์Šคํ† ๊ทธ๋žจ์„ 32x32 ๋ชจ๋“  ์˜์—ญ์— ๋Œ€ํ•ด ๊ฐ๊ฐ ๊ณ„์‚ฐํ•œ๋‹ค. Make Histrogram 5) ํžˆ์Šคํ† ๊ทธ๋žจ์—์„œ Total count์˜ 50%๊ฐ€ ๋˜๋Š” bin ๊ฐ’์„ 1-50 ์ˆœ์„œ๋Œ€๋กœ ์ฐพ๋Š”๋‹ค. ์˜ˆ๋ฅผ๋“ค์–ด ํžˆ์Šคํ† ๊ทธ๋žจ์˜ ๋ชจ๋“  bin์—์„œ ์ด 1000๊ฐœ๊ฐ€ ์นด์šดํŠธ ๋˜์—ˆ๋‹ค๋ฉด 1๋ฒˆ bin๋ถ€ํ„ฐ ์ˆœ์„œ๋Œ€๋กœ ์นด์šดํŠธ ๊ฐ’์„ ๋นผ๋ฉด์„œ ํ•ด๋‹น ๊ฐ’์ด 500๋ณด๋‹ค ์ž‘์•„์ง€๋Š” bin์„ threshold๋กœ ์„ค์ •ํ•œ๋‹ค. ๋˜ํ•œ ์ฃผ๋ณ€ 3x3 ์˜์—ญ์˜ threshold์˜ ํ‰๊ท ์„ ์‚ฌ์šฉํ•œ smoothed threshold ๊ฐ’ ๋˜ํ•œ ์„ค์ •ํ•œ๋‹ค. threshold: 1~50 smoothed threshold: 1~50 ths thsSmoothed ths thsSmoothed ths thsSmoothed ๊ฐ ์˜์—ญ๋งˆ๋‹ค ths, thsSmoothed๋ฅผ ๊ณ„์‚ฐํ•œ๋‹ค. โ€ฆ 5.1. Pixel Selection โž” Make Histogram
  • 179. ํ•œ ์ด๋ฏธ์ง€์— ๋Œ€ํ•œ 32x32 ํžˆ์Šคํ† ๊ทธ๋žจ์„ ์ƒ์„ฑํ•˜๊ณ  threshold ๊ฐ’์„ ์„ค์ •ํ•˜์˜€์œผ๋ฉด ๋‹ค์Œ์œผ๋กœ Dynamic Grid ๋ฐฉ๋ฒ•์„ ํ†ตํ•ด ์ด๋ฏธ์ง€ ๋‚ด์—์„œ ํ”ฝ์…€์„ ์„ ํƒํ•œ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด High gradient ์˜์—ญ์— ๋Œ€๋ถ€๋ถ„์˜ ํฌ์ธํŠธ๊ฐ€ ์ถ”์ถœ๋˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•˜๊ณ  ํ•œ ์ด๋ฏธ์ง€ ๋‚ด์—์„œ ์ถ”์ถœํ•  ์ˆ˜ ์žˆ๋Š” ์ด ํฌ์ธํŠธ์˜ ๊ฐœ์ˆ˜(N=2000)๋ฅผ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ์žฅ์ ์„ ์ง€๋‹Œ๋‹ค. 5.2. Pixel Selection โž” Dynamic Grid
  • 180. ํ•œ ์ด๋ฏธ์ง€์— ๋Œ€ํ•œ 32x32 ํžˆ์Šคํ† ๊ทธ๋žจ์„ ์ƒ์„ฑํ•˜๊ณ  threshold ๊ฐ’์„ ์„ค์ •ํ•˜์˜€์œผ๋ฉด ๋‹ค์Œ์œผ๋กœ Dynamic Grid ๋ฐฉ๋ฒ•์„ ํ†ตํ•ด ์ด๋ฏธ์ง€ ๋‚ด์—์„œ ํ”ฝ์…€์„ ์„ ํƒํ•œ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด High gradient ์˜์—ญ์— ๋Œ€๋ถ€๋ถ„์˜ ํฌ์ธํŠธ๊ฐ€ ์ถ”์ถœ๋˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•˜๊ณ  ํ•œ ์ด๋ฏธ์ง€ ๋‚ด์—์„œ ์ถ”์ถœํ•  ์ˆ˜ ์žˆ๋Š” ์ด ํฌ์ธํŠธ์˜ ๊ฐœ์ˆ˜(N=2000)๋ฅผ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ์žฅ์ ์„ ์ง€๋‹Œ๋‹ค. Dynamic Grid 1) ํ•˜๋‚˜์˜ Grid ์˜์—ญ์˜ ํฌ๊ธฐ๋ฅผ ์„ค์ •ํ•œ๋‹ค. DSO์—์„œ๋Š” ์ดˆ๊ธฐ๊ฐ’์œผ๋กœ 12x12 [pixel]๋ฅผ ์‚ฌ์šฉํ–ˆ๋‹ค. 640x480 ์ด๋ฏธ์ง€ ๊ธฐ์ค€์œผ๋กœ ๋ดค์„ ๋•Œ ์ผ๋ฐ˜์ ์œผ๋กœ 32x32 histogram ์˜์—ญ๋ณด๋‹ค ์ž‘์€ ํฌ๊ธฐ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. Grid ํฌ๊ธฐ๋ฅผ ์„ค์ •ํ–ˆ์œผ๋ฉด ์ด๋ฏธ์ง€ ์ „์ฒด๋ฅผ Grid๋กœ ๋‚˜๋ˆˆ๋‹ค. 5.2. Pixel Selection โž” Dynamic Grid
  • 181. ํ•œ ์ด๋ฏธ์ง€์— ๋Œ€ํ•œ 32x32 ํžˆ์Šคํ† ๊ทธ๋žจ์„ ์ƒ์„ฑํ•˜๊ณ  threshold ๊ฐ’์„ ์„ค์ •ํ•˜์˜€์œผ๋ฉด ๋‹ค์Œ์œผ๋กœ Dynamic Grid ๋ฐฉ๋ฒ•์„ ํ†ตํ•ด ์ด๋ฏธ์ง€ ๋‚ด์—์„œ ํ”ฝ์…€์„ ์„ ํƒํ•œ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด High gradient ์˜์—ญ์— ๋Œ€๋ถ€๋ถ„์˜ ํฌ์ธํŠธ๊ฐ€ ์ถ”์ถœ๋˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•˜๊ณ  ํ•œ ์ด๋ฏธ์ง€ ๋‚ด์—์„œ ์ถ”์ถœํ•  ์ˆ˜ ์žˆ๋Š” ์ด ํฌ์ธํŠธ์˜ ๊ฐœ์ˆ˜(N=2000)๋ฅผ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ์žฅ์ ์„ ์ง€๋‹Œ๋‹ค. Dynamic Grid 1) ํ•˜๋‚˜์˜ Grid ์˜์—ญ์˜ ํฌ๊ธฐ๋ฅผ ์„ค์ •ํ•œ๋‹ค. DSO์—์„œ๋Š” ์ดˆ๊ธฐ๊ฐ’์œผ๋กœ 12x12 [pixel]๋ฅผ ์‚ฌ์šฉํ–ˆ๋‹ค. 640x480 ์ด๋ฏธ์ง€ ๊ธฐ์ค€์œผ๋กœ ๋ดค์„ ๋•Œ ์ผ๋ฐ˜์ ์œผ๋กœ 32x32 histogram ์˜์—ญ๋ณด๋‹ค ์ž‘์€ ํฌ๊ธฐ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. Grid ํฌ๊ธฐ๋ฅผ ์„ค์ •ํ–ˆ์œผ๋ฉด ์ด๋ฏธ์ง€ ์ „์ฒด๋ฅผ Grid๋กœ ๋‚˜๋ˆˆ๋‹ค. 2) ํ•œ Grid ์˜์—ญ์„ ํ™•๋Œ€ํ•ด์„œ ๋ณด๋ฉด ์•„๋ž˜์™€ ๊ฐ™๋‹ค. https://github.com/alalagong/DSO ์ฐธ์กฐ github 5.2. Pixel Selection โž” Dynamic Grid
  • 182. ํ•œ ์ด๋ฏธ์ง€์— ๋Œ€ํ•œ 32x32 ํžˆ์Šคํ† ๊ทธ๋žจ์„ ์ƒ์„ฑํ•˜๊ณ  threshold ๊ฐ’์„ ์„ค์ •ํ•˜์˜€์œผ๋ฉด ๋‹ค์Œ์œผ๋กœ Dynamic Grid ๋ฐฉ๋ฒ•์„ ํ†ตํ•ด ์ด๋ฏธ์ง€ ๋‚ด์—์„œ ํ”ฝ์…€์„ ์„ ํƒํ•œ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด High gradient ์˜์—ญ์— ๋Œ€๋ถ€๋ถ„์˜ ํฌ์ธํŠธ๊ฐ€ ์ถ”์ถœ๋˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•˜๊ณ  ํ•œ ์ด๋ฏธ์ง€ ๋‚ด์—์„œ ์ถ”์ถœํ•  ์ˆ˜ ์žˆ๋Š” ์ด ํฌ์ธํŠธ์˜ ๊ฐœ์ˆ˜(N=2000)๋ฅผ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ์žฅ์ ์„ ์ง€๋‹Œ๋‹ค. Dynamic Grid 1) ํ•˜๋‚˜์˜ Grid ์˜์—ญ์˜ ํฌ๊ธฐ๋ฅผ ์„ค์ •ํ•œ๋‹ค. DSO์—์„œ๋Š” ์ดˆ๊ธฐ๊ฐ’์œผ๋กœ 12x12 [pixel]๋ฅผ ์‚ฌ์šฉํ–ˆ๋‹ค. 640x480 ์ด๋ฏธ์ง€ ๊ธฐ์ค€์œผ๋กœ ๋ดค์„ ๋•Œ ์ผ๋ฐ˜์ ์œผ๋กœ 32x32 histogram ์˜์—ญ๋ณด๋‹ค ์ž‘์€ ํฌ๊ธฐ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. Grid ํฌ๊ธฐ๋ฅผ ์„ค์ •ํ–ˆ์œผ๋ฉด ์ด๋ฏธ์ง€ ์ „์ฒด๋ฅผ Grid๋กœ ๋‚˜๋ˆˆ๋‹ค. 2) ํ•œ Grid ์˜์—ญ์„ ํ™•๋Œ€ํ•ด์„œ ๋ณด๋ฉด ์•„๋ž˜์™€ ๊ฐ™๋‹ค. ์ด ๋•Œ ํ•œ ์˜์—ญ์—์„œ ์ด 3๊ฐœ์˜ ํ”ผ๋ผ๋ฏธ๋“œ ์ด๋ฏธ์ง€์˜ Gradient๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. Alalagong๋‹˜์˜ ์ž๋ฃŒ๋ฅผ ์ฐธ์กฐํ•˜์—ฌ ํ”ผ๋ผ๋ฏธ๋“œ ๋ณ„๋กœ ํŒŒ๋ž€์ƒ‰(Lv2), ์ดˆ๋ก์ƒ‰(Lv1), ๋นจ๊ฐ„์ƒ‰(Lv0,์›๋ณธ)๋กœ ํ‘œ์‹œํ•˜๋ฉด ์•„๋ž˜ ๊ทธ๋ฆผ๊ณผ ๊ฐ™๊ณ  ์‹œ๊ณ„๋ฐฉํ–ฅ ์ˆœ์„œ๋Œ€๋กœ ํ•ด๋‹น ์˜์—ญ์˜ ํ”ฝ์…€์„ ํƒ์ƒ‰ํ•œ๋‹ค. https://github.com/alalagong/DSO ์ฐธ์กฐ github 5.2. Pixel Selection โž” Dynamic Grid
  • 183. ํ•œ ์ด๋ฏธ์ง€์— ๋Œ€ํ•œ 32x32 ํžˆ์Šคํ† ๊ทธ๋žจ์„ ์ƒ์„ฑํ•˜๊ณ  threshold ๊ฐ’์„ ์„ค์ •ํ•˜์˜€์œผ๋ฉด ๋‹ค์Œ์œผ๋กœ Dynamic Grid ๋ฐฉ๋ฒ•์„ ํ†ตํ•ด ์ด๋ฏธ์ง€ ๋‚ด์—์„œ ํ”ฝ์…€์„ ์„ ํƒํ•œ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด High gradient ์˜์—ญ์— ๋Œ€๋ถ€๋ถ„์˜ ํฌ์ธํŠธ๊ฐ€ ์ถ”์ถœ๋˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•˜๊ณ  ํ•œ ์ด๋ฏธ์ง€ ๋‚ด์—์„œ ์ถ”์ถœํ•  ์ˆ˜ ์žˆ๋Š” ์ด ํฌ์ธํŠธ์˜ ๊ฐœ์ˆ˜(N=2000)๋ฅผ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ์žฅ์ ์„ ์ง€๋‹Œ๋‹ค. Dynamic Grid 1) ํ•˜๋‚˜์˜ Grid ์˜์—ญ์˜ ํฌ๊ธฐ๋ฅผ ์„ค์ •ํ•œ๋‹ค. DSO์—์„œ๋Š” ์ดˆ๊ธฐ๊ฐ’์œผ๋กœ 12x12 [pixel]๋ฅผ ์‚ฌ์šฉํ–ˆ๋‹ค. 640x480 ์ด๋ฏธ์ง€ ๊ธฐ์ค€์œผ๋กœ ๋ดค์„ ๋•Œ ์ผ๋ฐ˜์ ์œผ๋กœ 32x32 histogram ์˜์—ญ๋ณด๋‹ค ์ž‘์€ ํฌ๊ธฐ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. Grid ํฌ๊ธฐ๋ฅผ ์„ค์ •ํ–ˆ์œผ๋ฉด ์ด๋ฏธ์ง€ ์ „์ฒด๋ฅผ Grid๋กœ ๋‚˜๋ˆˆ๋‹ค. 2) ํ•œ Grid ์˜์—ญ์„ ํ™•๋Œ€ํ•ด์„œ ๋ณด๋ฉด ์•„๋ž˜์™€ ๊ฐ™๋‹ค. ์ด ๋•Œ ํ•œ ์˜์—ญ์—์„œ ์ด 3๊ฐœ์˜ ํ”ผ๋ผ๋ฏธ๋“œ ์ด๋ฏธ์ง€์˜ Gradient๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. Alalagong๋‹˜์˜ ์ž๋ฃŒ๋ฅผ ์ฐธ์กฐํ•˜์—ฌ ํ”ผ๋ผ๋ฏธ๋“œ ๋ณ„๋กœ ํŒŒ๋ž€์ƒ‰(Lv2), ์ดˆ๋ก์ƒ‰(Lv1), ๋นจ๊ฐ„์ƒ‰(Lv0,์›๋ณธ)๋กœ ํ‘œ์‹œํ•˜๋ฉด ์•„๋ž˜ ๊ทธ๋ฆผ๊ณผ ๊ฐ™๊ณ  ์‹œ๊ณ„๋ฐฉํ–ฅ ์ˆœ์„œ๋Œ€๋กœ ํ•ด๋‹น ์˜์—ญ์˜ ํ”ฝ์…€์„ ํƒ์ƒ‰ํ•œ๋‹ค. https://github.com/alalagong/DSO ์ฐธ์กฐ github 1 2 3 4 11 12 13 14 111 112 113 114 115 116 117 118 119 5.2. Pixel Selection โž” Dynamic Grid
  • 184. Dynamic Grid 1 2 3 4 11 12 13 14 111 112 113 114 115 116 117 118 119 3) ํ”ผ๋ผ๋ฏธ๋“œ ๋ ˆ๋ฒจ์ด ๋‚ฎ์€ ๊ณณ(Lv0,์›๋ณธ)๋ถ€ํ„ฐ ํ•œ ํ”ฝ์…€ ์”ฉ ๋ฃจํ”„๋ฅผ ๋Œ๋ฉด์„œ ํ•ด๋‹น ์˜์—ญ ํžˆ์Šคํ† ๊ทธ๋žจ์˜ Smoothed threshold ๊ฐ’๊ณผ ํ”ฝ์…€์˜ Squared Gradient ๊ฐ’์„ ๋น„๊ตํ•œ๋‹ค. (111โ†’112โ†’113โ†’โ€ฆโ†’119โ†’11โ†’1โ†’121โ†’122โ†’123โ†’โ€ฆโ†’129โ†’12โ†’2โ†’โ€ฆ) 5.2. Pixel Selection โž” Dynamic Grid
  • 185. ์ด ๋•Œ, ํŠน์ • ํ”ฝ์…€ ๊ฐ’์ด Smoothed threshold๋ณด๋‹ค ํฌ๋ฉด ๋‹ค์Œ ๋‹จ๊ณ„๋กœ์จ ํ•ด๋‹น ํ”ฝ์…€์˜ ๊ฐ’๊ณผ ๋žœ๋คํ•œ ๋ฐฉํ–ฅ๋ฒกํ„ฐ์ธ randdir๊ณผ norm์„ ๊ณ„์‚ฐํ•œ ํ›„ ํ•ด๋‹น ๊ฐ’์ด 0๋ณด๋‹ค ํฐ ์ง€ ๊ฒ€์‚ฌํ•œ๋‹ค. ์ตœ์ข…์ ์œผ๋กœ norm๊นŒ์ง€ ํŠน์ •๊ฐ’๋ณด๋‹ค ํฌ๋‹ค๋ฉด ํ•ด๋‹น ํ”ฝ์…€์„ ๋ฅผ ๋Œ€ํ‘œํ•˜๋Š” ํ”ฝ์…€๋กœ ์„ ์ •ํ•˜๊ณ  ๋ฃจํ”„๋ฅผ ํƒˆ์ถœํ•œ๋‹ค. Dynamic Grid 1 2 3 4 11 12 13 14 111 112 113 114 115 116 117 118 119 3) ํ”ผ๋ผ๋ฏธ๋“œ ๋ ˆ๋ฒจ์ด ๋‚ฎ์€ ๊ณณ(Lv0,์›๋ณธ)๋ถ€ํ„ฐ ํ•œ ํ”ฝ์…€ ์”ฉ ๋ฃจํ”„๋ฅผ ๋Œ๋ฉด์„œ ํ•ด๋‹น ์˜์—ญ ํžˆ์Šคํ† ๊ทธ๋žจ์˜ Smoothed threshold ๊ฐ’๊ณผ ํ”ฝ์…€์˜ Squared Gradient ๊ฐ’์„ ๋น„๊ตํ•œ๋‹ค. (111โ†’112โ†’113โ†’โ€ฆโ†’119โ†’11โ†’1โ†’121โ†’122โ†’123โ†’โ€ฆโ†’129โ†’12โ†’2โ†’โ€ฆ) 5.2. Pixel Selection โž” Dynamic Grid
  • 186. ์ด ๋•Œ, ํŠน์ • ํ”ฝ์…€ ๊ฐ’์ด Smoothed threshold๋ณด๋‹ค ํฌ๋ฉด ๋‹ค์Œ ๋‹จ๊ณ„๋กœ์จ ํ•ด๋‹น ํ”ฝ์…€์˜ ๊ฐ’๊ณผ ๋žœ๋คํ•œ ๋ฐฉํ–ฅ๋ฒกํ„ฐ์ธ randdir๊ณผ norm์„ ๊ณ„์‚ฐํ•œ ํ›„ ํ•ด๋‹น ๊ฐ’์ด 0๋ณด๋‹ค ํฐ ์ง€ ๊ฒ€์‚ฌํ•œ๋‹ค. ์ตœ์ข…์ ์œผ๋กœ norm๊นŒ์ง€ ํŠน์ •๊ฐ’๋ณด๋‹ค ํฌ๋‹ค๋ฉด ํ•ด๋‹น ํ”ฝ์…€์„ ๋ฅผ ๋Œ€ํ‘œํ•˜๋Š” ํ”ฝ์…€๋กœ ์„ ์ •ํ•˜๊ณ  ๋ฃจํ”„๋ฅผ ํƒˆ์ถœํ•œ๋‹ค. Dynamic Grid 1 2 3 4 11 12 13 14 111 112 113 114 115 116 117 118 119 ex) ๋งŒ์•ฝ 115 ํ”ฝ์…€์˜ ๊ฐ’์ด Smoothed threshold๋ณด๋‹ค ํฐ ๊ฒฝ์šฐ ๋ฅผ ๊ฒ€์‚ฌํ•˜๊ณ  ์ด ๋˜ํ•œ ๋งŒ์กฑํ•˜๋Š” ๊ฒฝ์šฐ 115 ํ”ฝ์…€์„ ์˜์—ญ์˜ ๋Œ€ํ‘œ ํ”ฝ์…€๋กœ ์„ ์ •ํ•œ๋‹ค. ๋žœ๋คํ•œ ๋ฐฉํ–ฅ๋ฒกํ„ฐ์™€ norm์„ ๊ณ„์‚ฐํ•จ์œผ๋กœ์จ ํŠน์ • ํ”ฝ์…€ ์˜์—ญ์— ํฌ์ธํŠธ ์ถ”์ถœ์ด ๋ชฐ๋ฆฌ๋Š” ํ˜„์ƒ์„ ๋ฐฉ์ง€ํ•œ๋‹ค. 3) ํ”ผ๋ผ๋ฏธ๋“œ ๋ ˆ๋ฒจ์ด ๋‚ฎ์€ ๊ณณ(Lv0,์›๋ณธ)๋ถ€ํ„ฐ ํ•œ ํ”ฝ์…€ ์”ฉ ๋ฃจํ”„๋ฅผ ๋Œ๋ฉด์„œ ํ•ด๋‹น ์˜์—ญ ํžˆ์Šคํ† ๊ทธ๋žจ์˜ Smoothed threshold ๊ฐ’๊ณผ ํ”ฝ์…€์˜ Squared Gradient ๊ฐ’์„ ๋น„๊ตํ•œ๋‹ค. (111โ†’112โ†’113โ†’โ€ฆโ†’119โ†’11โ†’1โ†’121โ†’122โ†’123โ†’โ€ฆโ†’129โ†’12โ†’2โ†’โ€ฆ) 5.2. Pixel Selection โž” Dynamic Grid
  • 187. Dynamic Grid 4) ๋งŒ์•ฝ ํ”ฝ์…€์ด Smoothed threshold๋ณด๋‹ค ์ž‘์€ ๊ฒฝ์šฐ Lv0โ†’Lv1โ†’Lv2 ์ˆœ์„œ๋กœ ๊ฐ’์„ ๋น„๊ตํ•œ๋‹ค. ์ด ๋•Œ ๋ ˆ๋ฒจ์ด ๋†’์„์ˆ˜๋ก threshold์— 0.75๋ฅผ ๊ณฑํ•œ ํ›„ ํ”ฝ์…€์˜ ๋ฐ๊ธฐ ๊ฐ’๊ณผ ๋น„๊ตํ•˜์—ฌ ๋†’์€ ํ”ผ๋ผ๋ฏธ๋“œ ๋ ˆ๋ฒจ์˜ ํ”ฝ์…€์ผ์ˆ˜๋ก ์ถ”์ถœ๋  ํ™•๋ฅ ์„ ๋†’์ธ๋‹ค. 5.2. Pixel Selection โž” Dynamic Grid
  • 188. Dynamic Grid 5) ๋ชจ๋“  ํ”ฝ์…€์„ ์ „๋ถ€ ๊ฒ€์‚ฌํ–ˆ์Œ์—๋„ ์ถ”์ถœํ•œ ํฌ์ธํŠธ์˜ ์ดํ•ฉ์ด ์›ํ•˜๋Š” ์ด๋Ÿ‰๋ณด๋‹ค ์ ์€ ๊ฒฝ์šฐ ์—๋Š” 8x8๋กœ ํ•œ Grid์˜ ํฌ๊ธฐ๋ฅผ ์ค„์ธ ํ›„ ๋‹ค์‹œ ๊ฒ€์ƒ‰ํ•˜๊ณ  ๋งŒ์•ฝ ์ถ”์ถœํ•œ ํฌ์ธํŠธ๊ฐ€ ๋„ˆ๋ฌด ๋งŽ์€ ๊ฒฝ์šฐ ์—๋Š” 16x16์˜ Grid ํฌ๊ธฐ๋กœ ํฌ์ธํŠธ๋ฅผ ๋‹ค์‹œ ์ถ”์ถœํ•œ๋‹ค. Original increasedecrease 4) ๋งŒ์•ฝ ํ”ฝ์…€์ด Smoothed threshold๋ณด๋‹ค ์ž‘์€ ๊ฒฝ์šฐ Lv0โ†’Lv1โ†’Lv2 ์ˆœ์„œ๋กœ ๊ฐ’์„ ๋น„๊ตํ•œ๋‹ค. ์ด ๋•Œ ๋ ˆ๋ฒจ์ด ๋†’์„์ˆ˜๋ก threshold์— 0.75๋ฅผ ๊ณฑํ•œ ํ›„ ํ”ฝ์…€์˜ ๋ฐ๊ธฐ ๊ฐ’๊ณผ ๋น„๊ตํ•˜์—ฌ ๋†’์€ ํ”ผ๋ผ๋ฏธ๋“œ ๋ ˆ๋ฒจ์˜ ํ”ฝ์…€์ผ์ˆ˜๋ก ์ถ”์ถœ๋  ํ™•๋ฅ ์„ ๋†’์ธ๋‹ค. 5.2. Pixel Selection โž” Dynamic Grid
  • 189. Dynamic Grid 6) ํ•œ ์ด๋ฏธ์ง€์—์„œ ๋ชจ๋“  Grid์— ๋Œ€ํ•ด ๋ฃจํ”„๋ฅผ ๋Œ๋ฉด์„œ Smoothed threshold๋ฅผ ํ†ต๊ณผํ•œ ํ”ฝ์…€๋“ค๋งŒ Pixel map์— ์ €์žฅํ•œ๋‹ค. 5.2. Pixel Selection โž” Dynamic Grid
  • 190. Dynamic Grid 6) ํ•œ ์ด๋ฏธ์ง€์—์„œ ๋ชจ๋“  Grid์— ๋Œ€ํ•ด ๋ฃจํ”„๋ฅผ ๋Œ๋ฉด์„œ Smoothed threshold๋ฅผ ํ†ต๊ณผํ•œ ํ”ฝ์…€๋“ค๋งŒ Pixel map์— ์ €์žฅํ•œ๋‹ค. Pixel map์—๋Š” Lv0์—์„œ ์ถ”์ถœ๋œ ํฌ์ธํŠธ์ผ ๊ฒฝ์šฐ 1, Lv1์—์„œ ์ถ”์ถœ๋œ ํฌ์ธํŠธ๋Š” 2, Lv3์—์„œ ์ถ”์ถœ๋œ ํฌ์ธํŠธ๋Š” 4์˜ ๊ฐ’์ด ํ•ด๋‹น ํ”ฝ์…€ ์œ„์น˜์— ์ €์žฅ๋œ๋‹ค. ํฌ์ธํŠธ๊ฐ€ ์ถ”์ถœ๋˜์ง€ ์•Š์€ ์˜์—ญ์˜ ๊ฐ’์€ ์ €์žฅ๋˜์ง€ ์•Š๋Š”๋‹ค. (== 0) ๋ชจ๋“  ํ”ฝ์…€์„ ๊ทธ๋ฆฌ์ง€ ์•Š๊ณ  12x12 Grid๋งŒ ๊ทธ๋ฆฐ ๊ทธ๋ฆผ ๊ธ€์”จ๊ฐ€ Grid ์˜์—ญ๋ณด๋‹ค ์ž‘์€ ์ด์œ ๋Š” ๊ธ€์”จ๊ฐ€ ํ•œ ํ”ฝ์…€์„ ์˜๋ฏธํ•˜๊ธฐ ๋•Œ๋ฌธ 1 2 4 1 24 1 2 4 2 1 Pixel map 2 1 5.2. Pixel Selection โž” Dynamic Grid
  • 191. 6. DSO Code Review
  • 192. for(int idx=0;idx<patternNum;idx++) { int dx = patternP[idx][0]; int dy = patternP[idx][1]; Vec3f pt = RKi * Vec3f(point->u+dx, point->v+dy, 1) + t*point->idepth_new; float u = pt[0] / pt[2]; float v = pt[1] / pt[2]; float Ku = fxl * u + cxl; float Kv = fyl * v + cyl; float new_idepth = point->idepth_new/pt[2]; if(!(Ku > 1 && Kv > 1 && Ku < wl-2 && Kv < hl-2 && new_idepth > 0)) { isGood = false; break; } Vec3f hitColor = getInterpolatedElement33(colorNew, Ku, Kv, wl); //Vec3f hitColor = getInterpolatedElement33BiCub(colorNew, Ku, Kv, wl); //float rlR = colorRef[point->u+dx + (point->v+dy) * wl][0]; float rlR = getInterpolatedElement31(colorRef, point->u+dx, point->v+dy, wl); if(!std::isfinite(rlR) || !std::isfinite((float)hitColor[0])) { isGood = false; break; } float residual = hitColor[0] - r2new_aff[0] * rlR - r2new_aff[1]; float hw = fabs(residual) < setting_huberTH ? 1 : setting_huberTH / fabs(residual); energy += hw *residual*residual*(2-hw); CoarseInitializer.cpp::calcResAndGS()::L385 ํŒจํ„ด์˜ ๊ฐœ์ˆ˜(8๊ฐœ)๋งŒํผ ๋ฃจํ”„๋ฅผ ๋Œ๋ฉด์„œ ๊ฐ ์ ๋“ค์˜ residual์„ ๊ณ„์‚ฐํ•œ๋‹ค. CODE REVIEW 1.1. Initialization โž” Error Function Formulation
  • 193. for(int idx=0;idx<patternNum;idx++) { int dx = patternP[idx][0]; int dy = patternP[idx][1]; Vec3f pt = RKi * Vec3f(point->u+dx, point->v+dy, 1) + t*point->idepth_new; float u = pt[0] / pt[2]; float v = pt[1] / pt[2]; float Ku = fxl * u + cxl; float Kv = fyl * v + cyl; float new_idepth = point->idepth_new/pt[2]; if(!(Ku > 1 && Kv > 1 && Ku < wl-2 && Kv < hl-2 && new_idepth > 0)) { isGood = false; break; } Vec3f hitColor = getInterpolatedElement33(colorNew, Ku, Kv, wl); //Vec3f hitColor = getInterpolatedElement33BiCub(colorNew, Ku, Kv, wl); //float rlR = colorRef[point->u+dx + (point->v+dy) * wl][0]; float rlR = getInterpolatedElement31(colorRef, point->u+dx, point->v+dy, wl); if(!std::isfinite(rlR) || !std::isfinite((float)hitColor[0])) { isGood = false; break; } float residual = hitColor[0] - r2new_aff[0] * rlR - r2new_aff[1]; float hw = fabs(residual) < setting_huberTH ? 1 : setting_huberTH / fabs(residual); energy += hw *residual*residual*(2-hw); CoarseInitializer.cpp::calcResAndGS()::L385 ๋‹ค์Œ์„ ์ˆœ์„œ๋Œ€๋กœ ๊ณ„์‚ฐํ•œ๋‹ค. ๏ƒง ํ•ด๋‹น ๋ถ€๋ถ„ ๋ถˆํ™•์‹ค CODE REVIEW 1.1. Initialization โž” Error Function Formulation
  • 194. for(int idx=0;idx<patternNum;idx++) { int dx = patternP[idx][0]; int dy = patternP[idx][1]; Vec3f pt = RKi * Vec3f(point->u+dx, point->v+dy, 1) + t*point->idepth_new; float u = pt[0] / pt[2]; float v = pt[1] / pt[2]; float Ku = fxl * u + cxl; float Kv = fyl * v + cyl; float new_idepth = point->idepth_new/pt[2]; if(!(Ku > 1 && Kv > 1 && Ku < wl-2 && Kv < hl-2 && new_idepth > 0)) { isGood = false; break; } Vec3f hitColor = getInterpolatedElement33(colorNew, Ku, Kv, wl); //Vec3f hitColor = getInterpolatedElement33BiCub(colorNew, Ku, Kv, wl); //float rlR = colorRef[point->u+dx + (point->v+dy) * wl][0]; float rlR = getInterpolatedElement31(colorRef, point->u+dx, point->v+dy, wl); if(!std::isfinite(rlR) || !std::isfinite((float)hitColor[0])) { isGood = false; break; } float residual = hitColor[0] - r2new_aff[0] * rlR - r2new_aff[1]; float hw = fabs(residual) < setting_huberTH ? 1 : setting_huberTH / fabs(residual); energy += hw *residual*residual*(2-hw); CoarseInitializer.cpp::calcResAndGS()::L385 ์ƒˆ๋กœ ๊ณ„์‚ฐํ•œ ํ”ฝ์…€์ด ์ด๋ฏธ์ง€ ๋‚ด๋ถ€์— ์žˆ๋Š”์ง€ ์ƒˆ๋กœ ๊ณ„์‚ฐํ•œ idepth ๊ฐ’์ด 0๋ณด๋‹ค ํฐ ์ง€ ํ™•์ธ CODE REVIEW 1.1. Initialization โž” Error Function Formulation