영수증에서 EasyOCR vs docTR 비교
속도 챔피언 vs 필드 추출기 (2026)
최종 검토: 2026-08-18 · 실행 티어: 공식 · 자체 주도 정면 비교 벤치마크 · 2개 엔진 × 2개 영수증 데이터셋
이 페이지에서 다루지 않는 내용: 영수증 이외의 모든 문서 유형. 클라우드/API OCR 서비스, 파인튜닝된 엔진, 그리고 벤치마크의 다른 6개 엔진(Tesseract, PaddleOCR, Docling, Surya2, Unlimited-OCR, PaddleOCR-VL)은 순위 맥락으로 인용된 경우를 제외하고 범위에서 제외됩니다. 8개 엔진 전체 비교는 VLM 파싱과 비교한 픽셀 수준 OCR에서 확인할 수 있습니다.
범위 명시: 이 페이지의 모든 수치는 영수증에만 적용됩니다 — SROIE 2019 영어 영수증 및 CORD v2 인도네시아어 영수증. 하드웨어 티어 1개, LLM 후처리기 1개(deepseek-v4-flash, temperature 0), 고정 모델 버전(EasyOCR 1.7.2, docTR v1.0.1). 이 결과를 다른 문서 유형, GPU 또는 LLM에 확장 적용하지 마십시오 — 벤치마크는 영수증 OCR 및 영수증 필드 추출만 측정합니다. 모든 수치는 벤치마크의 results/summary_metrics.csv 및 results/field_method_comparison.csv에서 비롯되며, 공개 GitHub 저장소에 미러링되어 행 단위로 인용됩니다.
깨끗한 영어 영수증에서 최신 아키텍처가 원본 텍스트 품질에서 압도적으로 승리합니다: docTR의 SROIE CER 0.1971 vs EasyOCR의 0.2833, WER 0.3199 vs 0.6158 (48% 낮음). 그러나 두 엔진의 텍스트를 동일한 고정 정규식 패턴에 통과시키면 순위가 뒤집힙니다: EasyOCR이 1.93× 비율로 필드를 추출합니다 — 벤치마크의 "텍스트 정확도 ≠ 필드 정확도" 역전 현상이 이제 두 전통 엔진 사이에서 발생합니다. LLM 후처리기를 추가하면 역전이 다시 결정적으로 뒤집힙니다: docTR 0.6171 vs EasyOCR 0.3717 (8개 중 최저) — 1.66× 격차이자 벤치마크에서 가장 큰 LLM 필드 F1 차이 중 하나입니다. 운영 범위는 전적으로 docTR입니다: 3.8× 더 빠른 p50 (108.7 vs 413.6 ms), 3.6× 더 높은 처리량, 2.3× 더 저렴 ($0.048 vs $0.110 per 1,000 pages) — 벤치마크에서 가장 빠르고 가장 저렴한 엔진이 두 축 모두에서 동시에 달성합니다.
한 쌍의 숫자로 요약되는 트레이드오프: docTR은 108.7 ms p50으로 영수증 페이지를 읽고 $0.048 per 1,000 pages 비용으로 LLM 후처리기를 통해 0.6171 F1로 필드를 추출합니다; EasyOCR은 413.6 ms p50으로 읽고 $0.110 per 1,000 pages 비용이 들며 LLM 다운스트림 필드 F1은 0.3717로 붕괴합니다 — 테스트된 8개 엔진 중 최저입니다. 동일한 영수증, 동일한 테스트 분할, 동일한 RTX 4090. 어느 엔진도 "승리"하지 않습니다; EasyOCR은 정규식 필드 우위와 배포 스토리를 유지하고, docTR은 여기서 측정된 모든 정확도, 속도, 비용 축에서 승리합니다.
두 엔진은 딥러닝 OCR의 두 세대를 대표하며, 둘 다 OCR과 VLM의 경계에서 전통적인 방식에 속합니다. EasyOCR은 고전적인 단일 패스 CNN + RNN + CTC 인식기로, ResNet 특징 추출기가 시퀀스 모델에 입력을 주고 CTC(Connectionist Temporal Classification)로 디코딩하며 어텐션 기반 정제를 사용합니다. 설계의 중심은 매우 넓은 언어·문자 지원과 유명할 정도로 간단한 설치입니다. docTR(v1.0.1)은 현대적인 2단계 신경망 파이프라인으로, 검출 단계가 텍스트 영역을 찾고 인식 단계가 이를 전사합니다. DETR 스타일 트랜스포머 검출과 트랜스포머 인식기를 기반으로 인쇄 문서 정확도에 최적화되어 있습니다. 문자 오류율(CER)은 삽입·삭제·치환을 정답 문자 수로 나눈 값으로, CER 0.197은 100자당 약 19.7자가 잘못 읽혔다는 뜻입니다. 단어 오류율(WER)은 동일한 편집 거리 로직을 단어 단위로 적용합니다. 둘 다 낮을수록 좋습니다. 두 엔진 모두 비전-언어 모델(VLM)이 아니며, 둘 다 구조를 이해하지 못한 원시 텍스트만 출력합니다.
SROIE 텍스트 정확도: docTR의 확실한 우위
SROIE 2019 테스트 분할의 영문 영수증 361건에서 현대 아키텍처가 두 텍스트 지표 모두에서 승리했습니다. CER 0.1971 대 0.2833, WER 0.3199 대 0.6158로 EasyOCR의 WER은 거의 두 배입니다. WER 격차(48%)가 CER 격차(30%)보다 훨씬 큰데, 이는 이 코퍼스에서 EasyOCR이 문자 수준의 실수를 단어 전체 실패로 누적시키고 있음을 보여줍니다. 두 엔진 모두 오류 없이 실행됩니다. 두 엔진 모두 이 벤치마크의 전체 CER 1위는 아닙니다. 그 자리는 Surya2(0.1915)가 차지했고 docTR은 2위, EasyOCR은 8개 중 4위입니다.
출처: summary_metrics.csv — cer·wer 열, sroie_2019 행. docTR cer 0.19707 / wer 0.31990; EasyOCR cer 0.28327 / wer 0.61578. 낮을수록 좋습니다. 엔진당 361개 샘플, 둘 다 error_rate 0.0.
| 지표 (SROIE 2019, n=361) | docTR | EasyOCR | 출처 |
|---|---|---|---|
| 문자 오류율(CER) | 0.1971 | 0.2833 | summary_metrics.csv · cer, doctr/sroie_2019 및 easyocr/sroie_2019 행 |
| 단어 오류율(WER) | 0.3199 | 0.6158 | summary_metrics.csv · wer, 동일 행 |
| 오류율 | 0.0 | 0.0 | summary_metrics.csv · error_rate, 동일 행 |
표: summary_metrics.csv — cer / wer / error_rate 열, sroie_2019 행. 정확한 값: docTR cer 0.19707 / wer 0.31990; EasyOCR cer 0.28327 / wer 0.61578. 상대적 격차: docTR의 CER 30% 낮음, WER 48% 낮음. CER/WER이 낮을수록 좋음. 동일 8개 엔진 실행 내 CER 순위 맥락: Surya2 0.1915, docTR 0.1971, PaddleOCR 0.2045, EasyOCR 0.2833.
정규식 필드 역전: 더 나쁜 텍스트, 더 많이 복구되는 필드
두 엔진의 원시 텍스트를 SROIE 영수증의 네 필드에 대해 동일한 고정 정규식 패턴으로 벤치마크합니다 — 전통적인 OCR + 규칙 기반 핵심 정보 추출(KIE) 방식 — 그러면 순위가 뒤집힙니다: EasyOCR은 0.1477 필드 F1로 필드를 추출하고 docTR은 0.0766으로, 문자 정확도가 더 나쁜 엔진이 1.93배 유리합니다. 이것은 벤치마크에서 반복되는 "텍스트 정확도 ≠ 필드 정확도" 역전 현상입니다 — docTR vs Surya2에서 전통적인 OCR과 문서 파싱 VLM 사이에서 보였던 것과 같은 패턴 — 이제 동일한 종류의 원시 줄 텍스트를 출력하는 두 전통적인 엔진 사이에서 발생합니다.
필드 값 F1은 추출된 필드 값의 정밀도와 재현율에 대한 조화 평균으로, 실제 값과 비교합니다: 1.0은 모든 영수증 필드가 완벽하게 복구되었음을 의미하고, 0은 아무것도 복구되지 않았음을 의미합니다. 역전 뒤의 메커니즘은 인식 품질 자체가 아니라 정규식 패턴 집합의 속성입니다: 패턴은 RM 12.00 또는 14/08/2020 같은 형식화된 값에 대해 데이터셋별로 한 번 작성되었습니다. docTR의 깨끗하지만 원시적인 줄 텍스트 — CER 기준으로는 정확하지만 원래 대소문자와 구분 기호 노이즈를 보존함 — 는 고정 패턴을 무력화합니다; EasyOCR의 출력은 우연히 더 자주 일치합니다. "정규식 필드 추출" 열은 벤치마크의 postprocessed_sroie_receipt_regex_* 메트릭입니다: OCR 텍스트 + 다운스트림 규칙 기반 추출을 측정하며, 네이티브 구조화 출력이 아닙니다. 형식별로 크게 튜닝된 패턴 라이브러리는 두 엔진 모두에 대해 다른 점수를 낼 수 있습니다 — 패턴 집합은 고정된 측정 도구이지, 튜닝된 프로덕션 파서가 아닙니다.
출처: 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) | docTR | EasyOCR | 출처 |
|---|---|---|---|
| 필드 값 F1 | 0.0766 | 0.1477 | field_method_comparison.csv · regex_field_value_f1, doctr/sroie_2019 및 easyocr/sroie_2019 행 |
| 필드 값 정확도 | 0.0623 | 0.1267 | field_method_comparison.csv · regex_field_value_accuracy, 동일 행 |
| 문서 필드 완전 일치 | 0.0000 | 0.0000 | field_method_comparison.csv · regex_document_fields_exact, 동일 행 |
표: field_method_comparison.csv — 정규식 열, sroie_2019 행. 이는 postprocessed_sroie_receipt_regex_* 지표입니다. 각 엔진의 OCR 텍스트에 고정 패턴을 적용한 결과입니다. docTR의 정규식 필드 F1 0.0766은 두 번째로 낮은 CER에도 불구하고 전체 실행에서 8개 엔진 중 두 번째로 낮은 수치입니다. 패턴 세트는 데이터셋당 한 번 작성되었으며, docTR의 깨끗하지만 가공되지 않은 줄 단위 텍스트는 이 네 개 필드에서 정규식 친화적이지 않습니다.
LLM 지렛대: 순위가 결정적으로 뒤집히다
두 엔진의 OCR 텍스트를 구조화 추출 프롬프트와 함께 LLM 후처리기에 넣으면 필드 순위가 벤치마크의 어떤 조합보다 가장 큰 격차로 다시 뒤집힙니다: docTR 0.6171 대 EasyOCR 0.3717 필드 F1, 1.66배 차이. docTR의 결과는 8개 엔진 전체 중 가장 높은 LLM 필드 F1이며, EasyOCR의 결과는 가장 낮습니다. 정규식 패턴 세트가 docTR의 깔끔한 텍스트를 불리하게 만들었다면, LLM은 이를 유리하게 활용합니다 — 그리고 우연히 정규식에 친화적이었던 EasyOCR의 중간 수준 텍스트는 동일한 프롬프트에서 성능이 저하됩니다.
이는 8개 엔진 전체 벤치마크에서 나타난 LLM 수렴 패턴과 동일합니다 — LLM 후처리는 문자 모양을 매칭하는 대신 의미를 이해하기 때문에 건강한 엔진들을 0.57~0.62 필드 F1 대역으로 끌어올리며, EasyOCR은 뚜렷한 예외입니다. 이 지렛대는 공짜가 아닙니다: LLM 호출은 OCR 시간에 더해 문서당 중앙값 지연 시간을 약 2.0~2.1초 추가합니다. 또한 엔진이 근본적으로 읽지 못한 텍스트는 구제하지 못합니다. 하지만 이 조합에서는 후처리기가 결정적 구성 요소가 됩니다: 파이프라인에 LLM이 있으면 docTR 선택이 더 유리해집니다.
| LLM 후처리 (SROIE 2019, n=361) | docTR | EasyOCR | 출처 |
|---|---|---|---|
| 필드 값 F1 (LLM) | 0.6171 | 0.3717 | field_method_comparison.csv · llm_field_value_f1, doctr/sroie_2019 및 easyocr/sroie_2019 행 |
| 필드 값 정확도 (LLM) | 0.6170 | 0.3712 | field_method_comparison.csv · llm_field_value_accuracy, 동일 행 |
| 문서 필드 완전 일치 (LLM) | 0.1496 | 0.0028 | field_method_comparison.csv · llm_document_fields_exact, 동일 행 |
| LLM 후처리 중앙값 지연 시간 (ms) | 1,996.3 | 2,004.5 | field_method_comparison.csv · llm_median_latency_ms, 동일 행 |
표: field_method_comparison.csv — llm_* 열, sroie_2019 행. LLM 모델: 온도 0의 deepseek-v4-flash. LLM 지연 시간은 API 발생 비용이며 엔진 지연 시간과 별개입니다. “문서 필드 완전 일치”는 모든 대상 필드가 정확히 일치한 문서의 비율입니다 — 필드별 F1보다 훨씬 엄격한 기준이며, EasyOCR은 영수증의 0.28%에서 네 필드를 모두 정확히 맞췄습니다.
EasyOCR LLM 역설: 중간 수준 텍스트, 최악의 다운스트림 추출
이 맞대결에서 가장 반직관적인 데이터 포인트 — PaddleOCR vs EasyOCR에서 처음 문서화되었고, 다른 상대와의 비교에서도 확인된 사실: EasyOCR의 OCR 텍스트는 문자 정확도 기준 중간 수준 — 그러나 그 텍스트를 다른 모든 엔진에 사용된 동일한 LLM 후처리기에 입력했을 때, SROIE LLM 필드 F1 0.3717은 벤치마크의 8개 엔진 중 가장 낮은 수치 — 더 나쁜 CER(0.3347)을 가진 CPU 엔진 Tesseract(0.4389)보다도 낮습니다. 변경된 것은 OCR 텍스트뿐이었고, LLM, 프롬프트, 영수증은 동일했습니다.
관찰된 패턴, 메커니즘은 미검증. 그럴듯한 가설 — 그 이상도 이하도 아닌 — 은 출력 형식 관례입니다: EasyOCR이 텍스트 줄을 배치, 결합 또는 분리하는 방식이 순수한 문자 정확도와 무관한 이유로 다운스트림 LLM 필드 추출을 저하시키는 것으로 보입니다. 벤치마크는 이 메커니즘을 분리하지 않았습니다. 결과는 재현 가능하고 안정적인 것으로 문서화되었으며, 인과적 주장은 하지 않습니다. docTR의 더 깨끗한 기본 텍스트 + LLM은 EasyOCR이 놓친 동일한 대역의 최상단에 위치합니다.
출처: 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 v1.0.1 | 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 | 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 행에서 가져옴. docTR의 0.6171은 벤치마크에서 가장 높은 LLM 필드 F1이며, EasyOCR의 CER(0.2833)은 8개 중 4위 — 중간 수준의 텍스트 인식 성능에도 불구하고 LLM 다운스트림 필드 복원 성능은 최하위. 이 역설은 관찰되고 재현 가능한 것으로 기록되었으며, 그 메커니즘은 이 벤치마크로는 규명되지 않았다.
운영 범위: docTR, 벤치마크의 속도 및 비용 챔피언
정확도는 어떤 엔진이 가장 잘 읽는지를 결정하고, 운영 범위는 어떤 엔진이 완주하는지를 결정합니다. 동일한 RTX 4090에서 동일한 기록된 $0.76/hr 요율로, docTR은 페이지당 108.7 ms p50에서 449.3 pages/min을 유지하며 1,000페이지당 $0.048의 비용이 듭니다. EasyOCR은 413.6 ms p50에서 124.5 pages/min을 유지하며 1,000페이지당 $0.110의 비용이 듭니다. 이는 3.8배의 지연 시간 격차, 3.6배의 처리량 격차, 그리고 2.3배의 비용 격차로, 모두 docTR에 유리합니다. 전체 8개 엔진 실행에서 docTR의 108.7 ms p50, 449.3 pages/min, $0.048 비용은 각각 측정된 모든 엔진 중 최고입니다. 즉, docTR은 동시에 벤치마크에서 가장 빠르고 가장 저렴한 엔진입니다.
비용은 벽시계 실행 시간 × RunPod RTX 4090 요율로 계산되며, 모델 초기화를 포함합니다. 이는 GPU 시간에 대해 실제로 지불하게 될 가격입니다. 처리량은 동일한 초기화를 포함한 벽시계 기준 분당 페이지 수입니다. 지연 시간 p50/p95는 워밍 후 점수화(warm-then-scored) 방식으로 측정된 안정 상태의 페이지당 추론 시간입니다. EasyOCR의 꼬리 지연 시간은 비례적으로 더 나쁩니다. docTR의 281.4 ms p95 대비 960.4 ms p95로, 3.4배의 격차입니다. EasyOCR은 여전히 측정된 다른 대부분의 엔진보다 실질적으로 저렴합니다. 즉, 비싸거나 느린 것이 아니라 중간 비용, 중간 속도입니다.
출처: summary_metrics.csv — latency_p50_ms / latency_p95_ms 열, sroie_2019 행. docTR p50 108.72 / p95 281.38; EasyOCR p50 413.64 / p95 960.37. 안정 상태 지연 시간.
출처: summary_metrics.csv — cost_per_1000_pages 열, sroie_2019 행. docTR 0.0479, EasyOCR 0.1098. 비용 = 벽시계 실행 시간 × $0.76/hr, 가격은 실행 매니페스트에 타임스탬프 기록. docTR의 $0.048은 벤치마크에서 모든 엔진 중 가장 낮은 1,000페이지당 비용이며, EasyOCR의 $0.110은 두 번째로 낮습니다.
| 운영 범위 (SROIE 2019, n=361) | docTR | EasyOCR | 출처 |
|---|---|---|---|
| 지연 시간 p50 (ms) | 108.7 | 413.6 | summary_metrics.csv · latency_p50_ms, doctr/sroie_2019 및 easyocr/sroie_2019 행 |
| 지연 시간 p95 (ms) | 281.4 | 960.4 | summary_metrics.csv · latency_p95_ms, 동일 행 |
| 분당 페이지 수 | 449.3 | 124.5 | summary_metrics.csv · pages_per_minute, 동일 행 |
| 1,000페이지당 비용 | $0.048 | $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 사용; 비용에는 모델 초기화가 포함되며, 순수 정상 상태 처리량만 반영한 것은 아님. 정확한 값: docTR p50 108.72 / p95 281.38 / 449.31 pg/min / $0.0479; EasyOCR p50 413.64 / p95 960.37 / 124.53 pg/min / $0.1098. 벤치마크 전체 최고 기록: docTR은 8개 엔진 중 가장 낮은 p50 지연 시간, 가장 높은 분당 페이지 수, 가장 낮은 비용을 기록함.
CORD(인도네시아 영수증): 텍스트 인식 모두 붕괴, LLM 격차 확대
두 엔진 모두 인도네시아 영수증을 주로 학습하지 않았으므로, CORD v2는 교차 언어 스트레스 테스트 역할을 하며 — 두 엔진 모두 원시 CER에서 붕괴합니다: 0.9101(docTR) 및 0.9185(EasyOCR), 언어 불일치로 인해 두 엔진 모두 텍스트를 사실상 읽지 못하는 결과입니다. 벤치마크 프로토콜에 따라 CORD 수치는 SROIE 비교에서 격리되어 유지되며 — 어떤 순위에도 병합되지 않습니다 — CORD의 실제 텍스트에는 주석 구조가 포함되어 있어 모든 엔진의 원시 CER을 실제 언어 불일치 위에 부풀리기 때문입니다.
필드 지표는 SROIE 패턴이 확장되고 — 더욱 벌어지는 것을 보여줍니다. LLM 후처리기를 통해 docTR의 필드 F1은 CORD에서 0.5500을 유지하는 반면 EasyOCR은 0.3378입니다 — 1.63배 격차로, 두 텍스트 인식기가 문자 수준에서 모두 실패할 때에도 SROIE의 1.66배와 동일한 순서입니다. 정규식 패턴을 통해서는 docTR이 어떤 필드도 복구하지 못합니다. 영어 형식 패턴이 인도네시아어 텍스트와 일치하는 것이 없기 때문입니다. 반면 EasyOCR은 0.0067을 긁어냅니다. docTR의 비용 우위도 CORD에서는 좁혀지고 역전됩니다 — 그러나 벽시계 처리량 우위는 500.4 vs 211.8 pages/min으로 커집니다. CORD는 언어 견고성 맥락을 위해 여기에 인용되며, 의도적으로 SROIE 수치와 단일 리더보드에 통합되지 않습니다.
| CORD v2, 인도네시아 영수증(n=100) | docTR | EasyOCR | 출처 |
|---|---|---|---|
| 문자 오류율(CER) | 0.9101 | 0.9185 | summary_metrics.csv · cer, doctr/cord_v2 및 easyocr/cord_v2 행 |
| 필드 값 F1 | 0.0000 | 0.0067 | field_method_comparison.csv · regex_field_value_f1, 동일 행 |
| 필드 값 F1(LLM) | 0.5500 | 0.3378 | field_method_comparison.csv · llm_field_value_f1, 동일 행 |
| 분당 페이지 수 | 500.4 | 211.8 | summary_metrics.csv · pages_per_minute, 동일 행 |
| 페이지 1,000장당 비용 | $0.094 | $0.086 | summary_metrics.csv · cost_per_1000_pages, 동일 행 |
표: summary_metrics.csv (cer / pages_per_minute / cost_per_1000_pages) 및 field_method_comparison.csv, cord_v2 행. CORD 수치를 SROIE 순위에 병합하지 마세요: CORD CER은 실제 언어 불일치와 정답 데이터의 주석 구조 과대평가가 결합된 값입니다. 정규식 패턴은 영어 형식에 맞춰 작성되어 두 엔진 모두에서 정규식 필드 F1이 ~0–1%로 붕괴합니다. docTR의 0.0000은 CSV에 기록된 실제 0값이며, 누락 값이 아닙니다. LLM 필드 F1 격차(0.5500 vs 0.3378)는 SROIE 패턴이 언어를 넘어 확장됨을 보여주며, 비용 순서는 역전되고(EasyOCR $0.086 vs docTR $0.094) 처리량 격차는 더 벌어집니다(2.4×).
언제 누가 유리한가: 요약 그리드
“더 나은” 것은 작업 부하에 따라 달라지며, 이 대결은 축을 명확히 나눕니다: 원시 텍스트 정확도, LLM 다운스트림 필드, 속도, 처리량, 비용 모두 docTR에 유리합니다. 고정 정규식 필드 추출과 배포 측면은 EasyOCR에 유리합니다 — 단, EasyOCR의 LLM 다운스트림 결과는 강점이 아니라 가장 큰 리스크라는 점을 유의하세요.
자주 묻는 질문
영수증 인식에서 docTR이 EasyOCR보다 더 정확한가요?
네, 이 벤치마크의 모든 원시 텍스트 및 필드 추출 정확도 측면에서 그렇습니다. SROIE 2019 기준: CER 0.1971 대 0.2833, WER 0.3199 대 0.6158, LLM 후처리 필드 F1 0.6171 대 0.3717 — 단, 정규식 필드 F1에서는 EasyOCR이 0.1477 대 0.0766으로 우세합니다. 두 엔진 모두 이 벤치마크의 전체 CER 챔피언은 아닙니다 — Surya2 (0.1915)가 docTR을 근소한 차이로 제치고 그 타이틀을 보유하고 있습니다.
docTR은 텍스트 정확도가 더 높은데 왜 정규식 필드 추출은 EasyOCR보다 나쁜가요?
두 지표가 고정된 측정 도구에 대해 서로 다른 출력을 평가하기 때문입니다. docTR은 깨끗한 원시 줄 텍스트를 반환합니다 — CER 기준으로는 정확하지만 원래 대소문자와 구분 기호를 유지합니다 — 그리고 데이터셋별로 서식화된 값에 대해 한 번 작성된 고정 정규식 패턴은 대부분 여기에 실패합니다: SROIE 정규식 필드 F1 0.0766. EasyOCR의 출력은 우연히 0.1477로 패턴과 일치합니다. 대신 둘 다 LLM에 입력하면 격차가 뒤집혀 docTR이 1.66배 유리해집니다 — 병목 현상은 OCR이 아니라 정규식 패턴 세트였습니다.
EasyOCR은 문자 정확도가 괜찮은데 왜 LLM 필드 추출이 가장 나쁜가요?
이것은 벤치마크에서 문서화된 역설이며, 현재 입증된 메커니즘은 없습니다. EasyOCR의 SROIE CER (0.2833)은 8개 엔진 중 4위이지만, LLM 후처리 필드 F1 (0.3717)은 최하위입니다 — 더 나쁜 CER을 가진 Tesseract (0.4389)보다도 낮습니다. 주요 가설은 EasyOCR이 텍스트 줄을 배치하거나 연결하는 방식의 출력 형식 관례가 다운스트림 LLM 추출을 저하시킨다는 것입니다. 이는 관찰되고 재현 가능한 패턴으로 표시되며 메커니즘은 검증되지 않았습니다. 동일한 역설이 PaddleOCR 대 EasyOCR 비교에서 다른 상대에 대해 문서화되어 있습니다.
docTR는 EasyOCR보다 얼마나 빠르고 저렴한가요?
3.8배 낮은 p50 지연 시간, 3.4배 낮은 p95, 3.6배 높은 처리량, 2.3배 낮은 1,000페이지당 비용을 동일한 RTX 4090에서 $0.76/시간 기준으로 달성했습니다. docTR는 벤치마크에서 세 가지 지표 모두 가장 빠르고 저렴한 엔진입니다. EasyOCR은 중간 비용과 중간 속도를 보입니다.
두 엔진 모두 CORD 영수증에서 왜 이렇게 낮은 점수를 받나요?
벤치마크 프로토콜이 SROIE 순위와 분리해 두는 두 가지 복합 원인이 있습니다: 실제 언어 불일치와 CORD의 정답 텍스트 내부의 주석 구조 팽창입니다 — CER은 0.9101(docTR)과 0.9185(EasyOCR)에 도달합니다. 여전히 차이를 만드는 것은 LLM 다운스트림 복구입니다: docTR 0.5500 대 EasyOCR 0.3378 필드 F1 — 두 인식기가 모두 문자 수준에서 실패할 때도 SROIE 패턴이 지속되고 확대됩니다.
영수증 파이프라인은 EasyOCR과 docTR 중 어떤 엔진을 선택해야 하나요?
측정된 비용으로 대량의 추출 필드를 목표로 하는 파이프라인의 경우, docTR이 이 코퍼스에서 우세합니다: 더 나은 원시 텍스트, 모든 엔진 중 최고의 LLM 다운스트림 필드, 2.3배 비용 우위, 3.6배 처리량, 3.8배 지연 시간 — 네 가지 축 모두 동시에 달성합니다. EasyOCR은 깨끗한 문서에서 저렴하고 설치가 쉬운 다중 스크립트 대량 OCR이 필요하고, 정규식 추출이나 적당한 규모의 원시 텍스트가 작업이며 LLM 다운스트림 필드 품질이 덜 중요할 때 여전히 합리적인 선택입니다 — 다만 도입 전에 측정된 약한 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 테스트; 훈련 분할은 절대 평가하지 않았습니다. 두 엔진 모두 동일한 이미지, 동일한 정답, 동일한 측정 프로토콜을 사용했습니다. 두 실행 모두 두 데이터셋에서 error_rate 0.0으로 완료되었습니다. 기본 실행에는 총 8개 엔진이 포함되어 있으며, 이 페이지는 지명된 두 엔진만 비교하고 다른 엔진은 순위 맥락으로만 인용합니다. 8개 엔진 전체 결과는 전통적 OCR 대 문서 파싱 VLM에서 별도로 공개됩니다.
런타임 환경
- 하드웨어: 두 엔진 모두 동일한 NVIDIA RTX 4090(24GB)에서 실행되었습니다. GPU 비용은 RunPod 온디맨드 요금 $0.76/시간으로 계산되었으며, 가격은 각 실행의 편집된 manifest에 타임스탬프로 기록되어 있습니다.
- 엔진: 기본 상태 그대로, 파인튜닝 없음. 고정 버전: EasyOCR 1.7.2 및 docTR v1.0.1 — 공개 저장소 모델 표(README.md) 및 실행 manifest 기준. EasyOCR의 SROIE 행은 2026-08-17 torch 2.8 재실행에서 재검증되었으며, 공개 CSV에는 수정된 값이 포함되어 있습니다.
- LLM 후처리기: 결정적 출력을 위해 온도 0으로 API를 통한 deepseek-v4-flash — 두 엔진의 모든 LLM 필드 행에 사용된 단일 모델입니다.
- 비용 기준: 벽시계 실행 시간 × $0.76/시간, 모델 초기화 포함 — 배치 처리는 페이지당 비용을 낮춥니다.
- 필드 후처리: SROIE 정규식 필드 지표는
postprocessed_sroie_receipt_regex_*— 데이터셋당 한 번 작성된 고정 패턴 세트로 OCR 텍스트에서 추출된 필드입니다. 이는 어느 모델의 네이티브 구조화 출력이 아닌 OCR + 다운스트림 추출을 측정하며, LLM_* 열은 OCR 텍스트 + LLM 추출을 측정합니다. 두 파이프라인은 절대 혼합되지 않습니다.
지표 정의
- CER: OCR 텍스트와 정답(Ground Truth) 간의 편집 거리를 정답 문자 수로 나눈 값입니다. 낮을수록 좋습니다.
- WER: 동일한 편집 거리 계산을 단어 단위로 적용한 값입니다.
- 필드 값 F1: OCR 텍스트에 고정 정규식 패턴을 적용해 추출한 필드 값에 대한 정밀도/재현율의 조화 평균입니다. 열 이름: regex_field_value_f1. 점수가 0이면 추출된 필드 값이 없음을 의미합니다.
- 필드 값 F1(LLM): LLM 후처리기 출력에 대한 동일 지표입니다. 열 이름: llm_field_value_f1. 두 파이프라인은 서로 다르며 절대 혼합되지 않습니다.
- 문서 필드 완전 일치: 모든 대상 필드가 정확히 일치한 문서의 비율입니다. 필드별 F1보다 훨씬 엄격한 기준입니다.
- 지연 시간 p50/p95 및 페이지/분: 정상 상태의 페이지당 추론 시간과 모델 초기화를 포함한 실측 처리량입니다. 서로 다른 시계로 측정됩니다.
- 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, 지연 시간, 비용, 처리량 수치는 여기의 easyocr 및 doctr 행에서 비롯됩니다.
- field_method_comparison.csv (GitHub raw). 16개 행; 열: model, dataset, llm_model (= deepseek-v4-flash), regex/llm 필드 값 정확도 및 F1, 문서 필드 완전 일치, llm_median_latency_ms, 토큰 수. 모든 정규식/LLM 필드 F1 수치는 여기의 easyocr 및 doctr 행에서 비롯됩니다.
- 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. 여기에는 영수증이 아닌 텍스트에 대한 EasyOCR의 80개 이상 언어 지원 범위, 표/양식/장문 문서에서의 docTR 동작, 또는 기타 문서 유형이 포함되지 않습니다. 이 페이지를 근거로 두 엔진 중 하나가 "모든 면에서 우월하다"고 결론 내리지 마십시오.
- 표본 크기: 영어 영수증 361건 + 인도네시아어 영수증 100건. 필드 F1과 CER은 말뭉치에 민감하며, 몇 백분의 일 수준의 단일 자릿수 차이는 노이즈로 간주해야지 엔지니어링 사실로 보아서는 안 됩니다. 다만 여기서 기록된 격차는 그 범위를 훨씬 넘어섭니다.
- 단일 GPU 티어 및 단일 가격: 모든 수치는 실행 매니페스트에 타임스탬프가 기록된 2026년 8월 기준 시간당 $0.76의 RTX 4090 하나에서 나온 것입니다. 다른 GPU, 멀티 GPU 서빙, 배치 스케줄링 또는 가격 변동은 지연 시간, 처리량, 비용을 바꿉니다. 예산을 세우기 전에 현재 요율로 비용을 다시 산출하십시오.
- 단일 LLM 후처리기: 모든 LLM 행은 temperature 0의 deepseek-v4-flash를 사용합니다. 다른 LLM을 사용하면 절대 필드 F1이 달라집니다. EasyOCR 역설의 크기는 LLM에 따라 달라질 수 있지만, 관찰된 패턴은 두 데이터셋 모두에서 이 단일 후처리기에 대해 유지되었습니다. LLM 지연 시간은 API에서 발생하며 두 엔진 자체의 지연 시간에는 포함되지 않습니다.
- EasyOCR 역설 메커니즘 미검증: 벤치마크는 EasyOCR의 중간 티어 CER 텍스트가 LLM 다운스트림 필드 복원률을 가장 낮게 만든다는 것(SROIE 0.3717 / CORD 0.3378)을 문서화합니다. 이는 출력 텍스트 레이아웃 관례라는 가설 하의 관찰 가능하고 재현 가능한 결과이며, 인과 메커니즘은 명시적으로 분리되지 않았습니다. 이를 라이브러리의 입증된 속성이 아니라 계획 시 고려해야 할 측정된 결과로 취급하십시오.
- 정규식 튜닝: 패턴 세트는 데이터셋당 한 번 작성되었습니다. 형식별로 과도하게 튜닝된 패턴 라이브러리는 자체 레이아웃에서 더 높은 점수를 얻을 수 있습니다. 단, LLM이 제거하는 유지보수 비용이 발생합니다. docTR의 정규식 필드 불리(SROIE 0.0766 vs 0.1477)는 이 고정 도구의 속성일 뿐, 튜닝된 파서가 복원할 수 있다는 주장이 아닙니다.
- CORD CER은 모델별 품질 수치가 아닙니다: CORD 정답 데이터에는 주석 구조가 포함되어 있으며 두 엔진 모두 주로 인도네시아어로 학습되지 않았습니다. CORD CER은 언어 불일치 + 정답 데이터 인플레이션을 반영합니다. CORD 행은 맥락을 명시하고 인용되며 어떤 SROIE 순위에도 병합되지 않습니다.
- 두 엔진만 비교: 이 직접 비교에는 기본 실행의 다른 6개 엔진, 클라우드/API OCR 서비스, 호스팅 VLM API가 의도적으로 제외되었습니다. 이들의 지연 시간과 가격 모델은 여기서 측정된 로컬 엔진과 근본적으로 다릅니다.
- 버전 고정: 결과는 EasyOCR 1.7.2 및 docTR v1.0.1에 적용됩니다. 두 엔진 중 하나라도 새 버전이 출시되면 이 페이지의 모든 수치가 달라질 수 있습니다.
관련 참고 자료: PaddleOCR vs EasyOCR 영수증 벤치마크 · docTR vs Surya2 영수증 벤치마크 · 기존 OCR vs 문서 파싱 VLM · 패턴 매칭 vs 모델 기반 필드 추출 · 문자 단위가 아닌 필드 단위 정확도 측정 · 1,000페이지당 OCR 비용
관련 자료: AI OCR 정확도가 기존 OCR과 다른 이유 · 이미지에서 AI 추출이 OCR보다 나은 이유 · AI 문서 추출 가격 (2026)