본문 바로가기
데이터라벨링

에이모 부동산계약서 OCR 프로젝트

by 그린망고 2023. 5. 12.
반응형

4월 중순부터 시작해서 얼마 전에 끝이난 프로젝트를 소개할까 합니다.

에이모에서 진행한 프로젝트로 부동산계약서를 받아서 글자에 바운딩을 치고 전사를 하고 AI가 읽을 영역을 지정해 주는 작업입니다.

 

프로젝트 참여

먼저 에이모 홈페이지에 모집 공고를 보고 지원을 했으면 지원자를 상대로 계약서 1장과 가이드를 주고 사전 테스트를 진행했습니다. 그렇게 어렵지는 않았지만 요즘은 사전 테스트도 인원이 많다 보니 선착순이라 얼마나 빨리 가이드를 이해하고 작업을 마무리하는지가 관건이었습니다.

테스트 자료를 받자마자 가이드를 정독하고 동영상 강의를 마쳤고 당일에 작업물을 제출하니 다행히 선발 인원에 들어 다음 날쯤 메일로 합격 연락과 슬랙 초대가 되었습니다. 이제부터 가이드를 토대로 부동산계약서 OCR프로젝트에 대해 포스팅해 보겠습니다.

 

프로젝트 목적 

촬영된 부동산계약서의 문자와 내용을 인식하고, 일부 중요한 내용을 따로 분류하기 위한 프로젝트입니다. 기본적으로 AI가 비박스 작업을 한 파일을 받아 비박스가 맞게 쳐졌는지 확인하고 빈 공간이 넓지 않은지 그리고 전사는 맞게 되었는지 확인하는 작업입니다.

 

작업 내용

  1. 텍스트 검수 : 부동산계약서 문서 내 문자의 박스와 전사 내용 검수
  2. 클래스 변경 : 계약 내용 중 주요하게 인지하고자 하는 내용을 따로 분류
  3. 라인 그룹화 : 문서의 각 줄을 그룹화하여 분류
  4. 날인 및 roi 폴리곤 객체 생성으로 작업 종료

작업 방법

비박스의 종류
비박스의 종류

사용하는 툴에서 비박스는 총 2가지 종류입니다.

  • 회전 박스는 각도 회전이 가능한 바운딩 박스이며 모든 텍스트 클래스와 날인을 작업할 때 사용합니다.
  • 폴리곤은 점을 찍어 객체를 생성하는 다각형 박스이며 이미지 내 문서 영역을 지정하는 roi클래스만 폴리곤으로 작업합니다.

기타 용어

  • OCR 광학 문자 인식, 텍스트 이미지를 기계가 읽을 수 있는 텍스트 포맷으로 변환하는 과정
  • 전사 이미지 안에 글자를 텍스트로 받아 적는 작업
  • 카테고리 클래스의 상위 그룹 (카테고리> 클래스)

회전박스 규칙

회전박스 규칙
회전박스 규칙

모든 글자는 알아볼 수 있다면 평문 클래스로 지정하고 글자의 기울기에 따라 회전박스도 각도를 주어 기울여야 합니다. 또한 글자가 잘려서도 안되며 회전박스의 좌측 상단이 글자가 시작하는 부분에 있어야 합니다.

회전박스의 여백은 가급적 글자에 딱 맞게 박스 사이즈를 조절하며 작거나 큰 박스는 수정을 합니다. 글자 외의 다른 인쇄물(밑줄, 표 등)이 포함되지 않도록 유의하고 회전박스와 회전 박스가 겹쳐져서는 안 됩니다.

세로 문자의 경우 줄 단위로 박스를 생성하고 이때는 의미나 공백과 무관합니다.

 

전사 규칙

텍스트는 날인과 겹침 여부에 관계없이 모두 전사하는 것이 원칙이며 아래의 경우 전사를 하지 않고 Dontcare 클래스로 재분류합니다.

  • 빛 반사, 흐림으로 인해 인식이 불가능한 텍스트
  • 날인과 지나치게 겹쳐 인식이 불가능한 텍스트
  • 날인의 일부인 도장 내 텍스트는 전사 대상이 아님
  • 빛 반사, 흔들림 등으로 기존의 문자와 다르게 보이는 텍스트

특수문자 전사

  • 영문, 한문 및 특수문자는 모두 보이는 그대로 입력
  • 적용된 AI는 한자를 인식하지 못하기 때문에 한자는 반드시 재입력 필요
  • 특수문자는 되도록 툴에 있는 '기호 입력하기' 메뉴를 사용하며 기호가 없을 경우 요청

기호입력기
기호 입력기

클래스 변경

박스 조정과 전사 작업 완료 후 모든 객체의 클래스를 확인하고 변경

클래스에서 속성은 보통 두 가지이며 Key와 Value로 나눔

  • Key 각 클래스의 '항목명'을 명시적으로 나타낸 객체
  • Value 각 클래스에 해당하는 내용을 나타내는 객체

클래스 설정
클래스 설정

 

카테고리

평문, 목적물, 계약내용, 날인, 특약, 임대인, 임차인, 중개업소로 나눈다. 

 

 

클래스

카테고리의 선택에 따라 나타나는 하위 개념으로 어떤 카페고리를 선택하느냐에 따라 클래스 종류는 다르며 해당 클래스의 회전박스를 선택하고 전사를 확인한다.

 

클래스 변경 후 각 객체별로 'is_key' 속성 설정을 하고 모든 계약서에서 'is_key' 값이 존재하는 것은 아니다.

 

'is_key' 설정을 하기 전에는 모든 속성 기본값은 'value'로 지정되어 있다.

 

일부 클래스는 'is_key' 속성에 'key'를 선택할 수 없는 경우도 있다.

 

 

 

 

 

 

작업 예시
작업 예시
에이모 OCR 프로젝트
에이모 OCR 프로젝트

 

짧은 후기

모든 프로젝트가 진입하기는 힘들고 진입하기 전에 익히고 배워야 할게 많다. 시작 전에는 혹시나 떨어질까 봐 조급해지고 막상 본 작업에 들어가도 한 동안은 헤매게 된다. 그리고 대부분의 프로젝트가 운영기간이 짧아 어느 정도 익숙해지면 끝나 버린다. 이 프로젝트도 15일 정도 진행 되었으니 배워야 할 것에 비해 너무나 짧은 기간 진행 되었다.

내가 받은 자료는 1장당 객체의 개수가 평균 610개로 한 장을 잡으면 몇 시간을 작업해야 했다. 좀 더 꼼꼼하게 회전박스의 각도를 잡고 빈 공간을 줄이다 보니 15일은 너무나 빠르게 지나가 버렸고 끝날 때는 아까울 정도로 아쉬운 프로젝트가 되었다.

 

 

 

 

레이블러 중고 물품 촬영하기

레이블러 어플에서 참여 가능한 중고물품 사진 찍기 프로젝트는 사용감이 있는 물품 사진을 수집하는 미션으로 벌써 열린 지 한 달은 된 것 같습니다. 모바일 전용 프로젝트이니 레이블러 앱으

trajectory.tistory.com

 

728x90
반응형

댓글