Security_RNRF

사진 속 문자를 읽는 기술 - OCR과 오픈소스 본문

Project/AI

사진 속 문자를 읽는 기술 - OCR과 오픈소스

RNRF 2020. 12. 21. 18:55

파이썬(Python) 기반 오픈소스 OCR 모델

OCR의 개념 및 기업에서의 효용 그리고 대표적인 OCR 오픈소스를 소개한다.
컴퓨터가 사진 이미지 속 문자를 읽어내는 원리와 오픈소스를 활용한 간단한 OCR 모델을 만드는 방법을 설명한다.

* OCR은 무엇인가?

OCR 기술 원리

OCR(Optical Character Recognition, 광학 문자 인식)은 인쇄물 또는 사진 상의 글자와 이미지를 디지털 데이터로 변환해주는 자동인식기술이다. 기술 사용의 예로 명함의 텍스트나 서류상의 필체 정보 인식 등이 있다.
상용 OCR은 현재까지 20여년간 사용되었으며, 기술 발전으로 인해 문서 이미지만 인식하던 기술에서 일상적인 사진이나 동영상 속 문자까지 인식하는 기술로 발전되고 있다.

OCR의 기술 구분은 인공지능 기술 중 "컴퓨터 비전 기술"에 해당하며 전 세계적으로 활발하게 연구가 이루어지고 있다.
(컴퓨터 비전 : 컴퓨터가 이미지 또는 영상을 인식하는 기술로 사물인식, 얼굴인식 등을 수행하여 자율주행 자동차의 주변 인식 또는 명함 인식 모바일 앱 등에 사용된다.)
OCR 분야는 최근 기계학습 기반의 알고리즘(엔진)을 활용하면서, 인식률이 크게 높아졌다. 딥러닝(CNN 및 RNN 등)을 적용해 정확도가 이전보다 향상되었으며 규격 이미지(스캔문서 이미지 등)에서 OCR 기술 적용 시 약 90%의 정확도를 보인다.

* 왜 OCR인가?
OCR은 기업의 이미지 및 문서처리업무를 자동화하여 프로세스 효율화 및 비용 절감에 효과적이다.
여러 종류의 스캔 서류를 분류하거나 거래 계약서의 주요 내용에 대해 "동의함"에 체크 되어있는지 확인하는 업무 등 전산화되지 않는 종이 문서 업무처리에 OCR을 적용할 수 있다.

또한 모바일 및 태블릿PC 사용이 대중화되면서 스캔 이미지가 점차 모바일 촬열 이미지로 대체되고 있으며 처리량 또한 많아지고 있다. 고객의 각종 서류를 모바일 촬영 이미지로 수집하는 경우, 수집된 이미지는 내부 자료화를 위해 사진 속 문자 내용을 사람이 일일이 엑셀파일 또는 데이터베이스에 입력하는 수작업 대신 OCR 기술을 적용한다면 생산성이 크게 높아질 수 있다. OCR은 증빙서류 등의 문서 처리가 많은 금융회사에서는 이미 사용하고 있다. 특히 보험회사는 고객들이 모바일로 촬영하여 보낸 청구 서류 이미지 인식에 OCR를 적용하여 보험금 청구 후 지급까지의 시간을 단축함으로써 프로세스 효율성을 높이고 있다. 또한 번거롭고 시간이 오래 걸리는 개인정보 입력 단계를 자동화함으로써 고객 편의성도 향상시킬 수 있다.

* OCR 오픈 소스
OCR 솔루션을 도입하기 전에 오픈소스 OCR 알고리즘과 벤치마크 테스트를 해보는 것이 바람직하다. OCR의 기능 영역(이미지 전처리, 텍스 위치 검출, 글자 인식)별로 사용되는 대표적인 오픈소스를 소개한다.

Open CV와 Tesseract OCR

이미지 및 영상 처리 부분에서 가장 권위가 있는 오픈소스인 OpenCV는 C 기반으로 작성 되었으며 자바(JAVA), 파이썬(Python) 등의 언어로도 제공된다. OpenCV는 OCR 에서 이미지 전처리와 텍스트 위치 검출(Text-Localization)에 사용 가능하다.
(이미지 전처리 : 컴퓨터가 이미지를 쉽게 인식할 수 있게 이미지를 정제하는 선제 작업이다.)

글자 인식 부분의 OCR 오픈소스 전통 강자 Tesseract는 휴렛팩커드(Hewlett Packard)가 1980년대에 개발했으며 2005년 오픈소스로 개방되었다. 구글은 이 프로젝트를 2006년 이후 후원해 왔다. 2018년 현재 딥러닝 학습 기능이 내장되어 있는 강력한 OCR 도구이다. Tesseract는 곧 v4가 배포될 예정이며 LSTM(딥러닝의 일종) 기반으로 개발되어 인식률이 크게 높아졌다.

OpenCV, EAST detector와 함께 Tesseract를 사용하면 훌륭한 조합이 된다. 작년과 올해에 OCR 오픈소스의 새로운 버전이 발표됨에 따라 오픈소스를 사용한 OCR 엔진 및 솔루션 성능이 전반적으로 크게 향상되었다. 그 외, 상당한 수준의 정확도를 보이는 상용 오픈 API도 존재한다. 구글 클라우드 비전(Google Cloud Vision), 마이크로소프트 컴퓨트 비전(Microsoft Computer Vision) 등이 대표적이다.

* OCR 미래
OCR이 고도화될수록, 내츄럴 이미지 관련 업무에 대해 OCR을 확대 적용함으로써 OCR의 효용성은 더욱 더 증가할 것이다. 또한, OCR은 프로세스의 효율화 및 자동화 측면에서 RPA와 연계했을 때 더욱 효과적으로 사용할 수 있다. RPA는 단순 반복적인 업무 프로세스를 사람 대신 소프트웨어 로봇이 수행하게끔 하는 업무자동화 기술이다. 지금까지는 OCR을 통해서 인식한 값들을 저장 및 전송하는 것에 그쳤다면 RPA와 연계하여 그 다음 처리되는 사람의 업무까지 프로세스 전체를 자동화할 수 있다.

RPA와 연계 시 OCR 적용 방향

자동화 하고자 하는 프로세스 중간에 종이 문서나 사진 처리가 있다면 그 프로세스는 RPA의 대상 업무가 될 수 없거나 단절된 자동화로 반쪽짜리 자동화에 불과하다. 위의 경우, 저장된 이미지를 확인하고 항목 값을 데이터화 하는 부분(빨간색 영역)에 OCR을 적용하면 프로세스의 처음부터 끝까지 완전 자동화를 달성할 수 있다.

<참고자료>

1. https://github.com/hoya012/deep_learning_object_detection

2. https://opencv.org/opencv-4-0-0-alpha.html

3. https://arxiv.org/abs/1704.03155

4. https://github.com/tesseract-ocr/tesseract

5. http://rrc.cvc.uab.es/

출처 : www.2e.co.kr/news/articleView.html?idxno=203023

Comments