영수증에서의 Tesseract vs PaddleOCR
레거시 CPU vs 최신 GPU (2026)
마지막 검토: 2026-08-18 · 실행 등급: 공식 · 1차 대등 비교 벤치마크 · 2개 엔진 × 2개 영수증 데이터셋
이 페이지의 범위 외: 영수증 이외의 문서 유형 — 테이블, 양식, 송장, 계약서 또는 긴 문서는 포함되지 않습니다. 클라우드/API OCR 서비스, 미세 조정된 엔진, 기타 오픈소스 엔진, 그리고 기록된 RTX 4090 외의 하드웨어 등급은 순위 맥락으로 인용된 경우를 제외하고 범위 밖입니다. 전체 8엔진 요약은 Traditional OCR vs Document Parsing VLMs에 있습니다.
범위 설명: 이 페이지의 모든 수치는 영수증에만 적용됩니다 — SROIE 2019 영어 영수증과 CORD v2 인도네시아어 영수증. 하드웨어 등급 1개, LLM 후처리기 1개(deepseek-v4-flash, temperature 0), 고정 모델 버전(Tesseract 5.3.4, PaddleOCR 3.7.0). Tesseract는 GPU 가속화된 엔진에 대해 CPU로 실행되었습니다 — 이 비대칭성은 비교에 내재된 것이지 결점이 아닙니다. 이 결과를 다른 문서 유형, GPU 또는 LLM으로 외삽하지 마십시오. 모든 수치는 벤치마크의 results/summary_metrics.csv와 results/field_method_comparison.csv에서 나왔으며, 공개 GitHub 저장소에 미러링되어 행별로 인용됩니다.
세대 간 정확도 격차는 결정적이고 일방적입니다 — 이전 docTR-vs Surya2 대결처럼 동점이 아닙니다. 동일한 361개 SROIE 영수증에서 PaddleOCR은 모든 정확도 축에서 승리합니다: CER 0.2045 대 0.3347, WER 0.3256 대 0.5591, 정규식 필드 F1 0.3254 대 0.2335, LLM 후처리 필드 F1 0.5810 대 0.4389. 하지만 주목할 만한 놀라운 점은 정반대 방향입니다: CPU 전용 클래식 엔진이 실시간 처리량에서 최신 GPU 엔진과 어깨를 나란히 합니다 — 78.6 대 79.7 페이지/분 — 그리고 2.2배 더 좁은 p95 꼬리 구간을 유지하면서, PaddleOCR이 1,000페이지당 $0.2214를 청구하는 GPU 비용은 전혀 들지 않습니다. 최신 엔진이 "대량 처리 시 더 빠르다"는 것이 아닙니다 — 워밍업 후 페이지당 더 빠르며, 그 이점이 실시간 성능을 부분적으로 상쇄합니다.
한 쌍의 숫자로 본 트레이드오프: PaddleOCR은 39% 적은 문자 오류로 영수증을 읽고 정규식을 통해 1.39배 많은 필드를 추출하며 1,000페이지당 $0.2214가 듭니다; Tesseract는 CPU에서 더 많은 오류로 읽고, GPU 비용 제로이며, 통계적으로 동일한 실시간 처리량을 보입니다. 어느 엔진도 "승리"하지 않습니다; 서로 다른 축에서 승리합니다 — 그리고 필드 추출 축에서는 격차가 전체 8개 엔진 벤치마크에서 가장 큰 형제 행 분리로 벌어집니다.
두 엔진의 정체: 35년된 OCR vs CNN 2단계 파이프라인
이 페이지의 전체 스토리는 아키텍처 격차입니다. Tesseract는 클래식 오픽소스 OCR 엔진으로, 1980년대에 HP에서 처음 개발되었고 2005년에 Google이 오픈소스로 공개했습니다. 그래서 약 35년의 역사를 지니고 있습니다. 그 파이프라인은 전통적인 컴퓨터 비전입니다: 적응형 이진화, 페이지 분석, 연결 성분 분석, 그리고 문자 인식 — 버전 4부터 LSTM 기반으로 — 모두 CPU에서 실행되며, 이 벤치마크에서는 GPU 비용이 없습니다. PaddleOCR은 PaddlePaddle 생태계의 최신 딥러닝 엔진입니다: PP-OCR 계열의 2단계 파이프라인 — 텍스트 영역을 찾는 감지 단계와 그 텍스트를 전사하는 인식 단계 — GPU에서 실행됩니다. 한 엔진은 학습된 패턴과 문자 모양을 비교하여 읽고, 다른 엔진은 텍스트가 어디에 있고 무엇인지 학습하여 읽습니다. 이 벤치마크는 동일한 영수증, 동일한 프로토콜, 동일한 머신에서 두 엔진을 테스트합니다.
이 메커니즘이 중요한 이유: Tesseract의 접근 방식은 실행 비용이 저렴하고 GPU가 필요 없습니다 — 하지만 그 문자 모델은 수십 년 된 클래식 인식이 고정되어 있어, 텍스트 품질에 뚜렷한 한계를 보여줍니다. PaddleOCR의 접근 방식은 GPU 시간이 들지만 상당히 깨끗한 텍스트를 읽습니다. 이 벤치마크의 역할은 제어된 실행 하나로 그 트레이드오프의 양쪽에 수치를 매기는 것이며, 놀라운 점은 운영 비용 측면의 트레이드오프가 얼마나 좁았는지입니다.
문자 정확도: 최신 아키텍처가 모든 텍스트 지표에서 승리
SROIE 2019에서 텍스트 정확도 격차는 크고 일방적입니다: CER 0.2045(PaddleOCR) 대 0.3347(Tesseract) — 39% 상대적 개선 — 그리고 WER 0.3256 대 0.5591, 42% 상대적 격차. Tesseract의 CER 0.3347는 기본 실행의 8개 엔진 중 5위로, 중간 성적이지 마지막은 아닙니다. 하지만 그 위의 엔진 중 하나를 제외하면 모두 딥러닝 엔진이며, Tesseract와 딥러닝 등급 사이의 격차는 그 엔진들과 PaddleOCR 사이의 격차보다 큽니다.
문자 오류율(CER)은 클래식 OCR의 측정 기준입니다: 삽입, 삭제, 대체를 정답 문자 수로 나눈 값 — CER 0.335는 100자당 약 33.5자의 오류를 의미합니다. 단어 오류율(WER)은 동일한 편집 거리 계산을 단어 단위로 적용합니다. 둘 다 낮을수록 좋습니다. WER 격차(42%)가 CER 격차(39%)보다 넓다는 것은 Tesseract의 문자 실수가 이 코퍼스에서 전체 단어 실패로 누적된다는 것을 의미합니다 — 이는 후속 필드 추출기가 직접 상속하는 클래식 엔진의 실패 모드입니다.
출처: summary_metrics.csv — cer 및 wer 열, sroie_2019 행. PaddleOCR cer 0.20449 / wer 0.32563; Tesseract cer 0.33468 / wer 0.55915. 낮을수록 좋습니다. 엔진당 361개 샘플; error_rate 모두 0.0.
| 지표 (SROIE 2019, n=361) | Tesseract 5.3.4 (CPU) | PaddleOCR 3.7.0 (GPU) | 출처 |
|---|---|---|---|
| 문자 오류율 (CER) | 0.3347 | 0.2045 | summary_metrics.csv · cer, tesseract/sroie_2019 및 paddleocr/sroie_2019 행 |
| 단어 오류율 (WER) | 0.5591 | 0.3256 | summary_metrics.csv · wer, 동일 행 |
| 오류율 | 0.0 | 0.0 | summary_metrics.csv · error_rate, 동일 행 |
표: summary_metrics.csv — cer / wer / error_rate 열, sroie_2019 행. 정확한 값: Tesseract cer 0.33468 / wer 0.55915; PaddleOCR cer 0.20449 / wer 0.32563. CER/WER가 낮을수록 좋습니다. 동일 CSV의 순위 맥락: 모든 8개 엔진의 SROIE CER는 surya2 0.1915, doctr 0.1971, PaddleOCR 0.2045, easyocr 0.2833, Tesseract 0.3347 (5위), paddleocr_vl 0.3370, docling 0.5909, unlimited_ocr 0.6552입니다. 여기서 어떤 엔진도 벤치마크의 정확도 챔피언이 아닙니다 — docTR과 Surya2가 상위 두 개의 CER 자리를 차지하고 있습니다.
필드 추출: 프로DUCTION 결정을 좌우하는 격차
텍스트 정확도는 엔진을 순위를 매기지만, 필드 추출은 실제 하류 시스템이 소비하는 것입니다. 벤치마크의 SROIE 필드 지표는 각 엔진의 OCR 텍스트에 두 가지 후처리기를 사용하여 네 가지 단순 영수증 필드를 대상으로 합니다: 고정된 정규식 패턴과 구조화된 프롬프트를 사용하는 LLM 후처리기(deepseek-v4-flash, temperature 0)입니다. 정규식을 통해 PaddleOCR은 0.3254 필드 F1로 필드를 추출하며, Tesseract의 0.2335 대비 1.39×의 이점을 보유합니다. LLM을 통해서는 격차가 0.5810 대 0.4389(1.32×)로 지속됩니다. LLM의 도움은 두 엔진 모두에게 유리하지만, Tesseract의 더 약한 기반에서 시작됩니다 — 그리고 프로DUCTION 파이프라인을 결정하는 상한선 논쟁은 다음 섹션에 있습니다.
필드 값 F1은 추출된 필드 값이 실젯값과 대비하여 정밀도와 재현율의 조화 평균입니다 — 1.0은 모든 영수증 필드가 완벽하게 복구됨을 의미하고, 0은 아무것도 복구되지 않음을 의미합니다. SROIE 정규식 필드 열은 벤치마크의 postprocessed_sroie_receipt_regex_* 지표입니다: 각 엔진의 OCR 텍스트에 적용된 고정 패턴 — 후처리된 것이지, 네이티브 구조화 출력이 아닙니다. 순위 맥락: PaddleOCR의 정규식 F1 0.3254는 8엔진 벤치마크에서 4개의 순수 전통 엔진 중 최고입니다; Tesseract의 0.2335는 전체 4위 정규식 결과입니다 — 이 고전 엔진은 깨끗한 영어 텍스트에서 중간 수준의 필드 추출기이며, 바로 거기서 경쟁력을 잃기 시작합니다.
출처: field_method_comparison.csv — regex_field_value_f1 / llm_field_value_f1 열, sroie_2019 행. LLM 후처리기: deepseek-v4-flash. 엔진당 361개 샘플(llm_ok_count).
| 필드 추출 (SROIE 2019, n=361) | Tesseract 5.3.4 (CPU) | PaddleOCR 3.7.0 (GPU) | 출처 |
|---|---|---|---|
| 필드 값 F1 | 0.2335 | 0.3254 | field_method_comparison.csv · regex_field_value_f1, tesseract/sroie_2019 및 paddleocr/sroie_2019 행 |
| 필드 값 F1 (LLM) | 0.4389 | 0.5810 | field_method_comparison.csv · llm_field_value_f1, 동일 행 |
| 모든 필드 정확한 문서 비율 (LLM) | 0.0526 | 0.0748 | field_method_comparison.csv · llm_document_fields_exact, 동일 행 |
| LLM 후처리 중간 지연 시간 (ms) | 1,837.1 | 1,817.5 | field_method_comparison.csv · llm_median_latency_ms, 동일 행 |
표: field_method_comparison.csv — regex 및 llm 열, sroie_2019 행. regex 열은 postprocessed_sroie_receipt_regex_* 지표: 각 엔진의 OCR 텍스트에 적용된 고정 패턴. LLM 후처리기: deepseek-v4-flash, temperature 0. LLM 지연 시간은 API로 인한 것이며 엔진 지연 시간과 별개입니다 (summary_metrics.csv latency_p50_ms). “모든 필드가 정확한 문서”는 모든 대상 필드가 정확히 일치한 문서의 비율로 — 필드별 F1보다 훨씬 엄격한 기준입니다. 순위 맥락: PaddleOCR 0.5810은 8개 중 5위; Tesseract 0.4389은 7위로, EasyOCR의 0.3717보다 앞섭니다.
놀라운 사실: 벽시계 기준 CPU 처리량 동등성
이 페이지의 헤드라인-worthy 발견은 그 어떤 제3자 비교 문서에도 없는 것입니다: 동일한 영수증에서 CPU 전용 클래식 엔진이 벽시계 기준 분당 페이지 수에서 최신 GPU 엔진과 동등한 성능을 보입니다 — 78.6 (Tesseract) 대 79.7 (PaddleOCR), 약 1.4% 차이로 통계적으로 동등합니다. 클래식 엔진은 “대량 처리 시 느리다”가 아닙니다: 페이지당 느리지만 안정적이며 — 이 코퍼스에서는 기본 실행의 7개 GPU 엔진 중 4개를 능가합니다.
이는 지연 시간 수치와 모순되는 것처럼 보이며, 각주가 아닌 정직한 조명이 필요합니다. 지연 시간 p50은 모델 로딩을 제외한 가열 후 측정된 정상 상태 페이지당 추론 시간입니다 — PaddleOCR의 297.0 ms는 Tesseract의 670.9 ms보다 실제로 빠릅니다. 분당 페이지 수는 모델 초기화 및 배치 효과를 포함한 전체 실행의 벽시계 처리량입니다. CSV의 처리량을 벽시계 페이지당 시간으로 변환합니다: PaddleOCR은 페이지당 ~753 ms의 벽시계 시간을 소요하며 p50 297 ms 대비 — 약 456 ms의 초기화/프리필 및 배치 오버헤드; Tesseract은 페이지당 ~763 ms의 벽시계 시간을 소요하며 p50 671 ms 대비 — 약 92 ms의 오버헤드. Tesseract의 경량 CPU 런타임은 빠르게 시작하고 안정적으로 스트리밍합니다; PaddleOCR의 GPU 파이프라인은 실행당 더 무거운 로드/프리필 비용을 지불하며, 이 361페이지 코퍼스에서 빠른 정상 상태를 거의 상쇄합니다. 오래 실행되는 가열된 파이프라인은 PaddleOCR의 페이지당 이점을 보지만, 콜드 스타트, 소규모 배치 또는 빈번한 재초기화가 지배하는 파이프라인에서는 두 엔진이 클래식 측에서 동등하거나 그 이상의 성능을 보입니다.
p95 꼬리 구간은 하나의 수치로 같은 이야기를 전합니다: Tesseract의 p95 1,507.0 ms는 PaddleOCR의 3,331.4 ms보다 2.2배 좁습니다. GPU 엔진의 첫 페이지/프리필 스파이크 — 벽시계 페이지당 시간을 증가시키는 동일한 로드 경로 —이 최악의 꼬리 구간을 지배하는 반면, CPU 엔진에는 그러한 스파이크가 없습니다. 꼬리 지연 시간에 민감하거나 용량을 계획하는 워크로드의 경우, 클래식 엔진이 더 예측 가능한 선택입니다.
출처: summary_metrics.csv — pages_per_minute 열, sroie_2019 행. Tesseract 78.63285, PaddleOCR 79.71298. 모델 초기화 포함 벽시계 기준 페이지/분; 페이지당 정상 상태 지연 시간은 latency_p50_ms 열 참조. 검증: 60 ÷ 78.63285 = 763 ms/페이지 vs 60 ÷ 79.71298 = 753 ms/페이지 벽시계 기준.
출처: summary_metrics.csv — latency_p50_ms / latency_p95_ms 열, sroie_2019 행. Tesseract p50 670.87 / p95 1506.99; PaddleOCR p50 296.99 / p95 3331.35. 정상 상태 지연 시간. p50-vs-페이지/분 긴장은 위 문장에서 조정됨: 다른 시계, 둘 다 실제.
| 작동 범위 (SROIE 2019, n=361) | Tesseract 5.3.4 (CPU) | PaddleOCR 3.7.0 (GPU) | 출처 |
|---|---|---|---|
| 지연 시간 p50 (ms) | 670.9 | 297.0 | summary_metrics.csv · latency_p50_ms, tesseract/sroie_2019 및 paddleocr/sroie_2019 행 |
| 지연 시간 p95 (ms) | 1,507.0 | 3,331.4 | summary_metrics.csv · latency_p95_ms, 동일 행 |
| 페이지당 분당 | 78.6 | 79.7 | summary_metrics.csv · pages_per_minute, 동일 행 |
표: summary_metrics.csv — latency_p50_ms / latency_p95_ms / pages_per_minute, sroie_2019 행. 정확한 값: Tesseract p50 670.87 / p95 1506.99 / 78.63 pg/min; PaddleOCR p50 296.99 / p95 3331.35 / 79.71 pg/min. 지연 시간은 정상 상태 페이지당; 페이지/분은 초기화 및 배치 효과 포함 벽시계 기준 — 동등성과 p95 역전은 측정 모델 및 아키텍처 사실이지 모순이 아님.
비용 이야기: 레거시 엔진이 완전히 우위를 점하는 부분
비용은 Tesseract의 오래됨이 구조적으로 이점이 되는 유일한 축입니다. Tesseract는 CPU 전용이므로 CSV의 비용 셀은 설계상 비어 있습니다 — GPU 과금 대상이 아니기 때문입니다 — 반면 PaddleOCR은 기록된 $0.76/hr의 동일한 RTX 4090에서 1,000페이지당 $0.2214가 과금됩니다. 처리량이 동일한 워크로드에서, GPU 과금을 꺼리는 인프라에서 레거시 엔진의 운영 비용은 실질적으로 낮습니다 — 이는 "업그레이드할 가치가 있는가" 결정의 가격 기준점입니다.
비용은 벽시계 실행 시간 × RunPod RTX 4090 요금으로 계산되며, 모델 초기화를 포함합니다. 비어 있는 Tesseract 셀은 0이 아닙니다 — 엔진이 GPU를 사용하지 않았기 때문에 결측값입니다. 벤치마크는 숫자를 가정하지 않고 비어 있는 것으로 기록합니다. 두 가지 맥락 숫자가 이를 뒷받침합니다: PaddleOCR의 $0.2214는 7개 GPU 엔진 중 중간 수준입니다, CORD에서는 PaddleOCR의 비용이 141.0페이지/min에서 1,000페이지당 $0.3419로 증가합니다.
출처: summary_metrics.csv — cost_per_1000_pages 열, sroie_2019 행. PaddleOCR 0.2214. Tesseract의 값은 비어 있습니다: CPU 전용 컴퓨팅 유형, GPU 과금 없음 — 0이 아닌 생략으로 표시됨. 비용 = 벽시계 실행 시간 × $0.76/hr, 실행 매니페스트에 가격 타임스탬프 기재. 벤치마크에서 가장 저렴한 GPU 엔진: docTR 1,000페이지당 $0.048.
| 비용 및 처리량 (SROIE 2019, n=361) | Tesseract 5.3.4 (CPU) | PaddleOCR 3.7.0 (GPU) | 출처 |
|---|---|---|---|
| 1,000페이지당 비용 | 비어 있음 — CPU 전용 | $0.2214 | summary_metrics.csv · cost_per_1000_pages, 동일 행; Tesseract 셀은 설계상 비어 있음 |
| 컴퓨팅 유형 | cpu | gpu | summary_metrics.csv · compute_type, 동일 행 |
표: summary_metrics.csv — cost_per_1000_pages / compute_type 열, sroie_2019 행. Tesseract의 비용 셀은 엔진이 CPU 전용이므로 비어 있습니다; PaddleOCR의 GPU 비용은 기록된 $0.76/hr에서 모델 초기화를 포함합니다. CORD에서는 PaddleOCR의 비용이 141.0페이지/min에서 1,000페이지당 $0.3419입니다.
CORD (인도네시아 영수증): 양쪽 모두 붕괴 — 벤치마크 내 최대 필드 격차 발생
두 엔진 모두 인도네시아 영수증을 주로 학습하지 않았으므로, CORD v2는 교차 언어 스트레스 테스트 역할을 합니다 — 그리고 두 엔진 모두 원시 CER에서 붕괴합니다: 0.9083 (PaddleOCR) 및 0.9523 (Tesseract), 언어 불일치로 인한 무의미한 결과입니다. 벤치마크 프로토콜에 따라, CORD 수치는 SROIE 비교와 격리되어 유지됩니다 — 어떤 순위에도 합병되지 않습니다 — 왜냐하면 CORD의 정답 텍스트에 주석 구조가 포함되어 있어, 모든 엔진의 원시 CER을 진정한 언어 불일치 위에 추가로 부풀리기 때문입니다.
두 엔진이 실질적으로 차이를 보이는 곳은 LLM 필드 활용도이며, 이것이 이 페이지의 가장 강력한 단일 데이터 포인트입니다: LLM 후처리를 통해 PaddleOCR의 CORD 필드 F1은 0.5527로 유지됩니다 — 이는 CORD에서 8개 엔진 중 최고입니다 — 반면 Tesseract는 0.1627로 붕괴하여, 전체 벤치마크에서 8개 엔진 중 최저가 됩니다. 그 0.39포인트 차이는 이번 실행에서 어떤 두 형제 LLM 필드 행 간의 가장 넓은 격차입니다. 이 메커니즘은 한계점 논의가 구체화된 것입니다: Tesseract의 CER 0.9523은 텍스트가 너무 읽을 수 없어서 어떤 후처리기 — 정규식이든 LLM이든 — 필드를 복구할 수 없습니다. LLM 활용은 도움이 됩니다, 더 약한 기반에서 출발하여 엔진이 읽지 못한 텍스트를 만들어낼 수는 없습니다. CORD는 언어 견고성 맥락을 위해 여기에 인용되었으며, 의도적으로 SROIE 수치와 단일 리더보드로 합병되지 않습니다.
| CORD v2, 인도네시아 영수증 (n=100) | Tesseract 5.3.4 (CPU) | PaddleOCR 3.7.0 (GPU) | 출처 |
|---|---|---|---|
| 문자 오류율 (CER) | 0.9523 | 0.9083 | summary_metrics.csv · cer, tesseract/cord_v2 및 paddleocr/cord_v2 행 |
| 필드 값 F1 | 0.0752 | 0.0154 | field_method_comparison.csv · regex_field_value_f1, 동일 행 |
| 필드 값 F1 (LLM) | 0.1627 | 0.5527 | field_method_comparison.csv · llm_field_value_f1, 동일 행 |
| 1,000페이지당 비용 | 없음 — CPU 전용 | $0.3419 | summary_metrics.csv · cost_per_1000_pages, 동일 행 |
| 분당 페이지 수 | 108.9 | 141.0 | summary_metrics.csv · pages_per_minute, 동일 행 |
테이블: summary_metrics.csv (cer / cost_per_1000_pages / pages_per_minute) 및 field_method_comparison.csv (field F1), cord_v2 행. CORD 수치를 어떤 SROIE 순위에도 병합하지 마세요: CORD CER는 실제 언어 불일치와 지면 데이터의 주석 구조적 부풀림을 결합하며, 정규식 패턴은 영어 형식용으로 작성되었습니다. 순위 맥락: PaddleOCR 0.5527은 8개 중 최고; Tesseract 0.1627은 8개 중 최저 — 벤치마크에서 가장 큰 형제 행 간 격차. Tesseract의 비용 셀은 비어 있습니다, 절대 0이 아닙니다.
언제 누가 이기는가: 요약 격자
“더 나은” 것은 작업 부하에 따라 다르며, 이 대결은 축을 이례적으로 명확하게 나눕니다: 모든 정확도 축은 PaddleOCR에 유리하고; 비용, CPU 단순성, 그리고 타이트한 p95 꼬리는 Tesseract에 유리하며; 벽시계 처리량은 통계적으로 동률이고; 페이지당 지연 시간은 PaddleOCR에 유리하며; 그리고 원시 CER 챔피언십은 어느 쪽도 차지하지 않습니다(docTR/Surya2).
자주 묻는 질문
PaddleOCR이 영수증 처리에서 Tesseract보다 더 정확한가요?
네 — 이 벤치마크에서 측정된 모든 정확도 항목에서 그렇습니다. SROIE 2019 기준: CER 0.2045 vs 0.3347, WER 0.3256 vs 0.5591 (42%), 정규식 필드 F1 0.3254 vs 0.2335 (1.39×), LLM 후처리 필드 F1 0.5810 vs 0.4389 (1.32×) (summary_metrics.csv 및 field_method_comparison.csv, sroie_2019 행). 두 엔진 모두 벤치마크의 전체 텍스트 챔피언은 아닙니다 — Surya2 (CER 0.1915)와 docTR (0.1971)가 그 타이틀을 보유하고 있습니다.
Tesseract가 CPU 전용임에도 분당 페이지 수에서 PaddleOCR과 어떻게 동등한 성능을 보이나요?
분당 페이지 수는 벽시계 처리량이지 페이지당 추론 속도가 아니기 때문입니다. PaddleOCR의 정상 상태 p50 (297.0 ms)은 Tesseract (670.9 ms)보다 실제로 2.3× 빠르지만, 벽시계 처리량에는 모델 초기화 및 배치 효과가 포함됩니다: 79.7페이지/분인 PaddleOCR은 페이지당 벽시계 기준 ~753 ms를 소요하며 이는 297 ms p50보다 긴 반면, Tesseract의 경량 CPU 런타임은 페이지당 ~763 ms를 소요하며 이는 671 ms p50보다 길습니다 — GPU 엔진은 실행당 더 무거운 로드/프리필 비용을 지불하며, 이는 이 361페이지 코퍼스에서 거의 속도 이점을 상쇄합니다.
Tesseract의 p95 지연 시간이 PaddleOCR보다 왜 더 짧은가요?
GPU 엔진의 첫 페이지/프리필 스파이크가 최악의 꼬리 구간을 지배하기 때문입니다: PaddleOCR p95 3,331.4 ms vs Tesseract p95 1,507.0 ms, p50 순서의 2.2× 역전. Tesseract의 CPU 파이프라인에는 로드 스파이크가 없고 안정적으로 스트리밍됩니다; PaddleOCR의 빠른 정상 상태는 매 실행마다 더 무거운 초기화 경로를 수반합니다. 두 시계는 서로 다른 것을 측정하며 둘 다 사실입니다.
Tesseract가 PaddleOCR보다 저렴한가요?
GPU 과금 기준으로는 예 — Tesseract는 비용이 없습니다: CPU 전용이라 CSV의 비용 칸이 설계상 비어 있습니다, 반면 PaddleOCR은 동일한 RTX 4090($0.76/hr)에서 모델 초기화 비용 포함, SROIE 기준 1,000페이지당 $0.2214, CORD 기준 $0.3419가 과금됩니다. 벤치마크 전체에서 가장 저렴한 GPU 엔진은 1,000페이지당 $0.048인 docTR입니다.
왜 Tesseract의 CORD LLM 필드 F1이 벤치마크 전체에서 가장 낮나요?
LLM 후처리기가 OCR 엔진이 읽지 못한 텍스트를 복구할 수 없기 때문입니다. Tesseract의 CORD CER은 0.9523으로 — 인도네시아 영수증에서 사실상 읽을 수 없으며 — 따라서 LLM 필드 F1이 0.1627로 떨어져 8개 엔진 중 가장 낮습니다. 반면 PaddleOCR은 0.5527로 8개 중 가장 높습니다. 깨끗한 영어 텍스트(SROIE)에서는 동일한 요인이 Tesseract를 0.4389까지 끌어올리지만 — 상한은 기본 텍스트 품질에 의해 결정됩니다.
왜 두 엔진 모두 CORD 영수증에서 이렇게 낮은 점수를 받나요?
SROIE 순위와 별도로 유지되는 두 가지 복합 원인이 있습니다: 진정한 언어 불일치와 CORD의 정답 텍스트 내 주석 구조의 과잉 — CER이 0.9083(PaddleOCR) 및 0.9523(Tesseract)에 도달합니다. 여전히 두 엔진을 구분하는 것은 LLM 후속 복구 능력입니다: PaddleOCR 0.5527 대 Tesseract 0.1627 필드 F1 — 벤치마크에서 가장 큰 동일 그룹 행 간 격차입니다. CORD 행은 맥락을 포함하여 인용되며 어떤 합산 순위에도 포함되지 않습니다.
영수증 파이프라인은 어떤 엔진을 선택해야 할까요, Tesseract와 PaddleOCR 중?
파이프라인이 필드 — 회사, 날짜, 합계 등 추출된 값을 사용하는 경우, PaddleOCR이 영수증에서 명백한 기본 선택입니다: 정규식 기준 필드 F1이 1.39배, LLM 기준 1.32배이며, CORD 언어 충격에서도 살아남는 LLM 후속 복구 성능을 보입니다(field_method_comparison.csv). GPU 비용 없이, CPU 전용 인프라에서, 또는 최대 지연 시간 예측 가능성이 필요한 깨끗한 영어 문서의 대용량 원본 텍스트가 필요하다면, Tesseract는 여전히 합법적인 옵션입니다: 실제 처리량이 동일하고, p95 지연 시간이 2.2배 더 짧으며, GPU 과금이 없습니다 — 다만 중간 수준의 텍스트 기반을 감안해야 하며, 이는 모든 후속 필드 파이프라인의 성능을 제한합니다. 이 결과는 2026년 8월에 한 GPU 티어에서 영어 및 인도네시아어 영수증에 대해 유효합니다; 프로덕션 결정 전에 대상 코퍼스에서 다시 실행하십시오.
이 페이지의 수치는 어디서 왔나요?
모든 수치는 자체 벤치마크의 공개 CSV 파일의 한 행입니다 — results/summary_metrics.csv 및 results/field_method_comparison.csv — ImageToTableai/benchmark-ocr에 호스팅되며, 각 실행마다 홍보용 지문을 위해 편집된 manifest.json이 하나 있습니다. 데이터셋 정의는 아래에 인용된 SROIE 2019 및 CORD 논문에서 가져왔습니다.
방법론 및 출처
프로토콜
이 페이지는 독립적이고 재현 가능한 벤치마크 실행의 대조 슬라이스를 보고합니다 — 제3자 주장에 대한 조사나 벤더 비교 페이지가 아닙니다. 고정된 테스트 분할만 사용합니다: SROIE 2019 테스트 및 CORD v2 테스트; 학습 분할은 평가되지 않았습니다. 두 엔진 모두 동일한 이미지, 동일한 정답, 동일한 측정 프로토콜을 보았습니다. 두 실행 모두 오류율 0.0으로 두 데이터셋에서 완료되었습니다. CPU/GPU 비대칭은 이 비교에 내재된 것입니다: Tesseract는 설계상 GPU 가속화된 엔진에 대해 CPU(compute_type=cpu)로 실행되었습니다 — GPU 시간이 과금되지 않았기 때문에 비용 셀이 비어 있으며, 지연 시간/처리량은 동일한 머신에서 동일한 프로토콜로 측정되었습니다. 기본 실행에는 총 8개의 엔진이 포함되어 있습니다; 이 페이지는 지정된 두 엔진만 비교하며, 다른 엔진은 순위 맥락으로만 인용됩니다. 완전한 8엔진 결과는 Traditional OCR vs Document Parsing VLMs에서 별도로 공개됩니다.
런타임 환경
- 하드웨어: 두 엔진 모두 NVIDIA RTX 4090 (24 GB)가 탑재된 동일한 머신에서 실행되었으며, GPU 비용은 RunPod 온디맨드 요금인 $0.76/hr로 계산되었습니다. 가격은 각 실행의 마니페스트에 타임스탬프가 찍혀 있습니다. Tesseract는 CPU에서 실행되어 GPU 비용이 발생하지 않았으며, 비용 셀은 설계상 비어 있습니다.
- 엔진: 기본 제공 상태, 파인튜닝 없음. 버전 고정: Tesseract 5.3.4 및 PaddleOCR 3.7.0 — 공개 저장소 모델 테이블(README.md) 및 실행 마니페스트 기준.
- LLM 후처리기: 결정론적 출력을 위해 temperature 0으로 API를 통해 사용된 deepseek-v4-flash; 두 엔진의 모든 LLM 필드 행에 사용된 단일 모델입니다.
- 비용 기준: 벽시계 실행 시간 × $0.76/hr, 모델 초기화 포함 — 일괄 처리는 페이지당 비용을 낮춥니다; Tesseract에는 적용되지 않습니다.
- 필드 후처리: SROIE 정규식 필드 지표는
postprocessed_sroie_receipt_regex_*입니다 — 고정 패턴 세트를 사용하여 OCR 텍스트에서 추출된 필드입니다. 이는 두 모델의 네이티브 구조화된 출력이 아닌 OCR + 후속 추출을 측정합니다. LLM_* 열은 OCR 텍스트 + LLM 추출을 측정합니다. 두 파이프라인은 절대 혼합되지 않습니다.
지표 정의
- CER: OCR 텍스트와 정답 간의 편집 거리를 정답 문자 수로 나눈 값. 낮을수록 좋습니다.
- WER: 단어 단위로 동일한 편집 거리 계산.
- 필드 값 F1: OCR 텍스트에 고정 정규식 패턴을 사용하여 추출된 필드 값에 대한 정밀도/재현율 조화 평균. 열: regex_field_value_f1. 점수가 0이면 필드 값이 복구되지 않았음을 의미합니다.
- 필드 값 F1 (LLM): LLM 후처리기 출력에 대한 동일한 지표. 열: llm_field_value_f1. 두 파이프라인은 다르며 절대 혼합되지 않습니다.
- 문서 필드 정확 일치: 모든 대상 필드가 정확히 일치한 문서의 비율 — 필드별 F1보다 훨씬 엄격한 기준.
- 지연 시간 p50/p95 및 페이지/분: 안정 상태 페이지당 추론 시간 및 모델 초기화를 포함한 벽시계 처리량. 다른 시계를 측정합니다; 이 페이지의 p50 대 페이지/분 동등성은 측정 모델의 사실이지 오류가 아니며, 처리량 동등성 섹션에서 조정됩니다.
- 1,000페이지당 비용: 기록된 $0.76/hr 요금으로 1,000페이지에 대한 과금된 GPU 시간, 모델 초기화 포함. Tesseract의 셀은 비어 있습니다 — 빈 셀은
not_applicable이며 절대 0이 아닙니다.
소스 목록
- summary_metrics.csv (GitHub raw). 16행 = 8개 모델 × 2개 데이터셋. 열: model, compute_type, dataset, cer, wer, field_f1_regex, field_acc_regex, latency_p50_ms, latency_p95_ms, cost_per_1000_pages, pages_per_minute, error_rate. 이 페이지의 모든 CER/WER, 지연 시간, 비용, 처리량 수치는 여기의 tesseract 및 paddleocr 행으로 추적됩니다.
- field_method_comparison.csv (GitHub raw). 16행; 열 model, dataset, llm_model (= deepseek-v4-flash), regex/llm 필드-값 정확도 및 F1, document-fields-exact, llm_median_latency_ms, 토큰 수. 모든 regex/LLM 필드-F1 수치는 여기의 tesseract 및 paddleocr 행으로 추적됩니다.
- ImageToTableai/benchmark-ocr 저장소. 결과 CSV, 비식별화된 실행 매니페스트, 고정된 프로토콜 및 재현을 위한 데이터셋 샘플 목록을 호스팅하는 공개 저장소.
- results/manifests/ (GitHub). 게시된 각 실행에 대한 비식별화된 manifest.json 파일 하나. 모델 버전, GPU/드라이버, torch/CUDA/Python 버전, 가격 타임스탬프가 포함된 비용 메타데이터 및 아티팩트 해시 포함.
- Huang et al., "ICDAR2019 Competition on Scanned Receipt OCR and Information Extraction" (2019). SROIE 2019 데이터셋 정의, 작업 구조 및 라이선스 (CC-BY-4.0).
- Park et al., "CORD: A Consolidated Receipt Dataset for Post-OCR Parsing" (2020). CORD v2 데이터셋 정의, 중첩 필드 스키마 및 라이선스 (CC-BY-4.0).
한계점
- CPU/GPU 비대칭은 본질적이지, 결함이 아닙니다: Tesseract는 GPU 가속 엔진에 대비해 CPU에서 실행되었습니다. 비용 셀은 설계상 비어 있습니다, 지연 시간/처리량은 동일한 머신에서 동일한 프로토콜로 측정된 CPU 수치입니다 — 다른 머신 클래스는 작동 범위를 변경할 수 있습니다. 비용 비교를 "하드웨어 독립적 진실"이 아닌 "GPU 과금 대 비과금"으로 간주하십시오.
- 문서 범위 — 영수증만 해당: SROIE + CORD. 여기서는 복잡한 레이아웃, 표, 손글씨 또는 긴 문서 — 고전 엔진이 더 저하되는 것으로 알려진 문서 유형 — 에서의 Tesseract 동작이나 PaddleOCR의 PP-Structure 레이아웃/표 기능을 측정하지 않습니다. 이 페이지를 사용하여 어떤 엔진이 "모든 면에서 우위"라고 결론짓지 마십시오.
- 표본 크기: 361개 영어 + 100개 인도네시아 영수증. 필드 F1 및 CER은 말뭉치에 민감합니다. 몇 백분의 일에 불과한 한 자리 차이는 노이즈로 간주해야지, 엔지니어링 진실로 취급해서는 안 됩니다 — 다만 여기에 기록된 격차는 그 범위를 훨씬 벗어납니다.
- 단일 GPU 티어 및 단일 가격: 모든 GPU 수치는 $0.76/hr의 RTX 4090에서 나왔으며, 가격은 실행 매니페스트에서 2026년 8월로 타임스탬프가 찍혀 있습니다. 다른 GPU, 다중 GPU 서버링, 일괄 스케줄링 또는 가격 변경은 지연 시간, 처리량 및 비용을 변경할 것입니다 — 예산 편성 전 현재 요금으로 비용을 다시 산출하십시오.
- 단일 LLM 후처리기: 모든 LLM 행은 temperature 0의 deepseek-v4-flash를 사용합니다. 다른 LLM은 절대 필드 F1을 변경합니다. 1.32배 SROIE 및 0.39점 CORD 격차는 경계에서 움직일 수 있습니다. LLM 지연 시간은 API로 인해 발생하며 어느 엔진 자체 지연 시간의 일부가 아닙니다.
- Regex 튜닝: 패턴 세트는 데이터셋당 한 번 작성되었습니다. 형식별로, 심하게 튜닝된 패턴 라이브러리는 자체 레이아웃에서 더 높은 점수를 받을 수 있습니다 — LLM이 제거하는 유지보수 비용을 감수하면서.
- CORD CER는 모델별 품질 측정이 아닙니다: CORD ground truth는 주석 구조를 포함하고 있으며, 어느 엔진도 주로 인도네시아어로 훈련되지 않았습니다. CORD CER(0.91~0.95)는 언어 불일치 + ground-truth 팽창을 반영합니다. CORD 행은 맥락을 포함해 인용되며 어떤 SROIE 순위에도 합쳐지지 않습니다.
- 버전 고정: 결과는 Tesseract 5.3.4 및 PaddleOCR 3.7.0에 해당합니다. 어느 엔진의 최신 릴리스도 이 페이지의 모든 수치를 변경할 수 있습니다. Tesseract의 결과는 특히 5.3.4를 반영하며 2026-08-14 반복 실행에서 재검증되었습니다.
관련 참고 자료: PaddleOCR vs EasyOCR 영수증 벤치마크 · docTR vs Surya2 영수증 벤치마크 · 기존 OCR vs 문서 파싱 VLM · Regex vs LLM 필드 추출 · 필드 수준 vs 문자 수준 정확도
관련 읽을거리: AI OCR vs Traditional OCR Accuracy · AI Image Data Extraction vs Traditional OCR · AI Document Extraction Pricing (2026)