일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 정보처리기사실기
- 데이터입출력구현
- 중학1-1
- 정보처리기사필기
- 중학수학
- 컴퓨터구조
- JSP/Servlet
- 자바 실습
- 딥러닝
- C++
- 운영체제
- 연습문제
- 영어공부
- numpy/pandas
- 파이썬
- 데이터베이스
- 데이터분석
- SQL
- 코딩테스트
- CNN
- CSS
- 텍스트마이닝
- 파이썬라이브러리
- 머신러닝
- pandas
- 정수와유리수
- html/css
- 컴퓨터비전
- 혼공머신
- 자바
- Today
- Total
클라이언트/ 서버/ 엔지니어 "게임 개발자"를 향한 매일의 공부일지
합성곱 신경망 15 - Style Transfer 1 : 스타일 변환 이미지 출력 및 구조 확인하기 본문
스타일 변환에 대해서 학습해 보기로 하자. 스타일 변환은 두 장의 서로 다른 이미지를 사용하여 새로운 이미지를 합성하는 방법이다. 스타일 전이라고도 부른다. 합성곱 신경망을 통해 각 레이어에서 추출되는 다양한 특징을 이용한다.
처음에 입력으로 주어지는 두 장의 이미지 중에서 하나는 콘텐츠 이미지로써 이미지의 구조와 형태를 나타내는 콘텐츠를 추출한다. 다른 이미지는 스타일 이미지로써 이미지 고유의 스타일만을 추출한다.
이처럼 각기 다른 두 장의 이미지에서 출출된 콘텐츠와 스타일을 하나로 결합하면 콘텐츠 이미지의 기본 형태를 유지하면서 스타일이 변환된 새로운 이미지를 얻을 수 있다.
스타일 변환 실습해보기
사전 학습된 모델을 활용해 스타일 변환을 구현한다. 처음부터 모델을 학습하려면 많은 그림 데이터와 오랜 학습이 필요하기 때문이다.
먼저 실습에 필요한 라이브러리를 불러온다. 이미지 처리를 위해서 Open CV를 사용한다.
자료실에서 다운로드한 서울 남산타워 사진(contents.jftf) 파일을 구글 코랩 폴더에 업로드한다. 그리고 업로드한 이미지를 읽고 (224, 224) 크기로 사이즈를 조정한 뒤 이미지를 출력한다.
스타일을 추출할 고흐 그림(style.jpg) 파일을 구글 코랩 폴더에 업로드한다. 마찬가지로 이미지 사이즈를 조정하고 화면에 출력한다.
사전 학습 모델로 VGG16을 사용한다. 단순한 구조를 가지고 있어서 활용도가 매우 높은 모델이다.
Contents Loss는 변환할 입력 이미지를 사전 학습 모델에 넣었을 때 중간 층에서 나온 출력 값과 콘텐츠 이미지를 모델에 넣었을 때 같은 층의 출력 값 사이의 오차(MSE)로 구한다. 다음 코드와 같이 중간 출력을 4개 가져온다.
학습을 마치고
코드가 복잡하기는 하지만 그래도 어느 정도 이해할 수 있었다. 지금은 이런 게 있구나 하고 넘어가려고 한다. 이제 CNN 공부도 얼마 남지 않았다. 오늘 컨퍼런스 내용을 정리해보려고 했는데 아직은 정리할 마음이 생기지 않아 다음으로 미루기로 했다.
'인공지능 > 딥러닝' 카테고리의 다른 글
합성곱 신경망 17 - Grad CAM에 대하여 (0) | 2024.11.03 |
---|---|
합성곱 신경망 16 - Style Transfer 2 : 스타일 변환으로 출력된 다양한 이미지 확인하기 (0) | 2024.11.03 |
합성곱 신경망 14 - GAN(생성적 적대 신경망) 동영상 파일로 만들기 (1) | 2024.11.03 |
합성곱 신경망 13 - Knowledge Distillation (0) | 2024.11.03 |
합성곱 신경망 12 - 이미지 분할(Segmentation) (1) | 2024.11.03 |