본문 바로가기
카테고리 없음

영수증 OCR로 엑셀 만들기: 증빙 입력 자동화 구조와 정확도 체크

by danie 2026. 9. 12.

영수증 OCR로 엑셀 만들기: 증빙 입력 자동화 구조와 정확도 체크

영수증 OCR을 엑셀 입력용 표로 만들려면, 핵심은 영수증에서 구조화된 필드를 추출한 뒤 표 형태로 정규화하고, CSV/엑셀로 내보내는 흐름입니다. Document Intelligence의 receipt 모델은 이런 구조화 추출에 맞춰져 있고, SDK와 REST API 경로가 있어 프로그램matic workflow로 연결할 수 있습니다.

추천 구조

1. 입력 수집

  • 영수증 이미지나 PDF를 받습니다.
  • 이를 영수증 전용 추출 모델로 보냅니다.

2. OCR/필드 추출

  • 영수증 모델에서 구조화된 필드를 가져옵니다.
  • 이 단계의 목적은 단순 텍스트 복사가 아니라, 표로 쓰기 좋은 형태의 값으로 받는 것입니다.

3. 정규화

  • 추출된 값을 고정된 스키마에 맞춥니다.
  • 예: 같은 열 이름, 같은 순서, 같은 형식으로 맞춥니다.

4. 검증

  • OCR로 나온 값과 원본 영수증을 비교합니다.
  • 금액처럼 중요한 값은 한 번 더 확인하는 흐름을 둡니다.

5. 내보내기

  • CSV 또는 엑셀용 파일로 저장합니다.
  • pandas의 to_csv를 쓸 때는 인코딩을 명시적으로 관리하는 편이 적절합니다.

실무에서 중요한 포인트

  • 영수증 전용 모델을 먼저 쓰는 것이 좋습니다. 일반 OCR 결과를 바로 엑셀로 옮기기보다, 구조화된 필드를 먼저 받는 편이 입력 자동화에 맞습니다.
  • SDK나 REST API로 연결하면 수동 입력이 아니라 파이프라인 형태로 구성할 수 있습니다.
  • CSV 저장 시 인코딩을 명시하면 한국어 텍스트를 다룰 때 파일 처리 흐름을 안정적으로 가져가기 좋습니다.
  • `read_csv`의 `on_bad_lines`는 만능 복구 수단이 아닙니다. 파서가 bad line으로 정의한 행에만 동작하므로, 이를 일반적인 훼손 복구로 보면 안 됩니다.

정확도 체크는 이렇게 설계하는 편이 좋습니다

영수증 OCR은 “읽기”보다 “증빙 입력”이 목적일 때가 많아서, 결과를 바로 저장하기보다 검증과 정규화 단계를 끼우는 구조가 맞습니다. 특히 다음 순서가 깔끔합니다.

  • 추출 결과 수신
  • 필드 매핑
  • 포맷 통일
  • 누락값 확인
  • 원본 대조
  • 최종 저장

이 흐름이면 엑셀로 옮겼을 때 열 구조가 흔들리지 않고, 나중에 재처리하기도 쉽습니다.

CSV/엑셀 내보내기 쪽 체크포인트

pandas DataFrame.to_csv 문서는 encoding 인자를 제공하므로, 내보내기 단계에서 인코딩을 직접 지정하는 방식이 자연스럽습니다. 또한 read_csv를 다시 읽는 과정에서는 on_bad_lines를 너무 넓은 복구 수단으로 쓰지 말고, parser가 정의한 문제 행 처리로만 생각하는 편이 맞습니다.

즉, 요약하면:

  • 추출은 영수증 전용 모델로
  • 정규화는 고정 스키마로
  • 검증은 원본 대조로
  • 저장은 인코딩과 파서 동작을 의식해서

한 줄 정리

영수증 OCR로 엑셀을 만들 때는 “OCR → 구조화 추출 → 정규화 → 검증 → 저장” 순서로 잡으면 안정적입니다. 특히 영수증 전용 모델과 프로그램matic workflow를 연결하고, CSV 인코딩과 파서 처리 방식을 명확히 두는 것이 핵심입니다.

참고 링크