본문 바로가기

Deep Learning/CS231n

[1강] Introduction to Convolutional Neural Networks for Visual Recognition

소개


시각 데이터란?

시각 데이터는 마치 물리학에서의 암흑 물질이다.

암흑 물질이란 우주 공간 상에서의 85%를 차지하고 있는 가설상의 물질이라고 일컫는데

이러한 것이 시각 데이터라는 것이다.

마치 암흑 물질처럼 존재하는 것은 알고 있지만 완전히 이해하는 것이 불가할 만큼 방대한 양의 데이터를 가지고 있다는 비유다.

 

컴퓨터 비전(Computer Vision or CV)란?

시각 데이터에 대한 연구이며 해당 연구는 무수히 많은 과학 분야들과 관련이 되어있다.

심리학, 물리학, 수학, 컴퓨터공학 등 연결이 안된 분야를 찾기가 어렵다.

그렇기 때문에 CV는 많은 분야의 학자들과 다같이 협업하여 공략해야하는 분야이다.

많은 분야와 관련되어 있는 CV에 대한 그림

컴퓨터 비전에 대한 역사


생물학적 비전

 

약 5억 4천3백만년 전 지구의 대부분은 물로 구성되어 있었으며 생물이 존재를 했지만 이때 생물들은 시각을 가지고 있지 않았다. 그렇기 때문에 촉각에 의지하며 사냥을 하고 생존을 하고 있었다.

하지만 약 3백만년 후 (즉, 5억 4천만년 전), 개체 수가 급증을 하는 일이 발생하였는데 왜일까?

이 의문에 대한 답은 시각의 탄생이다. 생물들이 시각을 가지게 되며 눈으로 천적을 보고 도망치고 사냥감을 찾아

사냥을 하며 점점 생존율이 올라가고 번식율도 자연스럽게 상승하게 된 것이다.

이러한 시기를 우리는 "진화의 빅뱅" 이라고 일컫는다.

 

기계적 비전

 

현재 우리가 당연하듯 사용하고 있는 카메라의 시초를 아는가?

1600년대에 만들어진 옵스큐라 카메라 (Obscura Camera)가 최초의 기계적 비전을 가지게 된 물건이다.

옵스큐라 카메라는 작은 구멍으로 빛을 모으고 뒷판에 이미지를 뒤집어서 비추는 원리를 가지고 있었고

이를 기점으로 점점 기술이 발전하여 우리가 아는 현대의 카메라가 만들어진 것이다.

옵스큐라 카메라의 설계도

 

컴퓨터 비전

 

1959년 Hubel과 Wiesel은 인간이 시각적 정보를 받아들이는데 어떠한 과정으로 받아들이나에 대한 의문을 품게 되었다.

이후 두 과학자들은 고양이를 대상으로 연구를 진행한 결과 시작은 간단한 정보를 가지고 시작하여 이후 뉴런들을 거쳐

정보의 복잡성을 늘리고 최종적으로 우리가 현재 보고 있는 복잡한 시각적 환경에 대해 인지한다는 것이다.

 

이를 동기부여 삼아 해당 과정을 컴퓨터로 구현해내면 어떨까? 라는 흥미로운 주제를 가지고 논문을 쓴 한 과학자가 있다.

그는 Larry Roberts라는 과학자며 60년대초 Block World라는 컴퓨터 비전에 관한 최초의 논문을 쓴 저자이다.

해당 논문은 시각 세계를 간단한 기하학적 형태로 단순화 시킨 뒤 다시 그것을 인식하고 원래의 형태로 재구성을 한다는

내용을 담고 있었다.

Block World가 나타내고자 했던 단순화 작업

 

잇다라 MIT에서는 1966년 The Summer Project 라는 프로젝트를 진행했는데 해당 프로젝트의 목표는 컴퓨터 비전을 이용하여 여름 동안 공사 현장을 조금 더 체계적인 시스템을 갖추게 만들어 효율성을 높이는 것이었다. 해당 프로젝트는 여름 안에 완성되기에는 너무나 과한 프로젝트였지만 이를 기점으로 컴퓨터 비전에 대한 관심이 많아졌고 세부화된 분야들도 많이 늘어나 아직까지도 연구가 이어지고 있다. 즉, 컴퓨터 비전이라는 분야의 트리거가 된 셈이다.

 

그 이후 MIT에서는 또 다른 엄청난 의견을 내놓았는데 바로 컴퓨터 비전의 기초 알고리즘이다.

David Marr이라는 MIT 컴퓨터 비전 과학자는 70년대 말 책을 한권 내놓았는데 해당 책은 컴퓨터 비전의 근간이 될 알고리즘에 대한 내용을 품고 있었다.

 

해당 내용은 다음과 같다.

1. Primal Sketch - 모서리, 막대, 바, 경계선, 가상의 곡선등 단순한 시각 정보를 수집

2. 2 1/2-D Sketch - 깊이, 레이어, 표면 정보등을 종합하여 2.5D 정보를 수집

3. 3-D Model Representation - 최종적으로 3D 시각 정보를 도출

 

위 방법은 Hubel과 Wiesel이 연구를 통해 알아냈던 과정과 일치한다는 것이 참 재밌는 점이다.

 

객체 탐지와 객체 분할

 

객체 탐지는 컴퓨터 비전의 등장과 동시에 각광을 받은 분야이다.

컴퓨터 비전으로 가장 잘 활용될 수 있는 분야이기 때문에 많은 연구비와 시간이 투자가 되었지만

오랜 시간이 지나도 그다지 좋은 결과물을 내놓지 못하였다.

 

그렇기 때문에 과학자들은 객체 분할이라는 새로운 방법을 내놓았다.

객체 전체를 한번에 탐지하는 것이 아닌 픽셀 단위로 분할하여 의미가 있는 그룹들을 만들어 차근차근

인식해나가는 것이다.

객체 분할의 예시

해당 예시를 보면 비록 그룹화된 픽셀들이 사람 혹은 특정 물체라는 것은 인지할 수 없지만 비슷한 특징을 가진 픽셀들을 모아놨다는 것에 의미를 둔다.

 

얼굴 인식

 

객체 분할 기술이 성공적인 효과를 보이자 잇따라 얼굴 인식 기술이 발달되게 되었다.

사람을 구분하는데에 가장 중요시 되는 것이 얼굴이기 때문에 얼굴 인식 쪽으로 기술 발달이 빠르게 되었다.

 

2001년도에는 AdaBoost 알고리즘을 통해 실시간 얼굴 인식 기술이 만들어졌으며

2006년도에는 카메라에 해당 기술이 탑재가 되었다.

 

AdaBoost

 

얼굴 인식 기술에 AdaBoost 알고리즘이 사용되었다길래 이부분은 필자가 단순 궁금증으로 검색해본 내용이니

강좌에 포함되어있는 내용은 아니다.

 

AdaBoost는 분류 기반의 기계 학습 (즉, 머신러닝) 방법이며 해당 방법은 약한 분류기 (Weak Classifier)를 이용하여 나온 결과물을 가중치를 수정해 또 다른 약한 분류기를 통해 계속해서 가중치를 수정해나간다. 최종적으로는 모든 결과물을 결합하여 하나의 강한 분류기 (Strong Classifier)를 만든다고 한다.

 

해당 방법은 과적합(Overfitting)을 방지한다는 장점이 있다.

 

AdaBoost의 예시

 

AdaBoost의 수식은 다음과 같이 표현 할 수 있다.

$$ H(x) = \alpha _{1}h_{1}(x) + \alpha _{2}h_{2}(x) + \cdots + \alpha _{t}h_{t}(x) = \sum_{t=1}^{T}\alpha _{t}h_{t}(x) $$

  • H(x) = 최종 강한 분류기 (Strong Classifier)
  • h = 약한 분류기 (Weak Classifier)
  • alpha = 약한 분류기의 가중치 (Weight)
  • T = 반복 횟수 (iteration)

객체 탐지의 발전

 

아무리 객체 분할이라는 대체 방법을 찾았지만 과학자들은 객체 탐지도 계속해서 연구를 진행하고 있었다.

바로 해당 이미지를 보고 어떤 물체인지 인식하는 것이 아닌 두개의 같은 물체의 사진을 두고 비교를 시켜보았다.

두개의 사진이 같은 물체를 찍은 것인지 판단하게 한 것이다.

해당 과제가 어려운 이유는 두 사진을 찍었을 당시의 빛, 카메라 각도, 시간 등 여러 변수를 고려하여야 되기 때문이다.

 

위의 문제는 SIFT 알고리즘으로 해결되었다. (필자가 SIFT 알고리즘이 무엇인지 검색해보았지만 지금의 단계에서는 이해는 무리라고 판단되어 설명은 과감히 스킵한다...)

 

하지만 중요한 것은 변수들을 제외하고도 물체들 마다 고유의 요소(critical feature)를 지니고 있어서 해당 요소를 발견해내는 것으로 두 물체가 같은지를 판단해낼 수 있다는 점이다.

SIFT 알고리즘의 예시

이후 각 이미지는 해당 이미지가 배경인지 부엌인지 고속도로인지 판단하게 해주는 중요한 요소를 포함하고 있다는 Spatial Pyramid Matching, 사람 인식에 관한 기술인 histogram of gradients, deformable parts of models 등등 여러 기술들을 간략하게 설명해주었지만 그저 fyi인듯 하여 서술하지는 않겠다.

 

PASCAL Visual Object Challenge

 

PASCAL Visual Object Challenge, 일명 파스칼 챌린지는 주어진 데이터셋에서 얼마나 정확하게 물체를 인식해낼 수 있는지 서로 겨루는 것이다.

즉, 경쟁심을 이용해 객체 인식의 기술을 더욱 빨리 발전 시키겠다는 명목인 것이다.

 

파스칼 챌린지의 결과 그래프

 

위의 그래프를 보면 x축에는 연도 y축에는 정확도를 나타내고 있다. 시간이 지날수록 정확도가 올라가는 것이 확연히 보이는가? 즉 시간이 지날수록 객체 인식에 대한 기술은 나날히 발전하고 있다는 뜻이다.

 

ImageNet

 

객체 인식 기술이 발전해나가면서 점점 한계점에 도달했는데 그 이유는 데이터 수의 부족이다.

90년대 후반 그리고 2000년대 초에는 인터넷이 이제야 상용화되던 시기이기에 데이터 수가 모자랄 수 밖에 없다.

그리고 이는 과적합으로 이어지게 된다. 그렇기에 이 문제를 해결하기 위해 내놓은 해답이 ImageNet이다.

 

ImageNet이란 데이터 수의 부족을 해결하기 위해 인터넷 상의 모든 이미지를 수집하여 라벨링 하겠다는 대규모 프로젝트이다. 해당 프로젝트는 3년간 이어져왔으며 약 2200개의 카테고리 그리고 약 1400만개의 이미지를 사용하였다.

그 이후 ImageNet을 활용하여 기계 학습을 시키는 대회가 열리며 매년 에러율은 줄어들고 있다.

 

ImageNet 챌린지의 에러율 그래프

 

매년 에러율이 줄어드는게 눈에 띄게 보이지만 특이한 부분이 하나 있다. 바로 2011년에서 2012년으로 지나가는 부분이다. 1년 사이에 무려 약 10%의 차이를 보여주었다. 2012년에 무슨 일이 있었기에 이런 감소율을 보여줄 수 있었던 걸까?

 

Convolutional Neural Network (CNN)의 등장

 

2012년엔 CNN의 사용이 급증한 시기라고 한다. CNN이전에는 David Marr이 제안한 3가지 단계를 통해 객체 인식을 해왔다면 CNN은 새로운 방법을 내세운 것이다.

 

하지만 CNN은 사실 2012년에 처음 등장한 것이 아니라 1998년도부터 거론 되기 시작했던 기술이다.

그렇다면 왜 2012년이 되서야 제대로 사용하기 시작한걸까?

답은 총 2가지이다.

 

1. GPU와 CPU의 처리 속도

2. 라벨링 데이터의 수

 

아까도 거론했듯이 1990년대 후반에는 인터넷이 상용화 되기 전이기 때문에 컴퓨터의 속도도 그리고 데이터의 수도 매우 부족했을 것이다. 그렇기에 CNN이라는 기술이 빛을 볼 수 없던 것이다.

 

컴퓨터 비전의 목표


컴퓨터 비전은 단순히 객체 인식에서 마무리 될 분야가 아니다.

컴퓨터 비전의 목표는 완전히 인간의 시야를 따라하는 것이다.

인간의 시야는 단순히 물건을 보고 이게 어떤 물건이다 라고 판단하는 것에서 그치지 않는다.

해당 물건을 보고 상황을 판단하고 경험에 빗대어 추측하고 혹은 감정을 느끼는 경우도 있다.

아직 컴퓨터 비전의 분야에서 해결 못한 문제는 다양하기에 해결해야할 문제는 산더미처럼 쌓여있다.

그렇기에 컴퓨터 비전은 매우 흥미로운 분야고 연구를 멈출 수 없는 분야라고 할 수 있다.

'Deep Learning > CS231n' 카테고리의 다른 글

[3-2강] Optimization  (0) 2024.05.12
[3-1강] Loss Function & Regularization  (0) 2024.05.11
[과제 1] K-Nearest Neighbor (KNN)  (2) 2024.04.25
[2강] Image Classification  (0) 2024.04.16