Lecture 1 | Introduction to Convolutional Neural Networks for Visual Recognition
AIFFEL 파이썬 마스터 풀잎스쿨이 끝나고 이제 딥러닝 풀잎스쿨이 시작되었다.
이번 풀잎 스쿨에서는 CS231n을 보고 팀원들과 토론하며 학습한다.
사실 9월부터 새로운 풀잎스쿨을 하기 시작했는데, 기존에는 노션에다가 정리해오다가 점점 대충 쓰는 것 같아서 벨로그로 넘어왔다.
두번 쓰면 머릿 속에서 정리도 되고 ㅎㅎ.. 할튼 이제 벨로그에 정리해보려한다.😤
현재 카메라와 같은 센서들이 데이터를 양산하고 있으며, 인터넷 트래픽 중 80% 지분이 비디오 데이터이다.
즉, 인터넷의 데이터의 대부분은 시각 데이터이기 때문에 시각 데이터를 잘 활용할 수 있는 알고리즘을 개발하는 것은 중요하다.
하지만 시각데이터는 다루기 매우 까다롭다.
마치 암흑 물질(dark matter)와 같아 이해하고 해석하기 어렵다.
컴퓨터 비전은 다양한 분야와 접해있다 (과학, 공학 등의 분야)
광학, 이미지 구성, 이미지의 물리학적 형성 등을 이해하기 위해 물리학적 현상들을 이해할 필요가 있다. + 생리학, 심리학, 수학 등
5억 4천만년 전에 있었던
진화의 빅뱅
→비전(시각)
의 탄생이 폭발적인 종 분화의 시기를 촉발 시킨 것으로 추정되며, 이로 인해 생물은 능동적으로 변화하게 된다.
인간의 대뇌 피질의 50% 가량의 뉴런이 시각 처리에 관여한다.
인간과 시각적 메커니즘이 비슷한 고양이 뇌 연구를 통해 일차 시각 피질의 뉴런들이 어떤 자극에 반응하는지 확인하였다.
세포들은 경계(edges)
가 움직이면 그에 반응하는 것이 관찰되었다.
초기의 시각 처리는 단순한 구조로 시작
되며 각 통로를 거치면서 정보가 복잡해지는 것을 확인하였다.
시각 처리의 초기단계는 경계와 같은 단순한 구조와 밀접한 관련이 있다.
눈에 보이는 사물들을 기하학적 모양으로 단순화
눈에 보이는 세상을 인식하고 모양을 재구성하는 것이 목표
시각 시스템의 전반을 구현하는 것을 목표
비전의 가장 근본적인 문제들을 연구
비전의 정의, 방향, 컴퓨터의 비전 인식을 위해 어떻게 알고리즘을 개발 해야하는지 다룸
이미지를 최종적인 full 3D로 표현하려면 몇 단계 과정이 필요하다.
Primal Sketch 단계:
경계(edges), 막대(bars), 끝(ends), 가상의 선(virtual lines), 커브(curves), 경계(boundaries)가 표현되는 과정
2.5-D sketch 단계:
시각장면을 구성하는 표면(surfaces) 정보, 깊이 정보, 레이어, 불연속 점과 같은 것들을 종합
3D Model Representation:
앞서 언급한 것들을 모아 surface and volumetric primitives의 형태의 계층적으로 조직화된 최종적인 3D 모델을 만들어 냄
객체 인식이 어렵다면, 객체 분할(segmentation)이 우선이지 않을까 생각하기 시작
객체의 특징 중 일부는 다양한 변화에 조금 더 강인하고 불변하다는 점 발견
이미지에서 일부 SIFT 특징 추출 → 다른 이미지에서 특징을 추출하여 식별하고 매칭
이미지의 특징 활용을 통해 발전하고 이미지 전체를 인식하기 시작
특징이 단서를 제공한다!
이미지 내의 여러 부분과 여러 해상도에서 추출한 특징을 하나의 특징 기술자로 표현하고 Support Vector Algorithm을 적용
→ 사람인식 연구로 이어짐
CNN 이전 모델들은 계층적인 구조를 가지고 edge를 뽑고 불변 특징의 개념을 포함하였다.
CNN은 1988년 이미지에서 문자를 인식하기 위해 구축 되었다.
CNN의 발전
계산 능력에서의 변화 : 무어의 법칙으로 컴퓨터의 계산속도 증가
GPU의 진보: 병렬 처리
데이터의 변화: 레이블이 매겨진 이미지 데이터가 좋다. 이전에는 크고 다양한 데이터셋을 구하기 힘들었다.
영상을 보면서 급하게 타이핑 하느라 오타가 조금 있을 수 있다는 점 ㅎㅎ
처음 영상 볼 때는 머리에 안들어오더니 지금 한 번 더 정리하니까 '그 때 왜 몰랐자?' 싶다🤔