Yolo 비전 선전
선전
지금 참여하기
용어집

광학 문자 인식(OCR)

빠르고 정확한 텍스트 감지 및 추출을 위해 AI와 YOLO11 사용하여 이미지와 PDF를 검색 가능하고 편집 가능한 텍스트로 변환하는 OCR의 원리를 알아보세요.

광학 문자 인식(OCR)은 컴퓨터 비전의 기초 기술로, 스캔된 문서, PDF 파일, 도로 표지판 이미지 등 텍스트의 시각적 표현을 기계가 인코딩한 편집 가능한 디지털 텍스트로 변환합니다. 물리적 글씨와 디지털 데이터 사이의 간극을 메움으로써, OCR은 인공지능(AI) 시스템이 기존에는 정적 픽셀에 갇혀 있던 정보를 "읽고" 처리할 수 있게 합니다. 초기 버전들은 경직된 패턴 매칭에 의존했지만, 현대 OCR은 정교한 딥러닝 알고리즘을 활용하여 다양한 서체, 필체 스타일, 잡음이 많은 배경을 높은 정확도로 처리합니다.

OCR 파이프라인

현대 OCR 시스템은 일반적으로 다단계 파이프라인으로 작동하여 원시 이미지 데이터를 구조화된 정보로 변환합니다. 이 과정은 여러 기계 학습 분야를 결합합니다.

  • 이미지 전처리: 텍스트를 읽기 전에 원본 입력 데이터는 품질 향상을 위해 데이터 전처리 과정을 거칩니다. 임계값 처리 (이미지를 흑백 이진 이미지로 변환) 및 노이즈 감소와 같은 기법은 문자 획을 배경에서 분리하는 데 도움이 됩니다.
  • 텍스트 탐지: 이 핵심 단계는 이미지 내에서 텍스트가 포함된 특정 영역을 찾아내는 작업을 포함합니다. 최첨단 Ultralytics 같은 고성능 객체 탐지 모델이 여기서 자주 활용되어 단어나 줄 주위에 경계 상자를 그립니다. 이러한 국소화를 통해 시스템은 비텍스트 시각적 요소를 무시하고 관련 영역에만 집중할 수 있습니다.
  • 텍스트 인식: 지역화된 이미지 세그먼트는 인식 모델로 입력됩니다. 픽셀 패턴을 문자 시퀀스로 해독하기 위한 표준 아키텍처는 특징 추출을 위한 컨볼루션 신경망(CNN)과 시퀀스 모델링을 위한 순환 신경망(RNN) 을 결합한 것입니다.
  • 후처리: 최종 출력은 종종 자연어 처리(NLP) 기법을 사용하여 정제됩니다. 어휘집과 언어 모델은 철자 오류를 수정하고 인식된 텍스트가 의미적으로 타당하도록 보장하여 전반적인 정확도를 향상시킵니다.

실제 애플리케이션

OCR과 다른 AI 분야의 통합으로 다양한 산업 분야에서 광범위한 자동화가 이루어지고 있습니다.

자동 번호판 인식(ANPR)

스마트 도시 인프라에서 OCR은 자동 번호판 인식의 핵심 기술입니다. 객체 감지기가 먼저 영상 프레임 내에서 차량과 번호판을 식별합니다. 이후 OCR 알고리즘이 영숫자 문자를 추출하여 통행료 징수나 보안 감시를 위해 데이터베이스와 교차 참조합니다. 이를 위해서는 고속 교통 데이터를 효과적으로 처리하기 위한 실시간 추론 능력이 필요합니다.

지능형 문서 처리(IDP)

금융 및 법률 분야에서는 스마트 문서 분석을 위해 OCR을 활용합니다. 수동 데이터 입력 대신 AI 시스템이 청구서, 영수증, 계약서를 스캔합니다. OCR을 명명체 인식(NER)과 결합함으로써 이러한 시스템은 날짜, 공급업체명, 총액과 같은 특정 필드를 자동으로 추출할 수 있어 관리적 부담을 크게 줄입니다.

OCR과 관련 용어의 구분

OCR과 이미지 분류를 구분하는 것이 중요합니다. 이미지 분류는 전체 이미지를 범주화하는 반면(예: 이미지를 "문서" 또는 "도로 표지판"으로 라벨링), OCR은 세분화된 방식으로 해당 이미지 특정 문자열을 찾아 식별합니다. 마찬가지로 OCR은 표준 객체 탐지와도 다릅니다. 객체 탐지는"정지 표지판"을 객체 클래스로 인식할 수 있지만, OCR은 표지판에 적힌 "S-T-O-P" 글자를 읽어냅니다.

Ultralytics 활용한 텍스트 탐지

일반적인 워크플로는 YOLO 사용하여 detect 영역을 detect 후 이를 인식 엔진(예: 오픈소스 Tesseract OCR 엔진)으로 전달합니다. 다음 예시는 사전 훈련된 모델을 로드하는 방법을 보여줍니다. Ultralytics YOLO11 모델을 로드하여 일반적으로 번호판이나 교통 표지판과 같이 텍스트를 포함하는 detect 방법을 보여줍니다.

from ultralytics import YOLO

# Load a pre-trained YOLO11 model (often used to locate text regions)
model = YOLO("yolo11n.pt")

# Perform inference on an image containing text objects (e.g., a street sign)
results = model.predict(source="https://ultralytics.com/images/bus.jpg")

# Display detected classes which acts as the first step in an OCR pipeline
for r in results:
    print(f"Detected classes: {r.boxes.cls}")

추가 읽기 및 리소스

초기 OCR 연구를 주도한 기초 데이터셋을 탐구하기 위해 손글씨 숫자MNIST 고전적인 자료입니다. 기술 발전에 관심이 있는 분들에게는 테세라크 프로젝트의 역사가 오픈소스 기여에 대한 통찰력을 제공합니다. Google Vision API와 Amazon Textract 같은 현대적인 클라우드 기반 솔루션은 관리형 OCR 서비스의 최신 기술을 대표합니다. 또한 장면 텍스트 인식 ( Scene Text Recognition ) 연구는 계속해서 한계를 넓혀, AI가 제약 없는 "야생" 환경에서도 텍스트를 읽을 수 있게 합니다.

Ultralytics 커뮤니티 가입

AI의 미래에 동참하세요. 글로벌 혁신가들과 연결하고, 협력하고, 성장하세요.

지금 참여하기