0. Abstract
- 멀티모달 이미지 인페인팅 (Multi-modal Image Inpainting) → 인페인팅 되는 콘텐츠에 대해 더욱 유연하고 유용한 제어를 제공
- e.g. 물체에 대한 더욱 풍성한 특징을 설명하기 위해 텍스트 프롬프트를 사용할 수 있으며 마스크 (Mask)는 인페인팅 되는 물체의 모양을 제한하는데 사용
- 본 논문에서는 새로운 확산 (Diffusion) 기반 모델인 SmartBrush를 제안 → 텍스트와 모양 (shape)에 대한 가이드를 사용하여 빈 영역을 물체로 채워줌
- DALL-E 2나 Stable Diffusion과 같은 이전의 기법들은 텍스트 기반 인페인팅은 가능하지만 모양에 대한 가이드는 제공하지 않아서 생성된 물체 주변의 배경 텍스쳐를 변경하는 등의 결과를 보임
- 본 논문의 모델은 텍스트와 모양에 대한 가이드를 통합하여 정확한 제어가 가능하도록 함
- 배경을 잘 보존하기 위해 새로운 학습과 샘플링 전략을 제안 → 물체의 마스크 예측을 통해 확산 모델의 U-net을 강화
- 마지막으로 멀티 태스크 학습 전략을 사용 → 인페인팅과 text-to-image 생성을 동시에 학습
1. Introduction
- 본 논문에서 텍스트 설명과 인페인팅 될 물체의 모양을 조건으로 멀티모달 물체 인페인팅을 수행하는 방법을 제안 → 그림 1 참고
- 확산 모델 (e.g. Stable Diffusion, DALL-E, Imagen)은 인페인팅 문제에 적용될 수 있음
- 배경 영역의 랜덤 노이즈를 확산의 역 과정 (reverse process) 동안 원래 이미지의 노이지 한 버전으로 대체
- 그러나 이는 모델이 샘플링 동안 전체적인 이미지의 맥락을 볼 수 없으므로 원치 않는 결과를 도출할 수 있음
- 이를 해결하기 위해 GLIDE나 Stable Inpainting은 이미지의 일부를 랜덤하게 지우고 관련된 이미지 캡션을 조건으로 지워진 영역을 복원하도록 모델에 대한 파인튜닝을 수행
- 이미지 인페인팅에서 발생할 수 있는 문제들
- Text Misalignment
- 삭제된 영역 (로컬 컨텐츠)와 전역적인 텍스트 설명 간의 의미적인 불일치에 의해 텍스트 프롬프트를 따르는 것이 아니라 배경으로 마스킹 된 영역을 채우는 결과를 만들 수 있음
- Mask Misalignment
- 멀티모달 이미지 인페인팅을 수행하기 위한 한가지 방법은 강력한 언어-비전 모델을 사용하는 것 (e.g. CLIP)
- Blended diffusion은 CLIP을 사용하여 이미지 임베딩과 입력 텍스트 임베딩 간의 차이를 계산 → 이 차이를 사전학습된 확산 모델의 샘플링 과정에 주입
- 그러나 CLIP 모델은 전역적이고 고차원의 이미지 특징을 추출하도록 학습됨 → 주어진 마스크에 따라 물체를 생성하는 방향으로 학습되지 않음 (그림 1의 Blended Diffusion 참고)
- Background Preservation
- 그림 1의 아랫줄에서 볼 수 있듯이 인페인팅 된 물체의 주변 배경에 왜곡을 생성
- Text Misalignment
- 이런 문제들을 해결하기 위해 입력 마스크의 정밀도 계수 (Precision Factor)를 사용
- 마스크 만을 입력으로 하는 것이 아니라 해당 마스크의 모양이 인페인팅 된 물체와 얼마나 가까운지를 나타내는 정보를 사용
- 이를 위해 정확한 인스턴스 마스크에 가우시안 블러를 적용하여 미세한 (Fine) 마스크부터 거친 (Coarse) 마스크까지 다양한 유형의 마스크를 생성하고 마스크와 정밀도 계수를 사용하여 확산 모델을 학습
- 해당 세팅에서는 거친 마스크를 사용하는 경우 해당 마스크 내부 어딘가에 원하는 물체가 포함되도록 하며 미세한 마스크를 사용하는 경우 물체의 모양을 정확히 제공하도록 함
- 여기서 중요한 특성 하나는 바운딩 박스와 같이 거친 마스크의 경우 인페인팅 된 영역 내부의 배경이 원본 이미지의 배경을 유지해야 한다는 것
- 이를 달성하기 위해 본 논문은 모델이 마스킹 영역을 인페인팅 하도록 할 뿐 아니라 정규화 손실 (Regularization loss)을 사용하여 생성할 물체의 인스턴스 마스크를 예측하도록 함
- 테스트 시에는 거친 마스크를 예측된 마스크로 대체하여 샘플링 동안 최대한 배경이 유지되도록 함 (그림 1의 두번째 행 참고)
- 본 논문의 모델을 몇몇의 어려운 물체 인페인팅 문제에서 평가 → 본 논문의 기법이 몇몇 물체 인페인팅 데이터 셋에서 SOTA 성능 달성
- DALL-E 2, Stable Inpainting 등과 성능 비교
- 본 논문의 contribution
- 텍스트와 모양으로 가이드하는 물체 인페인팅 확산 모델을 제안 → 다른 정밀도의 물체 마스크를 조건으로 하여 물체 인페인팅을 위한 새로운 단계의 제어 달성
- 거친 입력 마스크에서 이미지 배경을 유지하기 위해 모델은 물체의 마스크를 예측하도록 학습됨 → 합성된 물체의 주변을 기존 배경으로 유지하도록 함
- 멀티 태스크 학습 전략 사용 → 물체 인페인팅과 text-to-image 생성을 동시에 학습
2. Preliminary: Diffusion Model
- 입력 이미지 $x_0$가 주어졌을 때 순방향 확산 Markov process를 통해 이미지에 scheduled variance $\beta_t$를 통해 시간 스텝 $t$만큼 노이즈를 추가
- $T$는 전체 스텝의 수
- 만약 $T \rightarrow \infin$이면 출력 $x_t$는 등방성 가우시안 (Isotropic Gaussian)이 됨
- 정의된 Markov process는 우리가 $x_t$를 closed form으로 얻을 수 있도록 함
- 랜덤 노이즈로부터 이미지를 생성하기 위해 확산의 과정을 역방향으로 수행하도록 학습
- 신경망 네트워크 $p_{\theta}$를 학습하여 조건부 분포를 근사하도록 함
-
- $\mu_{\theta}$는 식 (2)에서 얻어진 $x_{t-1} = \frac{1}{\sqrt{a_t}} (x_t - \frac{1-\alpha_t}{\sqrt{1-\bar{\alpha}_t} \epsilon_t})$를 예측하도록 학습됨
- 우리는 이미 학습 중에 $x_t$를 가지고 있으므로 $\mu_\theta$를 학습하는 대신 $\epsilon_t$를 예측하기 위해 $\epsilon_{\theta}$를 학습할 수 있음 → 확산 모델 학습을 위한 목적함수가 아래와 같음
- 테스트시에는 랜덤 노이즈 $x_T \sim \mathcal{N}(0,I)$부터 시작해서 반복적으로 모델 $\epsilon_\theta$를 적용하여 $t=0$이 될 때까지 $x_t$로부터 $x_{t-1}$을 취득
- DDIM, PNDM 등 더욱 효율적인 샘플링 기법을 사용하여 샘플링 속도를 증가시키고 classifier free guidance를 사용하여 샘플의 품질을 향상시킴
- 조건부 확산 모델 (e.g. text-to-image 와 인페인팅 모델)의 조건부 정보는 손실 함수의 변화 없이 네트워크 $\epsilon_{\theta}$에 입력될 수 있음
- 모델은 더 높은 품질의 조건부 이미지를 생성하기 위해 조건을 잘 사용하도록 학습됨
3. Our Approach
- 이미지 $x$, 텍스트 프롬프트 $d$, 바이너리 마스크 $m$ ($x$에서 변경되어야 할 영역)이 주어졌을 때 우리의 목표는 이미지 $\widetilde{x}$를 생성하는 것 → $\widetilde{x}$는 입력 $x$와 동일해야함
- 마스크 영역 안에 생성된 $\widetilde{x} \odot m$은 텍스트 프롬프트 $d$와 마스크 $m$과 잘 관련되어야함
3.1. Text and Shape Guided Diffusion
- 본 논문의 기법은 이미지 내에 존재하는 인스턴스로부터의 텍스트나 모양 정보를 사용
- 해당 데이터셋들은 주석이 달린 마스크들 $\{m_i\}_{i=1}^N$을 포함하며 숫자 $N$은 주석의 수이고 각 마스킹 영역 $x \odot m_i$는 하나의 물체만을 포함
- 각 마스크에 대해서는 관련된 클래스 라벨을 가짐 → e.g. 모자, 고양이, …
- 순방향 과정에서는 이미지 $x$에 대해 랜덤하게 segmentation 마스크 $m$을 그리고 이에 대한 클래스 텍스트인 라벨 $c$를 정의
- $x_0 = x$로 정의하고 모든 픽셀이 아니라 마스크 영역에만 노이즈를 추가
- $\epsilon \sim \mathcal{N} (0,I)$이고 $t$는 순방향 과정의 시간 스텝
- $x_t, m, c$를 모델의 입력으로 하여 모델이 배경의 정보를 사용하면서 마스킹된 영역 $x_0 \odot m$에 대상을 생성하도록 함 → 노이지한 이미지인 $x_t$로부터 노이즈 $\epsilon$를 예측하도록 네트워크 $\epsilon_\theta$를 학습
- 추론시에는 마스킹 영역에 랜덤 가우시안 노이즈를 생성 → $x_T = \epsilon \odot m + x_0 \odot (1-m)$
- $T$는 샘플링 스텝의 수
- 그리고 확산 과정을 역으로 수행하며 인페인팅 된 결과 $x_0$를 학습
3.2. Shape Precision Control
- 만약 정확한 인스턴스 마스크를 학습을 위한 마스크로 사용하는 경우 모델은 정확히 입력 마스크의 모양만을 따르도록 학습됨
- 사용자가 정확한 마스크나 (e.g. 고양이의 모양을 정확히 따르는 마스크) 거친 마스크 (e.g. 바운딩 박스)를 사용하는 모든 경우를 커버하기 위해 다른 정밀도로 마스크를 생성하고 사용
- 이를 위해 학습 중에 랜덤하게 원본 마스크의 형태를 변형
- 정확한 인스턴스 마스크 $m$이 있을 때 마스크 정밀도 지표 $s \sim [0, S]$를 사용하고 해당 지표를 위한 파라미터 정의
- $k_s$는 가우시안 커널 사이즈를 나타내며 $\sigma_s$는 커널의 표준편차를 나타냄
- 만약 $s=0$이면 마스크는 변경되지 않고 정확한 인스턴스 마스크를 사용
- 만약 $s=S$이면 마스크 $m_s$는 인스턴스 마스크 $m$에 대한 바운딩 박스가 될 것 → 상세한 모양의 정보를 잃게 됨
- 학습 중에 각 학습 샘플 (물체)을 위해 세밀한 마스크부터 거친 마스크까지 마스크의 세트 $\{m_s, s\}$를 사용하고 정밀도 지표 $s$로 확산 모델의 조건으로 사용
- 마스크의 샘플들은 그림 5에서 살펴볼 수 있음
3.3. Background Preservation
- 추론 동안 확산 모델은 마스킹 된 이미지에 대해 디노이징을 수행하고 주어진 텍스트 프롬프트에 따라 물체를 생성
- 결과적으로 입력 마스크가 거친 경우 마스킹 영역의 배경이 변하게 됨
- 예를 들어 네모난 마스킹 영역 안에 고양이를 만든다고 할 때 네모 박스 영역안에 생성할 고양이 외에 다른 픽셀들도 변함
- 이상적으로는 배경을 보존해야하지만 거친 마스크 내부의 어디에 모델이 원하는 물체를 생성해야하는지 알 수 없음
- 이 문제를 해결하기 위해 마스크 정밀도 정보를 사용
- 확산 네트워크가 거친 마스크 $m_s$로부터 정확한 인스턴스 마스크 $m$을 예측하도록 확산 네트워크를 학습
-
- $H$는 segmentation을 위한 적절한 어떤 기준도 될 수 있으며 본 논문에서는 DICE 손실함수를 사용
- $i.e. H(X,Y)=1-\frac{2|X \bigcap Y|}{|X| + |Y|}$
- 확산 모델에 추가적인 출력채널을 추가 → 인스턴스 마스크의 예측을 포함하도록 함
- 추론 동안 확산 모델의 예측을 통해 거친 마스크 $m_s$ 내부에 물체를 예측하도록 함
- 먼저 거친 마스크 $m_s$를 확산 모델에 입력하고 디노이징 수행을 위해서 예측 마스크를 도출
- 예측된 마스크로 마스크 영역 내 어디에 물체가 생성될지 알 수 있다면 생성될 물체 주변의 배경을 보존하는데 도움이 될 수 있음
3.4. Training Strategy
- 식 (8), (9)를 결합하여 최종 학습 목적 함수를 다음과 같이 정의
- $\lambda$는 두 손실함수 간의 균형을 설정하는 하이퍼파라미터로 본 논문에서는 $\lambda=0.01$로 설정
- 본 모델은 사전학습 된 text-to-image 생성 모델을 기반으로 함 (e.g. Stable Diffusion, Imagen) → 학습 속도 향상 (Stable Diffusion text-to-image 모델 v1.2를 기반으로 파인튜닝 수행)
- 조건을 사용하며 (그림 2) 손실함수는 $\mathcal{L}_{total}$ (식 10)을 사용
- 모델이 단일 단어와 짧은 문장 텍스트 모두에 대응할 수 있도록 적용
- 텍스트 불일치 (text misalignment)를 피하고 로컬 마스크 컨텐츠와 텍스트 설명을 일치시키기 위해 segmentation과 이에 해당하는 라벨을 사용
- 하지만 경험적으로 이런 카테고리 텍스트만을 사용하는 것은 성능 저하의 원인이 될 수 있음
- 그러므로 BLIP 모델을 사용 → 이미지에 대해 더 풍부하고 긴 캡션을 사용
- 학습 동안 랜덤하게 해당 마스크에 대해 segmentation 라벨이나 BLIP 캡션을 사용
- 이에 따라 모델은 단일 단어 텍스트와 짧은 문장 텍스트를 모두 추론에 사용할 수 있음
- 멀티 태스크 학습
- 주요한 인페인팅 문제와 기반이 되는 text-to-image 생성 문제를 동시에 학습하는 멀티 태스크 학습 전략을 제안
- LAION-Aesthetics v2 5+ subset의 이미지/텍스트 쌍 사용
- text-to-image를 위해 입력 마스크가 전체 이미지를 덮도록 하고 이를 특별한 형태의 인페인팅 케이스로 정의
4. Experimental Evaluation
4.1. Experimental Setup
- 식 10의 전체 손실함수에서 $\lambda=0.01$로 설정하고 배치 크기는 1024로 설정
- 인페인팅 문제와 text-to-image 생성 문제의 비율은 각각 80% - 20%로 설정
- A100 GPU 8개로 20K 스텝만큼 학습 (Stable Inpainting의 경우 A100 GPU 256개로 440K 스텝만큼 학습했음)
Baselines
- 현재 최고 성능의 이미지 인페인팅 기법들을 베이스라인으로 사용 → Blended Diffusion, GLIDE, Stable Diffusion, Stable Inpainting, DALL-E 2
Testing Datasets
- 두개의 유명한 segmentation 데이터셋들 통해 성능 평가 → OpenImages, MSCOCO
- MSCOCO 테스트 데이터의 각 이미지에서 2개의 마스크를 샘플링 → 총 테스트 이미지의 수는 9,311개
- OpenImages에서는 512 보다 큰 해상도의 이미지들만 사용하고 1개의 마스크 사용 → 13,400개
- 입력 프롬프트는 segmentation 클래스 라벨을 그대로 사용
Evaluation Metrics
- 첫번째 성능 평가 지표 → Frechet Inception Distance (FID)
- 하지만 전역적인 (Global) FID는 이미지의 일부인 마스크 영역에 대한 생성 성능 평가에는 적절하지 않음
- 이에 따라 바운딩 박스로 이미지를 자르고 지역적인 부분의 FID를 계산하는 Local FID를 사용
- 두번째 성능 지표 → CLIP Score
- 텍스트와 이미지의 일치도 평가
4.2. Text and Shape Guided Inpainting
- 제안된 SmartBrush는 텍스트와 모양에 대한 가이드를 기반으로 물체 뿐 아니라 “석양에 물든 하늘”과 같은 일반적인 장면도 인페인팅 가능
- 물체 인페인팅에 대한 2가지 사용 예시를 고려
- 정확한 물체 마스크
- 바운딩 박스 마스크
- 1의 경우 주어진 마스크의 모양대로 물체를 생성할 것으로 기대되고 2의 경우 물체가 박스 안에만 있도록 하고 모양은 규정하지 않음
- 정량적인 결과는 표 1, 표 2를 통해 살펴볼 수 있음
- SmartBrush가 두 데이터셋에 대해 모든 평가 기준에서 가장 뛰어난 성능을 보임
- 그림 3은 베이스라인 모델들과 SmartBrush의 인페인팅 예시를 시각화 한 결과
- Amazon Mechanical Turk를 통해 유저 스터디 수행
- 300명 이상의 작업자가 다음에 질문들에 대해 응답
- 어떤 결과가 물체의 마스크를 가장 잘 따랐는가
- 어떤 결과가 입력 텍스트 설명을 가장 잘 따랐는가?
- 어떤 결과가 가장 자연스럽고 실제적으로 보이는가?
- 조사의 결과는 그림 4에서 살펴볼 수 있음
- 50% 이상의 사용자가 각 질문에 대해 본 논문의 모델을 최고로 선정
- 300명 이상의 작업자가 다음에 질문들에 대해 응답
4.3. Mask Precision Control
- 실생활 문제에서 사용자들은 인페인팅을 하고 싶은 물체의 마스크를 정확하게 제공하지 않는 경우가 많음
- 이에 따라 SmartBrush는 그림 5와 같이 다양한 형태의 마스크를 사용 → 가우시안 블러를 반복적으로 적용해서 세밀한 마스크부터 거친 마스크까지 얻을 수 있음
- Stable Diffusion의 경우 이와 같은 방식으로 학습되지 않았으므로 마스크의 종류에 영향을 받지 않고 일관적으로 결과가 좋지 않음
- Stable Inpainting은 마스크의 크기에 따라 물체의 크기만 바뀌고 마스크의 모양은 따르지 않음
- 본 논문의 기법은 세밀한 마스크를 사용할 때는 마스크의 모양을 엄격하게 따르고 거친 마스크가 주어진 경우 대략적으로만 마스크의 모양을 따름
- 마지막 열처럼 박스 모양의 마스크가 주어졌을 때 본 논문의 기법은 박스 어딘가에 생성을 수행
4.4. Background Preservation
- 물체를 인페인팅하기 위해서, 특히 박스 모양의 마스크가 주어졌을 때 인페인팅 될 물체는 마스크 영역의 일부만을 차지하기 떄문에 배경을 보존하는 것이 중요함
- 그림 6은 박스 모양의 마스크가 주어졌을 때 배경을 보존하는 다른 기법들의 결과를 비교
- 배경 유지를 위한 정규화를 제외한 경우 (w/o bg pres)와 DALL-E 2는 마스크 내부에서 물체가 아닌 픽셀들에 변화가 발생
- SmartBrush의 경우 물체 마스크 예측을 사용하여 (그림 7 참고) 샘플링 동안 예측된 마스크를 사용하여 더욱 나은 배경 유지를 수행
4.5. Ablation Study
- 본 논문의 요소들을 하나씩 제거하며 MSCOCO 데이터의 테스트 셋과 바운딩 박스 마스크로 테스트 수행 → 표3 참고
- 제안된 배경 유지 기법을 사용하는 경우 더 많은 픽셀들이 보존되면서 정량적인 결과가 향상된 것을 확인
- 만약 마스크 정밀도 컨디션을 적용하지 않는 경우 생성된 대상이 잘 제어 되지 않으며 Local FID (LFID)의 하락을 유발
- BLIP이나 멀티 태스크 학습이 없는 경우 발생하는 성능 저하 또한 해당 기법들이 물체 인페인팅 문제에 유용하다는 것을 보임
5. Conclusion, Limitation and Future Work
- 기존의 텍스트와 모양 기반 이미지 인페인팅 모델은 3가지 문제점을 가짐
- Mask misalignment, text misalignment, background preservation
- 본 논문에서는 새로운 학습 방식을 제안
- 텍스트와 모양에 대한 가이드를 통해 text misalignment 문제를 해결
- 다른 단계의 마스크들을 만드는 방법을 사용하여 생성의 제어 정밀도를 다양하게 함
- 마지막으로 추가적인 학습 손실 함수를 도입하여 모델이 입력 마스크에서 물체의 마스크를 예측하도록 하고 이를 통해 마스크에 불필요한 변화가 생기지 않도록 함
- 본 기법의 한계점
- 큰 그림자가 있는 경우 → 물체의 그림자가 물체의 마스크를 초과하는 경우 (e.g. 사람의 그림자가 길어서 바운딩 박스가 모든 그림자를 커버하지 못함)