컴퓨터 비전(CV) 기초

가비·2022년 4월 27일
0

YBIGTA

목록 보기
4/6

📌 컴퓨터 비전(Compuer Vision)이란?

기계의 시각에 해당하는 부분을 연구하고 있는 분야로, 인간의 시각이 할 수 있는 일을 수행하는 자율적인 시스템 구축을 목표로 한다.

이미지를 인식할 때에는 다양한 문제들이 존재한다.

  • 객체 분류(Object Classification)
  • 객체 탐지 및 위치 식별(Object Detection & Localization)
  • 객체 분할(Object Segmentation)
  • 이미지 캡셔닝(Image Captioning)
  • 이미지 추적(Object Tracking)
  • 행동 분류(Action Classification)

또한, 다음과 같은 문제를 해결해야 하는 경우도 있다.

  • 영상 및 이미지 화질 개선(Super Resolution)
  • 이미지 잡음 개선(Image Noise Reduction)

모든 컴퓨터 자료는 텍스트든 음악이든 이미지든 어떤 '규칙성 있는 수열'이기에 DL, ML로 처리가 가능하다.


📌 CV의 발전

과거에는 이미지에서 간단한 기하학적 형상을 단순화하고 다시 형상을 만들어냈다. Edge, Boundary등과 같은 단순한 특징들만을 표시했다. 복잡한 구조를 '단순화'하려고 하였다.

그 후, Image Segmentation(픽셀들을 그룹으로 묶어 의미있는 단위로 구분하는 작업)을 시작하였다. 이때, 그래프 알고리즘, 부스팅, 신경망 등이 등장하였다.

그런데 한가지 문제가 있었는데, NN이 이미지에 적용이 되지 않았다. 그 이유는 Locality와 Spatiality의 붕괴이다. 2차원 픽셀을 1차원으로 표현하면 픽셀관의 상관관계가 표현되지 못하고 붕괴된다. 이를 통계적으로 해결하려고 하였지만 실패하였다.

CNN이 등장하였다. 사진도 일종의 주파수이기에 시각 신호 처리 관점에서 Convolution이 등장하였고 이를 통해 2차원 곱으로 그대로 인식시키고 필터를 통해 내가 원하는 형태를 강제로 인식가능하게 만들어 줄 수 있다.

그런데 Convolution Layer를 거치고 나면 무조건 사이즈가 감소하게 되다. 해당 사이즈가 감소할 때, 그냥 냅두어도 되지만 Padding을 통해 채워줄 수 있다.(Zero Padding, Same Padding, Valid Padding)

Convolution에서 요점을 뽑아 주는 Pooling도 있다. 이 방식은 이미지의 invariance(불변성)값에 영향을 주게 되어, 일정두단의 shift움직임에 대해서 일반적인 모델 구축에 도움을 준다. 약간 위치가 변하여도 같은 값을 뽑아낼 수 있다.

Feature Map은 필터를 거치고 난 후의 모습이다. Feature Map의 개수는 필터의 개수이다.

부족해진 Dataset을 보충하고 Generalization을 높이기 위해 이미지 개수를 Image Augmentation을 통해 증가시켜준다. 이미지를 rotation, flip, rescaling, grayscaling, cutoff 해준다.


📌 모델

CNN Vision Model

  • Lenet 5
  • Alexnet
  • VGGNet

공모전에 자주 쓰이는 모델

  • DenseNet : 가장 기본적으로 쌓은 CNN Model
  • ResNet : BottleNeck 구조가 등장한 최초의 모델, 거의 성능이 좋다
  • Movile Net V1, V2, V3, Small, EdgeTPU : 메모리가 작은 경우 분산처리에 용이한 구조
  • EfficientNet V1 : DL 구조를 DL적으로 찾아내는 DL의 DL
  • Inception V1, V2, V3, V4 : Convolution filter들을 가로로 길게 만든 Inception모듈의 발전구조
  • Exception : 다양한 Channelwise Convolution과 공간필터의 개념을 도입한 Extreme Inception(인셉션 확장판)
  • VIT : NLP의 Transformer를 Vision에 도입한 것. 압도적인 퍼포먼스.

위 모델들을 앙상블(deep bagging 등)하여 극한의 성능을 끌어낼 수 있다.


모델
https://www.tensorflow.org/api_docs/python/tf/keras/applications/resnet
Pytorch Model 모음
https://github.com/rwightman/pytorch-image-models


REFERENCE

YBIGTA에서 열심히 교육해주신 박0종님

profile
개발데분꿈나무🌳

0개의 댓글

관련 채용 정보