전체 글
-
-
[Perception] 3-2 Singular Value DecompositionCV & ML 2022. 3. 19. 12:20
오늘은 특이값 분해(Singular Value Decompositon; SVD)에 대하여 알아보겠습니다. Perception 강의로서 들었지만 추상적인 그림으로 가르쳐주는게 잘 이해가 되지 않아, 다른 블로그를 보고 이해한 부분들을 적어보겠습니다. 특이값 분해는 mxn의 행렬 A를 mxn의 U 행렬, nxn의 D 행렬, nxn의 Vt (V의 전치행렬)로 분해하는 과정을 말합니다. 이렇게 분해된 행렬들은 각각의 특징을 갖고 있는데요, U의 각각 column 벡터와 Vt의 각각 row 벡터를 '특이 벡터'라고 합니다. U의 특이벡터들끼리, 그리고 Vt의 특이벡터들끼리는 서로 직교하는 성질을 갖고 있습니다. 이 벡터들의 크기는 1로 일정하고, 서로 다른 벡터들끼리 곱했을 때는 0이라는 값이 나오게 됩니다. 그..
-
[Perception] 3-1. Visual FeaturesCV & ML 2022. 3. 19. 11:40
오늘은 이미지에서 뽑아내는 특징점에 대해 알아보도록 하겠습니다. 영상에서 특징점은 왜 필요할까요? 1. localization과 reconstruction 2. 장소 인식 등 서로 다른 것들은 분류 어떤 것들이 특징점이 되야 할까? 어떻게 촬영되든 계속해서 특징점으로 인식(detect)되어야 -> detection invariance 다른 영상에 찍힌 같은 특징점은 이웃들의 상태를 묘사하는 정보에 의해서 제대로 짝지어 져야 함 -> descriptor invariance 대표적인 특징 추출 방법: SIFT scale space 개념 위키피디아에는 이렇게 적혀있다. 2D 영상이 있을 때, 선형적인 scale-space은 2D gaussian filter을 이용하여 convolution 한 신호들의 집합으로..
-
[씹어먹는 C++] 16 - 0 쓰레드 생성과 종료프로그래밍/C언어 2022. 2. 28. 22:00
회사에서 파노라마 영상 생성하는 도중 속도 최적화를 위해 쓰레드를 적용해야 하는 경우가 생겼습니다. 이 일을 계기로 씹어먹는 c++이라는 책을 알게 되었고, thread 공부한 것들을 정리해서 적어보겠습니다. C++11 에서부터 표준에 쓰레드가 추가되면서 쓰레드 사용이 매우 편리해졌습니다. 기본 코드는 다음과 같다. #include #include using std::thread; void f1() { for (int i = 0; i < 10; i++) std::cout
-
[Perception] 2-2. Compute Projective TransformationsCV & ML 2021. 12. 14. 11:21
오늘은 이미지 변환 중 3D 공간의 평면 물체 (planar objects)를 2D 평면으로 투영하는 변환인 Projective Transformation(투영 변환)을 계산하는 방법에 대해 알아보도록 하겠습니다. 투영 변환 외에 이미지 변환 종류에 대해 더 자세하게 알고 싶으신 분들은 아래 블로그를 참고해주시길 바랍니다. 이미지 변환 종류와 호모그래피 다크 프로그래머 Geometry #3 2D변환 위의 그림은 어떤 로봇이 움직이면서 카메라를 통해 평면 모양의 패턴을 촬영한 상황입니다. 각각의 영상에서 Projective Transformation 행렬을 알게 된다면 실제 공간에서 로봇이 어디에 위치하는지, 패턴은 어디에 위치하는 지를 추정할 수 있습니다. 이 투영 변환은 역으로 변환이 가능한 행렬이라는..
-
[Perception] 1-3. 소실점(Vanishing Points)CV & ML 2021. 12. 14. 11:00
이전 포스팅에서는 간략하게 소실점을 소개해보았는데요, 요번 글에서는 소실점의 특징에 대해서 알아보겠습니다. Vanishing Points 먼저 카메라의 광학축이 바닥과 평행하다고 했을 때 다음과 같은 특징을 갖고 있습니다. 1. 평행한 선들은 영상에서 동일한 소실점을 갖고 있다. 2. 카메라 초점 C와 소실점 V를 연결한 선은 바닥과 평행하다. 3. 한 영상에는 여러 개의 소실점을 가질 수 있다. Vanishing line 영상에 하나의 평면에서 나타난 평행선들 쌍의 여러 개의 소실점이 있을 때 이 점들은 이은 선을 horizon line(수평선) 혹은 vanishing line(소실선) 이라고 부릅니다. 위의 그림에서는 $v_1$과 $v_2$를 포함하는 소실선은 점선 부분입니다. 각각의 평면은 서로 다..
-
[Perception] 1-2. Single View GeometryCV & ML 2021. 12. 9. 11:14
Coursera의 Perception 과목의 2번째 강의 Single View Geometry입니다. 요번 강의에서는 한 장의 사진을 통해 거리를 측정하는 방법에 대해 소개하며, 3D 비전에서 빠질 수 없는 vanishing point(소실점)에 대해서도 알아보겠습니다. 월드 좌표계와 카메라 좌표계 카메라를 통해 사진을 찍으면 실제 3D 물리적 세상이 2D 평면에 맺히게 됩니다. 위의 그림은 현실세계의 3차원 점 P가 카메라를 통해 영상에 2차원 점 p로 맺히는 과정을 보여줍니다. 현실세계 좌표계를 'World Coordinate' 이라고 하며, 점 표기는 주로 대문자로 표현합니다. 카메라 좌표계(Camera Coordinate) 는 중심 C를 기준으로 $x_c, y_c, z_c$ 3개의 축으로 이루어져..
-
[Perception] 1-1. 카메라 모델링CV & ML 2021. 12. 7. 12:49
3D 비전 관련 일을 본격적으로 시작하기 때문에 복습하는 개념에서 Coursera의 Robotics: Perception 강의를 듣고 블로그에 정리해보려 합니다. 블로그 글을 적은 지 너무 오래되서 조금씩, 간단하게 정리하면서 시작해보려 합니다. 오류가 보이시면 댓글로 남겨주시면 감사하겠습니다. 첫번째 강의에서는 카메라의 구성요소와 렌즈 방정식을 소개하고 있습니다. 카메라 구성요소 순간 순간을 포착하고자 만들어진 카메라는 가장 중요한 구성요소 2가지를 꼭 가지고 있어야 합니다. 렌즈와 이미지 센서. 렌즈 종류에는 대표적으로 표준 렌즈, 어안렌즈, 마이크로렌즈, 망원렌즈, 줌렌즈, 단렌즈 등이 있습니다. 이미지 센서 종류에는 대표적으로 CMOS, CCD 센서 등이 있습니다. 각각 렌즈들의 구체적인 특징을 ..