티스토리 뷰
Teseract
- OCR(광학 문자 인식) 오픈 소스 라이브러리인 Tesseract 에 대해서 알아보겠습니다.
- Tesseract 란 다양한 OS를 지원하기 위한 OCR 엔진으로. Free Software이고 Apache 라이선스이다. 2006년에 부터 Google의 지원을 받았다.
영상 인식 알고리즘
- 영상 인식 알고리즘은 크게 2가지로 나뉜다.
1. Preprocessor
- 최초 들어온 이미지를 처리하기 위해 히스토그램 스트레칭과 히스토그램 평활화, 이진화 작업과 역상 작업을 통하여 보다 효율적인 출력물을 얻기 위한 전처리 작업이다.
- 영상인식 전처리 작업으로는 히스토그램, 이치화, 역상화 작업을 거친다.
1) 히스토그램
2) 이치화
3) 역상
2. Segmentation
- Preprocessor 작업을 거친 뒤 이미지에서 글자 단위로 혼합의 Text를 분류하는 Segmantation 작업이 이루어진다.
Tesseract 원리
- Tesseract 는 오프라인 문자인식 기법으로 입력된 input 이미지의 특징점을 추출하고 그 특징점을 사용하여 문자를 인식한다.
- Tesseract OCR은 기본적으로 상위의 preprocessor 와 segmentation 과정을 거쳐 나온 이미지를 신경망 기법과 template matching 기법을 사용하여 input 이 미지를 인식하고 출력하게 된다.
- 문자의 특징점을 추출하는 방법은 원래의 image 에 out line 을 생성한 후에 방향성을 정하고 방향성에 따라 다각형에 근접하게 추출하게 된다.
- 아래와 같이 말이다.
- 위와 같이 문자의 특징점이 추출되면 Tesseract 데이터 베이스 검색을 통하여 특징점이 비슷한 문자들과의 Template Matching을 통해 특징점과 원본 이미지와의 오차율이 가장 낮은 문자를 선택하게 된다.
- 이때 input 이미지의 문자와의 오차율을 Tesseract Template에 저장하여 Training 시킴으로써 보다 나은 효울을 증가시킨다.
Training
- Tessearct는 인식률 향상을 위해서 Training 데이터를 적용할 수 있습니다.
- 미리 학습 시켜놓은 데이터 들은 아까 잠깐 언급 했던 Tessearct 데이터 베이스에 저장되어 나중에 글자와 트레이닝 데이터와 유사율을 비교하여 인식 결과를 반환하게 되는 것입니다.
- 트레이닝 방법은 아래의 사이트들을 참고하시기 바랍니다.
참고해서 쓴 것이라 부족한 내용이 많습니다. 이해 부탁드립니다.
관련글
참고
Training에 대한 문서 : https://github.com/tesseract-ocr/tesseract/wiki/TrainingTesseract
언어별 Training 데이터 : https://github.com/tesseract-ocr/langdata
Custom Training 방법 : http://www.resolveradiologic.com/blog/2013/01/15/training-tesseract/, http://kyubuem.tistory.com/53
출처 : https://en.wikipedia.org/wiki/Tesseract_(software),
끝으로
이 글이 도움이 되었다면, Google 광고 한번씩 클릭 부탁 드립니다. 🙏🙏🙏
광고 클릭은 많은 힘이 됩니다!
반응형
'프로그래밍 > Android' 카테고리의 다른 글
Android 오디오 파일 재생 기능 구현 방법 (0) | 2016.11.03 |
---|---|
(Android) 광학 문자 인식 라이브러리 Tesseract OCR(tess-two) 사용방법 (2) | 2016.11.01 |
(Android) Dialog Fragment 구현 방법 및 예제 (0) | 2016.10.26 |
(Android) Tmap 경로 API를 통해 (출발, 도착)경로 Point 리스트 가져오기 (3) | 2016.10.25 |
(Android) Activity Screen 세로 혹은 가로 화면 고정하는 방법 (0) | 2016.10.03 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- 일본 자전거 여행
- 이펙티브
- 배낭여행
- 일본 배낭여행
- 자바
- windows
- JavaFX Table View
- java
- 스프링부트
- JavaFX 종료
- 일본여행
- 배낭 여행
- 일본 여행
- 텐트
- git
- springboot
- 자전거 여행
- intelij
- Java UI
- JavaFX Window Close
- JavaFX 테이블뷰
- 인텔리제이
- 이펙티브 자바
- effectivejava
- TableView
- 방통대 과제물
- 이펙티브자바
- effective java
- 자전거
- JavaFX
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 30 |
글 보관함