Computer Vision

Computer Vision/SLAM

[3D Transform/02] 3D Rigid Body Transform (강체 변환)

Introduction 이전 포스트에서 설명한 것처럼, 카메라는 움직임에 따라 크기와 모양이 달라지지 않는 강체(rigid body)입니다. 그래서 SLAM에서의 3D 변환은 회전(rotation)과 평행 이동(translation)만 고려합니다. 여기에 추가로 앞서 좌표계(coordinate system)에 대해서 다뤘습니다. 점(point)이나 벡터(vector)를 어느 좌표계에서 바라보는지에 따라 좌표(coordinate)가 달라지게 됩니다. SLAM에서 필수적으로 다루게 될 World coordinate과 Camera coordinate을 예시로 들어보겠습니다. 벡터 $\mathbf{p}$에 대해 World 좌표계에서 본 $\mathbf{p_w}$와 Camera 좌표계에서 본 $\mathbf{p_..

Computer Vision/SLAM

[3D Transform/01] Points, Vectors, Coordinates; Inner/Outer Product

Introduction 우리가 흔히 보는 2D 영상 이미지에는 많은 변환 방법이 존재합니다. 강체 변환, 닮음 변환, Affine 변환 등 다양한 알고리즘이 존재하는데, 이는 본 포스트에서는 다루지 않을 예정입니다. SLAM에서 궁금한 부분은 3차원 공간에서 내가 어떻게 움직이고 있는지입니다. 즉, 3차원 공간에서 카메라가 어떻게 움직이고 있는지 구하는 게 최종 목표이며, 카메라는 크기가 변하거나 왜곡이 생기지 않습니다. 따라서 카메라를 하나의 강체(Rigid body)로 볼 수 있으며, 3D transform은 3D rigid body transform 문제로 요약됩니다. 이는 다른 말로 euclidean transform이라고 하며, 형태와 크기를 유지한 채로 위치(translation)와 회전(ro..

Computer Vision/SLAM

[Epipolar Geometry/03] Triangulation과 Epipolar Geometry의 제약 및 단점

Introduction 지난 포스트에서는 Essential Matrix와 Fundamental Matrix를 이용해 Epipolar Geometry에서 카메라의 Pose ($\mathbf{R,t}$)를 추정해 봤습니다. 이제 다음 단계로 추정된 Motion을 토대로 Feature들의 3D 공간 상에서의 위치를 추정하고자 합니다. 이를 위해서는 Object의 Depth 정보가 필요한데요. 문제는 Epipolar Geometry를 사용하는 Monocular 카메라는 depth 정보를 얻을 수 없습니다. 2D 영상만으로 해당 정보를 얻기 위해서 triangulation (삼각측량법)을 사용합니다. Triangulation Triangulation (삼각측량법)은 다른 위치에서 같은 landmark를 포착했을 ..

Computer Vision/SLAM

[Epipolar Geometry/02] Fundamental Matrix, Essential Matrix

Introduction 지난 포스트에서는 Epipolar Geometry에서 Feature Matching을 통해 얻은 두 매칭쌍에서 항상 성립하는 Epipolar Constraint를 유도했습니다. $$\mathbf{x_2^T[t]_x R x_1=0}$$ 위 식에서 $\mathbf{x_1, x_2}$의 관계식(변환식) $\mathbf{[t]_x R}$을 Essential Matrix, 이 관계식을 Pixel Coordinate로 가져온 식을 Fundamental Matrix라고 합니다. 이렇게 나름 힘들게 구한 식을 가지고 우리는 무엇을 할 수 있을까요? Feature Matching 된 매칭쌍의 관계식을 어떠한 방법으로 구할 수 있다면, 우리는 역으로 $\mathbf{R, t}$를 구할 수 있습니다...

Computer Vision/SLAM

[Epipolar Geometry/01] Epipolar Constraint

Introduction 이전 게시물들을 통해 Image에서 Feature를 추출하는 방법을 알아봤습니다. Map을 만들기 위해서 연속된 Frame들에서 특징점을 추출한 후, Feature Matching (Tracking) 과정을 거쳐 특징점들의 변화를 추적합니다. 이번 포스트에서는 앞서 획득한 Feature들을 통해 Camera Pose Estimation을 수행하려 합니다. Camera Pose Estimation 과정은 가지고 있는 Feature의 특징 (차원)에 따라 차별점이 있는데요. 크게 아래 세 종류가 있으며, 이번 시리즈에서는 2D Image만 있을 때 사용 가능한 Epipolar Geometry에 대해서 알아보도록 하겠습니다. Epipolar Geometry: 2D 영상 데이터(2D, 2..

Computer Vision/SLAM

[SLAM/VO] ORB (Oriented FAST and Rotated BRIEF)

세 줄 요약: - ORB는 key point detector로 FAST, descriptor로 BRIEF를 각각 개선해 적용했다. - FAST에서 Rotation & Scale invariance, Multi-scale 개선을 통해 Robustness를 증가시켰다. - BRIEF의 경우 uncorrelated and high variant 한 pair selection을 통해 feature 품질을 향상했으며, 회전에 대한 보정을 주어 rotation invariance를 개선했다. Introduction 이전 게시물들을 통해 SLAM Frontend(Visual Odometry)가 무엇인지 다뤘습니다 (이전 게시물들은 Visual Odometry 태그 검색이나, [SLAM/VO] 제목 검색을 통해 보실 ..

Computer Vision/SLAM

[SLAM/VO] Feature Point란; key point, descriptor

Introduction 이전 게시물에서 SLAM Frontend(Visual Odometry) 중 대세인 Feature based VO 기법에 대해 소개하였습니다. 짧게 기억을 되살려보면, 우리는 이미지의 feature로서 corner를 선정했으며, 단순히 위치 정보로는 어려움이 있기 때문에 descriptor라는 녀석을 사용한다고 했습니다. 이번 시간에는 이를 모두 포함한 feature point의 개념을 소개하고, key point와 descriptor의 차이점을 알아보도록 하겠습니다. Feature Point Feature Point는 Key Point와 Descriptor로 이루어져 있습니다. 둘을 가장 쉽게 구분하는 방법은 key point는 단순히 feature의 위치 정보만을 담고 있고, d..

Computer Vision/SLAM

[SLAM/VO] Feature based Visual Odometry란; SLAM Frontend, Feature Extraction, Feature Matching

Introduction SLAM Framework을 다룬 앞선 게시물에서 SLAM은 크게 Frontend와 Backend로 나뉨을 설명했습니다. Frontend는 다른 말로 Visual Odometry라고도 하는데요. 오늘은 이 Visual Odometry(VO), 그중에서도 Feature based VO에 대해서 알아보도록 하겠습니다. Visual Odometry 우리의 친구 Wikipedia에서는 VO에 대해 아래와 같이 설명하고 있습니다. In robotics and computer vision, visual odometry is the process of determining the position and orientation of a robot by analyzing the associated ..

YoungJ
'Computer Vision' 카테고리의 글 목록 (2 Page)