독일 튀빙겐 대학교의 Andreas Geiger 교수님의 Computer Vision 강의를 듣고 그 내용을 정리하고자 한다.
Geiger 교수님 연구실에서는 Computer Vision 중에서도 특히 3D Human & Animal, Human Pose & Motion, Robot Perception, Holistic Vision, NeRF 등의 분야를 다루신다.
Computer Vision 분야 중에서도 3D Vision 분야를 연구하기 위한 배경 지식을 쌓아볼 것이다.
사전에 Deep Learning 기초, 수학 기초, 파이썬 기초를 어느 정도 숙지하고 있다고 가정하고 내용을 기술한다.
강의는 아래 유튜브를 참조하자.
https://www.youtube.com/watch?v=mQgjfvjjW3Q&list=PL05umP7R6ij35L2MHGzis8AEHz7mg381_&index=2
목차
Introduction
앞으로 어떤 내용을 다루게 될지 다음과 같이 정리한다. (모든 내용을 정리하지는 않을 예정이다.)
- History of CV
- Image Formation
- Structure-from Motion
- Stereo Reconstruction
- Probabilistic Graphical Models
- Applications of Graphical Models
- Learning in Graphical Models
- Shape-from-X
- Coordinate-based Networks
- Recognition
- Self-supervised Learning
- Diverse Topics in CV
Computer Vision Basic
가장 먼저, Computer Vision이 무엇인지를 알아보고, 어떤 문제를 해결해야 하는지 알아볼 것이다.
Artificial Intelligence (AI)의 하위 분야의 대표적인 예시는 다음과 같이 들 수 있다.
- Machine Learning
- Computer Vision
- Computer Graphics
- Natural Language Processing
- Robotics & Control
- Art, Industry 4.0, Education
Computer Vision
컴퓨터 비전의 general한 의미는 '빛을 의미있는 것(geometric, semantic 등)으로 변환하는 것'이다.
컴퓨터 비전 분야에서 입력은 빛의 다양한 패턴의 특정 샘플이다. 우리(또는 카메라)가 보는 Scene은 어떤 표면에 빛이 반사되어 우리 눈 또는 카메라에 들어오는 것을 본 것이므로 이 설명은 일반적으로 타당할 것이다.
또한, 사람의 눈이 장면을 인식하는 biological vision을 기반으로 Computer Vision 알고리즘을 개발하였다.
Computer Vision Applications
Computer Vision는 다양한 곳에 적용되고 있는데, 예를 들면 다음과 같다.
- Robotics
- Medical Applications
- 3D Modeling
- Self-driving
- Mobile Devices
- Accessibility
Computer Vision vs Computer Graphics, Image Processing, ML
컴퓨터비전은 컴퓨터 그래픽스와 밀접한 관련이 있다.
컴퓨터 그래픽스는 주어진 3D scene에 포함된 objects, material, shape/geometry, motion, semantics, 3d pose 등을 2차원 사진으로 렌더링하는 과정이다.
컴퓨터 비전은 이것의 inverse problem을 해결하는 과정으로, 수로 이루어진 2D image를 3D Scene으로 나타내려 한다.
여기서 ill-posed inverse problem(유일한 정답이 존재하지 않음, 불량 조건 문제)이 자주 발생하는데, 이는 여러 3D scene이 똑같은 2D image를 가질 수 있기 때문이다.
이를 해결하기 위해 추가적인 constraints(예를 들면 scene에 대한 사전 지식)이 필요하다.
Image Processing과도 연관이 많은데, 이미지 프로세싱이란 이미지를 low-level에서 다루는 것으로, 예를 들면 color adjustment, edge detection, denoising, image warping/morphing 등이 있다. 대부분 2D 차원의 이미지를 다룬다.
컴퓨터 비전은 이미지 프로세싱에서 파생된 것으로, 2D image 속에 내재된 3D 구조를 파악하는 것이다.
또한 머신러닝과도 밀접한 관련이 있다. 머신러닝을 이용하는 수많은 경우중 대표적인 예시가 바로 컴퓨터 비전이다.
다음 그림은 딥러닝 발전에 의한 CV의 성능 향상을 나타낸다.
Challenges of CV
사람에게는 visual perception 문제가 매우 쉽다. 아이들도 금방 시각적 정보를 받아들이고, 판단을 하는 법을 배운다.
하지만 사람은 이미지 장면 자체를 이해하는데 반해, 컴퓨터는 픽셀 단위의 숫자(Pixel Matrix)로 받아들이기 때문에, 해당 장면에서 어떤 일이 일어나는지를 학습시키는 것이 매우 어렵다.
이와 관련하여 컴퓨터 비전 분야의 어려운 점(Challenges)을 알아보자.
Images are 2D Projections of the 3D World
앞서 말했듯, 컴퓨터 비전은 2D 이미지를 3D Scene으로 reconstruction하여 Scene을 이해하는 과정이다.
하지만, 2D 이미지 자체가 실제 3D Scene의 2차원 Projection이기 때문에, 그 과정에서 한 차원의 정보를 잃게 된다. 한 차원이라고 해서 한 종류의 정보가 아니라, 꽤 많은 정보가 사라진다.
위 예시에서, 똑같은 image (a)를 설명하기 위해 painter(b), light designer(c), sculptor(d)가 서로 다른 scene을 구성하게 된다.
Viewpoint Variation
같은 물체를 표현하더라도 바라보는 각도 등에 따라 다음 그림과 같이 다양한 이미지를 생성한다.
Deformation
같은 object이더라도, 움직이면서 변형이 일어나면 다른 이미지로 보일 수 있다.
또한 Motion에 따라 blurring이 일어나 형체를 알아보기 힘들어질 수 있다.
Occlusion
어떤 object가 주변의 장애물에 의해 가려질 수 있다.
Illumination
빛이 얼마나 비치느냐에 따라 형태가 달라질 수 있다.
Perception vs Measurement
실제로 측정했을 때에는 밝기가 같지만, 눈으로 봤을 때에는 달라 보일 수 있다. 다음 그림을 살펴보자.
사람이 보기에 A가 B보다 진해보인다. 하지만 실제로는 아래와 같이 같은 색임을 확인해볼 수 있다.
Local Ambiguities
이미지가 흐린 경우, 한 부분만 보았을 때는 무슨 물체인지 판단할 수 없지만, 주변과 함께 보았을 때 context에 따라 추측이 가능한 경우가 있다.
아래 사진에서 O표시한 부분은 모두 왼쪽과 비슷한 모양이지만, 왼쪽 부분 사진만 본다면 어떤 물체인지 전혀 분간할 수 없을 것이다.
Intra Class Variation
Intra class variation이란, 같은 object를 표현하지만 형상이 다양한 경우를 말한다.
아래 사진은 모두 '의자'를 나타냈지만, 형상이 매우 다양하다.
Number of Object Categories
Object의 종류가 수없이 많은 것 또한 문제이다. 실생활에서 보는 Object가 너무 다양해서, 만약 본 적 없는 물체가 다른 물체와 혼동을 일으킨다면 문제가 발생할 수 있다.
최근댓글