Tesseract vs PaddleOCR 영수증 인식 비교
레거시 CPU vs 최신 GPU (2026)
최종 검토: 2026-08-18 · 실행 등급: 공식 · 자체 주관 헤드투헤드 벤치마크 · 2개 엔진 × 2개 영수증 데이터셋
이 페이지에서 다루지 않는 내용: 영수증 이외의 모든 문서 유형 — 표, 양식, 청구서, 계약서, 장문 문서는 제외됩니다. 클라우드/API OCR 서비스, 파인튜닝된 엔진, 기타 오픈소스 엔진, 그리고 기록된 단일 RTX 4090 이외의 하드웨어 등급은 순위 맥락으로 인용되는 경우를 제외하고 범위 밖입니다. 전체 8개 엔진 종합 비교는 전통적 OCR과 VLM 파싱의 헤드투헤드에서 확인할 수 있습니다.
범위 명시: 이 페이지의 모든 수치는 영수증에만 적용됩니다 — 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 대 Surya2의 대결처럼 팽팽한 접전이 아닙니다. 동일한 361장의 SROIE 영수증에서 PaddleOCR은 모든 정확도 지표에서 승리합니다: CER 0.2045 대 0.3347, WER 0.3256 대 0.5591, 정규식 필드 F1 0.3254 대 0.2335 (1.39×), LLM 후처리 필드 F1 0.5810 대 0.4389 (1.32×). 하지만 가장 놀라운 반전은 반대 방향입니다: CPU 전용 클래식 엔진이 실측 처리량에서 최신 GPU 엔진과 맞먹습니다 — 78.6 대 79.7 pages/min — 그리고 2.2× 더 타이트한 p95 꼬리를 유지하면서, PaddleOCR이 1,000페이지당 $0.2214를 청구하는 GPU 비용은 전혀 들지 않습니다. 최신 엔진이 "대량 처리에서 더 빠르다"는 것은 아닙니다 — 워밍업 후 페이지당 더 빠를 뿐이며, 그 이점이 실측 시간에 일부 반영되는 것입니다.
한 쌍의 숫자로 요약되는 트레이드오프: PaddleOCR은 39% 적은 문자 오류로 영수증을 읽고 정규식을 통해 1.39× 많은 필드를 추출하며 1,000페이지당 $0.2214의 비용이 듭니다; Tesseract는 CPU에서 더 많은 오류로 읽지만, GPU 청구가 전혀 없고, 통계적으로 동일한 실측 처리량을 제공합니다. 어느 엔진도 "승리"하지 않습니다; 서로 다른 축에서 승리할 뿐입니다 — 그리고 필드 추출 축에서는 그 격차가 8개 엔진 벤치마크 전체에서 가장 큰 형제 행 차이로 벌어집니다.
두 엔진의 정체: 35년 전통의 OCR 대 CNN 2단계 파이프라인
이 페이지의 전체 이야기는 아키텍처 차이에서 시작됩니다. Tesseract는 고전적인 오픈소스 OCR 엔진으로, 1980년대 HP에서 처음 개발되었고 2005년 Google이 오픈소스로 공개하여 약 35년의 역사를 지니고 있습니다. 그 파이프라인은 전통적인 컴퓨터 비전 방식, 즉 적응형 이진화, 페이지 분할, 연결 요소 분석, 그리고 문자 인식으로 구성되며, 이 벤치마크에서는 GPU 비용 없이 CPU에서 모두 실행됩니다. 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의 순위 맥락: SROIE CER 기준 8개 엔진 전체에서 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 자리를 차지하고 있습니다.
필드 추출: 생산 결정을 좌우하는 격차
텍스트 정확도는 엔진의 순위를 매기지만, 필드 추출은 다운스트림 시스템이 실제로 소비하는 부분입니다. 벤치마크의 SROIE 필드 지표는 네 가지 평면 영수증 필드를 대상으로 하며, 각 엔진의 OCR 텍스트에 두 가지 후처리기를 사용합니다: 고정 정규식 패턴과 구조화된 프롬프트를 사용하는 LLM 후처리기입니다. 정규식을 통한 필드 추출에서 PaddleOCR은 0.3254 필드 F1을 기록하여 Tesseract의 0.2335보다 1.39× 우위를 보입니다. LLM을 통해서도 격차는 0.5810 대 0.4389 (1.32×)로 유지됩니다. LLM 레버는 두 엔진 모두에 도움이 되지만, Tesseract의 더 약한 기반에서 출발합니다. 그리고 생산 파이프라인을 결정하는 상한 논증은 한 섹션 아래에 있습니다.
필드 값 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, 온도 0. LLM 지연 시간은 API에서 발생하며 엔진 지연 시간과는 별개입니다(summary_metrics.csv latency_p50_ms). “모든 필드가 정확히 일치하는 문서”는 모든 대상 필드가 정확히 일치하는 문서의 비율입니다 — 필드별 F1보다 훨씬 엄격한 기준입니다. 순위 컨텍스트: PaddleOCR 0.5810은 8개 중 5위; Tesseract 0.4389는 7위로 EasyOCR의 0.3717보다 앞섭니다.
놀라운 결과: 벽시계 기준 CPU 처리량 동등성
이 페이지의 헤드라인급 발견은 어떤 타사 비교에서도 문서화되지 않은 결과입니다: 동일한 영수증에서 CPU 전용 클래식 엔진이 벽시계 기준 분당 페이지 수에서 최신 GPU 엔진과 동등한 성능을 보입니다 — 78.6(Tesseract) 대 79.7(PaddleOCR), 약 1.4% 차이로 통계적 동등성입니다. 클래식 엔진은 “대량 처리 시 느리지” 않습니다: 페이지당 느리지만 꾸준하며 — 이 코퍼스에서는 기본 실행에서 7개 GPU 엔진 중 4개를 능가합니다(docling 56.7, paddleocr_vl 68.2, unlimited_ocr 34.4, surya2 12.1 pages/min).
이는 지연 시간 수치와 모순되는 것처럼 보이며, 각주가 아닌 정직한 해명이 필요합니다. 지연 시간 p50은 정상 상태의 페이지당 추론으로, 모델 로딩을 제외하고 워밍업 후 측정한 값입니다 — PaddleOCR의 297.0 ms는 Tesseract의 670.9 ms보다 확실히 빠릅니다. 분당 페이지 수는 전체 실행의 벽시계 처리량으로, 모델 초기화와 배치 효과를 포함합니다. CSV의 처리량을 페이지당 벽시계 시간으로 변환하면: PaddleOCR은 p50 297 ms에 비해 페이지당 약 753 ms를 소비합니다 — 페이지당 약 456 ms의 초기화/프리필 및 배치 오버헤드; Tesseract는 p50 671 ms에 비해 페이지당 약 763 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/페이지, 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과 페이지/분 간의 긴장 관계는 위 본문에서 설명됨: 서로 다른 클록, 둘 다 실제 값.
| 운영 범위(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은 동일한 RTX 4090에서 기록된 $0.76/hr 기준으로 1,000페이지당 $0.2214가 청구됩니다. 처리량 기준 워크로드의 경우, GPU 청구에 민감한 인프라에서 클래식 엔진의 운영 비용은 실질적으로 더 낮습니다 — 이것이 “업그레이드할 가치가 있는가”라는 결정의 가격 기준점입니다.
비용은 실제 소요 시간 × RunPod RTX 4090 요금으로 계산되며, 모델 초기화 시간을 포함합니다. Tesseract의 빈 셀은 0이 아닙니다 — 엔진이 GPU를 전혀 사용하지 않았기 때문에 누락된 값입니다. 벤치마크는 숫자를 임의로 가정하지 않고 빈 값으로 기록합니다. 이 수치의 신뢰성을 뒷받침하는 두 가지 맥락 수치가 있습니다: PaddleOCR의 $0.2214는 7개 GPU 엔진 중 중간 수준이며, CORD 데이터셋에서는 PaddleOCR의 비용이 141.0페이지/분 속도에서 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페이지/분 속도에서 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의 CORD 텍스트는 충분히 읽을 수 없어서(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 대 0.3347, WER 0.3256 대 0.5591 (42%), 정규식 필드 F1 0.3254 대 0.2335, LLM 후처리 필드 F1 0.5810 대 0.4389 (summary_metrics.csv 및 field_method_comparison.csv, sroie_2019 행). 두 엔진 모두 이 벤치마크의 전체 텍스트 챔피언은 아닙니다 — Surya2 (CER 0.1915)와 docTR (0.1971)이 그 타이틀을 보유하고 있습니다.
CPU 전용임에도 불구하고 Tesseract가 분당 페이지 수에서 PaddleOCR과 동률을 이루는 이유는 무엇입니까?
분당 페이지 수는 벽시계 처리량이지 페이지당 추론 속도가 아니기 때문입니다. PaddleOCR의 안정 상태 p50 (297.0 ms)은 실제로 Tesseract (670.9 ms)보다 2.3배 빠르지만, 벽시계 처리량에는 모델 초기화 및 배치 효과가 포함됩니다: 79.7페이지/분에서 PaddleOCR은 페이지당 약 753 ms의 벽시계 시간을 소비하며 p50은 297 ms인 반면, Tesseract의 경량 CPU 런타임은 페이지당 약 763 ms를 소비하며 p50은 671 ms입니다 — GPU 엔진은 실행마다 더 무거운 로드/프리필 비용을 지불하여 이 361페이지 코퍼스에서 속도 이점을 거의 상쇄합니다.
Tesseract의 p95 지연 시간이 PaddleOCR보다 더 타이트한 이유는 무엇입니까?
GPU 엔진의 첫 페이지/프리필 스파이크가 최악의 꼬리 부분을 지배하기 때문입니다: PaddleOCR p95 3,331.4 ms 대 Tesseract p95 1,507.0 ms, p50 순서의 2.2배 역전입니다. Tesseract의 CPU 파이프라인은 로드 스파이크가 없고 꾸준히 스트리밍됩니다; PaddleOCR의 빠른 안정 상태는 매 실행마다 더 무거운 초기화 경로를 수반합니다. 두 클록은 서로 다른 것을 측정하며 둘 다 실제입니다.
Tesseract가 PaddleOCR보다 저렴한가요?
GPU 과금 기준으로는 그렇습니다 — Tesseract에는 GPU 과금이 없습니다: CPU 전용이므로 CSV의 비용 셀은 설계상 비어 있으며, PaddleOCR은 동일한 RTX 4090에서 시간당 $0.76, 모델 초기화 비용을 포함하여 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의 ground-truth 텍스트 내 주석 구조 팽창 — 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 테스트, 훈련 분할은 평가하지 않았습니다. 두 엔진 모두 동일한 이미지, 동일한 ground truth, 동일한 측정 프로토콜을 보았습니다. 두 실행 모두 두 데이터셋에서 error_rate 0.0으로 완료되었습니다. CPU/GPU 비대칭은 이 비교에 내재되어 있습니다: Tesseract는 설계상 GPU 가속 엔진과 대비하여 CPU(compute_type=cpu)에서 실행되었습니다 — GPU 시간이 청구되지 않았으므로 비용 셀이 비어 있으며, 지연 시간/처리량은 동일한 머신에서 동일한 프로토콜로 측정되었습니다. 기본 실행에는 총 8개의 엔진이 포함되어 있으며, 이 페이지는 명명된 두 엔진만 비교하고 다른 엔진은 순위 맥락으로만 인용합니다. 전체 8개 엔진 결과는 Traditional OCR vs Document Parsing VLMs에서 별도로 게시됩니다.
런타임 환경
- 하드웨어: 두 엔진 모두 NVIDIA RTX 4090(24GB)이 장착된 동일한 머신에서 실행되었습니다. GPU 비용은 RunPod 온디맨드 요금인 $0.76/시간으로 계산되었으며, 가격은 각 실행의 수정된 매니페스트에 타임스탬프로 기록되어 있습니다. Tesseract는 CPU에서 실행되어 GPU 비용이 발생하지 않았으며, 비용 셀은 의도적으로 비어 있습니다.
- 엔진: 기본 설정 그대로, 파인튜닝 없이 사용했습니다. 버전 고정: Tesseract 5.3.4 및 PaddleOCR 3.7.0 — 공개 저장소 모델 테이블(README.md) 및 실행 매니페스트에 따릅니다.
- LLM 후처리기: 결정적 출력을 위해 temperature 0으로 API를 통해 deepseek-v4-flash 사용. 두 엔진 모두에서 모든 LLM 필드 행에 사용된 단일 모델입니다.
- 비용 기준: 실제 실행 시간 × $0.76/시간 — 일괄 처리는 페이지당 비용을 낮춥니다. 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/시간 요율로 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 청구 vs 없음”으로 이해해야 하며, 하드웨어와 무관한 절대적 사실로 받아들이지 마십시오.
- 문서 범위 — 영수증 전용: SROIE + CORD. 이 페이지는 복잡한 레이아웃, 표, 필기, 장문 문서에서의 Tesseract 동작이나 PaddleOCR의 PP-Structure 레이아웃/표 기능을 측정하지 않습니다. 이 페이지를 근거로 두 엔진 중 하나가 “모든 면에서 우월하다”고 결론 내리지 마십시오.
- 표본 크기: 영어 361건 + 인도네시아어 영수증 100건. 필드 F1과 CER은 말뭉치에 민감하며, 수백 분의 1 수준의 미세한 차이는 노이즈로 간주해야지 엔지니어링 사실로 보아서는 안 됩니다. 다만 여기에 기록된 격차는 그 범위를 훨씬 넘어섭니다.
- 단일 GPU 티어 및 단일 가격: 모든 GPU 수치는 실행 매니페스트에 타임스탬프가 기록된 2026년 8월 기준 시간당 $0.76의 RTX 4090 하나에서 비롯되었습니다. 다른 GPU, 멀티 GPU 서빙, 배치 스케줄링 또는 가격 변경은 지연 시간, 처리량, 비용을 변화시킵니다. 예산을 세우기 전에 현재 요금으로 비용을 다시 산출하십시오.
- 단일 LLM 후처리기: 모든 LLM 행은 온도 0의 deepseek-v4-flash를 사용합니다. 다른 LLM을 사용하면 절대 필드 F1이 달라지며, 1.32배 SROIE 및 0.39포인트 CORD 격차는 경계에서 변동될 수 있습니다. LLM 지연 시간은 API에서 발생하며 두 엔진 자체의 지연 시간에 포함되지 않습니다.
- 정규식 튜닝: 패턴 세트는 데이터셋별로 한 번 작성되었습니다. 형식별로 과도하게 튜닝된 패턴 라이브러리는 자체 레이아웃에서 더 높은 점수를 얻을 수 있지만, LLM이 제거하는 유지보수 비용이 발생합니다.
- CORD CER은 모델별 품질 판독값이 아닙니다: CORD 정답 데이터에는 주석 구조가 내장되어 있으며 두 엔진 모두 주로 인도네시아어로 훈련되지 않았습니다. CORD CER(0.91–0.95)은 언어 불일치와 정답 데이터 인플레이션을 반영합니다. CORD 행은 프레이밍과 함께 인용되며 어떤 SROIE 순위에도 병합되지 않습니다.
- 버전 고정: 결과는 Tesseract 5.3.4 및 PaddleOCR 3.7.0 기준입니다. 두 엔진 중 하나의 최신 릴리스는 이 페이지의 모든 수치를 변경할 수 있습니다. 특히 Tesseract의 결과는 5.3.4를 반영하며 2026-08-14 반복 실행에서 재검증되었습니다.
관련 참고 자료: PaddleOCR vs EasyOCR 영수증 벤치마크 · docTR vs Surya2 영수증 벤치마크 · OCR과 VLM의 8개 엔진 비교 · 필드 추출의 고정 규칙 vs 언어 모델 · 올바른 문자 수가 여전히 잘못된 필드를 의미할 수 있는 이유
관련 자료: AI와 기존 OCR 간의 정확도 차이 · 이미지에서 AI 추출이 OCR보다 나은 이유 · AI 문서 추출 가격 (2026)