본문 바로가기
Computer Vision

CRNN(Convolutional Recurrent Neural Network) 모델 개요

by pnnote 2023. 6. 20.
반응형

CRNN은 2015년에 발표된 Text Recognition의 토대가 되는 모델 중 하나다. 논문명은 An End-to-End Trainable Neural Network for Image-based SequenceRecognition and Its Application to Scene Text Recognition[1]이다. 발표된지 오래되었지만 Text Recognition 모델을 개발한다면 한번쯤 읽어봐야할 논문이라고 생각한다. 이미지 처리를 하다보면 일반적인 object 말고도 이미지 Sequence에 대해 다뤄야 하는 경우가 종종 생긴다. 예를 들면 연속된 글자라든지, 악보라든지 여러 가지가 있다. 이런 sequence-like objects는 단일 label이 아니라 series of object labels을 사용해서 예측한다. 물론 단일 개체로 각각 나눠서 인식할 수도 있지만 전/후처리 작업이나 인식에 필요한 cost가 더 많이 들어가게 된다. CRNN 같은 경우에는 이미지와 텍스트 간의 연관성을 고려하여 이미지 내의 텍스트를 인식하는 데 효과적이다. end-to-end 모델로서, 입력 이미지에서부터 텍스트 예측까지의 전체 과정을 하나의 네트워크로 통합하여 학습하고 추론할 수 있다. 이를 통해 번거로운 전처리 과정 없이 이미지 내의 텍스트를 인식할 수 있다.

 

그림 1. Network Architecture

그림 1은 CRNN 모델의 아키텍쳐다. (1) 이미지로부터 feature를 추출하는 CNN. (2) 각 프레임에 대한 label 분포를 예측하는 RNN(LSTM). (3) 프레임별 예측을 최종 label sequence로 변환하는 transcription layer. 이렇게 크게 세 가지 부분으로 나뉜다. 

 

Feature Sequence Extraction

CRNN 모델에서 feature를 추출하는 부분은 일반적인 CNN과 비슷하게 convolutional layer와 max-pooling layer를 사용한다. fully connected layer는 사용하지 않는다. 입력 이미지는 모두 같은 height 값을 가지게 조정을 한 후 네트워크로 입력된다. 그런 다음 CNN 모델을 통해서 RNN에 입력으로 사용할 sequence of feature가 추출된다. 각 feature vector는 왼쪽에서 오른쪽 방향으로 향하게 생성된다. 이 뜻은 i번째 feature vector는 feature map의 i번째 column을 연결한 것이라는 말이다. 각 column의 너비는 단일 픽셀로 고정된다.

 

그림 2. Receptive field

 

Sequence Labeling

Convolutional layer의 마지막 부분에 Bidirectional Recurrent Neural Network를 사용한다. recurrent layer는 feature sequence x = x1, . . . , xT의 각 frame xt에 대해 label 분포를 예측한다. recurrent layer를 사용하는 것에는 3가지 장점이 있다. 

(1) sequence 데이터에 대해 contextual 정보를 잘 잡음

(2) RNN은 error differentials을 컨볼루션 레이어로 역전파할 수 있으므로 통합 네트워크에서 recurrent layer와 convolutional layer를 함께 학습할 수 있다.

(3) 고정된 길이가 아닌 arbitrary sequence length 에 대해서도 다룰 수 있다.

 

그림 3. (a) basic LSTM 구조 (b) bidirectional LSTM 구조

그림 3(a)와 같이 basic LSTM은 방향성이 있으며 과거 context만 사용하는데, image based sequence에서는 양방향의 context가 유용하고 서로 보완적이다. 따라서 해당 논문에서는 그림 3(b)처럼 두 개의 LSTM(앞으로 하나, 뒤로 하나)을 bidirectional LSTM으로 결합하여 사용한다.

 

Transcription

다음으로 RNN(LSTM)이 만든 프레임별 예측을 label sequence로 변환하는 작업을 수행한다. 프레임당 예측에 따라 가장 높은 확률을 가진 label sequence를 찾는다. 실제 Transcription 단계에서는 lexicon-free와 lexicon-based transcriptions 두 가지 모드가 있다. lexicon은 spell checking dictionary같이 예측할 어휘가 정해져있는 label sequence라고 볼 수 있다.

 

그림 4. Network configuration summary

그림 4는 논문에서 제안한 네트워크와 configuration이다. k, s, p는 각각 kernel size, stride, padding size를 나타낸다. CTC(Connectionist Temporal Classification) loss를 사용하고, optimizer는 SGD를 사용한다.

 

발표된지 비교적 오래된 논문이라 그런지 개선할 수 있는 부분이 많이 보인다. 

반응형