본문 바로가기
Tech Blog/CS231n

[CS231n] 1강 : Introduction

by Cloud 9 2022. 1. 25.
728x90
반응형

CS231n focuses on one of the most important problems of visual recognition - image classification.

There is a number of visual recognition problems that are related to image classification, such as object detection, image captioning.

Convolutional Neural Networks have become an important tool for object recognition.

the quest for visual intelligence goes far beyond object recognition...

Computer Vision Technology Can Better Our Lives

 

 

강의 링크 :

https://www.youtube.com/watch?v=vT1JzLTH4G4 

 

강의 PPT 자료

http://cs231n.stanford.edu/slides/2017/cs231n_2017_lecture1.pdf

Lecture


  • Computer Vision : Visual data 시각 데이터에 관한 연구다.
  • 데이터들을 효과적으로 이해하고 분석해서 컴퓨터가 인간의 시각적인 인식능력을 가질 수 있도록 알고리즘을 개발하기 시작했다. ⇒ 컴퓨터 비전이라고 부름.
  • 학부생이나 컴퓨터 비전을 전혀 모르는 사람은 CS131를 선행해야 한다.
  • CS224는 자연어 처리에 관한 것으로 이 과정과 겹치는 부분이 있다.
  • CS231a은 컴퓨터 비전 전체를 아우르는 과정이다.
  • CS231N은 합성곱 신경망과 시각적인 인식 작업 응용프로그램에 집중한다.

컴퓨터 비전의 역사 

  • 과거 고대 생물은 시각이 존재하지 않았다. 그래서 능동적으로 먹이를 찾아다니기보다는, 수동적인 포식 활동을 했다.
  • 약 5억 4천3백만 년 전, 고생대 캄브리아기 초기에 다양한 종류의 동물 화석들이 갑작스럽게 출현한 지질학적 사건이 있었다. ⇒ ‘캄브리아기 폭발’ 또는 ‘캄브리아기 방사’라고 부르기도 한다.
  • 이를 기점으로 생물 종이 폭발적으로 다양해졌는데, 이러한 발전의 이유를 Andrew Parker는 시각(Vision)의 발달에서 찾았다. 시각의 발달로 능동적인 포식, 피식 활동이 시작되었다는 것이다. 이후 시각은 가장 중요한 감각기관으로 발전했다.
  • 카메라 옵스큐라(암상자) : 1600년대 르네상스 시대, pinhole camera theories에 따른 camera obscura. 구멍으로 빛을 받아들이는 초기 동물이 발전시킨 눈과 비슷하다.

1950년대 : Hubel과 Wiesel (1959)

  • Hubel과 Wiesel은 전기생리학을 연구했다. 포유류의 시각적 구조를 알고 싶어 했고, 고양이가 인간과 시각 처리가 비슷하다고 알려져 있어 고양이가 이미지를 인식하는 방법에 대한 연구가 진행되었다.
  • 고양이 뇌의 뒤쪽에 있는 1차 시각피질 부분에 전극을 꽂고, 그곳에 위치한 뉴런들이 흥분하여 반응하게 하는 자극은 무엇인지 실험.
  • 결과 : 일차 시각 피질에는 다양한 세포가 존재하지만, oriented edges에 반응하는 단순한 세포들이 가장 중요하다. 각기 다른 뉴런이 이미지를 나누어 인식한다는 사실을 알게 되었다. 복잡한 이미지는 단순한 이미지로 나누어서 처리한다. ⇒ 단순한 구조로 시작해서 점차 복잡한 요소들을 처리하고 실제 시각적 input을 인지할 수 있다.
  • 물체를 그대로가 아니라 Feature를 기준으로 인식한다. 그래서 물체를 인식하고 만들기 위해서 여러 과정이 필요하다고 주장했다.

1960년 초

  • 최초의 박사학위 논문인 Larry Roberts의 Block World.
  • 시각적 세계를 기하학적 형태로 단순화하고, 그것을 재인식해 그 형상으로 재구성하는 것이 목표였다.

1966년

  • MIT Summer Project : 여름 안에 대부분의 시각 체계를 구현하려 했다.

1970년대

  • David Marr의 책 VISION 저술. 컴퓨터 비전의 기본서
  • Stanford, SRI에서는 단순한 모양이나 기하학적 구성을 통해 복잡한 객체를 단순화시키는 방법을 제안.

1980년대

  • David Lowe는 어떻게 하면 단순한 구조로 재구성할 수 있을지를 고민했다. Primal sketch는 주로 lines, edges, straight lines, bars, ends, virtural lines, curves, boundaries가 해당된다.
  • Input Image가 들어왔을 때 이미지의 특징들을 추출하고
  • 특징에 따라 depth나 surface를 추출한다.
  • 이렇게 추출한 정보를 가지고 3D modeling 하는 방법을 제시했다.
  • Object Detection 분야는 굉장히 어려워서 image segmentation을 먼저 시도하는 연구도 있었다.
    (Object segmentation)

 

복잡한 물체를 단순한 구조의 결합으로 보는 시각

  • “모든 물체는 단순한 기하학적 형태로 표현할 수 있다.”
  • 일반화된 실린더 (generalized cylider)와 그림 구조 (pictorial structure)다.
  • Primal Sketch 과정을 먼저 거친다 Primal Sketch : 물체 인식 후 경계, 커브, 선으로 구분하는 것

Image Segmentation

: Jitendra Malik, Jianbo Shi가 이미지 분할 문제를 해결하기 위해 그래프 이론을 사용했다.

 

특성 중심(Feature Based)의 이미지 처리

  • 이미지에서 중요한 특성만 추출하고 그 특성을 바탁으로 이미지를 처리한다.
  • 위 사진에서의 Feature Based는 ‘STOP’이라는 글자.
  • David Lowe는 Object의 Feature 중 일부는 카메라 각도, 조명, 그리고 물체의 본질적인 변화와 같은 다양한 변화에도 불구하고, 불변하다는 것을 발견했다.

1999/2000년대

  • 기계학습
  • SVM, Boosting, Graphical models, 초기 NN
  • Paul Viola, Michael Jones: 실시간 얼굴인식 성공(2001)
  • David Lowe: SIFT feature
  • 특징기반 객체인식 알고리즘
  • 변화에 좀 더 강인하고 불변한 특징을 발견
  • 이미지 전체를 매칭 하던 것에서 -> 아래 그림과 같이 중요한 특징들을 찾아내어 다른 객체에 매칭 시키는 것이 더 쉽다.
  • Spatial Pyramid Matching, Support Vector Algorithm
    ⇒ 21세기, 인터넷과 카메라의 발전으로 실험 데이터들의 질이 급격히 상승했다. 이때부터 양질의 데이터 셋을 모으기 위한 움직임이 이어졌다.

공간 피라미드 매칭 (Spatial Pyramid Matching) :

  • image 속의 여러 feature를 통해 어떤 장면인지 알려주는 단서들을 찾는다.
  • feature descriptor에서 합한다.
  • 서포트 벡터 머신 (SVM) 알고리즘을 그 위에서 수행하는 방식이다.
  • 비슷한 작업이 사람 인식에서도 있었다.
  • features를 합해, 인간의 신체를 더욱 실제적인 이미지로 구성하고 인식하는 방법에 대해 연구한 논문들이 있었다.
    • 경사 히스토그램 (historgram of gradients)
    • 변형 가능 부분 모델 (deformable part mode
  • PASCAL Visual Object Challenge(VOC): 알고리즘 테스트에 사용되었다.
    • 20개의 Object class로 되어 있고, 기차, 비행기, 사람 외에 소, 병, 고양이 등 분야별로 수 천, 수 만장에 이르는 방대한 이미지가 있었다.
    • 2000년대 초에 Computer vision 분야에서 앞으로 풀어야 할 문제가 무엇인지 정의했다. SVM, Adaboost 같은 Machine Learning Algorithm을 training 하는 과정에서 과적합이 발생하는데 이러한 이유의 원인은 두 가지가 있다.
  • 과적합의 원인 두 가지
    • 시각 데이터가 매우 복잡함
    • 학습 데이터가 부족함
  • Computer Vision 중 Classification 분야에서의 두 가지 목표를 세움
    • 세상의 모든 객체를 인식한다.
    • 과적합을 줄여보자.
  • 그 결과, “ImageNet”이 탄생함. ImageNet은 22K의 Categories와 14M 개의 이미지 사진이 들어있는 엄청난 Dataset이다. 이 Dataset으로 Image Classification을 하는 대회를 열었다.
    " ILSVRC(ImageNet Large Scale Visual Recognition Challenge)"이다.
  • 알고리즘이 다섯 개의 label을 출력할 수 있다?
  • 그 다섯 개의 label이 사진에 있다?
    => 성공!
  • ILSVRC
    • 오차율은 해를 거듭하며 낮아지게 되는데, 2012년에는 오차율이 10% 이하로 줄어든 혁신적인 알고리즘이 제안되었다. 바로 AlexNet이다. (AlexNet은 CNN 구조를 기반으로 함)
    • 2012년에 딥러닝은 컴퓨터 비전, 자연어 처리와 음성인식 영역에서 진보가 이루어졌다.

CS231n은 이미지 인식의 가장 중요한 문제들 중의 하나인 이미지 분류에 초점을 맞추고 있다.

  • 많은 수의 시각적인 인식 문제들은 물체 감지, 이미지 캡셔닝과 같은 이미지 분류와 연관되어 있다.
  • 물체 탐지에서의 세팅은 조금 다르다.
  • 이미지 캡셔닝
    :  이미지가 주어지면 이미지를 설명하는 자연어를 생성하는 것. 이미지 분류를 위한 도구들이 재사용된다. 

CNN은 물체 인식에 중요한 도구가 되었다.

  • CNN은 하루아침에 발명된 것이 아니다.
  • ImageNet에서 2012년 AlexNet이 우승을 한 이후에는 모두 CNN을 변형해서 성능을 향상하려는 연구가 계속 진행되고 있다.
  • 그렇다면, CNN은 2012년에 발명된 것일까?
    • 아니다. 이미 1998년에 제안된 알고리즘이다.
    • 손글씨를 인식하여 우편을 분류하려는 노력이 있었다고 한다.
  • 과거 CNN 발전의 한계?
       1. 데이터의 양이 너무 적다.
       2.  연산 속도가 굉장히 느렸다.
    ⇒ 위의 문제로 인해 그동안 발전하지 못했지만, 최근 여러 기술의 발달로 한계를 극복하고 있다.
  • 그렇다면, 왜 갑자기 최근 많이 사용하게 되었을까?
    • 컴퓨팅 능력 : 무어의 법칙 (Moore's law) 덕분으로 매년 더 빠른 컴퓨터가 나온다. 또한 GPU (Graphical Processing Unit)가 등장해 슈퍼 병렬 처리가 가능하고, 결국 이 계산이 많이 필요한 합성곱 신경망을 빠르게 처리할 수 있게 되었다.
    • 데이터 : 90년대엔 레이블 된 데이터가 없었다. 인터넷이 널리 사용되기 이전이고 다양한 데이터 셋을 구하기 어려웠다.

시각적 지능에 관한 연구는 물체 인식을 넘어선 지 오래되었다.

컴퓨터 비전 기술은 우리의 삶을 더 나은 방향으로 이끌 수 있다.

 

 

[ 참 고 자 료 ]  감사합니다. 

https://softwareeng.tistory.com/entry/cs231n-1강-시각-인식을-위한-합성곱-소개-23-컴퓨터-비전-역사?category=1173920

https://leechamin.tistory.com/64

https://oculus.tistory.com/ : 공대생 요약노트

https://lynnshin.tistory.com/2?category=919376

https://rladuddms.tistory.com/5

https://reminder-by-kwan.tistory.com/114

https://yjjo.tistory.com/8

https://cumulu-s.tistory.com/10

https://22-22.tistory.com/26

https://wikidocs.net/64066

http://taewan.kim/post/cnn/

https://taeyoung96.github.io/cs231n/CS231n_1/

https://github.com/YBIGTA/Deep_learning/blob/master/CNN/CS231n 

http://www.koreascience.or.kr/article/JAKO201913457809194.pdf

 


1강에서 발견한 새로운 어휘

  • hover(방황하다) css hover : css 안에 있는 속성, html에서 요소에 마우스를 올렸을 때 반응하게 하는 요소
  • on the par 동등하게
  • geometric 기하학적인
  • whatnot = et cetera = and so on 말을 하다가 무슨 말을 할지 더 이상 생각이 안 난다거나 어떻게 문장을 끝내야 될지 모를 때 문장 끝에 ‘whatnot’을 붙여보세요.
  • ConvNet : Convolutional Neural Network. 컨볼루션 신경망 = 합성곱 신경망
  • takeaway : 핵심 사항, 요점, 배울 점 등으로 해석되는데요. 어떤 이야기에서 배울 점, 회의 내용에서 중요한 요점 등 '가져가야 할 중요한 내용'을 의미합니다.
  • deploy 전개하다
  • sub-sampling : 밝기 정보 대비 색차 정보를 줄여 영상을 인코딩하는 방식을 가리킨다.
  • computation 계산
  • coarse 조잡한
  • crunch 결정적 시기
  • magnitude 크기, 규모, 중요(성)
  1. <물리학> 광도의 단위
  2. <지리학, 지학> 지진의 규모를 나타내는 척도
  • grail
  • compatriot 동포, 같은 나라의
  • tackle 문제를 강력히 해결하려고 하다
  • pitch 같은 일을 되풀이하거나 일정한 간격으로 일을 행하는 경우의 속도나 횟수. 또는, 작업의 능률.

 


2022년 1월 24일 CS231n 1강 정리 완료.

들을 때는 다 알겠는데, 막상 정리하려 하니 뭘 정리해야 할지 모르겠다. 

 

개인 자료 정리를 위한 게시물입니다. 다른 분들께도 도움이 되길 바랍니다. 

주관적인 표현이나 틀린 표현이 있을 수 있습니다. 

문제시 알려 주세요.

 

 

반응형

 

728x90
반응형