OCR 기능
딸깍문서는 Claude Vision을 활용하여 이미지에서 텍스트를 추출하는 OCR(광학 문자 인식) 기능을 제공합니다.
개요
Claude Vision API를 사용하여 이미지나 PDF에서 텍스트를 정확하게 추출합니다. 특히 한국어, 영어, 터키어 등 다양한 언어의 특수 문자를 정확하게 인식합니다.
지원 형식
이미지 형식
| 형식 | MIME 타입 | 지원 |
|---|---|---|
| PNG | image/png | ✅ |
| JPEG | image/jpeg | ✅ |
| GIF | image/gif | ✅ |
| WebP | image/webp | ✅ |
지원 언어
- 한국어 (가-힣)
- 영어 (A-Z, a-z)
- 터키어 (İ, ı, Ğ, ğ, Ş, ş, Ç, ç 등)
- 기타 유니코드 언어
사용 방법
단일 이미지 OCR
const response = await fetch("/api/ocr/claude-vision", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
image_base64: "base64_encoded_image",
media_type: "image/png",
language: "ko",
}),
});
const { text } = await response.json();
배치 OCR
여러 이미지를 한 번에 처리:
const response = await fetch("/api/ocr/claude-vision-batch", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
images: [
{ image_base64: "...", media_type: "image/png" },
{ image_base64: "...", media_type: "image/jpeg" },
],
language: "ko",
}),
});
const { results } = await response.json();
API 상세
요청 형식
interface OCRRequest {
image_base64: string;
media_type: "image/png" | "image/jpeg" | "image/gif" | "image/webp";
language?: string;
instructions?: string;
}
응답 형식
interface OCRResponse {
text: string;
confidence?: string;
language_detected?: string;
}
OCR 프롬프트
Claude에게 전달되는 OCR 지시사항:
You are an expert OCR system. Extract ALL text from this image exactly as it appears.
IMPORTANT RULES:
1. Preserve the EXACT characters as they appear, including:
- Turkish characters: İ, ı, Ğ, ğ, Ş, ş, Ç, ç, Ö, ö, Ü, ü
- Korean characters: 가-힣
- Special characters and punctuation
2. Maintain the original formatting (line breaks, spacing)
3. If there are tables, preserve the table structure using | separators
4. Do NOT translate or modify any text
5. Output ONLY the extracted text, nothing else
특수 용도
영역 OCR
PDF의 특정 영역만 OCR 처리:
const response = await fetch("/api/pdf/ocr-region", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
pdf_base64: "...",
page: 1,
region: {
x: 100,
y: 200,
width: 300,
height: 50,
},
}),
});
테이블 인식
테이블 구조가 있는 이미지의 경우 | 구분자로 구조를 보존합니다:
| 이름 | 나이 | 직업 |
| 홍길동 | 30 | 개발자 |
| 김철수 | 25 | 디자이너 |
성능 최적화
이미지 전처리
더 나은 OCR 결과를 위해:
- 해상도: 최소 150 DPI
- 대비: 텍스트와 배경 간 명확한 대비
- 크기: 너무 작은 텍스트는 확대
배치 처리
많은 이미지를 처리할 때는 배치 API를 사용:
- 단일 요청으로 여러 이미지 처리
- API 호출 횟수 감소
- 전체 처리 시간 단축
에러 처리
일반적인 오류
| 오류 | 원인 | 해결 |
|---|---|---|
Invalid media_type | 지원하지 않는 이미지 형식 | PNG, JPEG, GIF, WebP 사용 |
Image too large | 이미지 크기 초과 | 이미지 리사이즈 |
OCR failed | 텍스트 인식 실패 | 이미지 품질 개선 |
제한사항
| 항목 | 제한 |
|---|---|
| 최대 이미지 크기 | 20MB |
| 최대 해상도 | 8000 x 8000 |
| 배치 최대 이미지 수 | 10개 |
활용 사례
문서 디지털화
스캔된 문서를 편집 가능한 텍스트로 변환:
flowchart LR
A[스캔 문서] --> B[OCR 처리]
B --> C[텍스트 추출]
C --> D[문서 편집기]
D --> E[편집/수정]
PDF 참고자료
PDF 내용을 텍스트로 추출하여 AI 참고자료로 활용:
flowchart LR
A[PDF 업로드] --> B[페이지 이미지화]
B --> C[OCR 처리]
C --> D[텍스트 저장]
D --> E[AI 참고자료]