영수증 인식 PaddleOCR vs EasyOCR
정확도 대비 비용 벤치마크 (2026)
최종 검토: 2026-08-18 · 실행 등급: 공식 · 자체 주관 정면 비교 벤치마크 · 2개 엔진 × 2개 영수증 데이터셋
이 페이지에서 다루지 않는 내용: 영수증 이외의 모든 문서 유형 — 표, 양식, 청구서, 계약서, 장문 문서는 제외됩니다. 클라우드/API OCR 서비스, 미세 조정 엔진, 그리고 벤치마크의 다른 6개 엔진(Tesseract, docTR, Docling, Surya2, Unlimited-OCR, PaddleOCR-VL)은 순위 맥락으로 인용된 경우를 제외하고 범위 밖입니다. 전체 8개 엔진 종합 비교는 기존 OCR과 VLM 파싱의 차이점에서 확인할 수 있습니다.
범위 명시: 이 페이지의 모든 수치는 영수증에만 적용됩니다 — SROIE 2019 영어 영수증 및 CORD v2 인도네시아어 영수증. 하드웨어 등급 1개, LLM 후처리기 1개(deepseek-v4-flash, temperature 0), 고정 모델 버전(PaddleOCR 3.7.0, EasyOCR 1.7.2). 이러한 결과를 다른 문서 유형, GPU 또는 LLM에 확장 적용하지 마십시오 — 벤치마크는 영수증 OCR 및 영수증 필드 추출만 측정합니다. 모든 수치는 벤치마크의 results/summary_metrics.csv 및 results/field_method_comparison.csv에서 비롯되며, 공개 GitHub 저장소에 미러링되어 행별로 인용됩니다.
깨끗한 영어 영수증에서 현대적 2단계 아키텍처의 장점은 명확합니다 — 앞선 docTR 대 Surya2의 대결처럼 팽팽하지 않습니다. PaddleOCR은 SROIE 2019의 모든 정확도 지표에서 EasyOCR을 능가합니다: CER 0.2045 대 0.2833, WER 0.3256 대 0.6158, 정규식 필드 F1 0.3254 대 0.1477, LLM 후처리 필드 F1 0.5810 대 0.3717. 그러나 이러한 장단점은 여기서 끝나지 않습니다: EasyOCR은 1,000페이지당 약 2배 저렴하고, 벽시계 처리량이 더 빠르며, p95 꼬리 지연 시간이 더 짧습니다 — 하지만 동일한 LLM 후처리기에 입력된 해당 텍스트는 벤치마크의 8개 엔진 중 가장 낮은 필드 추출 성능을 보여주며, 이 페이지는 원시 데이터 행으로 이 역설을 문서화합니다.
한 쌍의 숫자로 요약되는 장단점: PaddleOCR은 28% 적은 문자 오류로 영수증을 읽고 정규식을 통해 2.2배 많은 필드를 추출하며 1,000페이지당 $0.221의 비용이 듭니다; EasyOCR은 더 많은 오류로 읽지만 1,000페이지당 $0.110의 비용이 듭니다 — 동일한 RTX 4090, 동일한 테스트 분할, 동일한 영수증에서 GPU 비용이 약 절반입니다. 어느 엔진도 “승리”하지 않습니다; 서로 다른 축에서 승리하며, 이 페이지의 목적은 동일한 통제된 실행에서 두 축을 모두 보여주는 것입니다 — 직관에 반하는 LLM 다운스트림 결과를 포함해서 말입니다.
두 엔진은 딥러닝 OCR의 두 세대를 대표합니다. PaddleOCR은 현대적인 2단계 파이프라인입니다. 검출 단계에서 텍스트 영역을 찾고, 인식 단계에서 이를 전사합니다. 대규모 인쇄 텍스트에서 강력한 정확도를 제공하도록 설계되었습니다. EasyOCR은 고전적인 단일 패스 CNN + RNN + CTC 인식기로, ResNet 특징 추출기가 CTC(Connectionist Temporal Classification)로 디코딩되는 시퀀스 모델에 입력을 공급합니다. 매우 넓은 언어·문자 지원과 유명할 정도로 간단한 설치로 잘 알려져 있습니다. CER은 삽입·삭제·치환을 정답 문자 수로 나눈 값으로, CER 0.204는 100자당 약 20.4자가 잘못 읽혔음을 의미합니다. WER은 동일한 편집 거리 로직을 단어 단위로 적용한 것입니다. 두 지표 모두 낮을수록 좋습니다.
SROIE 텍스트 정확도: PaddleOCR의 확실한 우위
SROIE 2019 테스트 분할의 영문 영수증 361건에서 현대 아키텍처가 두 텍스트 지표 모두에서 승리했습니다. CER 0.2045 대 0.2833, WER 0.3256 대 0.6158로 EasyOCR의 WER은 거의 두 배입니다. WER 격차가 CER 격차보다 큰 것은 이 코퍼스에서 EasyOCR이 문자 단위 오류를 단어 전체 실패로 누적시키는 경향을 보여줍니다. 두 엔진 모두 오류 없이 실행됩니다.
출처: summary_metrics.csv — cer 및 wer 열, sroie_2019 행. PaddleOCR cer 0.20449 / wer 0.32563; EasyOCR cer 0.28327 / wer 0.61578. 낮을수록 좋음. 엔진당 361개 샘플; 두 엔진 모두 error_rate 0.0.
| 지표 (SROIE 2019, n=361) | PaddleOCR | EasyOCR | 출처 |
|---|---|---|---|
| 문자 오류율 (CER) | 0.2045 | 0.2833 | summary_metrics.csv · cer, paddleocr/sroie_2019 및 easyocr/sroie_2019 행 |
| 단어 오류율 (WER) | 0.3256 | 0.6158 | summary_metrics.csv · wer, 동일 행 |
| 오류율 | 0.0 | 0.0 | summary_metrics.csv · error_rate, 동일 행 |
표: summary_metrics.csv — cer / wer / error_rate 열, sroie_2019 행. 정확한 값: PaddleOCR cer 0.20449 / wer 0.32563; EasyOCR cer 0.28327 / wer 0.61578. CER/WER이 낮을수록 좋습니다. 두 엔진 모두 벤치마크의 전반적 정확도 챔피언은 아닙니다 — 그 타이틀은 동일한 8개 엔진 실행에서 Surya2(CER 0.1915)와 docTR(CER 0.1971)이 보유하고 있습니다.
필드 추출: 정규식 및 LLM을 통한 KIE
텍스트 정확도는 엔진을 순위 매기지만, 필드 추출은 다운스트림 시스템이 실제로 소비하는 것입니다. 벤치마크의 SROIE 필드 메트릭은 각 엔진의 OCR 텍스트에 두 가지 후처리기를 사용하여 네 가지 평면 영수증 필드를 대상으로 합니다: 고정 정규식 패턴 및 LLM 후처리기와 구조화된 프롬프트. 정규식을 통해 PaddleOCR은 0.3254 필드 F1로 EasyOCR의 0.1477보다 2.2× 우위를 점합니다; LLM을 통해서도 그 격차는 0.5810 대 0.3717(1.56×)로 유지됩니다.
필드 값 F1은 추출된 필드 값의 정밀도와 재현율에 대한 조화 평균으로, 정답과 비교합니다 — 1.0은 모든 영수증 필드가 완벽하게 복구되었음을 의미하고, 0은 아무것도 복구되지 않았음을 의미합니다. SROIE 정규식 필드 열은 벤치마크의 postprocessed_sroie_receipt_regex_* 메트릭입니다: 각 엔진의 OCR 텍스트에 적용된 고정 패턴. 순위 맥락에 유의하십시오: PaddleOCR의 0.3254는 8개 엔진 벤치마크에서 세 번째로 좋은 정규식 필드 결과이며 네 개의 순수 전통 엔진 중 최고입니다; EasyOCR의 0.1477은 8개 중 7위입니다.
출처: 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) | PaddleOCR | EasyOCR | 출처 |
|---|---|---|---|
| 필드 값 F1 | 0.3254 | 0.1477 | field_method_comparison.csv · regex_field_value_f1, paddleocr/sroie_2019 및 easyocr/sroie_2019 행 |
| 필드 값 F1 (LLM) | 0.5810 | 0.3717 | field_method_comparison.csv · llm_field_value_f1, 동일 행 |
| 필드 값 정확도 (LLM) | 0.5810 | 0.3712 | field_method_comparison.csv · llm_field_value_accuracy, 동일 행 |
| 모든 필드가 정확히 일치한 문서 (LLM) | 0.0748 | 0.0028 | field_method_comparison.csv · llm_document_fields_exact, 동일 행 |
| LLM 후처리 중앙값 지연 시간 (ms) | 1,817.5 | 2,004.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보다 훨씬 엄격한 기준입니다. EasyOCR은 영수증의 0.28%에서 네 필드를 모두 정확히 맞췄습니다.
EasyOCR LLM 역설: 중간 수준 텍스트, 최악의 다운스트림 추출
이 페이지에서 가장 독특한 데이터 포인트이며, 실제로 직관에 반합니다: EasyOCR의 OCR 텍스트는 문자 정확도에서 중간 수준입니다 — 그러나 해당 텍스트가 다른 모든 엔진에 사용된 동일한 LLM 후처리기에 입력되었을 때, SROIE LLM 필드 F1 0.3717은 벤치마크에서 8개 엔진 중 가장 낮습니다 — 더 나쁜 CER(0.3347)을 가진 CPU 엔진인 Tesseract(0.4389)보다도 낮습니다. 변경된 것은 OCR 텍스트뿐이었고, LLM, 프롬프트, 영수증은 동일했습니다.
관찰된 패턴, 메커니즘은 검증되지 않음. 그럴듯한 가설 — 그 이상도 이하도 아닌 — 은 출력 형식 관례입니다: EasyOCR이 텍스트 줄을 배치, 결합 또는 분리하는 방식이 원시 문자 정확도와 무관한 이유로 다운스트림 LLM 필드 추출을 저하시키는 것으로 보입니다. 벤치마크는 이 메커니즘을 분리하지 않았습니다. 결과는 재현 가능하고 안정적인 것으로 여기에 문서화되었습니다, 그러나 인과적 주장은 제기되지 않습니다. 실용적 함의는 마케팅 표면과 반대입니다: 이 코퍼스에서 "충분히 좋은" 텍스트를 위해 EasyOCR을 선택하는 것은 테스트된 모든 엔진 중 최악의 LLM 다운스트림 필드 복구를 예산에 포함하는 것을 의미합니다.
출처: field_method_comparison.csv — llm_field_value_f1, 8개 sroie_2019 행 전체, 각 361개 샘플(llm_ok_count). LLM 후처리기는 모든 엔진에 대해 동일: 온도 0의 deepseek-v4-flash. CER 컨텍스트는 summary_metrics.csv, cer 열, sroie_2019 행에서 가져옴.
| 8개 엔진 전체, SROIE 2019 | SROIE CER | SROIE LLM 필드 F1 | 출처 |
|---|---|---|---|
| doctr | 0.1971 | 0.6171 | field_method_comparison.csv · doctr/sroie_2019 행, llm_field_value_f1 (cer: summary_metrics.csv) |
| surya2 | 0.1915 | 0.6139 | field_method_comparison.csv · surya2/sroie_2019 행, llm_field_value_f1 (cer: summary_metrics.csv) |
| unlimited_ocr | 0.6552 | 0.6054 | field_method_comparison.csv · unlimited_ocr/sroie_2019 행, llm_field_value_f1 (cer: summary_metrics.csv) |
| paddleocr_vl_vllm | 0.3370 | 0.5921 | field_method_comparison.csv · paddleocr_vl_vllm/sroie_2019 행, llm_field_value_f1 (cer: summary_metrics.csv) |
| PaddleOCR 3.7.0 | 0.2045 | 0.5810 | field_method_comparison.csv · paddleocr/sroie_2019 행, llm_field_value_f1 (cer: summary_metrics.csv) |
| docling | 0.5909 | 0.5685 | field_method_comparison.csv · docling/sroie_2019 행, llm_field_value_f1 (cer: summary_metrics.csv) |
| tesseract (CPU) | 0.3347 | 0.4389 | field_method_comparison.csv · tesseract/sroie_2019 행, llm_field_value_f1 (cer: summary_metrics.csv) |
| EasyOCR 1.7.2 | 0.2833 | 0.3717 | field_method_comparison.csv · easyocr/sroie_2019 행, llm_field_value_f1 (cer: summary_metrics.csv) |
표: field_method_comparison.csv — llm_field_value_f1, 모든 sroie_2019 행; CER 열은 summary_metrics.csv의 cer, sroie_2019 행에서 가져옴. EasyOCR의 CER(0.2833)은 8개 중 4위로 중간 수준의 텍스트 인식 성능을 보이지만, LLM 다운스트림 필드 복원 성능은 최하위입니다. 이러한 역설은 관찰 가능하고 재현 가능한 현상으로 기록되었으며, 그 메커니즘은 이 벤치마크에서 규명되지 않았습니다.
운영 범위: EasyOCR이 진정으로 경쟁력 있는 영역
정확도만이 유일한 기준은 아니며, 운영 측면에서 EasyOCR은 실측된 확실한 반격 카드를 보유하고 있다. 동일한 RTX 4090, 동일한 $0.76/hr 조건에서 EasyOCR은 SROIE를 1,000페이지당 $0.110에 처리하여 PaddleOCR의 $0.221과 비교해 2.0배의 격차를 보이며, 분당 124.5페이지를 유지하여 79.7페이지 대비 1.56배의 성능을 낸다. 또한 최악의 경우 꼬리 지연 시간도 안정적이다: p95 960.4 ms로 PaddleOCR의 3,331.4 ms 첫 페이지 스파이크 대비 3.5배 더 타이트하다. 배포 측면에서도 더 단순하다 — PaddlePaddle의 무거운 프레임워크 스택 대비, 광범위한 언어를 지원하는 단일 PyTorch 런타임만으로 충분하다.
한 가지 명백한 모순에 대해 정직한 설명이 필요하다: PaddleOCR은 더 낮은 중앙값 페이지당 지연 시간을 보이면서도 분당 페이지 수는 더 낮다(79.7 vs 124.5). 두 수치는 서로 다른 클록을 측정한다. 지연 시간 p50은 모델이 이미 로드된 상태(웜)에서 측정한 정상 상태의 페이지당 추론 시간이고, 분당 페이지 수는 모델 초기화와 배치 효과를 포함한 전체 실행의 벽시계 처리량이다. EasyOCR의 더 작고 빠르게 로드되는 런타임이 벽시계 볼륨 경쟁에서 승리하고, PaddleOCR의 페이지당 추론은 웜 상태에서 개별적으로 더 빠르다. 두 수치 모두 실제이며 서로 다른 것을 설명한다. 모델 로드 오버헤드가 지배적인 워크로드는 EasyOCR의 벽시계 이점을 경험하고, 웜 장기 실행 파이프라인은 PaddleOCR의 페이지당 이점을 경험할 것이다.
비용은 벽시계 런타임 × RunPod RTX 4090 요금으로 계산되며, 모델 초기화를 포함한다 — GPU 시간에 대해 실제로 지불하게 될 가격이다. 처리량은 동일한 초기화를 포함한 벽시계 기준 분당 페이지 수다. 지연 시간 p50/p95는 웜 상태에서 측정된 정상 상태 페이지당 추론 시간이다. PaddleOCR의 p95 3,331 ms는 첫 페이지/프리필 스파이크이지 정상 상태 동작이 아니다.
출처: summary_metrics.csv — latency_p50_ms / latency_p95_ms 열, sroie_2019 행. PaddleOCR p50 296.99 / p95 3331.35; EasyOCR p50 413.64 / p95 960.37. 정상 상태 지연 시간.
출처: summary_metrics.csv — cost_per_1000_pages 열, sroie_2019 행. PaddleOCR 0.2214, EasyOCR 0.1098. 비용 = 벽시계 런타임 × $0.76/hr, 가격은 실행 매니페스트에 타임스탬프 기록. 두 엔진 모두 벤치마크에서 가장 저렴하지 않다 — docTR이 1,000페이지당 $0.048로 최저를 기록.
| 운영 범위 (SROIE 2019, n=361) | PaddleOCR | EasyOCR | 출처 |
|---|---|---|---|
| 지연 시간 p50 (ms) | 297.0 | 413.6 | summary_metrics.csv · latency_p50_ms, paddleocr/sroie_2019 및 easyocr/sroie_2019 행 |
| 지연 시간 p95 (ms) | 3,331.4 | 960.4 | summary_metrics.csv · latency_p95_ms, 동일 행 |
| 분당 페이지 수 | 79.7 | 124.5 | summary_metrics.csv · pages_per_minute, 동일 행 |
| 1,000페이지당 비용 | $0.221 | $0.110 | summary_metrics.csv · cost_per_1000_pages, 동일 행 |
표: summary_metrics.csv — latency_p50_ms / latency_p95_ms / pages_per_minute / cost_per_1000_pages, sroie_2019 행. 두 엔진 모두 GPU 사용; 비용에는 모델 초기화가 포함됨. 정확한 값: PaddleOCR p50 296.99 / p95 3331.35 / 79.71 pg/min / $0.2214; EasyOCR p50 413.64 / p95 960.37 / 124.53 pg/min / $0.1098. p50 대 분당 페이지 수의 역전 현상은 위 본문에서 설명됨: 정상 상태의 페이지당 추론 대 초기화 및 배치 효과를 포함한 실시간 처리량.
CORD(인도네시아 영수증): 둘 다 붕괴하지만, PaddleOCR의 LLM 필드 복구는 생존한다
두 엔진 모두 주로 인도네시아 영수증으로 학습되지 않았으므로, CORD v2는 교차 언어 스트레스 테스트 역할을 한다 — 그리고 둘 다 원시 CER에서 붕괴한다: 0.9083(PaddleOCR) 및 0.9185(EasyOCR), 언어 불일치로 인해 두 엔진 모두 텍스트를 사실상 읽지 못하는 상황이다. 벤치마크 프로토콜에 따라 CORD 수치는 SROIE 비교에서 격리되어 유지된다 — 어떤 순위에도 병합되지 않는다 — CORD의 정답 텍스트에 주석 구조가 포함되어 있어, 실제 언어 불일치 위에 모든 엔진의 원시 CER을 부풀리기 때문이다.
필드 지표는 거의 동일한 CER과는 다른 이야기를 보여준다. LLM 후처리기를 통해 PaddleOCR의 필드 F1은 CORD에서 0.5527을 유지하는 반면 EasyOCR은 0.3378이다 — 동일한 SROIE 패턴이 확장된 것이다: PaddleOCR의 LLM 다운스트림 복구는 EasyOCR이 견디지 못하는 언어 충격을 견딘다, 두 텍스트 인식기가 모두 문자 수준에서 실패하더라도. EasyOCR의 CORD LLM 필드 F1은 8개 엔진 중 두 번째로 낮다 — 다시 더 나쁜 CER을 가진 엔진들보다 뒤처지며, 이 역설은 두 데이터셋 모두에서 지속된다. CORD는 언어 견고성 맥락을 위해 여기에 인용되었으며, 의도적으로 SROIE 수치와 단일 리더보드에 통합되지 않는다.
| CORD v2, 인도네시아 영수증(n=100) | PaddleOCR | EasyOCR | 출처 |
|---|---|---|---|
| 문자 오류율(CER) | 0.9083 | 0.9185 | summary_metrics.csv · cer, paddleocr/cord_v2 및 easyocr/cord_v2 행 |
| 필드 값 F1 | 0.0154 | 0.0067 | field_method_comparison.csv · regex_field_value_f1, 동일 행 |
| 필드 값 F1(LLM) | 0.5527 | 0.3378 | field_method_comparison.csv · llm_field_value_f1, 동일 행 |
| 1,000페이지당 비용 | $0.342 | $0.086 | summary_metrics.csv · cost_per_1000_pages, 동일 행 |
| 분당 페이지 수 | 141.0 | 211.8 | 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은 실제 언어 불일치와 주석 구조 팽창이 결합된 결과입니다. 정규식 패턴은 영어 형식에 맞춰 작성되었으므로 두 엔진 모두에서 정규식 필드 F1이 ~0–2%로 붕괴됩니다. PaddleOCR의 CORD LLM 필드 F1 0.5527은 SROIE에서의 우위를 반복하며, EasyOCR이 견디지 못하는 언어 충격에서 LLM 다운스트림 복구가 살아남습니다.
언제 누가 승리하는가: 요약 그리드
“더 나은” 것은 작업 부하에 따라 달라지며, 이 대결은 축을 명확히 나눕니다: 영어 영수증의 모든 정확도 축에서 PaddleOCR이 우세하고, 비용, 벽시계 처리량, 꼬리 지연 시간, 배포 단순성에서는 EasyOCR이 우세하며, 원시 텍스트 정확도 챔피언십은 어느 쪽에도 속하지 않습니다(Surya2/docTR) — EasyOCR의 LLM 다운스트림 결과는 가장 큰 약점이지 장점이 아닙니다.
자주 묻는 질문
영수증 인식에서 PaddleOCR이 EasyOCR보다 더 정확한가요?
네, 이 벤치마크에서 측정된 모든 정확도 지표에서 그렇습니다. SROIE 2019 기준: CER 0.2045 대 0.2833, WER 0.3256 대 0.6158, 정규식 필드 F1 0.3254 대 0.1477, LLM 후처리 필드 F1 0.5810 대 0.3717. 두 엔진 모두 이 벤치마크의 전체 텍스트 챔피언은 아닙니다 — Surya2 (CER 0.1915)와 docTR (0.1971)이 그 타이틀을 보유하고 있습니다.
EasyOCR이 PaddleOCR보다 저렴한가요?
네 — 영어 영수증 1,000페이지당 약 2배 저렴합니다: SROIE 2019에서 $0.110 대 $0.221, CORD에서는 $0.086 대 $0.342로 차이가 더 벌어집니다. 동일한 RTX 4090에서 시간당 $0.76, 모델 초기화 비용 포함 기준입니다. 이 벤치마크에서 전체적으로 가장 저렴한 엔진은 1,000페이지당 $0.048인 docTR입니다.
PaddleOCR과 EasyOCR 중 어느 것이 더 빠른가요?
어떤 시간 기준으로 보느냐에 따라 다릅니다. PaddleOCR은 안정 상태 중앙값 지연 시간이 더 낮지만, EasyOCR은 벽시계 처리량이 더 높습니다. 벽시계 pages/min에는 모델 초기화와 배치 효과가 포함되며 EasyOCR의 더 가벼운 런타임이 더 빨리 로드되기 때문입니다. 워밍업된 장기 실행 파이프라인의 경우 PaddleOCR이 페이지당 더 빠르고, 작거나 빈번한 콜드 배치의 경우 EasyOCR이 벽시계 경쟁에서 승리합니다.
문자 정확도가 괜찮은데 EasyOCR의 LLM 필드 추출이 가장 나쁜 이유는 무엇인가요?
이것은 이 벤치마크에서 문서화된 역설로, 현재 입증된 메커니즘은 없습니다. EasyOCR의 SROIE CER (0.2833)은 8개 엔진 중 4위이지만, LLM 후처리 필드 F1 (0.3717)은 최하위입니다 — 더 나쁜 CER을 가진 Tesseract (0.4389)보다도 낮습니다. 주요 가설은 EasyOCR이 텍스트 줄을 배치하거나 결합하는 방식의 출력 형식 관례가 다운스트림 LLM 추출을 저하시킨다는 것입니다. 이는 관찰되고 재현 가능한 패턴으로 표시되며 메커니즘은 검증되지 않았습니다.
두 엔진 모두 CORD 영수증에서 점수가 낮은 이유는 무엇인가요?
프로토콜이 SROIE 순위와 분리해 두는 두 가지 복합 원인이 있습니다: 실제 언어 불일치와 CORD의 정답 텍스트 내 주석 구조 팽창입니다 — CER은 0.9083(PaddleOCR) 및 0.9185(EasyOCR)에 도달합니다. 여전히 두 엔진을 구분하는 것은 LLM 다운스트림 복구입니다: PaddleOCR 0.5527 대 EasyOCR 0.3378 필드 F1 — 두 인식기가 모두 문자 수준에서 실패해도 SROIE 패턴이 지속됩니다.
영수증 파이프라인은 PaddleOCR과 EasyOCR 중 어떤 엔진을 선택해야 하나요?
파이프라인이 필드를 소비한다면 PaddleOCR이 영수증에서 확실한 기본값입니다: 정규식 기준 필드 F1 2.2배, LLM 기준 1.56배, 그리고 CORD 언어 충격에서도 살아남는 LLM 다운스트림 복구(field_method_comparison.csv). 저렴한 대량 처리, 타이트한 최악 사례 꼬리, 가벼운 스택, 또는 시작을 위한 광범위한 언어 지원이 필요하다면 EasyOCR이 운영 축에서 진정으로 경쟁력이 있습니다 — 그러나 약한 LLM 다운스트림을 감수할 예산을 책정하세요. 이 결과는 2026년 8월 단일 GPU 계층에서 영어 및 인도네시아어 영수증에 적용됩니다. 프로덕션 결정 전에 대상 코퍼스에서 다시 실행하세요.
이 페이지의 수치는 어디서 왔나요?
모든 수치는 자체 벤치마크의 공개 CSV 행입니다 — results/summary_metrics.csv 및 results/field_method_comparison.csv — ImageToTableai/benchmark-ocr에 호스팅되어 있으며, 실행마다 환경 지문을 위한 편집된 manifest.json 하나가 포함됩니다. 데이터셋 정의는 아래에 인용된 SROIE 2019 및 CORD 논문에서 가져왔습니다.
방법론 및 출처
프로토콜
이 페이지는 독립적이고 재현 가능한 벤치마크 실행의 1:1 비교 일부를 보고합니다. 제3자 주장에 대한 조사도, 공급업체 비교 페이지도 아닙니다. 고정된 테스트 분할만 사용했습니다: SROIE 2019 테스트와 CORD v2 테스트; 학습 분할은 평가하지 않았습니다. 두 엔진 모두 동일한 이미지, 동일한 ground truth, 동일한 측정 프로토콜을 사용했습니다. 두 실행 모두 두 데이터셋에서 error_rate 0.0으로 완료되었습니다. 기본 실행에는 총 8개 엔진이 포함되어 있습니다. 이 페이지는 지명된 두 엔진만 비교하며, 다른 엔진은 순위 맥락으로만 인용됩니다. 8개 엔진 전체 결과는 Traditional OCR vs Document Parsing VLMs에서 별도로 게시됩니다.
런타임 환경
- 하드웨어: 두 엔진 모두 동일한 NVIDIA RTX 4090(24GB)에서 실행되었습니다. GPU 비용은 RunPod 온디맨드 요금 $0.76/hr로 계산되었으며, 가격은 각 실행의 편집된 매니페스트에 타임스탬프로 기록되었습니다.
- 엔진: 기본 설정 그대로, 파인튜닝 없음. 버전 고정: PaddleOCR 3.7.0 및 EasyOCR 1.7.2 — 공개 저장소 모델 테이블(README.md) 및 실행 매니페스트 기준. EasyOCR의 SROIE 행은 2026-08-17 torch 2.8 재실행에서 재검증되었습니다. 게시된 CSV에는 수정된 값이 반영되어 있습니다.
- LLM 후처리기: 결정적 출력을 위해 temperature 0으로 API를 통한 deepseek-v4-flash 사용. 두 엔진의 모든 LLM 필드 행에 사용된 단일 모델입니다.
- 비용 기준: 벽시계 런타임 × $0.76/hr, 모델 초기화 포함 — 배치 처리는 페이지당 비용을 낮춥니다.
- 필드 후처리: 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 시간으로, 모델 초기화를 포함합니다.
출처 목록
- 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, 지연 시간, 비용 및 처리량 수치는 여기의 paddleocr 및 easyocr 행에서 비롯됩니다.
- field_method_comparison.csv (GitHub raw). 16개 행; 열: model, dataset, llm_model (= deepseek-v4-flash), regex/llm 필드 값 정확도 및 F1, 문서 필드 정확 일치, llm_median_latency_ms, 토큰 수. 모든 regex/LLM 필드 F1 수치는 여기의 paddleocr 및 easyocr 행에서 비롯됩니다.
- ImageToTableai/benchmark-ocr 저장소. 결과 CSV, 편집된 실행 매니페스트, 고정 프로토콜 및 재현을 위한 데이터셋 샘플 목록을 호스팅하는 공개 저장소입니다.
- results/manifests/ (GitHub). 게시된 각 실행에 대한 편집된 manifest.json 1개로, 모델 버전, 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).
제한 사항
- 문서 범위 — 영수증만 해당: SROIE + CORD. 여기에는 PaddleOCR의 PP-Structure 레이아웃/테이블/문서 기능, 영수증이 아닌 텍스트에 대한 EasyOCR의 80개 이상 언어 지원 범위, 또는 기타 문서 유형에 대한 측정은 포함되지 않습니다. 이 페이지를 근거로 두 엔진 중 하나가 "모든 면에서 우월하다"고 결론 내리지 마십시오.
- 표본 크기: 영어 361건 + 인도네시아어 영수증 100건. 필드 F1 및 CER은 말뭉치에 민감하며, 수백 분의 1 수준의 한 자릿수 차이는 노이즈로 간주해야 하며 엔지니어링 사실로 보지 않아야 합니다. 다만 여기에 기록된 격차는 그 범위를 훨씬 넘어섭니다.
- 단일 GPU 티어 및 단일 가격: 모든 수치는 실행 매니페스트에 가격 타임스탬프가 2026년 8월로 기록된 단일 RTX 4090, $0.76/시간 기준입니다. 다른 GPU, 멀티 GPU 서빙, 배치 스케줄링 또는 가격 변동은 지연 시간, 처리량 및 비용을 변화시킵니다. 예산을 세우기 전에 현재 요금으로 비용을 다시 산출하십시오.
- 단일 LLM 후처리기: 모든 LLM 행은 temperature 0의 deepseek-v4-flash를 사용합니다. 다른 LLM을 사용하면 절대 필드 F1이 달라집니다. EasyOCR 역설의 크기는 LLM에 따라 달라질 수 있지만, 관찰된 패턴은 두 데이터셋 모두에서 이 단일 후처리기에 대해 유지되었습니다. LLM 지연 시간은 API에서 발생하며 두 엔진 자체의 지연 시간에는 포함되지 않습니다.
- EasyOCR 역설 메커니즘 미검증: 벤치마크는 EasyOCR의 중간 티어 CER 텍스트가 LLM 다운스트림 필드 복구 성능을 최악(0.3717 SROIE / 0.3378 CORD)으로 만든다는 것을 문서화합니다. 이는 출력 텍스트 레이아웃 관례라는 가설 하의 관찰 가능하고 재현 가능한 결과이며, 인과 메커니즘은 명시적으로 분리되지 않았습니다. 이를 라이브러리의 입증된 속성이 아니라 계획을 세울 측정 결과로 취급하십시오.
- Regex 튜닝: 패턴 세트는 데이터셋당 한 번 작성되었습니다. 형식별로 집중 튜닝된 패턴 라이브러리는 자체 레이아웃에서 더 높은 점수를 얻을 수 있습니다. 다만 LLM이 제거하는 유지보수 비용이 발생합니다.
- CORD CER은 모델별 품질 판독값이 아님: CORD 정답 데이터에는 주석 구조가 포함되어 있으며 두 엔진 모두 주로 인도네시아어로 학습되지 않았습니다. CORD CER(~0.91)은 언어 불일치 + 정답 데이터 인플레이션을 반영합니다. CORD 행은 프레이밍과 함께 인용되며 어떤 SROIE 순위에도 병합되지 않습니다.
- 버전 고정: 결과는 PaddleOCR 3.7.0 및 EasyOCR 1.7.2 기준입니다. 두 엔진 중 하나의 최신 릴리스는 이 페이지의 모든 수치를 변경할 수 있습니다.
관련 참고 자료: docTR vs Surya2 영수증 벤치마크 · OCR vs VLM 맞대결 · LLM 추출에 대한 regex 규칙 · 문자 정확도 vs 필드 정확도 · 영수증 OCR 정확도
관련 자료: AI OCR과 기존 OCR 비교 · AI 이미지 추출과 기존 OCR 비교 · AI 문서 추출 가격 (2026)