카테고리 없음

[컴퓨터 비전] CNN (Convolutional Neural Network)

외손잡이 2024. 11. 26. 21:28
작성자 장원준
일 시 2024. 11. 26 (화) 18:00 ~ 21:00
장 소 복지관 B-128-1호
참가자 명단 임혜진,  장원준, 이재영, 성창민, 김명원
 사 진

CNN ( Convolutional Neural Network)

CNN은 이미지 데이터를 처리하고 분석하는 데 사용되는 인공 신경망의 구조입니다. 이미지와 같은 2D 데이터를 처리하는 데 최적화되어 있으며, 여러 층을 통해 특징을 추출하고 분류하는 방식으로 작동합니다. CNN은 일반적인 신경망과 달리, 데이터의 공간적인 구조를 고려하여 필터(또는 커널)를 사용해 이미지의 지역적인 특성을 잘 잡아냅니다.

 

 

 

CNN은 크게 세 가지 주요 구성 요소로 나눌 수 있습니다.

  • 합성곱층 (Convolutional Layer): 이 층은 이미지에서 특징을 추출하는 데 중요한 역할을 합니다. 필터(또는 커널)라고 불리는 작은 행렬이 이미지와 합성곱 연산을 수행하여 중요한 특징을 추출합니다. 이 과정은 이미지의 특정 영역을 강조하고, 전체 이미지의 구조적인 특성을 학습하는 데 도움이 됩니다.
  • 풀링층 (Pooling Layer): 풀링은 합성곱층에서 추출된 특징을 다운샘플링하여 계산량을 줄이고 중요한 정보만을 남기는 과정입니다. 주로 맥스 풀링(Max Pooling)이나 평균 풀링(Average Pooling)을 사용하여 가장 중요한 특징을 요약합니다.

  • 완전 연결층 (Fully Connected Layer): CNN의 마지막 단계는 완전 연결층으로, 앞서 추출된 특징을 바탕으로 최종적인 분류를 수행합니다. 이 층에서는 각 뉴런이 이전 층의 모든 뉴런과 연결됩니다.

CNN은 다음과 같은 단계로 작동합니다:

  1. 입력 이미지: CNN은 이미지 데이터를 입력으로 받습니다. 예를 들어, 224x224 크기의 RGB 이미지가 있을 수 있습니다.

  2. 합성곱층: 이미지에 필터를 적용하여, 이미지에서 특정 특징(엣지, 질감 등)을 추출합니다. 필터의 크기와 개수에 따라 다양한 특성이 추출될 수 있습니다.

  3. 풀링층: 각 필터에서 추출된 특징을 요약하여 다운샘플링합니다. 풀링은 주로 이미지의 크기를 줄이고 계산 효율성을 높이는 역할을 합니다.

  4. 완전 연결층: 마지막으로, 추출된 특징들을 바탕으로 분류 작업을 수행합니다. 이 층에서 모델은 이미지가 어떤 카테고리에 속하는지 예측합니다.


 

CNN은 다양한 컴퓨터 비전 분야에서 활발히 활용됩니다. 그중 주요한 분야는 다음과 같습니다:

  • 이미지 분류: CNN은 이미지를 여러 클래스 중 하나로 분류하는 데 사용됩니다. 예를 들어, 고양이와 개를 구분하는 이미지 분류 모델에 활용됩니다.

  • 객체 탐지: 이미지 내에서 특정 객체의 위치를 식별하고 분류하는 데 사용됩니다. 이를 통해 자율 주행차나 보안 카메라 시스템에서 객체 인식이 가능합니다.

  • 이미지 세분화(Segmentation): 이미지에서 각 픽셀을 특정 클래스에 할당하여 세부적으로 분석하는 작업입니다. 의학 영상 분석이나 자율 주행차의 도로 인식 등에 사용됩니다.

  • 스타일 변환 및 생성 모델: 스타일 변환, 이미지 생성, 변형 등에 활용됩니다. 예를 들어, GANs(Generative Adversarial Networks)와 결합하여 새로운 이미지를 생성하는 데 쓰이기도 합니다.

 

CNN의 장점

  • 특징 학습 자동화: CNN은 이미지에서 중요한 특징을 자동으로 학습합니다. 사람이 일일이 특징을 설계할 필요 없이 모델이 스스로 학습하기 때문에 더 효율적입니다.

  • 계산 효율성: CNN은 지역적인 특징을 추출하므로 파라미터 수가 적고, 계산량을 줄이는데 유리합니다.

  • 강력한 성능: 특히 대규모 데이터셋에서 뛰어난 성능을 보여, 이미지 인식 및 분석에 매우 효과적입니다.


CNN을 공부해보며 가장 인상 깊었던 부분은 CNN이 자동으로 특징을 학습하고 계산 효율성이 높다는 점이었습니다. 예를 들어, 사람의 개입 없이도 모델이 이미지에서 중요한 정보를 스스로 추출할 수 있다는 점은 매우 놀라웠습니다. 이러한 특징 덕분에 CNN은 방대한 양의 이미지 데이터를 처리할 때 매우 효율적으로 작업을 할 수 있다는 점이 매력적입니다. 또한, 풀링과 합성곱층을 통해 이미지의 세부 사항을 강조하면서도, 불필요한 정보는 제거할 수 있다는 점에서 굉장히 효율적인 데이터 처리 방식이라고 생각했습니다.