Search

Style Transfer

대분류
인공지능/데이터
소분류
ML/DL 정리 노트
유형
딥 러닝
부유형
Vision PyTorch
Generative Model
최종 편집 일시
2024/10/27 15:19
생성 일시
2024/10/17 00:18
14 more properties

Neural Style Transfer

스타일 전이 : 콘텐츠 이미지(content image)에 스타일 이미지(style image)의 화풍을 적용해 새로운 이미지를 생성하는 기법
아래 예시는 원본 이미지인 A(이를 콘텐츠 이미지라고 부름)를 기준으로 각 화풍(이를 스타일 이미지라고 부름)에 맞게 스타일을 적용해 새로운 이미지를 만든 예시들이다.

Style Transfer 이론

먼저, 스타일 전이를 적용하려면 사전 훈련된(pre-trained) CNN 모델을 사용해야 한다.
Style Transfer 논문에서는 VGG19 네트워크를 사용했다.
스타일 전이 훈련 시에는 VGG19 네트워크의 가중치는 고정한 뒤 이미지의 픽셀을 직접 변경하면서 훈련한다.
모델 훈련이라고 하면 일반적으로는 가중치를 업데이트하는 걸 말한다.
하지만 스타일 전이에서는 가중치는 고정한 채, 이미지의 픽셀을 변경하면서 업데이트를 한다.
다시 말해 아래와 같은 방식으로 훈련이 된다.

손실함수

랜덤 노이즈 이미지(x)는 콘텐츠 이미지(p)와 스타일 이미지(a)를 결합해 새로운 이미지(result x)를 생성
우선 이미지는 행과 열로 구성돼 있다.
그렇지만 계산을 쉽게 하기 위해 하나의 이미지를 하나의 벡터로 표현(p, a, x 등).
그냥 행, 열을 일렬로 쭉 나열해 벡터로 표현했다고 보면 된다.
노이즈 이미지에서 시작해 콘텐츠 정보와 스타일 정보를 모두 가져오면서 훈련을 한다.
여기서 콘텐츠 손실(L_content)이 줄어든다는 건 콘텐츠의 이미지를 잘 가져왔다는 뜻, 스타일 손실(L_sytle)이 줄어든다는 건 스타일의 화풍을 잘 가져왔다는 말이다.
α는 콘텐츠 손실의 가중치, β는 스타일 손실의 가중치이다.
각 가중치가 클수록 해당 손실값을 더 중요하게 여긴다.
콘텐츠 손실의 가중치(α)와 스타일 손실의 가중치(β) 비율에 따라 생성되는 이미지가 다르다는 말이다.
다시 말해 α가 클수록 콘텐츠의 이미지를 잘 복원한다.
왼쪽 상단 그림의 가중치 비율(α / β)은 10^-4. 스타일 손실 가중치(β)가 콘텐츠 손실 가중치(α)보다 10,000배 크다는 뜻
스타일 손실의 가중치가 크면 클수록 원본 콘텐츠를 확인하기 어렵다.

이미지 재건(Image Reconstruction)

어떤 레이어를 바탕으로 스타일 손실을 잡았는지에 따라 최종 생성된 스타일 이미지가 다르다.
레이어를 많이 포함할수록 스타일(화풍)을 더 잘 재건한다.
뒤쪽 레이어로 잡을수록 원본 이미지의 콘텐츠가 없어진다는 뜻이다.