자율주행

Day 62: 합성곱, 풀링 연산 실습

Tech Knowledge Note 2025. 10. 28. 21:00
반응형

🧠 1. CNN의 핵심 연산, 직접 경험해보기

이전 글에서 우리는 CNN(합성곱 신경망)의 기본 구조를 살펴봤다.
오늘은 그 핵심인 합성곱(Convolution)풀링(Pooling) 연산이 실제로 어떻게 작동하는지,
직관적으로 이해할 수 있도록 예시와 함께 실습 형태로 알아본다.

CNN의 강점은 이미지 속 특징을 자동으로 추출한다는 점이다.
그 중심에 있는 합성곱과 풀링은 “이미지 속 중요한 부분만 뽑아내고 압축하는 과정”이다.

합성곱, 풀링 연산 실습


🔹 2. 합성곱(Convolution) 연산의 원리

합성곱은 이미지의 작은 영역(커널, kernel) 을 움직이며 특징을 추출하는 과정이다.
커널은 일종의 작은 창(window)으로, 픽셀의 패턴을 탐색한다.

예를 들어, 3×3 크기의 커널을 생각해보자.
커널이 이미지 위를 한 칸씩 이동하면서 각 위치의 픽셀과 곱셈 후 더한 값을 새로운 이미지로 만든다.
이 결과를 특징 맵(Feature Map) 이라고 한다.

📘 핵심 포인트

  • 커널은 엣지(Edge), 윤곽선, 패턴 등을 탐지하는 역할을 한다.
  • CNN은 여러 개의 커널을 사용하여 다양한 특징을 동시에 학습한다.
  • 합성곱 연산 후에는 ReLU 활성화 함수를 적용해 비선형성을 추가한다.

💡 예시
밝은 부분과 어두운 부분의 경계(엣지)를 찾는 커널을 적용하면,
새로운 Feature Map에는 이미지의 윤곽선이 두드러지게 나타난다.


🔹 3. 스트라이드(Strides)와 패딩(Padding)

  • 스트라이드(Strides): 커널이 이동하는 간격을 의미한다.
    예를 들어, stride=1이면 한 칸씩 이동하지만, stride=2면 두 칸씩 건너뛴다.
    → 스트라이드가 클수록 Feature Map의 크기가 작아진다.
  • 패딩(Padding): 이미지의 가장자리를 보존하기 위해 여백을 추가하는 기법이다.
    → “SAME Padding”은 원래 크기를 유지하고, “VALID Padding”은 여백 없이 축소한다.

이 두 요소는 CNN의 출력 크기와 학습 효율을 결정하는 중요한 파라미터다.


🔹 4. 풀링(Pooling) 연산의 원리

풀링은 Feature Map의 크기를 줄이는 과정이다.
즉, 가장 중요한 특징만 남기고 세부적인 노이즈를 제거하는 단계다.

대표적인 방식은 Max Pooling 이다.

  • 일정 영역(예: 2×2)에서 가장 큰 값을 선택한다.
  • 가장 강하게 반응한 특징을 남기기 때문에,
    약간의 위치 변화나 회전에도 인식 성능이 유지된다.

📘 예시
2×2 영역마다 최댓값을 취하면,
Feature Map의 크기는 절반으로 줄어들고 주요 특징만 남는다.
이로써 모델은 계산량을 줄이면서도 불변성(Invariance) 을 확보한다.


🔹 5. 간단한 실습 예시 (개념적)

아래는 4×4 이미지에 2×2 커널을 적용하는 예이다.

입력 이미지 커널(엣지 탐지)출력  Feature Map
1 2 3 0 1 -1 2 1
0 1 2 3 -1 1 1 0

이런 단순 연산을 여러 층으로 반복하면,
CNN은 이미지의 세부 패턴에서부터 전체적인 구조까지 자동으로 학습하게 된다.


🔹 6. 합성곱 + 풀링의 흐름 요약

1️⃣ 입력 이미지 → 2️⃣ 합성곱(특징 추출) → 3️⃣ ReLU(비선형성) → 4️⃣ 풀링(크기 축소)
이 과정을 반복하면서 CNN은 점점 더 추상적인 특징을 학습한다.


🚗 7. 자율주행에서의 예시 적용

자율주행 카메라 영상에서 CNN은 다음과 같은 특징을 추출한다.

  • 합성곱층: 차선, 도로 경계선, 차량 형태 인식
  • 풀링층: 노이즈 제거, 불필요한 세부 정보 축소
  • 최종 분류층: 보행자, 차량, 신호등 등으로 분류

CNN이 단순한 영상 필터가 아니라,
“도로의 의미를 이해하는 뇌”로 작동하는 이유가 여기에 있다.


✨ 8. 정리하며

오늘은 CNN의 핵심 연산인 합성곱과 풀링을 직접 이해해보았다.
이 두 과정은 단순히 픽셀을 계산하는 것이 아니라,
이미지의 의미를 학습하는 과정이다.

다음 단계에서는 실제 CNN을 이용해
차량/보행자 이미지를 분류하는 실습을 진행할 것이다.

반응형

📅 다음 글 예고:

👉 [Day 63: 차량/보행자 이미지 분류 CNN 구현]
“실제 데이터를 통해 CNN 모델을 구축하고, 자율주행의 눈을 직접 만들어보자!”


반응형