본문 바로가기

컴퓨터 비전

[컴퓨터 비전] VGG19을 활용한 산타클로스 vs 일반인 분류하기

728x90

 

 

📌 VGG19

  • 딥러닝에서 널리 사용되는 컨볼루션 신경망(CNN) 아키텍처 중 하나로, 이미지 분류와 같은 컴퓨터 비전 작업에서 뛰어난 성능을 발휘하며, 대표적으로 ImageNet 대회에서 사용되어 높은 평가를 받았다.
  • 레이어 구성:
    • VGG19는 총 19개의 가중치(weight) 레이어를 가지고 있으며, 여기에는 16개의 컨볼루션 레이어와 3개의 완전 연결(fully connected) 레이어가 포함된다. 이외에 활성화 함수(ReLU), 맥스풀링(Max Pooling), 소프트맥스(Softmax) 레이어가 포함된다.
    • 이 구조에서 숫자 19는 네트워크가 포함하는 가중치가 있는 레이어의 총 개수를 나타낸다.
  • 컨볼루션 레이어:
    • VGG19는 매우 작은 3x3 크기의 컨볼루션 필터를 사용한다. 이러한 작은 필터는 깊은 구조를 가능하게 하면서도 더 많은 특징(feature)을 포착할 수 있게 해준다.
    • 네트워크의 깊이는 이 모델의 중요한 특징으로, 네트워크가 깊어질수록 더 복잡한 특징을 학습할 수 있다.
  • 풀링 레이어:
    • 컨볼루션 레이어 뒤에 맥스 풀링(Max Pooling) 레이어가 추가되어 공간적인 크기를 줄여주고, 계산량을 감소시키면서 중요한 정보만 남긴다. 보통 2x2 크기의 풀링 창을 사용한다.
  • 완전 연결 레이어:
    • 마지막으로 세 개의 완전 연결 레이어가 추가되어, 이미지 분류 작업을 수행한다. 이 레이어들은 컨볼루션과 풀링 레이어에서 추출된 특징을 바탕으로 최종 예측을 만든다.
  • 활성화 함수:
    • 각 컨볼루션 레이어 뒤에는 ReLU(Rectified Linear Unit) 활성화 함수가 사용된다. ReLU는 비선형성을 도입하여 네트워크가 더 복잡한 패턴을 학습할 수 있도록 돕는다.
  • 소프트맥스 레이어:
    • 네트워크의 마지막 단계에서는 소프트맥스(Softmax) 함수가 적용되어, 각 클래스에 대한 확률을 출력한다. 이 확률은 입력 이미지가 특정 클래스에 속할 가능성을 나타낸다.
  • VGG19는 이후 등장한 여러 딥러닝 모델(ResNet, DenseNet 등)의 성능에는 뒤쳐지지만, 여전히 이미지 분류와 같은 다양한 컴퓨터 비전 작업에서 많이 사용되고 있다. 특히, 전이 학습에서 자주 사용되는 대표적인 모델 중 하나이다.

# 사전 학습된 VGG19 모델 불러오기
pretrained_vgg19 = models.vgg19(pretrained=True)
# 위에서 정의한 클래스VGG19 객체 만들기
model = VGG19(num_classes=1000)

 

 

728x90