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
'Nodejs' 카테고리의 다른 글
[NodeJs] multer를 활용한 이미지 업로드 (0) | 2023.09.06 |
---|---|
[NodeJs] Cors와 Axios를 활용한 간단한 게시판 만들기 (0) | 2023.09.06 |
[NodeJs] WebSocket을 활용한 좌석예매 하기 (0) | 2023.09.06 |
[NodeJs] WebSocket을 활용한 채팅방 구현 (0) | 2023.08.31 |
[NodeJs] Sequelize 알아보기 (0) | 2023.08.30 |