[컴퓨터 비전의 모든 것]Image Classification (1) : 개념

2024. 12. 20. 00:34MOOC

 

1. 이미지 분류(Image Classification)란?

  • 정의: 주어진 입력 이미지를 특정 클래스(예: 고양이, 자동차 등)로 분류하는 작업이다.
  • 핵심 요소: 이 작업에서 가장 중요한 것은 분류기(Classifier)이다.

2. 이미지 분류 구현 방식

이상적인 접근법: Nearest Neighbor

  • 방법: 입력 이미지와 가장 비슷한 이미지를 찾아서 해당 이미지의 클래스를 할당.
  • 문제점:
    1. 현실적으로 세상의 모든 이미지를 저장하는 것은 불가능.
    2. 데이터가 많아질수록 검색 복잡도가 선형적으로 증가.

실제적인 접근법: Neural Network

  • 아이디어: 데이터를 Neural Network에 압축하여 학습.
  • Single-layer Neural Network의 문제점:
    1. 클래스의 평균적인 이미지와 다른 이미지를 잘 표현하지 못함.
    2. 학습 데이터와 다른 형태의 테스트 데이터에서 성능 저하(예: crop된 이미지).

3. CNN(Convolutional Neural Network)의 등장

CNN의 특징

  • Locally Connected Layer: 이미지의 국부적인 영역만 연결하여 특징을 추출.
  • Parameter Sharing: 파라미터를 공유하여 네트워크의 복잡도를 낮추고 과적합(overfitting)을 방지.
  • 강점:
    • 지역적인 특징을 추출하여 crop된 이미지 등 다양한 형태의 입력에서도 올바르게 분류 가능.
    • 효율적인 구조로 이미지 분류와 컴퓨터 비전의 여러 작업에 적합.

4. CNN 기반의 Image Classification

AlexNet (2012년)

  • 특징:
    1. 기존의 LeNet 구조에서 발전된 형태로 더 깊은 네트워크 설계.
    2. ImageNet 같은 대규모 데이터셋을 통해 학습.
    3. 향상된 활성화 함수(ReLU)와 Regularization 기법(Dropout) 적용.
  • 구조적인 특징:
    • Max Pooling된 Activation map을 Linear layer에 입력하기 위해 벡터화(flatten) 작업 필요.
    • Local Response Normalization(LRN) 사용(현재는 Batch Normalization으로 대체됨).
    • 큰 필터 크기를 활용하여 receptive field를 넓힘.

VGGNet

  • 특징:
    1. AlexNet보다 훨씬 더 깊은 네트워크 설계(16~19 layers).
    2. 작은 필터 크기(3x3)를 사용하여 성능을 개선.
    3. 간단한 구조임에도 불구하고 일반화 성능과 분류 성능에서 뛰어난 결과를 보여줌.
    4. 사전 학습된 모델을 다른 작업(task)에 활용 가능.