KR102598085B1 - 데이터 테이블을 저장하는 방법 및 이를 위한 문서 관리 장치 - Google Patents

데이터 테이블을 저장하는 방법 및 이를 위한 문서 관리 장치 Download PDF

Info

Publication number
KR102598085B1
KR102598085B1 KR1020200160518A KR20200160518A KR102598085B1 KR 102598085 B1 KR102598085 B1 KR 102598085B1 KR 1020200160518 A KR1020200160518 A KR 1020200160518A KR 20200160518 A KR20200160518 A KR 20200160518A KR 102598085 B1 KR102598085 B1 KR 102598085B1
Authority
KR
South Korea
Prior art keywords
data
document
text
area
image
Prior art date
Application number
KR1020200160518A
Other languages
English (en)
Other versions
KR20220072669A (ko
Inventor
신현준
권호근
Original Assignee
신현준
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 신현준 filed Critical 신현준
Priority to KR1020200160518A priority Critical patent/KR102598085B1/ko
Publication of KR20220072669A publication Critical patent/KR20220072669A/ko
Application granted granted Critical
Publication of KR102598085B1 publication Critical patent/KR102598085B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/183Tabulation, i.e. one-dimensional positioning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/334Query execution
    • G06F16/3347Query execution using vector based model
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/93Document management systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/174Form filling; Merging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/177Editing, e.g. inserting or deleting of tables; using ruled lines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/14Image acquisition
    • G06V30/148Segmentation of character regions
    • G06V30/153Segmentation of character regions using recognition of characters or words
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/40Document-oriented image-based pattern recognition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/40Document-oriented image-based pattern recognition
    • G06V30/41Analysis of document content
    • G06V30/413Classification of content, e.g. text, photographs or tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/40Document-oriented image-based pattern recognition
    • G06V30/42Document-oriented image-based pattern recognition based on the type of document

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Databases & Information Systems (AREA)
  • Multimedia (AREA)
  • Data Mining & Analysis (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 데이터 테이블을 저장하는 방법 및 이를 위한 문서 관리 장치에 관한 것으로, 일 실시예에 따르면 컴퓨팅 수단에 의해 수행되는, 문서로부터 주요 정보를 추출하여 데이터 테이블을 저장하는 방법으로서, 문서의 종류가 특정된 상기 문서의 이미지를 획득하는 단계, 상기 문서의 이미지 내에 표시된 적어도 하나의 객체의 윤곽선을 검출하여 마스크를 생성하는 단계, 상기 생성된 마스크에 기초하여 상기 문서의 이미지 내에서 테이블 영역 및 텍스트 영역을 결정하는 단계, 상기 테이블 영역의 위치를 확인하여, 상기 문서의 이미지에 포함된 상기 테이블 영역을 크롭하는 단계, 크롭된 상기 테이블 영역에 대하여 문자 인식을 수행하여 제1 텍스트 데이터를 추출하는 단계, 상기 제1 텍스트 데이터 중 상기 문서의 종류에 의해 결정되는 항목 데이터를 확인하는 단계 및 상기 항목 데이터가 존재하는 경우, 상기 제1 텍스트 데이터 중 상기 항목 데이터 및 상기 항목 데이터의 대응 값을 추출하여 상기 문서에 관한 데이터 테이블을 생성하고 저장하는 단계를 포함하는 데이터 테이블을 저장하는 방법을 개시한다.

Description

데이터 테이블을 저장하는 방법 및 이를 위한 문서 관리 장치{METHOD FOR SAVING DATA TABLE AND DOCUMENT MANAGEMENT APPARATUS THEREFOR}
본 출원은 데이터 테이블을 저장하는 방법 및 이를 위한 문서 관리 장치에 관한 것으로, 보다 상세하게는 자동으로 분류된 문서 이미지로부터 주요 정보를 추출하여 데이터 테이블을 저장하는 방법 및 이를 위한 문서 관리 장치에 관한 것이다.
최근, 빅데이터에 관한 관심이 급증하면서 많은 데이터에서 사용자가 원하는 데이터를 추출하는 기술에 관한 기술의 필요성이 대두되고 있다. 예를 들면, 다양한 문서의 카테고리를 자동으로 분류하고, 분류된 문서로부터 사용자가 원하는 데이터를 추출하는 기술일 수 있다. 기업이나 조직의 업무에 있어서 이러한 기술이 도입되는 경우 업무 효율 향상에 도움이 될 수 있다.
문서 분류는 주어진 문서를 이에 적합한 카테고리로 분류하는 텍스트 마이닝 기술 중의 하나로서 스팸 메일 탐지, 뉴스분류, 자동응답 등 다양한 분야에 활용되고 있다. 문서 분류에는 기계 학습 알고리즘이 활용되고 있으며 최근에는 딥러닝의 발전에 따라 심층 신경망(Deep Neural Network)을 이용한 자동분류 알고리즘들이 제안되고 있으나, 완벽한 수준의 문서분류에는 미치지 못하고 있으며 이로 인하여 문서로부터 원하는 데이터를 추출하는 것도 원활하게 수행되고 있지 않다.
따라서, 인공지능 기술을 이용하여 다양한 문서로부터 문서를 분류하거나 원하는 데이터를 추출하는 기술에 대한 기술 개발이 필요한 실정이다.
해결하고자 하는 일 과제는 자동으로 분류된 문서 이미지로부터 추출된 텍스트 데이터에 기반해 문서로부터 주요 정보를 추출하여 데이터 테이블을 저장하는 방법 및 이를 위한 문서 관리 장치를 제공하는 것이다.
본 출원의 해결하고자 하는 과제가 상술한 과제로 제한되는 것은 아니며, 언급되지 아니한 과제들은 본 명세서 및 첨부된 도면으로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
본 발명의 일 양상에 따르면 컴퓨팅 수단에 의해 수행되는, 문서로부터 주요 정보를 추출하여 데이터 테이블을 저장하는 방법으로서, 문서의 종류가 특정된 상기 문서의 이미지를 획득하는 단계, 상기 문서의 이미지 내에 표시된 적어도 하나의 객체의 윤곽선을 검출하여 마스크를 생성하는 단계, 상기 생성된 마스크에 기초하여 상기 문서의 이미지 내에서 테이블 영역 및 텍스트 영역을 결정하는 단계, 상기 테이블 영역의 위치를 확인하여, 상기 문서의 이미지에 포함된 상기 테이블 영역을 크롭하는 단계, 크롭된 상기 테이블 영역에 대하여 문자 인식을 수행하여 제1 텍스트 데이터를 추출하는 단계, 상기 제1 텍스트 데이터 중 상기 문서의 종류에 의해 결정되는 항목 데이터를 확인하는 단계 및 상기 항목 데이터가 존재하는 경우, 상기 제1 텍스트 데이터 중 상기 항목 데이터 및 상기 항목 데이터의 대응 값을 추출하여 상기 문서에 관한 데이터 테이블을 생성하고 저장하는 단계를 포함하는 데이터 테이블을 저장하는 방법이 제공될 수 있다.
본 발명의 다른 일 양상에 따르면 컴퓨터에 상술한 방법을 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체가 제공될 수 있다.
본 발명의 다른 일 양상에 따르면 문서로부터 주요 정보를 추출하여 데이터 테이블을 저장하는 문서 관리 장치로서, 메모리 및 문서의 종류가 특정된 상기 문서의 이미지를 획득하고, 상기 문서의 이미지 내에 표시된 적어도 하나의 객체의 윤곽선을 검출하여 마스크를 생성하고, 상기 생성된 마스크에 기초하여 상기 문서의 이미지 내에서 테이블 영역 및 텍스트 영역을 결정하고, 상기 테이블 영역의 위치를 확인하여, 상기 문서의 이미지에 포함된 상기 테이블 영역을 크롭하고, 크롭된 상기 테이블 영역에 대하여 문자 인식을 수행하여 제1 텍스트 데이터를 추출하고, 상기 제1 텍스트 데이터 중 상기 문서의 종류에 의해 결정되는 항목 데이터를 확인하고 및 상기 항목 데이터가 존재하는 경우, 상기 제1 텍스트 데이터 중 상기 항목 데이터 및 상기 항목 데이터의 대응 값을 추출하여 상기 문서에 관한 데이터 테이블을 생성하고, 생성된 상기 데이터 테이블을 상기 메모리에 저장하는 컨트롤러를 포함하는 문서 관리 장치가 제공될 수 있다.
본 발명의 과제의 해결 수단이 상술한 해결 수단들로 제한되는 것은 아니며, 언급되지 아니한 해결 수단들은 본 명세서 및 첨부된 도면으로부터 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
본 출원의 일 실시예에 의하면 자동으로 분류된 문서 이미지로부터 추출된 텍스트 데이터에 기반해 문서로부터 주요 정보를 추출하여 데이터 테이블을 생성하여 저장함으로써 문서에 대하여 원하는 데이터를 정확하게 추출하고, 원하는 데이터를 추출하는데 있어서 드는 시간을 단축시킬 수 있다.
본 출원의 효과가 상술한 효과들로 제한되는 것은 아니며, 언급되지 아니한 효과들은 본 명세서 및 첨부된 도면으로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확히 이해될 수 있을 것이다.
도 1은 일 실시예에 따른 문서 관리 장치를 나타내는 도면이다.
도 2는 일 실시예에 따른 문서 관리 장치의 문서 분류 기능을 설명하기 위한 도면이다.
도 3은 일 실시예에 따른 문서 분류 방법의 순서도이다.
도 4는 일 실시예에 따른 단어 벡터를 이용한 문서의 종류 결정 방법의 순서도이다.
도 5는 일 실시예에 따른 주제와 관련된 단어 리스트의 예시이다.
도 6은 일 실시예에 따른 기계 학습 모델에 관한 도면이다.
도 7은 일 실시예에 따른 문서의 분류를 설명하기 위한 도면이다.
도 8은 일 실시예에 따른 문서 관리 장치의 데이터 테이블 생성 기능을 설명하기 위한 도면이다.
도 9는 일 실시예에 따른 데이터 테이블 생성 방법의 순서도이다.
도 10은 일 실시예에 따른 테이블 영역으로부터 데이터 테이블을 생성하는 방법의 순서도이다.
도 11은 일 실시예에 따른 테이블 영역에서 항목 데이터 및 항목 데이터의 대응 값의 구분을 설명하기 위한 도면이다.
도 12는 일 실시예에 따른 텍스트 영역으로부터 데이터 테이블을 생성하는 방법의 순서도이다.
도 13은 일 실시예에 따른 텍스트 영역에서 항목 데이터 및 항목 데이터의 대응 값의 구분을 설명하기 위한 도면이다.
도 14는 일 실시예에 따른 데이터 테이블 생성을 설명하기 위한 도면이다.
도 15는 일 실시예에 따른 문서 관리 시스템을 설명하기 위한 도면이다.
본 발명의 상술한 목적, 특징들 및 장점은 첨부된 도면과 관련된 다음의 상세한 설명을 통해 보다 분명해질 것이다. 다만, 본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예들을 가질 수 있는 바, 이하에서는 특정 실시예들을 도면에 예시하고 이를 상세히 설명하고자 한다.
도면들에 있어서, 층 및 영역들의 두께는 명확성을 기하기 위하여 과장되어진 것이며, 또한, 구성요소(element) 또는 층이 다른 구성요소 또는 층의 "위(on)" 또는 "상(on)"으로 지칭되는 것은 다른 구성요소 또는 층의 바로 위 뿐만 아니라 중간에 다른 층 또는 다른 구성요소를 개재한 경우를 모두 포함한다. 명세서 전체에 걸쳐서 동일한 참조번호들은 원칙적으로 동일한 구성요소들을 나타낸다. 또한, 각 실시예의 도면에 나타나는 동일한 사상의 범위 내의 기능이 동일한 구성요소는 동일한 참조부호를 사용하여 설명한다.
본 발명과 관련된 공지 기능 혹은 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 본 명세서의 설명 과정에서 이용되는 숫자(예를 들어, 제1, 제2 등)는 하나의 구성요소를 다른 구성요소와 구분하기 위한 식별기호에 불과하다.
또한, 이하의 설명에서 사용되는 구성요소에 대한 접미사 "모듈" 및 "부"는 명세서 작성의 용이함만이 고려되어 부여되거나 혼용되는 것으로서, 그 자체로 서로 구별되는 의미 또는 역할을 갖는 것은 아니다.
본 발명의 일 양상에 따르면 컴퓨팅 수단에 의해 수행되는 문서 분류 방법으로서, 문서 데이터를 획득하는 단계-상기 문서 데이터는 이미지 파일 및 텍스트 파일 중 적어도 하나의 파일임-, 상기 문서 데이터로부터 텍스트 데이터를 추출하는 단계, 단어를 벡터화하는 벡터화 모델에 상기 추출된 텍스트 데이터를 입력하여, 상기 텍스트 데이터에 포함된 단어의 단어 벡터를 생성하는 단계, 상기 생성된 복수의 단어 벡터를 제1 인공신경망에 입력하여, 상기 복수의 단어 벡터 각각의 주제를 부여하는 단계-상기 주제는 문서의 종류와 관련되고, 상기 제1 인공신경망은 단어 벡터를 입력받기 위한 입력 레이어, 입력된 단어 벡터와 관련된 주제를 출력하기 위한 출력 레이어 및 상기 입력 레이어 및 상기 출력 레이어를 연결하는 복수의 노드를 갖는 은닉 레이어를 포함하고, 훈련 문서의 단어 벡터 및 상기 단어 벡터와 관련된 주제를 반영하는 결과가 라벨링됨에 따라 상기 복수의 노드의 가중치를 조정하여 훈련됨-, 상기 텍스트 데이터에 포함된 단어별로 부여된 주제에 기초하여 상기 문서의 종류를 결정하는 단계를 포함하는 문서 분류 방법이 제공될 수 있다.
일 실시예에서, 상기 문서의 종류를 결정하는 단계는 상기 텍스트 데이터에 포함된 단어별로 부여되는 주제의 개수에 기초하여 문서의 종류를 결정하는 단계를 포함할 수 있다.
일 실시예에서, 상기 문서의 종류는 상기 텍스트 데이터에 포함된 단어들 중 가장 높은 비율의 주제로 결정될 수 있다.
일 실시예에서, 상기 문서의 종류를 결정하는 단계는 문서에 포함된 전체 단어의 각각에 부여된 주제를 고려하여 문서의 종류를 결정하도록, 상기 텍스트 데이터에 포함된 단어 별로 부여되는 주제를 제2 인공신경망에 입력하여 상기 문서의 종류를 결정하는 단계-상기 제2 인공 신경망은 문서에 포함된 전체 단어의 주제 벡터를 입력받기 위한 입력 레이어, 문서의 종류를 반영하는 결과를 출력하기 위한 출력 레이어 및 상기 입력 레이어 및 상기 출력 레이어를 연결하는 복수의 노드를 갖는 은닉 레이어를 포함하고, 훈련 문서에 포함된 전체 단어의 주제 벡터 및 훈련 문서의 종류를 반영하는 결과가 라벨링됨에 따라 상기 복수의 노드의 가중치를 조정하여 훈련됨-를 포함할 수 있다.
일 실시예에서, 상기 텍스트 데이터를 추출하는 단계 이후, 상기 텍스트 데이터 중 소정의 위치의 텍스트를 확인하는 단계;를 더 포함하고, 상기 소정의 위치의 텍스트에 문서의 종류를 나타내는 주요 단어가 포함되어 있는 경우, 상기 문서의 종류는 상기 주요 단어가 나타내는 종류로 우선적으로 결정될 수 있다.
일 실시예에서, 상기 문서는 무역에 관한 문서를 포함하고, 상기 문서의 종류는 계약서, 인보이스, 상업 인보이스, 포장 명세서, 영수증, 보험계약서, 선적서류, 증권거래내역서, 관세신고서 중 적어도 하나를 포함할 수 있다.
일 실시예에서, 상기 텍스트 데이터는 상기 문서 데이터가 이미지 형식으로 저장된 문서 이미지인 경우, 상기 문서 이미지에 대한 문자 인식을 수행하여 텍스트를 추출하여 획득될 수 있다.
일 실시예에서, 상기 문서 이미지는 소정의 파일 확장자의 이미지로 변환되거나 소정의 위치에 맞춰 회전된 이미지일 수 있다.
일 실시예에서, 상기 텍스트 데이터를 획득하는 단계는 상기 문서 데이터와 동일한 데이터를 갖는 임시 데이터를 생성하는 단계 및 상기 임시 데이터로부터 상기 텍스트 데이터를 추출하는 단계를 포함할 수 있다.
본 발명의 다른 일 양상에 따르면 컴퓨터에 상술한 방법을 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체가 제공될 수 있다.
본 발명의 다른 일 양상에 따르면 문서 분류를 수행하는 문서 관리 장치로서, 벡터화 모델 및 제1 인공 신경망을 저장하는 메모리 및 문서 데이터를 획득하고, 상기 문서 데이터로부터 텍스트 데이터를 추출하고, 단어를 벡터화하는 상기 벡터화 모델에 상기 추출된 텍스트 데이터를 입력하여, 상기 텍스트 데이터에 포함된 단어의 단어 벡터를 생성하고, 상기 생성된 복수의 단어 벡터를 상기 제1 인공신경망에 입력하여, 상기 복수의 단어 벡터 각각의 주제를 부여하는 단계 및 상기 텍스트 데이터에 포함된 단어별로 부여된 주제에 기초하여 상기 문서의 종류를 결정하는 컨트롤러를 포함하고, 상기 주제는 문서의 종류와 관련되고, 상기 제1 인공신경망은 단어 벡터를 입력받기 위한 입력 레이어, 입력된 단어 벡터와 관련된 주제를 출력하기 위한 출력 레이어 및 상기 입력 레이어 및 상기 출력 레이어를 연결하는 복수의 노드를 갖는 은닉 레이어를 포함하고, 훈련 문서의 단어 벡터 및 상기 단어 벡터와 관련된 주제를 반영하는 결과가 라벨링됨에 따라 상기 복수의 노드의 가중치를 조정하여 훈련될 수 있다.
본 발명의 일 양상에 따르면 컴퓨팅 수단에 의해 수행되는, 문서로부터 주요 정보를 추출하여 데이터 테이블을 저장하는 방법으로서, 문서의 종류가 특정된 상기 문서의 이미지를 획득하는 단계, 상기 문서의 이미지 내에 표시된 적어도 하나의 객체의 윤곽선을 검출하여 마스크를 생성하는 단계, 상기 생성된 마스크에 기초하여 상기 문서의 이미지 내에서 테이블 영역 및 텍스트 영역을 결정하는 단계, 상기 테이블 영역의 위치를 확인하여, 상기 문서의 이미지에 포함된 상기 테이블 영역을 크롭하는 단계, 크롭된 상기 테이블 영역에 대하여 문자 인식을 수행하여 제1 텍스트 데이터를 추출하는 단계, 상기 제1 텍스트 데이터 중 상기 문서의 종류에 의해 결정되는 항목 데이터를 확인하는 단계 및 상기 항목 데이터가 존재하는 경우, 상기 제1 텍스트 데이터 중 상기 항목 데이터 및 상기 항목 데이터의 대응 값을 추출하여 상기 문서에 관한 데이터 테이블을 생성하고 저장하는 단계를 포함하는 데이터 테이블을 저장하는 방법이 제공될 수 있다.
일 실시예에서, 상기 항목 데이터 및 상기 항목 데이터의 대응 값은 상기 테이블 영역의 셀 영역에 대한 텍스트 데이터의 종류에 기초하여 결정될 수 있다.
일 실시예에서, 제1 셀 영역의 텍스트 데이터의 종류가 문자이고, 상기 제1 셀 영역과 좌우 방향 중 하나에 인접한 제2 셀 영역의 텍스트 데이터의 종류가 숫자 및 날짜 중 하나인 경우, 상기 항목 데이터는 상기 제1 셀 영역이 위치한 열과 동일한 열에 위치한 셀 영역에 대한 데이터로 결정되고, 상기 항목 데이터의 대응 값은 상기 제1 셀 영역이 위치한 행과 동일한 행에 위치한 셀 영역에 대한 데이터로 결정될 수 있다.
일 실시예에서, 제1 셀 영역의 텍스트 데이터의 종류가 문자이고, 상기 제1 셀 영역과 상하 방향 중 하나에 인접한 제2 셀 영역의 텍스트 데이터의 종류가 숫자 및 날짜 중 하나인 경우, 상기 항목 데이터는 상기 제1 셀 영역이 위치한 행과 동일한 행에 위치한 셀 영역에 대한 데이터로 결정되고, 상기 항목 데이터의 대응 값은 상기 제1 셀 영역이 위치한 열과 동일한 열에 위치한 셀 영역에 대한 데이터로 결정될 수 있다.
일 실시예에서, 상기 데이터 테이블을 저장하는 방법은 상기 텍스트 영역에 대하여 문자 인식을 수행하여 제2 텍스트 데이터를 추출하는 단계를 더 포함하고, 상기 데이터 테이블은 상기 제1 텍스트 데이터 및 상기 제2 텍스트 데이터 중 적어도 하나로부터 상기 항목 데이터 및 상기 항목 데이터의 대응 값을 추출하여 생성될 수 있다.
일 실시예에서, 상기 데이터 테이블을 저장하는 방법은 상기 제2 텍스트 데이터를 추출하는 단계 이후에 상기 제2 텍스트 데이터 중 상기 문서의 종류에 의해 결정되는 항목 데이터를 확인하는 단계를 더 포함할 수 있다.
일 실시예에서, 상기 항목 데이터 및 상기 항목 데이터의 대응 값은 벡터화 모델을 이용하여 상기 제2 텍스트 데이터의 포함된 단어별로 생성된 단어 벡터에 기초하여 결정될 수 있다.
일 실시예에서, 상기 항목 데이터는 기설정된 단어 벡터와 동일한 단어 벡터를 갖는 단어로 결정되고, 상기 항목 데이터의 대응 값은 상기 기설정된 단어 벡터와 동일한 단어 벡터를 갖는 단어와 상기 텍스트 영역 상에서 소정의 위치 관계를 갖는 값으로 결정될 수 있다.
일 실시예에서, 상기 데이터 테이블의 행과 열 중 하나에 상기 항목 데이터가 입력되고, 상기 데이터 테이블의 행과 열 중 다른 하나에 상기 항목 데이터의 대응 값이 입력될 수 있다.
일 실시예에서, 상기 마스크는 세로선을 추출하는 필터 및 가로선을 추출하는 필터가 상기 문서의 이미지에 적용되어 생성될 수 있다.
일 실시예에서, 상기 마스크를 생성하는 단계는 검출된 윤곽선들 각각이 연결되는 네 개의 지점을 검출하는 단계 및 상기 검출된 네 개의 지점이 선으로 연결된 형태의 사각형상을 포함하는 마스크를 획득하는 단계를 포함할 수 있다.
일 실시예에서, 상기 검출된 윤곽선은 소정의 길이 이상을 가질 수 있다.
일 실시예에서, 상기 테이블 영역 및 텍스트 영역을 결정하는 단계는 상기 생성된 마스크에 기초하여 상기 테이블 영역에 표시된 테이블의 개수를 확인하는 단계를 포함할 수 있다.
일 실시예에서, 상기 데이터 테이블을 저장하는 방법은 상기 문서의 이미지에 노이즈 저감 처리를 수행하는 단계를 더 포함할 수 있다.
일 실시예에서, 상기 문서의 이미지는 그레이 스케일 이미지로 변환된 이미지를 포함할 수 있다.
일 실시예에서, 상기 문서는 인보이스 문서를 포함하고, 상기 항목은 품목, 수량, 회사명, 거래처, 금액, 날짜, 배송 어드레스 중 적어도 하나를 포함할 수 있다.
일 실시예에서, 상기 데이터 테이블을 저장하는 방법은 상기 항목 데이터가 존재하지 않는 경우 상기 문서의 종류가 잘못 특정된 것으로 판단하고, 상기 문서의 이미지를 저장하는 단계를 더 포함할 수 있다.
본 발명의 다른 일 양상에 따르면 컴퓨터에 상술한 방법을 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체가 제공될 수 있다.
본 발명의 다른 일 양상에 따르면 문서로부터 주요 정보를 추출하여 데이터 테이블을 저장하는 문서 관리 장치로서, 메모리 및 문서의 종류가 특정된 상기 문서의 이미지를 획득하고, 상기 문서의 이미지 내에 표시된 적어도 하나의 객체의 윤곽선을 검출하여 마스크를 생성하고, 상기 생성된 마스크에 기초하여 상기 문서의 이미지 내에서 테이블 영역 및 텍스트 영역을 결정하고, 상기 테이블 영역의 위치를 확인하여, 상기 문서의 이미지에 포함된 상기 테이블 영역을 크롭하고, 크롭된 상기 테이블 영역에 대하여 문자 인식을 수행하여 제1 텍스트 데이터를 추출하고, 상기 제1 텍스트 데이터 중 상기 문서의 종류에 의해 결정되는 항목 데이터를 확인하고 및 상기 항목 데이터가 존재하는 경우, 상기 제1 텍스트 데이터 중 상기 항목 데이터 및 상기 항목 데이터의 대응 값을 추출하여 상기 문서에 관한 데이터 테이블을 생성하고, 생성된 상기 데이터 테이블을 상기 메모리에 저장하는 컨트롤러를 포함하는 문서 관리 장치가 제공될 수 있다.
도 1은 일 실시예에 따른 문서 관리 장치(100)를 나타내는 도면이다.
도 2를 참고하면 일 실시예에 따른 문서 관리 장치(100)는 통신 모듈(110), 메모리(120) 및 컨트롤러(130)를 포함할 수 있다.
통신 모듈(110)은 외부 장치와 통신을 수행할 수 있다. 예를 들어, 통신 모듈(110)은 외부 장치와 문서에 관한 정보를 주고받을 수 있다. 일예로, 통신 모듈(110)은 외부 장치로부터 문서에 관한 데이터를 수신하고, 수신된 문서의 종류를 외부 장치에 전송할 수 있다. 다른 일예로, 통신 모듈(110)은 외부 장치로부터 문서에 관한 이미지를 수신하고, 수신된 문서의 이미지로부터 추출한 데이터를 외부 장치(일 예로, 데이터베이스 등)에 전송할 수 있다.
통신 모듈(110)은 유선 통신 또는 무선 통신을 수행하는 다양한 규격의 모듈로 구현될 수 있다. 예를 들어, 통신 모듈(110)은 BLE(Bluetooth Low Energy), 블루투스나 와이파이와 같은 근거리 통신 규격에 따라 수행하는 근거리 통신 모듈이나 3G, 4G 또는 5G 등의 원거리 통신 규격에 따라 수행하는 원거리 통신 모듈을 포함할 수 있다. 또 문서 관리 장치(100)에는 통신 모듈(110)이 복수로 구비될 수도 있다.
메모리(120)에는 각종 정보가 저장될 수 있다. 예를 들어, 메모리(120)에는 문서 관리 장치(100)를 구동하기 위한 오퍼레이팅 시스템(OS: Operating System), 문서를 분류하기 위한 알고리즘에 관한 정보, 문서로부터 데이터 테이블을 생성하기 위한 알고리즘에 관한 정보 등이 저장될 수 있다. 다른 예를 들어, 메모리(120)에는 문서에 관한 데이터, 문서 분류 결과와 관련된 정보, 문서 이미지로부터 생성된 데이터 테이블 등을 저장할 수 있다.
메모리(120)는 플래시 메모리 타입(flash memory type), 하드디스크 타입(hard disk type), 멀티미디어 카드 마이크로 타입(multimedia card micro type), 카드 타입의 메모리(예를 들어 SD 또는 XD 메모리 등), 램(Random Access Memory, RAM), SRAM(Static Random Access Memory), 롬(Read-Only Memory, ROM), EEPROM(Electrically Erasable Programmable Read-Only Memory), PROM(Programmable Read-Only Memory) 자기 메모리, 자기 디스크, 광디스크 중 적어도 하나의 타입의 저장매체를 포함할 수 있다. 또 메모리(120)는 일시적, 영구적 또는 반영구적으로 정보를 저장할 수 있으며, 내장형 또는 탈착형으로 제공될 수 있다.
컨트롤러(130)는 문서 관리 장치(100)의 각 구성을 제어하거나 각종 정보를 처리하고 연산할 수 있다. 예를 들어, 컨트롤러(130)는 통신 모듈(110)을 통해 외부 장치로부터 문서에 관한 데이터를 수신하거나 메모리(120)에 저장된 문서에 관한 데이터를 획득할 수 있다. 다른 예를 들어, 컨트롤러(130)는 메모리(120)에 저장된 사전 학습된 기계학습 모델을 이용하여 문서를 분류할 수 있다. 다른 예를 들어, 컨트롤러(130)는 메모리(120)에 저장된 알고리즘을 이용하여 문서 이미지로부터 데이터 테이블을 생성할 수 있다.
컨트롤러(130)는 소프트웨어, 하드웨어 및 이들의 조합으로 구현될 수 있다. 예를 들어, 하드웨어적으로 컨트롤러(130)는 FPGA((field programmable gate array)나 ASIC(Application Specific Integrated Circuit), 반도체 칩, 및 그 외의 다양한 형태의 전자 회로로 구현될 수 있다. 또 예를 들어, 소프트웨어적으로 컨트롤러(130)는 상술한 하드웨어에 따라 수행되는 논리 프로그램이나 각종 컴퓨터 언어 등으로 구현될 수 있다. 또한 컨트롤러(130)는 마이크로프로세서, 마이크로컨트롤러, 디지털 신호 처리장치(DSP) 혹은 그 임의의 조합을 포함하는 임의의 유형일 수도 있지만, 이에 한정되는 것은 아니다.
이하의 설명에서 별도의 언급이 없는 경우 문서 관리 장치(100)의 동작은 컨트롤러(130)의 제어를 받아 수행되는 것으로 이해될 수 있다.
이하의 설명에서는 상술한 문서 관리 장치(100)를 이용하여 업무를 지원하는 방법이 수행되는 것으로 설명하겠으나, 이는 단순히 설명의 편의를 위한 것에 불과하며, 본 발명의 일 실시예에 따른 문서 관리 방법은 상술한 문서 관리 장치(100) 이외에도 유사한 기능을 가지는 다른 장치나 시스템에 의해서도 수행될 수 있다.
도 2는 일 실시예에 따른 문서 관리 장치의 문서 분류 기능을 설명하기 위한 도면이다.
도 2를 참고하면, 일 실시예에 따른 문서 관리 장치(100)는 문서를 자동으로 분류할 수 있다. 일 실시예에서, 문서는 무역에 관한 문서를 포함하고, 분류되는 문서의 종류는 계약서, 인보이스(invoice), 상업 인보이스(commercial invoice), 포장 명세서(packing list), 영수증, 보험계약서, 선적서류, 증권거래내역서, 관세신고서 등을 포함할 수 있다. 다만, 문서는 무역과 무관한 문서를 포함하는 등 다른 분야의 문서를 포함해도 무방하고 이에 한정되지 않는다.
예를 들어, 문서 관리 장치(100)는 복수의 문서에 관한 데이터를 획득하고, 획득한 복수의 문서에 관한 데이터에 기초하여 복수의 문서를 종류별로 분류할 수 있다. 일예로, 문서 관리 장치(100)는 다양한 종류의 문서 이미지들을 입력 받을 수 있으며, 입력 받은 문서 이미지들을 각각의 문서 종류(A 종류, B 종류, C 종류)별로 분류할 수 있다. 여기서, 문서 이미지들은 카메라(camera) 등으로 촬영되거나, 스캐너(scanner) 등에 의하여 스캔된 이미지일 수 있으며, jpg, tif, png, pdf, gif 등 다양한 종류의 이미지 포맷으로 압축된 이미지를 포함할 수 있다. 물론, 문서 관리 장치(100)는 문서 이미지를 입력 받는 것뿐만 아니라 xlsx, csv 등 다양한 종류의 포맷의 데이터를 입력받아 문서를 분류하는 등 다른 형태의 문서 데이터를 획득하여 문서를 분류해도 무방하고 이에 한정되지 않는다.
도 3은 일 실시예에 따른 문서 분류 방법의 순서도이다.
도 3을 참고하면, 일 실시예에 따른 문서 분류 방법은 문서에 관한 데이터를 획득하는 단계(S100), 문서에 관한 데이터를 전처리하는 단계(S200), 문서의 텍스트 데이터를 획득하는 단계(S300) 및 문서의 텍스트 데이터를 이용하여 문서를 분류하는 단계(S400)를 포함할 수 있다.
일 실시예에 따른 문서 관리 장치(100)는 문서에 관한 데이터를 획득할 수 있다(S100). 획득되는 문서 데이터는 이미지 파일 및 텍스트 파일 중 적어도 하나의 파일일 수 있다.
예를 들어, 컨트롤러(130)는 적어도 하나의 문서에 관한 데이터를 획득할 수 있다. 일예로, 컨트롤러(130)는 다양한 종류의 문서 이미지들을 획득할 수 있다. 다른 일예로, 컨트롤러(130)는 문서에 관한 텍스트 기반의 문서 데이터를 획득할 수 있다. 물론, 컨트롤러(130)는 문서 이미지를 입력 받는 것뿐만 아니라 xlsx, csv 등 다양한 종류의 포맷의 데이터를 획득하는 등 이에 한정되지 않는다.
또한, 컨트롤러(130)는 획득한 문서에 관한 데이터와 동일한 데이터를 갖는 임시 데이터를 생성할 수 있다. 예를 들어, 컨트롤러(130)는 획득한 문서에 관한 데이터를 복사하여 임시 데이터를 생성하고, 임시 저장할 수 있다. 컨트롤러(130)는 생성된 임시 데이터를 이용하여 문서를 분류할 수 있다.
일 실시예에 따른 문서 관리 장치(100)는 문서에 관한 데이터를 전처리할 수 있다(S200).
일 실시예에서, 컨트롤러(130)는 문서에 관한 데이터의 포맷을 소정의 포맷의 데이터로 변환할 수 있다. 예를 들어, 컨트롤러(130)는 획득한 다양한 종류의 문서 이미지를 소정의 파일 확장자의 이미지로 변환할 수 있다. 일예로, 컨트롤러(130)는 획득한 pdf, jpg, png, tif 포맷의 문서 이미지를 jpg 포맷의 이미지로 변환할 수 있다.
또한, 컨트롤러(130)는 하나의 파일에 복수개의 이미지 정보가 있는 경우 이미지의 수만큼 파일을 새로 생성하고, 하나의 파일에는 하나의 이미지만을 저장할 수 있다. 예를 들면 컨트롤러(130)는 하나의 pdf나 tif 파일에 5개의 이미지가 저장되어 있으면 하나씩 분리하여 5개의 jpg 파일을 생성할 수 있다. 여기서, 컨트롤러(130)는 분리된 jpg 파일을 한번에 처리할 수 있다.
물론, 컨트롤러(130)는 문서 이미지가 아니라 다양한 종류의 포맷의 데이터를 소정의 포맷의 데이터로 변환하는 등 다른 방식으로 문서 데이터의 포맷을 변환해도 무방하며 이에 한정되지 않는다.
일 실시예에서, 컨트롤러(130)는 문서 이미지를 소정의 위치에 맞춰 회전시킬 수 있다. 예를 들어, 컨트롤러(130)는 입력된 문서 이미지가 회전된 이미지인지를 검출하고, 회전된 이미지인 경우 이미지를 회전시키는 전처리를 수행하여 소정의 위치 이미지를 맞출 수 있다. 일 예로, 컨트롤러(130)는 입력된 문서 이미지가 정방향의 문서 이미지가 아닌 경우, 입력된 문서 이미지가 정방향의 문서 이미지가 되도록 입력된 문서 이미지를 회전시킬 수 있다.
또한, 컨트롤러(130)는 다양한 각도로 존재하는 이미지 내의 정보 영역을 인식하여 이미지를 보정할 수도 있다. 예를 들어, 컨트롤러(130)는 Homography 방법을 이용하여 기울어지거나 회전된 주요 정보 영역을 최대 매칭률 값의 앵글로 이미지를 조정할 수 있다. 일예로, 컨트롤러(130)는 이미지에서 주요 정보 영역을 인식하여 각 꼭지각을 90도로 맞추어 문서 이미지를 보정할 수 있다.
물론, 컨트롤러(130)는 문서 이미지의 노이즈를 저감시키는 전처리를 수행하는 등 다양한 형태로 문서 이미지를 보정할 수 있으며, 이에 한정되지 않는다.
일 실시예에 따른 문서 관리 장치(100)는 문서의 텍스트 데이터를 획득할 수 있다(S300).
일 실시예에서, 컨트롤러(130)는 획득한 문서에 관한 데이터가 문서 이미지인 경우, 문자 인식을 수행하여 문서 이미지로부터 텍스트 데이터를 획득할 수 있다. 예를 들어, 컨트롤러(130)는 문서 이미지에서 광학 문자 인식(OCR)을 이용해 이미지에서 텍스트를 추출할 수 있다. 일예로, 컨트롤러(130)는 광학 문자 인식(OCR)을 이용해 문서 이미지에서 전체 영역으로부터 텍스트를 추출할 수 있다. 다른 일예로, 컨트롤러(130)는 광학 문자 인식(OCR)을 이용해 문서 이미지에서 소정의 영역(일예로, 문서의 제목 부분 등)으로부터 텍스트를 추출할 수 있다.
물론, 컨트롤러(130)는 자기 잉크 문자 인식(MICR)으로 문자 인식을 수행하는 등 다양한 형태로 텍스트를 추출할 수 있으며, 이에 한정되지 않는다.
일 실시예에 따른 문서 관리 장치(100)는 문서의 텍스트 데이터를 이용하여 문서를 분류할 수 있다(S400).
일 실시예에서, 컨트롤러(130)는 문서의 주요 영역의 텍스트 데이터를 이용하여 문서를 분류할 수 있다.
예를 들어, 컨트롤러(130)는 문서의 전체 영역으로부터 추출된 텍스트 중 소정의 위치에 있는 텍스트에 문서의 종류를 나타내는 주요 단어가 포함되어 있는 경우, 상기 소정의 위치에 있는 주요 단어가 나타내는 종류로 우선적으로 문서의 종류를 결정할 수 있다. 일예로, 컨트롤러(130)는 문서의 전체 영역에 문자 인식을 수행하여 전체 텍스트를 추출하고, 문서의 제목 위치에 있는 텍스트에 '인보이스'라는 단어가 포함되어 있는 경우, 문서의 종류를 인보이스로 결정할 수 있다.
대안적으로, 컨트롤러(130)는 소정의 영역으로부터 추출된 텍스트에 문서의 종류를 나타내는 주요 단어가 포함되어 있는 경우, 상기 소정의 영역에 포함된 주요 단어가 나타내는 종류로 우선적으로 문서의 종류를 결정할 수 있다. 일예로, 컨트롤러(130)는 문서의 제목 영역에 문자 인식을 수행하여 텍스트를 추출하고, 문서의 제목 영역에 '인보이스'라는 단어가 포함되어 있는 경우, 문서의 종류를 인보이스로 결정할 수 있다.
일 실시예에서, 컨트롤러(130)는 텍스트 데이터에 포함된 단어를 벡터화하여 문서를 분류할 수 있다. 이에 대해서는 아래에서 자세히 설명하도록 한다.
물론, 일 실시예에 따른 문서 분류 방법은 상술한 방법에 한정되지는 않으며, 일부 단계가 생략 또는 치환되거나 일부 단계가 부가되는 등 다른 방식으로도 구현될 수 있다.
도 4는 일 실시예에 따른 단어 벡터를 이용한 문서의 종류 결정 방법의 순서도이다.
도 4를 참고하면, 일 실시예에 따른 단어 벡터를 이용한 문서의 종류 결정 방법은 텍스트 데이터에 포함된 단어 별로 단어 벡터를 생성하는 단계(S410), 인공신경망을 이용하여 텍스트 데이터에 포함된 단어 별로 주제를 부여하는 단계(S420) 및 단어 별로 부여된 주제에 기초하여 문서의 종류를 결정하는 단계(S430)를 포함할 수 있다.
일 실시예에 따른 문서 관리 장치(100)는 텍스트 데이터에 포함된 단어 별로 단어 벡터를 생성할 수 있다(S410).
일 실시예에서, 컨트롤러(130)는 단어를 벡터화하는 벡터화 모델에 추출된 텍스트 데이터를 입력하여, 텍스트 데이터에 포함된 단어의 단어 벡터를 생성할 수 있다. 즉, 컨트롤러(130)는 단어 임베딩(word embedding)을 수행하여 단어들의 벡터값을 정의해줄 수 있다. 예를 들어, 컨트롤러(130)는 기설정된 학습 기법 또는 학습 기법 지정 알고리즘에 따라 선택된 학습 기법에 의해 구축된 벡터화 모델을 이용하여 텍스트 데이터에 포함된 단어 별로 단어 벡터를 생성할 수 있다. 일예로, 컨트롤러(130)는 Word2vec, AdaGram, fastText, Doc2vec 등을 이용하여 텍스트 데이터에 포함된 단어 별로 단어 벡터를 생성할 수 있다.
텍스트 데이터의 벡터화는 단어 별로 벡터값을 산출하는 것으로, 벡터화는 단어 별로 m 차원의 (N1, N2...Nm)의 벡터값을 산출하는 것을 의미하고, m 차원은 벡터 차원일 수 있다. 벡터 차원은 주제와 아울러서 훈련 문서의 개수 및 컴퓨팅 디바이스의 성능에 따라 적어도 하나 이상 결정될 수 있다.
물론, 컨트롤러(130)는 TF (Term Frequency)를 산출하여 이를 문서 벡터의 성분 값으로으로 활용하는 Bag-of-Words 방식을 이용하여 단어 벡터를 생성하는 등 이에 한정되지는 않는다.
일 실시예에 따른 문서 관리 장치(100)는 인공신경망을 이용하여 텍스트 데이터에 포함된 단어 별로 주제를 부여할 수 있다(S420).
일 실시예에서, 컨트롤러(130)는 주제 및 단어 사이의 연관성을 결정하기 위한 인공신경망을 이용하여 텍스트 데이터에 포함된 단어 별로 주제를 부여할 수 있다. 여기서, 주제는 문서의 종류와 관련이 있는 주제로 선택될 수 있다.
예를 들어, 주제는 문서의 종류와 동일할 수 있다. 일예로, 문서의 종류가 계약서, 인보이스, 상업 인보이스(commercial invoice), 포장 명세서(packing list), 영수증, 보험계약서, 선적서류, 증권거래내역서, 관세신고서인 경우 주제는 상기 문서의 종류 중 적어도 하나가 선택될 수 있다.
다른 예를 들어, 주제는 문서의 종류와 연관된 주제일 수 있다. 일예로, 문서의 종류가 계약서, 인보이스, 상업 인보이스(commercial invoice), 포장 명세서(packing list), 영수증, 보험계약서, 선적서류, 증권거래내역서, 관세신고서인 경우 주제는 인보이스와 관련된 견적 인보이스(proforma invoice), 선적 인보이스(shipping invoice), 세관 인보이스(customs invoice), 영사 인보이스(consular invoice) 등으로 선택될 수 있다.
도 5는 일 실시예에 따른 주제와 관련된 단어 리스트의 예시이다.
도 5를 참고하면, 메모리(120) 또는 데이터베이스(300)에 저장되는 주제와 관련된 단어 리스트는 문서의 종류와 관련된 k개의 주제와 각 주제와 연관된 단어들의 집합으로 구성될 수 있다. 예를 들어, 컨트롤러(130)는 주제와 관련된 단어 리스트에 기초하여 주제 및 단어 사이의 연관성을 결정할 수 있다.
주제 1은 인보이스에 관한 주제로 주제 1과 관련된 단어는 인보이스, 날짜, 배송, 견적, 보장, 환불 등의 단어를 포함할 수 있다. 주제 2는 계약서에 관한 주제로 주제 2와 관련된 단어는 계약, 서명, 책임, 보상, 배상, 해제 등의 단어를 포함할 수 있다. 주제 3은 포장 명세서에 관한 주제로 주제 3과 관련된 단어는 패킹, 리스트, 화물, 선적일, 선적항, 통지처 등의 단어를 포함할 수 있다. 주제 4는 영수증에 관한 주제로 주제 4와 관련된 단어는 영수, 공급자, 업태, 날짜, 청구, 현금 등의 단어를 포함할 수 있다. 주제와 관련된 단어 리스트 기반의 주제 및 단어 사이의 연관성은 인공신경망 훈련 시 라벨링에 사용될 수 있다.
물론, 도 5에 도시된 단어 리스트는 설명의 편의를 위한 예시일 뿐이며 이에 한정되지 않는다. 몇몇 실시예에 따르면 도 5의 단어 리스트에서 구성이 부가되거나 제외될 수 있으며, 또한 세분화될 수 있다. 또한, 컨트롤러(130)는 주제 및 단어 사이의 연관성을 다른 방식으로 결정해도 무방하고, 상술한 기재에 한정되지는 않는다.
도 6은 일 실시예에 따른 기계 학습 모델에 관한 도면이다.
도 6을 참조하면, 인공 신경망은 입력 레이어, 은닉 레이어 및 출력 레이어를 포함할 수 있다. 은닉 레이어는 입력 레이어 및 출력 레이어를 연결하는 복수의 노드를 가질 수 있다. 이러한 인공 신경망은 입력 레이어로 입력될 입력 데이터와 미리 확인된 출력값이 서로 태깅된 러닝 셋을 통해 은닉 레이어의 가중치 값을 조정함으로써 고도로 학습되고, 입력 데이터로부터 정확한 출력값을 도출하도록 학습될 수 있다. 입력 레이어에는 단어 벡터가 입력 데이터로 이용될 수 있다. 예를 들어, 인공신경망은 복수의 단어 벡터와 상기 단어 벡터가 어느 주제와 관련되어 있는지를 반영하는 식별자가 서로 태깅된 러닝 셋을 통해 학습되고, 입력된 단어 벡터와 관련된 주제를 반영하는 결과를 산출할 수 있다. 인공신경망은 훈련 문서의 단어 벡터 및 상기 단어 벡터와 관련된 주제를 반영하는 결과가 라벨링됨에 따라 상기 복수의 노드의 가중치를 조정하여 훈련될 수 있다.
일 예로, 인공 신경망은 입력 레이어에는 단어 벡터가 입력 데이터로 입력되고, 그와 관련된 결과값이 출력 레이어로 출력되도록 설계될 수 있다. 예를 들어, 단어 벡터가 입력 데이터로 입력되고, 출력값으로 입력된 단어 벡터와 관련된 주제를 반영하는 결과 등이 출력될 수 있다. 여기서, 출력되는 출력값은 단어 벡터에 부여될 주제가 어떤 주제인지와 관련된 확률일 수 있고, 인공신경망은 가장 높은 확률을 갖는 주제로 단어 벡터에 주제를 부여할 수 있다.
다른 예로, 인공 신경망은 입력 레이어에는 복수의 단어 벡터가 입력 데이터로 입력되고, 그와 관련된 결과값이 출력 레이어로 출력되도록 설계될 수 있다. 예를 들어, 복수의 단어 벡터가 입력 데이터로 입력되고, 출력값으로 입력된 단어 벡터와 관련된 주제를 반영하는 결과 등이 출력될 수 있다. 여기서, 출력되는 출력값은 단어 벡터에 부여될 주제가 어떤 주제인지와 관련된 확률일 수 있고, 인공신경망은 가장 높은 확률을 갖는 주제로 단어 벡터에 주제를 부여할 수 있다.
인공 신경망의 종류로는 필터를 이용해 특징을 추출하는 합성곱신경망(convolution neural network, CNN) 및 노드의 출력이 다시 입력으로 피드백 되는 구조를 갖는 순환인공신경망(recurrent neural network, RNN)이 있고, 제한된 볼츠만 머신(restricted Boltzmann machine, RBM), 심층신뢰신경망(deep belief network, DBN), 생성대립신경망(generative adversarial network, GAN), 관계형 네트워크(relation networks, RN) 등 다양한 구조가 적용될 수 있고 제한이 있는 것은 아니다.
물론, 또한, 도 6에 도시된 기계 학습 모델은 설명의 편의를 위한 예시일 뿐이며 이에 한정되지 않는다. 몇몇 실시예에 따르면 도 6의 기계 학습 모델에서 구성이 부가되거나 제외될 수 있으며, 또한 세분화될 수 있다.
다시 도 4로 돌아와서 설명하도록 한다.
일 실시예에 따른 문서 관리 장치(100)는 단어 별로 부여된 주제에 기초하여 문서의 종류를 결정할 수 있다(S430).
일 실시예에서, 컨트롤러(130)는 문서의 텍스트 데이터에 포함된 단어별로 부여되는 주제의 개수에 기초하여 문서의 종류를 결정할 수 있다. 예를 들어, 컨트롤러(130)는 문서의 텍스트 데이터에 포함된 단어별로 부여되는 주제의 개수에 기초하여 문서의 단어별로 부여된 주제의 비율을 확인하고, 가장 높은 비율의 주제와 관련된 종류를 문서의 종류로 결정할 수 있다. 일예로, 컨트롤러(130)는 문서의 텍스트 데이터에 포함된 단어별로 부여되는 주제의 개수에 기초하여 문서의 단어별로 부여된 주제의 비율을 확인하고, 가장 높은 비율의 주제가 인보이스인 경우 문서의 종류를 인보이스로 결정할 수 있다.
물론, 컨트롤러(130)는 문서의 텍스트 데이터에 포함된 단어별로 부여되는 주제의 개수/비율을 계산하고, 소정의 개수 범위 또는 소정의 비율 범위에 있는 주제에 기초하여 문서의 종류를 결정하는 등 다른 방식으로 문서의 종류를 결정해도 무방하고 상술한 기재에 한정되지는 않는다.
일 실시예에서, 컨트롤러(130)는 문서의 종류를 결정하기 위한 인공 신경망을 이용하여 문서의 종류를 결정할 수 있다. 예를 들어, 컨트롤러(130)는 문서에 포함된 전체 단어의 각각에 부여된 주제를 고려하여 문서의 종류를 결정하도록, 텍스트 데이터에 포함된 단어 별로 부여되는 주제를 인공신경망에 입력하여 문서의 종류를 결정할 수 있다. 여기서, 상기 인공 신경망은 문서에 포함된 전체 단어의 주제 벡터를 입력받기 위한 입력 레이어, 문서의 종류를 반영하는 결과를 출력하기 위한 출력 레이어 및 상기 입력 레이어 및 상기 출력 레이어를 연결하는 복수의 노드를 갖는 은닉 레이어를 포함하할 수 있다. 상기 인공 신경망은 훈련 문서에 포함된 전체 단어의 주제 벡터 및 훈련 문서의 종류를 반영하는 결과가 라벨링됨에 따라 상기 복수의 노드의 가중치를 조정하여 훈련될 수 있다.
주제 벡터는 문서에 포함된 전체 단어에 각각 부여되는 주제를 벡터화한 형태로, 문서에 포함된 전체 단어와 주제와의 연관성을 나타내는 벡터일 수 있다. 일 예로 주제 벡터는 단어 벡터 및 상기 단어 벡터에 부여되는 주제가 벡터화된 벡터가 연접된 형태의 벡터일 수 있다. 다른 일예로, 주제 벡터는 문서에 포함된 전체 단어에 대해 수치화된 주제가 원소로 포함되는 벡터일 수 있다.
물론, 일 실시예에 따른 문서의 종류 결정 방법은 상술한 방법에 한정되지는 않으며, 일부 단계가 생략 또는 치환되거나 일부 단계가 부가되는 등 다른 방식으로도 구현될 수 있다.
도 7은 일 실시예에 따른 문서의 분류를 설명하기 위한 도면이다.
도 7을 참고하면, 문서 관리 장치(100)는 입력된 문서에 관한 데이터로부터 텍스트 데이터(20)를 획득할 수 있다. 예를 들어, 문서 관리 장치(100)는 문서 이미지로부터 문자 인식을 수행하여 텍스트 데이터(20)를 획득할 수 있다. 문서 관리 장치(100)는 문서 이미지의 전체 영역 또는 소정의 영역으로부터 문자 인식을 수행하여 텍스트 데이터(20)를 획득할 수 있다.
문서 관리 장치(100)는 텍스트 데이터(20)에 포함된 단어 별로 단어 벡터(21)를 생성할 수 있다. 예를 들어, 문서 관리 장치(100)는 벡터화 모델을 이용하여 텍스트 데이터(20)에 포함된 단어별로 단어 벡터(21)를 생성할 수 있다. 일예로, 문서 관리 장치(100)는 텍스트 데이터(20)로부터 {a1, b1, c1, d1}, {a2, b2, c2, d2}, ㆍㆍ {a3, b3, c3, d3}, ㆍㆍ {a4, b4, c4, d4}, ㆍㆍ {a5, b5, c5, d5}, ㆍㆍ{a6, b6, c6, d6}, {a7, b7, c7, d7}, ㆍㆍ {a8, b8, c8, d8}, {a9, b9, c9, d9}, {a10, b10, c10, d10}을 포함하는 단어 벡터(21)들을 생성할 수 있다.
문서 관리 장치(100)는 인공신경망을 이용하여 텍스트 데이터(20)에 포함된 단어 별로 주제(22)를 부여할 수 있다. 예를 들어, 문서 관리 장치(100)는 인공신경망을 이용하여 텍스트 데이터(20)로부터 생성된 단어별 단어 벡터(21)에 문서의 종류와 관련된 주제(22)를 부여할 수 있다. 일예로, 문서 관리 장치(100)는 인공신경망을 이용하여 {a1, b1, c1, d1}, {a2, b2, c2, d2}, {a3, b3, c3, d3}, {a5, b5, c5, d5}, {a7, b7, c7, d7}, {a8, b8, c8, d8}, {a9, b9, c9, d9}, {a10, b10, c10, d10}에는 계약서 관련 주제를 부여하고, {a4, b4, c4, d4}에는 영수증 관련 주제를 부여하고, {a6, b6, c6, d6}에는 인보이스 관련 주제를 부여할 수 있다. 여기서, 인공신경망은 S420 단계에서 설명한 인공신경망이 이용될 수 있다.
문서 관리 장치(100)는 문서 관리 장치(100)는 단어 별로 부여된 주제(22)에 기초하여 문서의 종류를 결정할 수 있다. 예를 들어, 문서 관리 장치(100)는 문서의 텍스트 데이터에 포함된 단어별로 부여되는 주제(22)의 개수에 기초하여 문서의 종류를 결정할 수 있다. 일예로, 문서 관리 장치(100)는 문서의 텍스트 데이터에 포함된 단어별로 부여되는 주제(22)의 개수에 기초하여 문서의 단어별로 부여된 주제(22)의 비율을 확인하고, 계약서 주제의 비율이 0.8, 인보이스 주제의 비율이 0.1, 영수증 주제의 비율이 0.1이므로 문서의 종류를 계약서(23)로 결정할 수 있다.
물론, 또한, 도 7에 도시된 내용은 설명의 편의를 위한 예시일 뿐이며 이에 한정되지 않는다.
도 8은 일 실시예에 따른 문서 관리 장치의 데이터 테이블 생성 기능을 설명하기 위한 도면이다.
도 8을 참고하면, 일 실시예에 따른 문서 관리 장치(100)는 문서로부터 특정 데이터를 추출할 수 있다. 예를 들어, 문서 관리 장치(100)는 문서에 관한 데이터를 획득하고, 획득한 문서에 관한 데이터 중 특정 데이터를 추출하여 데이터 테이블(31)을 생성할 수 있다. 일예로, 문서 관리 장치(100)는 문서 이미지를 입력 받을 수 있으며, 입력 받은 문서 이미지로부터 문서에 관한 데이터 테이블(31)을 생성할 수 있다.
데이터 테이블(31)은 행과 열로 구성된 2차원 배열로 데이터가 저장되는 테이블을 의미할 수 있다. 예를 들어, 데이터 테이블(31)은 복수의 데이터 셀(32)을 포함하고, 데이터 셀(32) 단위로 데이터(A, B, C, a1, a2, a3, b1, b2, b3, c1, c2, c3)가 저장되어 있는 스프레드 시트 방식 또는 판다스(Pandas)에서 사용되는 데이터 프레임 형식 등일 수 있으나 이에 한정되지는 않으며 넓게 해석되어야 할 것이다.
문서 이미지들은 카메라 등으로 촬영되거나, 스캐너 등에 의하여 스캔된 이미지일 수 있으며, jpg, tif, png, pdf, gif 등 다양한 종류의 이미지 포맷으로 압축된 이미지를 포함할 수 있다. 물론, 문서 관리 장치(100)는 문서 이미지를 입력 받는 것뿐만 아니라 xlsx, csv 등 다양한 종류의 포맷의 데이터를 입력받아 데이터 테이블을 생성하는 등 이에 한정되지 않는다.
물론, 또한, 도 8에 도시된 내용은 설명의 편의를 위한 예시일 뿐이며 이에 한정되지 않는다.
도 9는 일 실시예에 따른 데이터 테이블 생성 방법의 순서도이다.
도 9를 참고하면, 일 실시예에 따른 데이터 테이블 생성 방법은 문서의 이미지를 획득하는 단계(S1000), 테이블 영역 및 텍스트 영역을 결정하는 단계(S2000), 및 테이블 영역으로부터 추출된 제1 텍스트 데이터 및 텍스트 영역으로부터 추출된 제2 텍스트 데이터 중 적어도 하나를 이용하여 데이터 테이블을 생성하는 단계(S3000)를 포함할 수 있다.
일 실시예에 따른 문서 관리 장치(100)는 문서의 이미지를 획득할 수 있다(S1000).
예를 들어, 컨트롤러(130)는 다양한 종류의 문서 이미지들을 획득할 수 있다. 물론, 컨트롤러(130)는 문서 이미지를 입력 받는 것뿐만 아니라 xlsx, csv 등 다양한 종류의 포맷의 데이터를 획득하는 등 이에 한정되지 않는다.
일 실시예에서, 컨트롤러(130)는 문서의 종류가 특정된 문서의 이미지를 획득할 수 있다. 예를 들어, 컨트롤러(130)는 상술한 문서 분류 방법을 이용하여 문서의 종류를 자동으로 분류하고 종류가 특정된 문서 이미지를 획득할 수 있다. 일예로, 컨트롤러(130)는 획득한 문서 이미지에 기초하여 문서를 '인보이스' 문서로 분류하여 인보이스 문서에 대한 이미지를 별도로 획득할 수 있다.
문서 관리 장치(100)는 획득한 문서의 이미지와 동일한 이미지를 갖는 임시 이미지를 생성할 수 있다. 예를 들어, 컨트롤러(130)는 획득한 문서에 관한 이미지를 복사하여 임시 이미지를 생성하고, 임시 저장할 수 있다. 컨트롤러(130)는 생성된 임시 이미지를 이용하여 문서에 관한 데이터 테이블을 생성할 수 있다.
선택적으로, 문서 관리 장치(100)는 전처리된 문서 이미지를 획득할 수 있다. 예를 들어, 컨트롤러(130)는 문서 이미지의 포맷을 소정의 포맷의 이미지로 변환할 수 있다. 일예로, 컨트롤러(130)는 획득한 pdf, jpg, png, tif 포맷의 문서 이미지를 jpg 포맷의 이미지로 변환할 수 있다.
다른 예를 들어, 컨트롤러(130)는 획득한 이미지를 그레이 스케일 이미지로 변환할 수 있다. 일예로, 컨트롤러(130)는 레드(Red), 그린(Green), 블루(Blue)의 3채널로 이루어진 문서 이미지를 1채널로 이루어진 이미지로 변환시켜 그레이 스케일 이미지를 생성할 수 있다. 그레이 스케일 이미지는 1개의 채널에서 하나의 값만을 가지므로 처리해야할 연산량이나 변수로 지정할 부분이 적어지고 단순해지기 때문에, 문서 관리 장치(100)의 처리 속도나 정확도가 향상될 수 있다.
다른 예를 들어, 컨트롤러(130)는 획득한 이미지의 노이즈를 저감하는 전처리를 수행할 수 있다. 일예로, 컨트롤러(130)는 인공지능 모델을 활용하여 획득한 문서 이미지 내의 노이즈 값을 특정하고, 특정된 노이즈 값을 제거하여 문서 이미지의 선명도를 높일 수 있다.
물론, 컨트롤러(130)는 다른 방식으로 전처리가 수행된 이미지를 획득하여도 무방하다.
일 실시예에 따른 문서 관리 장치(100)는 테이블 영역 및 텍스트 영역을 결정할 수 있다(S2000).
일 실시예에서, 컨트롤러(130)는 주요 정보가 위치한 영역을 결정할 수 있다. 주요 정보 영역은 테이블 영역 및 텍스트 영역을 포함할 수 있다. 테이블 영역은 테이블이 위치한 영역을 의미할 수 있다. 텍스트 영역은 텍스트가 위치한 영역뿐만 아니라 테이블 영역 외부의 텍스트가 위치한 영역과 여백 혹은 다른 객체가 표시된 영역 등을 포함하는 영역을 의미하는 등 넓게 해석되어야 한다.
컨트롤러(130)는 문서 이미지의 테이블 영역 및 텍스트 영역을 인식하기 위한 마스크를 생성할 수 있다. 예를 들어, 컨트롤러(130)는 이미지 내에 표시된 적어도 하나의 객체의 윤곽선을 검출하여 마스크를 생성할 수 있다.
구체적으로, 컨트롤러(130)는 검출된 윤곽선들 각각이 연결되는 네 개의 지점을 검출할 수 있다. 컨트롤러(130)는 검출된 네 개의 지점이 선으로 연결된 형태의 사각형상을 검출하는 마스크를 생성할 수 있다. 여기서, 윤곽선들은 세로 추출 필터 마스크 및 가로 추출 필터 마스크가 이용되어 검출될 수 있다.
일 실시예에서, 컨트롤러(130)는 이미지 내에 표시된 적어도 하나의 객체의 소정의 길이 이상의 윤곽선을 검출하여 마스크를 생성할 수 있다. 이를 통해, 밑줄이나 테이블 영역과는 관계없는 윤곽선이 검출되는 것을 방지할 수 있다.
컨트롤러(130)는 생성된 마스크에 기초하여 문서 이미지의 테이블 영역을 검출할 수 있다. 예를 들어, 컨트롤러(130)는 생성된 마스크와 문서 이미지를 비교하여 문서 이미지 상의 마스크 내에 위치한 영역을 테이블 영역으로 검출하고, 문서 이미지 상의 마스크 외부에 위치한 영역을 텍스트 영역으로 검출할 수 있다. 테이블 영역은 셀 영역을 의미하는 복수의 사각형상으로 구성될 수 있으며, 복수의 셀 영역을 포함하는 외부의 사각형상 내의 영역이 테이블 영역이 될 수 있다.
컨트롤러(130)는 생성된 마스크에 기초하여 테이블 영역의 복수의 셀 영역을 검출할 수 있다. 예를 들어, 컨트롤러(130)는 테이블 영역 내에 위치한 복수의 사각형상의 영역을 셀 영역으로 결정할 수 있다.
컨트롤러(130)는 생성된 마스크에 기초하여 테이블 영역의 테이블의 개수를 확인할 수 있다. 예를 들어, 컨트롤러(130)는 검출된 네 개의 지점이 선으로 연결된 형태의 사각형상이 복수 개 검출하는 마스크를 생성한 경우 테이블의 개수를 복수 개로 결정할 수 있다.
구체적으로, 컨트롤러(130)는 필터를 활용하여 테이블에 대한 마스크를 생성하는 경우 마스크 내부의 모든 테이블을 인식할 수 있다. 컨트롤러(130)는 마스크 내부의 테이블들의 비율을 인식하여 문서 이미지 내부의 테이블의 개수를 확인할 수 있다. 컨트롤러(130)는 인식된 테이블들 각각을 순차적으로 처리하여 각각의 테이블로부터 행 값과 열 값을 추출할 수 있다.
선택적으로, 컨트롤러(130)는 복수의 테이블 영역 모두로부터 텍스트 데이터를 추출하거나 그 중 일부만으로부터 텍스트 데이터를 추출할 수 있다.
일 실시예에서, 컨트롤러(130)는 테이블 영역 및 텍스트 영역을 딥 러닝으로 학습하여 필요한 정보가 있는 영역을 자동으로 인식할 수 있다. 예를 들어, 컨트롤러(130)는 객체 검출(Object Detection) 모델로 문서 이미지에서 테이블 영역 및 텍스트 영역을 검출할 수 있다. 객체 탐지 모델은 문서 이미지를 포함한 학습 데이터로부터 형식, 글자 객체, 숫자 객체, 테이블 객체 등과 그 객체들의 위치를 탐지하고, 탐지율의 향상을 위해 학습된 모델로 일예로, PSENet(Progressive Scale Expansion Network) 기반의 딥러닝 모델을 포함할 수 있다. 또한, 객체 탐지 모델은 원본 이미지, 문서가 일부 접혀진 이미지, 문서가 임의의 각도로 기울어진 이미지, 밝기가 임의로 조절된 이미지, 문서에 표시된 내용이 불명확하거나 끊어진 연결선을 갖는 이미지, 문서의 일부가 굴곡진 이미지, 숫자와 연결선이 겹쳐진 이미지 등을 고려한 학습 데이터에 의해 학습될 수 있다.
일 실시예에 따른 문서 관리 장치(100)는 테이블 영역으로부터 추출된 제1 텍스트 데이터 및 텍스트 영역으로부터 추출된 제2 텍스트 데이터 중 적어도 하나를 이용하여 데이터 테이블을 생성할 수 있다(S3000).
일 실시예에서, 컨트롤러(130)는 테이블 영역의 검출여부에 기초하여 데이터 테이블을 생성할 수 있다. 예를 들어, 컨트롤러(130)는 테이블 영역이 검출되는 경우 테이블 영역으로부터 추출된 제1 텍스트 데이터를 이용하여 데이터 테이블을 생성할 수 있고, 테이블 영역이 검출되지 않는 경우 텍스트 영역으로부터 추출된 제2 텍스트 데이터를 이용하여 데이터 테이블을 생성할 수 있다.
일 실시예에서, 컨트롤러(130)는 제1 텍스트 데이터 및 제2 텍스트 데이터를 모두 이용하여 데이터 테이블을 생성할 수 있다. 예를 들어, 컨트롤러(130)는 제1 텍스트 데이터 및 제2 텍스트 데이터로부터 추출된 데이터를 함께 포함하는 하나의 데이터 테이블을 생성할 수 있다. 다른 예를 들어, 컨트롤러(130)는 제1 텍스트 데이터를 이용하여 제1 데이터 테이블을 생성하고, 제2 텍스트 데이터를 이용하여 제2 데이터 테이블을 생성할 수 있다.
컨트롤러(130)는 생성된 데이터 테이블을 저장할 수 있다. 예를 들어, 컨트롤러(130)는 문서 이미지로부터 생성된 데이터 테이블을 상기 문서 이미지와 대응시켜 저장할 수 있다. 다른 예를 들어, 컨트롤러(130)는 문서 이미지로부터 생성된 데이터 테이블을 저장하고, 데이터 테이블의 생성에 이용된 문서 이미지를 삭제할 수 있다. 다른 예를 들어, 컨트롤러(130)는 생성된 데이터 테이블의 적어도 일부만의 데이터만을 추출하여 저장할 수 있다.
물론, 일 실시예에 따른 데이터 테이블 생성 방법은 상술한 방법에 한정되지는 않으며, 일부 단계가 생략 또는 치환되거나 일부 단계가 부가되는 등 다른 방식으로도 구현될 수 있다.
테이블 영역으로부터 추출된 제1 텍스트 데이터로부터 데이터 테이블을 생성하는 방법 및 텍스트 영역으로부터 추출된 제2 텍스트 데이터로부터 데이터 테이블을 생성하는 방법에 대해서는 아래에서 자세히 설명하도록 한다.
도 10은 일 실시예에 따른 테이블 영역으로부터 데이터 테이블을 생성하는 방법의 순서도이다.
도 10을 참고하면 일 실시예에 따른 테이블 영역으로부터 데이터 테이블을 생성하는 방법은 테이블 영역의 위치를 확인하는 단계(S4000), 테이블 영역을 크롭하는 단계(S4100), 크롭된 테이블 영역으로부터 텍스트 데이터를 추출하는 단계(S4200), 항목 데이터 및 상기 항목 데이터의 대응 값을 확인하는 단계(S4300) 및 데이터 테이블의 행과 열에 항목 데이터 및 상기 항목 데이터의 대응 값을 입력하는 단계(S4400)를 포함할 수 있다.
일 실시예에 따른 문서 관리 장치(100)는 테이블 영역의 위치를 확인할 수 있다(S4000).
일 실시예에서, 컨트롤러(130)는 검출된 테이블 영역의 위치를 확인하기 위해 테이블 영역의 좌표를 산출할 수 있다. 예를 들어, 컨트롤러(130)는 검출된 테이블 영역의 각 꼭지점들의 좌표를 산출할 수 있다.
또한, 컨트롤러(130)는 검출된 테이블 영역 내에 포함된 복수의 셀 영역의 위치를 산출할 수 있다. 예를 들어, 컨트롤러(130)는 검출된 테이블 영역 내에 포함된 복수의 셀 영역의 각 꼭지점들의 좌표를 산출할 수 있다.
컨트롤러(130)는 테이블 영역의 위치를 확인하는 것뿐만 아니라 산출된 테이블 영역의 좌표에 기초하여 테이블 영역의 크기를 계산할 수도 있다.
일 실시예에 따른 문서 관리 장치(100)는 테이블 영역을 크롭할 수 있다(S4100).
컨트롤러(130)는 산출된 테이블 영역의 좌표를 기준으로 문서 이미지 내의 테이블 영역을 크롭(crop)할 수 있다. 예를 들어, 컨트롤러(130)는 산출된 테이블 영역의 좌표를 기준으로 테이블 영역이 크롭된 이미지를 획득할 수 있다. 물론 컨트롤러(130)는 산출된 테이블 영역의 좌표를 기준으로 테이블 영역의 소정의 부분만이 크롭된 이미지를 획득하여도 무방하다.
일 실시예에 따른 문서 관리 장치(100)는 크롭된 테이블 영역으로부터 텍스트 데이터를 추출할 수 있다(S4200).
컨트롤러(130)는 크롭된 테이블 영역에 대하여 문자 인식을 수행하여 텍스트 데이터를 추출할 수 있다. 예를 들어, 컨트롤러(130)는 테이블 영역이 크롭된 이미지에 광학 문자 인식을 수행하여 테이블 영역으로부터 텍스트 데이터를 획득할 수 있다.
다른 예를 들어, 컨트롤러(130)는 테이블 영역을 구성하고 있는 복수의 셀 영역에 대한 각각의 텍스트 데이터를 추출할 수 있다. 즉, 컨트롤러(130)는 테이블 영역의 제1 셀 영역으로부터 제1 텍스트 데이터를 추출하고, 테이블 영역의 제2 셀 영역으로부터 제2 텍스트 데이터를 추출할 수 있다.
물론 컨트롤러(130)는 산출된 테이블 영역 중 소정의 영역만으로부터 텍스트 데이터를 추출하여도 무방하다.
컨트롤러(130)는 테이블 영역이 검출되는 경우에는 테이블 영역으로부터 추출된 텍스트 데이터를 추출할 수 있고, 테이블 영역이 검출되지 않는 경우에는 텍스트 영역으로부터 텍스트 데이터를 추출할 수 있다.
일 실시예에 따른 문서 관리 장치(100)는 항목 데이터 및 상기 항목 데이터의 대응 값을 확인할 수 있다(S4300).
컨트롤러(130)는 테이블 영역으로부터 추출되는 텍스트 데이터 중 문서의 종류에 의해 결정되는 항목 데이터를 확인할 수 있다. 예를 들어, 컨트롤러(130)는 특정 종류의 문서 이미지를 획득하는 경우 테이블 영역으로부터 추출되는 텍스트 데이터 중 문서의 특정 종류와 관련되는 항목 데이터의 존부를 확인할 수 있다. 일예로, 컨트롤러(130)는 인보이스 문서 이미지를 획득하고, 테이블 영역으로부터 추출되는 텍스트 데이터 중 인보이스와 관련된 날짜, 기한, 품목, 수량, 단위 가격, 세금, 가격 등의 항목 데이터가 있는지 여부를 확인할 수 있다.
일 실시예에서, 컨트롤러(130)는 테이블 영역으로부터 추출되는 텍스트 데이터 중 항목 데이터가 존재하는 경우, 상기 텍스트 데이터로부터 항목 데이터 및 항목 데이터의 대응 값을 추출할 수 있다.
컨트롤러(130)는 항목 데이터 및 항목 데이터의 대응 값을 추출하기 위해 소정의 셀 영역으로부터 추출된 텍스트 데이터의 종류를 확인할 수 있다. 텍스트 데이터의 종류는 일예로, 문자, 숫자, 날짜 등을 포함할 수 있으나 외국어, 국어 등을 포함하는 등 종류는 넓게 해석되어야 한다. 예를 들어, 컨트롤러(130)는 테이블 영역 내의 셀 영역의 좌표와 문자 인식된 문자, 숫자, 날짜 정보를 기반으로 소정의 위치에 있는 셀 영역의 위치를 시작 위치로 하여 상하좌우 측 방향 중 하나로 이동하며 추출된 텍스트 데이터의 종류를 확인할 수 있다. 일예로, 컨트롤러(130)는 테이블 영역 내의 1행 1열에 위치한 셀 영역을 시작 위치로 하여 우측 방향으로 이동하며 추출된 텍스트 데이터의 종류를 확인할 수 있다. 다른 일예로, 컨트롤러(130)는 테이블 영역 내의 1행 1열에 위치한 셀 영역을 시작 위치로 하여 아래측 방향으로 이동하며 추출된 텍스트 데이터의 종류를 확인할 수 있다.
물론, 컨트롤러(130)는 시작 위치로부터 이동하여 인접한 두 개의 셀 영역의 텍스트 데이터의 종류가 서로 상이할 때까지만 추출된 텍스트 데이터의 종류를 확인하는 등 다른 방식으로 추출된 텍스트 데이터의 종류를 확인하여도 무방하고 이에 한정되지 않는다.
컨트롤러(130)는 소정의 셀 영역으로부터 추출된 텍스트 데이터의 종류에 기초하여 항목 데이터 및 상기 항목 데이터의 대응 값을 결정할 수 있다. 예를 들어, 컨트롤러(130)는 테이블 영역의 소정의 위치의 인접한 두 개의 셀 영역에 대한 텍스트 데이터의 종류에 기초하여 항목 데이터 및 상기 항목 데이터의 대응 값을 결정할 수 있다.
일예로, 제1 셀 영역의 텍스트 데이터의 종류가 문자이고, 상기 제1 셀 영역과 좌우 방향 중 하나에 인접한 제2 셀 영역의 텍스트 데이터의 종류가 숫자 및 날짜 중 하나인 경우, 항목 데이터는 상기 제1 셀 영역이 위치한 열과 동일한 열에 위치한 셀 영역에 대한 데이터로 결정되고, 상기 항목 데이터의 대응 값은 상기 제1 셀 영역이 위치한 행과 동일한 행에 위치한 셀 영역에 대한 데이터로 결정될 수 있다.
다른 일예로, 제1 셀 영역의 텍스트 데이터의 종류가 문자이고, 상기 제1 셀 영역과 상하 방향 중 하나에 인접한 제2 셀 영역의 텍스트 데이터의 종류가 숫자 및 날짜 중 하나인 경우, 항목 데이터는 상기 제1 셀 영역이 위치한 행과 동일한 행에 위치한 셀 영역에 대한 데이터로 결정되고, 상기 항목 데이터의 대응 값은 상기 제1 셀 영역이 위치한 열과 동일한 열에 위치한 셀 영역에 대한 데이터로 결정될 수 있다.
물론, 컨트롤러(130)는 인접한 셀 영역이 아닌 소정의 위치 관계를 갖는 셀 영역으로부터 추출된 텍스트 데이터에 기초하여 항목 데이터 및 상기 항목 데이터의 대응 값을 결정하는 등 다른 방식을 이용해도 되고 이에 한정되지는 않는다.
도 11은 일 실시예에 따른 테이블 영역에서 항목 데이터 및 항목 데이터의 대응 값의 구분을 설명하기 위한 도면이다. 도 11을 참고하면, 9개의 셀 영역을 포함하는 3X3 형태의 테이블 영역에서 추출된 텍스트 데이터 중 항목 데이터와 대응 값이 구분되는 것을 볼 수 있다.
도 11(a)를 참고하면, 컨트롤러(130)는 테이블 영역 내의 1행 1열에 위치한 셀 영역을 시작 위치로 하여 아래측 방향으로 이동하며 추출된 텍스트 데이터의 종류를 확인하고, 1행 1열에 위치한 셀 영역으로부터 추출된 텍스트 데이터의 종류가 문자이고, 2행 1열에 위치한 셀 영역으로부터 추출된 텍스트 데이터의 종류가 숫자이므로 1행 1열에 위치한 셀 영역과 동일한 행에 위치한 셀 영역들(33)로부터 추출된 텍스트 데이터가 항목 데이터로 결정될 수 있다.
도 11(b)를 참고하면, 컨트롤러(130)는 테이블 영역 내의 1행 1열에 위치한 셀 영역을 시작 위치로 하여 우측 방향으로 이동하며 추출된 텍스트 데이터의 종류를 확인하고, 1행 1열에 위치한 셀 영역으로부터 추출된 텍스트 데이터의 종류가 문자이고, 1행 2열에 위치한 셀 영역으로부터 추출된 텍스트 데이터의 종류가 숫자이므로 1행 1열에 위치한 셀 영역과 동일한 열에 위치한 셀 영역들(34)로부터 추출된 텍스트 데이터가 항목 데이터로 결정될 수 있다.
다시 도 10으로 돌아와서 설명하도록 한다.
일 실시예에 따른 문서 관리 장치(100)는 데이터 테이블의 행과 열에 항목 데이터 및 상기 항목 데이터의 대응 값을 입력할 수 있다(S4400).
컨트롤러(130)는 테이블 영역으로부터 추출된 텍스트 데이터 중 항목 데이터 및 상기 항목 데이터의 대응 값으로 결정된 데이터를 데이터 테이블의 행과 열에 배치할 수 있다. 예를 들어, 컨트롤러(130)는 데이터 테이블의 행과 열 중 하나에 항목 데이터를 입력하고, 데이터 테이블의 행과 열 중 다른 하나에 상기 항목 데이터의 대응 값을 입력할 수 있다.
물론, 컨트롤러(130)는 테이블 영역으로부터 추출된 텍스트 데이터 중 항목 데이터 및 상기 항목 데이터의 대응 값으로 결정된 텍스트 데이터의 일부만을 데이터 테이블의 행과 열에 배치하는 등 다른 방식을 이용해도 되고 이에 한정되지는 않는다.
물론, 일 실시예에 따른 테이블 영역으로부터 데이터 테이블 생성 방법은 상술한 방법에 한정되지는 않으며, 일부 단계가 생략 또는 치환되거나 일부 단계가 부가되는 등 다른 방식으로도 구현될 수 있다.
일 실시예에서, 컨트롤러(130)는 테이블 영역에서 추출한 텍스트 데이터 중 항목 데이터의 존부에 기초하여 데이터 테이블을 생성할 수 있다. 예를 들어, 컨트롤러(130)는 테이블 영역에서 추출한 텍스트 데이터 중 항목 데이터를 확인하고, 항목 데이터가 존재하지 않는 경우 문서의 종류가 잘못 특정된 것으로 판단하고, 데이터 테이블을 생성하는 대신 문서의 이미지를 저장할 수 있다. 여기서, 컨트롤러(130)는 상술한 문서 분류 방법을 이용하여 문서의 종류가 잘못 특정된 것으로 판단된 문서 이미지를 다시 분류하고, 문서의 종류를 다시 결정할 수 있다.
도 12는 일 실시예에 따른 텍스트 영역으로부터 데이터 테이블을 생성하는 방법의 순서도이다.
도 12를 참고하면, 일 실시예에 따른 텍스트 영역으로부터 데이터 테이블을 생성하는 방법은 텍스트 영역으로부터 텍스트 데이터를 추출하는 단계(S5000), 텍스트 데이터의 포함된 단어별로 단어 벡터를 생성하는 단계(S5100), 항목 데이터 및 상기 항목 데이터의 대응 값을 확인하는 단계(S5200) 및 데이터 테이블의 행과 열에 항목 데이터 및 상기 항목 데이터의 대응 값을 입력하는 단계(S5300)를 포함할 수 있다.
일 실시예에 따른 문서 관리 장치(100)는 텍스트 영역으로부터 텍스트 데이터를 추출할 수 있다(S5000).
컨트롤러(130)는 텍스트 영역에 대하여 문자 인식을 수행하여 텍스트 데이터를 추출할 수 있다. 예를 들어, 컨트롤러(130)는 테이블 영역이 크롭된 나머지 이미지에 광학 문자 인식을 수행하여 텍스트 영역으로부터 텍스트 데이터를 획득할 수 있다.
물론 컨트롤러(130)는 텍스트 영역 중 소정의 영역만으로부터 텍스트 데이터를 추출하여도 무방하다.
일 실시예에서, 컨트롤러(130)는 텍스트 영역으로부터 추출된 텍스트의 위치를 확인하기 위해 각 텍스트의 좌표를 산출할 수 있다. 예를 들어, 컨트롤러(130)는 단어별로 추출된 텍스트의 좌표를 산출할 수 있다.
일 실시예에서, 컨트롤러(130)는 테이블 영역이 검출되지 않은 경우에만 텍스트 영역으로부터 텍스트 데이터를 추출할 수 있다. 다만, 컨트롤러(130)는 테이블 영역의 검출 여부와 상관없이 텍스트 영역으로부터 텍스트 데이터를 추출하여도 무방하다.
일 실시예에 따른 문서 관리 장치(100)는 텍스트 데이터의 포함된 단어별로 단어 벡터를 생성할 수 있다(S5100).
컨트롤러(130)는 단어를 벡터화하는 벡터화 모델을 이용하여 상기 텍스트 데이터에 포함된 단어 별로 단어 벡터를 생성할 수 있다. 예를 들어, 컨트롤러(130)는 기설정된 학습 기법 또는 학습 기법 지정 알고리즘에 따라 선택된 학습 기법에 의해 구축된 벡터화 모델을 이용하여 텍스트 데이터에 포함된 단어 별로 단어 벡터를 생성할 수 있다. S5100 단계에서는 앞서 설명한 내용이 적용될 수 있으므로 자세한 설명은 생략하기로 한다.
일 실시예에 따른 문서 관리 장치(100)는 항목 데이터 및 상기 항목 데이터의 대응 값을 확인할 수 있다(S5200).
컨트롤러(130)는 텍스트 영역으로부터 추출되는 텍스트 데이터 중 문서의 종류에 의해 결정되는 항목 데이터를 확인할 수 있다. 예를 들어, 컨트롤러(130)는 특정 종류의 문서 이미지를 획득하는 경우 텍스트 영역으로부터 추출되는 텍스트 데이터 중 문서의 특정 종류와 관련되는 항목 데이터의 존부를 확인할 수 있다. 일예로, 컨트롤러(130)는 인보이스 문서 이미지를 획득하고, 텍스트 영역으로부터 추출되는 텍스트 데이터 중 인보이스와 관련된 날짜, 기한, 품목, 수량, 단위 가격, 세금, 가격 등의 항목 데이터가 있는지 여부를 확인할 수 있다.
일 실시예에서, 컨트롤러(130)는 않고 텍스트 영역으로부터 추출되는 텍스트 데이터 중 항목 데이터가 존재하는 경우, 상기 텍스트 영역으로부터 추출된 텍스트 데이터로부터 항목 데이터 및 항목 데이터의 대응 값을 추출할 수 있다. 예를 들어, 컨트롤러(130)는 테이블 영역으로부터 추출되는 제1 텍스트 데이터 중 항목 데이터가 존재하지 않고 텍스트 영역으로부터 추출되는 제2 텍스트 데이터 중 항목 데이터가 존재하는 경우, 상기 텍스트 영역으로부터 추출된 제2 텍스트 데이터로부터 항목 데이터 및 항목 데이터의 대응 값을 추출할 수 있다.
컨트롤러(130)는 항목 데이터 및 항목 데이터의 대응 값을 추출하기 위해 벡터화 모델을 이용하여 텍스트 데이터의 포함된 단어별로 생성되는 단어 벡터에 기초하여 항목 데이터 및 상기 항목 데이터의 대응 값을 결정할 수 있다. 예를 들어, 컨트롤러(130)는 텍스트 데이터의 포함된 단어별로 생성된 단어 벡터와 기설정된 단어 벡터를 비교하여 항목 데이터를 결정할 수 있고, 항목 데이터와 텍스트 영역 상에서 소정의 위치 관계를 갖는 값을 상기 항목 데이터의 대응 값으로 결정할 수 있다. 일예로, 텍스트 데이터 중 제1 텍스트에 대한 제1 단어 벡터가 기설정된 '회사명'에 대한 단어 벡터와 동일한 경우 제1 텍스트가 항목 데이터로 결정되고, 텍스트 데이터의 각 텍스트의 좌표에 기초하여 텍스트 영역 상에서 제1 텍스트와 상하좌우 중 하나의 방향에서 인접한 위치에 있는 값이 상기 항목 데이터의 대응 값으로 결정될 수 있다. 여기서, 항목 데이터와 인접한 위치에 있는 텍스트 중 항목 데이터로 결정된 텍스트의 종류와 다른 종류를 갖는 텍스트가 상기 항목 데이터의 대응 값으로 결정될 수 있다.
물론, 컨트롤러(130)는 항목 데이터로 결정된 텍스트와 인접한 위치에 있는 텍스트가 아닌 이격된 위치에 있는 소정의 텍스트를 대응 값으로 결정하는 등 상술한 기재에 한정되지 않고 다른 방식을 이용해도 무방하다.
도 13은 일 실시예에 따른 텍스트 영역에서 항목 데이터와 항목 데이터의 대응 값의 구분을 설명하기 위한 도면이다. 도 13을 참고하면, A, B, C, D 텍스트를 포함하는 텍스트 영역(35)에서 추출된 텍스트 데이터로부터 항목 데이터와 항목 데이터의 대응 값이 구분되는 것을 볼 수 있다. A, B, C, D는 편의상 하나의 알파벳으로 나타냈으나, 단어, 문장 등을 포함할 수 있다.
도 13(a) 및 13(b)를 참고하면, 컨트롤러(130)는 A, B, C, D 텍스트를 포함하는 텍스트 영역(35)에서 추출된 텍스트 데이터에 대해서 단어 별로 단어 벡터를 생성할 수 있다. A 텍스트는 {w1, x1, y1, z1}, B 텍스트는 {w2, x2, y2, z2}, C 텍스트는 {w3, x3, y3, z3}, D 텍스트는 {w4, x4, y4, z4}의 단어 벡터로 벡터화될 수 있다.
도 13(c)를 참고하면, 컨트롤러(130)는 단어 벡터에 기초하여 항목 데이터 A(36) 및 항목 데이터 A(36)에 대응되는 대응 값 C(37)를 결정할 수 있다. 컨트롤러(130)는 기설정된 {w1, x1, y1, z1} 단어 벡터와 동일한 단어 벡터를 갖는 A에 대한 데이터를 기초하여 항목 데이터 A(36)으로 결정할 수 있다. 컨트롤러(130)는 텍스트 영역(35)상에서 항목 데이터 A(36)와 소정의 위치 관계를 갖는 텍스트 C에 대한 데이터를 항목 데이터 A(36)의 대응 값 C(37)로 결정할 수 있다.
일 실시예에 따른 문서 관리 장치(100)는 데이터 테이블의 행과 열에 항목 데이터 및 상기 항목 데이터의 대응 값을 입력할 수 있다(S5300).
컨트롤러(130)는 텍스트 영역으로부터 추출된 텍스트 데이터 중 항목 데이터 및 항목 데이터의 대응 값을 데이터 테이블의 행과 열에 배치할 수 있다. 예를 들어, 컨트롤러(130)는 데이터 테이블의 행과 열 중 하나에 항목 데이터를 입력하고, 데이터 테이블의 행과 열 중 다른 하나에 상기 항목 데이터의 대응 값을 입력할 수 있다.
물론, 컨트롤러(130)는 텍스트 영역으로부터 추출된 텍스트 데이터 중 항목 데이터 및 항목 데이터의 대응 값으로 결정된 텍스트 데이터의 일부만을 데이터 테이블의 행과 열에 배치하는 등 다른 방식을 이용해도 되고 이에 한정되지는 않는다.
일 실시예에서, 컨트롤러(130)는 텍스트 영역에서 추출한 텍스트 데이터 중 항목 데이터의 존부에 기초하여 데이터 테이블을 생성할 수 있다. 예를 들어, 컨트롤러(130)는 텍스트 영역에서 추출한 텍스트 데이터 중 항목 데이터를 확인하고, 항목 데이터가 존재하지 않는 경우 문서의 종류가 잘못 특정된 것으로 판단하고, 데이터 테이블을 생성하는 대신 문서의 이미지를 저장할 수 있다. 여기서, 컨트롤러(130)는 상술한 문서 분류 방법을 이용하여 문서의 종류가 잘못 특정된 것으로 판단된 문서 이미지를 다시 분류하고, 문서의 종류를 다시 결정할 수 있다.
도 14는 일 실시예에 따른 데이터 테이블 생성을 설명하기 위한 도면이다.
도 14를 참고하면, 텍스트 영역(41), 제1 테이블 영역(42) 및 제2 테이블 영역(43)을 포함하는 인보이스로 종류가 특정된 문서 이미지(40)로부터 데이터 테이블(44, 45, 46)이 생성되는 것을 볼 수 있다. 도 14에서는 편의상, 문서 이미지(40)로부터 3개의 데이터 테이블(44, 45, 46)이 생성되는 것으로 도시하였으나, 1개의 통합된 데이터 테이블이 생성되어도 무방하다.
일 실시예에서, 문서 관리 장치(100)는 생성된 데이터 테이블을 메모리(120)에 저장하거나 출력 모듈(도면 미도시)을 통해 디스플레이하거나 통신 모듈(110)을 통해 외부 장치에 전송할 수 있다.
일 실시예에서, 컨트롤러(130)는 문서 이미지(40)에서 추출한 텍스트 데이터 중 항목 데이터의 존부에 기초하여 데이터 테이블을 생성할 수 있다. 예를 들어, 컨트롤러(130)는 문서 이미지(40)에서 추출한 텍스트 데이터 중 항목 데이터를 확인하고, 항목 데이터가 존재하지 않는 경우 문서의 종류가 잘못 특정된 것으로 판단하고, 데이터 테이블을 생성하는 대신 문서의 이미지를 저장할 수 있다. 여기서, 컨트롤러(130)는 상술한 문서 분류 방법을 이용하여 문서의 종류가 잘못 특정된 것으로 판단된 문서 이미지(40)를 다시 분류하고, 문서의 종류를 다시 결정할 수 있다.
도 15는 일 실시예에 따른 문서 관리 시스템을 설명하기 위한 도면이다.
도 15를 참조하면, 일 실시예에 따른 문서 관리 시스템(10)은 문서 관리 장치(100), 사용자 디바이스(200), 데이터베이스(300) 및 네트워크(400)를 포함할 수 있다.
문서 관리 장치(100)는 사용자 디바이스(200)와 네트워크(400)를 통해 연결될 수 있고, 네트워크(400)를 통해 사용자 디바이스(200)과 데이터를 주고받을 수 있다. 이를 위해, 문서 관리 장치(100)는 컴퓨터 또는 프로그램에 해당하는 서버로 구현될 수 있다.
사용자 디바이스(200)는 문서 관리 장치(100)와 네트워크(400)를 통해 통신할 수 있다. 예를 들어, 사용자 디바이스 1(200a) 내지 사용자 디바이스 n(200n)을 포함하는 복수의 사용자 디바이스(200)는 문서 관리 장치(100)와 동시에 연결될 수 있다. 일예로, 사용자 디바이스(200)는 스마트폰, 태블릿 PC(Personal Computer), 노트북 PC, 휴대형 게임 단말기, 휴대형/동글형의 모바일 라우터 혹은 디지털 카메라 등의 모바일 단말기, M2M(Machine To Machine) 통신을 행하는 단말기로 구현될 수 있으나, 반드시 이에 한정되지 않고, 카 내비게이션 장치 등의 차량 탑재 단말기, 데스크탑 PC, 컴퓨터 등 다양한 디바이스로도 구현될 수 있다.
사용자 디바이스(200)는 문서 관리 장치(100)로부터 문서 관리를 위한 정보를 수신할 수 있다. 예를 들어, 사용자 디바이스(200)는 문서 관리 장치(100)로부터 자동으로 분류된 문서에 대한 정보를 획득할 수 있다. 다른 예를 들어, 사용자 디바이스(200)는 문서 관리 장치(100)로부터 문서에 대하여 생성된 데이터 테이블을 획득할 수 있다.
데이터베이스(300)는 문서 관리 장치(100)가 사용자에게 문서 관리를 위한 기능을 제공하기 위해 필요한 다양한 정보들을 저장할 수 있다. 예를 들어, 데이터베이스(300)는 문서 관리 장치(100)로부터 자동으로 분류된 문서들에 대한 데이터가 카테고리별로 저장될 수 있다. 다른 예를 들어, 데이터베이스(300)는 문서 관리 장치(100)로부터 생성된 문서들에 대한 데이터 테이블이 저장될 수 있다.
데이터베이스(300)는 사용자 ID, 인적사항 등 사용자의 개인 정보, 임시 데이터 등 다양한 정보들을 저장하는 등 이에 한정되지 않는다.
데이터베이스(300)는 적어도 하나의 독립된 서브-데이터베이스들로 구현될 수 있다. 예를 들어, 데이터베이스(300)에 포함된 각각의 서브-데이터베이스들은 블루투스, WiFi 등을 통해 무선으로 연결될 수 있고, 네트워크를 통해 상호 간의 데이터를 주고받을 수 있다. 물론, 데이터베이스(300)는 적어도 하나의 독립된 서브-데이터베이스들이 하나로 통합된 통합 데이터베이스로 구현되는 등 상술한 기재에 한정되지 않는다.
일 실시예에 따르면 문서 관리 장치(100)는 데이터베이스(300)를 포함하여 구현될 수 있고, 데이터베이스(300)와 독립적으로 구현되어도 무방하다. 예를 들어, 데이터베이스(300)와 문서 관리 장치(100)가 독립적으로 구현된 경우, 문서 관리 장치(100)는 데이터베이스(300)와 네트워크(400) 또는 별도의 네트워크를 통해 데이터를 주고받을 수 있다. 다른 예를 들어, 문서 관리 장치(100)는 데이터베이스(300)가 메모리(120)에 포함되어 구현될 수 있다.
네트워크(400)는 인터넷 또는 인트라넷과 같은 통상의 통신 네트워크 또는 모바일 네트워크, 블루투스, WiFi 등 유무선의 네트워크를 모두 포괄하는 것으로 이해될 수 있다.
사용자 디바이스(200), 문서 관리 장치(100), 데이터베이스(300) 등 각 구성요소들은 서로 네트워크(400)를 통해 통신할 수 있다. 예를 들어, 사용자 디바이스(200)은 네트워크(400)를 통해 업무를 위한 웹사이트에 접속할 수 있고, 문서 관리 장치(100)로부터 업무에 도움이 되는 정보를 획득할 수 있다.
도 15에 도시된 시스템은 설명의 편의를 위한 예시일 뿐이며 이에 한정되지 않는다. 몇몇 실시예에 따르면 도 15의 시스템에서 구성이 부가되거나 제외될 수 있으며, 또한 세분화될 수 있다.
일 실시예에서, 문서 관리 장치(100)는 클라우드 서비스를 이용할 수 있다. 데이터 저장소 및 웹, 어플리케이션에서 사용 가능한 이미지 파일의 자동 문서화 관련 API를 클라우드 서비스로 제공할 수 있다. 예를 들면 관련 API는 객체 검출 API, 광학 문자 인식 API 등일 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.
문서 관리 장치 100
통신 모듈 110
메모리 120
컨트롤러 130
사용자 디바이스 200
데이터베이스 300
네트워크 400

Claims (19)

  1. 컴퓨팅 수단에 의해 수행되는, 문서로부터 주요 정보를 추출하여 데이터 테이블을 저장하는 방법으로서,
    상기 문서의 이미지를 획득하는 단계;
    미리 저장되어 있는 상기 문서의 종류를 확인하는 단계;
    상기 문서의 이미지 내에 표시된 적어도 하나의 객체의 윤곽선을 검출하여 마스크를 생성하는 단계;
    상기 생성된 마스크에 기초하여 상기 문서의 이미지 내에서 테이블 영역 및 텍스트 영역을 결정하는 단계;
    상기 테이블 영역에 대하여 문자 인식을 수행하여 제1 텍스트 데이터를 추출하는 단계;
    상기 텍스트 영역에 대하여 문자 인식을 수행하여 제2 텍스트 데이터를 추출하는 단계;
    상기 제1 텍스트 데이터에 기반하여 제1 항목 데이터를 추출하는 단계;
    상기 제2 텍스트 데이터에 기반하여 제2 항목 데이터를 추출하는 단계; 및
    상기 제1 항목 데이터 및 상기 제2 항목 데이터 중 적어도 하나에 기반하여 데이터 테이블을 생성하는 단계;를 포함하고,
    상기 데이터 테이블을 생성하는 단계는:
    상기 제1 항목 데이터 및 상기 제2 항목 데이터가 모두 추출되는 경우 상기 제1 항목 데이터 및 상기 제1 항목 데이터의 대응 값에 기반하여 상기 데이터 테이블을 생성하는 단계를 포함하는,
    데이터 테이블을 저장하는 방법.
  2. 제1 항에 있어서,
    상기 제1 항목 데이터 및 상기 제1 항목 데이터의 대응 값은
    상기 테이블 영역의 셀 영역에 대한 텍스트 데이터의 종류에 기초하여 결정되는
    데이터 테이블을 저장하는 방법.
  3. 제2 항에 있어서,
    제1 셀 영역의 텍스트 데이터의 종류가 문자이고, 상기 제1 셀 영역과 좌우 방향 중 하나에 인접한 제2 셀 영역의 텍스트 데이터의 종류가 숫자 및 날짜 중 하나인 경우,
    상기 제1 항목 데이터는 상기 제1 셀 영역이 위치한 열과 동일한 열에 위치한 셀 영역에 대한 데이터로 결정되고,
    상기 제1 항목 데이터의 대응 값은 상기 제1 셀 영역이 위치한 행과 동일한 행에 위치한 셀 영역에 대한 데이터로 결정되는
    데이터 테이블을 저장하는 방법.
  4. 제2 항에 있어서,
    제1 셀 영역의 텍스트 데이터의 종류가 문자이고, 상기 제1 셀 영역과 상하 방향 중 하나에 인접한 제2 셀 영역의 텍스트 데이터의 종류가 숫자 및 날짜 중 하나인 경우,
    상기 제1 항목 데이터는 상기 제1 셀 영역이 위치한 행과 동일한 행에 위치한 셀 영역에 대한 데이터로 결정되고,
    상기 제1 항목 데이터의 대응 값은 상기 제1 셀 영역이 위치한 열과 동일한 열에 위치한 셀 영역에 대한 데이터로 결정되는
    데이터 테이블을 저장하는 방법.
  5. 제1 항에 있어서,
    상기 데이터 테이블을 생성하는 단계는:
    상기 제1 항목 데이터가 추출되지 않는 경우에 한하여, 상기 제2 항목 데이터 및 상기 제2 항목 데이터의 대응 값에 기반하여 상기 데이터 테이블을 생성하는 단계를 더 포함하는,
    데이터 테이블을 저장하는 방법.
  6. 삭제
  7. 제1 항에 있어서,
    상기 제2 항목 데이터 및 상기 제2 항목 데이터의 대응 값은
    벡터화 모델을 이용하여 상기 제2 텍스트 데이터의 포함된 단어별로 생성된 단어 벡터에 기초하여 결정되는
    데이터 테이블을 저장하는 방법.
  8. 제7 항에 있어서,
    상기 제2 항목 데이터는 기설정된 단어 벡터와 동일한 단어 벡터를 갖는 단어로 결정되고,
    상기 제2 항목 데이터의 대응 값은 상기 기설정된 단어 벡터와 동일한 단어 벡터를 갖는 단어와 상기 텍스트 영역 상에서 소정의 위치 관계를 갖는 값으로 결정되는
    데이터 테이블을 저장하는 방법.
  9. 제1 항에 있어서,
    상기 데이터 테이블의 행과 열 중 하나에 상기 제1 항목 데이터 또는 상기 제2 항목 데이터가 입력되고,
    상기 데이터 테이블의 행과 열 중 다른 하나에 상기 제1 항목 데이터의 대응 값 또는 상기 제2 항목 데이터의 대응 값이 입력되는
    데이터 테이블을 저장하는 방법.
  10. 제1 항에 있어서,
    상기 마스크는
    세로선을 추출하는 필터 및 가로선을 추출하는 필터가 상기 문서의 이미지에 적용되어 생성되는
    데이터 테이블을 저장하는 방법.
  11. 제1 항에 있어서,
    상기 마스크를 생성하는 단계는
    검출된 윤곽선들 각각이 연결되는 네 개의 지점을 검출하는 단계 및
    상기 검출된 네 개의 지점이 선으로 연결된 형태의 사각형상을 포함하는 마스크를 획득하는 단계를 포함하는
    데이터 테이블을 저장하는 방법.
  12. 제1 항에 있어서,
    상기 검출된 윤곽선은 소정의 길이 이상을 갖는
    데이터 테이블을 저장하는 방법.
  13. 제1 항에 있어서,
    상기 테이블 영역 및 텍스트 영역을 결정하는 단계는
    상기 생성된 마스크에 기초하여 상기 테이블 영역에 표시된 테이블의 개수를 확인하는 단계를 포함하는
    데이터 테이블을 저장하는 방법.
  14. 제1 항에 있어서,
    상기 문서의 이미지에 노이즈 저감 처리를 수행하는 단계;를 더 포함하는
    데이터 테이블을 저장하는 방법.
  15. 제1 항에 있어서,
    상기 문서의 이미지는 그레이 스케일 이미지로 변환된 이미지를 포함하는
    데이터 테이블을 저장하는 방법.
  16. 제1 항에 있어서,
    상기 문서는 인보이스 문서를 포함하고,
    상기 항목은 품목, 수량, 회사명, 거래처, 금액, 날짜, 배송 어드레스 중 적어도 하나를 포함하는
    데이터 테이블을 저장하는 방법.
  17. 제1 항에 있어서,
    상기 제1 항목 데이터 및 상기 제2 항목 데이터가 존재하지 않는 경우 상기 문서의 종류가 잘못 특정된 것으로 판단하고, 상기 문서의 이미지를 저장하는 단계; 를 더 포함하는
    데이터 테이블을 저장하는 방법.
  18. 컴퓨터에 제1 항 내지 제5 항 및 제7 항 내지 제17 항 중 어느 하나의 항에 따른 방법을 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
  19. 문서로부터 주요 정보를 추출하여 데이터 테이블을 저장하는 문서 관리 장치로서,
    메모리; 및
    상기 문서의 이미지를 획득하고, 상기 문서의 이미지 내에 표시된 적어도 하나의 객체의 윤곽선을 검출하여 마스크를 생성하고, 상기 생성된 마스크에 기초하여 상기 문서의 이미지 내에서 테이블 영역 및 텍스트 영역을 결정하고, 상기 테이블 영역에 대하여 문자 인식을 수행하여 제1 텍스트 데이터를 추출하고, 상기 텍스트 영역에 대하여 문자 인식을 수행하여 제2 텍스트 데이터를 추출하고, 상기 제1 텍스트 데이터에 기반하여 제1 항목 데이터를 추출하고, 상기 제2 텍스트 데이터에 기반하여 제2 항목 데이터를 추출하고, 상기 제1 항목 데이터 및 상기 제2 항목 데이터 중 적어도 하나에 기반하여 데이터 테이블을 생성하고, 상기 제1 항목 데이터 및 상기 제2 항목 데이터가 모두 추출되는 경우 상기 제1 항목 데이터 및 상기 제1 항목 데이터의 대응 값에 기반하여 상기 데이터 테이블을 생성하는 문서 관리 장치.
KR1020200160518A 2020-11-25 2020-11-25 데이터 테이블을 저장하는 방법 및 이를 위한 문서 관리 장치 KR102598085B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200160518A KR102598085B1 (ko) 2020-11-25 2020-11-25 데이터 테이블을 저장하는 방법 및 이를 위한 문서 관리 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200160518A KR102598085B1 (ko) 2020-11-25 2020-11-25 데이터 테이블을 저장하는 방법 및 이를 위한 문서 관리 장치

Publications (2)

Publication Number Publication Date
KR20220072669A KR20220072669A (ko) 2022-06-02
KR102598085B1 true KR102598085B1 (ko) 2023-11-02

Family

ID=81985406

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200160518A KR102598085B1 (ko) 2020-11-25 2020-11-25 데이터 테이블을 저장하는 방법 및 이를 위한 문서 관리 장치

Country Status (1)

Country Link
KR (1) KR102598085B1 (ko)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190266394A1 (en) 2018-02-26 2019-08-29 Abc Fintech Co., Ltd. Method and device for parsing table in document image
KR102144464B1 (ko) 2020-03-04 2020-08-14 주식회사 로민 문서분류장치 및 문서분류방법

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9355313B2 (en) * 2014-03-11 2016-05-31 Microsoft Technology Licensing, Llc Detecting and extracting image document components to create flow document
JP2020511726A (ja) * 2017-03-22 2020-04-16 ドリリング・インフォ・インコーポレイテッド 電子文書からのデータ抽出
KR102145858B1 (ko) * 2018-11-28 2020-08-19 삼성생명보험주식회사 문서 이미지로부터 인식된 용어를 표준화하기 위한 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190266394A1 (en) 2018-02-26 2019-08-29 Abc Fintech Co., Ltd. Method and device for parsing table in document image
KR102144464B1 (ko) 2020-03-04 2020-08-14 주식회사 로민 문서분류장치 및 문서분류방법

Also Published As

Publication number Publication date
KR20220072669A (ko) 2022-06-02

Similar Documents

Publication Publication Date Title
KR102469779B1 (ko) 문서 분류 방법 및 이를 위한 문서 관리 장치
CN108564035B (zh) 识别单据上记载的信息的方法及系统
US11113618B2 (en) Detecting the bounds of borderless tables in fixed-format structured documents using machine learning
US11768993B2 (en) Methods, systems, apparatus and articles of manufacture for receipt decoding
US11348330B2 (en) Key value extraction from documents
US8005831B2 (en) System and methods for creation and use of a mixed media environment with geographic location information
US10915701B2 (en) Caption association techniques
US20200302016A1 (en) Classifying Structural Features of a Digital Document by Feature Type using Machine Learning
US8156427B2 (en) User interface for mixed media reality
JP6838209B1 (ja) 文書画像解析装置、文書画像解析方法およびプログラム
US20090226090A1 (en) Information processing system, information processing apparatus, information processing method, and storage medium
US10769360B1 (en) Apparatus and method for processing an electronic document to derive a first electronic document with electronic-sign items and a second electronic document with wet-sign items
CN112612911A (zh) 一种图像处理方法、系统、设备及介质、程序产品
US11586678B2 (en) Image analysis for results of textual image queries
US20210110153A1 (en) Heading Identification and Classification for a Digital Document
US11321558B2 (en) Information processing apparatus and non-transitory computer readable medium
US20130236110A1 (en) Classification and Standardization of Field Images Associated with a Field in a Form
US9965679B2 (en) Capturing specific information based on field information associated with a document class
Arslan End to end invoice processing application based on key fields extraction
KR102598085B1 (ko) 데이터 테이블을 저장하는 방법 및 이를 위한 문서 관리 장치
JP6683377B1 (ja) 書類分類システム、書類分類装置、書類分類方法、書類分類プログラム
JP6441142B2 (ja) 検索装置、方法及びプログラム
KR20200091560A (ko) 세관신고 자동화를 위한 문서 내 텍스트 자동 추출 시스템 및 이를 이용한 방법
US20220319216A1 (en) Image reading systems, methods and storage medium for performing geometric extraction
JP2020144636A (ja) 情報処理装置、学習装置及び学習済モデル

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant