๐ก ๋ณธ ๋ฌธ์๋ cv-learn ๋ธ๋ก๊ทธ์์ 'Visual-SLAM vs VIO'์ ๋ํด ํผ์จ ๊ธ์ ๋๋ค.
Visual SLAM vs Visual-Inertial Odometry(VIO) ์ฐจ์ด์ ์ ์ ๋ฆฌํ์์ผ๋ ์ฐธ๊ณ ํ์๊ธฐ ๋ฐ๋๋๋ค.
Visual SLAM vs Visual-Inertial Odometry(VIO)
3D pose + 3D map point๋ฅผ ๊ตฌํ๊ณ ์ถ์ ๋,
- ์นด๋ฉ๋ผ๋ง ์ฌ์ฉํ๋ฉด Visual-SLAM
- ์นด๋ฉ๋ผ + IMU๋ฅผ ์ฌ์ฉํ๋ฉด Visual-inertial odometry (VIO)
Visual odometry๊ฐ ์๋๋ผ Visual-SLAM์ด ๋๋ ค๋ฉด global consistency๊ฐ ์ ์ง๋์ด์ผํ๋๋ฐ (i.e. ๋๋ค ํ๋ฐํด๋ฅผ ๋๊ณ ์์ ์์ ์ผ๋ก ์์ ๋, ์์น ์ ๋ณด์ scale์ด ์ ํํ๊ฒ ๋ง์๋จ์ด์ ธ์ผํจ), ์ด๋ loop closure์ ๊ฐ์ ๊ธฐ๋ฅ์ผ๋ก ํด๊ฒฐํ ์ ์์ด์ผํ๋ค. (Visual odometry๋ง์ผ๋ก ์์น์ ๋ณด์ scale์ด ์ ํํ๊ฒ ๋ง์๋จ์ด์ง๋ฉด ๊ทธ๊ฒ๋ SLAM์ด๋ผ๊ณ ํ ์ ์๋ค. ํ์ง๋ง ์ค์ ๋ก๋ ๊ฑฐ์ ๋ถ๊ฐ๋ฅํ๊ธฐ ๋๋ฌธ์ ํ๊ณ์์๋ ์ ๋ฐ์๋๋ ค์ง์ง ์๋ ์ ์ ์ด๋ค.)
Visual-SLAM๊ณผ VIO ๋ชจ๋ Monocular, Stereo, Multi-camera, RGB-D ํํ๋ฅผ ๊ฐ์ง ์ ์๋ค.
Visual-SLAM
- ์นด๋ฉ๋ผ๋ง ์ฌ์ฉํด์ 3D pose + 3D map point๋ฅผ ๊ตฌํ๋ ๋ฐฉ๋ฒ
- ์ต๊ทผ ์ฐ๊ตฌ๋ ์ฃผ๋ก graph-optimisation ๊ธฐ๋ฐ์ SLAM ๋ฐฑ์๋๋ฅผ ์ฌ์ฉํจ
- Total reprojection error๋ฅผ ์ต์ํํ๋ ๋ฐฉํฅ
- ์ ๋ช
ํ ์คํ์์ค ํ๋ก์ ํธ
- Monocular: MonoSLAM, PTAM, ORB-SLAM, SVO, DSO
- Stereo: ORB-SLAM2, Stereo-DSO, ProSLAM
- RGB-D: KinectFusion, ElasticFusion, BundleFusion
์ฅ์
- VIO ๋ณด๋ค ์ ์ ๊ณ์ฐ๋
- ์นด๋ฉ๋ผ๋ง ์์ผ๋ฉด ์๋ํ ์ ์์
๋จ์
์นด๋ฉ๋ผ๊ฐ ์ ์๋ํ์ง ์๋ ์ํฉ์์๋ Visual-SLAM๋ ์ ์๋ํ์ง ๋ชปํจ
- e.g. ํ์ ๋ฒฝ์ ๋ฐ๋ผ๋ณด๋ฉฐ feature๊ฐ ์ ํ ๋ฝํ์ง ์์ ๋
- e.g. ๋ฐ๋ณต๋๋ ํจํด์ด ์ฐ์์ ์ผ๋ก ๋ํ๋์ ์ ๋๋ก ๋ ํผ์ณ ๋งค์นญ์ด ๋์ง ์์ ๋
- e.g. ๋๋ฌด ์ด๋ก๊ฑฐ๋ ๋๋ฌด ๋ฐ์์ ์๋ฌด๊ฒ๋ ๋ณด์ด์ง ์์ ๋
Visual-inertial odometry (VIO)
- ์นด๋ฉ๋ผ์ IMU๋ฅผ ์ฌ์ฉํด์ 3D pose + 3D map point๋ฅผ ๊ตฌํ๋ ๋ฐฉ๋ฒ
- ์ต๊ทผ graph-optimisation ๊ธฐ๋ฐ ๋ฐฑ์๋๊ฐ ์ ํํ๊ธฐ ์์ํ์ผ๋, ์์ค ์ ํ ์ค์๋ ์์ง filter ๊ธฐ๋ฐ์ ์ํํธ์จ์ด๊ฐ ๋ง์ (e.g. Google ARCore, Apple ARKit)
- IMU pre-integration ์ฐ๊ตฌ ์ดํ ๊ฐ๋ฅํด์ง
- ์ด์ ์๋ IMU ๊ฐ์ ๋ณด์ ์ /ํ๋ก state propagation์ ๋๋ฒ ํด์ผํ์ง๋ง, pre-integration ์ดํ๋ก ํ๋ฒ๋ง ํด๋ ๋๊ฒ ๋ง๋ค๋ฉด์ ๋์์ ์๋ง์ ์ผ์ ๊ด์ธก์น๋ฅผ ๋จ ํ๋์ ๊ด์ธก์น๋ก ์ ๋ฆฌํ ์ ์๊ฒ ๋จ.
- Graph-optimisation ๊ธฐ๋ฐ์ ๋ฐฉ์์ด ๋ฐ์ ํ๋ฉด์ loop closure ๊ธฐ๋ฅ์ ๊ฐ์ถ๊ฒ ๋จ
- ์ด์ฐฝ๊ธฐ์ loop closure๊ฐ ์๋ VIO์ ๊ตฌ๋ถํ๊ธฐ ์ํด VINS (Visual-Inertial System)๋ผ๊ณ ํํํ๋ ๋ฐฉ๋ฒ๋ ์๊น (ํ์ง๋ง ์ ์ ๋จ์ด๋ ์๋)
- IMU pre-integration ์ฐ๊ตฌ ์ดํ ๊ฐ๋ฅํด์ง
- ์ ๋ช
ํ ์คํ์์ค ํ๋ก์ ํธ
- Monocular: MSCKF, OKVIS, ROVIO, VINS-Mono, ORB-SLAM3
- Stereo: S-MSCKF, VI-DSO
- RGB-D: ElasticFusion+IMU
์ฅ์
- ์นด๋ฉ๋ผ์ IMU๋ ์ผ์ ํน์ฑ์ ์๋ก์ ๋จ์ ์ ๋ณด์ํจ
- e.g. ์ด๋์ด ๊ณณ์์ ์นด๋ฉ๋ผ๊ฐ ์๋ฌด๊ฒ๋ ๋ณด์ง ๋ชปํ ๋, IMU ์ผ์๋ ๊ณ์ pose ์ถ์ ๊ฐ๋ฅ (VIO ์ค๊ณ์ ๋ฐ๋ผ ๋ค๋ฆ)
- Monocular์ ๊ฒฝ์ฐ ์นด๋ฉ๋ผ๋ง ์ฌ์ฉํ์ ๋๋ ์ป์ด๋ผ ์ ์๋ metric scale ์ ๋ณด๋ฅผ IMU motion์ ํตํด ์ถ์ ๊ฐ๋ฅ (i.e. up-to-scale ๋งต์ด ์๋ ์ค์ ์ธ์์ scale์ ๊ฐ์ง ์ ์์)
- ๋ ๋ง์ ์ต์ ํ constraint๋ก ์ป์ด๋ด๋ ๋์ ์ ํ๋
- ์นด๋ฉ๋ผ ํผ์ณ ํธ๋ํน์ ํ ๋ ๋ชจ์
๋ชจ๋ธ ๊ฐ์ค ๋์ IMU ์ผ์๋ก ์ป์ ๋ชจ์
์ฌ์ฉ ๊ฐ๋ฅ
- ์ค์ ์ผ์ ๊ฐ์ ์ฌ์ฉํจ์ผ๋ก์จ ํ์ ๋ฒ์๋ฅผ ์ถ์ ๊ฐ๋ฅ
๋จ์
- ๋ ๋ง์ ์ต์ ํ constraint๋ก ์ธํ ๋ง์ ๊ณ์ฐ๋
- ๊ณ ์ฑ๋ฅ CPU๋ฅผ ์๊ตฌํ ์ ์์
- ์นด๋ฉ๋ผ-IMU ๊ฐ์ ์ ํํ ์บ๋ฆฌ๋ธ๋ ์ด์
์ด ํ์
- ์์ฐ์ ํ ๊ฒฝ์ฐ ์ถ๊ฐ ๊ณต์ ํ์
- ๋ ์ผ์ ์ค ํ๋๊ฐ ์คํจํ๋ฉด ์ ์ฒด๊ฐ ์คํจํจ (VIO ์ค๊ณ์ ๋ฐ๋ผ ๋ค๋ฆ)
์ฐธ๊ณ
- [Blog] Visual-SLAM vs VIO: https://www.cv-learn.com/20210817-vslam-vs-vio/
'Study: Artificial Intelligence(AI)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Vision] RADAR ๋ ์ด๋ ์ผ์์ ๊ตฌ๋๋ฐฉ์ ๋ฐ ํน์ง (0) | 2023.03.21 |
---|---|
[Vision] LiDAR ๋ผ์ด๋ค ์ผ์์ ๊ตฌ๋๋ฐฉ์ ๋ฐ ํน์ง (1) | 2023.03.20 |
[Vision] Key-Point Extraction: ์์ ํน์ง์ ์ถ์ถ (0) | 2023.03.16 |
[๋ ผ๋ฌธ ๋ฆฌ๋ทฐ] ORB-SLAM: a Versatile and Accurate Monocular SLAM System (0) | 2023.03.16 |
[Vision] SURF (Speed-Up Robust Feature)์ ์๋ฆฌ.txt (0) | 2021.06.08 |