
이미지나 스캔 문서에서 문자 영역을 인식하고, 해당 문자를 디지털 텍스트로 변환하는 기술.
출발점: 초기에는 손글씨·인쇄물 → 스캐너로 이미지화 → 문자 인식.
발전: 스마트폰·디지털 카메라·이미지 편집 도구 등 다양한 디지털 이미지 속 텍스트 인식으로 확장.
최근 경향: 딥러닝 기반 OCR 모델이 주류, 모바일 환경에서도 높은 인식률 제공.

Text Region Detection
이미지 내에서 텍스트가 있는 영역을 찾는 과정
예: 사진 속 간판, 표의 셀, 문서의 문단 위치
Text Recognition
해당 영역의 문자를 실제 문자열로 변환하는 과정
예: "SALE 50%" → 문자열 "SALE 50%"
기술적 특징
최근 대부분 Deep Learning 기반 모델 사용
학습 데이터: 이미지 + 텍스트 위치 좌표 + 정답 문자열
대표 모델: CRNN, EAST, CRAFT, TrOCR, Donut 등
컴퓨터 이전: 시각 기호를 문자로 대응시키려는 개념 존재
컴퓨터 발명 이후: 디지털 이미지 변환·표현 기술 연구 시작
1990년대: 디지털 카메라·이미지 센서 발전 → 이미지 데이터 폭증
2000년대: 기계학습 기반 OCR 연구 활성화
2010년 이후: 딥러닝 기반 OCR 모델 등장 → 인식률·속도 비약적 향상
현재: 모바일·웹 서비스에 OCR 내장, 실시간 인식 가능
문제: 상품 상세 이미지에 사기 유도 문구 포함 → 사람이 일일이 확인 불가
해결: OCR로 이미지 내 텍스트 추출 → 의심 문구 필터링 → 사기 예방
문제: 상품 상세 정보가 이미지로만 제공 → TTS로 읽을 수 없음
해결: OCR로 이미지 내 텍스트 추출 → 문장 구조화 → TTS로 제공
활용 시나리오
OCR + TTS: 이미지 속 텍스트를 OCR로 추출 → TTS로 읽어주기
(시각 장애인 접근성 개선)
문서 검색 + TTS: RAG로 문서 검색 → 요약 결과를 음성 안내
다국어 안내: 번역 + TTS → 다국어 음성 안내 서비스
콜센터 자동응답: RAG로 답변 생성 → TTS로 고객에게 전달
효과
외부 OCR API 비용 절감 (내재화)
서비스 맞춤형 부가 기능 추가 가능
데이터 보안 강화 (외부 전송 불필요)
[이미지 / PDF / 스캔 문서]
↓ (OCR: Tesseract, EasyOCR, AWS Textract 등)
[텍스트 추출]
↓ (LLM 요약/정제)
[텍스트 임베딩 변환]
↓ (Vector DB 저장)
import pytesseract
from PIL import Image
# 이미지 불러오기
img = Image.open("scan_page.jpg")
# OCR 실행 (한국어: 'kor')
text = pytesseract.image_to_string(img, lang='kor')
print(text)
import easyocr
reader = easyocr.Reader(['ko', 'en']) # 한국어 + 영어 지원
result = reader.readtext("chart.png")
for bbox, text, prob in result:
print(f"인식 텍스트: {text} (정확도: {prob:.2f})")
전처리: 해상도 개선, 노이즈 제거, 대비 조정 → 인식률 향상
레이아웃 보존: 표·폼은 구조 정보 유지가 중요
다국어 처리: OCR 엔진에 언어 옵션 지정 (lang='kor+eng')
후처리: OCR 결과를 LLM에 넣어 오타·형식 보정 → 검색 품질 향상
메타데이터 저장: OCR 추출 위치(좌표), 페이지 번호를 함께 저장 → 재검증 가능