파이썬 Tesseract - OCR 활용 설명
실무에서 머신러닝을 활용한 프로젝트를 진행하게 되었습니다. 우선 이미지에서 한글 및 영문을 텍스트를
출력 후 -> 데이터 정제 -> 기계학습 -> 데이터 확인 순으로 평범하게 진행할 예정입니다.
그에 맞게 관련된 내용을 블로그에 정리하려고 합니다. 오늘은 첫 번째 시간으로 오픈소스 OCR 제품인
Tesseract를 활용해서 이미지에서 텍스트를 추출하는 내용을 포스팅 합니다.
5회 정도의 포스팅으로 연재를 이어나갈 예정이며, 하단의 예제를 쉽게 따라하실 수 있게 정리하겠습니다.
Tessaract - 다운로드 및 설치
우선 Tessaract 를 자신의 운영체제에 맞는 버전으로 다운로드 합니다. - Tessaract 다운로드
본 설정은 Windows10 (x64)에서 설정했습니다.
제가 설치한 버전은 tesseract-ocr-w64-v4.0.0-beta 입니다.
참고로 Tessaract는 다양한 언어를 지원합니다. (Java, Golang, Ruby, Python 등)
사이트 접속 후 운영체제에 맞게 다운로드 후 설치
해주세요.
실제 설치 완료 확인
설치시에 반드시 본인이 추출하고자 하는 언어팩
을 같이 설치 해주세요.(상단 이미지 참조)
설치시에 언어팩을 선택해 주시면 좋습니다. (영문은 기본)
만약에 추가로 언어팩을 설치할 경우 - 언어팩 다운로드
설치 완료 후 사용 OS에 맞게 반드시 환경변수
에 경로를 등록해야 합니다.(윈도우, 맥, 리눅스 등)
최종 설치 완료 확인
설치 완료 후 커맨드라인에서 tesseract 실행 후 기본 내용이 출력되면 정상적으로 설치 된 것 입니다.
Tessaract - 추출 샘플 이미지 준비
영문 샘플 이미지
한글+영문 샘플 이미지
한글 샘플 이미지
Tessaract - OCR 이미지 텍스트 추출 테스트
이미지가 있는 폴더로 이동 후 커맨드 라인에서 우선 추출해 봅니다. 다음 포스팅에서 파이썬을 활용해서 코드상으로 추출 전에 정확하게 OCR 기능이 작동하는지 우선 테스트 해보는 과정입니다.tesseract
명령어 실행 후 옵션
값 들의 세부 조정을 통해서 이미지내 텍스트 인식률을 높일 수 있으므로,
많은 테스트가 필요합니다.
단, 영문일 경우 거의 95% 이상의 정확도있게 추출하는 것을 확인할 수 있습니다.
한글 일 경우에는 preserve_interword_spaces
및 psm
옵션 설정을 통해서 정확도를 높일 수 있습니다.
아래 제가 테스트한(하단 이미지 참조) 명령어는 추출한 내용을 텍스트파일로 저장하는 실행구문입니다.
psm
(Page Segmentation modes)에 관한 상세 설명은 여기 를 참조해주세요.
기본 사용 법 : tesseract -c 옵션 추출할 이미지 stdout -l 언어옵션(kor, eng, kor+eng 등) > 텍스트파일명
예1) : tesseract -c preserve-interword_spaces=1 kor.png stdout -l kor > kor.txt
예2) : tesseract --psm 모드번호 -c preserve-interword_spaces=1 kor.png stdout -l kor > kor.txt
실제 추출 화면(영문)
실제 추출 화면(한글)
실제 실행 화면(한글+영문)
마무리
오늘은 상단에서 순서대로 설명한대로 이미지에서 텍스트를 추출하는 OCR 라이브러리인 tesseract를
설치 후 영문, 한글, 한글+영문 이미지에서 텍스트를 추출해 보는 간단한 테스트를 진행했습니다.
기계학습전 이렇게 데이터를 수집 및 정제하는 과정에 대부분의 시간을 할애하게 되는 경우가 많습니다.
이렇게 이미지에서 추출한 텍스트를 토대로 데이터를 수집해서 대용량 데이터처리를 위해 데이터베이스에
저장할 예정입니다.
다음시간에는 파이썬 코드를 활용해서 폴더에 있는 모든 이미지를 한 번에 추출하는 코드를 작성하겠습니다.
그때 오늘 설치한 tesseract를 사용하게 됩니다.
다음포스팅에서 계속해서 연재를 이어나가도록 하겠습니다. 감사합니다.
'빅데이터 & 분석 > Machine Learning' 카테고리의 다른 글
파이썬(Python) - Scikit Learn 의사결정트리(Decision Tree) 시각화 예제 (8) | 2018.12.14 |
---|---|
파이썬(Python) - 머신러닝 프로젝트(최종) - 나이브 베이즈 스팸 필터링 (26) | 2018.09.23 |
파이썬(Python) - 머신러닝 프로젝트(4) - mLab 호스팅 활용 MongoDB 연동 (4) | 2018.09.09 |
파이썬(Python) - 머신러닝 프로젝트(3) - 문자열 가공 및 TXT 및 CSV 저장 (9) | 2018.07.27 |
파이썬(Python) - 머신러닝 프로젝트(2) - OCR 이미지 문자열 추출(파이썬) (12) | 2018.07.23 |