OCR 리서치/05 — 07

읽기를 완벽하게 만드는 게 아니라, 틀린 것을 잡는 그물을 여러 겹 친다

OCR 리서치 v0.1 · 2026-09-02 · 서브에이전트(sonnet) 조사, 검색 12회·본문 확인 7건 · 수치는 벤더 자체 벤치마크가 많아 우리 문서로 재검증 전에는 참고치


결론 다섯 줄

  1. 스캔본이 아니면 OCR을 안 쓴다. 글자층이 있는 PDF는 그대로 읽으니 오독이 없다. (KPF 샘플은 전부 팩스 스캔이라 OCR 필수)
  2. 스스로 검산한다. 수량×단가=금액, 합계, 인보이스와 패킹리스트 수량·무게 일치. 계산이 안 맞으면 신뢰도가 높아도 사람 확인.
  3. 아는 값과 대조한다. 부품 기준표, 거래처 목록, HS 코드 표.
  4. 자신 없는 칸만 사람이 본다. 원본을 확대해 옆에 보여준다. 업계 목표: 60~75%는 사람 손 안 타고 통과, 최종 오류 0.5% 미만.
  5. 위험한 칸은 기준을 높인다. 금액·수량은 아주 확실할 때만 자동, 비고는 느슨하게.

추천 파이프라인

단계내용근거
0 문서 판정페이지마다 글자층이 있는지 본다(PyMuPDF get_text). 있으면 OCR 없이 파싱, 없으면 OCR. 한 PDF 안에 섞일 수 있으니 페이지 단위BSWEN
1 페이지 분류·분할페이지마다 종류와 "새 문서 시작" 여부를 태깅해 세트(건)를 만든다. 세트가 있어야 두 서류 대조가 된다DocSplit, LandingAI
2 구조화 추출JSON 스키마를 강제하는 tool-use로 AI 비전 모델 호출. 칸마다 신뢰도를 같이 받는다. 과한 스키마 제약은 추론력을 약간 낮출 수 있다OpenAI docs, SLOT
3 방어적 검증산술 검증, 세트 간 대조, 신뢰도 임계값 → 칸마다 자동확정 / 확인 / 보류아래 표
4 확인 화면낮은 신뢰도·검산 실패 칸만 강조, 원본 해당 부분 확대. 전 칸을 다 보여주면 도장 찍기식 승인이 된다Parseur
5 엑셀 반영확정된 세트를 시트로 추가

방어책 10겹

#방어책무엇을 잡나비용
1신뢰도 점수 + 칸별 임계값 (금액 0.95~0.98, 비고 0.85)화질·애매한 칸의 저확신 오독낮음
2산술 교차 검증 (수량×단가=금액, 줄 합=소계, 소계+운임=총계)신뢰도는 높은데 틀린 값(자릿수·소수점)거의 0
3세트 간 대조 (인보이스 수량 = 패킹 수량, 무게·포장수)세트 자체의 앞뒤 불일치낮음
4이중 엔진 합의 (실패 패턴이 다른 두 엔진이 불일치하면 표시)한 엔진의 체계적 오독중~높음
5글자층 우선OCR 오류 원천 차단없음
6세트 분할 검증 (예상 건 수 ≠ 쪼갠 건 수면 표시)경계 오류 → 이후 대조 무의미낮음
7사람 확인 + 예외만 라우팅검산으로 못 잡는 의미 오류(엉뚱한 회사명)인건비(예외만)
8저확신 영역 확대 재판독저해상도·작은 글씨낮음
9마스터 데이터 대조 (부품 기준표, 거래처, HS 코드)오타·없는 코드낮음
10스키마 강제 구조화 출력칸 누락·타입·enum 오류없음

실무자가 보고한 실패 유형 (KPF 서류에 해당하는 것에 ★)

엑셀 시트 추가·동시성·배포

출처