Convolutional Character Networks

Inc Lomin's avatar
Apr 19, 2022
Convolutional Character Networks
notion image
notion image

Introduction

 
기존의 RNN based recognition model은 word level에서 optimize하며 direct character level classification에 비해 search space가 매우 큽니다. 따라서 모델이 복잡해지고 학습시간은 오래걸리며 많은 데이터가 필요하게 됩니다.
최근의 연구 [33, 4, 12]에서는 RNN based model에서 character level attention mechanism을 도입함으로써 큰 성능 향상이 나타나는 것을 보였습니다. 이는 character를 더욱 정확히 인식하며, 추가적으로 constraint를 제공하여 search space를 줄여주는 효과를 주어 성능 향상이 따라 오게 되었다고 볼 수 있습니다. 이러한 연구 결과는 character를 정확히 인식하는 것의 중요성을 보여주었고 이러한 아이디어에서 본 논문에서는 character를 direct로 localize하고 recognition 함으로써 단순하지만 효과적인 one-stage fully convolutional E2E model을 만들었습니다.
하지만 char-level bounding box의 ground truth를 얻기 위해서는 매우 큰 비용이 듭니다. 저자는 [36]에서 보여진 것 처럼 text detection model은 상대적으로 generalization capability가 좋다는 점에 착안하여 synthetic data와 real data의 gap을 줄일 수 있다고 해석하였습니다. 이에 real data에 없는 char-level ground truth를 synthetic data에서 보완하고 점진적으로 real data의 char-level detection 성능을 높일 수 있는 iterative한 학습 방법을 제안 하였습니다.
 

main contribution

  • propose CharNet, first(?) one-staged model for detection and recognition.
    • character as basic block.
  • develop an iterative character detection method.
    • character detection ability from synthetic data to real world images.
  • outperforms recent two stage approaches.

Proposed Method

 
notion image
 
모델은 backbone network, character branch, text detection branch로 구성됩니다.
Backbone network는 resnet-50와 두개의 hourglass network를 사용하였습니다.
 

Character branch

3개의 sub branch로 구성됩니다.
  • Text instance segmentation sub-branch :
    • 2-channel feature map 출력 (text or non-text)
  • Character detection sub-branch :
    • 5-channel feature map 출력 (t, b, r, l and orientation)
  • Character recognition sub-branch :
    • 68-channel probability maps. 26 English characters, 10 digital numbers and 32 special symbols.
 

Text Detection Branch

character를 grouping 하는 방법은 heuristic하며 text가 모여있는 경우 grouping하기가 매우 복잡해 지기 때문에 instance(word) level의 branch를 사용하였습니다.
여러 각도로 회전된 text와 curved text를 다루기 위해 기존에 알려진 instance-level text detection 모델을 차용하였습니다.
  • Multi-Orientation Text
    • EAST detector(X. Zhou, 2017)를 차용하였습니다. 출력은 2-channel의 text, non-text probability와 5-channel의 bounding box + orientation angle feature map입니다.
  • Curved Text
    • curved text에 대해서는 Textfield(Y. Xu, 2019)를 차용하였습니다.
 

Generation of Final Results

instance(word) level의 prediction으로 출력된 character들을 조건(IoU > 0)을 만족하면 grouping 합니다. 최종 출력물은 character bounding box, instance bounding box, 그리고 character label입니다.
 

Iterative Character Detection

synthetic data의 character detection ability를 real data로 점진적으로 확장할 수 있는 iterative한 학습 방법을 제안 하였습니다.
각 step은 다음과 같은 과정을 따릅니다.
 
  1. train initial model on synthetic data, where char-level and instance-level annotations are available. 그리고 real data로 학습.
  1. real data에 대해 아래 rule을 따랐을때 “correct”한 char-level bounding box를 수집하여 이후 학습에 사용.
  1. 이 과정을 반복하여 점진적으로 character detection의 성능을 향상. (Fig. 3, Table 2)
 
Rule : real data에 대해 모델이 예측한 character bounding box의 개수가 annotation text의 길이와 동일한 경우 char-level bounding box detection에 성공한 것으로 가정.
Fig. 3. 과 Table 2에서 각 iteration step에 따라 char-level detection의 성능이 어떻게 점진적으로 개선되는지 확인 할 수 있습니다.
 
notion image
notion image
 

Experiment

 
아래의 3 benchmark 데이터 셋을 학습과 평가에 사용하였습니다.
ICDAR 2015, Total-Text, ICDAR MLT 2017, and Synth800k(synthetic)
 
4 iteration step에 걸처 학습 시키며 첫번째는 합성 데이터인 Synth800k만으로 학습시키고 나머지 3회는 real data를 추가하여 학습을 시켰습니다.
 
Results on text detection
FOTS와 동일한 backbone을 사용하여 비교.
notion image
 
End-to-end results on ICDAR 2015
notion image
 
Results on Total-Text (for curved text)
notion image
 
Share article