대가는 결과를 만든다

OCR 광학 문자 인식 라이브러리 본문

개발/라이브러리,오픈소스,API

OCR 광학 문자 인식 라이브러리

yunzema 2018. 6. 18. 17:56
반응형

Tesseract

다양한 OS를 지원하는 오프라인 OCR 엔진, 무료 오픈소스 라이브러리, 2006부터 구글 지원, c/c++구성

사진 촬영을 해서 이미지를 넘겨주면 분석하는 프로세스 ( 구글 모바일 비전처럼 촬영영상에서 바로 인식하는 것이 아님)


문서 링크 : http://tesseract-ocr.github.io/

라이브러리 링크 : https://github.com/tesseract-ocr/tesseract




인식 알고리즘 2단계

-Preprocessor (전처리 작업) : 최초 들어온 이미지를 히스토그램 (스트레칭, 평활화), 이진화(이치화), 역상 작업.

* 이치화 : 흰색·검은색의 2치데이터로 이루어진 2치영상으로 변환


-Segmentation : 이미지에서 글자 단위로 Text 분류



원리

preprocessor, segmentation 과정을 거쳐 나온 이미지를 신경망 기법, template matching 기법을 사용해 이미지를 인식하고 출력.


즉, 이미지를 단순화하여 문자의 특징점이 추출되면 Tesseract DB 검색을 통해 특징점이 비슷한 문자들과의 Template Matching을 통해 특징점과 원본 이미지와의 오차율이 가장 낮은 문자를 선택


이때 이미지와 원본 문자와의 오차율을 Tesseract Template에 저장하여 트레이닝 시킴으로 효율을 증가시킴




트레이닝 참고 링크 및 문서

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



참고 : http://jinseongsoft.tistory.com/41 [진성 소프트]


-속도면에서 좋지않고, 한글 인식률이 낮다고 알려지고 있지만 실제 확인해보진 못함


ABBYY

-실시간 카메라 인식과 이미지에서 인식 모두 지원, 오프라인으로 에셋 데이터에서 비교해 인식함.

-SDK를 다운로드해서 개발.

-한글은 유료 확장버전에서만 지원


링크 : https://rtrsdk.com/

라이센스 : https://rtrsdk.com/licensing/



GOOGLE CLOUD VISION

-600개까지 무료로 지원하며 한글 지원

-온라인으로 사진을 업로드하여 결과값 얻어오는 REST API

-텍스트 인식외에 다양한 이미지 인식 기능 제공

-실제 공홈에 나와있는 자바 클라이언트 라이브러리를 참조하면 안드로이드에서 개발이 불가능했음 => 안드로이드 샘플코드로 제공하는 부분 참고해야함


링크 : https://cloud.google.com/vision/docs/detecting-text


안드로이드 샘플 : https://github.com/GoogleCloudPlatform/cloud-vision/tree/master/android

블로그 튜토리알 참조 : https://code.tutsplus.com/tutorials/how-to-use-the-google-cloud-vision-api-in-android-apps--cms-29009



GOOGLE MOBILE VISION

-온라인이 아닌 오프라인으로 실시간 카메라에서 인식가능

-한글 인식은 지원하지 않음



Comments