PaddleOCR
PaddleOCR은 Baidu의 딥러닝 프레임워크 PaddlePaddle을 기반으로 한 OCR 솔루션입니다. 최신 버전인 PP-OCRv3는 경량 모델과 강력한 다국어 인식을 제공하며, PP-Structure는 레이아웃 분석, 표 인식, VQA 등을 지원하여 문서 구조 분석을 돕습니다.
Oct 11, 2022
Introduction
PaddleOCR aims to create multilingual, awesome, leading, and practical OCR tools that help users train better models and apply them into practice.
Paddlepaddle은 바이두의 딥러닝 프레임워크 이름으로, Tensorflow나 PyTorch와 같은 다른 프레임워크들과 같이 생태계를 가지고 있습니다. PaddleOCR은 그 중에서 OCR에 필요한 여러 기능을 가지고 있는 repository로, PaddlePaddle 프로젝트들 중 흥미롭게도 가장 많은 22K 스타를 자랑하고 있습니다.
PP-OCR은 단순 OCR 뿐만 아니라 Structured Document Analysis, Doc-VQA,라벨링 툴까지 여러 기능을 포함하고 있습니다.
PP-OCRv3
PP-OCR은 상용 수준에서 사용할 수 있는(practical) 가벼운 OCR 알고리즘으로, 여러 딥러닝 알고리즘을 적용하면서 v3까지 발표되었습니다. 기본적으로 detection & recognition으로 구성된 2-stage 알고리즘이라 소개하지만 가운데 detection 방향을 결정하는 모델이 하나 더 있습니다.
PP-OCR (v1)은 Differentiable Binarization(DB) 알고리즘을 text detector, CRNN을 text recognizer로 사용하였고 v2에서는 Knowledge distillation, augmentation, CTC loss 등의 기법을 많이 적용하였습니다. v3에서는 recognition 모델을 RNN에서 Transformer로 교체하고 self-supervised pre-trained weight를 사용하는 등의 변화로 다시 한번 성능을 높였습니다.
아래는 v3의 구조입니다.
모델은 매우 가벼운 모바일용 버전과 서버용 둘 다 공개하고 있습니다. 또한 80개 가량의 다국어 인식을 지원한다고 합니다.
특히 v3에서 적용된 알고리즘을 살펴보면 다음과 같습니다.
- LK-PAN
- DML
- RSE-FPN
Recognition 모델의 성능 향상을 위해 적용된 알고리즘에 따라 성능은 아래와 같이 변하였습니다.
01-03 실험의 input size는 (3, 32, 320)이고 04-08은 (3, 48, 320) 입니다.
End-to-end 평가 결과는 아래와 같습니다.
또한 모델을 가볍게 만들기 위한 여러 알고리즘을 구현해놓았습니다.
모델을 배포하기 위해 PaddlePaddle 생태계에서 제공하는 여러 기능을 활용할 수 있습니다.
PP-Structure
- Layout Analysis
PubLayNet과 같은 데이터셋을 사용하여 학습된 모델을 제공합니다.
- Table Recognition
PubTabNet 데이터셋에 학습된 모델을 제공합니다.
- VQA
LayoutLM, LayoutXLM 기반의 모델을 학습하여 SER (Semantic Entity Recognition) 모델을 제공합니다.
- KIE
PPOCRLabelv2
- Text, table 구조, Key information extraction 등을 라벨링할 수 있는 PyQT 기반 라벨링 툴
Style Text
- 텍스트 합성에 사용되는 툴
Share article