Paper Info
CVPR 2016 Paper
Goal of the Paper
텍스트 인식(Text Recognition) 태스크에서 커브 형태 및 자유 형태 또는 촬영 각도 등에 perspective 형태를 가지는 irregular text를 인식하기 위한 방안을 제시
Contribution
본 논문은 irregular한 텍스트 인식을 위해 다음과 같은 방법을 제안하였다.
- 입력 영상의 irregular 텍스트 이미지를 Spatial Transformer Network(*)를 활용한 Thin-plate-spline(TPS) transformation을 통해 regular 텍스트 이미지로 변환하여 문자 인식 수행
- Attention mechanism을 활용한 Sequence Recognition Network(SRN)
(*) Jaderberg, Max, Karen Simonyan, and Andrew Zisserman. "Spatial transformer networks." Advances in neural information processing systems. 2015.
The Proposed Method
Spatial Transformer Network
제안 방법은 STN을 이용하여 입력 영상에 대한 rectification을 수행한다. 이 때, 단순히 STN을 이용한 변환을 수행해서는 학습된 결과가 의도한 irregular text에 대한 rectificiation을 수행하도록 도출되지 않기 때문에 이러한 변환을 수행할 수 있는 explicit한 가이드를 줄 수 있는 방법을 제안하였다.
제안 방법의 핵심은 localization network로 부터 이미지 내의 텍스트 주변의 fiducial points에 대한 예측을 수행하고, grid genarator에서 해당 point들을 TPS(thin-plate-spline) transform을 계산하고, Sampler에서 input image에 대한 rectification을 수행한다.
STN의 장점은 위 모든 연산이 differentiable 한 연산들로 구성되어 각 모듈의 파라미터들이 학습이 가능하다는 점이다.
Localization Network
Localization network는 CNN으로 구성되고 출력은 K개의 좌표 값(=2K)에 대한 regression을 수행한다. 출력 노드는 tanh() activation function을 이용하여, (-1,1) 범위로 노말라이즈된 좌표값을 예측하도록 한다.
이 때 중요한 점은 fiducial point에 대한 GT 없이 오직 back-propagation에 의해 학습된 포인트 위치 좌표로 rectification이 수행된다는 점이다.
Grid Generator
Grid generator는 예측된 fiducial points로 부터 TPS transform을 위한 파라미터를 계산하여, 샘플링 그리드를 생성한다. 샘플링 그리드는 출력 영상(=rectified Image)읭 각 화소에서 입력 영상의 어떤 위치의 화소와 매칭이 되는지를 계산하여, 매칭되는 부분의 화소값을 샘플링해 오는 역할을 한다. 출력 영상에서 fiducial point는 항상 이미지의 상단과 하단에 균일하게 분포되도록 설정하기 때문에, 출력 영상의 base fiducial points C'은 constant이다.
TPS transform의 파라미터는 행렬 T로 표현 된다.
이 때, R'은 두 base fiducal points c'_i, c'_j 간의 euclidean distance로서 contant이고, △C' 는 contant 행렬 C' 와 R'에 의해 결정되므로, 이 또한 constant 이다. (참고로, 행렬 C는 localization network에 의해 예측되는 값이다.)
Rectified 이미지 I'에서의 픽셀 그리드 좌표는 다음과 같이 정의된다.
위 그림 3에서와 같이, Rectified 이미지 I'의 모든 화소에 대한 대응 점 p_i=[x_i,y_i]를 찾기 위해 다음의 변환을 적용한다.
P'의 모든 포인트에 대해 위 변환을 적용하여, 입력 영상 I에 대한, 그리드 P를 생성한다. 참고로, 해당 변환은 두개의 행렬 곱 연산(Eq.1, Eq.4)으로 구성되므로, 미분 가능하다.
Sampler
샘플러에서는 p'의 픽셀 값을 입력 영상의 p 화소 근처 값들로 부터 interpolation하는 역할을 한다.
위 수식에서 V는 bilinear sampler이고, 이 또한 미분가능한 연산이다. 아래는 학습된 STN의 결과 샘플들이다.
Sequence Recognition Network
제안 방법은 문자 인식 문제를 rectify된 문자 이미지에서 문자들의 시퀀스를 인식하는 문제로 모델링하여 해결하였다. 특히, 제안 방법은 attention-based model을 사용하여 문자를 인식한다. 제안 방식은 인코더와 디코더로 구성되어 있으며, 인코더는 입력 영상을 sequenital representation으로 변환하고, 디코더는 이로부터 결과 시퀀스를 생성하는 역할을 한다.
Encoder: Convolutional-Recurrent Network
제안 방법은 CNN으로부터 피처맵을 추출해 낸 후, Map-to-seqeunce 연산을 통해, 피쳐맵을 여러개의 연속된 조각으로 분리한다. Map-to-sequence 연산은 CHW 크기의 피쳐맵을 CH 단위(=column 단위)로 분리하고, 각 조각을 flattening 하여 벡터화 한다. CNN의 translation invariance 특성에 의해 각 벡터는 입력 영상의 특정 local 영역에 대응(=receptive field)한다.
벡터 시퀀스는 2-layer Bidirectional LSTM의 입력으로 사용되어, W와 동일한 길이의 출력 시퀀스 h = (h_1, ..., h_L)를 생성해 낸다.
Decoder: Recurrent Character Generator
디코더는 attention 구조를 가진 GRU 기반의 RNN을 사용한다.
시간 t에서 attention weight는 다음과 같은 수식에 의해 표현된다.
s_(t-1)은 이전 스텝(t-1)에서의 GRU hidden state이다.
위 attention weight와 인코딩된 시퀀스 h로 부터 glimse 벡터 g_t가 계산된다.
GRU state s_(t-1)는 다음과 같은 GRU 연산에 의해 업데이트 된다.
이 때, l_(t-1)은 학습단계에서만 사용되는 문자 GT이고, 테스트 단계에서는 이전 스텝에서 예측된 출력값을 사용한다.
라벨 공간에서의 확률분포는 다음과 같이 구한다.( FC layer + softmax)
문자 단위 출력은 출력 값 중 가장 높은 값을 가지는 클래스로 결정한다.
Model Training
제안 방법의 loss 수식은 다음과 같다.(목표: minimize tge negative log-likelihood)
localization network의 초기화시 fc 레이어의 weight는 0로 두고, biase는 fiducial point의 초기 값이 다음과 같은 위치값을 가지도록 설정한다.
실험에 따르면, 위그림의 (a) 패턴의 경우가 성능이 가장 좋았고, random initialization의 경우는 학습시 converge에 실패 하였다고 한다.
Recognizing With a Lexicon
테스트 환경에서 이미 lexicon 리스트가 주어져 있는 경우, 인식 프로세스는 주어진 리스트의 워드 중에서 가장 높은 posterior conditional probability를 고르는 문제가 된다.
이를 위해서는 모든 워드의 posterior 확률을 계산하여, 그 중 가장 큰 값을 고르면 된다.
하지만, lexicon 사이즈가 매우 큰 경우, 모든 워드의 확률 값을 계산하는 것은 엄청난 연산이 소요되기 때문에 제안 방법에서는 공통된 prefix를 가지는 단어들이 같은 부모 노드를 공유하는 구조의 prefix tree를 구성하여, 연산량을 줄였다.
또는 beam search를 통해 더 개선된 성능을 확보할 수도 있다.
Experiments
제안 방법의 기존의 SOTA 방식과 비교하여 Comparable 한 성능을 달성하였다. 참고로 위 데이터셋들은 regular text와 일부 irregular 한 텍스트 이미지가 혼재되어 있다.
제안방법의 Irregular 텍스트 인식에 특화된 방식의 효과를 확인하기 위해, SVT 데이터셋에서 perspective distortion의 정도가 심한 샘플들로만 구성된 SVT-Perspective 데이터셋의 인식성능을 비교하였다.
그결과 제안 방법이 기존의 대부분의 방식을 크게 앞섰다. (50 lexicon에서 [32]는 제외)
Curved text 위주인 CUTE80 데이터셋에서도 성능을 비교한 결과, SOTA를 달성하였다.
아래는 인식 결과 샘플들이다.
My Opinion
제안 방법은 STN을 활용하여 영상을 rectify한 후 인식을 하는 방식을 제안하였다. 하지만, 결과를 보면, 일반 텍스트 인식에서는 성능 개선 효과가 별로 없고, 일부 심한 irregular 한 텍스트에서만 효과가 있는 걸로 보인다. 특히 매우 심한 curve 를 가진 영상에서는 rectify 성능도 떨어진다.
결론적으로, STN을 이용하는 것이 정말 필요한 것인지 재고가 필요하다.
Share article