OCR - Optical Character Recognition
OCR은 사람이 직접 입력하지 않고 스캐너를 통해 이미지 형태로 읽어들여 데이터의 내용을 분석하고 그림 영역과 글자 영역으로 구분한 후 글자 영역의 문자들을 일반 문서 편집기에 수정, 편집이 가능한 텍스트의 형태로 변환하여 주는 자동 입력 시스템이다.
기존에 거울이나 렌즈 등의 광학 기술을 이용한 광학 문자 인식과 스캐너 및 알고리즘에 의한 디지털 문자 인식은 별개의 영역이엇으나 최근 들어서 광학 문자 인식이라는 말이 디지털 문자 인식을 포함하는 것으로 간주되었다. (위키백과)
OCR 과정 (Text Detection - Text Recognition)
전처리(pre-processing)
- 글자들이 잘 보여질 수 있게 밝기나 색과 같은 영상의 메타데이터를 변화시킨다.
문자 검출(Text Detection)
- 글자들이 존재하는 위치를 찾아내고 이들을 bounding box로 묶는다.
- bounding box로 묶인 글자들은 인식 모델의 입력으로 들어간다.
- Text Detection에서는 보통 CNN(Convolutional Neural Network)계열의 모델을 주로 쓰는 것 같다.
문자 인식(Text Recognition)
- bounding box 안에 글자가 어떤 내용인지 알아낸다.
- 보통 RNN(Recurrent Neural Network)계열의 모델을 주로 쓰는 것 같다.
- 최근 들어 Attention Network도 사용
알아두면 좋을 정보들
OCR에서 인식하는 글자는 크게 인쇄체(printed)와 필기체(handwritten)로 나뉜다.
OCR 관련 대표 학술대회: ICDAR(International Conference on Document Analysis and Recognition)
- 여기서 Robust Reading Competition이라는 OCR 관련 대회가 2년마다 열림
- 영어 데이터셋은 이런 곳에서 쉽게 구할 수 있다.
한글 데이터셋은 AI hub에서 제공하는 것을 이용하면 좋을 것 같다.(꽤나 많은 양의 데이터가 있다.)
내가 보고 참고한 한글 OCR 프로젝트 블로그 글
OCR 관련 아이디어
OCR 관련 최근 흐름을 익히기에 2019 Naver Deview 영상과 자료를 찾아보면 도움이 많이 된다.
- 특히 OCR 데이터셋 평가 방법에 대해 알 수 있어서 좋았다.
Naver Clova에서 OCR 관련 연구를 잘 진행하고 있어 해당 기술을 찾아보면 좋을 것 같다.
[Text Detection] - CRAFT
[Text Recognition] - deep-text-recognition-benchmark
[OCR evaluation method] - CLEval
CRAFT 를 이용한 Text Detection 예시 결과
IC17-MLT pretrained 모델을 이용하였다. 데이터셋 안에 한국어가 포함되어 있어서 쉽게 검출할 수 있었다.
'Deep Learning > OCR' 카테고리의 다른 글
[#05] Text Recognition Model 학습하기(deep-text-recognition-benchmark) (8) | 2021.04.12 |
---|---|
[#04] AI Hub 한국어 글자체 AI 이미지 데이터 전처리 (11) | 2021.03.31 |
[#03] 한글 데이터셋 수집하기 (10) | 2021.03.31 |
[#02] 내가 찾은 모델 CRAFT, deep-text-recognition-benchmark (1) | 2021.03.29 |
[#01] OCR 모델 조사 (0) | 2021.03.29 |