1. 먼저 Tesseract 라이브러리를 불러온다

maven 사이트 접속해서 오늘날짜 기준 가장 최신버전으로 선택했다. 

https://mvnrepository.com/artifact/net.sourceforge.tess4j/tess4j/5.2.0

 

2. pom.xml에 dependency 추가. 

<dependency>
	<groupId>net.sourceforge.tess4j</groupId>
	<artifactId>tess4j</artifactId>
	<version>4.5.2</version>
</dependency>

 

3. 테스트를 위한 Class 생성 ! 

import java.io.File;
import net.sourceforge.tess4j.Tesseract;
import net.sourceforge.tess4j.TesseractException;


public class OcrTest {
		
	 public static void main(String[] args) {
		 try {
		    // 읽어볼 이미지를 가져온다. 
		    File image = new File("경로상생략/res.jpg");

                    Tesseract tesseract = new Tesseract();
                    tesseract.setDatapath("경로상생략/tessdata"); //** 학습된데이터가 있는 폴더를 지정해준다. 
                    tesseract.setLanguage("eng"); // 언어설정 
                    tesseract.setPageSegMode(1); // 페이지 모드 설정
                    tesseract.setOcrEngineMode(1); 
                    // tesseract.setHocr(true); // html로 그려주는 flag
                    String result = tesseract.doOCR(image);
                    System.out.println(result);

		 
		 } catch (TesseractException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		 }
		 
		 
	 }

}

  

 tesseract.setDatapath("경로상생략/tessdata");  이 라인은 tesseract가 이미지를 읽었을때 

비교할 학습된 데이터 파일의 경로를 가르킨다. 

아래 링크에 접속해보면 이미 학습된 데이터를 제공하고 있으므로 내가 하고자 하는 언어를 다운받아서 넣어두면 된다. 

https://github.com/tesseract-ocr/tessdata

 

GitHub - tesseract-ocr/tessdata: Trained models with support for legacy and LSTM OCR engine

Trained models with support for legacy and LSTM OCR engine - GitHub - tesseract-ocr/tessdata: Trained models with support for legacy and LSTM OCR engine

github.com

 

접속해보면 아래와 같은 파일들이 나오는데 앞 글자가 언어를 가르키고 있다. 

 

나는 영문과 중문이 필요하므로 아래 이미지와 같이 구성하였다. 

 

 

테스트로 사용한 이미지 

 

결과 ) 

 

 

결론)

위에 올린 이미지 말고도 여러개의 이미지를 테스트 해보았으나 

연습용 정도의 퀄리티만 나올 뿐, 업무에 적용해보긴 어려울거 같다는 판단이 든다. 

 

어떻게 하면 인식률을 올릴 수 있을까? 

 OpenCV 라이브러리를 이용해 이미지 흑백으로 바꾸고 블러등등.. 을 이용해

이미지를 더 깔끔하게 만들어 준다면  인식하는데 효과가 있다고한다.

OpenCV 적용을 해보도록한다. 

 

* 손글씨는 50% 정도만 인식되는걸로 보임. 

 

'OCR' 카테고리의 다른 글

[JAVA] OpenCV + Tesseract 사용법  (0) 2022.04.08
Java + OpenCV 사용법  (0) 2022.04.08
OCR 알아보기 시작!!  (0) 2022.04.07

+ Recent posts