본문 바로가기
Nodejs

[NodeJs] tesseract를 활용한 OCR

by 동복이 2024. 3. 20.

github를 돌아다니며 프로젝트를 구경하는 도중 재밌어 보이는 패키지를 찾아 간단하게 구현해 보겠습니다.

 

OCR이란?

Optical Character Recognition의 약자로 이미지나 문서의 문자를 인식하는 기술을 말합니다.

이 기술을 사용하여 문자를 추출하여 디지털 형식의 텍스트로 변환할 수 있으며 OCR 기술은 자동화된 데이터 입력, 문서 스캐닝 및 인덱싱, 번호판 인식 등 다양한 분야에 사용됩니다.

 

Tesseract 사용

Tesseract는 OCR 기술을 구현한 라이브러리로 웹브라우저 또는 Node 환경에서 실행될 수 있으며 여러 언어를 지원합니다.

여러 OCR 라이브러리가 있지만 Tesseract가 가장 인기 있어 해당 라이브러리를 사용해 보겠습니다.

 

Tesseract 설치

npm install tesseract.js

 

실습하기

// tesseractModule.js
const { createWorker } = require("tesseract.js");

const tesseractModule = async (url) => {
  try {
    const worker = await createWorker("kor+eng"); // 한국어와 영어를 인식하도록 설정
    const {
      data: { text },
    } = await worker.recognize(url); // 주어진 URL의 이미지에서 텍스트를 인식
    await worker.terminate(); // 작업 종료
    return text;
  } catch (error) {
    console.error(error);
  }
};

module.exports = tesseractModule;
// app.js
const express = require("express");
const app = express();
const tesseractModule = require("./tesseractModule");

app.use(express.json());

app.get("/", async (req, res) => {
  try {
    const url = "./ocr_test.png"; // 인식할 이미지 경로 정의
    const text = await tesseractModule(url); // 이미지에서 텍스트를 인식
    res.json({ text });
  } catch (error) {
    console.error(error);
  }
});

app.listen(8080, () => {
  console.log("server on");
});

 

사용한 이미지

 

추출된 텍스트

 

가장 인기 있는 라이브러리라고 하여 사용해 봤습니다만 간간히 오타가 보이는 것으로 보아 완전히 신뢰할 수 있는 건 아닌 거 같습니다.

그래도 재미있는 라이브러리를 발견한 거 같아 좋았고 다른 재미있는 라이브러리가 있다면 정리해 보겠습니다.

728x90