2018년 ECCV 논문으로 Naver의 Text recognition 논문 What is wrong with scene text recognition model comparisons dataset and model analysis의 미구현된 논문 중 하나입니다. Synthetic data를 활용하여 feature와 feature로부터 생성된 이미지에 supervision을 주어 feature extractor의 학습을 robust하도록 합니다.
Introduction
Text recognition에서 state of art를 달성하기 위해서 대부분의 framework들은 Synthetic data를 사용합니다. 하지만 대부분 real data와 synthetic data의 차이를 무시하고 학습을 합니다. 이미지 내의 방해 요소인 폰트, 빛, 그림자, 굵기, 배경, 이미지 노이즈, deformation, compression artifacts 등을 synthetic data 내에서는 조정이 가능하므로 이를 활용하여 더 robust한 모델을 얻을 수 있습니다.
- Invariance: 깔끔한 이미지와 noise가 있는 이미지의 경우 같은 feature를 얻음.
- Completeness: 모든 text label information이 feature에 포함되어야 하므로 이를 Generation 과정을 통해서 검증
Contribution
- data generation의 제어가능한 점을 활용하여 깨끗한 synthetic data를 활용하여 이를 부가적인 pipeline을 통해 일반적인 recogntion model에 활용할 수 있는 방법을 제안.
- image generation을 통해서 구별되는 text의 특징을 잘 학습하는 text recognition 알고리즘을 제안
- 다양한 benchmark에서 SOTA를 달성하며 다양한 irregular text에도 적용이 가능함.
Proposed Method
R: text image renderer
E: feature encoder
T: text decoder
G: image generator
D_I: image level discriminator
D_f: feature level discriminator
Renderer
text image를 setting에 따라서 만들어내는 역할을 합니다.
x: image
y: label
z: rendering parameter
bar{z}: standard font를 적용하고 noise가 없는 세팅
Text renderer는 학습을 위한 데이터 {(x, bar{x}, y)}를 제공합니다.
{noise한 이미지, noise가 없는 이미지, 라벨}
Encoder and Text Decoder
E는 Encoder로 feature에 image의 text information feature를 뽑아냅니다..
T는 Text decoder로 두개의 bidirectional LSTM을 사용.
Feature matching and image generator
E에서 clean image의 feature를 학습하고 text content를 완벽하게 표현하고자 합니다.
두개의 feature간은 아래의 loss를 줍니다.
Adversarial discriminators
(G(E(x)),E(x))와 (\{bar}x,E(\{bar}))간의 분포를 유사하게 만들기 위해서 GAN을 도입했습니다.
D_I와 D_F는 clean image와 noise image 간의 feature 또는 image를 구분하고자 합니다.
두 discriminator는 binary classification output을 가진 convolution network입니다.
Training Objective function
위의 loss를 합하여 전체 loss를 학습에 사용합니다.
Experiment
Network structure
실험을 위한 모델의 구조는 아래 표와 같습니다.
- BLSTM은 256개의 memory block을 가지고 36개의 output unit을 갖습니다(26 letter, 10 digits, 1 EOS symbol)
- Image Generator G에는 Fraction Convolution(BEGAN)을 사용했습니다.
Training detail
모든 실험은 Synth90을 기반으로 진행하였습니다. 이 데이터셋은 800만장의 이미지와 라벨을 포함합니다.
Synth90에 학습한 뒤에 real data에 실험을 진행하였고 다른 fine tuninig은 하지 않았습니다. image size는 32x100로 resize하였고 intensity는 [-1, 1]로 scaling하였습니다. 학습은 batch size 32로 Adam optimizer를 사용하였고 각종 parameter들은 5fold cross validation을 사용하여 위의 목적식에 따라서 결정하였습니다.
Ablation Study
Street View Text(SVT) dataset에 대해서 아래의 변형의 조합을 거친 이미지에 대해서 실험을 진행합니다.
- Binarized Images: image color의 variation을 없애기 위해서 gray-scale로 사용하였습니다.
- Deskewed Images: Text detector(EAST)를 사용하여 rotated angle을 얻어내 horizontal line에 맞게 합니다.
- Ideal Image: nuisance factor를 없애기 위해서 Ground truth로부터 생성한 이미지
본 논문의 모델의 각 이미지 변형에 따른 실험결과는 아래와 같습니다.
Abalation study의 비교군으로 CRNN을 실험하였습니다. 아래의 표를 보면 generation loss가 가장 큰 기여를 하는 것을 볼 수 있습니다.
generation loss에 adversarial loss를 추가한 경우 효과가 떨어졌습니다. 아래를 보면 Adversarial loss를 위한 discriminator를 이용하여 horizontal 구간에 따라 confidence 그래프를 볼 수 있습니다. 이를 통해서 낮은 confidence를 보이는 경우 adversarial loss가 악영향을 준다는 것을 확인할 수 있었습니다. 이후의 실험에서는 adversarial loss를 제외하였습니다.
하지만 feature의 adversarial training은 효과가 있었고 이는 87%의 accuracy를 달성했습니다.
Results and Comparisons on General Benchmarks
- FAN과 비교했을 때 deep network인 Resnet을 사용하지 않고도 비교할만한 정확도를 달성했으며 lexicon-free setting의 경우 성능을 능가했습니다.
Results and Comparisons on Irregular Text Benchmarks
아래 그림을 통해서 Rectification의 효과가 RARE와 비교했을 때 훨씬 뛰어남을 확인할 수 있습니다.
5(a)에서는 어려운 문제였지만 잘 읽은 case를 보여주고 5(b)는 failure case를 보여줍니다. 대부분의misclassification은 low resolution에서 발생했습니다.
Conclusions
encoder-generator-discriminator-decoder 아키텍쳐를 제안하여 state of art를 달성하였고 합성된 'clean' image를 활용할 수 있는 방법을 제안했습니다. 이 방법은 geometric distortion이 포함된 어려운 case들을 해결할 수 있엇습니다.
Share article