2024-03-20 00:08:07

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