상세 컨텐츠

본문 제목

PP-OCR

Coding/Image

by linguana 2021. 5. 31. 22:20

본문

Source Links:

PP-OCR: A Practical Ultra Lightweight OCR System | Papers With Code

PP_OCR.pdf
4.21MB

PaddlePaddle/PaddleOCR: Awesome multilingual OCR toolkits based on PaddlePaddle (practical ultra lightweight OCR system, support 80+ languages recognition, provide data annotation and synthesis tools, support training and deployment among server, mobile, embedded and IoT devices) (github.com)


제 목: PP-OCR: 실용적인 초경량 OCR 프로그램

저 자: Yuning Du 등 / (2020)

초 록

  OCR은 사무자동화, 공장자동화, 온라인교육, 지도제작 등의 다양한 상황에 응용되어 활용되어 왔다. 그러나, OCR은 텍스트의 다양한 모양과 효율적인 계산량 요구 때문에 여전히 도전적인 과제이다. 본 논문은 실용적인 초경량 PP-OCR이라는 실용적인 초경량 OCR 모델을 제시한다. 이 OCR의 전체 모델 크기는 각각 6,622개 한자를 인식하는 데 350만, 63개의 알파벳 및 숫자를 인식하는데 280만이다. 우리는 모델의 성능을 향상시키거나 모델 크기를 줄일 수 있는 몇 가지 기법을 제시한다. 그에 대한 ablation 실험은 실제 데이터와 함께 제시되었다. 한편, 중국어와 영어 인식을 위한 사전학습된 모델들이 공개되었다. 이는 9.7만 이미지를 사용한 텍스트 검출기(text detector), 6만 이미지를 사용한 방향 분류기(direction classifier), 179만 이미지를 사용한 텍스트 인식기(text recognizer)를 포함한다. 더불어, 제안된 PP-OCR은 불어, 한국어, 일본어, 독일어를 포함한 다른 언어 인식에서도 확인(verified)되었다. 위에 언급된 모든 모델은 오픈소스로 깃헙 저장소에 공개되었다: https://github.com/PaddlePaddle/PaddleOcR


1. 들어가며

  그림 1에서 보여지듯이, 이미지로부터 자동적으로 텍스트를 인식하는 데 목적을 두는 OCR (광학문자인식)은 오랜 연구 역사와 폭 넓은 응용 시나리오(문서 디지털화, 신원조회, 전자금융, 차량번호판인식 등)를 자랑한다. 또한, 공장에서 제품에 있는 텍스트를 자동으로 추출함으로써 제품은 더욱 편리하게 관리될 수 있다. 학생들의 오프라인으로 제공되는 숙제나 시험지는 OCR로 디지털화하여 교사와 학생 간의 의사소통을 더 효율적으로 할 수 있다. OCR은 도로 촬영 사진에서 관심영역(POI; points of interest)을 레이블링하는데 사용되어 지도 제작의 효율성을 제고할 수 있다. 풍부한 응용 시나리오는 OCR 기술에 상업적 가치와 더불어 여러 도전과제를 부여한다.

<그림 1> 제시된 PP-OCR의 결과 이미지.

  다양한 텍스트 형태. 이미지 안의 텍스트는 일반적으로 두 종류로 나뉜다: 풍경 텍스트(scene text)와 문서 텍스트(document text). 풍경 텍스트는 그림 3과 같이 자연적인 풍경 안에 있는 텍스트를 지칭하는데, 일반적으로 다양한 요인에 의해서 영향을 받는다 (촬영자의 시점(perspective), 비율(scaling), 휨(bending), 뭉침(clutter), 글자체(font), 다국어(multi-lingual), 흐림(blur), 채광(illumination) 등). 문서 텍스트는 그림 4와 같이 종종 실용적인 상황에서 응용되는 걸 볼 수 있는데, 높은 밀도와 긴 텍스트로 인해 야기되는 다른 문제들을 해결할 필요가 있다. 그렇지 않으면 문서 텍스트 인식은 결과물에 대한 구조를 만들어놔야 하게 되는데 (역자 주: 가령 템플릿 등), 이는 또다른 어려운 문제를 초래한다.

<그림 3> 풍경 텍스트가 포함된 이미지.
<그림 4> 문서 텍스트가 포함된 이미지.

  계산량 효율성. 실제적으로, OCR로 처리되어야 하는 이미지는 일반적으로 용량이 크기 때문에 OCR을 설계할 때 높은 계산량 효율성은 하나의 중요한 기준이 된다. 비용을 고려했을 때 CPU는 GPU보다 더 선호된다. 특히, 여러 상황에서 OCR은 휴대폰 같은 내장형 기기(embedded devices)에서 작동해야 하기 때문에 모델 크기를 고려하는 것은 중요하다. 모델 크기와 성능을 바꿔치는 것(tradeoff)는 어렵지만 아주 중요하다. 본 논문에서 우리는 PP-OCR이라고 명명한 실용적인 초경량 OCR을 제안한다. 이 모델은 그림 2와 같이 (1) 텍스트 검출, (2) 검출된 박스 (방향) 조정(rectification), (3) 텍스트 인식, 세 부분으로 구성되어 있다.

<그림 2> 제시된 PP-OCR의 프레임워크. 그림의 모델 크기는 중국어와 영어 글자 인식에 관한 것이다. 알파벳 및 숫자 인식을 위한 모델의 텍스트 인식기 크기는 90만에서 160만이다. 모델의 다른 부분들은 같은 크기다.

  텍스트 검출. 텍스트 검출의 목표는 이미지 내에서 텍스트의 구역을 찾아내는 것(locate)이다. PP-OCR에서 우리는 텍스트 검출기로서 간단한 segmentation 신경망에 기반을 두는 DB (Differentiable Binarization; Liao et al, 2020)를 사용한다. DB의 간단한 후처리는 이 모델을 아주 효율적이도록 만든다. 모델의 효과성과 효율성을 더욱 향상시키기 위하여 다음과 같은 6가지 기법이 사용되었다: 가벼운 뼈대구조(backbone), 가벼운 상단구조(head), SE 모듈의 제거, 코사인 학습률 감소(decay), 학습률 예열(warm-up), FPGM pruner. 결과적으로 텍스트 검출기의 모델 크기는 140만으로 절감되었다.

  검출된 박스 방향 조정. 검출된 텍스트를 인식하기 전에 텍스트 박스는 연속적인(시퀀스적으로) 인식이 되어야 하기 때문에 수평적인 직사각형 박스로 변형되어야 한다. 이는 검출된 박스가 네 꼭짓점으로 이루어져 있기 때문에 기하학적 변형(geometric transformation)을 통해 쉽게 달성될 수 있다. 그러나, 방향이 보정된 박스는 위아래가 반대 방향이 될 수도 있다. 만약 박스가 반전되어 있다고 판단된다면 추가적으로 뒤집어야 한다. 텍스트 방향 조정기를 훈련시키는 것은 간단한 이미지 분류 과제이다. 우리는 모델의 성능을 향상시키고 모델 크기를 줄이기 위해서 다음과 같은 네 가지 기법을 적용한다. 가벼운 뼈대구조, 데이터 증강, 입력값 해상도, PACT 양자화(quantization). 결과적으로, 텍스트 방향 분류기의 모델 사이즈는 500KB이다.

  텍스트 인식.  PP-OCR에서 우리는 텍스트 인식기로 폭넓게 사용되고 텍스트 인식에 실용적인 CRNN (Shi, Bai, & Yao 2016)을 사용한다. CRNN은 특징(feature) 추출과 시퀀스 모델링을 통합하였다. 이 모델은 예측과 레이블의 불일치를 방지하기 위하여 CTC (Connectionist Temporal Classification) 로스를 적용한다. 텍스트 인식기 모델 성능을 향상시키고 모델 크기를 줄이기 위해서 다음과 같은 9가지 기법이 사용되었다: 가벼운 뼈대구조, 데이터 증강, 코사인 학습률 감소(decay), 특징 맵 해상도, 파라미터 규제화(regularization), 학습률 예열(warm-up), 가벼운 상단(head) 구조, 사전 훈련된 모델, PACT 양자화(quantization). 결과적으로, 중국어와 영어를 위한 텍스트 인식기의 모델 크기는 160만이고 알바벳 및 숫자 기호를 위한 텍스트 인식기의 모델 크기는 900KB이다.

  실용적인 OCR 구현을 위해 우리는 예시로서 중국어와 영어 인식을 위한 대규모의 대이터셋을 구축했다. 구체적으로, 텍스트 검출기 데이터셋은 9.7만 장의 이미지, 방향 분류기 데이터셋은 60만 장의 이미지, 텍스트 인식기는 179만 장의 이미지로 구성되었다. ablation 실험을 빠르게 수행하고 적합한 기법을 선택하기 위해 소량의 데이터가 선택되었다. 우리는 다양한 기법의 효과를 보여주기 위해서 그림 2와 같이 여러가지 ablation 실험을 수행하였다. 더불어, 우리는 알파벳 및 숫자, 불어, 한국어, 일본어, 독일어를 포함한 다른 언어 인식을 통해 제시된 PP-OCR의 성능을 확인하였다.

  본 논문은 다음과 같이 구성되었다. 섹션 2에서 우리는 모델을 향상시키거나 경량화하는 여러가지 기법을 제시한다. 실험 결과는 섹션 3에 제시되었고, 결과는 섹션 4에서 논의한다.


2. 성능 향상 혹은 경량화 기법

2.1. 텍스트 검출기

  이 섹션에서는 텍스트 검출기 모델의 성능을 향상시키거나 크기를 줄일 수 있는 6가지 기법의 구체적인 사항이 제시될 것이다. 그림 5는 텍스트 검출기인 DB(Differentiable Binarization)를 보여준다.

<그림 5> 텍스트 검출기 DB(Differentiable Binarization)의 모델 구조. 이 그림은 Liao et al. (2020)의 논문에서 발췌하였다. 빨간 박스와 회색 박스는 각각 뼈대(backbone)와 상단(head) 구조를 보여준다.

 

  가벼운 뼈대구조(backbone). 뼈대 구조의 크기는 텍스트 검출기 모델 크기에 중대한 영향을 미친다. 그러므로, 초경량 모델을 만들기 위해선 가벼운 뼈대 구조가 선택되어야 할 것이다. 이미지 분류 분야가 성장하면서 등장한 MobileNetV1, MobileNetV2, MobileNetV3, ShuffleNetV2 같은 모델들은 가벼운 뼈대 구조로 자주 사용된다. 각 모델은 크기가 다 다르다. (중략)


2.3. 텍스트 인식

  이 섹션에서는 텍스트 인식기의 모델 성능을 향상시키거나 모델 크기를 줄이는 9가지 기법에 대한 구체적인 사항이 소개될 것이다. 그림 10은 텍스트 인식기 CRNN의 모델 구조를 보여준다.

<그림 10> 텍스트 인식기 CRNN의 모델 구조. 이 그림은 논문 (Shi, Bai, & Yao 2016)에서 가져왔다. 빨간 박스와 회색 박스는 각각 뼈대(backbone)와 상단(head) 구조를 보여준다.

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

EAST  (0) 2021.06.03
Real-Time STD with DB  (0) 2021.05.31
Multimodal Information Bottleneck (Image-to-Speech)  (0) 2021.05.28
CRNN  (0) 2021.05.26
mAP  (0) 2021.05.26

관련글 더보기