1. 이미지 데이터를 표현하는 방식: Grayscale, RGB, HSV
1) Grayscale
* 명도를 나타내는 숫자(0 ~ 255)로 표시
- 장점
- 연산량이 작고 속도가 빠름
- 머신러닝, 엣지 검출, thresholding 등에 유리
- CNN(Convolutional Neural Network)에서 전처리 시 자주 사용
- 용도
- 얼굴 인식, 엣지 검출, 필터링 전 단계
- 저장 공간이 중요할 때 (예: CCTV 영상 저장 등)
2) RGB
* Red(0 ~ 255), Green(0 ~ 255), Blue(0 ~ 255)의 3가지 색의 명도로 표시
- 장점
- 현실적인 색상 표현 가능 (우리 눈의 인식 방식에 기반)
- 대부분의 디스플레이, 디지털 카메라, 이미지 파일 포맷이 RGB 기반
- 용도
- 일반 사진/이미지 처리
- OpenCV, PIL 등의 기본 컬러 처리 구조
3) HSV
* 색상(0 ~ 360), 채도(0 ~ 100), 명도(0 ~100)으로 표시
- 장점
- 색상 기반 객체 탐지/필터링에 매우 유용
- 밝기(Value)와 색상(Hue)를 분리할 수 있어, 조명 변화에 강함
- 용도
- 색상 기반 마스킹 (예: 특정 색상의 물체 추적)
- 조명 변화 대응 필요할 때
2. Fully Connected layer, Convolution Layer
1) Fully Connected Network의 한계
- 이미지(H×W×C)를 FC 레이어에 넣으려면 먼저 flatten()으로 1D 벡터로 만들어야 함
- 예: 28×28×1 → 784×1
- 이 과정에서 픽셀 간의 공간적 관계(이웃, 위치 정보)가 완전히 사라짐
- 모델이 “어디에 무엇이 있는가”를 고려하지 못함
2) Convolution Layer의 장점
- 원본 이미지 형태(H×W×C)를 그대로 유지하면서 필터를 이동시키며 연산 수행
- 이때 연산은 로컬 영역을 기준으로 하므로, 위치 정보, 주변 픽셀과의 관계, 형태적 특징을 부분적으로 보존하며 전달
- 여러 층을 지나면서 점점 추상적이지만 위치감 있는 특징(feature)을 추출 가능
3. CNN 원리
1) Convolution Layer – 특징 추출
* 작은 크기의 필터(커널)를 이미지에 슬라이딩하며 합성곱 연산 수행
* 예를 들어, 3×3 필터 하나가 입력 이미지의 국소 영역을 스캔하면서 패턴을 감지함
* 필터는 학습을 통해 특정 특징(예: 수직 엣지, 원형 패턴 등)에 민감하게 반응하도록 최적화됨
2) Fully Connected Layer (FCN) – 분류 판단
* Convolution Layer의 마지막 feature map을 flatten()하여 1차원 벡터로 변환
* 이후 모든 뉴런이 완전히 연결된 Dense Layer를 통과
* 각 노드가 모든 입력 특징을 종합함
* 마지막 출력은 일반적으로 Softmax 또는 Sigmoid를 통해 확률 형태로 나타냄
'AI SOC COURSE > Python (Keras)' 카테고리의 다른 글
Python Course Review - 05. CNN 학습기법 (1) | 2025.04.10 |
---|---|
Python Course Review - 04. MNIST CNN (LeNet) (1) | 2025.04.10 |
Python Course Review - 02. Keras를 이용한 Sequential Model 생성 (1) | 2025.04.09 |
Python Course Review - 01. Machine Learning (0) | 2025.04.09 |
Python Course Review - 00. Machine Learning 개요 (1) | 2025.04.09 |