[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 설치
windows 설치 페이지이므로 다른 운영체제는 tesseract 페이지에서 찾아주면 된다
한글 인식이 필요하면 추가 언어에서 체크해주어야 한다
아래 환경 변수 설정을 위해 설치 경로를 알아두어야 한다
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 이미지
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. 실행 결과
참고
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.