Deep Learning for Computer Vision에 관하여 공부를 시작하려 한다.
*강의 영상*: https://youtu.be/dJYGatp4SvA
가장 첫 번째로 Artificial Intelligence, Machine Learning, Computer Vision의 관계에 대한 벤 다이어그램이다.
Image Classificatoin 가장 먼저 다룰것은 의미론적 차이이다. Semactic Gap(의미론적 차이)는 사진을 보고 이것이 고양인지 강아지인지 구별하는 것은 인간에겐 쉬운 일이지만 비전에선 Core Task이다. 컴퓨터 입장에서 이미지는 모든 것을 0~255 사이의 pixel과 RGB의 3가지 채널로 이루어진 숫자 행렬로 인식 하기 때문이다. 이것이 인간과 컴퓨터가 가지는 의미론적 차이이다.
Image Classification에는 여러가지 도전 과제, Challenges 들이 있다
(1) Viewpoint Variation
카메라가 조금만 움직여도 사진을 구성하는 픽셀이 모조리 변한다.

(2) Intraclass Variation
예) 유전적 다양성

(3) Fine-Grained Categories
고양이 안에서도 품종별로 세분화하는 작업 등을 일컫는다.

(4) Background Clutter
배경으로 인해 식별이 어려운 경우를 말한다.

(5) Illumination Changes

(6) Deformation
고양이만큼 다양한 변형이 가능한 동물은 없을 것 같다.

(7) Occlusion
아래 사진들처럼 고양이의 일부밖에 볼 수 없는 상황이 있을 수 있다.

이토록 많은 난관이 있지만 그럼에도 Image Classification을 연구하는 이유는 매우 유용하기 때문이다. 일례로, 의학 분야에서 양성 종양과 악성 종양을 구분하거나, 천문학 분야에서 은하의 형태를 구분하는 데 Image Classification 모델이 유용하게 쓰일 수 있다. 그밖에도 Image Classification을 이용하면 아래와 같은 일들이 가능하다.
(1) Object Detection
이미지를 Classification(분류)해주는 것에서 더 나아가 하나의 객체라고 판단되는 곳에 직사각형을 그려주는 Localization 작업까지 할 수 있다.

(2) Image Captioning
말그대로 이미지에 캡션을 달아주는 일로, 이미지를 보고 어떤 이미지인지 언어로 설명하는 작업을 말한다. 접근 방식은 크게 'Top-Down Approach'와 'Bottom-Up Approach'로 구분된다.
Top-Down Approach: 이미지를 통째로 시스템에 통과시켜서 얻은 '요점'을 언어로 변환
- 현재 가장 많이 쓰이고 있는 접근 방식이다.
- Recurrent Neural Network(RNN)을 활용한 학습이 가능하며, 이 방식의 성능이 가장 좋다고 평가받는다.
- 이미지의 디테일한 부분에 집중하는 것이 상대적으로 어렵다.
Bottom-Up Approach: 이미지를 부분적으로 접근, 여러 부분들로부터 단어를 도출한 뒤 이를 결합하여 문장 생성
- 이미지의 여러 부분으로부터 하나씩 단어들을 뽑아낸 뒤 조합하기 때문에 디테일에 신경을 써줄 수 있다.

Image Classification을 위해 처음으로 시도된 방법 중 하나는 바로 edge를 이용하는 것이었다.
가장자리를 따라 outline을 만들어내고, 세 개의 선이 맞닿는 부분을 'corner'라고 정의한다. 고양이, 개 등 객체별로 corner 집합의 규칙을 이끌어내 이미지를 구별하겠다는 아이디어인데, 언뜻 봐도 쉽지 않아 보인다. 실제로 이 알고리즘에는 다음과 같은 문제점들이 있다.
- 매우 나약함: 고양이를 예로 들면 무늬, 자세 등에 너무 쉽게 영향을 받음
- 낮은 확장성: 고양이, 개 등 객체별 집합을 모두 정의해야 하므로 확장성이 매우 낮음
...오늘은 Image Classification에 강의를 듣고 분류, 여러가지의 도전과제에 대해 알아보았다.
'Computer Vision' 카테고리의 다른 글
[EECS 498-007] lec6. Backpropagation (0) | 2024.08.08 |
---|---|
[EECS 498-007] lec5. Neural Networks (1) | 2024.08.07 |
[EECS 498-007] lec4. Optimization (0) | 2024.08.05 |
[EECS 498-007] lec3. Linear Classifiers (0) | 2024.08.05 |
stable diffusion 모델과 어뎁터 다뤄보기 (4) | 2024.06.22 |