안녕하세요. KDST 박민철입니다.
이번 공유 내용에서는, 최근 초해상도 영상 특별히 파노라마 영상 등을 생성하기 위해 기존 생성 모델의 표현 범위의 한계로 인하여 다수의 생성 모델을 필요로하는 경우 크기가 제한된 생성된 영상들에 대한 상호간 짜깁기 (Montage)에서 표현 정보의 coherency를 잘 유지하려는 목적을 다루었던 방법론을 소개하고자 합니다.
소개드릴 NeuIPS 2023의 SyncDiffusion: Coherent Montage via Synchronized Joint Diffusions는 이 문제를 적극적으로 다루고 있습니다. 구체적으로, 텍스트 prompt가 주어지고, 해당 prompt를 표현하는 파노라마 영상을 생성할 때, 여러 diffusion 모델들을 도입하여 사용하는 경우 생성된 이미지들의 perceptual coherency를 만족시키기에 어려움이 있었다는 동기에서 시작합니다.
예를 들어, 위의 그림과 같이, "A photo of a rock concert"에 대한 파노라마 영상을 제작할 때, 1번과 2번 열에 표현된 파노라마 영상은 반복적인 패턴이 나타난다거나, global coherence를 얻는 데 어려움이 있는 반면, 본 연구가 제안하는 3번 열의 SyncDiffusion은 여러 diffusion 모델의 reverse process에서 step마다 denoised 이미지를 조정하는 방법을 고민하여 문제를 적극적으로 풀고자 노력한 것을 확인할 수 있습니다.
직관적으로, global coherency를 위한 이미지들 간 조정은 특정 perceptural similarity loss를 바탕으로 합니다. 그동안 컴퓨터 비전 분야에서 널리 활용된 LPIPS (Learned Perceptual Image Patch Similarity) 손실은 기계적인 관점에의 인지 유사도를 상당히 잘 표현한다고 이해되어 왔습니다. 이와 같은 맥락에서 본 연구는 여러 diffusion 모델에서 생성된 이미지를 LPIPS 기반으로 perceptual similarity를 적극적으로 minimization하기 위해 노력했다고 이해할 수 있습니다.
Diffusion 동작 방식에 대한 preliminary context는 문헌과 정리된 글들이 많기 때문에 생략하도록 하겠습니다. 더 구체적으로, DDIM 동작 방식을 이해하고 있다는 전제하에, 파노라마 이미지 한 장을 생성한다고 생각해 봅시다.
굉장히 방대한 크기의 파노라마 이미지가 채널을 무시하고 (H x W)와 같을 때, 해당 이미지의 subarea의 크기가 (h x w)라 한다면, 우리는 쉽게 (h x w) 크기의 window를 가진 이미지들의 합집합이 파노라마 이미지 (H x W)가 된다고 생각할 수 있습니다.
이 때, S(x_t, t, denoisor)가 diffusion time t 시점의 이미지 x와 diffusion time t 그리고, denoisor를 input으로 받아, t-1 시점의 이미지 x_{t-1}를 추정하는 함수라고 한다면, SyncDiffusion의 알고리즘은 아래와 같이 정리할 수 있습니다.
DenoisingOneStep을 직관적으로 순서대로 살펴보면,
1. diffusion의 t번째 reverse process에서 N개의 receptive field를 갖는 이미지의 집합 그러니까, 위에서 언급한 i개의 (h x w)크기의 파편화된 이미지의 묶음이 인풋으로 주어질 때, SyncDiffusion 함수를 통해 집합 내 이미지들 간 LPIPS를 측정하여 (이 때, default로 0번 째 이미지가 anchoring (target)되어 사용되었다고 합니다.) 각각의 파편화된 이미지의 perceptuality를 가깝게 update하여 돌려줍니다.
1.1. 여기에서 중요한 특징은 t시점의 이미지는 noisy하기 때문에, t=0 시점의 이미지를 예측하여 추정된 이미지들 간의 LPIPS를 이용했다고 합니다 (DDIM sampling 참고).
2. 반환된 묶음 내 N개의 이미지들에 대해 각각 S를 처리 (t-1의 이미지 추정)합니다.
3. MultiDiffusion 의 inverse 함수 T를 통해 (h x w)를 (H x W)로 scale 확장 (자기 자신의 바깥 영역에 대한 inverse 함수 처리)을 처리하며, N개의 이미지들에 대한 파노라마 영상의 expectation을 얻습니다. (이 때, normalization을 m이라는 마스크의 합으로 볼 수 있는데, 각 이미지가 바라보는 영역은 1 그 바깥의 영역은 0 입니다.)
위와 같이 동작하는 DenoisingOneStep을 diffusion time step t=0,...,T만큼 반복합니다.
Experiment results
논문은 T=45를 적용하였으며, window size (subarea size)는 (h x w x c)=(512x512x3)를 고려하였고, stable diffusion 2.0을 사용했기 때문에 이는 latent space에서 (64x64x4)였다고 합니다. 추가적인 1채널은 encoded diffusion time이라고 볼 수 있습니다.
파노라마 영상은 512x3072를 제작하였으며 이는 latent space에서 (64x384)에 해당하기 때문에 21개의 winodw를 고려했습니다.
양적 평가로는 아래의 다양한 메트릭을 사용하였으며,
1. Intra-LPIPS, Intra-Style-L (Coherence)
2. Mean-GIQA (Fidelity)
3. FID, KID (Fidelity & Diversity)
4. Mean-CLIP-S (Compatibility with the Input Prompt)
수행한 태스크는 다음과 같습니다
1. Layout-Guided Image Generation
2. Conditional Image Generation
3. 360-degree Panorama Generation
파노라마 이미지를 생성하는 데 있어서, 현존하는 정량 측정 도구와 질적 평가간의 차이가 있는 것으로 보입니다.
Gradient descent 계수 w에 대한 정량 평가는 아래와 같고 (정량 평가에서는 w=10, 20을 사용하였습니다.)
Gradient descent 계수 w에 대한 질적 평가는 아래와 같습니다. (질적 평가에서는 w=20을 채택하였습니다.)
Perceptual similarity loss 변화에 따른 질적 평가는 아래와 같습니다.
정량 평가의 괴리 때문인지 유저 스터디도 포함하였습니다.
수행한 3가지 태스크의 예시 피겨가 되겠습니다.
Prompt에 따라 realistic 파노라마를 생성할 때 limitation도 존재한다고 설명하고 있습니다.
상당히 많은 질적 결과를 첨부하였는데, 잠깐 살펴보겠습니다.
눈이 참 즐거웠던 연구 결과인데요. 다수 생성 모델을 도입하여 하나의 global conherent 이미지를 생성할 때, 참고할만한 쉽고 간단한 방법론이라고 생각합니다.
추가적으로 궁금한 부분은 논문을 참조 부탁드리며, 질문을 댓글로 남겨주시면 함께 고민할 좋은 기회가 될 것으로 생각합니다.
감사합니다.