스캔 이미지 및 양식에서 텍스트를 파싱하기 위한 무료 JavaScript 라이브러리
웹 또는 Node.js 앱에서 이미지 전처리와 템플릿 지원을 통해 흑백 스캔 이미지 및 문서에서 텍스트를 파싱하는 오픈 소스 광학 문자 인식(OCR) JavaScript 라이브러리.
현대 디지털 세계에서 광학 문자 인식(OCR) 기술은 스캔된 이미지, 손글씨 메모 또는 인쇄된 문서를 편집 가능하고 검색 가능한 데이터로 변환하는 데 중요한 역할을 합니다. 가볍고 오픈 소스 솔루션을 찾는 JavaScript 개발자에게 Guten OCR은 매력적인 선택지를 제공합니다. 이 JavaScript 기반 OCR 엔진은 단순성을 염두에 두고 설계되어 브라우저 기반 또는 Node.js 애플리케이션에 OCR 기능을 직접 삽입하기에 이상적입니다. 템플릿을 통한 문자 인식, 이미지 임계값 설정 및 이진화, 문자 분할, 템플릿 매칭 및 텍스트 조합, 모듈식 코드베이스 지원 등 여러 중요한 기능이 포함되어 있습니다. 흑백 스캔 문서에서 인쇄된 텍스트를 인식하는 데 초점을 맞추며, 책이나 양식과 같이 형식이 잘 잡힌 텍스트에 가장 적합합니다.
Guten OCR은 Gutenye가 만든 오픈 소스 JavaScript OCR 엔진입니다. 외부 종속성이나 복잡한 설정이 필요한 무거운 OCR 도구와 달리 Guten OCR은 완전히 JavaScript로 작성되어 웹 브라우저나 Node.js 서버에서 실행될 수 있습니다. 라이브러리는 기본 이미지 처리 기술을 사용해 문자를 분할하고 문자 패턴 인식 시스템으로 식별합니다. 다국어 또는 손글씨 지원 측면에서 아직 Tesseract와 같은 상용 OCR 엔진에 경쟁하지 못하지만, 단순성과 해킹 가능성 덕분에 교육 프로젝트, 개념 증명, 맞춤형 웹 앱에 OCR 기능을 삽입하는 데 훌륭한 선택입니다. Tesseract와 같은 대형 엔진과 달리 Guten OCR은 의도적으로 가볍고 집중된 설계로, OCR이 내부적으로 어떻게 작동하는지 이해하고자 하는 사람들에게 훌륭한 출발점이 됩니다.
Guten OCR 시작하기
Guten OCR을 설치하는 권장 방법은 Brew를 이용하는 것입니다. 원활한 설치를 위해 아래 명령어를 사용하십시오.
Brew를 통해 Guten OCR 설치
brew install git-lfs GitHub를 통해 Guten OCR 설치
git clone git@github.com:gutenye/ocr.git 또는 수동으로 설치할 수도 있습니다; 최신 릴리스 파일을 GitHub 저장소에서 직접 다운로드하십시오.
OCR 작업 전 이미지 전처리
오픈 소스 Guten OCR 라이브러리는 완전히 JavaScript로 작성되어 브라우저와 Node.js 환경 모두에서 사용할 수 있습니다. 인식 정확도를 높이기 위한 내장 이미지 전처리 기능을 포함하고 있습니다. 이미지 이진화(흑백 변환), 노이즈 감소, 기울기 보정 등을 지원합니다. 다음 예제는 개발자가 이미지에 OCR 작업을 수행하기 전에 여러 전처리 단계를 적용하는 방법을 보여줍니다.
JavaScript 라이브러리를 통해 OCR 작업 전 이미지 전처리를 적용하는 방법
const { preprocess } = require('guten-ocr');
// 여러 전처리 단계 적용
const processedImage = preprocess(imageData, [
'grayscale', // 회색조 변환
'binarize', // 흑백 변환
'deskew', // 기울기 보정
'denoise' // 노이즈 감소
]);
// 전처리된 이미지에 OCR 수행
ocr.recognize(processedImage).then(/* ... */);
템플릿을 통한 문자 인식
JavaScript 라이브러리인 Guten OCR은 템플릿을 사용한 OCR 작업을 완벽히 지원합니다. Guten OCR의 핵심은 템플릿 매칭 시스템입니다. 머신 러닝 모델을 훈련시키는 대신 미리 정의된 문자 패턴을 사용합니다. 이 방식은 시스템을 더 빠르고 이해하기 쉽게 만들지만, 폰트와 레이아웃 일관성에 더 민감합니다. 라이브러리는 각 문자(A–Z, a–z, 0–9 등)를 캔버스에 렌더링하고, 각 문자에 대한 이진 매트릭스를 참조 템플릿으로 사용합니다. 이미지를 분석할 때 라이브러리는 이미지 세그먼트를 이러한 템플릿과 비교하여 최적의 매치를 찾습니다. 이를 위해 수직 및 수평 라인 스캔을 결합해 경계 상자를 찾습니다.
OCR 라이브러리를 통한 문자 분할
오픈 소스 JavaScript 라이브러리인 Guten OCR은 개발자가 손쉽게 문자 분할을 수행할 수 있도록 지원합니다. 이미지가 이진화된 후 다음 단계는 개별 문자를 분할하는 것입니다. Guten OCR은 행과 열을 스캔하여 검은 픽셀이 밀집된 영역을 감지하고 이를 잠재적인 문자로 구분합니다. 다음 예제는 개발자가 JavaScript OCR 라이브러리를 사용해 문자 분할을 수행하는 방법을 보여줍니다.
JavaScript 라이브러리를 사용해 문자 분할을 수행하는 방법
const segment = require('guten-ocr/segment');
const boxes = segment(binarized); // [x, y, width, height] 배열 반환