[논문 full 번역 + 이해를 위한 추가설명] CRNN, An End-to-End Trainable Neural Network for Image-based Sequence Recognition and Its Application to Scene Text Recognition
+ 이나스AI에는 인공지능 관련 다양한 강의가 있습니다.
- Object detection, Text To Speech, Reinforcement learning, OCR, Chatbot, Time series prediction,
- Meta learning, eXplainable AI, Transformer/BERT/GPT, Graph-based ML, etc
- 소스코드, 다이어그램 및 중간데이터에 기반하여 인공지능 알고리즘들의 작동원리와 구조를 이해하기 쉽고 정확하게 설명합니다.
+ 작업할 때 켜놓는 라이브 스트리밍 study with me 채널도 운영하고 있습니다.
[] 안에는 의미를 명확히 하고자 원문 영어 표현이,
() 안에는 원문에서 작성된 부연 설명이,
<> 안에는 이해를 돕기 위해 번역자가 추가한 부연 설명이 작성되었습니다.
더 나은 표현 및 코멘트를 위해 계속 업데이트 합니다. 최종 수정 2022 10 04 Tue
https://arxiv.org/pdf/1507.05717.pdf
Abstract
Image 기반으로 sequence를 인식하는 것은 computer vision분야에서 오랜 연구 주제이다. 이 연구에서, 우리는 image 기반의 sequence 인식에서 가장 중요하고 도전적인 작업인, 장면에서 text를 인식하는 문제를 살펴볼 것이다. Feature 추출, sequence modeling, transcription 을 통합하는 참신한 neural network 구조가 제안된다. Scene text recognition을 위한 이전의 systems와 달리, 제안된 구조는 네개의 뚜렷한 특징을 갖는다. (1) train과 tune이 개별적으로 진행되는 대부분의 기존 algorithm과 달리 end-to-end로 훈련가능하다. (2) 문자 segmentation이나 수평적인 scale 정규화없이도 임의의 길이에 대한 sequences를 다룰 수 있다. (3) 우리의 방법은 사전에 정의된 lexicon에 구속되지 않으며, lexicon-free 및 lexicon-based scene text recognition tasks에서 높은 성능을 달성했다. (4) 효과적이지만 작은 model로 구현되기때문에, real-world application scenarios에서 실용적이다. IIIT-5K, Street View Text 그리고 ICDAR datasets과 같은 표준 benchmarks에서의 실험들은 과거의 연구를 능가하는 제안된 algorithm의 우수성을 입증한다. 더욱이, 제안된 algorithm은 image 기반의 음표 인식 작업에서 잘 동작하며, 이것은 우리 model의 일반화 성능을 증명한다.
1. Introduction
최근, 우리는 deep neural network models의 큰 성공에 영향받은 neural networks의 강한 부흥을 보고있으며, 특히, 다양한 vision tasks에서 Deep Convolutional Neural Networks (DCNN)이 그러하다. 그러나, 대다수의 최근 연구는 물체의 categories에 대한 detection이나 classification에 적용되고 있다. 이 연구에서는, computer vision에서의 고전적 문제인 image 기반의 sequence recognition을 살펴보고자 한다. 실 세계에서, scene text<이미지 내에 표시되는 글자들>, 손글씨, 음표 등 시각적 물체들은 sequence형태로 나타나는 경향이 있다. 일반적인 object recognition과 다르게, sequence와 같은 물체를 인식하는 것은 하나의 label 대신에, 연속적인 object labels을 예측하는 system을 요구한다. 따라서, 그러한 물체들의 recognition은 자연히 sequence recognition 문제로 정의될 수 있다. Sequence와 같은 물체들의 다른 고유한 특성은 그것들의 길이가 다양한다는 것이다. 예를 들어, 영어 단어들은 OK와 같이 2개 문자로 구성되거나 congratulations와 같이 15개 문자들로 구성될 수 있다. 결과적으로, DCNN과 같이 대부분의 인기있는 deep models는 직접적으로 sequence prediction에 적용될 수 없다. 왜냐하면, DCNN models는 고정된 차원의 입력과 출력으로 동작하기 때문이고, 따라서 DCNN models는 동적으로 변하는 길이의 label sequence를 출력할 수 없다.
특정 sequence와 같은 물체 (예를 들어, scene text)에 관한 이러한 문제를 해결하기 위해 몇몇 시도가 있었다. 예를 들어, 이전의 연구에서는 먼저 개별 문자들을 detect하고, 이후 DCNN models로 detected된 문자들을 인식 [recognition] 한다. 그러한 방법들은 원본 단어 image로 부터 정확하게 각 문자들을 detection하고 cropping하기 위해 강한 문자 detector를 훈련하는 것을 요구한다. 다른 접근법들은 scene text recognition을 각 영어 단어 (총 90K개)에 대해 class label를 부여하는 image classification 문제로 다룬다. 매우 많은 수의 classes로 훈련된 model은 중국어 texts, 음표 등과 같은 다른 종류의 sequence-like objects로 일반화 되기 어려운데, 왜냐하면, sequences의 조합이 백만이상이기 때문이다. 요약하자면, DCNN에 기반한 현재 systems는 image-based sequence recognition에 직접적으로 사용되기 힘들다.
Deep neural networks family에서 다른 중요한 분파는 recurrent neural networks (RNN) models이며, sequences를 다루기위해 설계되었다. RNN의 장점 중 하나는 그것이 훈련과 테스트에서 sequence object를 포함하는 image에서 각 요소의 위치가 필요하지 않다는데 있다. 그러나, 입력 object image를 image features의 sequence로 변환하는 전처리가 대게 필수적이다. 예를 들어, Graves는 손글씨 texts에서 기하학적 또는 image features를 추출했고, Su와 Lu는 단어 images를 sequential HOG features로 변환했다. 전처리 과정은 pipeline에서 후속 요소들과 독립적이기 때문에, RNN에 기반한 기존 systems은 end-to-end 방식으로 훈련되고 최적화 될 수 없다.
Neural networks에 기반하지 않는 몇몇의 전통적인 scene text recognition 방법들은 통찰력있는 ideas와 참신한 표현들을 이 분야에 가져다주었다. 예를 들어, Almazan과 Rodriguez-Serrano는 단어 images와 text strings를 공통의 vectorial subspace에 embed하는 방법을 제안했고, 따라서, 단어 인식은 retrieval 문제로 변환되었다. Yao와 Gordo는 scene text recognition을 위해 mid-level features를 사용했다. Standard benchmarks에서 괜찮은 성능을 달성하기는 했지만, 이러한 방법들은 neural networks기반의 이전의 algorithms 및 이 연구에서 제안된 방법보다 성능이 낮았다.
본 연구의 주요한 기여는 images 내에서 sequence-like objects를 이식하도록 설계된 network 구조를 갖는 참신한 neural network model이다. 제안된 neural network model은 DCNN과 RNN의 조합으로 구성되기 때문에, Convolutional Recurrent Neural Network (CRNN)으로 명명되었다. Sequence-like objects에 대하여, CRNN은 기존의 neural network models에 비해 다음의 뚜렷한 장점을 갖는다. 1) 상세한 annotations없이 (예를 들어, 문자들), sequence labels (예를 들어 단어들) 로 부터 직접적으로 학습될 수 있다. 2) image data로 부터 유용한 표현들을 학습할 때의 DCNN의 동일한 특성을 가지므로, binarization/segmentation, component localization 등과 같은 hand-craft features와 전처리 과정을 요구하지 않는다. 3) sequence labels를 출력할 수 있는 RNN이 갖는 동일한 특성을 보유한다. 4) 훈련 및 테스트 단계에서 높이 정규화만 필요하고, sequence-like objects의 길이에는 제한되지 않는다. 5) 과거의 연구와 비교해서 scene texts (word recognition)에서 더 높거나 또는 경쟁력있는 성능을 보인다. 6) 표준적인 DCNN model보다 훨씬 적은수의 parameters를 사용하고, 따라서, 적은 저장 공간을 소모한다.
2. The Proposed Network Architecture
Fig. 1에 보여지는 CRNN의 network architecture는 아래에서 윗 방향으로 convolutional layers, recurrent layers, transcription layer를 포함하는 세개의 요소로 구성된다.
CRNN의 하단에서, convolutional layers는 각 입력 image로 부터 자동으로 feature sequence를 추출한다. Convolutional network 위에는 convolutional layers에서 출력된 feature sequece의 각 frame에 대한 예측을 만들기 위해 recurrent network가 구축되었다. CRNN의 상단에는 recurrent layers에서 만들어진 각 frame에 대한 예측을 label sequence로 변환해주는 transcription layer가 적용되었다. CRNN은 다른 종류의 network architectures (예를 들어, CNN and RNN)로 구성되기는 하지만, CRNN은 하나의 loss function에 의해 통합적으로 훈련된다.
Figure 1. Network 구조. 구조는 세개의 part로 구성된다. 1) input image로 부터 feature sequence를 추출하는 convolutional layers. 2) 각 frame에 대한 label 분포를 예측하는 recurrent layers. 3) 각 frame에 대한 예측들을 label sequence로 변환해주는 transcription layer.
2.1. Feature Sequence Extraction
CRNN model에서, convolutional layers 요소는 표준적인 CNN model에서 fully-connected layers를 제외한 convolutional layers와 max-pooling layers를 가져와서 구축되었다. Convolutional layers는 input image로 부터 sequential feature 표현을 추출하기 위해 사용되었다. Network에 데이터가 입력되기 전에, 모든 images는 동일한 높이로 조정되었다. convolutional layers에서 출력된 feature maps로 부터 feature vectors의 sequence가 추출되었고, 이것은 recurrent layers 쪽으로 input이 되었다. 구체적으로, feature maps에서 column에 대하여 왼쪽에서 오른쪽 방향으로 feature sequence의 feature vector가 생성되었다. 이것은 i번째 feature vector는 모든 feature maps에서 i번째 columns를 concatenation한 것을 의미한다. 우리의 setting에서 각 column의 너비는 1 pixel로 고정되었다.
Convolution, max-pooling, elementwise activation function들로 구성된 layers는 local regions에서 동작하기 때문에, 그들은 translation invariant하다. 따라서, feature maps의 각 column은 original image의 사각형 영역에 상응하며, 이는 receptive field라고 볼 수 있다. 그러한 사각형 영역들은 상응하는 feature maps의 columns와 왼쪽에서 오른쪽으로 동일한 순서에 있다고 할 수 있다. Fig. 2에서 기술된 것 처럼, feature sequence에서 각 vector는 receptive field와 관련이 있고, 그것들은 그 영역에 대한 image descriptor라고 간주될 수 있다.
Deep convolutional features는 robust하고 훈련 가능한 특성이 있어서, 다양한 종류의 visual recognition tasks에 광범위하게 적용되어오고 있다. 이전의 접근법들은 scene text와 같은 sequence-like objects에 대하여 robust representation을 학습하기 위하여 CNN을 사용했다. 이러한 접근법들은 CNN을 사용하여 전체 이미지에서 전체적인 representation을 추출하고, sequence-like objects의 각 요소들을 인식하기위하여 local deep features가 모아진다. CNN은 고정된 입력 차원을 받을 수 있으므로 input images가 고정된 크기로 scaled되는 것을 요구한다. 그러나 sequence-like objects에 대해서는 그것들의 길이가 매우 다양해서 그러한 요구가 적절하지 않다. CRNN에서, 우리는 deep features를 sequential representations으로 변환했는데, 이는 sequence-like objects의 length variation에 invariant하게 만들기 위함이다.
Figure 2. Receptive field. 추출된 feature sequence에서 각 vector는 input image에서 receptive field와 관련되며, 그 receptive field에 대한 feature vector로 간주될 수 있다.
2.2. Sequence Labeling
Convolutional layers 윗 단에, recurrent layers로서 deep bidirectional Recurrent Neural Network가 구축되었다. Recurrent layers는 feature sequence $$$\textbf{x} = x_1,\dots,x_T$$$ 에서 각 frame $$$x_t$$$에 대한 label distribution $$$y_t$$$를 예측한다. Recurrent layers의 장점은 크게 세가지 정도로 볼 수 있다. 첫째로, RNN은 sequence에서 문맥 정보를 추출하는 좋은 능력이 있다. Image-based sequence recognition에서 contextual cues를 사용하는 것은 각 기호를 독립적으로 처리하는 방법보다 더 안정적이고 유용하다. scene text recognition을 예로 들자면, 폭이 넓은 문자들은 그것이 전체적으로 표현되기 위해 아마 더 많은 연속적 frame을 가져야 할 것 이다 (Fig. 2 참조). 게다가, 몇몇의 모호한 문자들은 그것들의 context를 고려했을 때, 구별하기 더 쉽다. 예를 들어, "il"을 인식 할 때, i와 l을 각각 독립적으로 인식하는 것 보다, 이것들의 높이를 비교함으로써 "il"을 인식하는 것이 더 쉽게 된다. 둘째로, RNN은 error differentials <gradients로 보면 될듯 함>을 input쪽으로, 예를 들어서, convolutional layer 쪽으로 역전파할 수 있는데, 이것은 하나의 통합된 network 관점으로 recurrent layers와 convolutional layers를 같이 훈련하는 것이 가능하게 한다. 셋째로, RNN 임의의 길이를 갖는 sequence를 시작에서 종료까지 가로지르면서 처리할 수 있다.
전통적인 RNN unit은 입력과 출력 사이에서 self-connected hidden layer를 갖는다. Sequence의 frame $$$x_t$$$를 받을 때, 현재 input인 $$$x_t$$$와 과거의 state인 $$$h_{t-1}$$$를 함께 받아서 처리 한 후, non-linear 함수를 통과시켜서, internal state인 $$$h_t$$$를 update하며, 이 과정은 다음 수식으로 표현된다: $$$h_t = g(x_t,h_{t-1})$$$. 그런 뒤, 예측 $$$y_t$$$는 $$$h_t$$$에 기반하여 생성된다. 이러한 방식으로, 과거의 contexts $$$\{ x_{t^{'}} \} _{t^{'} < t}$$$가 추출되고 이것들은 예측을 위해 활용된다. 그러나, 전통적인 RNN unit은 vanishing gradient 문제를 겪는데, 이는 RNN unit에 저장하는 context의 범위를 제한하게 되며, 훈련 과정의 부담을 가중시킨다. Long-Short Term Memory (LSTM)은 이러한 문제를 해결하기 위해 고안된 RNN unit의 한 종류이다. LSTM (Fig. 3에 기술됨)은 memory cell과 input, output, forget gates로 이루어진 multiplicative gates로 구성된다. 개념적으로, memory cell은 과거의 contexts를 저장하고, input 및 output gates는 cell이 긴 시간으로 구성된 contexts를 저장하도록 하는 돕는 역할을 한다. 한편, cell에서 memory는 forget gate에 의해서 지워질 수 있다. 이러한 LSTM의 특별한 설계는 image-based sequences에서 빈번하게 발생하는 긴 범위의 dependencies를 추출하게 한다.
LSTM은 오직 과거의 contexts만 사용하는 방향성이 있다. 그러나, image-based sequences에서, 앞방향 및 뒷방향의 양방향으로부터의 contexts는 그들 사이에 보완적이기 때문에 더 유용하다. 따라서, 우리는 두개의 LSTMs를 결합한 directional LSTM을 사용했으며, 하나는 앞방향의 context를, 다른 하나는 뒷방향으로의 context를 고려한다. 나아가서, 여러개의 bidirectional LSTMs은 쌓아져서 Fig. 3.b에 기술된 것 처럼 deep bidirectional LSTM으로 사용되었다. 이러한 deep structure는 image에서 고차원의 정보 <예를 들어, 이미지에서 저차원 정보 : 선과 경계 등에서 나타나는 pattern, 고차원 정보 : 물체의 형태에서 나타나는 pattern>를 더 잘 추출하게 하며, 음성 인식 작업에서 큰 성능 향상을 달성하게 했다.
Recurrent layers에서는, error differentials는 Fig. 3.b에서 화살표로 보여지는 진행방향과 반대 방향으로 역전파 되었으며, 이는 Back-Propagation Through Time (BPTT) 이라고 불린다. Recurrent layers의 아랫 부분에서, 역전파된 gradients sequence가 maps로 concatenation되어 convolution layers에 들어간다. 이는 마치 convolution layers에서 feature maps를 feature sequence로 변환하는 처리를 역방향으로 진행하는 것이라고 볼 수 있다. 실제적으로, 우리는 "Map-to-Sequence" 라고 불리는 custom network layer를 만든다고 볼 수 있으며, 이것은 convolutional layers와 recurrent layers 사이를 연결하는 역할을 한다.
2.3. Transcription
Transcription은 각 frame에 대해 만들어진 RNN의 예측을 label sequence로 변환하는 과정이다. 수학적으로, transcription은 각 frame에 대한 예측이 주어졌을 때, label sequence에 대한 가장 높은 조건부 확률을 찾는 것이다. 실제적으로, transcription에는 lexicon-free transcription과 lexicon-based transcription 두가지 방식이 있다. Lexicon이란 예측을 filtering 해주는 label sequences의 집합이며, 예를 들자면, spell checking dictionary 같은 것이 있을 수 있다. Lexicon free mode에서 예측은 lexicon없이 만들어 진다. Lexicon-based mode에서의 예측은 가장 높은 확률을 갖는 label sequence를 선택함으로써 만들어진다.
2.3.1 Probability of label sequence
우리는 Graves 등에 의해 제안된 Connectionist Temporal Classification (CTC) layer에서 정의된 조건부 확률을 적용한다. 각 frame에서의 예측 $$$y=y_1,\dots,y_T$$$이 주어졌을 때, label sequence l에 대한 조건부 확률이 정의되며, label sequence l에서 각 label이 어디에 위치하는지에 대한 정보는 무시된다. <이미지 내에 apple라는 text가 표시될 때, a,p,p,l,e 라는 5개의 label로 구성된 label sequence가 중요하지, 이미지 내에서 a의 위치, p의 위치,.. 등은 중요하지 않다는 의미> 결과적으로, 우리가 이 확률에 대한 negative log-likelihood를 network 훈련을 위한 objective로 사용할 때, image와 label sequence <apple text 포함된 이미지와 a,p,p,l,e text 문자들> 만 필요하며, 각 문자들에 대하여, 이미지 내에서 그 위치를 labeling 하는 수고로움을 겪을 필요가 없다.
조건부 확률은 다음과 같이 공식화 된다. <RNN으로부터 생성된> 입력은 sequence $$$\textbf{y} = y_1,\dots,y_T$$$으로 표현되며, T는 sequence 길이다. $$$y_t \in \mathbb{R}^{|\mathcal{L}^{'}|}$$$는 집합 $$$\mathcal{L}^{'} = \mathcal{L} \cup $$$에서의 확률 분포이며, $$$\mathcal{L}$$$은 작업에서의 모든 labels (예를 들어, 모든 영어 문자들) 와 "-" 으로 표시되는 "blank" label을 포함하는 것이다. Sequence에서 sequence로 mapping 하는 함수 $$$\mathcal{B}$$$는 sequence인 $$$\pi\in\mathcal{L}^{'T}$$$에서 정의되며, T는 길이를 의미한다. $$$\mathcal{B}$$$는 반복되는 labels를 제거하고, "blank"를 제거함으로써 $$$\pi$$$를 $$$l$$$로 mapping한다. 예를 들어, 함수 $$$\mathcal{B}$$$는 --hh-e-l-ll-oo-- (- 는 blank 를 표현함) 을 hello 로 mapping 한다. 조건부 확률은 $$$\mathcal{B}$$$에 의해서 l 로 mapping된 모든 $$$\pi$$$에 대한 확률들의 합으로 나타낼 수 있다.
$$$$p(\mathbf{l}|\mathbf{y}) = \sum\limits_{\boldsymbol{\pi}: \mathcal{B}(\boldsymbol{\pi})=\mathbf{l}} p(\boldsymbol{\pi}|\mathbf{y})\;\;\;\;\; (1)$$$$
$$$\pi$$$에 대한 확률은 $$$p(\boldsymbol{\pi}|\mathbf{y}) = \sum\limits_{t=1}^{T} y_{\pi_t}^{t}$$$ 으로 정의된다. $$$y_{\pi_t}^{t}$$$ 는 time stamp t에서 label $$$\pi_t$$$를 가질 확률이다. 직접적으로 Eq. 1을 계산하는 것은 더해지는 항들의 개수가 기하급수적으로 증가하기 때문에 사실상 불가능하다. 그러나, Eq. 1은 forward-backward algorithm <dynamic programming 관련 문제를 푸는 방법>을 사용하여 효율적으로 연산될 수 있다.
2.3.2 Lexicon-free transcription
이 mode에서, Eq. 1식에서 정의된 확률 중 가장 높은 확률을 갖는 sequence $$$\mathbf{l}^*$$$가 예측으로써 입력된다. 정확하게 solution을 찾아주는 실행가능한 algorithm이 없으므로, 이전의 연구에서 적용된 전략을 사용하였다. Sequence $$$\mathbf{l}^*$$$는 다음의 수식을 통해 근사적으로 찾아진다.
$$$$\textbf{l}^*\approx \mathcal{B}(\arg_{\boldsymbol{\pi}} \max p(\boldsymbol{\pi}|\mathbf{y}))$$$$
예를 들어서, 각 time stamp t에서 가장 유망한 label $$$\pi_t$$$를 가져와서, $$$\mathbf{l}^*$$$로 mapping 하는 것이다.
2.3.3 Lexicon-based transcription
Lexicon-based mode에서는, 각 test sample은 lexicon $$$\mathcal{D}$$$와 관련된다. 기본적으로 label sequence는 Eq. 1에 정의된 가장 높은 조건부 확률을 갖는 sequence를 선택함으로써 인식된다. 예를 들어, 아래와 같이 표현될 수 있다.
$$$$\textbf{l}^* = \arg_{\textbf{l}\in \mathcal{D}} \max p(\textbf{l}|\textbf{y})$$$$
그러나, 50k개의 단어를 포함하는 Hunspell spell-checking 사전과 같은 큰 규모의 lexicons을 예로 들어 본다면, Equation 1을 연산하여 가장 높은 확률을 갖는 하나를 선택하기 위해 lexicon에서의 모든 문장들에 대하여 exhaustive search를 수행하는 것은 많은 시간이 소모된다. 이 문제를 해결하기 위해, 우리는 2.3.2에서 기술된 lexicon-free transcription을 통해 예측된 label sequences는 edit distance metric에서 빈번하게 ground-truth와 가깝다는 것을 관찰했다. 이것은 우리의 탐색 결과들을 nearest-neighbor candidates $$$\mathcal{N}_{\delta}(\mathbf{l}^{'})$$$으로 제한할 수 있다는 것을 가리킨다. $$$\delta$$$는 최대 edit distance 이며, $$$\mathbf{l}^{'}$$$는 lexicon-free mode에서 $$$\mathbf{y}$$$로 부터 transcribed된 sequence이다.
$$$$\mathbf{l}^* = \arg_{\mathbf{l}\in\mathcal{N}_{\delta}(\mathbf{l}^{'})}\max p(\mathbf{l}|\mathbf{y})\;\;\;\;\; (2) $$$$
Candidates $$$\mathcal{N}_{\delta}(\mathbf{l}^{'})$$$은 discrete metric spaces 상에서 tree 구조 특이적으로 적응된 지표인 BK-tree 자료 구조에 기반하여 효율적으로 찾아질 수 있다. BK-tree의 탐색 시간 복잡도는 $$$\mathcal{O}(\log{|D|})$$$이며, $$$|D|$$$는 lexicon 크기이다. 따라서, 이러한 방법은 큰 lexicon으로 확장된다. 우리의 접근법에서는, BK-tree는 lexicon을 위해 offline으로 구축되었다. 그런 뒤 우리는 tree와 함께 빠른 online 탐색을 수행했는데, 이 과정에서, query sequence에 $$$\delta$$$ edit distance 가 같거나 작은 거리값을 갖는 sequences를 찾았다.
2.4. Network Training
Training dataset은 $$$\mathcal{X} = \{\mathit{I}_i , \mathbf{l}_i \}_{i}$$$으로 표현될 수 있다. $$$\mathit{I}_i$$$는 훈련 image이며 $$$\mathbf{l}_i$$$는 ground truth label sequence이다. 최소화 해야하는 objective는 ground truth가 주어졌을 때의 조건부 확률의 negative log-likelihood이다. $$$$\mathcal{O} = -\sum\limits_{\mathit{I}_i, \mathbf{l}_i \in \mathcal{X}} \log{p(\mathbf{l}_i|\mathbf{y}_i)} \;\;\;\;\; (3)$$$$
$$$\mathbf{y}_i$$$는 $$$\mathit{I}_i$$$로 부터 recurrent layer와 convolutional layer에 의해 산출된 sequence이다. Image와 이것의 ground truth label sequence가 주어지면, 이 objective function은 직접적으로 cost value를 계산한다. 따라서, 모든 개별 문자들에 대한 그 위치 등을 labeling 해야하는 절차 없이, images와 sequences의 여러 쌍들이 dataset으로 주어지면, network는 end-to-end 방식으로 훈련될 수 있다.
Network는 stochastic gradient descent (SGD) 방식으로 훈련되었다. Gradients은 back-propagation algorithm을 통해 계산되었다. 특히, transcription layer에서는, error differentials는 forward-backward algorithm으로 역전파되었다. Error differentials을 계산하기 위해, recurrent layers에서는 Back-Propagation Through Time (BPTT)이 적용되었다.
최적화를 위해, per-dimension learning rates을 자동으로 계산하는 ADADELTA가 사용되었다. 기존의 momentum 방법과 비교하여, ADADELTA는 수동적인 learning rate 설정을 요구하지 않는다. ADADELTA로 최적화 하는 것은 momentum 방식보다 더 빠르게 수렴했다.
3. Experiments
CRNN model의 효과성을 평가하기 위하여, vision tasks에서 어렵다고 알려져있는 scene text recognition에 대한 표준적인 benchmark datasets와 musical score recognition에 대해 실험을 수행하였다. 훈련과 테스트를 위한 datasets와 setting은 Sec. 3.1에 기술되어있으며, scene text images에 대한 CRNN의 상세 설정은 Sec. 3.2에 기술되었고, 종합적인 비교 결과는 Sec. 3.3에 보고되었다. CRNN의 일반화 능력을 입증하기 위하여, 우리는 CRNN을 music score recognition task에 적용했고 관련내용은 Sec. 3.4에 기술되었다.
3.1. Datasets
Scene text recognition에 있어 실험들을 위해, 우리는 Jaderberg 등에 의해 출판된 synthetic dataset (Synth)를 훈련 data로 사용하였다. Dataset은 8백만장의 훈련 images와 images에 상응하는 ground truth 단어들을 포함한다. 이러한 images는 synthetic text engine에 의해 생성되었고, images는 상당히 현실적이다. 우리의 network는 synthetic data로 한번 훈련된 후, 모든 다른 real-world test datasets에 의해 fine-tuning없이 test 되었다. CRNN model은 synthetic text data로만 훈련되었지만, standard text recognition benchmarks에 있는 real images에도 잘 동작하였다.
ICDAR 2003 (IC03), ICDAR 2013 (IC13), IIIT 5k-word (IIIT5k), 그리고 Street View Text (SVT)와 같이 scene text recognition을 위한 네개의 인기있는 benchmarks가 성능 평가를 위해 사용되었다.
IC03 test dataset은 labeled text bounding boxes를 가지는 251개의 scene images로 구성된다. 알파벳이나 숫자 문자가 포함되지 않은 image나 3개 문자보다 적인 text가 포함된 image는 실험에서 제외하였고, 최종적으로 860개의 cropped text images를 얻었다. 각 test image는 50-words lexicon과 관련되었다. Full lexicon은 image 당 lexicons를 통합함으로써 구축되었다. 추가로, 우리는 Hunspell spell-checking dictionary의 단어들로 구성된 50k개의 words lexicon을 사용하였다.
IC13 test dataset은 대부분의 data를 IC03에서 가져왔다. Cropped word images로써 1015개의 ground truths를 포함한다.
IIIT5k는 internet에서 수집된 3000개의 cropped word test images를 포함한다. 각 image는 50-words lexicon과 1k-words lexicon에 관련된다.
SVT test dataset은 Google Street View에서 수집된 249장의 street view images로 구성된다. 이것으로부터, 647장의 word images가 cropped되었다. 각 word image는 Wang 등에 의해 정의된 50 words lexicon를 갖는다.
Table 1. Network 설정 요약. 첫번째 행은 top layer이다. k, s, p는 각각 kernel size, stride, padding size를 의미한다.
Table 2. 다양한 방법들 간의 비교. 비교를 위한 특성은 다음과 같다. 1) end-to-end 훈련 가능한지 (E2E Train); 2) 수작업으로 만들어진 features 대신에 images에서 직접 추출된 convolutional features를 사용하는지 (Conv Fits); 3) 훈련과정에서 문자들에 대한 ground truth bounding boxes를 요구하지 않는지 (CharGT-Free); 4) 사전에 정의된 dictonary에 제약되지 않는지 (Unconstrained); 5) (먄약, end-to-end 훈련 가능한 model이 사용되었을 때) model의 parameters 개수로 측정된 model의 크기 (Model Size, M은 백만을 의미함)
Table 3. 4개의 datasets에서 인식 정확도 (%). 두번째 행에서, "50", "1k", "50k", "Full" 은 lexicon이 사용되었음을 가리킨다. "None"은 lexcon없이 recognition되었음을 가리킨다. (*는 엄격하게 lexcon-free는 아니다. 그것의 출력이 90k dictionary에 제약되기때문이다.)
3.2. Implementation Details
우리의 실험에서 사용한 network configuration은 Table 1에 요약되었다. Convolutional layers의 구조는 VGG-VeryDeep 구조에 기반한다. English texts를 인식하도록 하기위해 약간의 개조가 적용되었다. 세번째와 네번째 maxpooling layers에서, 일반적으로 사용되는 정사각 형태가 아니라, 1x2 크기의 직사각형 pooling windows를 사용하였다. 이러한 개조는 더 긴 feature sequence를 허용하도록 폭이 더 긴 feature map을 산출하였다. 예를 들어, 10개의 문자들을 포함하는 image는 대게 크기가 100x32이며, 이 크기면 feature sequence 로써 25 frames가 생성될 수 있다. 이 길이는 대부분의 English words의 길이를 초과한다. 직사각형의 pooling windows는 직사각형의 receptive fields를 만들어 내며 (Fig. 2에 기술됨), 이러한 형태는 "i"나 "l" 같이 폭이 좁은 형태의 문자들을 인식하기위해 유용하다.
Network는 deep convolutional layers 뿐만 아니라 recurrent layers도 가진다. 두 종류의 network는 훈련하기 어렵다고 알려져 있다. 이러한 깊이의 network를 훈련시킬 때, batch normalization을 적용하는 것은 매우 유용했다. 다섯번째 그리고 여섯번째 convolutional layers 뒤에 각각 batch normalization layers가 삽입되었다. batch normalization layers가 적용된 후, 훈련 과정은 매우 가속되었다.
우리는 network를 Torch7 framework로 구현하였고, LSTM units (Torch7/CUDA), transcription layer (C++), BK-tree data structure (C++)에는 custom implementations을 적용하였다. 실험은 2.50 GHz Intel(R) Xeon(R) E5-2609 CPU, 64GB RAM, NVIDIA(R) Tesla(TM) K40 GPU 장비로 구성된 workstation에서 수행되었다. Networks는 parameter \rho가 0.9로 설정된 ADADELTA로 훈련되었다. 훈련이 진행될 때, 훈련을 가속시키기 위하여 모든 images는 100 × 32으로 scaled되었다. 훈련 과정은 수렴까지 50시간 정도 소요되었다. Testing images는 높이가 32를 갖도록 scaled되었다. 폭은 높이에 비례하여 scaled 되었는데, 단, 최소 100 pixel로 하였다. 평균 testing time은 lexicon 없이 IC03에서 측정 결과 0.16s/sample이었다. parameter $$$\delta$$$ 가 3으로 설정된, IC03의 50k개의 lexicon에 approximate lexicon search가 적용되었다. 각 testiing sample은 평균 0.53s 소모했다.
3.3. Comparative Evaluation
위의 네개의 공개 datasets에서 CRNN model에 의해 얻어진 인식 정확도와 deep models에 기반한 접근법을 포함하는 최근 state-of-the-arts 기술들은 Table 2에 기술되었다.
Constrained lexicon cases에서, 우리 방법은 일관적으로 대부분의 state-of-the-arts 접근법들을 능가했고, 또한, 평균적인 면에서, 가장 좋은 text reader보다도 성능이 좋았다. 구체적으로, 이전 연구 대비, "Full" lexicon을 사용했을 때, IC03에서만 더 낮은 성능을 보고했고, IIIT5k와 SVT에서는 더 좋은 성능을 얻었다. 이전의 한 연구에서의 model은 특정 사전에 기반하여 훈련되었고, 이 말은, 각 단어는 class label에 관련되었다고 볼 수 있다. 이 과거의 연구와는 다르게, CRNN은 dictionary에 정의된 단어만 인식할 수 있는 제한사항은 없으며, CRNN은 무작위한 문자열 (전화 번호 등), 문장들, 중국어 단어와 같은 다른 scripts도 다룰 수 있다. 따라서, CRNN의 결과는 모든 testing datasets에 있어서 경쟁력있는 높은 수준이었다.
Unconstrained lexicon cases에서, 우리 방법은 SVT에서 가장 좋은 성능을 달성했지만, IC03에서는 IC13 몇몇 연구보다 성능이 낮았다. Table 2 내용 중, "none" column에서 비어있는 곳은 lexicon 없이 그러한 접근법이 적용 불가능했다는 것을 의미하며, unconstrained cases에서 인식 정확도를 보고하지 않았다. 우리 방법은 단어 단위 label을 가지는 synthetic text를 훈련 data로 사용하였다. 이 점은 문자 단위의 annotation을 가지는 7.9 백만 장의 real word images를 훈련에 사용하는 PhotoOCR과 매우 다른 점이다. unconstrained lexicon cases에서 가장 좋은 성능은 큰 dictionary의 유용성을 활용하는 이전의 특정 연구에서 보고되었다. 하지만, 이 방법은 이전에 언급된 대로 lexicon에서 엄격히 제한되지는 않았다. 이러한 관점에서, unconstrained lexicon case에서 우리 결과는 여전히 좋다고 볼 수 있다.
다른 text recognition 접근법들과 비교하여, 이 연구의 장점을 더 이해하기 위하여, 우리는 Table 3에 요약된 것 처럼 다음의 몇몇의 특성에 관하여 종합적인 비교를 제공한다: E2E Train, Conv Ftrs, CharGT-Free, Unconstrained, Model Size.
E2E Train: 특정 text reading model이 훈련에서 전처리 또는 별도의 과정들이 없는 간결한 end-to-end로 훈련가능한지 보여준다. Table 3에서 보여지는 것 처럼, CRNN을 포함하여 deep neural networks 기반의 models만 이러한 특성을 갖는다.
Conv Ftrs: 이 column은 접근법들이 훈련 images로 부터 추출된 convolutional features를 사용하는지 아니면 기본적인 representations으로써 수작업된 features를 사용하는지 나타낸다.
CharGT-Free: 이 column은 model 훈련에 문자 단위의 annotations가 필수적인지 가리킨다. CRNN의 입력과 출력 labels은 sequence이기 때문에, 문자 단위의 annotations는 필수적이지 않다.
Unconstrained: 이 column은 훈련된 model이 특정 dictionary에 제약되어 해당 dictionary words 를 벗어나거나 또는 random sequences 를 다룰 수 없는지 여부를 가리킨다. labeling embedding과 incremental learning 으로 학습된 최근의 models는 높은 성능을 보고하였지만, 그들은 특정 dictionary에 제약된다.
Model Size: 이 column은 학습된 model에 필요한 저장 공간을 보고한다. CRNN에서, 모든 layers는 weight를 공유하는 connections를 갖으며, fully-connected layers가 필요하지 않다. 결과적으로, CRNN의 parameters 개수는 CNN의 변형된 models보다 적다고 할 수 있으며, 따라서, CRNN의 model의 크기는 작다. 우리 model은 8.3백만개의 parameters가 있고, 이것은 33MB RAM을 필요로 한다 (각 parameter에서 4-bytes single-precision float 을 사용했을 때) 따라서, 우리 model은 mobile 기기에 쉽게 porting 가능 하다.
Table 3는 다른 접근법들 간의 차이점들을 명확하고 자세히 보여주며, 이것을 통해 다른 방법과는 차별화된 CRNN의 장점들이 잘 나타나 있다.
더불어서, parameter $$$\delta$$$의 효과를 실험하기 위하여, 우리는 Eq. 2에서 보여지는 다른 $$$\delta$$$ 값들을 실험했다. Fig. 4에서 우리는 recognition accuracy를 $$$\delta$$$에 대한 함수로서 plot했다. $$$\delta$$$가 커질 수록, 더 많은 candidates가 산출되었고, 더 정확한 lexicon-based transcription이 가능했다. 반면, $$$\delta$$$가 커질 수록, 더 길어진 BK-tree 탐색 시간과 test과정에서 처리되는 더 많은 candidate sequences 때문에 연산량은 증가했다. 실제적으로, 우리는 accuracy와 speed 사이의 tradeoff를 고려하여 $$$\delta=3$$$으로 선택했다.
Figure 4. 파란색 선 graph: 함수 parameter $$$\delta$$$로써 인식 정확도. 빨간색 bar: sample 당 lexicon 탐색 시간. 50k개의 lexicon으로 IC03 dataset에서 test 되었음.
이 논문에서, 우리는 Convolutional Recurrent Neural Network (CRNN)이라고 명명된 참신한 neural network 구조를 선보였는데, 이 구조는 Convolutional Neural Networks (CNN)과 Recurrent Neural Networks (RNN)의 장점들을 통합한다. CRNN은 차원이 다른 입력 images를 받아들여서 여러 길이를 가지는 예측을 만들수 있다. 훈련단계에서, CRNN은 각 문자 단위의 상세한 annotations을 요구하지 않고, 단어와 같은 labels가 있으면 동작한다. 게다가, CRNN은 기존의 neural networks에서 사용되는 fully connected layers를 제외했기 때문에, 작고 효율적인 model이 되었다. 모든 이러한 특성들은 image 기반의 sequence 인식에 있어 CRNN을 훌륭한 접근법으로 만들어 주었다.
Scene text recognition benchmarks에서 실험들은 CRNN은 기존의 방법들 뿐만 아니라 다른 CNN과 RNN기반의 algorithms와 비교하여 우수하고 경쟁력있는 성능을 입증하였다. 제안된 algorithm의 장점을 확인해준다. 덧붙여, CRNN은 Optical Music Recognition (OMR)에서 다른 방법들 보다 높은 성능을 보여주었고, 이는 CRNN의 일반화 능력을 입증해준다. CRNN은 일반적인 framework이기 때문에, images 내의 sequence prediction을 수행해야하는 중국어 문자 인식과 같은 다른 domains와 problems에 적용될 수 있다. CRNN의 속도를 높이는 것, real-world applications에서 더욱 실용적으로 만드는 것 등은 다른 방향성의 연구이지만, 추가 연구로서 수행해볼만하다.
+ 이나스AI에는 인공지능 관련 다양한 강의가 있습니다.
- Object detection, Text To Speech, Reinforcement learning, OCR, Chatbot, Time series prediction,
- Meta learning, eXplainable AI, Transformer/BERT/GPT, Graph-based ML, etc
- 소스코드, 다이어그램 및 중간데이터에 기반하여 인공지능 알고리즘들의 작동원리와 구조를 이해하기 쉽고 정확하게 설명합니다.
+ 작업할 때 켜놓는 라이브 스트리밍 study with me 채널도 운영하고 있습니다.
댓글
댓글 쓰기