본문 바로가기
AI/AI_HUB

Image Data Preprocessing

by jennyf 2022. 7. 10.

01. 개요 및 이미지 데이터의 기초

우리가 파이썬으로 다루게 될 이미지 파일들은 사실 이산적인 무수한 점(pixel)들로 이루어져 있습니다.

pixel이라고 불리는 이 점들은 화면을 구성하는 가장 기본이 되는 단위입니다.

 

정리해보자면 하나의 이미지 파일은 무수히 많은 픽셀로 구성되어있다는 것을 기억하며 이미지를 처리하는 방식을 살펴봅니다.

 

 

[ 빛의 삼원색 ]

RGB는 빛의 삼원색인 red, green, blue를 이용하여 색을 표현하는 방식입니다. 컬러가 있는 것을 channel이라고 부릅니다.

총 세 채널(R, G, B)로 구성되어있으며, 각 채널은 0 ~ 255의 범위에서 하나의 정수 값을 갖게 되는데, 각 채널의 값을 조절함으로써 다양한 색을 표현할 수 있습니다.

=> 예를 들어 모든 원소가 0 이면, (0, 0, 0) 빛이 전혀 없으므로 검은색이고, 모든 원소가 255(255, 255, 255)이면 모든 빛을 합한 것이므로 흰색입니다.

 

 

이미지는 (width, height, color) 3차원 배열의 구조를 가지고 있으며, RGB 채널의 경우 채널 수는 3입니다.

(255, 0, 0)는 red, (0, 255, 0) 는 green, (0, 0, 255)는 blue를 의미합니다.

 

즉, 색을 담당하는 필터가 포개어져 색을 만들어내는 것처럼 생각하면 됩니다.

 

grey scale 흑백일 때, 사람의 손글씨로 숫자 8을 쓴 이미지는 아래와 같이 2차원 배열로 표현됩니다.

RGB와 달리 채널 수가 하나이므로 0(검은색) ~ 255(흰색)으로 표현된다는 것을 시각적으로 바로 파악할 수 있습니다.

 

 

 

 

02. 이미지 전처리 - PIL Library

파이썬의 이미지 편집 라이브러리를 활용하여 이미지를 수정하고 전처리하는 방법을 공부해보겠습니다.

먼저 이미지 전처리에 사용되는 라이브러리로 PIL(Pillow)를 소개하겠습니다.

 

[ PIL ]

여러 종류의 이미지 파일 포맷을 지원합니다

다양한 이미지 처리 기능 (크기 변형, 필터링, 회전 등)을 제공합니다.

 

.png 파일 이미지를 실제 머신러닝 또는 딥러닝 모델의 input data로 입력하기 위해서는 Numpy 라이브러리의 array 형태로 변환해주어야 하는 경우가 많습니다.

'AI > AI_HUB' 카테고리의 다른 글

Transfer Learning  (0) 2022.07.13
Data Augmentation  (0) 2022.07.13
Batch Normalization and Dropout  (0) 2022.07.13
0713(수)  (0) 2022.07.13
CNN 없이 이미지 분류하기 _Fashion MNIST  (0) 2022.07.10