ESIR: End-to-end Scene Text Recognition via Iterative Image Rectification

Inc Lomin's avatar
Jun 15, 2019
ESIR: End-to-end Scene Text Recognition via Iterative Image Rectification

Introduction

notion image
이 논문은 scene text recognition에서 맞닥뜨릴 수 있는 왜곡된 텍스트 문제를 다음과 같이 두 단계를 통해 해결합니다.
먼저 line-fitiing transformation은 다항식을 이용해서 텍스트의 중심선을 표현함으로써 텍스트가 휘어져있는 정도를 모델링합니다. 또한 수직 방향으로 된 별도의 선들을 이용해서 텍스트의 가장자리와 orientation을 예측합니다. 이렇게 perspective distortion 뿐만 아니라 curvature까지 동시에 추정할 수 있습니다.
두 번째로는 추정한 perspective/curvature distortion 정보를 이용해서 텍스트 이미지를 정확하게 rectify하는 과정입니다. 이를 위해서 iterative rectification pipeline을 제시하고 있는데, 이렇게 할 경우 한 번 distortion estimation and correction을 하는 다른 state-of-the-art들에 비해서 효과가 좋다고 합니다. 또한 rectify된 이미지 결과물들은 recognition accuracy도 좋아지게 됩니다.
notion image
notion image
이 논문의 기여점은
  • text distortion modeling correction을 위한 새로운 line-fitting transformation
  • iterative rectification framework
  • parameter initialization에 강인한 end-to-end trainable system
이렇게 세 가지를 제시한 것으로 정리할 수 있습니다.
 

Proposed Method

Iterative Rectification Network

  • Line Fitting Transform
이미지의 중심을 원점으로 잡고, 각 축 방향으로 normalize 해서 (-0.5, 0.5) x-y 좌표를 정합니다. 이 때 텍스트의 중심 선은 다음과 같이 K차 다항식으로 나타낼 수 있습니다:
L개의 수직 방향의 line segment들은 다음과 같이 나타냅니다.
r_l은 l번째 line segment의 길이를 나타냅니다. 따라서 vertical line segment들을 결정하는 parameter 3L개, 중심선에서 K+1개, 총 3L+K+1개의 파라미터들을 추정해야 합니다.
위의 수직 피팅 라인 파라미터들을 추정하면 L개의 line segment들의 양끝단들이 결정됩니다. 그러면 thin plate spline transformation을 이용해서 텍스트의 왜곡을 보정할 수 있습니다. 2L개의 추정한 base point들을
라고 하고, rectified image의 형태를 결정하는 base point들을 다음과 같이 나타냅니다.
notion image
각 base point들을 행렬로 나타내면,
다음과 같이 변환 행렬을 만들 수 있습니다.
notion image
이 변환 행렬은 rectification 전후의 이미지 위 픽셀들의 관계를 나타냅니다. 즉 변환 전 이미지의 픽셀 t, 변환 후 이미지의 동일 픽셀 t'은 다음의 관계를 갖습니다.
이 과정에서 별도로 annotation을 생성하는 작업이 필요하지 않고, rectification의 performance는 순전히 recognition 결과를 통해서만 측정합니다. 일반적으로 텍스트의 왜곡이 잘 보정 되었을 때, recognition performance가 향상되기 때문입니다.
이 논문에서는 4차 다항식의 피팅라인, 20개의 수직 라인을 채택하고 있습니다.
 
  • Iterative Rectification
notion image
Rectification을 반복하다 보면, 이미지에서 샘플링 하는 영역 바깥에 부분을 잘라버리기 때문에, 이것이 누적되면서 텍스트 픽셀들을 잃어버리는 'boundary effect' 문제가 발생하게 됩니다. 또한 direct image rectification은 보통 여러 번의 interpolation을 거치면서 이미지의 clarity를 훼손하게 됩니다. 이를 해결하기 위해서 이전 iteration에서 rectify된 이미지는 parameter estimation에만 활용하고, 실제로 rectification을 수행하는 이미지는 원래의 input image를 사용했습니다.
 

Recognition Network

Recognition 구조로는 attention을 이용한 sequence-to-sequence model을 사용합니다. encoder에서 입력은 rectified & resized 32*100 크기의 이미지이고, 53-layer의 resnet을 feature extractor로 사용했습니다. Resnet 다음에는 256 hidden unit을 가진 BiLSTM 두 개의 layer가 이어집니다. Decoder에서는 256 hidden units & 256 attention units을 가진 두 개의 attentional LSTM으로 이루어진 Luong Attention mechanism을 이용합니다. Inference에서는 점수가 높은 k개의 후보를 유지하면서 decode를 하기 위해 beam search를 이용했습니다.

Training

이 rectification network는 학습이 쉽지 않습니다. 가장 큰 문제로는 parameter initialization에 매우 민감하다는 것인데, 특히 rectification network의 학습은 최종적으로 text recognition performance로부터 이루어지기 때문에, random parameter initialization을 하면 처음에 매우 왜곡된 글자들이 넘어가게 되면서 학습이 잘 되지 않습니다.
이러한 문제를 피하기 위해 line-fitting transformation에서 정의한대로 P를 직접 이용한 방향 예측을 하지 않습니다. 대신 초기에 P'과 동일한 P0를 정의하고,
에서 \Delta P를 prediction합니다. deltaP의 값이 작기 때문에, 초기의 P는 P'와 유사한 값을 가지며 초기에 왜곡이 심한 output을 얻는 결과를 피할 수 있습니다. 결과적으로 P를 바로 추정하는것보다 더 안정하게 됩니다.

Experiments

Synth90K, SynthText만 이용해서 학습
평가는 ICDAR2013, IIIT5K, SVT, ICDAR2015, SVTP, CUTE80
68글자 (10 digits, 26 lower case letters, 32 ASCII punctuation marks)
Evaluation에서 digit이랑 글자만 산정
 
notion image
 
notion image
 
notion image
 
notion image
Fangneng Zhan and Shijian Lu
Share article