포스트

[JAVA] Tesseract OCR spring 세팅

1. 환경

  • windows 11
  • java JDK 17
  • springboot 3.11

2. Tesseract

Tesseract는 Apache 2.0 라이선스에 따라 사용할 수 있는 오픈 소스 텍스트 인식(OCR) 엔진이다.
메인 버전인 Tesseract 5는 현재 안정적인 버전이며 5.0.0은 2021.11.30에 release되었다. 이를 활용해서 spring에 OCR을 구현하는 예제를 만들어보겠다.

OCR(Optical Character Recognition)
광학 문자 인식을 일컫는다. 사람이 쓰거나 기계로 인쇄한 문자의 영상을 이미지 스캐너로 획득하여 기계가 읽을 수 있는 문자로 변환하는 기술

2.1. Tesseract 설치

Tesseract 다운로드 페이지

windows 설치 페이지이므로 다른 운영체제는 tesseract 페이지에서 찾아주면 된다

image

한글 인식이 필요하면 추가 언어에서 체크해주어야 한다

image 기본 설치 위치

아래 환경 변수 설정을 위해 설치 경로를 알아두어야 한다

2.2. 환경 변수 설정

TESSDATA_PREFIX 추가

C:\Program Files\Tesseract-OCR\tessdata\

path에 추가

C:\Program Files\Tesseract-OCR\

3. Spring Project 세팅

자바에서는 Tesseract를 사용하기 위해서는 추가 의존성이 필요하다 바로 tess4j 이다 이걸 추가해 주면 자바에서도 사용할 수 있게 된다

의존성 추가를 위해 Dependency 설정

1
2
3
4
5
6
7
8
9
// gradle - build.gradle
implementation'net.sourceforge.tess4j:tess4j:5.7.0'

// maven - pom.xml
<dependency>
    <groupId>net.sourceforge.tess4j</groupId>
    <artifactId>tess4j</artifactId>
    <version>5.7.0</version>
</dependency>

4. 간단한 예제

4.1. sample 이미지

example example.com

4.2. spring 코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
package com.trulyeven.wocr.controller;

import java.io.File;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;

import net.sourceforge.tess4j.*;

@Controller
public class TransController {

	@GetMapping("trans")
	public String trans() {
		
		File imageFile = new File("C:/Users/example.png");  // 이미지 파일 경로
		ITesseract instance = new Tesseract();
        instance.setDatapath("C:/Program Files/Tesseract-OCR/tessdata"); // tessdata directory 경로
        instance.setLanguage("kor+eng");  // 한글과 영어 인식 설정
        try {
            String result = instance.doOCR(imageFile);
            System.out.println(result);
        } catch (TesseractException e) {
            System.err.println(e.getMessage());
        }
        
		return "trans";
	}
}

4.3. 실행 결과

image d를 못생기게 써서 ol로 인식됨


참고

tesseract github 페이지
tess4j.sourceforge.net

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.