Cloud AI - 3. 클라우드 AI 활용 프로젝트 (데이터 수집 및 전처리)

2025. 3. 18. 21:32AI/AI

📌 데이터 수집 및 전처리: 이미지, 텍스트, 음성 데이터 준비 및 클라우드 스토리지 활용

AI 모델을 효과적으로 학습시키기 위해서는 양질의 데이터 수집과 정제된 데이터 전처리 과정이 필수다.
이번 정리에서는 이미지, 텍스트, 음성 데이터를 수집하고 전처리하는 방법 및 클라우드 스토리지를 활용하는 방법을 다룬다.


🔹 1️⃣ 데이터 수집 및 준비 과정

✅ 데이터 수집의 중요성

AI 모델의 성능은 학습 데이터의 품질과 양에 크게 의존한다.
데이터 수집 단계에서 중요한 요소는 다음과 같다.

1. 데이터 출처 및 수집 방법 선택

  • 웹 크롤링, 센서/카메라 데이터, 사용자 생성 데이터 등 활용
  • 공개 데이터셋(Kaggle, Google Dataset Search, AI Commons 등) 활용 가능

2. 데이터 윤리 및 저작권 고려

  • 웹 크롤링 시 라이선스 확인
  • 개인정보가 포함된 데이터 익명화 처리

3. 데이터 저장 및 관리 계획 수립

  • 로컬 저장소 vs 클라우드 스토리지 선택
  • 데이터 분류 및 메타데이터 관리

🔹 2️⃣ 이미지 데이터 준비 및 전처리

✅ 이미지 데이터 수집 방법

  • 웹 크롤링 → Selenium, BeautifulSoup을 이용하여 자동 수집
  • 공개 데이터셋 활용 → Kaggle, ImageNet, Google OpenImages 등
  • 자체 데이터 수집 → 카메라, CCTV, 드론 활용

✅ 이미지 데이터 전처리 과정

전처리 기법 설명
크기 조정 (Resizing) 모델 입력 크기에 맞게 이미지 크기 조정
정규화 (Normalization) 픽셀 값을 01 또는 -11 범위로 변환
데이터 증강 (Augmentation) 회전, 확대, 색상 변화 등 다양한 변형 추가
그레이스케일 변환 (Grayscale) 컬러 데이터를 흑백으로 변환하여 연산량 감소

📌 이미지 데이터 전처리 코드 예제 (OpenCV & TensorFlow 사용)

import cv2
import tensorflow as tf

# 이미지 로드
image = cv2.imread("sample_image.jpg")

# 크기 조정 (224x224)
resized_image = cv2.resize(image, (224, 224))

# 정규화 (0~1 범위로 변환)
normalized_image = resized_image / 255.0

# TensorFlow 텐서 변환
tensor_image = tf.convert_to_tensor(normalized_image, dtype=tf.float32)

print("전처리 완료된 이미지 텐서:", tensor_image.shape)

핵심 포인트

  • 이미지 크기 조정(Resizing) → 모델 입력 크기에 맞춤
  • 정규화(Normalization) → 픽셀 값을 0~1 사이로 변환
  • 데이터 증강(Data Augmentation) 추가 가능

🔹 3️⃣ 텍스트 데이터 준비 및 전처리

✅ 텍스트 데이터 수집 방법

  • 웹 크롤링 → Scrapy, BeautifulSoup을 활용하여 뉴스, 블로그 크롤링
  • 공개 데이터셋 활용 → Hugging Face Datasets, AI Commons
  • 사용자 입력 데이터 → SNS, 챗봇 로그, 이메일 등

✅ 텍스트 데이터 전처리 과정

전처리 기법 설명
토큰화 (Tokenization) 문장을 단어 또는 형태소 단위로 분리
불용어 제거 (Stopwords Removal) 의미 없는 단어(예: "는", "이", "가") 제거
정규화 (Normalization) 대소문자 통합, 특수문자 제거
어간추출 (Stemming) / 표제어 추출 (Lemmatization) "먹었다" → "먹다"로 변환

📌 한국어 텍스트 전처리 코드 (KoNLPy 활용)

from konlpy.tag import Okt
import re

# 한국어 문장 예제
text = "AI 기반 챗봇은 사용자 질문을 이해하고 자동으로 답변합니다."

# 형태소 분석기 초기화
okt = Okt()

# 한국어 불용어 리스트
stopwords_ko = ["은", "는", "이", "가", "을", "를", "의", "에", "와", "과", "도", "에서", "하다", "있다", "없다"]

# 한글 외 문자 제거
text_cleaned = re.sub(r"[^ㄱ-ㅎㅏ-ㅣ가-힣\s]", "", text)

# 형태소 분석 및 불용어 제거
tokens = [word for word in okt.morphs(text_cleaned) if word not in stopwords_ko]

print("전처리된 텍스트:", tokens)

핵심 포인트

  • KoNLPy(Okt) 활용하여 한국어 형태소 분석 적용
  • 불용어 제거 및 정규화 수행

🔹 4️⃣ 음성 데이터 준비 및 전처리

✅ 음성 데이터 수집 방법

  • 공개 음성 데이터셋 활용 → Mozilla Common Voice, LibriSpeech
  • 자체 음성 데이터 녹음 → 마이크를 이용하여 직접 음성 수집
  • 음성 데이터 크롤링 → 유튜브, 팟캐스트 음성 데이터 활용

✅ 음성 데이터 전처리 과정

전처리 기법 설명
샘플링 속도 변환 16kHz 또는 44.1kHz로 변환
노이즈 제거 (Denoising) 배경 소음 제거
음성 특징 추출 (MFCC, Spectrogram) 음성 데이터를 숫자로 변환

📌 음성 데이터 전처리 코드 예제 (Librosa 사용)

import librosa
import numpy as np

# 음성 파일 로드
audio_path = "sample_audio.wav"
y, sr = librosa.load(audio_path, sr=16000)

# MFCC 특징 추출
mfccs = librosa.feature.mfcc(y=y, sr=sr, n_mfcc=13)

print("MFCC 특징 추출 완료:", mfccs.shape)

핵심 포인트

  • 샘플링 속도 조정 (16kHz로 변환)
  • MFCC 특징 추출 → 음성을 AI 모델이 학습할 수 있는 형태로 변환

🔹 5️⃣ 클라우드 스토리지 활용

✅ 클라우드 스토리지 사용 이유

  • 대용량 데이터 저장 및 공유 가능
  • 분산 환경에서 빠른 접근 가능
  • 데이터 백업 및 관리 용이

✅ 대표적인 클라우드 스토리지 서비스

클라우드 서비스 특징
Google Cloud Storage (GCS) AI 프로젝트와 연동이 쉬움
Amazon S3 대규모 데이터 저장 및 빠른 전송 지원
Azure Blob Storage Microsoft 생태계와 통합 가능

📌 Google Cloud Storage에서 데이터 업로드 예제 (Python)

from google.cloud import storage

# GCS 클라이언트 생성
client = storage.Client()
bucket = client.bucket("your-bucket-name")

# 파일 업로드
blob = bucket.blob("dataset/sample_image.jpg")
blob.upload_from_filename("sample_image.jpg")

print("파일 업로드 완료!")

Google Cloud Storage를 활용하여 대량의 이미지, 음성 데이터를 효율적으로 관리 가능


📌 최종 정리

이미지 데이터 → OpenCV, TensorFlow를 활용하여 전처리
텍스트 데이터 → KoNLPy를 활용하여 정제 및 가공
음성 데이터 → Librosa를 활용하여 변환
클라우드 스토리지 → GCS, AWS S3를 활용하여 대용량 데이터 관리