PaddleOCR

PaddleOCR은 Baidu의 딥러닝 프레임워크 PaddlePaddle을 기반으로 한 OCR 솔루션입니다. 최신 버전인 PP-OCRv3는 경량 모델과 강력한 다국어 인식을 제공하며, PP-Structure는 레이아웃 분석, 표 인식, VQA 등을 지원하여 문서 구조 분석을 돕습니다.
Inc Lomin's avatar
Oct 11, 2022
PaddleOCR

Introduction


PaddleOCR aims to create multilingual, awesome, leading, and practical OCR tools that help users train better models and apply them into practice.
notion image
 
Paddlepaddle은 바이두의 딥러닝 프레임워크 이름으로, Tensorflow나 PyTorch와 같은 다른 프레임워크들과 같이 생태계를 가지고 있습니다. PaddleOCR은 그 중에서 OCR에 필요한 여러 기능을 가지고 있는 repository로, PaddlePaddle 프로젝트들 중 흥미롭게도 가장 많은 22K 스타를 자랑하고 있습니다.
notion image
 
PP-OCR은 단순 OCR 뿐만 아니라 Structured Document Analysis, Doc-VQA,라벨링 툴까지 여러 기능을 포함하고 있습니다.
notion image
 

PP-OCRv3


notion image
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의 구조입니다.
notion image
모델은 매우 가벼운 모바일용 버전과 서버용 둘 다 공개하고 있습니다. 또한 80개 가량의 다국어 인식을 지원한다고 합니다.
notion image
 
특히 v3에서 적용된 알고리즘을 살펴보면 다음과 같습니다.
notion image
  1. LK-PAN
    1. notion image
  1. DML
    1. notion image
  1. RSE-FPN
    1. notion image
Recognition 모델의 성능 향상을 위해 적용된 알고리즘에 따라 성능은 아래와 같이 변하였습니다.
01-03 실험의 input size는 (3, 32, 320)이고 04-08은 (3, 48, 320) 입니다.
notion image
 
End-to-end 평가 결과는 아래와 같습니다.
notion image
 
또한 모델을 가볍게 만들기 위한 여러 알고리즘을 구현해놓았습니다.
notion image
 
모델을 배포하기 위해 PaddlePaddle 생태계에서 제공하는 여러 기능을 활용할 수 있습니다.
notion image
 

PP-Structure


  1. Layout Analysis
    1. PubLayNet과 같은 데이터셋을 사용하여 학습된 모델을 제공합니다.
      notion image
  1. Table Recognition
    1. PubTabNet 데이터셋에 학습된 모델을 제공합니다.
      notion image
  1. VQA
    1. LayoutLM, LayoutXLM 기반의 모델을 학습하여 SER (Semantic Entity Recognition) 모델을 제공합니다.
      notion image
  1. KIE
 

PPOCRLabelv2


  • Text, table 구조, Key information extraction 등을 라벨링할 수 있는 PyQT 기반 라벨링 툴
 

Style Text


  • 텍스트 합성에 사용되는 툴
Share article