광학 문자 인식(OCR)은 텍스트 이미지(스캔, 스마트폰 사진, PDF)를 기계가 읽을 수 있는 문자열로, 그리고 점점 더 구조화된 데이터로 변환합니다. 최신 OCR은 이미지를 정리하고, 텍스트를 찾고, 읽고, 풍부한 메타데이터를 내보내는 파이프라인으로, 다운스트림 시스템이 필드를 검색, 색인 또는 추출할 수 있도록 합니다. 널리 사용되는 두 가지 출력 표준은 hOCR, 텍스트 및 레이아웃을 위한 HTML 마이크로포맷, 및 ALTO XML, 도서관/기록 보관소 지향 스키마입니다. 둘 다 위치, 읽기 순서 및 기타 레이아웃 단서를 보존하며 다음과 같은 인기 있는 엔진에서 지원됩니다. Tesseract.
전처리. OCR 품질은 이미지 정리부터 시작됩니다: 그레이스케일 변환, 노이즈 제거, 임계값 처리(이진화) 및 기울기 보정. 표준 OpenCV 튜토리얼은 전역, 적응형 및 Otsu 임계값 처리를 다룹니다. 이는 불균일한 조명이나 이중 모드 히스토그램이 있는 문서의 필수 요소입니다. 페이지 내에서 조명이 달라지면 (휴대폰 사진을 생각해보세요), 적응형 방법이 단일 전역 임계값보다 성능이 뛰어난 경우가 많습니다. Otsu는 히스토그램을 분석하여 자동으로 임계값을 선택합니다. 기울기 보정도 마찬가지로 중요합니다: Hough 기반 기울기 보정(Hough 라인 변환)과 Otsu 이진화를 함께 사용하면 프로덕션 전처리 파이프라인에서 일반적이고 효과적인 방법입니다.
탐지 대 인식. OCR은 일반적으로 텍스트 탐지(텍스트는 어디에 있는가?)와 텍스트 인식(무슨 내용인가?)으로 나뉩니다. 자연스러운 장면과 많은 스캔에서 완전 컨볼루션 탐지기 같은 EAST 는 무거운 제안 단계 없이 단어 또는 줄 수준의 사각형을 효율적으로 예측하며 일반적인 툴킷(예: OpenCV의 텍스트 탐지 튜토리얼)에 구현되어 있습니다. 복잡한 페이지(신문, 양식, 책)에서는 줄/영역의 분할과 읽기 순서 추론이 중요합니다:Kraken 은 전통적인 영역/줄 분할과 신경망 기준선 분 할을 구현하며, 다양한 스크립트와 방향(LTR/RTL/수직)을 명시적으로 지원합니다.
인식 모델. 고전적인 오픈 소스 주력 제품인 Tesseract (HP에서 시작하여 Google이 오픈 소스로 공개)는 문자 분류기에서 LSTM 기반 시퀀스 인식기로 발전했으며 검색 가능한 PDF, hOCR/ALTO 친화적인 출력등을 CLI에서 내보낼 수 있습니다. 최신 인식기는 미리 분할된 문자 없이 시퀀스 모델링에 의존합니다. 연결주의적 시간 분류(CTC) 는 입력 특징 시퀀스와 출력 레이블 문자열 간의 정렬을 학습하는 기본으로 남아 있으며, 필기 및 장면 텍스트 파이프라인에서 널리 사용됩니다.
지난 몇 년 동안 Transformer는 OCR을 재구성했습니다. TrOCR 은 비전 Transformer 인코더와 텍스트 Transformer 디코더를 사용하며, 대규모 합성 코퍼스에서 훈련한 다음 실제 데이터로 미세 조정하여 인쇄, 필기 및 장면 텍스트 벤치마크에서 강력한 성능을 보입니다(참조: Hugging Face 문서). 병행하여 일부 시스템은 다운스트림 이해를 위해 OCR을 건너뜁니다: Donut(문서 이해 Transformer) 은 문서 이미지에서 직접 구조화된 답변(키-값 JSON 등)을 출력하는 OCR 없는 인코더-디코더입니다(리포지토리, 모델 카드), 별도의 OCR 단계가 IE 시스템에 공급될 때 오류 누적을 방지합니다.
많은 스크립트에서 바로 사용할 수 있는 텍스트 읽기를 원한다면 EasyOCR 은 80개 이상의 언어 모델과 함께 간단한 API를 제공하여 상자, 텍스트 및 신뢰도를 반환하므로 프로토타입과 비라틴 스크립트에 유용합니다. 역사적 문서의 경우 Kraken 은 기준선 분할 및 스크립트 인식 읽기 순서로 뛰어납니다. 유연한 줄 수준 훈련을 위해 Calamari 는 Ocropy 계보를 기반으로 합니다(Ocropy) (다중)LSTM+CTC 인식기와 사용자 지정 모델 미세 조정을 위한 CLI가 있습니다.
일반화는 데이터에 달려 있습니다. 필기의 경우 IAM 필기 데이터베이스 는 훈련 및 평가를 위해 다양한 필체의 영어 문장을 제공합니다. 이는 줄 및 단어 인식을 위한 오랜 참조 세트입니다. 장면 텍스트의 경우 COCO-Text 는 MS-COCO 위에 광범위한 주석을 계층화했으며, 인쇄/필기, 읽기 가능/읽기 불가능, 스크립트 및 전체 전사에 대한 레이블이 있습니다(원본 프로젝트 페이지참조). 이 분야는 또한 합성 사전 훈련에 크게 의존합니다: SynthText in the Wild 는 사실적인 기하학과 조명으로 사진에 텍스트를 렌더링하여 사전 훈련 탐지기 및 인식기를 위한 방대한 양의 데이터를 제공합니다(참조: 코드 및 데이터).
ICDAR의 강력한 읽기 산하의 대회는 평가를 현실에 기반하게 합니다. 최근 과제는 종단 간 탐지/읽기를 강조하며 단어를 구문으로 연결하는 것을 포함하며, 공식 코드 보고 정밀도/재현율/F-점수, 교차 오버 유니온 (IoU) 및 문자 수준 편집 거리 메트릭—실무자가 추적해야 할 사항을 반영합니다.
OCR은 일반 텍스트로 끝나는 경우가 거의 없습니다. 아카이브 및 디지털 도서관은 ALTO XML 을 선호합니다. 왜냐하면 콘텐츠와 함께 물리적 레이아웃(좌표가 있는 블록/줄/단어)을 인코딩하고 METS 패키징과 잘 어울리기 때문입니다. hOCR 마이크로포맷은 대조적으로 ocr_line 및 ocrx_word와 같은 클래스를 사용하여 동일한 아이디어를 HTML/CSS에 포함시켜 웹 도구로 쉽게 표시, 편집 및 변환할 수 있도록 합니다. Tesseract는 둘 다 노출합니다. 예를 들어 CLI에서 직접 hOCR 또는 검색 가능한 PDF 생성(PDF 출력 가이드); pytesseract 와 같은 Python 래퍼는 편의성을 더합니다. 리포지토리에 고정된 수집 표준이 있을 때 hOCR과 ALTO 간에 변환하는 변환기가 있습니다. 이 선별된 목록을 참조하십시오. OCR 파일 형식 도구.
가장 강력한 추세는 융합입니다: 탐지, 인식, 언어 모델링, 심지어 작업별 디코딩까지 통합된 Transformer 스택으로 통합되고 있습니다. 대규모 합성 코퍼스 에서의 사전 훈련은 여전히 힘의 승수입니다. OCR 없는 모델은 대상이 글자 그대로의 전사가 아닌 구조화된 출력인 곳이면 어디에서나 공격적으로 경쟁할 것입니다. 하이브리드 배포도 기대하십시오: 긴 형식 텍스트를 위한 경량 탐지기 + TrOCR 스타일 인식기, 그리고 양식 및 영수증을 위한 Donut 스타일 모델.
Tesseract (GitHub) · Tesseract 문서 · hOCR 사양 · ALTO 배경 · EAST 탐지기 · OpenCV 텍스트 탐지 · TrOCR · Donut · COCO-Text · SynthText · Kraken · Calamari OCR · ICDAR RRC · pytesseract · IAM 필기 · OCR 파일 형식 도구 · EasyOCR
광학 문자 인식 (OCR)은 스캔된 종이 문서, PDF 파일 또는 디지털 카메라로 촬영된 이미지와 같은 다양한 유형의 문서를 편집 가능하고 검색 가능한 데이터로 변환하는데 사용되는 기술입니다.
OCR은 입력 이미지 또는 문서를 스캔하고, 이미지를 개별 문자로 분할하고, 패턴 인식 또는 특징 인식을 사용하여 각 문자를 문자 모양의 데이터베이스와 비교하는 방식으로 작동합니다.
OCR은 인쇄된 문서를 디지털화하고, 텍스트를 음성 서비스를 활성화하고, 데이터 입력 과정을 자동화하며, 시각 장애 사용자가 텍스트와 더 잘 상호작용하도록 돕는 등 다양한 부문과 응용 프로그램에서 사용됩니다.
OCR 기술에는 큰 발전이 있었지만, 완벽하지는 않습니다. 원본 문서의 품질과 사용 중인 OCR 소프트웨어의 특정사항에 따라 정확성이 달라질 수 있습니다.
OCR은 주로 인쇄된 텍스트에 대해 설계되었지만, 일부 고급 OCR 시스템은 분명하고 일관된 필기를 인식할 수도 있습니다. 그러나 일반적으로 필기체 인식은 개개인의 글씨 스타일에 있는 넓은 차이 때문에 덜 정확합니다.
네, 많은 OCR 소프트웨어 시스템은 여러 언어를 인식할 수 있습니다. 그러나, 특정 언어가 사용 중인 소프트웨어에 의해 지원되는지 확인하는 것이 중요합니다.
OCR은 광학 문자 인식을 의미하며 인쇄된 텍스트를 인식하는데 사용되는 반면, ICR은 Intelligent Character Recognition의 약자로서 필기 텍스트를 인식하는데 사용되는 더 고급스러운 기술입니다.
OCR은 명확하고 읽기 쉬운 글꼴과 표준 텍스트 크기와 가장 잘 작동합니다. 다양한 글꼴과 크기로 작업할 수 있지만, 특이한 글꼴이나 매우 작은 텍스트 크기를 처리할 때 정확도가 떨어질 수 있습니다.
OCR은 해상도가 낮은 문서, 복잡한 폰트, 인쇄 상태가 좋지 않은 텍스트, 필기체, 텍스트와 방해되는 배경을 가진 문서 등에 대해 어려움을 겪을 수 있습니다. 또한, 많은 언어를 처리할 수 있지만 모든 언어를 완벽하게 커버하지는 않을 수 있습니다.
네, OCR은 컬러 텍스트와 배경을 스캔할 수 있지만, 일반적으로 검은색 텍스트와 흰색 배경과 같은 높은 대비 색상 조합에서 더 효과적입니다. 텍스트와 배경색이 충분히 대비를 이루지 못할 때 정확성이 감소할 수 있습니다.
JNG(JPEG 네트워크 그래픽스) 포맷은 널리 알려진 MNG(멀티 이미지 네트워크 그래픽스) 포맷의 하위 포맷으로 설계된 이미지 파일 포맷입니다. 주로 생성 당시 JPEG나 PNG와 같은 다른 일반적인 포맷에서는 불가능했던 단일 이미지 포맷 내에서 무손실 및 유손 압축에 대한 솔루션을 제공하기 위해 개발되었습니다. JNG 파일은 일반적으로 표준 JPEG 이미지에서 지원되지 않는 투명도를 위한 고품질 사진 스타일 표현과 선택적 알파 채널이 모두 필요한 이미지에 사용됩니다.
JNG는 독립적인 포맷이 아니라 PNG의 애니메이션 버전이 되도록 설계된 MNG 파일 포맷 제품군의 일부입니다. MNG 제품군에는 MNG와 JNG 포맷이 모두 포함되어 있으며, MNG는 애니메이션을 지원하고 JNG는 단일 이미지 포맷입니다. JNG 포맷은 PNG 포맷을 개발한 것과 동일한 팀에서 만들었으며, PNG를 보완하여 JPEG 압축 색상 데이터를 추가하면서도 PNG가 지원하지만 JPEG가 지원하지 않는 별도의 알파 채널을 유지할 수 있도록 의도되었습니다.
JNG 파일의 구조는 MNG 파일의 구조와 유사하지만 단일 이미지에만 사용되도록 의도되어 있으므로 더 간단합니다. JNG 파일은 각각 특정 유형의 데이터를 포함하는 일련의 청크로 구성됩니다. JNG 파일에서 가장 중요한 청크는 헤더 정보를 포함하는 JHDR 청크, JPEG 압축 이미지 데이터를 포함하는 JDAT 청크, JPEG 데이터 스트림의 끝을 나타내기 위해 존재할 수 있는 JSEP 청크, 선택적이며 PNG 압축 알파 데이터를 포함하는 IDAT 청크 또는 JPEG 압축 알파 데이터를 포함하는 JDAA 청크인 알파 채널 청크입니다.
JHDR 청크는 JNG 파일의 첫 번째 청크이며 이미지의 속성을 정의하기 때문에 중요합니다. 이미지의 너비와 높이, 색상 깊이, 알파 채널이 있는지 여부, 사용된 색상 공간, 알파 채널의 압축 방법과 같은 정보가 포함됩니다. 이 청크를 통해 디코더는 파일 내 후속 데이터를 처리하는 방법을 이해할 수 있습니다.
JDAT 청크에는 JPEG 표준 압축 기법을 사용하여 압축된 실제 이미지 데이터가 포함됩니다. 이 압축을 통해 종종 복잡한 색상 그라디언트와 미묘한 색조 변화가 포함된 사진 이미지를 효율적으로 저장할 수 있습니다. JNG 내의 JPEG 압축은 독립적인 JPEG 파일에서 사용되는 것과 동일하여 표준 JPEG 디코더가 전체 JNG 포맷을 이해하지 않고도 JNG 파일에서 이미지 데이터를 읽을 수 있습니다.
JNG 이미지에 알파 채널이 있는 경우 IDAT 또는 JDAA 청크에 저장됩니다. IDAT 청크는 PNG 파일에 사용되는 것과 동일하며 PNG 압축 알파 데이터를 포함합니다. 이를 통해 알파 채널을 무손실 압축하여 품질 손실 없이 투명도 정보가 보존됩니다. 반면 JDAA 청크는 JPEG 압축 알파 데이터를 포함하며, 이를 통해 알파 채널에서 잠재적인 유손 압축 아티팩트를 희생하면서 더 작은 파일 크기를 얻을 수 있습니다.
JSEP 청크는 JPEG 데이터 스트림의 끝을 알리는 선택적 청크입니다. JNG 파일이 네트워크를 통해 스트리밍되고 디코더가 JPEG 데이터 읽기를 중지하고 알파 채널 데이터를 찾기 시작해야 할 때를 알아야 하는 경우에 유용합니다. 파일이 JPEG 데이터의 끝을 파일 구조 자체에서 확인할 수 있는 로컬 저장 매체에서 읽히는 경우 이 청크는 필요하지 않습니다.
JNG는 또한 임베디드 ICC 색상 프로필을 포함하는 ICCP 청크를 포함하여 색상 보정을 지원합니다. 이 프로필을 통해 다양한 기기에서 정확한 색상 표현이 가능하며, 다양한 화면에서 보거나 인쇄할 이미지에 특히 중요합니다. 색상 관리 기능이 포함된 것은 독립적인 JPEG 파일에는 본질적으로 임베디드 색상 프로필이 지원되지 않는 것에 비해 JNG 포맷의 상당한 이점입니다.
그 기능에도 불구하고 JNG 포맷은 널리 채택되지 않았습니다. 이는 부분적으로 사진 이미지에 대한 JPEG 포맷의 지배력과 투명도가 필요한 이미지에 대한 PNG 포맷의 지배력 때문입니다. 게다가 유손 및 무손실 압축과 투명도를 모두 지원하는 WebP 및 HEIF와 같은 포맷의 등장으로 JNG와 같은 별도의 포맷에 대한 필요성이 더욱 줄어들었습니다. 그러나 JNG는 고유한 기능 조합이 필요한 특정 사용 사례에 대한 실행 가능한 옵션으로 남아 있습니다.
JNG가 널리 채택되지 않은 이유 중 하나는 MNG 파일 포맷 제품군의 복잡성입니다. JNG 자체는 비교적 간단하지만 널리 구현되지 않은 더 크고 복잡한 사양 세트의 일부입니다. 많은 소프트웨어 개발자는 대신 더 간단하고 인기 있는 JPEG 및 PNG 포맷을 지원하기로 선택했으며, 이는 MNG 및 JNG의 추가적인 복잡성 없이 대부분 사용자의 요구 사항을 충족했습니다.
JNG 채택을 제한한 또 다른 요인은 인기 있는 이미지 편집 및 보기 소프트웨어에서 지원되지 않는 것입니다. 일부 특수 소프트웨어는 JNG를 지원할 수 있지만 가장 일반적으로 사용되는 프로그램 중 다수는 지원하지 않습니다. 이러한 지원 부족으로 인해 사용자와 개발자가 JNG 파일을 접하거나 사용할 가능성이 낮아져 시장에서의 존재감이 더욱 약화됩니다.
이러한 과제에도 불구하고 JNG는 특히 기술적 기능을 높이 평가하는 사람들 사이에서 지지자들이 있습니다. 예를 들어, JNG는 단일 파일에 고품질 사진 이미지와 투명도를 위한 별도의 알파 채널이 모두 포함되어야 하는 애플리케이션에서 유용할 수 있습니다. 이는 그래픽 디자인, 게임 개발, 이미지를 다양한 배경에 합성해야 하는 다른 분야에서 중요할 수 있습니다.
JNG의 기술적 설계는 파일 크기와 품질에서 잠재적인 최적화를 가능하게 합니다. 예를 들어, 색상과 알파 데이터를 분리하면 각각에 다른 수준의 압축을 적용하여 파일 크기와 이미지 품질 간의 최적의 균형을 최적화할 수 있습니다. 이를 통해 PNG와 같은 포맷에서와 같이 전체 이미지에 단일 압 축 방법을 적용하는 경우보다 더 작은 파일을 생성할 수 있습니다.
결론적으로 JNG 이미지 포맷은 유손 및 무손실 압축 지원, 투명도를 위한 선택적 알파 채널, 색상 관리 기능을 포함한 고유한 기능 조합을 제공하는 특수 파일 포맷입니다. 널리 채택되지는 않았지만 특정 애플리케이션에 적합할 수 있는 기술적으로 유능한 포맷으로 남아 있습니다. 향후 관련성은 해당 기능에 대한 관심이 새롭게 생기고 포맷에 대한 소프트웨어 지원이 확장되는지 여부에 따라 달라질 가능성이 높습니다. 현재로서는 JNG는 이미지 포맷의 지속적인 진화와 압축, 품질, 기능의 완벽한 균형을 찾는 과정을 증명하는 것입니다.