Look More Than Once: An Accurate Detector for Text of Arbitrary Shapes

Inc Lomin's avatar
May 07, 2019
Look More Than Once: An Accurate Detector for Text of Arbitrary Shapes
LOok More than Once
 
이 논문은 2019년 CVPR에 제출되었습니다. 올해 나온 text detector들을 정리한 아래 표를 보면 (https://github.com/hwalsuklee/awesome-deep-text-detection-recognition), 오른쪽의 두 칼럼이 각각 ICDAR13, ICDAR15의 벤치마크 결과인데요, 가장 최근에 출시된 편에 속하는만큼 ICDAR15에서 CRAFT보다 근소하게 좋은 성능을 보여줍니다.
notion image
 

Introduction

Motivation

기존의 scene text detector들은 옆으로 긴 형태의 텍스트가 있는 경우 detection이 어려워집니다. 아래 왼쪽 두 개의 그림에서 점선 그리드는 동일 색상의 중심점에서의 receptive field, 파란색 박스는 EAST, Deep Regression과 같은 one-shot text detector의 예측 결과를 나타냅니다.
notion image
Receptive field의 한계 때문에 옆으로 긴 형태의 텍스트를 제대로 커버하지 못하는 것을 확인할 수 있습니다. 사람 시각은 긴 텍스트를 보았을 때, 처음에 일부분만을 인식하고 다시 살펴보면서 전체를 인식하게 됩니다. 한번에 텍스트의 길이와 위치를 결정하는 one-shot detector의 경우, 사람 시각의 작동 방식과 차이가 있기 때문에, *한번 더* 보는 형태의 텍스트 디텍터를 제안하고 있습니다. 위의 그림 중 가운데 그림을 보면 노란색과 분홍색, 이렇게 왼쪽에서보다 가장자리에 가까운 두 개 지점의 receptive field를 합쳐서 전체를 커버할 수 있는데요, 이렇게 여러 번에 걸쳐 본 후 오른쪽 그림의 파란색 박스와 같이 올바른 proposal을 도출합니다.
또한 scene text detection에서 흔하게 발생하는 다음과 같은 문제도 있는데, 이 논문에서 제안하는 shape expression module을 이용하면 텍스트의 기하학적 형태에 가장 잘 들어맞는 polygon을 생성해낼 수 있습니다.
notion image
 

Contributions

  • iterative refinement module을 이용해 긴 텍스트들을 detect
  • shape expression module을 이용해 다양한 형태의 텍스트들을 detect
  • end-to-end로 train하여 oriented, long, multi-lingual, curved에서 state-of-the-art performance 달성
 

Proposed Method

Network Architecture

아래와 같은 형태의 네트워크를 사용합니다. Backbone은 ResNet50+FPN이고, 통과 후의 feature map은 입력 이미지의 1/4 사이즈이며, 128개의 채널을 갖습니다.
notion image
이 논문에서 제안하는 부분들은 (2)번에 해당하는 direct regressor, (3)번에 해당하는 iterative refinement module, (4)번에 해당하는 shape expression module입니다. 이름들이 꽤 직관적인데, 특히 다음 그림을 보면 각 모듈들의 역할과 모듈을 통과하기 전후에 예측 값이 어떤 상태인지 대략적으로 파악할 수 있습니다.
notion image
먼저 direct regressor (DR) 브랜치는 단어나 줄글(text-line)의 quadrangle을 예측합니다. 위 그림의 (2)를 보시면, receptive field의 한계 때문에 DR의 예측 박스가 긴 글자를 모두 커버하지 못하고 조금 짧은 것을 확인할 수 있습니다. 이 문제를 해결하기 위해 iterative refinement module (IRM)을 사용하게 됩니다. IRM은 DR의 출력값이나 자기 자신의 출력값을 다시 입력값으로 삼아 proposal들이 GT와 더 가까워지도록 합니다. 위 그림의 (3)번을 보시면 refinement 후의 연두색 박스가 DR output에 비해 텍스트 영역을 더 완벽히 커버한 것을 확인할 수 있습니다. 하지만 글자의 모양이 박스 형태가 아니기때문에 proposal과 글자가 정확하게 일치하지 않고 박스에 배경이 많이 포함되는데요, shape expression module (SEM)을 통해 이 부분을 제거하고 (4)번 그림과 같이 텍스트에 들어맞는 형태의 결과를 얻을 수 있습니다.
 

Direct Regressor (DR)

EAST에서와 유사하게, text direct regressor로 fully convolutional sub-network를 이용해 픽셀 단위의 confidence를 계산합니다. DR 브랜치에서의 손실함수는 text/non-text 분류 항과 위치 회귀 항, 이렇게 두 개로 이루어져 있습니다. 실험에서 가중치는 0.01의 값을 이용했습니다.
text/non-text 분류는 downsampled score map에서의 binary sementation task입니다. 손실함수로는 dice similarity coefficient을 사용하는데, 다음과 같은 의미를 갖습니다.
notion image
이 때 DR의 scale generalization을 향상시키기 위해서 dice-coefficient loss의 scale-invariant version을 사용합니다. y는 0/1 label map, y\hat은 predicted score map, sum은 2d space에서의 cumulative sum, w는 2d weight map을 뜻합니다. (component wise)
Localization loss로는 smooth L1 손실함수를 사용합니다.
 

Iterative Refinement Module (IRM)

IRM은 Faster R-CNN과 같이 region-based object detection과 유사하지만, RoI pooling이나 RoI align layer 대신 RoI transform layer를 사용합니다. RoI transform layer는 앞의 두 방법에 비해 aspect ratio의 변화 없이 feature extraction이 가능하며, corner point에 가까운 위치에서는 동일한 receptive field에서 더 정확한 boundary information을 얻을 수 있다는 장점이 있습니다.
notion image
DR에서 예측한 proposal로부터 각 코너의 offset 좌표를 더 정확하게 regress하기 위한 corner attention을 도입합니다. corner attention은 각 해당하는 코너의 offset regression에서의 가중치에 해당합니다. 주어진 quadrangle과 shared feature map이 RoI transform layer, convolutional layer를 거치면 rich context f_r을 얻을 수 있습니다. 다음으로 1*1 convolutional layer와 sigmoid를 거쳐 4개의 corner attention map m_a를 얻습니다. 최종적으로 f_r과 m_a의 group dot-product를 통해 다음과 같이 4-corner regression feature를 얻을 수 있습니다. 좌변은 4개의 코너 중 i번째 feature를 뜻하고 m^i_a는 해당 corner attention map을 뜻합니다.
학습 시 DR 이후 K개의 quadrangle이 있다고 할 때, corner regression loss는 다음과 같습니다. c^j_k는 k번째 quadrangle의 GT에 대한 j번째 좌표 offset, c\hat은 해당 offset의 예측값을 나타냅니다.

Shape Extension Module (SEM)

SEM에서는 텍스트 영역 (text region), 텍스트 중심 선 (text center line), 중심 선과 upper/lower border line 사이의 offset (border offset) 이렇게 세 가지 geometry의 regression을 진행합니다.
먼저 텍스트 영역은 binary mask로 정의됩니다. 텍스트 center line 역시 binary mask인데, polygon annotation을 위아래로 수축시킨 형태입니다. Border offset은 4-channel map으로 표시되는데, 다음 그림을 보면 이해하기 쉽습니다.
notion image
먼저 text center line상에 한 지점을 잡고, 해당 점에서 직교하는 normal line을 그린 뒤 normal line이 위/아래 border 와 교차하는 지점들을 표시합니다. 이렇게 생겨나는 두 개의 그러면 교점들을 해당하는 center line 상의 포인트마다 4개의 좌표 (offset)로 나타낼 수 있습니다.
SEM에서의 손실 함수는 다음과 같습니다. IRM에서 넘어온 K개의 quadrangle에 대해 text region과 text center line의 dice-coefficient loss, border의 smooth L1 loss의 합으로 나타낼 수 있는데요, 실험에서 가중치는 각각 0.01, 0.01, 1.0의 값을 사용했습니다.
그 후에는 polygon의 형태를 복원하는 작업을 해줍니다. 먼저 예측된 text line center line map 상에서 동일한 간격으로 n개의 지점들을 sampling합니다. 데이터셋들의 특성을 고려해서 SCUT-CTW1500에서는 n=7, quadrangle로 GT를 표시한 다른 데이터셋들에서는 n=2의 값을 사용했습니다. 그 다음에 border offset map을 이용해서 경계 점들을 표시한 뒤에 이으면 예측한 polygon을 얻을 수 있고, polygon의 confidence score로는 텍스트 영역의 평균값을 사용합니다.
 

Training and Inference

Training

학습 시 손실함수는 앞에서 정의한 세 개의 손실함수의 단순 합으로 정의합니다. (\gamma 값들에 전부 1.0 사용)
학습은 end-to-end로 이루어지며, warming-up과 fine-tuning의 두 가지 단계로 나누어 진행하였습니다. 먼저 warming-up 단계에서는 합성 데이터셋을 이용하여 DR 브랜치만, 그리고 10 epochs만을 학습합니다. 이렇게 DR의 recall을 높이면 실제 데이터셋에서 놓치는 text instance들이 없어집니다. 다음으로 fine-tuning에서는 세 개의 브랜치를 모두 학습합니다. 이 때 IRM과 SEM은 DR에서 나온 결과를 동일하게 사용하고, 그 후에 NMS를 거치게 됩니다. 학습 시 IRM은 iterative하게 동작하지 않고 refinement를 딱 한번만 수행합니다.
초기에는 DR의 proposal 결과가 좋지 않기 때문에, 학습의 수렴이 쉽지 않습니다. 때문에 NMS에서 top K proposal 중 50%를 GT로 교체하여 학습하였습니다.
 

Inference

DR을 통해 quadrangle의 score map과 geometry map을 얻은 후 NMS를 거칩니다. 그 다음 IRM에서 refine, SEM에서 precise text polygon과 confidence score 생성, 마지막으로 low confidence polygon 제거하기 위해 threshold 0.1으로 설정.
 

Experiment

Datasets

  • ICDAR2015: 1000 training, 500 test images. word-level quadrangle GT
  • ICDAR2017-MLT: 7300 training, 1800 validation, 9000 test images. 9 languages. word-level quadrangle GT
  • SCUT-CTW1500: 1000 training and 500 test images. curved text. polygons with 14 vertices.
  • Total-Text: 1255 training images and 300 test images. word-level.
 

Details

  • Warming-up: adam optimizer, lr 10e-4, lr decay factor 0.94
  • Fine-tuing: lr reinitialized to 10e-4
  • Randomly crop text regions and resize them to 512*512, randomly rotated in 4 directions
  • Inference 시 이미지의 aspect ratio는 유지한 채 긴 변을 512로 resize. 이렇게 했을 때 224ms.
 
결과는 다음과 같습니다. 각 그림에서 노란색 polygon은 GT, 파란색은 DR, 초록색은 IRM, 빨간색은 SEM 결과를 나타냅니다.
notion image
 
이미지의 aspect ratio는 유지한 채 긴 변을 고정. (single scale/mulit scale)
 

Ablation Study

  • DR 단독에 비해 DR+IRM의 성능이 좋으며, refinement를 여러 번 할수록 성능이 개선됨. 논문의 나머지 부분에서는 2회로 고정.
notion image
  • DR+IRM에서 corner attention map을 사용하는 경우와 사용하지 않는 경우 icdar2017-rctw로 비교. IoU가 높은 경우에 향상이 더 두드러지는 것으로 볼 때, corner attention map이 긴 instance들을 잘 검출해내는 것으로 보임.
notion image
  • IRM과 SEM의 유무에 따른 차이. SCUT-CTW1500으로 테스트. curved text들에서 SEM에 의한 성능 향상에 매우 큼.
notion image
  • center line상에 포인트 갯수에 따른 성능 비교. (줄어드는 이유는 학습이 잘 안되어서? 4의 가성비가 제일 좋은데 왜 굳이 7..?)
notion image

Long Text

ICDAR2017-RCTW
notion image

Curved Text

SCUT-CTW1500, Total-Text
fine-tuning ~10 epochs
notion image

Oriented Text

ICDAR 2015
notion image
 

Multi-Lingual Text

ICDAR2017-MLT
SynthText pre-trained 후에 10 epoch fine-tune
notion image
 
 
Share article