1. 제품
  2.   파서
  3.   Python
  4.   PaddleOCR
 
  

PaddleOCR: 다국어 텍스트 추출을 위한 산업용 수준 OCR

이미지와 문서에서 높은 정확도와 빠른 속도로 텍스트 감지 및 인식

PaddleOCR API란?

PaddleOCR Python API는 광학 문자 인식(OCR) 작업을 위한 강력하고 사용하기 쉬운 도구 키트로, 개발자가 이미지에서 텍스트를 높은 정확도로 추출하고 분석할 수 있도록 설계되었습니다. PaddlePaddle 딥러닝 프레임워크를 기반으로 구축된 PaddleOCR은 다양한 언어를 지원하며 텍스트 감지, 인식 및 레이아웃 분석을 위한 사전 훈련된 모델을 제공합니다. 직관적인 Python 인터페이스를 통해 사용자는 문서 디지털화, 사진에서의 텍스트 추출 또는 자동화된 데이터 처리와 같은 OCR 기능을 애플리케이션에 빠르게 통합할 수 있습니다. PaddleOCR Python API는 최소한의 설정과 최대의 유연성으로 강력한 OCR 솔루션을 구현하려는 모든 분에게 이상적입니다.

PaddleOCR의 주요 장점:

  • 다국어 지원: 100개 이상의 언어에 대한 사전 훈련된 모델(중국어, 영어, 아랍어 등 포함)
  • 높은 정확도: PP-OCR 시리즈 모델은 ICDAR 데이터셋에서 최고 수준의 벤치마크 달성
  • 종단 간 파이프라인: 텍스트 감지부터 인식 및 레이아웃 분석까지
  • 경량 모델: 모바일 및 엣지 디바이스에 최적화(예: PP-OCRv3)

스캔한 문서부터 도로 표지판까지, PaddleOCR은 업계 최고 수준의 정확도로 텍스트를 추출합니다.

GitHub

GitHub 통계

이름:
언어:
별:
포크:
특허:
저장소가 마지막으로 업데이트된 시간:

PaddleOCR을 선택해야 하는 이유

  • 오픈소스 우수성: GitHub 스타 30,000개 이상 및 활발한 커뮤니티 기여
  • 다양한 배포 옵션: Python, C++ 및 모바일 플랫폼(Android/iOS) 지원
  • 레이아웃 분석: 복잡한 문서에서 텍스트 영역, 테이블 및 그림 식별
  • 지속적인 업데이트: 정기적인 모델 릴리스(예: PP-OCRv4)
  • 상용화 친화적: 기업 사용을 위한 Apache 2.0 라이선스

설치 방법

PaddleOCR은 Python 3.7+이 필요하며 pip를 통해 설치할 수 있습니다. GPU 지원에는 CUDA/cuDNN이 필요합니다.

기본 설치


pip install paddleocr paddlepaddle  #CPU 버전

GPU 가속을 위한 설치:

GPU 지원


pip install paddleocr paddlepaddle-gpu  #CUDA 10.2+ 필요

참고: 사전 훈련된 모델은 첫 사용 시 자동으로 다운로드되거나 paddleocr --lang en을 통해 수동으로 다운로드할 수 있습니다.

코드 예제

다음 예제로 PaddleOCR의 기능을 탐색해보세요. 모든 예제는 영어 모델이 설치되어 있다고 가정합니다.

PaddleOCR Python

예제 1: 기본 OCR

PaddleOCR을 사용하여 기본 모델로 이미지에서 텍스트를 추출하려면 표준 구성으로 OCR 엔진을 초기화하기만 하면 됩니다. 이 구성에는 영어 지원 및 정확도 향상을 위한 각도 분류가 포함됩니다. PaddleOCR은 입력 이미지에서 텍스트를 식별하고 해석하기 위해 사전 훈련된 감지, 인식 및 분류 모델을 사용합니다. 이미지가 처리되면 OCR 엔진은 감지된 텍스트를 해당 위치 및 각 결과에 대한 신뢰도 점수와 함께 반환합니다. 이 설정은 사용자 정의 모델 훈련이나 복잡한 구성 없이도 이미지에서 텍스트 콘텐츠를 빠르고 효율적으로 추출할 수 있는 방법을 제공합니다.

이미지 OCR


from paddleocr import PaddleOCR

ocr = PaddleOCR(use_angle_cls=True, lang='en')  # 초기화
result = ocr.ocr('image.jpg', cls=True)  # 이미지 처리

# 인식된 텍스트 출력
for line in result:
    print(line[-1][0])  # 텍스트 내용

출력 내용:

  • 텍스트 내용 및 신뢰도 점수
  • 바운딩 박스 좌표

예제 2: 일괄 처리

PaddleOCR을 사용하여 여러 이미지를 효율적으로 처리하려면 중복 초기화를 최소화하고 성능을 최적화하는 일괄 처리 기술을 활용할 수 있습니다. 각 이미지에 대해 OCR 엔진을 개별적으로 초기화하는 대신 단일 OCR 모델 인스턴스를 생성하고 모든 입력 이미지에 대해 재사용하는 것이 좋습니다. 이 접근 방식은 처리 시간과 리소스 사용을 크게 줄입니다. 이미지 경로 목록을 루프에서 OCR 엔진에 전달하거나 (적절한 경우) 병렬 처리를 사용하면 문서 일괄 처리, 스캔된 아카이브 또는 대량 이미지 분석과 관련된 워크플로우에 이상적인 대량의 이미지 세트에서 텍스트를 빠르고 효과적으로 추출할 수 있습니다.

일괄 OCR


image_paths = ['doc1.jpg', 'doc2.png']
results = ocr.ocr(image_paths, batch_size=4)  # 병렬 처리

예제 3: 레이아웃 분석

PaddleOCR은 텍스트 인식뿐만 아니라 특정 텍스트 영역 식별 및 이미지 내 테이블과 같은 구조화된 요소 감지에도 사용할 수 있습니다. 시스템은 먼저 감지 모델을 통해 텍스트 영역을 찾아내며, 각 텍스트 영역을 바운딩 박스로 표시하여 사용자가 이미지 내 텍스트 위치를 이해할 수 있도록 합니다. 양식이나 테이블이 포함된 문서와 같은 더 복잡한 레이아웃의 경우 PaddleOCR은 레이아웃 분석 및 테이블 구조 인식을 지원합니다. 이를 통해 행, 열 및 셀 경계를 감지할 수 있어 테이블 형식의 데이터를 체계적인 형식으로 추출할 수 있습니다. 이러한 기능은 자유 형식 텍스트와 테이블 형식 데이터가 공존하는 스캔된 문서, 송장 또는 스프레드시트의 디지털화에 특히 유용합니다.

레이아웃 감지


from paddleocr import PPStructure

structure_engine = PPStructure(table=False, ocr=False)
layout_result = structure_engine('document.pdf')

고급 기능

PaddleOCR은 복잡한 워크플로우를 지원합니다:

  • 사용자 정의 훈련: 사용자 데이터로 모델 미세 조정:

    모델 훈련

    
        python tools/train.py -c configs/det/det_mv3_db.yml
        
    
  • 다국어 혼합: 다국어 문서 처리:

    다국어 OCR

    
        ocr = PaddleOCR(lang='chinese+english')
        
    
  • PDF 지원: PDF에서 직접 텍스트 추출:

    PDF 처리

    
        result = ocr.ocr('document.pdf', type='pdf')
        
    

결론

PaddleOCR은 비교할 수 없는 다국어 지원과 확장성을 갖춘 프로덕션 준비 완료된 OCR을 제공합니다. 다음에 이상적입니다:

  • 문서 디지털화: 스캔한 PDF, 송장, 영수증
  • 다국어 애플리케이션: 여권 인식, 다국어 도서
  • 엣지 배포: 온디바이스 OCR이 있는 모바일 앱

PaddlePaddle의 딥러닝 생태계를 기반으로 하는 PaddleOCR은 OCR 정확도와 효율성 측면에서 계속해서 기준을 세우고 있습니다.

유사한 제품

 한국인