논문리뷰 : Paint Transformer: Feed Forward Neural Painting with Stroke Prediction

nask·2022년 12월 24일

논문 출처: https://arxiv.org/abs/2108.03798

Abstract

  • Neural paining은 인공 신경망을 이용해 주어진 이미지를 stroke 단위의 non-photo-realistic한 그림으로 재생성하는 것을 의미함

  • 이에 대한 이전의 방법론들은 학습이 까다롭거나 비효율적이라는 단점이 있음

  • 본 논문에서는 Neural paining을 set prediction problem으로 재해석한, Transformer 기반의 Paint Transformer라는 방법론을 제시함

1. Introduction

  • AI를 이용한 기존 연구에서는 style transfer나 image-to-image translation 기법을 이용해 이미지를 변환해왔음

  • 하지만 실제로 인간은 brush 등을 이용해 pixle이 아닌 stroke 단위로 로 그림을 그리므로, 이를 모방한 stroke based neural painting에 대한 관심이 높아짐

  • Paint Transformer에서는 K번의 반복을 통해 가장 coarse한 scale로부터 점점 fine하게 scale을 줄여가며 다음 storke을 예측하고, 결과적으로 높은 성능을 달성함

2.1 Stroke Based Painting

  • 이전의 방법론들로는 RNN, 강화학습, stroke parameter searching 등이 있었지만 효율성과 성능 측면에서 모두 개선의 여지가 있음

2.2 Object Detection

  • Paint transformer는 set prediction 문제로, object detection task에서 영감을 받음

  • 그중에서도 복잡한 전처리 없이 Transformer로만 End-to-End detection을 수행하는 DETR 모델 구조를 base로 사용

  • 모델에 input으로 target imagecurrent canvas image가 들어가며, 추가로적으로 binary neurons를 두어 stroke를 저장할지 말지를 결정

3. Methods

3.1 Overall Framework

  • 학습을 위한 데이터셋이 따로 없으므로, self-training pipeline을 제안

  • Stroke PredictorStroke Renderer라는 두 개의 모듈로 구성됨

  • 임의로 고른 Stroke set인 SbS_b를 이용해 Renderer로 Canvas Image IcI_c를 그리고, 그 위에 다시 임의로 고른 Stroke set인 SfS_f를 덧칠해 Target Image ItI_t를 그림

  • Stroke Predictor는 IcI_cItI_t를 비교해 Canvas Image에서 Target Image가 되기 위한 Stroke setSrS_r를 예측함

  • 예측한 SrS_rSfS_fstroke 단위로 비교해 stroke loss를 계산함

  • SrS_r를 이용해 그린 이미지 IrI_rItI_tpixel 단위로 비교해 pixel loss를 계산함

  • 두 loss를 합산해서 사용함

3.2 Stroke Definition and Renderer

  • 하나의 Stroke은 Shape parameterColor parameter를 가짐

  • Shape parameters는 중앙 위치 x, y와 높이 및 너비 h, w, 그리고 회전각 θ\theta로 이루어짐

  • Color parameters는 r, g, b로 이루어짐

  • 본 논문에서는 신경망을 거치지 않으며 미분 가능한 renderer인 geometric transformation based Stroke Renderer를 제안함

  • (3)에서 IoutI_{out}IinI_{in}은 output/input canvas이고, SS는 {sis_i} i=1n_{i=1} ^n으로 하나의 stroke set임

  • (4)에서 ImidiI_{mid}^i는 i번째 canvas이고, αi\alpha^i는 i번째 stroke의 binary mask인 single channel alpha map이며, Ibiˉ\bar{I_b^i}는 primitive brush인 IbI_bsis_i를 이용해 만든 rendered stroke image

  • Imid0I_{mid}^0IinI_{in}을 , ImidnI_{mid}^nIoutI_{out}을 의미함

3.3 Stroke Predictor

  • IcI_cItI_t를 서로 다른 CNN을 통과시켜 FcF_cFtF_t라는 피처맵으로 만듬

  • 두 피처맵과 positional encoding을 concatenate한 뒤 flatten시켜 Transformer encoder로 사용

  • DETR처럼 N개의 학습가능한 stroke query를 decoder의 input으로 사용

  • 두 가지 branch의 FC layers를 통해 initial stroke parametersstroke confidence를 각각 구함

  • binary neuron을 사용하여 stroke confidence가 0 이상인 경우에만 positive decision으로 고려해 canvas에 포함

  • 이때 confidence에 대한 decision의 미분불가능 문제를 해결하기 위해 아래 SignSign 함수 사용

3.4 Loss Function

  • Pixel Loss
    IrI_rItI_t 이미지의 픽셀 단위 차이

  • Stroke Distance
    stroke : 두 stroke 사이의 Wasserstein distance

    confidence : binary cross entropy

  • Final Stroke Loss
    DETR처럼 stroke level matching cost를 최소화하는 stroke permutations을 찾음

    구체적으로는 Hungarian algorithm을 사용

    사전에 정의된 최대 stroke number인 N보다 적은 수의 stroke가 필요한 경우 나머지를 empty stroke로 처리하여 loss는 0이 나오게 됨

    XX, YY는 각각 예측된 strokes와 target strokes에 대한 optimal permutations를 의미

3.5 Inference

  • scale(k)를 0부터 K까지 반복하면서 이미지 패치의 수인2k2k2^k * 2^k가 증가하여 점점 fine stroke을 그리게 됨

4. Experiments

생략

5. Conclusion and Future Works

  • 본 논문은 neural paintin problem을 stroke set prediction perspective로 접근함

  • 제안된 모델인 Paint transformer은 효율성과 성능 측면에서 모두 우수함

  • oil painting brush / rectangle brush / circle brush 등 stroke를 변경하거나 stylized paingting도 가능

  • 후속 연구를 통해 보다 다양한 shape와 color 패턴을 가진 복잡한 stroke를 이용한 그림을 그릴 수 있을 것임

  • 또한, 패치 간 문맥을 파악한다면 좁고 긴 영역에 대한 painting quality가 개선될 것으로 예상됨

0개의 댓글