Data Manager에서 직접 지원하지 않는 OCR 엔진을 사용하여 레이블링하는 방법

요즘 많은 고객들이 문서 처리를 자동화하기 위하여 UiPath Document Understanding을 검토하고 있습니다. UiPath DU는 문서에서 필요한 데이터를 추출하기 위하여 다양한 추출기를 사용할 수 있는데, 그 중 Machine Learning Extractor를 사용하려면 모델을 만들어 학습시키는 과정이 필요합니다.

ML 모델을 학습시키려면 학습에 사용할 문서들을 확보한 후 각각의 문서에서 필요한 데이터가 무엇인지 표시하는 레이블링 작업이 선행되어야 합니다. 이 작업에 사용하는 도구가 Data Manager인데, 문서를 레이블링하기 위하여 먼저 OCR 엔진을 적용하여 digitize하는 과정이 필요합니다. Data Manager가 현재 지원하는 OCR 엔진은 아래의 4가지입니다.

  • UiPath Document OCR
  • Google Cloud Vision OCR
  • Microsoft Read OCR
  • OmniPage OCR

UiPath Document OCR을 제외한 나머지 세 개의 OCR은 한글을 지원합니다. 하지만 이 중에 인터넷 연결 없이 on-premise 방식으로 사용할 수 있는 것은 OmniPage 뿐입니다. 금융권을 비롯한 많은 고객사의 문서들은 외부로 유출되어서는 안되기 때문에 클라우드 OCR을 사용할 수 없다는 현실적인 제약이 있는데 이것을 만족하면서 한글을 지원하는 OCR 엔진은 OmniPage가 유일합니다. 그런데, Data Manager가 현재 제공하는 OCR 엔진 인터페이스에는 언어를 지정하는 기능이 아직 없습니다. 향후 추가할 계획을 가지고 있습니다만 아직은 언제가 될지 모르는 상황입니다.

OmniPage OCR로 한글 문서를 처리할 때 한글(KOR)이라고 지정해준 인식 결과와 언어를 지정하지 않은 인식 결과에는 큰 차이가 있습니다. 언어를 지정하지 않으면 한글 인식률이 급격히 떨어져서 사용하기 어려운 수준이 됩니다.

아래에 첨부한 워크플로우를 사용하면 이런 제약을 극복할 수 있습니다. 로봇이 사용할 수 있는 모든 OCR 엔진을 사용하여 문서를 Digitize 할 수 있고, digital text를 이미 가지고 있는 native pdf 문서인 경우 OCR을 적용하지 않고 digital text를 그대로 Data Manager에서 사용할 수도 있습니다.

EDIT. pdf 문서에 digital text가 있어도 OCR이 적용될 수 있습니다. pdf 문서에 OCR을 적용하지 않도록 설정하는 기능이 조만간 추가될 예정입니다.

EDIT. UiPath.IntelligentOCR.Activities 패키지 5.1.0-preivew 버전에서 ForceApplyOCR 옵션이 ApplyOcrOnPdf 옵션으로 변경되었습니다. ApplyOcrOnPdf=False로 설정하면 OCR을 적용하지 않고 PDF의 digital text를 그대로 사용할 수 있습니다. 상세한 내용은 아래의 링크에서 확인할 수 있습니다.

https://docs.uipath.com/activities/docs/202111-digitize-document-preview

datamanager-ocr.zip (5.3 KB)

전체 워크플로우는 아래와 같습니다.

datamanager-ocr.zip 패키지의 압축을 해제하면 두 개의 빈 폴더가 폴더가 생성되는데, 그 중 Documents 폴더에 레이블링 대상 문서를 넣어주면 됩니다. 첨부한 워크플로우에서는 ABBYY FineReader OCR을 사용하고 있는데, 문서에 적합한 OCR로 교체하여 사용하면 됩니다.

워크플로우를 실행하고 나면 ToDataManager 폴더에 OCR을 적용한 결과가 저장됩니다. 이 폴더를 zip으로 패키징하여 Data Manager에서 import 하면 아래와 같이 ML Extractor Trainer에서 저장한 문서들을 import 한다는 것을 자동으로 감지하고, 이미 OCR이 적용된 문서들이기 때문에 OCR을 적용하지 않고 그대로 사용하게 됩니다.

EDIT. zip 패키지는 아래와 같은 구조가 되도록 묶어주시는 것이 바람직합니다. 최신 버전의 Data Manager는 documents와 metadata 폴더의 상위에 폴더가 없어도 import에 문제가 없습니다만, 이전 버전의 Data Manager는 상위 폴더가 없으면 import 시에 오류가 발생합니다.
image

EDIT. zip 패키지를 만들 때 7z을 권장합니다. 7z이 없으면 윈도우즈의 기본 zip 기능을 사용하시기 바랍니다. 알집 등으로 zip 패키지를 생성하면 import 시에 오류가 발생할 수 있습니다.

Data Manager에 설정한 OCR을 사용하지 않기 때문에 임의의 OCR을 설정하면 됩니다. 스키마에는 "dummy"라는 이름을 가진 string 타입의 regular field 하나만 정의되어 있으면 됩니다. 이 필드를 삭제하고 필요한 필드들을 정의한 후 레이블링을 진행하면 됩니다.

위의 그림에서는 세 개의 문서를 import 하고 있지만 예시의 목적으로 적은 수를 한 것이고, 최소 10개 이상의 문서를 import 하는 것을 권고합니다. 숫자가 너무 적으면 Train / Validation split 과정에서 필요 이상으로 validation 개수가 많아지거나 적어질 수 있습니다.

1 Like

구글 Cloud Vision OCR도 Data Manager에서 언어 지정이 불가능한데 해당 워크플로우를 사용하면 Google Cloud Vision OCR도 원하는 언어로 Data Manager에서 사용할 수 있나요?

네, 가능합니다.