티스토리 뷰
생성형 AI의 발전에 따라 Deepfake 이미지가 많아지면서 이로 인해 발생하는 문제를 해결하고자 실제 이미지와 Deepfake 이미지를 분류하는 프로젝트를 전공 수업에서 진행하였습니다.
- Dataset 설명
- Preprocessing - Data Augmentation
- Classification using Transfer learning
1. Dataset 설명
https://www.kaggle.com/datasets/manjilkarki/deepfake-and-real-images
deepfake and real images
Detect if any images is real image of deepfake image
www.kaggle.com
위 Kaggle Dataset을 이용하기 위해 Kaggle API token을 업로드하여 데이터셋을 다운로드하였습니다. 총 190,335개의 이미지를 활용하여 Fake와 Real을 높은 정확도로 분류하는 것을 목표로 삼았습니다.
2. Preprocessing - Data Augmentation
이미지 전처리 기법의 필수 요소인 Data Augmentation 기법을 활용했습니다. Data Augmentation 기법은 원본 이미지에 변형을 주어 모델 학습의 과적합을 방지하는 것입니다. 원본 이미지의 선명도를 흐리게 하거나, 상하좌우 뒤틀리게 설정하여 이미지를 다각도로 변경시키는 방법 등이 존재합니다. 중요한 것은 학습 이미지의 개수를 늘리는 것이 아니라, 학습 시마다 원본 이미지를 변형시켜 학습시키는 방법이라는 것입니다.
Data Augmentation에서 가장 중요한 기법은 정규화입니다. 이미지의 색깔에 따라 분포의 모양이 다르다면 모델 입장에서는 학습이 잘 되지 않는 문제점이 있습니다. 이를 정규화를 통해 해결하여 어느 색깔의 벡터 값이 입력으로 들어와도 일정한 분포를 가져 학습할 수 있도록 하는 것이 중요합니다.
3. Classification using Transfer learning
Transfer learning이란 Computer Vision에서 사전학습된 모델을 이용하여 분류하고자 하는 이미지의 특징을 더 잘 추출하여 정확한 분류 패턴을 모델링하는 것입니다. 대량의 데이터로 이미 학습되어 있는 모델을 사용하기 때문에 자신의 분류 모델의 목적에 맞게 조정하는 것이 중요합니다. 이 과정을 이론적으로 Fine tuning(파인튜닝)이라 부릅니다. 전체 모델을 새로 학습시키거나 일부 layer만 고정시키는 방법 등이 있습니다.
프로젝트에서는 pretrained_model.trainable=Fale을 통해 사전학습된 가중치를 사용하지 않고 pretrained model의 입력과 출력을 Dense layer을 활용해 연결시켜줌으로써 분류 모델기에 맞게 조정하였습니다. 어떤 모델을 전이학습으로 사용해야 하는지 성능이 좋은지를 확인하기 위해 모든 모델을 1 에포크 학습시켜 정확도를 확인했습니다. 정확도가 가장 높게 산출된 MobileNetV2를 모델로 사용했습니다.
전체 코드는 https://github.com/hba-sangil/hba-sangil-deep-learning/blob/main/final.ipynb 에 올려두었습니다.
'프로젝트' 카테고리의 다른 글
[Classification] 부동산 허위매물 분류 예측 프로젝트 (0) | 2025.03.09 |
---|---|
[Regression] Used Car Price Prediction (0) | 2025.03.01 |
[Data Visualization] Titanic 데이터 시각화 (0) | 2025.01.22 |
[Time Series Forecasting] FinaceDataReader을 이용한 LSTM 시계열분석 (1) | 2024.06.21 |
- #자연어 처리 #정수 인코딩 #빈도 수 기반
- #attention #deeplearning
- 로지스틱 회귀 #오즈비 #최대우도추정법 #머신러닝
- 자연어 처리 #정제 #정규표현식 #어간 추출 #표제어 추출
- nlp #토큰화 #nltk #konply
- # 할인행사 #counter #딕셔너리 #프로그래머스
- 파이썬 #시각화 #matplotlib
- #물고기 종류별 대어 찾기 #즐겨찾기가 가장 많은 식당 정보 출력하기 #mysql #programmers
- pca #주성분분석 #특이값분해 #고유값분해 #공분산행렬 #차원의 저주
- seaborn #데이터시각화 #타이타닉
- randomforest #bagging #머신러닝 #하이퍼파라미터 튜닝
- python #프로그래머스 #겹치는선분의길이
- 머신러닝 #project #classification #dacon
- html #javascript #구구단 출력
- # 프로그래머스 # 카펫 # 완전탐색
- subquery #sql 코딩테스트
- 머신러닝 #lightgbm #goss #ebf
- 잘라서 배열로 저장하기 #2차원으로 만들기
- #opencv #이미지 읽기 #이미지 제작 #관심영역 지정 #스레시홀딩
- #tf idf
- #opencv #이미지 연산 #합성
- 머신러닝 #xgboost #
- #python #프로그래머스 #외계어사전 #itertools #순열과조합
- #프로그래머스 #안전지대 #시뮬레이션
- 프로젝트 #머신러닝 #regression #eda #preprocessing #modeling
- 파이썬 #코딩테스트 #프로그래머스 #스택 #큐
- # 프로그래머스 #연속된 부분수열의 합 #이중 포인터 #누적합
- python #프로그래머스 #리스트 #인덱싱
- #seq2seq #encoder #decoder #teacher forcing
- python #deque #프로그래머스 #공 던지기 #문자열 계산하기 #코딩테스트