부트캠프에서 기초 다지기가 끝나고 본격적인 Computer Vision에 대해 배우는 시간이 시작되었다.
단순히 이미지쪽이 좀 더 재미있고 해보고 싶다는 생각으로 이 분야을 지원하게 되어서 학교에서 배웠던 CNN기초 이론 정도만 알고 있었다. 이 부트캠프를 통해 많은 것을 배워 갈 것이라고 자부할 수 있지만 정작 내가 Computer Vision분야에서도 어떤 task에 흥미가 있고, 앞으로 어떤 분야로 더 나아갈 것인지에 대한 계획이 없었다.
그러한 계획을 정하고 이 Computer Vision 공부를 한다면 그 분야에 더 몰입하고 더 깊게 공부할 수 있지 않을까? 하는 생각이 들었고, 또한 부트캠프 이후에 내가 컨택하고 싶은 연구실이나 회사가 있다면 미리 준비할 수 있겠다라는 생각이 들었다.
그래서 Computer Vision가 정확히 무엇이고 CV에서 어떤 것을 배우고 공부하는지 알아보았다.
컴퓨터 비전은 사람의 visual perception과 밀접한 연관이 있다.
visual perception이 뭔지 파악해보자
사람은 여러 sensor modality(청각,시각,후각,미각,촉각)로 부터 정보를 얻어온다.
우리가 세상과 소통할 때 이 오감을 이용한다!
놀라운 것은 사람이 정보를 얻는데 가장 큰 비중이 있는 것은 시각정보에 해당하고, 뇌의 50%(?) 정도가 visual processing을 담당하고 있다는 것이다! (내가 이런 중요한 것을 공부하고 있다니..ㅎ)
아직 과학적으로 증명되지 않았다고는 하지만 대부분 동의할 것이다!
그래서 우리가 사람과 같은 AI로봇을 만든다고 하면 아마 가장 먼저 사람처럼 주변 정보를 받아들이고 인식하고 이해를 하고 판단하는 machine perception부터 만들것이다.
(그중에서도 visual perception이 가장 중요하지 않을까?)
AI에게 눈을 달아주어 사람처럼 시각정보를 처리하는 기술들을 Computer Vision이라고 한다.
그래서 우리는 Computer Vision == Visual perception & intelligence라고도 한다.
color perception
motion perception
3D perception
semantic-level perception
emotion perception등등 다양하다.
컴퓨터 비전은 사람으로 비유해서 설명하자면 사람의 눈처럼 시각적인 정보를 담아서 뇌로 보내면 뇌에서 시각적인 정보를 분석하고 해석하는 것처럼 분석하여 현재 이미지의 state를 추출하는 과정이다.
컴퓨터 비전과정과 반대로 state 주어졌을 때 다시 visual data로 복원하는 과정을 Computer Graphics(Rendering)이라고 한다. 그래서 컴퓨터 비전을 Inverse Rendering이라고도 한다.
하지만 최근에는 컴퓨터 비전안에 그래픽스를 포함하는 경향이 있다.
컴퓨터 비전을 AI관점으로 바라보면
컴퓨터 비전에서 machine learning과 관련없는 분야도 있다.
학습 기반에 machine learning기술을 이용한 컴퓨터 비전 알고리즘도 존재한다.
그중에서도 neural network 기반 기술을 이용해 컴퓨터 비전을 할 수도 있다.
(이 부분을 부트캠프에서 배우고 있는 것!)

어떤 물체가 있을 때 imaging system(카메라)를 통해 우리는 image data를 얻는다.
이때 이미지의 각 픽셀은 서로 다른 밝기를 가지고 있고 대부분의 이미지는 8비트(0~255)이다.
우리가 단순히 컴퓨터의 시각 정보를 읽어준다고만 생각한다면 쉬워보일 수 있다.
하지만 우리의 시각은 불안정할 때가 많다. (착시현상 처럼 색이 완전히 다른데도 불구하고 같은색으로 볼 수 있다.)
이런 어려움을 극복한다면 정말 재미있고, 다양한 응용을 할 수 있다.
최근 neural network와 학습 기반 알고리즘이 발달하면서 computer vision 알고리즘이 상당히 발전하였다. 그래서 지금 시점이 computer vision이 매우 활발해지는 시점이다.(안되던 것들이 가능해지고 실용적인 기술들이 쏟아져 나온다!! ㅎㅎ)
이런 상황이라는 걸 들으니깐 뭔가 그래도 취업난 걱정, 내가 가고 있는 길이 괜찮은 길인가 이러한 걱정들이 줄어들고 기대가 되기 시작했다 ㅎㅎ
가장 기본이 되는 구조들을 배워야 한다.

모델을 학습할 때 성능을 올려주는 방법들 배워야한다.
Data augmentation(데이터증강) and knowledge distillation(경량화 or self-supervised learning에서 많이 사용된다.)
visual analysis를 위한 시각화도 알고 있다면 해석을 통해서 모델의 성능을 끌어올릴 수 있기 때문에 시각화 분석도 필요하다.
semantic segmetation

object detection & instance segmentation

panoptic segmentation
위에 두 작업을 동시에 하는 것이다!

이미지가 주어졌을 때 이미지의 퀄리티를 개선하거나 다른 형태의 출력을 만들어 내는 기술들도 배운다.
우리가 시각적인 정보와 함께 다른 modality의 정보(소리,text 등)를 활용한다면
더 풍부한 작업을 할 수 있다.
이러한 여러 modality 를 아우르는 학습에 대해서도 공부하면 좋다!
특히 Large Language Model에 visual 정보까지 추가하여 만든 VLM(Visual Language Model)도 배울 수 있다.
최근에 각광받고 있는 분야중에 하나이다!
multimodal도 같이 이용하여 text를 기반하여 만든 동영상이나 3D 디자인을 생성해 낼 수 있는 생성모델들을 배워볼 수 있다.
전세계에서 3D 수요는 엄청 높다!! 잘 공부한다면 나의 미래에 도움이 많이 될 것 같다!!
하지만 3D는 딥러닝 외에도 3D에 대한 개념 공부를 많이 해야한다. 미리 해둔다면 도움이 될 것이다!
3D human, text-to -texture generation등 딥러닝과 관련된 3D를 공부해 볼 수 있다.
Robotics with Computer Vision
주변을 이해하고 상호작용할 수 있는 핵심 기술인 컴퓨터 비전을 이용해 움직이고,잡고 하는 로봇에서 많이 사용된다.
Autonomous driving
무인 자동차나 주행보조 시스템에서 컴퓨터 비전이 적극적으로 활용되고 있다.(우리가 아는 테슬라에서도 사용되고 있다!)
Communication(Meta Quest 3)
지구 반대편에 있는 사람들도 바로 옆에 있는 것처럼 연결시켜주는 메타버스와 같은 텔레프레젠스(Telepresence) 기술도 컴퓨터 비전을 이용한 기술이다.
(텔레프레젠스는 사용자가 물리적으로 다른 장소에 있는 것처럼 느끼게 해주는 기술)

3D virtual influencer
3D 아바타도 빼놓을 수 없는 컴퓨터 비전 기술이다.
대표적인 예로 우리나라의 ROZY가 광고 모델로도 사용되었다!
컴퓨터 비전은 사업적인 분야에서도 활발하지만 연구 분야에서도 논문이 많이 나오고 있으며
market scale또한 엄청 커질 전망이다라는 이야기를 듣고 자부심도 생기고, 더 열심히 해서 컴퓨터 비전 분야의 한 획을 긋는 사람이 되고 싶다고 느꼈다.

또한 CV의 여러 분야들은 보면서 내가 나중에 이렇게 재미있고 흥분되는 일들을 할 수 있다는 것에 매우 기뻤다.
아직 다 정확한 개념과 과정은 모르지만 간단한 소개와 이름만 보았을 때는 동영상에서 눈에 보이지 않는 미세한 움직임을 증폭시켜 쉽게 볼 수 있도록 만드는 기술인 motion magnification과 3D 분야, panotic segmentation 이 3가지가 나의 눈을 사로잡았다.
공부를 하면서 이 3가지 부분을 좀더 집중적으로 공부할 계획이고, 나중에 프로젝트도 내가 실력이 된다면 꾝 이와 관련된 것으로 하고 싶다 ㅎㅎ 이 열정 그대로 다 CV에 PUSH하자!