-40일차- OCR(Optical Character Recognition)
23년 이전 글/모두의연구소 아이펠

-40일차- OCR(Optical Character Recognition)

광학 문자 인식

이미지 내에 그림을 읽는 기술

  • 우편번호 추출을 통한 우편물 관리
  • 자동차 번호판 인식
  • 모바일 기기 사용한 명함인식
  • 신용카드 읽기를 이용한 결제 서비스
  • 컨테이너 일련번호 인식을 이용한 스마트 선박 시스템

 

구글 OCR API

 

 

Vision AI | ML을 통한 이미지 정보 도출  |  Cloud Vision API  |  Google Cloud

AutoML Vision을 사용하여 클라우드나 에지 이미지에서 유용한 정보를 도출하거나 선행 학습된 Vision API 모델을 사용하여 감정, 텍스트 등을 인식합니다.

cloud.google.com

[OCR 인식 결과 예시] https://cloud.google.com/vision

Google Cloud Vision API키 생성 및 저장

 

[GCP] Google Cloud Vision API 키 생성 및 저장하기

 https://console.cloud.google.com/ Google Cloud Platform 하나의 계정으로 모든 Google 서비스를 Google Cloud Platform을 사용하려면 로그인하세요. accounts.google.com 최초 접속해서 콘솔에 들어갔다고 가..

kimchangheon.tistory.com

 

OCR 원리

입력받은 사진 속에서 문자의 위치를 찾아냄 (Text Detection)

문자 영역으로부터 문자를 읽어냄 (Text Recognition) 

[ 출처: https://brunch.co.kr/@kakao-it/318 ]

 

문자 영역 표시의 방법

  • 축에 정렬된 사각형 (Bounding box), 돌아간 사각형(Oriented bounding box), 자유로운 사각형(Quardrangle), 다각형 (Polygon), Pixel단위로 표현한(Mask)

 

딥러닝의 문자인식

[ 출처: http://yann.lecun.com/exdb/publis/pdf/lecun-01a.pdf ]

CNN에서 LeNet은 1998년 우편번호나 손글씨를 읽기 위해서 만들어짐

[ 출처: http://yann.lecun.com/exdb/lenet/stroke-width.html ]

 

Lenet 데모 플레이

 

Yann LeCun's news

 

yann.lecun.com

 

Lenet 구조 설명

 

Object Detection(객체 인식)

일반적인 Object Detection 방법으로 접근

  • Regression은 기준 박스 대비 문자의 박스가 얼마나 차이가 나는지 학습
  • Segmentation은 픽셀 단위로 해당 문자를 분류

[ 출처: https://www.semanticscholar.org/paper/End-To-End-Text-Detection-Using-Deep-Learning-Ibrahim/6d8584a900bd77afec55921c2d2d1cb6f1244b25/figure/0 ]

문자 객체 인식에서의 특징

  • 일반적인 객체는 물체에 따라 크기가 일정 특징을 가지지만 문자는 영역과 배치가 자유로워 문자 검출을 위한 설정이 필요
  • 물체 간 거리가 충분히 확보되는 데 비해 글자가 촘촘히 배치

[ https://it.wikipedia.org/wiki/File:Detected-with-YOLO--Schreibtisch-mit-Objekten.jpg ]
[ https://answers.opencv.org/question/69135/how-can-i-draw-rectangle-with-matofkeypoint-for-text-detection-java/ ]

문자, 단어, 줄, 단락 단위 등의 특징을 가지는 문자열

 

Recognition

[ 출처: ICDAR (https://rrc.cvc.uab.es/?ch=4&com=tasks) ]

사진속에서 문자를 검출해 내는 모델이 해당 영역에 글자를 읽어내는 과정

ICDAR15라는 OCR 데이터셋에서 단어 단위로 잘린 이미지

[ 출처: Ibrahim, Ahmed Sobhy Elnady. End-To-End Text Detection Using Deep Learning. Diss. Virginia Tech, 2017. (https://arxiv.org/abs/1507.05717) ]

문단 또는 블록 정보를 풀어내는 방법

  • 이미지 내에서 검출된 단어 영역 위치정보
  • X,Y 축으로 L2 Distance가 일정이내 단어 또는 문자들의 그룹을 만들어 단락으로 만들어보기

 

 

글자읽는 AI: 밑바닥부터 외국어 정복까지

NAVER Engineering | 글자읽는 AI: 밑바닥부터 외국어 정복까지

tv.naver.com

 

 

keras-ocr

케라스 API기반으로 이미지속 문자를 읽는 모델(CRNN)

[ 출처: https://github.com/clovaai/CRAFT-pytorch ]

 

 

 

keras-ocr — keras_ocr documentation

© Copyright 2019, Fausto Morales Revision 54ddae1b.

keras-ocr.readthedocs.io

 

GitHub - faustomorales/keras-ocr: A packaged and flexible version of the CRAFT text detector and Keras CRNN recognition model.

A packaged and flexible version of the CRAFT text detector and Keras CRNN recognition model. - GitHub - faustomorales/keras-ocr: A packaged and flexible version of the CRAFT text detector and Keras...

github.com

 

 

korean language support · Issue #101 · faustomorales/keras-ocr

can I train korean language OCR?

github.com

 

Tesseract OCR

구글에서 후원하는 OCR 오픈소스 라이브러리로 현재 버전4 유지중

 

 

pytesseract

Python-tesseract is a python wrapper for Google's Tesseract-OCR

pypi.org

 

깃허브 갈음

 

GitHub - dlfrnaos19/rock_scissors_paper_classifier: task 1

task 1. Contribute to dlfrnaos19/rock_scissors_paper_classifier development by creating an account on GitHub.

github.com

 

 

 

반응형