상세 컨텐츠

본문 제목

CRNN

Coding/Image

by linguana 2021. 5. 26. 16:10

본문

[OCR] CRNN Model_기본 구조 (tistory.com)

발표 자료:

CRNN.pptx
1.48MB

 


논문 파일:

CRNN(2016).pdf
1.01MB

 


제목: 이미지 기반의 시퀀스 인식을 위한 종단 간 훈련가능한 신경망과 STR의 적용
Authors: Baoguang Shi, Xiang Bai and Cong Yao (School of Electronic Information and Communications Huazhong University of Science and Technology, Wuhan, China)


초 록
컴퓨터 비전에서 이미지 기반 시퀀스 인식은 오래된 연구과제 중 하나이다. 본 논문에서는 이미지 기반 시퀀스 인식에서 가장 중요하고 도전적인 과제로서 STR을 다루겠다. 본 논문은 특징 추출, 시퀀스 모델링, 전사(transcription)을 하나의 프레임워크로 통합한 새로운 신경망을 제시한다. STR을 위한 기존의 모델과 비교했을 때, 본 논문이 제시하는 모델은 다음과 같은 네 가지 특징을 가진다: (1) 기존 알고리즘의 요소들이 개별적으로 훈련되고 조정되었던 것과 달리 종단 간 훈련이 가능하다; (2) 글자 단위로 잘라내거나(segmentation) 수직 길이 정규화(horizontal scale normalization)할 필요 없이 임의의 길이를 가지는 시퀀스를 인풋으로 받아들일 수 있다; (3) 사전(事前)에 정의된 어휘사전(lexicon)에 제한되지 않고 어휘사전에 기반한 STR 과제와 어휘사전에 기반하지 않는 STR 과제에서 모두 놀라운 성능을 보인다; (4) 모델 크기가 작으면서도 효과적이어서 실제 어플리케이션 사용에 더 적합하다. 본 논문에서 수행한 실험 결과, IIIT-5K, Street View Text, ICDAR 데이터를 활용한 표준지표 등에서 기존 모델 대비 우수한 성능을 보여주었다. 더불어, 본 논문에서 제안된 모델은 이미지 기반으로 음표를 인식하는 과제도 잘 수행함으로서, 이 모델의 일반화 가능성을 입증해내었다.


1. 들어가며

  최근 들어 연구자들 사이에서 신경망에 대한 거대한 관심이 다시금 일어나고 있다. 이는 주로 심층신경망 모델(특히 심층 합성곱 신경망)의 컴퓨터 비전 과제에 대한 성공으로 촉발되었다. 하지만, 심층신경망과 연관된 대부분의 최근 연구는 객체에 대한 탐지(detection) 혹은 카테고리 분류(classification)에 기여한 것들이었다 [12, 25]. 본 논문에서 우리는 컴퓨터 비전 분야에서 고전적인 과제인 이미지 기반 시퀀스 인식에 대해서 다루고 있다. 실제 세계에서 이미지 내의 텍스트, 필기체, 음표 등 같은 많은 시각적 객체들은 따로 분리된 형태가 아닌 시퀀스의 형태로 나타나는 경향이 있다. 일반적인 객체 인식과 달리 이와 같은 시퀀스 형태의 객체를 인식하는 것은 종종 단 한 개의 레이블 대신 연속적인 레이블을 예측할 수 있는 모델을 필요로 한다. 그러므로 그러한 객체들의 인식은 일종의 시퀀스 인식 문제로서 다루어질 수 있다. 시퀀스 형태의 객체의 또다른 성질은 각 객체들의 길이가 매우 다를 수 있다는 점이다. 예를 들어, 한 영단어는 "OK"처럼 2 글자로 이루어질 수도 있지만 "congratulations"처럼 15 글자로 이루어질 수 있다. 결과적으로 DCNN [25, 26] 같은 대부분의 인기있는 심층 모델들은 시퀀스 예측 문제에 바로 적용될 수 없다. 왜냐하면 DCNN 모델들은 종종 고정된 차원의 입력과 출력을 기반으로 실행되고, 따라서 가변적인 길이의 레이블 시퀀스를 만들어낼 수 없다.

  특정한 시퀀스 형태의 객체(가령, 이미지 내 텍스트)를 위한 문제를 해결하기 위한 시도는 몇몇 있었다. 예를 들어, [25, 8]에서 제시된 알고리즘들은 먼저 각 글자를 탐지한 후, 이 글자들을 라벨링 된 글자 이미지에 훈련된 DCNN 모델로 인식을 수행하였다. 이러한 방법은 각 글자를 기존 이미지에서 정확하게 탐지하고 잘라내기 위해 아주 잘 훈련된 글자 탐지 모델이 요구되었다. [22] 같은 일부 다른 접근법은 이미지 내 글자 인식(STR)을 이미지 분류 문제로서 취급하여 (총 9만 개의) 각 영어 단어에 클래스 레이블을 배정하기도 하였다. 결과적으로 많은 종류의 클래스에 대해서 훈련된 큰 모델은 한자나 음표 등의 다른 시퀀스 형식 객체에 대한 과제에 일반화되기 어렵다는 문제를 가진다. 왜냐하면 그러한 시퀀스들의 조합은 100만 개 이상일 수 있기 때문이다. 요약하자면 DCNN에 기반한 현재 모델들은 이미지 기반의 시퀀스 인식에 직접적으로 적용될 수 없다.

  심층합성곱신경망(DCNN) 이외에도, 딥러닝에서 중요한 자리를 차지하고 있는 순환신경망(RNN) 계열의 모델들은 주로 시퀀스를 다루기 위해서 설계되었다. RNN의 장점 중 하나는 훈련 및 테스트 시, 시퀀스 형태 객체를 담은 이미지에서 각 요소의 위치를 필요하지 않다는 것이다. 하지만, 입력 객체 이미지를 일종의 image features의 시퀀스로 변환해주는 전처리 단계는 보통 필요로 한다. 예를 들어, Graves et al. [16]은 기하학적/이미지 features를 필기체 텍스트로부터 추출하는 한편, Su and Lu [33]은 단어 이미지를 HOG features 시퀀스로 변환한다. 이 전처리 단계는 전체 모델의 수행과정에서 잇따라 오는 구성요소와 독립적이기 때문에 RNN을 기반으로 하는 기존의 모델들은 종단 간 훈련되거나 최적화될 수 없다.

  신경망에 기반하지 않는 몇몇의 전통적인 STR 방법들은 이 분야에 기발한 아이디어와 새로운 방식의 표현을 제공하는 데 기여했다. 예를 들어, Almazan et al [5]와 Rodriguez-Serrano et al. [30]에서는 단어 이미지와 text strings를 하나의 공통된 벡터 공간에 임베딩하는 방식을 제안하여 단어 인식을 정보 검색(retrieval) 문제로 변환하였다. Yao et al. [36]과 Gordo et al. [14]는 중간 수준의 features들을 STR에 사용하였다. 비록 표준 벤치마크에서 유망한 성능을 보였지만 이러한 방식은 신경망에 기반을 둔 기존의 알고리즘[8, 22] 뿐만 아니라 본 논문에서 제안된 접근법에 비해서도 전반적으로 뒤쳐진다.

  본 논문의 주요한 기여점은 그 구조가 이미지 내에서 시퀀스 형태의 객체를 인식하는 데 특화된 새로운 신경망 모델의 제안이다. 이 신경망 모델은 DCNN과 RNN의 조합이기 때문에 CRNN이라고 이름을 붙여줬다. CRNN은 시퀀스 형태의 객체에 대해서 기존의 신경망 모델들에 비해 몇 가지 독특한 장점을 지닌다: (1) 이 모델은 시퀀스 레이블(e.g. 단어)로부터 직접적으로 학습을 수행할 수 있어서 세세한 레이블링(e.g. 글자 단위)이 필요하지 않다. (2) 이 모델을 이미지로부터 직접적으로 학습할 수 있는 DCNN과 같은 성질을 가지고 있어서 features에 대한 수작업이나 (이진화/조각화, 요소 위치 설정 등의) 전처리 단계가 필요하지 않다. (3) 연속된 형태의 레이블을 출력할 수 있는 RNN과 같은 성질을 가지고 있다. (4) 시퀀스 형태 객체의 길이에 제약을 받지 않고, 다만 훈련과 테스팅 과정에서 높이 정규화만 하면 된다. (5) 기존의 모델들[23, 8]보다 STR 과제에서 더 높은 성능을 보인다. (6) 표준적인 DCNN 모델들보다 더 적은 파라미터를 요구하여 적은 메모리를 소모한다.


2. 제안하는 신경망 아키텍처
  그림 1에 제시된 것처럼, CRNN의 신경망 아키텍쳐는 3가지 요소로 구성되어 있다: 하단부에서부터 상단부 순서대로 합성곱 레이어, 순환 레이어, 전사(transcription) 레이어가 쌓여있다.

  CRNN의 최하단부에는 합성곱 레이어는 입력 이미지로부터 자동적으로 feature 시퀀스를 추출해낸다. 합성곱 신경망 위에는 합성곱 신경망이 출력한 feature 시퀀스의 각 frame마다 추론을 실시하기 위해서 순환 신경망이 위치한다. CRNN의 가장 상단에 위치하는 전사 레이어는 순환 레이어가 추론한 frame 단위의 출력을 레이블 시퀀스로 변환하는 기능을 수행한다. 비록 CRNN인 여러 종류의 신경망 아키텍쳐로 구성되어 있지만 (즉, CNN과 RNN), 이 모델은 하나의 손실 함수를 통해 통합적으로 훈련 가능하다.

<그림 1> 모델 아키텍쳐. 3가지 부분으로 구성되어 있다: (1) 합성곱 레이어 (입력 이미지로부터 feature 시퀀스를 추출함) (2) 순환 레이어 (각 frame별로 레이블 분포를 예측함) (3) 전사 레이어 (프레임 단위의 예측을 최종 레이블 시퀀스로 변환함)


2.1. 이미지 특성 시퀀스 추출

  CRNN 모델에서 합성곱 레이어의 요소들은 표준적인 CNN 모델에서 (완전연결층을 제거한 채) 합성곱 레이어와 맥스풀링(max-pooling) 레이어를 가져와 구축합니다. 이러한 구성요소는 입력 이미지로부터 sequential feature representation을 추출하기 위해 활용됩니다. 신경망에 주입되기 전에 모든 이미지는 동일한 높이로 조정되어야(scaled) 합니다. 그러고 난 후 합성곱 레이어가 만들어낸 피쳐 맵은 순환 신경망에 입력되어 특성 벡터 시퀀스(sequence of feature vectors)가 추출되게 됩니다. 구체적으로 보자면, 특성 벡터 시퀀스의 각 벡터는 피쳐맵의 열(column)을 따라 좌측에서 우측으로 생성된 것입니다. 이것은 i번째 특성 벡터는 모든 피쳐 맵의 i번째 열을 concatenate한 것이란 의미입니다. 우리는 이 열의 너비를 1 픽셀로 고정하였습니다.

  이미지의 국소적 구역(local regions)들에 대해서 합성곱 레이어, 맥스풀링 레이어, 활성화 함수가 작동하면서, 그 이미지 구역들은 평행변환불변(translation invariant)한 특성을 가지게 됩니다. 그러므로, feature map의 각 열은 원본 이미지의 직사각형 형태의 구역(수용 영역receptive field이라 불림)과 대응관계를 이루게 됩니다. 그리고 그러한 직사각형 구역은 대응되는 피쳐 맵의 열들과 같은 순서를 가지게 됩니다 (왼쪽에서 오른쪽 순서). 그림 2에 표시된 것과 같이, 특성 시퀀스 안에 있는 각 벡터는 특정 수용 영역과 연관되어 있고, 따라서 해당 영역에 대한 이미지 기술자(image descriptor)로 간주될 수 있습니다.

<그림 2> 수용 영역. 추출된 특성 시퀀스의 각 벡터는 입력 이미지의 수용 영역과 연관되어 있고, 해당 영역에 대한 특성 벡터라고 간주될 수 있다.

  심층 합성곱 특징들은 로버스트하고, 풍부하고, 훈련 가능하기 때문에 다양한 종류의 컴퓨터 비전 인식 과제[25, 12]에 폭넓게 적용되어 왔다. 기존의 일부 접근법은 이미지 내의 글자 같은 시퀀스 형식 객체의 특징을 로버스트하게 학습하기 위해 CNN을 도입하였다[22]. 하지만 이러한 접근법은 보통 전체 이미지의 전반적인 특징을 CNN으로 추출하고 난 뒤, 추출된 특징의 국소적인 영역들을(local deep features) 모아서 시퀀스 형태 객체의 각 요소를 인식하였다. CNN의 입력 이미지는 고정된 크기로 조정되어야 하기 때문에 큰 변동성을 가진 시퀀스 형태 객체에는 CNN이 적합하지 않다. 이러한 점을 고려하여 CRNN에서는 CNN이 출력한 심층적 특징을 시퀀스 형태의 표현으로 변환하여 시퀀스 형태 객체의 길이 변동성에 의해 변동되지 않도록(invariant) 하였다.


2.2. 시퀀스 레이블링

  심층 양방향(deep bidirectional) 순환 신경망은 합성곱 레이어 위에 구성된다. 이 순환 레이어는 feature 시퀀스 x = x1, ..., xT 안의 각 프레임 xt의 레이블 분포 yt 를 예측한다. 이 순환 레이어의 장점은 세 가지이다. 첫째로, RNN은 시퀀스 내부에서 문맥(contextual) 정보를 끄집어내는 능력이 뛰어나다. 이미지 기반의 시퀀스 인식에서 문맥 정보를 사용하는 것은 각 심볼(symbol)을 독립적으로 다루는 것보다 더욱 안정적이고 유용합니다. STR을 예시로 들면, 너비가 큰 글자들은 완전히 묘사하기 위해선 연속적인 프레임이 여러 개 필요합니다 (그림 2 참고). 더불어 몇몇의 모호한 글자들은 문맥을 살필 때 더 구별하기 쉽습니다. 예를 들어, "il" ("i"와 "l")은 각 글자를 독립적으로 인식하는 것보다 두 글자의 높이를 대조하는 것이 더욱 인식하기 쉽습니다. 둘째로, RNN은 오차의 미분을 그 입력값(즉, 합성곱 레이어)에 역전파할 수 있기 때문에 순환 레이어와 합성곱 레이어를 하나의 통합된 신경망으로 같이 훈련시킬 수 있습니다. 셋째로, RNN은 입력에 대해서 시작부터 끝까지 살펴봄으로써 임의의 길이인 시퀀스를 다룰 수 있습니다.

  전통적인 RNN 유닛은 입력과 출력 레이어 사이에 self-connected된 은닉층이 있다. RNN 유닛이 시퀀스에서 각 프레임 xt를 입력으로 받을 때, 유닛은 현재 입력값 xt와 과거 상태 ht-1을 입력받아 비선형 함수를 통과시켜 내부 상태(internal state)를 다음의 수식과 같이 갱신한다: ht = g(xt, ht-1). 그리고 나서 ht를 기반으로 예측값 yt 을 출력한다. 이러한 방식으로 과거 문맥 정보 {xt'}t' 가 파악되고, 예측에 활용됩니다. 전통적인 RNN 유닛은 한편 가중치 소실(vanishing gradient) 문제를 가지기 때문에 [7] 문맥 정보를 저장할 수 있는 범위가 제한되고 훈련 과정에 부담을 더하게 됩니다. LSTM [18, 11]은 이 문제를 해결하기 위해 특별히 설계된 RNN의 한 종류입니다. LSTM (그림 3 참고)은 한 개의 메모리 셀과 세 개의 곱셈 게이트(multiplicative gates, 각각 입력, 출력, 망각 게이트)로 이루어져 있습니다. 개념적으로 보자면, 메모리 셀은 과거 문맥 정보를 저장하고, 입력과 출력 게이트는 메모리 셀이 문맥 정보를 더 긴 시간 동안 저장할 수 있도록 돕습니다. 한편, 셀 안에 기억된 정보는 망각 게이트로 삭제될 수 있습니다. 이러한 LSTM의 특수한 설계는 이미지 기반 시퀀스에서 종종 보이는 장기간 의존성(long-range dependency)를 해결하게 해줍니다.

  LSTM은 단방향이어서 과거 문맥 정보만 활용합니다. 하지만 이미지 기반 시퀀스에서는 양쪽 방향의 문맥 정보가 모두 유용하고 서로 보충하는 역할을 합니다. 그러므로 본 논문은 [17]을 따라 두 개의 LSTM을 합쳐서 (하나는 순방향, 다른 하나는 역방향) 양방향 LSTM을 만들었습니다. 나아가, 여러 개의 양방향 LSTM을 쌓게 되면 그림 3.b.에 나타나듯이 심층 양방향 LSTM을 만들 수 있습니다. 이러한 심층 구조는 단층 구조보다 더 고차원적인 추상화를 가능케 하고, [17]에서 보여줬듯 음성 인식 과제에서 뛰어난 성능 향상을 이뤄냈습니다.

  순환 레이어에서 오차 미분값은 그림 3.b.에서 보여주듯 각기 다른 방향으로 전파됩니다 (Back-Progation Through Time). 순환 레이어의 최하단부에서, 역전파된 미분값 시퀀스는 map으로 concatenate되어 특징 맵을 특징 시퀀스로 바꾸는 과정의 반대를 수행하여 합성곱 레이어로 되돌아가게 됩니다. 모델을 구현할 때 우리는 합성곱 레이어와 순환 레이어를 잇기 위해서 "Map-to-Sequence"라는 이름의 커스텀 신경망 레이어를 만들었습니다.

BPTT: 역전파를 위해 시간 순으로 RNN 내부의 입출력 값을 펼치는 것. (역자 첨부, 사진 출처: 위키피디아)
map-to-sequence (역자 첨부, 출처: https://zhuanlan.zhihu.com/p/71506131)

'Coding > Image' 카테고리의 다른 글

PP-OCR  (0) 2021.05.31
Multimodal Information Bottleneck (Image-to-Speech)  (0) 2021.05.28
mAP  (0) 2021.05.26
Tesseract for Multilingual OCR paper  (0) 2021.05.15
한글문장 OCR  (0) 2021.05.13

관련글 더보기