본문 바로가기

say와 AI 챗봇친구 만들기 보고서

OCR 성능 개선하여 자체 알고리즘으로 RPA시스템 구축

728x90
반응형
SMALL

OCR 성능 개선하여 자체 알고리즘으로 RPA시스템 구축

OCR로 영수증 데이터 자동화

한국전력공사

 

 
Overview: 딥러닝 기반 OCR 모델이 필요한 이유

한국전력공사는 지난해 데이터헌트와 함께 OCR 과제를 수행했습니다. 데이터헌트는 Bounding box 기술을 활용해 데이터 가공 품질을 개선하고, 인공지능을 통해 작업 효율을 개선하여 우수한 결과물을 선보였습니다.

OCR(Optical Character Recognition) 기술은 사진, 스캔된 문서, 비디오 등에서 텍스트를 인식하고 추출하는 데에 사용되는 컴퓨터 알고리즘입니다. 이 기술은 광학 문자 판독기로, 눈으로 볼 수 있는 문자를 컴퓨터가 읽을 수 있는 데이터 형식으로 변환하는 데이터 라벨링 작업입니다.

OCR 모델은 다양한 방식으로 사회적 영향을 미치고 있습니다.

  • OCR은 작성된 텍스트를 디지털 형식으로 변환함으로써 읽기에 어려움이 있는 개인의 접근성을 향상시킬 수 있습니다.
  • 기록된 정보를 디지털화하는 과정을 자동화함으로써, OCR은 매일 대량의 데이터가 처리되는 의료 및 금융 등의 다양한 산업에서 조직이 정보를 보다 효율적으로 처리할 수 있습니다.
  • 문서를 디지털 형식으로 변환함으로써, OCR은 귀중한 문화 유물의 열화 및 손실을 방지하고 보존하는 데에 중요한 역할을 합니다.

OCR 이란?

OCR(Optical Character Recognition) 기술은 사진, 스캔된 문서, 비디오 등에서 텍스트를 인식하고 추출하는 데 사용되는 컴퓨터 알고리즘입니다. 이 기술은 광학 문자 판독기로, 눈으로 볼 수 있는 문자를 컴퓨터가 읽을 수 있는 데이터 형식으로 변환합니다.

OCR은 다양한 산업과 응용 분야에서 널리 사용되며, 특히 문서 관리, 자동 데이터 입력, 인쇄물 디지털화, 번역, 텍스트 마이닝, 로봇 과정 자동화 등에 중요한 역할을 합니다. 예를 들어, 스캔된 각종 서류 이미지 속에서 내용을 추출해 디지털 정보로 남길 수 있기도 하고 면허증, 주민등록증 등과 같은 중요한 개인정보를 식별하여 보안 강화에 사용할 수도 있습니다.

OCR 과정

데이터 라벨링에서 OCR 기술의 주요 단계는 다음과 같습니다:

  1. 전처리: 이미지의 품질을 개선하고 노이즈를 제거하여 글자 인식률을 높입니다. 이 단계에서는 이미지 이진화, 블러 처리, 배경 제거 등의 작업이 포함됩니다.
  2. 문자 분할: 이미지에서 문자 영역을 찾아내고 분리하는 과정입니다. 이 단계에서는 텍스트 영역 검출, 라인 분할, 문자 분할 등이 이루어집니다.
  3. 문자 인식: 분리된 문자 영역에서 실제 문자를 인식하는 과정입니다. 이 과정에서는 Image Classification(이미지 분류) 모델을 사용합니다.
  4. 후처리: 인식된 문자를 정제하고, 문맥에 따라 올바른 결과를 도출합니다. 이 단계에서는 단어 검사, 문법 검사, 언어 모델을 사용하여 오류를 수정하고 최종 출력을 생성합니다.

OCR 모델의 전체 과정

데이터헌트에서는 더 나은 OCR 모델을 만들기 위해 위의 모든 과정에 대해 연구개발을 수행하고 있습니다.

OCR 가공 실제 사례 - 한국전력공사

데이터헌트에서는 지난해 한국전력공사와 함께 OCR 과제를 수행했습니다. 수만 장의 이미지에 대해 레이블링을 해야 하기 때문에 굉장히 노동집약적일 것으로 예상됐습니다.

 

이 과제는 이미지 내 모든 텍스트의 영역을 지정하고, 정해진 카테고리에 해당하는 모든 항목에 속성을 부여하는 작업으로, 실제로 데이터헌트의 숙련된 작업자 기준으로 한 장에 최소 5분 이상 걸리는 어려운 작업이었습니다. 만약 작업 이미지의 수량이 10만 장일 경우 총합 8,000시간 이상이 걸리기 때문에 AI를 통한 작업 효율화가 크게 빛을 발한 과제입니다.

OCR 가공 품질 개선 방법

개선된 OCR 결과 – 전(좌)과 후(우)

데이터헌트에서는 몇차례 단계를 거쳐 OCR 모델을 개선했습니다. 대략적인 단계는 아래와 같으며

  1. 이미지의 텍스트가 전체적으로 기울어져 있는지 검출
  2. 복수의 모델을 활용한 Ensemble 기법 적용
  3. 데이터에 따라 바운딩박스의 수준(음절, 단어, 문장)을 조절하기 위해 파라미터 조절 기능 추가

이를 통해 더 빠르고 정확한 작업을 유도했습니다.

OCR에서 데이터 전처리의 중요성

이미지의 기울기에 따른 OCR 결과 비교

모델 자체의 성능도 성능이지만, OCR 작업은 다른 작업보다 전처리가 중요했습니다. 그 이유는 각 텍스트에 대해 바운딩박스 또는 폴리곤을 그리는데, 보통 어느 작업이든 폴리곤이 바운딩박스보다 작업하기가 어렵습니다. 사람 또한 작업하기 어려워서 그런 걸까요? 기울어져 있는 글자는 정자로 세워져 있는 글자보다 폴리곤 정확도도 전사 정확도도 낮습니다.

정리하자면

  • 폴리곤은 바운딩박스보다 작업(생성/수정)이 어려움
  • AI 모델은 기울어져 있는 텍스트를 어려워 함

따라서 AI에게 작업을 부탁하기 전에 텍스트를 바로 세워준다면 AI가 더욱 정확한 레이블을 만들어 줄 수 있습니다.

OCR 전처리에서 기울어진 이미지를 다루기 위한 방법

작업 결과를 확실히 개선시킬 수 있는 방법이지만 모든 것이 자동으로 이루어지지 않는 이 프로세스에 대해 궁금한 점이 있을 것 같습니다. 미리 답변드리면,

전처리 이외에도 몇가지 개선 작업이 있었지만 이번 소개글에서는 개요만 말씀드렸습니다.

 

OCR (광학 문자 인식) 이란?

정의

광학 문자 인식 (OCR, Optical Character Recognition) 은 텍스트 이미지를 ai 컴퓨터가 읽을 수 있는 포맷의 텍스트로 변환하는 과정을 의미합니다. 예를 들어, 물리적인 인쇄물이나 영수증을 스캔하는 경우 컴퓨터는 스캔본을 이미지 파일로 저장합니다. 이미지 파일에서는 텍스트 편집기를 사용하여 단어를 편집, 검색하거나 단어의 수를 계산할 수 없습니다. 그러나 OCR을 사용하면 이미지를 텍스트 문서로 변환하여 텍스트 데이터로 저장하고 다양한 작업을 할 수 있습니다.

기술 원리

OCR = Text detection + Text recognition

OCR 엔진에는 여러 OCR 모델과 알고리즘이 단계 별 task를 수행합니다. Text detection과 Text Recognition은 그중에서 가장 중심적인 task이며, 전체적인 워크플로우는 아래와 같습니다.

The general OCR workflow

  1. Pre-processing: OCR의 input image는 노이즈로 인해 손상되거나 기울어지거나 또한 회전되어 있는 경우가 많습니다. 이러한 경우 다음 단계에서 제대로 된 결과가 나올 수 없기 때문에 사전에 손상된 이미지를 복구하거나 회전이나 기울여진 이미지를 복구합니다.
  2. Text Detection: Text detection은 Object detection의 확장 버전이라고 할 수 있습니다. Text recognition은 검출된 영역의 문자가 무엇인지를 인식하는 과정을 의미합니다. OCR은 구체적으로는 Classification, Detection과 Segmentation 기법이 결합된 형태입니다. 최근에는 두 가지 모두를 동시에 해내는 End-to-end 모델 개발이 성행하고 있습니다. 그 외에도 속도를 개선하거나, 프로세스를 조정하는 등 다양한 케이스로 발전되고 있습니다.
  3. Text Recognition: 이 단계에서 detection, segmentation 된 image boundary에 어떤 text가 있는지를 인식합니다. 작업 결과 일반적으로 텍스트와 함께 이미지 내 좌표와 영역이 나열된 텍스트 파일을 얻을 수 있습니다.
  4. Restructuring: Restructuring이란 input image에 있던 좌표에 따라 텍스트를 재배치하는 것을 의미합니다. 각 좌표를 반복하여 인식된 텍스트를 배치하기만 하면 됩니다. 재구성된 데이터는 원본 이미지와 구조적으로 유사한 형태로 만들어지며, 텍스트가 가진 정보의 context를 인식하는데 도움이 됩니다.
    ( ex> 이름: 문상선  -> [문상선]은 이름이다 )

 

OCR이 계속 주목받는 이유

OCR은 현재까지 20여년 간 사용 되었습니다. 기술 발전으로 인해 문서나 이미지만 인식하던 기술에서 일상적인 사진이나 동영상 속 문자까지 인식하는 기술로 발전되고 있죠. 왜 OCR 기술이 중요할까요?

비즈니스 업무 효율 향상

OCR은 기업의 이미지 및 문서 처리 업무를 자동화하여 프로세스 효율 극대화 및 비용 절감에 효과적입니다. 특히 증빙서류 등의 문서 처리가 많은 기업에서 많이 사용하고 있습니다. 특히 모바일 사용이 대중화되면서 기업이 처리해야 할 스캔 이미지가 모바일 촬영 이미지로 대체되고 있습니다. 수집된 이미지의 내부 자료화를 위해 문자 내용을 사람이 일일이 엑셀파일이나 데이터베이스에 입력하는 방식 대신 OCR 기술을 적용하면 생산성을 크게 높일 수 있습니다.

특히 OCR은 프로세스의 효율화 및 자동화 측면에서, RPA와 연계했을 때 더욱 효과적입니다. RPA는 단순 반복적인 업무 프로세스를 사람 대신 소프트웨어 로봇이 수행하게끔 설계하는 업무 자동화 기술입니다. RPA와 연계된 OCR은 인식한 값들을 저장 및 전송하는 것에서 더 나아가 프로세스 전체를 자동화할 수 있습니다.

 

LLM 학습 데이터 파인 튜닝

또한 OCR 기술은 스캔한 문서와 이미지에서 텍스트를 추출하여 대규모 언어 모델(LLM)을 학습하고 미세 조정하는 데에 사용할 수 있습니다. LLM은 텍스트를 생성하고, 언어를 번역하고, 다양한 종류의 창의적인 콘텐츠를 작성하고, 질문에 답변할 수 있는 Generative AI입니다. ChatGPT나 Bard, PaLM 등 Foundation Model이 여기에 포함되어 있습니다.

이러한 LLM, 대규모 언어 모델들은 텍스트와 코드로 구성된 방대한 데이터 세트를 학습하며, 학습하는 데이터 품질이 성능에 매우 중요합니다. OCR 기술은 스캔 문서나 이미지, PDF 등 다양한 형식의 고품질 데이터를 LLM에 제공하며 고객 응대 ai 챗봇 등에 활용 될 수 있습니다. 이 데이터는 Text classification, NLP, Q&A 등 다양한 작업에서 LLM을 훈련시키는 데에 사용할 수 있습니다.

OCR 솔루션 및 활용 사례

PDF 스캐너

PDF OCR 이란, 자동으로 광학 문자 인식(OCR)을 문서에 적용하고 편집 가능한 PDF 사본으로 변환하는 것입니다. PDF 스캐너에서 OCR은 이미지를 다른 비즈니스 소프트웨어가 읽을 수 있는 텍스트 데이터로 변환하여 개인과 기업의 시간과 비용 리소스를 절약할 수 있다는 장점이 있습니다.

일상에서 쉽게 사용할 수 있는 유무료 PDF 스캐너를 간단하게 소개합니다.

  • PDF24
  • 브라우저 작동 방식으로 별도의 소프트웨어 설치 불필요
  • 오프라인 사용이 필요할 시 데스크톱 응용 프로그램 사용 가능
  • 리눅스와 스마트폰에서도 호환 가능
  • SodaPDF
  • 웹 브라우저에서 온라인 변환 가능, 데스크톱 응용 프로그램으로 오프라인 작업 가능
  • 이메일로 OCR된 문서를 다른 사람에게 전송하고 공유
  • 인식한 PDF를 HTML, DOCX, TIFF로 변환하고 웹 브라우저에서 수정 가능
  • AvePDF
  • 100가지 이상의 형식 지원
  • 영어, 프랑스어, 독일어, 스페인어, 이탈리아어, 포르투갈어 중에서 OCR 언어 선택 가능
  • PDF를 PPT, Word, JPG, PDF/A, PNG, TIFF, Grayscale, Excel, TXT로 변환
  • 최대 파일 크기 128MB, 시간당 최대 1건 무료, 처리당 최대 파일 수 10건
  • Aspose.app
  • Aspose API를 사용하여 높은 인식 품질
  • 자동 이미지 전처리를 수행하여 저해상도, 저대비, 노이즈 및 스큐 수정
  • 자동화된 문서 레이아웃 감지 알고리즘

ChatGPT를 통한 OCR 시스템

ChatGPT는 OpenAI를 통해 책과 코드, 구글 검색 결과로 학습한 대화형 인공지능 서비스입니다. 이 모델에 OCR 기술을 접목하면, 이미지에서 추출한 원시 텍스트 데이터의 후처리에 이상적입니다. GPT를 OCR 시스템에 결합하면, 스캔한 문서는 컴퓨터와 휴대폰에서 자동으로 API로 보낼 수 있습니다.

Ximillar OCR 및 OpenAI ChatGPT를 통한 영수증 분석

LLM에 구축된 OCR 모델은 방대한 데이터 세트를 학습하여 언어의 구조를 깊이 이해하기 때문에, 필기 텍스트나 저품질 데이터 등 까다로운 텍스트 출력 과정에서 OCR 모델의 정확도를 향상할 수 있습니다. 또한 언어의 기본 원리를 학습하는 과정을 통해 새로운 맥락에서 텍스트를 인식할 수 있습니다. 예를 들어 GPT에 OCR 데이터를 제공한 뒤 텍스트의 상세 내용에 대해 질문을 하면 답변을 받을 수 있는 것이죠.

 

물론 LLM 기반 OCR 모델에도 장점과 한계는 있습니다. 이 방식은 손으로 쓴 텍스트나 품질이 낮은 이미지 등 까다로운 입력에도 정확하게 대응합니다. 영어를 포함해 몇 종류의 단어에만 능숙한 기존 OCR 모델보다 다양한 언어의 텍스트를 인식할 수 있습니다. 하지만 훈련 및 배포에 많은 비용이 소모될 수 있으며, 많은 양의 학습 데이터가 필요합니다. 모델에 입력한 데이터가 학습 데이터와 매우 다를 경우 이를 인식하지 못할 수도 있습니다.

NAVER

Document Understanding OCR

네이버는 실제 사용 환경과 실용성에 따른 모델 개선에 주목하고 있습니다. Clova AI에서 서비스되는 Document understanding OCR은 문서의 종류에 따라 API를 분리했기 때문입니다. 즉, 영수증이나 신용카드, 사업자등록증, 고지서, 명함, 신분증 등 문서가 무엇이냐에 따라 전처리와 후처리 방법이 다르게 설정되어 있다는 것을 알 수 있습니다.

 

네이버의 Text detection 모델은 watershed 기반의 학습 데이터 전처리 방법으로 데이터를 먼저 가공한 후, U-Net 기반 네트워크를 이용하여 학습합니다. 이후 Text recognition 모델은 검출된 텍스트의 인식을 위해 모델들을 조합하여, 객관적인 benchmark 방법을 제안합니다. 논문에 의하면, TPS+ResNet+BiLSTM+CTC 조합이 가장 우수하다고 합니다.

KAKAO

카카오는 YOLO와 유사한 특성으로 설계하여 실시간성에 주목하고 있습니다. 카카오는 처음 1차 인식 모델 RNN Layer를 사용했지만, 의존적인 구조와 순차적으로 글자를 뽑아낼 수밖에 없다는 한계를 개선하기 위해 연구해 왔습니다. 그 결과, Self-attention 구조를 통해 성능은 유지하고 속도만 개선하는 데에 성공했습니다.

카카오의 OCR 구성 키워드를 분류하자면 다음과 같습니다.

  • 구조: Text detection, Text Recognition 모델 분리
  • Text detection model: Character-level Output, Model-based Clustering, Orientation Prediction, Simple Postprocessing (No NMS)
  • Text recognition model: Less Resources(No TPS), Transformer Only Model, Fixed Length Input

Google, Microsoft, meta

Google 역시 카카오와 유사한 방식의 Multi-head를 이용한 OCR 기술을 구축했습니다. Word와 Character별로 Bounding box를 각각 획득한 뒤, Recognition을 수행하는 것을 알 수 있었습니다. 이외에도 구글은 Vision-transformer 등을 통해 Vision Task에서도 Attention을 이용하고자 하며, 이를 OCR에도 활용하고 있습니다.

Microsoft Azure OCR

Microsoft Azure는 문단 단위로 텍스트 검출 영역을 확보하고 line detection, word 단위의 결과로 리턴합니다. 이는 앞에서 설명한 구글과는 다소 다른 방식인데, 일부 Structured text에 적용할 수 있다는 점에서 화제가 되고 있습니다. 즉, Microsoft는 구조화된 텍스트에 특화된 OCR 모델에 주목하고 있습니다.

 

META는 Scene text 대상 End-to-End 모델에서 활용 가능한 image-text, region-text-QA 구조의 멀티 모달을 연구하고 있습니다. 이러한 구조로 된 TextVQA data를 이용해 multi-modal로 학습한 경우, 같은 모델보다 최대 20% 이상 성능 향상을 거둘 수 있다는 점에서 놀라운 결과를 보였습니다.

딥 러닝과 OCR

Before Deep learning

딥 러닝이 적용되기 전 OCR은 OCR Engine으로 Tesseract OCR을 사용했습니다. 이 기술은 휴렛 팩커드가 제작한 뒤 오픈소스되고, 구글에 의해 디벨롭되면서 꾸준히 연구되고 있습니다. OCR의 역사에 대해 더 자세히 알고 싶다면 여기를 참고해 보세요.

딥러닝이 OCR에 활용되기 전에는 어떤 방식으로 이미지 속 문자를 찾아냈을까요? 관심있으신 분은 논문 링크를 통해 살펴보실 수 있습니다.

이 글에서 설명할 OCR의 대략적인 architecture는 아래와 같습니다.

Architecthure of Tesseract OCR

  1. Adaptive Thresholding: 입력 영상의 이진화를 통해 흑백으로 변환
  2. Connected Component Analysis: 문자 영역을 검출
  3. Find Lines and Words: 라인 또는 단어 단위를 추출
  4. Recognize Word: 단어 단위 이미지를 Text로 변환하기 위해 문자를 하나씩 인식하고 다시 결합

위의 과정은 일반적인 딥 러닝 기반의 OCR에도 적용되는 기본적인 단계입니다. 수행하고자 하는 목표와 기본 흐름은 같으나, 딥 러닝이 없었던 시절인 만큼 방법이 달랐다고 볼 수 있습니다.

Text detection

딥 러닝을 이용해 이미지에서 텍스트의 위치를 찾는 Text detection은 Object detection이나 segmentation 기법 등과 유사한 속성이 있지만 세부적으로는 다른 특성이 있습니다. 

문자는 몇 개가 모여서 단어나 문장을 이루기 때문에, 이미지 내에서 문자를 검출해낼 때엔 최소 단위를 설정하는 과정이 필요합니다. 

[고] , [구], [마], [는], [맛], [있], [다]

예를 들어, 위 처럼 글자 단위로 따로 검출한다면 이후 맥락에 맞추어 글자를 붙여주는 과정을 거쳐야 합니다.

 

Input image를 (a) proposal extraction, (b) text-block FCN, (c) multi channel FCN, (d) connectionist Text Proposal Network, (e) Multi-channel FCN 방법으로 진행하는 과정

위 그림은 2017년에 발표된 EAST:An Efficient and Accurate Scene Text Detector 논문에서 발표한 Text detection 기법을 정리한 것입니다. 당시에는 Text의 Bounding box를 구하는 방식이 주를 이루었습니다. 따라서 가로 방향의 텍스트 박스를 구하는 방식이나 여러 방향(Multi-oriented)의 텍스트 박스를 구하는 방식이 다양하게 소개되어 있습니다. 특히 단어 단위의 탐지와 글자 단위의 탐지가 모두 활용되고 있다는 것을 알 수 있습니다.

단어 단위의 탐지 방법과 글자 단위의 탐지 방법은 어떤 차이가 있을까요?

문장 또는 단어 단위의 탐지

  • Object detection의 Regression 기반의 탐지
  • 긴 단어 혹은 문장과 함께 짧은 길이도 찾을 수 있어야 함
  • Anchor를 정의하고 단어의 유무와 Bounding box의 크기를 추정해서 단어를 탐지

글자 단위의 탐지

  • Bounding box regression을 사용
  • 글자를 놓치지 않고 찾아낼 수 있지만, 글자를 다시 맥락에 맞게 묶어주는 과정이 필요
  • 글자 영역을 Segmentation 하는 방법으로 접근

Text recognition

글자의 이미지들은 문자의 순서대로 정보를 가지고 있습니다. 다만 일부 이미지는 분리에 비용이 많이 들거나 난이도가 어려워 segmentation이 되지 않은 상태일 수 있습니다. 

이런 데이터에 대해서 CNN(Convolutional neural network)와 RNN(Recurrent neural network)를 함께 쓰는 방식으로 Text recognition을 수행할 수 있습니다. 이런 모델을 CRNN이라고 합니다. CRNN은 입력된 이미지가 어떤 문자일지를 높은 확률로 맞추어내어 data processing과 Deep learning에 도움을 주고 있습니다. 

An End-to-End Trainable Neural Network for Image-based Sequence Recognition and Its Application to Scene Text Recognition

또한 Attention과 Text recognition 모델의 조합이 딥 러닝 OCR 분야에 큰 영향을 미치고 있습니다. Attention 기반 순차 예측은 문장의 길이를 고정하고 입력되는 Feature에 대한 Attention을 기반으로 해당 글자의 Label을 예측하는 방법입니다. 첫 번째에 입력된 Feature에 대한 Attention을 기반으로 Label을 추정하고, 추정된 Label을 다시 입력하여 다음 글자를 추정하는 방식입니다.

 

예를 들어, "안녕하세요"라는 문장을 예측한다고 가정해 보겠습니다. Attention 기반 순차 예측은 첫 번째 글자인 "안"에서 입력 Feature에 대한 Attention을 기반으로 "녕"이라는 Label을 추정합니다. 추정된 Label인 "녕"을 다시 입력으로 사용하여 다음 글자인 "하"를 추정합니다. 이 과정을 반복하여 "안녕하세요"라는 문장을 예측합니다.

 

Attention과 Text recognition 모델의 조합에 대한 성능 정보는 Naver Clova의 논문에서 자세히 알 수 있습니다.

OCR 최신 연구 논문

아래에는 최근 주목 받고 있는 기술 개요와 논문으로, 자세한 내용은 각 논문 링크에서 확인하실 수 있습니다.

Character region Awareness for Text Detection

  • CRAFT (Character region Awareness for Text Detection)
  • 문자 단위로 문자의 위치를 찾아낸 뒤, 이를 연결하는 방식을 segmentation 기반으로 구현한 방법
  • 문자의 영역을 명확히 구현하지 않고 원형의 score map을 만들어서 배치하는 방법으로 문자 영역을 학습
  • Weakly supervised learning 활용

Pyramid Mask Text Detector

  • PMTD (Pyramid Mask Text Detector)
  • Mask-RCNN의 구조를 활용해 text 영역을 region proposal network로 탐지
  • 이후 Box head에서 더 정확하게 regression 및 classification 후 mask head에서 instance segmentation
  • Mask 정보가 부정확한 경우를 대비 및 반영하고자 Soft-segmentation 활용

OCR 데이터 품질 높이는 방법

최근 개발된 OCR 시스템은 Error Correction 모델을 추가하여 성능이 더욱 향상된 것을 볼 수 있었습니다. 예를 들어, OCR 시스템이 B로 적힌 문자를 A로 잘못 인식했을 경우, Error Correction 모델은 문서에서 문자가 A일 확률과 B일 확률을 비교하여 이 오류를 식별할 수 있습니다. 경우에 따라 Error Correction 모델의 채용은 OCR 시스템의 오류율을 최대 50%까지 줄일 수 있다고 하죠.

또한 인식 대상 텍스트에 유의해야 할 맥락이 있거나, 특정 Wrong Case에 있을 경우 이를 정확히 분석해내고 있습니다. Error case에 대한 통계 데이터를 보유하고 있는 경우 환영할 만한 개선 결과입니다. 수동적인 접근 방식부터 단어 수준의 접근 방식, 문맥에 따른 접근 방식 등을 활용할 수 있습니다. 이외에도 OCR 데이터 품질을 개선하기 위한 여러 방안이 나오고 있습니다. 그중에서 데이터헌트가 추천하는 OCR 정확도 높이는 방법 두 가지를 소개합니다.

성능 평가

정확도를 높이는 방법에는 여러가지가 있습니다. 그중 OCR 모델의 기본적인 성능을 분석한 결과를 토대로, 문제점을 파악하고 성능을 개선할 수 있습니다. 일반적으로 기존에 이루어지던 성능 평가 방법을 요약하면 아래와 같습니다.

  • 검출 평가 방법 (IoU, Intersection over Union): 정답과 예측 박스가 얼마나 겹치는지 확인
  • 인식 평가 방법 (WEM, Word based Exactly Matching): 정답과 예측 단어가 정확히 일치하는지 단어 기반으로 체크
  • 인식 평가 방법 (1-NED, Normalized Edit Distance): 두 단어간 편집 거리를 측정한 뒤, 긴 단어의 길이로 정규화
  • End-to-End 평가 방법: 검출 평가(IoU) → 인식 평가(WEM, 1-NED) 등으로 순차 평가 처리

Intersection over Union

그러나 기존 방법은 정교한 성능이 측정 불가하다는 단점이 있습니다. 하나의 정답 박스가 여러 개의 박스로 나뉘어 예측되거나, 여러 개의 정답 박스가 한 개의 박스로 합쳐져 예측되는 경우 정확한 성능을 측정할 수가 없었죠. 기존 방식의 한계에 대한 자세한 내용은 이 문서에서 확인하실 수 있습니다.

PopEval: A Character-Level Approach to End-to-End Evaluation Compatible with Word-Level Benchmark Dataset

 

위의 문제를 해결하는 단서는 PopEval에 있었습니다. 신규 평가 방법은 피어슨 통계 분석 결과 기존 방법보다 우수한 것으로 밝혀졌습니다. 특히 Split, Merge 문제 해결에 가장 효과가 있었습니다.

 

원리는 단순합니다. 겹치는 영역의 글자 중에서 같은 글자를 하나씩 지우는 방식으로 정답률을 계산하고 성능을 측정하는 것이죠. 이는 사람의 평가 방식과 가장 유사하며, 글자 단위로 평가하기 때문에 정교한 성능 측정이 가능합니다.

 

Popeval 평가 알고리즘은 기존의 방식에 비해 인간의 정성적 평가에 가까운 방식으로 진행합니다. 문자 수준 접근 방식으로 고안되었지만, 비교 실험의 결과에 따르면 단어 수준에서 주석이 달린 기존 데이터 세트와도 호환이 가능한 것으로 밝혀져 업계에서도 주목을 받고 있습니다.

데이터헌트의 OCR 품질 개선

OCR 작업의 정확도를 높이기 위해서는 전처리가 중요합니다. 데이터헌트는 이 과정에서 AI와 사람이 협업하는 구조를 만들었습니다.

데이터헌트는 한국전력공사로부터 요청 받은 영수증 이미지 10,000장 정제 미션을 수행하게 되었습니다. 데이터 구축 가이드라인 기준에 따라 Raw-data를 정제한 뒤, 글자 기울기에 따라 Bounding box 또는 Polygon을 사용했습니다. 이후 작업한 영역을 Text transcription을 진행하였으며, 메타 데이터 추출을 위한 Text classification 작업을 진행했습니다.

 

OCR 작업을 위한 전처리 과정에 인공지능을 도입하여 정확도뿐만 아니라 작업 시간 개선에서도 큰 성과를 보일 수 있었습니다. 평균적으로 데이터 라벨링 작업 시간을 40%가량 단축할 수 있었죠.

결론: OCR 시스템에 AI를 접목하여 데이터 추출 품질을 향상할 수 있다.

OCR 처리된 데이터로 AI를 훈련할 때 가장 중요한 것은 Bounding box의 밀도입니다. 모델이 텍스트 문자와 단어 사이의 공간적 관계를 학습할 때 이 기준이 중요하게 작용하기 때문입니다. Bounding box의 밀도가 높다는 것은 박스 간의 간격이 가깝다는 것으로, 이를 통해 AI는 원본 문서에서 이러한 문자와 단어가 서로 가까이 있을 가능성이 높다는 것을 학습할 수 있습니다. 이 정보를 사용하면 AI의 OCR 정확도를 향상할 수 있습니다.

 

예를 들어 BBOX의 밀도가 낮으면 AI가 원본 문서에서 ‘A’와 ‘B’가 서로 가까이 있을 가능성이 높다는 것을 학습하지 못할 수도 있습니다. 물론 밀도가 지나치게 높을 경우 AI가 모든 문자와 단어가 항상 서로 가깝다고 학습할 가능성이 높기 때문에, ‘THE’라는 단어를 학습하는 과정에서 ‘T’와 ‘HE’로 나누어서 판단할 수도 있죠.

따라서 OCR 가공 데이터로 모델을 학습시킬 때에는 Bounding box 밀도의 균형을 찾는 것이 중요합니다. 이를 위해서는 처리 중인 문서 유형에 적합한 Bounding box 밀도를 적용해야 하며, 표시해야 하는 텍스트 주위를 제대로 표기할 필요가 있습니다. 다양한 Bounding box 크기를 사용하고 글꼴을 사용해 모델이 지나치게 일반화되는 것을 방지하는 것도 중요합니다. 데이터헌트가 AI를 통해 OCR 작업을 진행할 때, 기울기를 수동으로 보정한 것도 Bounding box의 밀도를 더 높이기 위한 목적이었죠.

 

데이터헌트는 Human in the loop 원칙으로 사람의 평가 방식과 가장 유사한 방법을 채택합니다. 그와 동시에 AI를 통해 작업 시간을 단축하고 정확도를 향상하는 방법으로 OCR 품질 향상에 힘쓰고 있습니다. OCR은 비즈니스 자동화를 구축하기 위한 첫 걸음이면서, 최우선으로 이루어져야 할 과제입니다. 중요한 미션인 만큼 최선을 다해 연구하고 검수하는 데이터헌트의 모습을 보여드리겠습니다.

요약

  1. 광학 문자 인식(OCR)은 컴퓨터 비전 기술의 한 분야로, 텍스트 이미지를 컴퓨터가 읽을 수 있는 텍스트 포맷으로 변환하는 기술입니다. 텍스트 편집기를 사용할 수 없는 이미지 파일을 텍스트 문서로 변환하여 내용을 편집 및 검색, 단어 수를 계산할 수 있도록 만들 수 있습니다.
  2. OCR은 Text detection 모델과 Text recognition 모델의 결합으로, Classification과 Detection, Segmentation 기법이 결합된 형태입니다. 최근에는 두 가지 모두를 동시에 해내는 End-to-end 모델 개발이 성행하고 있습니다. 또한 머신러닝 기반의 알고리즘을 활용하면서 인식률이 크게 높아졌습니다. 또한 딥러닝을 적용해 정확도가 향상된 것을 확인할 수 있습니다.
  3. OCR 데이터 품질을 높이기 위한 방법 중 Popeval 기술을 적용한 평가 방법은 Split, Merge 등의 문제 해결에 효과적입니다. 데이터헌트는 주로 AI-assisted 기술로 AI와 사람이 협업하는 구조를 만들었으며, 이미지 전처리 과정에서 사람의 개입을 통해 작업 시간 개선 및 정확도 개선의 성과를 거두었습니다.

OCR 개선 결과

위와 같은 과정이 OCR 작업에 얼마나 도움이 됐을까요? 실제 작업을 통해서 AI를 도입했을 때와 그렇지 않았을 때의 시간을 직접 비교함으로써 작업 효율을 측정했습니다. 참고로 한글이 포함된 OCR 작업을 수행했습니다.

OCR 가공 품질 개선 실제 결과

결과는 놀랍게도 모든 작업자가 큰 폭으로 작업 시간을 단축시켰습니다! 편차는 존재하지만 평균적으로 40% 수준의 작업 시간의 단축을 보였고, 이는 조금만 더 보태면 같은 시간에 이미지 1장 작업할 것을 2장으로 늘릴 수 있다는 결론으로 이어집니다.

이 결론은 작업 비용이나 시간 뿐만 아니라 작업 정확도 측면에서도 의의를 가질 수 있습니다. 왜냐하면 작업자에게 충분한 휴식시간을 제공하더라도 많은 양의 작업을 하다 보면 빠르게 피로함을 느끼고 그만큼 실수도 늘어나기 마련입니다. 하지만 위와 같이 더욱 손쉽게 작업할 수 있기 때문에 결론적으로 더욱 정확한 작업 결과물을 기대할 수 있습니다.

👉 AI모델의 성능을 평가하는 f1 score

Problem: OCR 학습 데이터로 RPA 구축하기

RPA(Robot Process Automation)은 인간이 수행하는 반복적인 작업을 자동화하는 기술을 의미합니다. 소프트웨어 로봇을 사용하여 데이터를 입력하거나 데이터 추출 및 데이터 처리와 같은 작업을 수행할 수 있습니다. 사람의 개입이 필요한 금융, 의료, 제조와 같은 산업에서 주로 사용되며 조직은 효율성과 정확성 및 생산성을 개선할 수 있죠.

 

OCR과 RPA를 결합함으로써 기업은 송장이나 영수증, 양식과 같은 종이 문서와 관련된 데이터 입력 및 데이터 처리 작업을 자동화할 수 있게 됩니다. 종이 데이터를 디지털 시스템에 입력하는 수동 프로세스를 자동화하여 오류를 줄이고 효율성을 높일 수 있죠. 특히 수작업에 드는 비용과 리소스를 줄일 수 있다는 점에서 많은 기업이 주목하고 있습니다.

한국전력공사는 OCR 모델에 RPA 시스템을 결합하여 자동화 업무 범위를 확장시키고자 했습니다. 이를 위해 OCR 모델 성능 향상에 필요한 모델 학습용 데이터 구축이 필요했습니다. 또한, RPA 시스템에 전달할 개체명 정보 추출이 필요했죠.

궁극적인 목표는 딥러닝 기술과 RPA의 결합을 통해 지능화된 자동화 시스템 구축이었습니다.

OCR 작업의 핵심은 전처리입니다. 모델 자체의 성능도 중요하지만, 전처리 과정의 품질이 낮다면 정확도가 떨어집니다. OCR 모델은 각 텍스트에 대해 Bounding Box, 혹은 Polygon 작업을 진행합니다. 난이도 측면에서, Bounding box보다는 Polygon이 더 어렵다고 합니다. 기울어져 있는 글자는 정자로 세워져 있는 글자보다 Polygon 정확도는 물론, Transcription 정확도도 떨어집니다.

따라서, 무엇보다 고품질의 OCR 데이터를 구성하는 것이 중요했으며 작업 효율을 개선하는 과제도 함께 주어졌습니다.

Solution: OCR을 통한 Multi label classification

한국전력공사에서 요청한 OCR 학습용 데이터는 기수집된 영수증 이미지 10,000장입니다.

데이터헌트는 데이터 구축 가이드라인 기준에 따라 원천 데이터를 정제한 후, 글자 기울기에 따라 Bounding box 또는 Polygon을 사용했습니다. 이후, 작업된 영역에 대한 Text Transcription을 진행했으며, 메타데이터 추출을 위한 Text classification 작업을 진행했습니다.

글자 기울기에 따라 Bounding box 또는 Polygon을 사용했습니다. 이후, 작업된 영역에 대한 Text Transcription을 진행했습니다.

 

데이터 구축 가이드라인 정립

산출물의 작업 기준은 띄어쓰기 기준의 단어로 지정했습니다. 대상 언어는 영문, 한글, 특수문자로 손글씨를 포함한 영수증에 적힌 모든 글자를 분석했습니다. 글자 기울기에 따라 Bounding box와 Polygon을 적절하게 배합하여 사용했습니다.

정확도를 위해 작업 가이드라인도 면밀하게 살폈습니다. 실제로 배포된 작업 가이드는 아래에서 확인하실 수 있습니다.

  • 텍스트 전사 기준 : 6개의 개체명과 2개의 기타 클래스는 각각의 속성으로 분류하고 라벨링 진행
  • 개체명 - 가맹점명, 거래일자, 거래시간, 총액, 카드번호, 승인번호
  • 기타 클래스 - 절취선, 서명
  • Bounding box / Polygon 라벨링 기준 : 기호를 포함한 모든 텍스트는 띄어쓰기 단위로 나누어서 라벨링 진행
  • 단, 키보드로 입력 가능한 특수기호(31종) 외 기호는 모두 ‘$’로 처리

최종적으로 메타데이터 추출을 위한 개체명 클래스는 아래로 분류할 수 있습니다.

  • 결제 가맹점명
  • 결제 거래일자
  • 결제 승인 시간
  • 결체 총 합계 금액
  • 결제 카드번호
  • 결제 건의 승인번호

작업 범위에 따른 원천데이터 정제

위에서 설명한 기울어진 글자에 대한 개선 작업은 기존과는 다른 접근 방식을 채택했습니다. 모든 작업을 인공지능에 맡기기 보다는 기울어진 이미지를 검출해 내고, 작업자가 수동으로 이미지를 회전하는 중간 작업이 필요했습니다. 이 과정을 통해 인공지능이 더욱 정확한 레이블을 만들어줄 수 있죠. 왜 데이터헌트는 이런 방식을 채택했을까요? 온전히 OCR 데이터 품질을 개선하기 위함이었습니다.

Q. 작업자가 수동으로 이미지를 돌리지 않고 알아서 돌려줄 수는 없을까?

A. 여러 방법을 검토했을 때, 대부분의 글자가 정자로 서게끔 돌리기는 난이도가 어려웠음.
OCR 작업 시간에 비해 이미지를 돌리는 데에 걸리는 시간은 미비한 수준보다 나은 OCR AI 퀄리티를 위해 작업자가 수동으로 진행하는 것으로 결정했습니다.

Q. 처음부터 모델에 기울어진 텍스트까지 모두 학습시키면 되지 않을까?

A. 이미 OCR 모델은 많은 글자를 기울인 채로 학습되어 있음하지만 Bounding box보다는 Polygon을 학습하는 것이 어렵다는 것이 AI 모델의 한계입니다.

이 프로젝트는 이미지 1건당 평균적으로 50~70개의 객체를 작업해야 했습니다. 상대적으로 많은 시간과 인력 투입이 필요했죠. 원활한 프로젝트 진척을 위해 약 100명 이상의 크라우드워커를 교육하고 투입하기로 결정했습니다.

하지만 이 과정에서 상대적으로 많은 리소스가 발생했습니다. 이에, 기한을 엄수하기 위해 Text Detection 기능을 적용했습니다. 이를 통해 Text Transcription에 소모되는 시간을 효율적으로 단축할 수 있었습니다.

영수증 데이터 가공 작업 후 데이터 검수/Admin 교차 검수

모든 작업 과정이 종료된 후에는 산출물 검수를 진행합니다. 데이터헌트는 산출물 내역 상의 업무 진행이 100% 정확한지에 대해 검수하고 있습니다. 가이드 기준에 따른 작업 완수 여부를 ‘전수 검수’ 진행합니다.

  • 오탈자, 띄어쓰기, 개체명 분류에서 오류가 없는지
  • 텍스트 기울기에 따른 Bounding box나 Polygon 여백이 없는지
  • 작업 불가 유형이 있다면 사유를 파악하고 실제로 작업이 불가한 것이 맞는지 확인
  • QA 과정에서 Major/Minor 버그나 결함이 없는지

작업 유형 상, 휴먼 에러가 발생할 가능성이 높은 것이 사실입니다. 검수를 위한 인력 배분이 따로 필요한 상황이었죠. 하지만 AI팀과 협업하여 오탈자 탐지 기능을 통해 검수 전처리를 진행했습니다. 그 결과 리소스를 단축하여 데이터 품질 유지와 납품 일정 준수라는 두 마리 토끼를 잡을 수 있었습니다.

Result: Bounding box를 활용한 정확도 99.995%의 OCR 학습 데이터

고객사 검수가 종료된 후, 데이터헌트는 또 한 번의 마일스톤을 넘었다는 감동을 받았습니다. 표본 검사 진행 결과 오류율은 0.45%에 그쳤습니다. 기존 오픈 데이터들과 비교했을 때 10% 더 높은 정확도를 기록한 것입니다.

 

한국전력공사는 데이터헌트와 협업을 통해 문서에서 자동으로 문자를 추출하는 기술로 RPA 시스템을 구축했습니다. 그간 많은 시간을 소요해야 했던 단순 반복 업무에서 해방된 것입니다.

 

OCR 작업에 인공지능을 도입한 데이터헌트의 작업 시간도 큰 개선 성과를 얻었습니다. OCR 작업에 인공지능을 도입하자 평균적으로 데이터 라벨링 작업 시간을 40% 가량 단축시킬 수 있었습니다. 같은 시간에 이미지 1장 작업할 것을 2장으로 작업할 수 있을 정도의 유의미한 수치 변화입니다.

작업 시간은 줄이고, 정확도는 높였습니다

특히 OCR 기술은 휴먼에러가 발생할 가능성이 높은 작업입니다. 하지만 데이터헌트는 높은 품질을 확보함과 동시에 납기 희망일을 엄수할 수 있었습니다. 이는 온전히 기술에만 기대지도 않았으며, 사람에게만 의존하지도 않았기 때문입니다. 100명 이상의 크라우드워커를 투입하여 직접 레이블링을 진행하되, 그 과정에서 작업 리소스를 줄이기 위한 방편으로 인공지능을 활용했습니다.

결과적으로 데이터헌트가 이번 프로젝트를 성공적으로 완수할 수 있었던 이유는 간단합니다. 초기 단계부터 프로젝트를 꼼꼼히 파악하여 인공지능과 사람을 적합하게 사용할 수 있도록 설계한 것이죠. 또한 발생할 수 있는 휴먼에러에 대해 철저히 검수하는 것으로 마침표를 찍었습니다. 한국전력공사 역시 OCR 모델에 RPA를 적용한 결과물을 통해 큰 성과를 얻을 수 있었습니다.

 

 

 
728x90
반응형
LIST