본문 바로가기

논문 리뷰/etc.

CLIPasso: Semantically-Aware Object Sketching

다양한 추상회 정도의 스케치 생성

 

[Project Page]

[Github]

[arXiv](Current version v2)

 

 

Abstract

다양한 수준의 추상화를 달성할 수 있는 객체 스케치 방법인 CLIPasso 제안

 

 

Introduction

스타일에 관계없이 시각적 의미를 인코딩하는 데 탁월한 CLIP 사용.

 

이전의 연구들에서는 스케치 데이터셋을 사용하는 경우가 많지만 출력 스타일을 제한하기 때문에 비채택. 대신 CLIP 이미지 인코더를 사용하여 사진을 추상 스케치로 변환한다.

 

스케치는 흰 배경에 배치된 검은 획(베지어 곡선) 세트로 정의되며 추상화 수준은 획 수에 따라 결정된다.

그려질 대상 이미지가 주어지면 획의 매개변수(제어점 위치)를 직접 최적화한다.  

 

 

 

Method

스케치를 4개의 제어점이 있는 n개의 2차원 베지어 곡선 세트로 정의한다.

 

제어점은 rasterizer R에 공급되고, 획 수를 변경하여 다양한 수준의 추상화를 생성한다.

 

Overview: 

 

Loss Function

두 양식 사이의 거리를 계산하기 위해 작업별 인코더를 훈련할 수도 있지만, 간단하게 CLIP 이미지 인코더를 활용한다.

 

하지만 네트워크의 최종 인코딩은 자세 및 구조와 같은 공간적 특징에 대해 agnostic 하기 때문에 출력 모양을 제어할 수 있도록 CLIP의 중간 레이어 활성화 사이의 L2 거리를 계산한다.

 

최적화 목표:

 

Optimization

Loss gradient를 통해 제어점을 직접 최적화.

 

유효하지 않은 적대적 이미지가 생성되는 것을 방지하기 위해 CLIP 인코더 입력 전에 두 이미지 모두에게 간단한 augmentation을 적용한다. 최적화 오류가 크게 변하지 않을 때 수렴할 때까지 이 과정을 반복한다. 

 

Strokes Initialization

우리의 목적 함수는 매우 non-convex 하기 때문에 초기화가 매우 중요하다.

 

ViT를 통해 얻은 attention map과 XDoG를 통해 얻은 edge map을 곱한 후 softmax를 적용하여 최종 distribution map을 얻고, 해당 분포를 기반으로 초기 제어점을 배치한다.

 

초기 샘플링에 따른 가변성이 높으므로 3개의 시드 중 가장 낮은 손실을 생성하는 초기화를 자동으로 선택한다.

 

 

 

Results

 

스타일 조절 가능: