본문 바로가기
Deep Learning/[논문] Paper Review

SRNet: Editing Text in the Wild Review

by a._muj 2023. 7. 17.
728x90
반응형

 

0. Abstract

  • 본 논문에서는 자연 이미지의 텍스트 편집에 관심이 있으며, 원본 이미지의 단어를 다른 단어로 교체하거나 수정하여 원본 이미지와 시각적으로 구별하기 어려운 편집된 이미지를 유지하는 작업을 목표로 함
  • 세 가지 모듈로 구성된 end-to-end 학습 가능한 스타일 보존 네트워크 (SRNet)를 제안
  1. 텍스트 변환 모듈: 원본 이미지의 텍스트 내용을 대상 텍스트로 변경하면서 원래의 텍스트 스타일을 유지합니다.
  1. 배경 인페인팅 모듈: 원본 텍스트를 지우고 적절한 텍스처로 텍스트 영역을 채웁니다.
  1. 퓨전 모듈: 두 모듈의 정보를 결합하여 수정된 텍스트 이미지를 생성
💡
<Keyword> 1. Text Editing(텍스트 편집) 2. Text Synthesis(텍스트 합성) 3. Text Erasure(텍스트 삭제) 4. GAN

1. Introduction

  • 이 논문에서는 장면 텍스트와 관련된 새로운 작업인 장면 텍스트 편집에 초점을 맞추고 있음
  • 주어진 텍스트 이미지에서 원본 텍스트를 손상시키지 않고 대체하는 것이 목표
  • 그림 1 (a)에 설명된 대로 제안된 장면 텍스트 편집기는 소스 이미지의 각 단어를 편집하여 현실적인 텍스트 이미지를 생성함⇒ 장면 텍스트 편집에는 두 가지 주요 도전 과제가 존재
    1. 텍스트 스타일 전이
    1. 배경 질감 보존
    ➡️ 다양한 요소로 인한 어려움: 언어, 폰트, 색상, 방향, 선 굵기 및 공간적인 시각적 효과와 같은 다양한 요소로 구성되어 있어 소스 이미지의 전체적인 텍스트 스타일을 정확하게 포착하고 대상 텍스트로 전달하는 것이 어려움
  • ➡️ 번역 대상 길이의 상이함: 대상 텍스트가 원본 텍스트보다 짧을 경우, 문자 영역의 초과 영역을 삭제하고 적절한 질감으로 채워야 한다.
  • ➡️ 일관성 유지의 어려움: 텍스트가 메뉴나 가로등 표지판과 같은 복잡한 장면에 나타날 때는 수정된 배경의 일관성 유지가 어렵다.
SRNet의 핵심 아이디어는 복잡한 작업을 여러 개의 더 단순하고 모듈식인 서브 네트워크로 분해하는 것 ※ 서브 네트워크: 텍스트 변환 모듈, 배경 보정 모듈 및 퓨전 모듈

 

 

💡
1. TCM (텍스트 변환 모듈)

: 소스 이미지의 텍스트 내용을 대상 텍스트로 변경하면서 원본 텍스트 스타일을 유지

2. BIM (배경 보정 모듈)

:원본 텍스트 스트로크 픽셀을 삭제하고 하향식 특징 융합 방식으로 해당 영역을 적절한 질감으로 채움

 

3. FM (퓨전 모듈) : 포그라운드 정보와 배경 질감 정보를 효과적으로 퓨전하여 수정된 텍스트 이미지를 생성

<GAN VS SRNet>

  • GAN은 이미지 간 변환, 스타일 전이 등 일부 작업에서 큰 진전을 이루었지만, 이러한 방법들은 일반적으로 입력을 임베딩하고 원하는 이미지를 생성하기 위해 임베딩된 공간으로 디코딩하는 인코더-디코더 구조를 적용.
  • SRNet은 이와 달리 네트워크를 모듈식 서브 네트워크로 분해하고, 복잡한 작업을 몇 가지 쉬운 학습 작업으로 분해함

 

 

<장점 제시>

  • 단어 또는 텍스트 라인 수준의 장면 텍스트 편집 문제를 다루는 첫 번째 학습 가능한 네트워크로 알려져 있다.
  • 우리는 텍스트 변환 모듈, 배경 보정 모듈 및 최종 퓨전 모듈을 포함한 SRNet을 여러 개의 단순하고 모듈식인 학습 가능한 모듈로 분해하여 대부분의 이미지 간 변환 GAN 모델보다 더 현실적인 결과를 생성할 수 있게 한다.
  • Stroke Skeleton의 안내로, 제안된 네트워크는 가능한 한 많은 의미 정보를 유지할 수 있다.
  • Stroke Skeleton

    ※ stroke(텍스트 각각의 선), skeleton(선들의 중심선) 은 주로 이미지 처리 기법 중 하나인 "선 검출"이나 "선 추출" 알고리즘을 의미함

    ※ 텍스트의 구조적 특징을 강조하고, 텍스트의 형태와 모양을 파악하는 데 사용

  • 제안된 방법은 언어 내의 텍스트 이미지 편집뿐만 아니라 크로스 언어 텍스트 편집 및 정보 숨김(예: 단어 수준의 텍스트 삭제)과 같은 여러 장면 텍스트 편집 작업에서 우수한 성능을 보인다.

 

 

2. Related Work

2.1 GAN

  1. GAN: 생성자와 판별자로 구성, 전자는 실제 분포와 유사한 데이터를 생성하는 것을 목표로 하고, 후자는 실제 데이터와 가짜 데이터를 구별하는 방법을 학습
  1. DCGAN: 생성자와 판별자로서 컨볼루션 신경망 (CNN)을 사용하여 GAN의 훈련 안정성을 개선
  1. Conditional-GAN: 주어진 조건에 따라 필요한 이미지를 생성하며, 픽셀 수준의 정렬 이미지 생성 작업에서 중요한 성과를 거둠
  1. Pix2pix: 이미지 간의 매핑 작업을 구현하였으며, 입력 도메인과 출력 도메인 간의 매핑 관계를 학습할 수 있음
  1. Cycle-GAN: 서로 짝지어지지 않은 스타일 이미지에서 교차 도메인 변환 작업을 수행하며 우수한 성능을 달성

➡️ 기존의 GAN은 텍스트 편집 작업에 직접적으로 적용하기 어려움. 텍스트 내용이 변경되고 텍스트의 형태가 크게 변해야 하며, 장면 텍스트 이미지를 편집할 때 복잡한 배경 질감 정보도 잘 보존되어야 하기 때문

 

2.2 Text Style Transfer

  1. Lyu: 자동 인코더 가이드 GAN을 제안하여 표준 중국 폰트 이미지에서 지정된 스타일의 카리그라피 이미지를 합성
  1. Sun: VAE 구조를 사용하여 스타일이 적용된 중국 문자 생성기를 구현
  1. Zhang: 중국 문자의 획 수준에서의 스타일 전이 능력을 학습하려고 시도
  1. Yang: 텍스처 합성 알고리즘을 제안하여 부분 효과 패턴을 텍스트 스켈레톤의 해당 위치로 매핑하여 이미지 블록을 생성할 수 있습니다. 이 방법은 통계 정보의 분석에 기반하고 있으며 글자 간의 차이에 민감할 수 있으며 많은 계산 부담을 유발할 수 있습니다.
  1. TET-GAN: 최근에는 가볍고 효율적인 프레임워크를 설계하여 다양한 텍스트 효과의 스타일화와 비스타일화를 동시에 지원
  1. MC-GAN: 영어 알파벳 글자 전이와 효과 전이를 각각 해결하기 위해 두 개의 서브 네트워크를 사용했으며, 페워샷(font style transfer) 작업을 성공적으로 수행
  2.  

➡️ 이때까지는 문자 수준에서 해결하려고 했으나, 이 논문에서는 단어 혹은 텍스트 수준에서 해결하려고 시도함.

  1. 단어 수준의 주석을 얻는 것이 문자 수준의 주석을 얻는 것보다 훨씬 쉬움
  1. 단어를 편집하는 것이 문자를 편집하는 것보다 효율적
  1. 단어 수준의 편집기는 단어 수준의 레이아웃 일관성을 우대
  1. 단어의 길이가 다른 경우, 단어 수준의 편집기는 전경 문자의 배치를 적응적으로 조정할 수 있지만, 문자 수준의 방법은 이를 고려하지 않음

2.3 Text Erasure ans Editing

  • 텍스트 편집 과정에서 단어 수준에서 배경 지움에만 관심을 두기 때문에 SRNet의 배경 보완 모듈은 보다 가볍게 설계될 수 있으며 여전히 좋은 지움 성능을 가지고 있음
  • 지금까지는 한 번에 하나의 문자의 색상과 폰트만 전이할 수 있으며 배경 텍스처의 일관성을 고려하지 않았음

➡️ 논문에서는 텍스트 스타일 전이와 텍스트 지움 접근법의 장점을 통합

 

 

3. Methodology

Input

: 소스 스타일 이미지 Is와 대상 텍스트 이미지 It으로 구성된 이미지 쌍 (Is, It)를 입력으로 받음

Output

: ((Tsk, Tt), Tb, Tf)

: Tsk는 대상 텍스트 스켈레톤(선들의 중심선)

: Tt는 Is와 동일한 텍스트 스타일을 가진 전경 이미지

: Tb는 Is의 배경

: Tf는 최종 대상 텍스트 이미지

 

 

3.1 소스 이미지 Is의 텍스트 스타일은 스켈레톤을 기반으로 한 학습 메커니즘의 도움으로 대상 텍스트로 전이되어 텍스트 의미를 보존하도록 전환됨.

3.2 동시에 배경 정보는 지움 또는 보완 작업을 학습함으로써 채워짐.

3.3 마지막으로, 전이된 대상 이미지와 완성된 배경은 텍스트 퓨전 네트워크에 의해 퓨전되어 편집된 이미지를 생성함

 

 

3.1 Text Conversion Module

<방법>

  1. 대상 텍스트를 고정된 글꼴과 배경 픽셀 값 설정으로 127로 렌더링하고, 렌더링된 이미지를 대상 텍스트 이미지 It로 표시
  1. TCM(파란색 부분)은 소스 이미지 Is와 대상 텍스트 이미지 It를 입력으로 받아 소스 이미지 Is의 전경 스타일을 추출하고 대상 텍스트 이미지 It로 전달하는 것을 목표로 함※ 스타일에는 글꼴, 색상, 기하학적 변형 등의 텍스트 스타일이 포함됨

➡️ 텍스트 변환 모듈은 대상 텍스트의 의미와 소스 이미지의 텍스트 스타일을 가진 이미지 Ot을 출력

 

<모델 사용 부분>

  • 인코더-디코더 FCN 사용.
  • 인코딩을 위해 소스 이미지 Is는 3개의 다운샘플링 컨볼루션 레이어와 4개의 잔차 블록 [9]으로 인코딩되며, 입력 텍스트 이미지 It도 동일한 아키텍처로 인코딩됨.
  • 그런 다음 두 특성은 깊이 축을 따라 연결됨. 디코딩을 위해 3개의 업샘플링 전치 컨볼루션 레이어와 1개의 Convolution-BatchNorm-LeakyReLU 블록이 사용되어 출력 Ot을 생성.
  • 또한, 더 견고한 텍스트를 생성하기 위해 Skeleton-guided Learning Mechanism을 도입함

 

<Skeleton-guided Learning Mechanism>

스타일 이미지 Is에서 텍스트 스타일을 전달한 후에도 대상 이미지 It에서 텍스트 스켈레톤을 유지하는 것이 필요

➡️ 즉, lt(텍스트만 뽑아오는) 의 형태가 있어야 함(b를 가져온다 치면 b의 선 형태를 알아야 가져올 수 있기 때문) ⇒ 문자의 겉의 모양을 따와야 된다 이런 말 같음

<모델 구조>

  1. 3개의 업샘플링 레이어와 1개의 컨볼루션 레이어로 구성된 스켈레톤 응답 블록을 추가
  1. sigmoid 활성화 함수를 따라 단일 채널 스켈레톤 맵을 예측한 다음, 스켈레톤 히트맵과 디코더 출력을 깊이 축을 따라 연결
  1. 스켈레톤 응답 맵의 재구성 품질을 측정하기 위해 교차 엔트로피 손실 대신 Dice 손실을 사용

 

 

3.2 Background Inpainting Module3.1 Text Conversion Module

목표: 단어 수준의 지운 작업을 통해 배경을 얻는 것

 

<방법>

  • input으로 소스 이미지 Is만을 사용(배경, 글씨체) 하고, 모든 텍스트 stroke(선들) 픽셀이 지워지고 적절한 텍스처로 채워진 배경 이미지 Ob를 출력함

 

 

<모델 사용 부분>

  1. 입력 이미지는 스트라이드 2로 구성된 3개의 다운샘플링 컨볼루션 레이어로 인코딩되고, 이후 4개의 잔차 블록이 이어지며, 디코더는 3개의 업샘플링 컨볼루션 레이어를 통해 원래 크기의 출력 이미지를 생성.
  1. 각 레이어 후에는 leaky ReLU 활성화 함수를 사용하고, 출력 레이어에는 tanh 함수를 사용.
  1. 배경 생성기를 GB로 표시

 

<U-Net의 메커니즘 활용>

  • 시각적 효과를 보다 현실적으로 만들기 위해 배경의 텍스처를 최대한 복원해야 함
  • U-Net의 경우, 미러링된 레이어 간에 스킵 연결을 추가하는 것을 제안하여 객체 세분화 및 이미지 간 변환 작업을 해결하는 데 매우 효과적이고 견고함이 입증되었음

➡️ 이러한 메커니즘을 업샘플링 과정에서 채택하며, 이전의 동일한 크기의 인코딩 피처 맵이 텍스처를 보다 풍부하게 보존하기 위해 연결됨. 다운샘플링 과정에서 손실된 배경 정보를 복원하는 데 도움이 됨

 

<Image erase>

  • 다른 image erase 방법과는 달리 단어 수준의 이미지 인페이팅 작업을 목표로 함
  • 단어 수준의 이미지에 나타나는 텍스트는 상대적으로 규모가 표준적이어서, 단순한 네트워크를 가짐
  • 더 현실적인 외관을 학습하기 위해 Adversial 학습이 추가됨
Adversial Loss와 L1 Loss 결합

 

3.3 Fusion Module

목표: 대상 텍스트 이미지와 배경 텍스처 정보를 조화롭게 퓨전하여 편집된 씬 텍스트 이미지를 합성하는 것을 목표로 함

<모델 구조>

  • 역전파 Convolutional Neural Network (FCN) 구조

 

<방법>

  • 텍스트 변환 모듈에 의해 생성된 foreground 이미지를 인코더에 입력으로 주고, 인코더는 3개의 다운샘플링 컨볼루션 레이어와 잔차 블록으로 구성
  • 디코더는 3개의 업샘플링 전치 컨볼루션 레이어와 Convolution-BatchNorm-LeakyReLU 블록으로 구성되어 최종 편집된 이미지를 생성함
  • 퓨전 디코더의 업샘플링 단계에서 배경 인페인팅 모듈의 디코딩 피처 맵과 같은 해상도의 해당 피처 맵과 연결함

➡️ 퓨전 네트워크는 배경의 세부 사항을 복원하고, 텍스트 객체와 배경이 잘 융합되면서 외관적으로 합성적인 실감을 느낄 수 있는 이미지를 출력함

 

 

<Loss>

  • GF와 Of로 퓨전 생성자와 그 출력을 표시
  • Adversial 추가됨
  • fusion module에 VGG 손실을 도입함으로써 왜곡을 줄이고 현실적인 이미지를 만듬 (지각적 손실과 스타일 손실을 포함)
  • ※ 지각적 손실 Lper

    사전 훈련된 네트워크의 활성화 맵들 사이의 거리 척도를 정의하여 레이블과 지각적으로 유사하지 않은 결과를 벌점으로 함

  • ※ 스타일 손실 Lstyle
    • 스타일의 차이를 계산함

 

3.4 Discriminators

  • 두 개의 판별자는 PatchGAN [11]과 동일한 구조를 가지며 적용
  1. Background inpainting module의 판별자 DB: 이 판별자는 배경 보정 모듈에 속하며, Is와 Ob 또는 Tb를 연결하여 입력으로 사용. 이 판별자는 삭제된 결과인 Ob와 목표 배경인 Tb가 유사한지를 판단. 즉, Background inpainting module이 삭제된 텍스트의 배경을 적절하게 보정하고 목표 배경과 일치시키는지를 평가하는 역할을 함
  1. Fusion module의 판별자 DF: 이 판별자는 Fusion module 에 속하며, It과 Of 또는 Tf를 연결하여 입력으로 사용합니다. 이 판별자는 최종 출력인 Of와 대상 이미지인 Tf의 일관성을 측정합니다. 즉, 퓨전 모듈이 텍스트 스타일과 배경을 조합하여 최종 출력 이미지를 생성할 때, 그 결과물이 대상 이미지와 일치하는지를 평가하는 역할을 함
  • 이들은 오리지널 크기의 1/16로 크기를 줄이기 위해 다섯 개의 합성곱 레이어로 구성

➡️ 두 판별자는 각각 다른 모듈에서 작동하며, DB과 DF의 성능을 평가하고 개선하는 데 도움을 줌.

 

3.5 Training and Inference

  • 전체 Loss
  • end to end 방식으로 훈련
  • 생성자와 판별자를 번갈아가며 훈련
  • 텍스트를 제외한 유사한 스타일을 가진 이미지 쌍을 학습 데이터로 사용
  • foreground, text skeleton, background image는 text stroke segmentation의 도움으로 얻을 수 있음.
  • 생성자는 It, Is를 입력으로 받고 Tsk, Tt, Tb, Tf의 지도 학습을 통해 텍스트가 대체된 이미지 Ot을 출력. (해당 text를 바꾸고자 하는 글씨체로 바꿔준 이미지 - 회색)
  • Adversarial 훈련을 위해 (Is, Ob)와 (Is, Tb)는 DB에 입력되어 백그라운드의 일관성을 유지하도록 학습되고, (It, Of)와 (It, Tf)는 DF에 입력되어 정확한 결과를 보장함
  • 추론 단계에서는 표준 텍스트 이미지와 스타일 이미지가 주어지면 생성자는 스타일 이미지의 지워진 결과와 편집된 이미지를 출력할 수 있음
  • 전체 이미지에 대해서는 바운딩 박스 주석을 기준으로 대상 패치를 잘라내어 네트워크에 입력한 후 결과를 원래 위치에 붙여넣어 전체 이미지의 시각화를 얻을 수 있음

4. Experiments

(Synthetic Data) 합성 데이터: 우리는 텍스트 합성 기술 [8]을 개선하여 서로 다른 텍스트를 가진 스타일 쌍을 합성합니다. 주요 아이디어는

  1. 폰트, 색상, 변형 매개변수를 임의로 선택하여 스타일이 적용된 텍스트를 생성한 다음,
  1. 배경 이미지에 렌더링하고
  1. 이미지의 스켈레톤화 [36]를 통해 해당하는 배경, 전경 텍스트 및 텍스트 스켈레톤을 얻을 수 있음.
  1. 실험에서는 텍스트 이미지의 높이를 64로 조정하고 종횡비를 유지. 훈련 세트는 총 50,000개의 이미지로 구성되며, 테스트 세트는 500개의 이미지로 구성됨.

 

https://paperswithcode.com/dataset/icdar-2013

(Real-world Dataset) 실제 세계 데이터셋: ICDAR 2013 [14]은 2013년 국제 문서 분석 및 인식 컨퍼런스에서 대회를 위해 조직된 자연 장면 텍스트 데이터셋입니다. 이 데이터셋은 자연 장면에서 수평 영어 텍스트의 탐지 및 인식에 초점을 맞추고 있으며, 229개의 훈련 이미지와 233개의 테스트 이미지가 포함되어 있습니다. 각 이미지의 텍스트는 자세한 레이블을 가지고 있으며, 모든 텍스트는 수평 직사각형으로 주석이 달려 있습니다. 각 이미지에는 하나 이상의 텍스트 상자가 있습니다. 우리는 경계 상자에 따라 텍스트 영역을 잘라내고 잘라낸 이미지를 네트워크에 입력한 다음 결과를 원래 위치에 붙여넣습니다.

테스트에만 사용


728x90
반응형