본문 바로가기

Vision/OCR

CRNN

Introduction

CRNN은 글자인식 모델로서 간단히 아래와 같은 구조를 가진다.

input : 글자 이미지 => output : 인식한 글자

이를 CNN과 RNN의 Deep Learning 모델을 활용해 End-to-End로 쉽게? 트레이닝할 수 있도록 했다.

 

Architecture

CNN의 최종 아웃풋은 (width,1,channel)이 될 것이고 width의 1px이 기존 rnn의 sequence length가 된다. 

Pytorch에서는 permute와 squeeze를 활용해 CNN의 output의 shape을 (width,batch,channel)로 변경한 뒤 RNN의 input으로 넣어줘야 한다.

CRNN [1]

Reference

[1] Shi, Baoguang, Xiang Bai, and Cong Yao. "An end-to-end trainable neural network for image-based sequence recognition and its application to scene text recognition." IEEE transactions on pattern analysis and machine intelligence 39.11 (2016): 2298-2304.