Deep Learning

[Paper] Deep Structured Output Learning For Unconstrained Text Recognition

ju_young 2022. 3. 7. 22:52
728x90

Abstract

  • natural image에서 word의 unconstrained recognition을 위해 적합한 representation을 개발, 여기서 unconstrained의 의미는 lexicon이 고정되어 있지 않으며 word가 알 수 없는 길이를 가지는 것을 의미한다.
  • CRF(conditional random field) graphical model을 포함하고 전체 word image를 단일 입력으로 사용하는 CNN 기반 architecture를 제안
  • 결과 모델은 character prediction 보다 standard real-world text recognition에 더 정확한 시스템이다.

Introduction

  • 고정된 dictionary 없이 정확하게 수행하는 model에 초점을 맞추면 text recognition의 complexity가 증가하는 문제가 생긴다. 이를 해결하기위해서 1차 조건이 position-dependent한 CNN character predictor의 output이고 고차 조건이 position-independent한 CNN N-gram predictor의 output인 CRF(Conditional Random Field)를 적용한 새로운 CNN architecture를 제안한다.
  • CRF score를 최대화하는 character sequence를 찾아 recognition result를 얻는다.

CNN Text Recognition Models

1. Character Sequence Model Review

  • character sequence model은 word의 각 position에서의 character를 encoding하고 image region의 character sequence를 예측한다. word의 각 position은 단일 CNN로부터 공유된 feature set에 작용하는 independent classifier에의해 modeling된다.
  • N 길이의 w word는 $w = (c_1, c_2, ..., c_N)$과 같은 character sequence로 modeling된다. word에서 position i의 character는 10개의 digit과 26개의 letter의 집합으로 표현된다. 각 $c_i$는 word의 각 character마다 하나씩 단일 classifier로 prediction된다. 하지만 단어에는 test time에서 알 수 없는 가변 길이 N을 가지기 때문에 training set에서 가장 긴 길이의 문자의 character 개수로 고정하고 null character class로 지정한다.

2. Bag-of-N-Grams Model Review

  • 위 character sequence model의 sequential character와 대조적으로 word들은 정렬되지 않은 character N-gram의 집합과 bag-of-N-gram의 구성으로 볼 수 있다.
  • s, w라는 두 개의 string이 있다고 하고 s는 w의 부분 집합이라고 하자. 그리고 word $w$의 N-gram은 N 길이의 substring s를 가진다. 예를 들어 다름과 같이 표현될 수 있다.

  • encoding vector를 나타내기 위해 $G_N$ 뉴런들을 가지는 final fully connected layer를 가진다. fully connected layer는 각 뉴런에 logistic function을 적용함으로써 이미지에 N-gram이 존재할 확률로 해석될 수 있다. 따라서 CNN은 input image에서 어딘가에 있는 각 N-gram의 존재를 인식하기위해 학습하며 N-gram detector도 마찬가지이다.

Joint Model

  • character sequence 사후 확률을 최대로 하는 것은 log-score $log P(w|x) = S(w, x)$를 최대로 하는 것과 동일하다. 그리고 함수를 최대로 하는 것은 각 term을 최대로 하는 것이다.
  • N-gram scoring function $S_e (s, x)$는 길이 N 이하의 각 string s에 점수를 매긴다. N은 N-gram의 최댓값이다.
  • $S_e$ function은 $S_c^i$와 다르게 position_independent하다. 하지만 다음과 같이 word의 각 position에 반복적으로 적용된다.

  • fig 2.에서 보면 score $S_c^i (c_i, x)$는 CNN character predictor로 얻는 것에 비해 $S_e (s, x)$는 CNN N-gram predictor로 얻는다. N-gram scoring function은 CNN에서 modeling된 N-gram의 부분집합 $G_N$로 정의 된다. 만약 s가 $G_N$에 속하지 않는다면 score $S_e (s, x)$은 0이 된다.

Structured Ouput Loss

  • score function $S_c^i$와 $S_e (s, x)$는 각각 character sequence의 output과 N-gram encoding model을 포함한다. 이를 위한 간단한 방법은 softmax와 logistic loss를 없애고 CNN의 output에 가중치를 적용하는 것이다.

- $f_{c_i}^i (x)$: position i에서의 character $c_i$에 대한 character sequence CNN의 output

- $g_s (x)$: N-gram s에 대한 N-gram encoding CNN의 output

 

  • Equation 3의 일반적인 시나리오에서 가중치는 CNN 함수 f와 g에 포함되어 score를 얻을 수 있다.

  • Equation 6에서의 고차원 score의 존재 때문에, 예측 word ($w^*$)를 찾기위한 모든 가능 path들의 space를 철저하게 탐색하기에는 너무 expensive하다. 그래서 가장 높은 점수에 근사한 path를 찾는 beam search를 사용한다.
728x90