[cs231n] Lecture 1 | Introduction to Convolutional Neural Networks for Visual Recognition 리뷰

김찬우·2024년 2월 16일

본 1강에서는 본격적인 딥러닝과 컴퓨터 비전에 대한 내용들을 다루기보단, 앞으로의 강의의 전체적인 흐름과 방향성, 딥러닝과 컴퓨터 비전에 대한 소개를 다루고 있습니다.


현재 인터넷에 존재하는 데이터 중 대부분의 비중을 차지하는 것이 바로 비디오, 이미지 데이터입니다. 이러한 데이터를 제대로 분석할 수 있다면 크나큰 도움이 될 수 있겠죠? 컴퓨터 비전이란 이러한 이미지, 비디오 데이터들을 가지고, 컴퓨터로 하여금 인간의 눈을 통한 인지 능력을 가질 수 있게 해주는 기술이라고 할 수 있습니다.

위 사진에서 볼 수 있듯, 컴퓨터 비전은 굉장히 다양한 분야에서 큰 도움이 될 수 있기에 많은 관심을 받고 빠르게 발전 중인 학문입니다.


Vision의 역사

컴퓨터 비전에 대해 자세히 다뤄보기 전에, 본 강의에선 '시각'이란 감각의 중요성에 대해 먼저 설명하고 있습니다. 대략 5억 4300만년 전, 갑자기 아주 짧은 시간 동안, 지구 상에 존재하는 다양한 생물 종들이 매우 급격하게 증폭되는 사건이 있었습니다. 학자들은 이를 'Evolution's Big Bang'이라고 명명하곤 한다는데요, 이 사건에 관련된 여러 가설들 중, 이 시기에 동물들에게 최초로 '눈'이라는 것이 생겼고, 이로 인해 생물들이 더욱 적극적이고 능동적으로 먹이를 찾고, 천적을 피하는 등의 행위를 할 수 있게 되어 이러한 폭발적인 개체 수 증가가 발생할 수 있었다는 가설이 많은 지지를 받았다고 합니다.

이후 인류 문명이 발달함에 따라 이러한 인간의 시각을 모방하는 장치가 탄생했으니, 바로 '카메라'입니다.


Computer Vision의 역사

컴퓨터로 하여금 인간의 시각을 가지도록 하는 연구는 생각보다 오래되지 않았습니다. milestone이라 여겨질 수 있는 몇몇 연구들을 정리해보겠습니다:

- Hubel & Wiesel의 연구(1959)

고양이의 뇌에서 나오는 전기적 신호를 분석해 눈이 어떻게 사물을 인식하는지에 대한 연구입니다. 이 연구를 통해, 눈에 들어오는 이미지를 세포들이 나누어 간단한 세포일수록 물체를 통한 빛의 방향성에 반응하고, 점점 복잡한 세포에 가까워질수록 방향성과 움직임, 가장 복잡한 세포의 경우 물체의 end point에 전기적 반응을 한다는 사실을 알게 되었습니다.

이 연구를 통해
1. 우리가 이미지를 인식할 때 계층적인 순서를 가지고 이미지를 차례차례 부분적으로 인식해 하나의 이미지를 이해하게 된다는 것,
2. 이미지를 이해할 때 가장자리를 인식하는 것이 인식의 첫 걸음임을 알게 되었습니다.

- Block world, Larry Roberts(1963)

최초의 Computer Vision 논문이라고 볼 수 있는 연구입니다. 앞선 연구 내용에 따라, 도형 이미지를 기하학적 형태로 바꾸고 그것을 다시 재구성하는 연구였습니다.

- The Summer Vision Project, MIT(1966)

MIT에서 컴퓨터 비전에 대한 체계를 세우기 위해 시작한 프로젝트입니다.

- VISION, David Marr(1970년대)

컴퓨터 비전의 프로세스에 대해 제시하고 있는 서적입니다. 이 책에서 제시하는 방법론이 수십년동안 컴퓨터 비전 연구의 정석처럼 여겨졌습니다.
한 input image를 processing하는 단계로,

  • primal Sketch: 물체의 Zero crossing, blob, edge, bar, end 등 simple한 structure를 찾습니다.

  • 2 1/2-D sketch: Local surface orientation, discontinuities in depth & surface orientation 등을 인식합니다. 앞선 단계보다 조금 더 의미론적인 구조를 파악합니다.

  • 3-D Model Representation: surface와 volumetric primitives들을 가지고 계층적 구조의 3D model을 만들어냅니다.

조금 어렵게 들릴수도 있어 예시를 들어보자면, 한 건물을 바라볼 때 앞선 단계일수록 건물의 뼈대를 인식하고, 뒤로 갈수록 건물의 재질에 대한 느낌, 입체감 등에 대해 인식한다고 설명할 수 있을 거 같습니다.

- Generalized Cylinder(1979), Pictorial Structure(1973)

각각 Brooks & Binford, Fischler and Elschlager가 연구한 내용입니다. Pictorial Structure의 경우 인간 신체의 주요 부위들을 선으로 이어 사람을 표현했고, Generalized Cylinder의 경우 말 그대로 복잡한 여러 물체들을 간단한 구조인 원통들의 집합으로 표현하고자 했습니다.

이 외에도 동전 등의 객체를 edge등의 성질을 통해 파악하는 David Lowe의 연구 등이 존재했습니다.

- Normalized Cut, Shi & Malik (1997)

지금부터 본격적으로 실용적인 컴퓨터 비전에 대한 연구들입니다 graph 자료구조를 기반으로 image segmentation을 수행한 연구입니다. image segmentation이란 이미지에 존재하는 여러 존재들에 대해 의미있는 공간끼리 픽셀 단위로 그룹화를 하는 것을 의미합니다.

- Face Detection, Viola & Jones (2001)

사진에서 실시간으로 사람의 얼굴을 인식하는 알고리즘이 개발되었습니다. 실제 세상에서 사용할 수 있는 알고리즘의 개발로, 이 때부터 폭발적으로 컴퓨터 비전에 대한 연구가 가속화되었습니다.

- SIFT & Object Recognation, David Lowe (1999)

특정 물체를 인식하는 연구로, 다른 두 위치에서 찍은 이미지에서 특징이 되는 특징점들을 찾고 이를 매칭시킵니다. 서로 다른 위치에서 찍은 사진들의 경우 명도, 채도 등에 일부 차이가 있을 수는 있지만 물체의 특징 중 일부는 invariant하고자 한다는 사실을 깨닫고 이를 매칭해 다른 두 사진에서 같은 물체를 찾아냈습니다.

참고로 이 SIFT의 경우, 자율주행에 사용되는 SLAM이라는 기술에 대해 조금만 찾아보고 공부해보면 많이 들어볼 수 있는 유명한 알고리즘입니다.

- Spatial Pyramid Matching, Lazebnik, Schmid & Ponce (2006)

이미지를 부분적으로 나누고 각 부분에서 뽑아낸 특징들을, discriptor에 집어넣어 이 사진이 어떤 장면인지에 대해 이해하고 분류하는 연구입니다.
사진의 각 부분들의 feature는 scene의 type에 대한 단서를 제공한다는 아이디어에서 시작되었습니다.

- Histogram of Gradients (2005), Deformable Part Model (2009)

둘 다 인간의 이미지 상에서의 feature를 추출하여 인식하는 연구입니다.

기술이 점점 발달하게 되면서, 컴퓨터 비전이 해결해야 할 문제가 새롭게 정의되었습니다. 이는 바로 Object Recognation입니다.
Pascal Visual Object Challenge는 20개의 category를 분류한 데이터셋으로 이 카테고리를 정확하게 분류하는 알고리즘을 개발하는 challenge가 2006~2012년 진행되었습니다.

- IMAGENET

컴퓨터 비전으로 이 세상에 존재하는 모든 객체를 구별할 수 있을까? 라는 물음에 대한 답을 내리기 위해, 22000개의 카테고리로 분류되는 1400만개의 사진들을 모아 정리한 데이터셋입니다. 이 데이터셋에서 1000개의 카테고리를 가져와 이를 얼마나 잘 분류하는지를 겨루는 ImageNet The Image Classificatio Challenge가 개최되었고, 이 Challenge에서 그 유명한 AlexNet, GoogLeNet, ResNet 등의 딥러닝 architecture가 등장하게 되었습니다.


cs231n Overview

본 강의에서는 컴퓨터 비전의 다양한 task 중 주로 Image Classification, 즉 이미지를 특정 카테고리로 분류하는 task를 중심으로 진행될 예정입니다.

그 외에도 Visual Recognition task에는 다양한 종류가 있는데, 사진에서 객체를 카테고리로 분류하고 bounding box를 쳐서 위치를 표현하는 object detection, 자연어 처리(NLP)와 결합하여 입력으로 들어온 이미지에 대한 설명을 가변적 길이의 자연어 시퀀스로 출력하는 image captioning 등 다양한 task들이 존재하고 연구되고 있습니다.

컴퓨터 비전에서 자주 쓰이는 기술로, Convolution Neural Network, CNN이라 불리우는 딥러닝 network가 있습니다. 이 CNN의 탄생과 함께 딥 러닝이라는 분야가 탄생했다고 봐도 과언이 아닌데요. 이 CNN을 사용한 모델들이 IMAGENET Challenge에서 압도적인 성능을 보여주며 매 해 우승을 차지했고, 이 모델들은 점점 발전해 더욱 깊은 형태의 architecture를 가지게 되었습니다.

이 CNN이 본격적으로 컴퓨터 비전에서 큰 각광을 받은 것은 AlexNet의 탄생 시기인 2012년부터이지만, 사실 그보다 오래 전인 1998년에 처음으로 제안된 생각보다 나이가 오래 된 아이디어입니다. 그헣다면 왜 시간이 오래 흐른 지금에서야 이 CNN은 큰 주목을 받고 있는 걸까요?

그 이유는 크게 두 가지,

    1. 컴퓨터 하드웨어의 발전: 트랜지스터의 발달과 컴퓨터의 병렬 계산을 지원하는 GPU의 탄생으로 인해 딥러닝 계산을 위한 컴퓨팅 파워가 줄어들게 되었고 이로 인해 CNN을 학습시키기 더욱 수월한 환경이 탄생한 점이 있으며,
    1. Dataset의 발전: 방대한 data를 가진 dataset들의 등장으로 인해, 더욱 general한 출력값을 기대할 수 있도록 CNN을 학습시킬 수 있게 된 점이 있습니다.

앞으로의 시각 지능은 앞서 설명해드린 object recognition에서 멈춰있는 것이 아닌, 이미지를 pixel단위로 나누어 카테고리를 분류하는 semantic segmentation, 2D image로부터 3차원 입체를 복원하는 3D reconstruction, 방대한 양의 이미지 데이터베이스에서 내가 원하는 이미지를 검색하는 image retrieval 등 더욱 복잡하고 다양한 task들이 탄생하였고, 앞으로도 탄생하게 될 것입니다.

profile
M.S student at AILAB, Dept. of Automotive Engineering, Hanyang Univ.

0개의 댓글