Towards Unconstrained End-to-End Text Spotting

Inc Lomin's avatar
Nov 28, 2019
Towards Unconstrained End-to-End Text Spotting
 
본 논문은 2019 ICCV 오럴 세션에서 구글AI 소속의 저자가 발표한 End-to-End OCR에 관한 기술을 제안하고 있습니다.
notion image

Introduction

해결하고자하는 문제

본 논문에서 지적하는 기존 End-to-end 방식 OCR의 문제점은 다음과 같습니다.
  1. 기존 End-to-end 방식의 방법들은 backbone CNN을 detector와 recognition 파트를 공유하면서, detector에서 rotated rectangle 형태로 글자 영역을 예측하면, cropped feature를 rectify하여 한방향으로 진행하는 텍스트를 읽는 recognizer에 전달한다. 하지만, 이러한 방식은 arbitrary shaped text나 curved text을 읽는 태스크에는 취약하다.
  1. End-to-end 모델을 학습할 때의 큰 문제점 중의 하나는 detector에 비해 recognizer의 학습에는 훨씬 많은 데이터가 필요한데, 이미지 단위로 fully-annotate 된 학습 데이터가 충분히 많지 않다는 점이다. 또한, 기존 데이터셋에 recognizer가 충분히 수렴할 때 쯤에는 detector는 엄청나게 overfitting된 상태가 된다.

Contribution

  1. Feature rectification 없이 Mask-RCNN의 segmentation map에서 텍스트 영역만 마스킹(RoI masking)하고, recognizer의 attention decoder에 전달하도록 하여, arbitrary shaped text에 대해서도 인식이 원활하도록 설계하였다.
  1. recognizer를 학습 시키기에 학습데이터가 불충분한 문제를 해결하기 위해, 기존의 2 step OCR engine으로 대규모의 paritally labeled dataset을 생성하여, semi-supervision 방식으로 학습을 하였다.
  1. 위 두가지 contribution에 의해 ICDAR15(straight text) dataset에서 4.6%, Total-text(curved) dataset에서 16% 성능 향상을 하여 SOTA를 달성하였다.
 
notion image

Proposed Method

notion image
제안 방법은 Mask R-CNN 구조를 베이스라인으로 삼고있습니다. Recognition을 위해서는 backbone의 feature map에서 prediction된 텍스트의 rectangle 영역을 crop한 후, 텍스트 영역에 대한 segmentation mask결과를 곱하여, 텍스트 이외의 배경을 삭제한 후, attentional decoder에서 문자 인식을 수행합니다.

Feature Extractor

  • ResNet-50과 Inception-ResNet 기본으로 하고 output stride가 8이 되도록 변경
  • Large receptive field를 유지하기 위해, conv4_1 layer이하를 atrous conv로 변경

Detecter

  • RPN anchor scales: (64,128,256,512), aspect ratios (0.5, 1.0, 2.0)
  • NMS's IOU threshold: 0.7
  • Top 300 proposals kept
  • 기타 디테일은 생략

Multi-scale Feature Fusion and RoI Masking

Detector와는 달리 recognizer에서는 detector보다는 dense feature가 필요합니다. 이를 위해 FPN 구조를 차용하여, stride 4 feature map에서 attentional decoding을 수행합니다.
제안방법에서는 다양한 진행방향을 포함한 arbitrary shaped text를 인식하기 위해서, text region binary mask를 feature map에 곱하여, 텍스트 이외의 배경 부분의 feature을 0으로 만들어 attentional decoder에 넘겨줍니다.

Recognizer

notion image
기존의 attentional decoder와 다른 점은 기존의 decoder는 대부분의 텍스트가 가로로 길다고 가정하고, H 방향 벡터를 average pooling 하여 사이즈 1로 만든 후 decode 했는데, 제안 방법에서는 average pooling하지않고, feature map을 flattening 하여 사용합니다.

Joint Training and Loss Function

제안방법에서는 recognizer를 학습하기에 충분한 데이터를 확보하기 위해, 기존의 2-Step(detector와 recognizer가 분리) OCR engine인 Google Cloud Vision API를 이용하여 인터넷을 통해 수집한 1백만장의 이미지에 partially labled data를 만들고, 이를 이용하여 학습을 진행합니다. 이때, partially labled data을 이용하여 학습을 할 때는 오직 reconizer branch(+backbone)만 업데이트 하고, fully labeled data를 이용할 때는 전체 weight를 업데이트 합니다.
notion image

Implementation Details

  • Training Dataset: SynthText, ICDAR15, COCO-text, ICDAR-MLT, Total-Text, + 30K fully-labled dataset(image source from web)
    • + 1 백만장의 partially labled dataset을 생성하여 recognizer 학습에 사용
학습을 할 때는 fully/partially annotated image를 모두 사용하서, single-step으로 진행함
총 79개의 문자 클래스 사용: 숫자, 영대소문자, 특수문자

Experiment

Straight Text(ICDAR15)

notion image

Curved Text

E2E에서 기존대비 16.7% 향상
notion image

Ablation Study

notion image
  • Baseline 비교: 1 step ≥ 2 step
  • Backbone 비교: Inception-Resnet ≥ ResNet-50
  • Partially Labeled Data: E2E에서 partially labeled data에 의한 성능향상 폭이 매우 큽니다. 특히, partially labeled data를 사용할 때는 detection branch는 학습이 안됨에도 불구하고 detection 성능도 같이 오르는 현상을 보여줬습니다.(아마도 recognition을 학습할 때, 백본이 업데이트 되는데, 이 부분이 detection에도 도움이 되는걸로 보입니다.)
  • RoI Masking: E2E의 성능 향상엔 항상 도움이 되지만, detection에서는 나빠지는 경우도 존재

Speed

1280x720 해상도에서 (TESLA V100 GPU)
  • E2E 시간: Resnet-50, 210 ms vs. Inception-ResNet, 330ms
  • Detection only: Resnet-50, 180 ms vs. Inception-ResNet, 270ms
Recognition에 걸리는 시간이 detection에 비해 상대적으로 적음

My Opinion

  1. 이 논문에서 제안 아이디어 중에 Lomin Engine에 이미 적용된 아이디어 들이 존재.(아쉬비..)
      • 이미지 회전 무시하고, recognizer에서 읽는 방향을 학습하도록 함
      • Average pooling 사용하지 않고, spatial resolution을 보존
  1. 성능 향상에는 역시 데이터가 가장 중요함: semi-supervision에 의한 성능향상 폭이 가장 컸다. 성능에는 알고리즘의 작은 개선보다는 데이터의 양적 질적 향상이 역시 가장 효과적
Share article