OCR 실행 전에 기울어진 문서 수정 방법

발행: (2025년 12월 2일 오후 02:37 GMT+9)
6 min read
원문: Dev.to

Source: Dev.to

Cover image for How to Fix Croanged Documents Before OCR Runs

Overview

영수증 사진이나 스캔한 계약서에서 텍스트를 추출해 본 적이 있나요? 있다면 결과가 들쭉날쭉할 수 있다는 것을 잘 아실 겁니다. 종이가 기울어져 있거나, 조명이 고르지 않거나, 사진이 거칠게 나올 수 있기 때문이죠. 이런 경우, 여러분의 OCR 엔진이 텍스트를 올바르게 읽지 못합니다.

Document Detection은 이러한 문제를 해결합니다. 이미지 안에서 문서를 찾아내고, 바로 잡으며, 깨끗하게 정리해 줍니다. 이렇게 하면 컴퓨터가 텍스트를 읽기가 훨씬 쉬워집니다.

Why OCR Fails on Real‑World Images

OCR 도구는 보통 완벽한 사진을 기대합니다. 평평하고 밝으며 직선적인 텍스트에 대해 학습되어 있기 때문이죠. 실제 사용자 사진은 거의 완벽하지 않습니다—사용자는 영수증을 비스듬히 찍거나, 책상 위에 어지럽게 놓인 신분증을 촬영하거나, 종이가 움직인 스캔본을 업로드합니다. 이러한 원본 이미지를 OCR 도구에 바로 보내면 텍스트가 뒤섞이거나 누락되거나 순서가 뒤바뀐 결과가 나올 가능성이 높습니다.

Filestack Document Detection은 이러한 지저분한 입력을 자동으로 처리합니다. 종이의 가장자리를 찾아 각도를 교정하고 이미지를 정리해, 텍스트 추출에 적합한 깨끗한 사진을 제공합니다.

How It Works

Document Detection은 두 가지 보완적인 방법을 사용합니다:

  1. Edge detection – 사진 속 선과 가장자리를 찾습니다.
  2. Machine‑learning model – 수천 장의 문서 사진으로 학습된 신경망입니다.

전체 과정은 네 단계로 진행됩니다:

  1. 모델을 이용해 문서의 맵을 생성합니다.
  2. 종이의 네 모서리를 찾습니다.
  3. 이미지를 변형해 문서가 프레임 전체를 채우도록 합니다.
  4. (선택) 노이즈를 제거하고, 그림자를 어둡게, 하이라이트를 밝게 합니다.

Three Detection Modes

Document Detection은 필요에 따라 세 가지 모드를 제공합니다.

Coordinates Mode

문서 모서리의 좌표를 반환합니다.

API Call

doc_detection=coords:true

Response (JSON)

{
  "coords": {
    "x": 106,
    "y": 464,
    "width": 580,
    "height": 231
  }
}

이 모드는 박스를 그리거나, 직접 이미지를 자르거나, 다른 시스템에 문서 위치를 알려줄 때 사용합니다.

Warped Mode

색상이나 밝기를 변경하지 않고 이미지를 바로 잡습니다.

Warped mode example

API Call

doc_detection=preprocess:false

결과는 문서가 프레임 전체를 차지하도록 변형된 새로운 이미지이며, 원본 시각적 특성을 그대로 유지합니다. 자체 후처리를 적용하려는 경우 이 모드를 선택하세요.

Preprocessed Mode

왜곡 보정과 시각적 향상(노이즈 감소, 대비 강화)을 모두 수행합니다.

Preprocessed mode example

API Call

doc_detection=preprocess:true

이것이 기본 설정입니다. 정리 단계가 노이즈를 줄이고 텍스트를 선명하게 만들어 OCR 작업에 최적화됩니다.

Full API Examples

Document Detection은 Processing API의 URL을 수정해 적용합니다. 모든 요청에는 보안 정책과 서명이 필요합니다.

  • 좌표 가져오기

    https://cdn.filestackcontent.com/security=p:POLICY,s:SIGNATURE/doc_detection=coords:true/HANDLE

  • 왜곡 보정된 이미지 가져오기

    https://cdn.filestackcontent.com/security=p:POLICY,s:SIGNATURE/doc_detection=preprocess:false/HANDLE

  • 전처리된 이미지 가져오기

    https://cdn.filestackcontent.com/security=p:POLICY,s:SIGNATURE/doc_detection=preprocess:true/HANDLE

Chaining with Resize

이미지는 최대 2000 × 2000 픽셀이어야 합니다. 파일이 더 큰 경우, 리사이즈 단계를 추가합니다:

https://cdn.filestackcontent.com/security=p:POLICY,s:SIGNATURE/resize=height:1500/doc_detection=preprocess:true/HANDLE

Chaining with OCR

정리된 이미지를 바로 Filestack OCR에 보낼 수 있습니다:

https://cdn.filestackcontent.com/security=p:POLICY,s:SIGNATURE/doc_detection=preprocess:true/ocr/HANDLE

예시 영수증에 대한 OCR 응답(발췌):

{
  "text": "Manila Automated Fare\nCollection System\nRECEIPT\nTax ID:\nReceipt No:\nDate and Time:\nStation Name:\nPOS ID:\nOperator ID:\nCard ID:\nCard Name:\n004-1-231125-1134-53\n23 NOV 2025 11:34\nGil Puyat\nPOI, POS.A.02.00.03\n100108195\n6378050082232813\nStandard SVC\nAdd value\nAdd Value:\nold Remaining value:\n42.00\n100.00\nNew Remaining value:\n142.00\nAmount Payable:\n100.00\nAmount Received:\n100.00"
}
Back to Blog

관련 글

더 보기 »

내가 결국 없앤 작은 마찰

‘A small friction I finally removed’의 커버 이미지 https://media2.dev.to/dynamic/image/width=1000,height=420,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fde...

번들을 과체중이 되지 않게 하세요

솔직히 말하자면, 우리 모두 번들 크기를 신경 씁니다. 수년간 bundlesize가 대표적인 도구였지만, 이제는 오래되고 유지보수가 되지 않습니다. 보안 검사가 플래그를 달기 시작했습니다.