반응형

오늘은 파이썬(python)을 활용해서 OCR를 사용하는 방법을 알아보겠습니다.

OCR(optical character recognition)은 이미지에 포함된 텍스트 정보를 추출하는 기술입니다.

요즘은 텍스트 정보 추출 기술이 발전되어 AI 기반으로 많이 사용됩니다.

수많은 OCR 제품이 있지만, 무료 사용할 수 있으면서 활용도가 높은 테서랙트(Tesseract)를 사용해서 이미지 텍스트를 추출해보겠습니다.

이번 시간에는 테서랙트(Tesseract)를 설치해서 이미지 텍스트를 추출하는 방법을 알아보겠습니다.

먼저 아래 사이트에서 설치 파일을 다운로드해주세요.

https://github.com/UB-Mannheim/tesseract/wiki

 

UB-Mannheim/tesseract

Tesseract Open Source OCR Engine (main repository) - UB-Mannheim/tesseract

github.com

전 Windows 기준으로 v5.0.0 64bit 버전을 다운로드하였습니다.

설치 파일을 더블 클릭해서 실행해주세요.

별도 선택 필요 없이 "Next" 버튼을 클릭하면 바로 설치됩니다.

설치 경로는 기본적으로 "Program Files" 아래 "Tesseract-OCR" 폴더에 설치됩니다.

먼저 이 경로를 복사해주세요.

이제 테서랙트( Tesseract ) 명령어를 사용하기 위해서 시스템에서 환경 변수를 등록해주세요.

복사한 경로를 시스템 환경 변수 "PATH"에 추가해주세요.

정상적으로 추가되면 "tesseract" 명령어로 내용을 확인할 수 있습니다.

이제 OCR을 테스트하기 위해서 영어 이미지를 만들었습니다.

테서랙트(Tesseract) 데이터 부분을 캡처했습니다.

테서랙트(Tesseract) 기본 명령어는 stdout -l를 사용해서 언어를 선택할 수 있습니다.

tesseract [경로] stdout -l [언어]

tesseract d:\en.jpg stdout -l eng

텍스트 추출 결과 영어이라서 그런지 대부분 텍스트를 정상적으로 추출했습니다.

이번에는 한글을 추출하기 위해서 옵션을 "kor"로 변경했습니다.

이미지도 한글이 포함된 이미지를 생성했습니다.

영어와 동일하게 이미지 경로와 언어만 변경했습니다.

그런데 "Failed loading language 'kor' " 오류가 발생하면서 텍스트 추출이 안됩니다.

확인해보면 테서랙트(Tesseract)는 tessdata 폴더에 포함된 언어 정보를 확인해서 텍스트를 추출하는데 'kor' traineddata가 없어서 발생한 문제입니다.

아래 사이트에서 테서랙트(Tesseract)다양한 언어 정보를 확인할 수 있습니다.

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

 

tesseract-ocr/tessdata

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

github.com

아래쪽으로 스크롤하면 "kor.traineddata" 파일을 확인할 수 있습니다.

클릭하고 다운로드해주세요.

테서랙트(Tesseract) "tessdata" 폴더에 다운로드된 kor 파일을 복사합니다.

한글 텍스트를 추출하기 위해서 다시 명령어를 입력하면 정상적으로 한글 텍스트를 추출하는 것을 확인할 수 있습니다.

이번에는 한글과 영어를 한 번에 확인할 수 있는 이미지를 만들었습니다.

명령어는 기존과 동일하지만 언어 부분에 "kor+eng"로 변경했습니다.

tesseract [경로] stdout -l [언어]

tesseract d:\keng.jpg stdout -l kor+eng
tesseract d:\keng.jpg stdout -l kor+eng > keng.txt

정상적으로 한글, 영어 모두 추출되는 것을 확인할 수 있습니다.

한글, 영어를 분리해서 사용할 경우가 가장 추출 내용이 정확합니다.

한글, 영어를 혼합해서 사용할 경우 유실되는 정보가 조금씩 존재합니다. 

별도 텍스트 파일로 저장하고 싶다면 ">" 기호를 사용해서 텍스트 파일을 저장할 수 있습니다.

테서랙트(Tesseract)는 다양한 이미지 정보에 포함된 텍스트 정보를 추출할 수 있는 좋은 모듈입니다.

무료 사용도 가능하고 다양한 언어를 추출할 수 있기 때문에 더욱더 편리합니다.

다음 시간에는 테서랙트(tesseract)를 이용한 파이썬(python) 코드를 알아보겠습니다.

감사합니다.

반응형

+ Recent posts