WO2022102823A1 - 표 이미지로부터 구조화된 출력 데이터를 생성하기 위한 표 정보 생성 시스템 및 방법 - Google Patents

표 이미지로부터 구조화된 출력 데이터를 생성하기 위한 표 정보 생성 시스템 및 방법 Download PDF

Info

Publication number
WO2022102823A1
WO2022102823A1 PCT/KR2020/016092 KR2020016092W WO2022102823A1 WO 2022102823 A1 WO2022102823 A1 WO 2022102823A1 KR 2020016092 W KR2020016092 W KR 2020016092W WO 2022102823 A1 WO2022102823 A1 WO 2022102823A1
Authority
WO
WIPO (PCT)
Prior art keywords
header
data
identification unit
characters
bounding box
Prior art date
Application number
PCT/KR2020/016092
Other languages
English (en)
French (fr)
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 PCT/KR2020/016092 priority Critical patent/WO2022102823A1/ko
Publication of WO2022102823A1 publication Critical patent/WO2022102823A1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • 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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/237Lexical tools
    • G06F40/242Dictionaries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/258Heading extraction; Automatic titling; Numbering

Definitions

  • the technical idea of the present invention relates to a table information generating system, and more particularly, to a table information generating system for generating structured output data from a table image.
  • the present invention is derived from research conducted by Saltlux Co., Ltd. as part of the SW computing industry source technology development industry (SW) of the Ministry of Science and ICT. [Research period: 2020.01.01 ⁇ 2020.12.31, Research management institution: Information and Communication Technology Promotion Center, Research project name: WiseKB: Development of self-learning knowledge base and reasoning technology based on big data understanding, task identification number: 1711103335, Cebu Assignment number: 2013-2-00109-008]
  • Tables can be used for data analysis in various fields such as academic journals, academic journals, and reports. It may not be easy to generate structured table information from a table or an image-type table included in a document. As machine learning technology develops, there is a method of identifying a table through learning data and generating structured table information, but there is a problem in that the accuracy of the table information is lowered.
  • the technical idea of the present invention is to provide a table information generating system and method for accurately generating structured output data from a table image.
  • a table information generating system for generating structured output data from a table image includes information about characters recognized in the table image.
  • a clustering unit configured to receive input data and classify the characters into a plurality of groups based on the input data;
  • a cell identification unit configured to identify rows and columns corresponding to each of the plurality of groups;
  • a header identification unit configured to extract a dividing line and identify a header area and a data area based on the at least one dividing line.
  • the information may further include a data preprocessing unit configured to include a bounding box including characters, and to calculate at least one of an average width and an average height of the characters based on the bounding box.
  • a data preprocessing unit configured to include a bounding box including characters, and to calculate at least one of an average width and an average height of the characters based on the bounding box.
  • the clustering unit is configured to classify row groups based on an angle between a horizontal axis and a vector connecting the centers of left and right adjacent bounding boxes, and to classify column groups based on the size of the vector.
  • the cell identification unit when the first bounding box of the first group and the second bounding box of the second group at least partially overlap in the vertical axis direction, the first group and the second group are the same It may be configured to identify as belonging to a column.
  • the information includes a bounding box including a character
  • the header identification unit receives the table image, and at least one from the table image based on pixels of the table image and a horizontal axis length of the bounding box. may be configured to extract a dividing line of .
  • the header cell recognition unit generates a cell state matrix including values corresponding to each of the cells recognized by the cell identification unit so that cells belonging to the same region have the same value based on at least one dividing line.
  • the header identification unit may be configured to identify a region of cells corresponding to the most values in the cell state matrix as a data region, and identify the remaining regions as a header region.
  • a table information generating system for generating structured output data from a table image includes a header cell merging unit configured to merge two or more cells corresponding to a header area based on the type of at least one dividing line. may include more.
  • the header identification unit is configured to generate a cell state matrix including values corresponding to each of the cells, and the header cell merging unit divides the header area into a plurality of sub areas divided by at least one dividing line. identify and modify the cell state matrix so that values corresponding to two or more cells have the same value.
  • a table information generating method for generating structured output data from a table image, receiving input data including information on characters recognized in the table image, input Classifying the characters into a plurality of groups based on data, identifying rows and columns corresponding to each of the plurality of groups, extracting at least one dividing line from a table image, and based on the at least one dividing line It may include identifying a header area and a data area.
  • a knowledge graph or knowledge base including
  • FIG. 1 is a block diagram showing a system for generating table information and an input/output relationship thereof according to an exemplary embodiment of the present invention.
  • FIG. 2 is a block diagram illustrating an example of the data preprocessor of FIG. 1 according to an exemplary embodiment of the present disclosure.
  • FIG. 3 shows an example of the table image of FIG. 1 according to an exemplary embodiment of the present disclosure
  • FIG. 4 is a flowchart exemplarily illustrating an operation method of the clustering unit of FIG. 1 according to an exemplary embodiment of the present disclosure.
  • FIG. 5 shows an example of a method of clustering some characters of FIG. 3 according to an exemplary embodiment of the present disclosure
  • FIG. 6 exemplarily shows a result of classifying characters into a plurality of groups by the clustering unit of FIG. 1 according to an exemplary embodiment of the present disclosure.
  • FIG. 7 exemplarily shows a result of identifying rows and columns corresponding to a plurality of groups in the cell identification unit of FIG. 1 according to an exemplary embodiment of the present disclosure.
  • FIG. 8 is a flowchart exemplarily illustrating an operation method of the header identification unit of FIG. 1 according to an exemplary embodiment of the present disclosure.
  • FIG. 9 shows an example of dividing a header area and a data area in the header identification unit of FIG. 1 according to an exemplary embodiment of the present disclosure.
  • FIG. 10A illustrates an example in which a header area is divided into a plurality of sub areas according to an exemplary embodiment of the present disclosure.
  • FIG. 10B illustrates a cell state matrix corresponding to FIG. 10A according to an exemplary embodiment of the present disclosure.
  • a component indicated or described as one block may be a hardware block or a software block.
  • each of the components may be an independent hardware block that transmits and receives signals with each other, or may be a software block executed in one processor.
  • system or “database” may refer to a computing system including at least one processor and a memory accessed by the processor.
  • the table information generating system 100 may receive information about characters recognized in the table image D200 from the optical character recognition unit 200 , and structured table information (D100) can be output.
  • the table image D200 may be a table or an image-type table included in a document
  • the table information D100 may be structured text data in a row and column structure.
  • the table information D100 may be used to build a knowledge graph (or knowledge base), and at least one knowledge instance (eg, triple) constituting the knowledge graph may be generated from the table information D100 . can As shown in FIG.
  • the table information generating system 100 includes a data preprocessor 110 , a clustering unit 130 , a cell identification unit 150 , a header identification unit 170 , and a header cell merging unit 190 .
  • the optical character recognition unit 200 may be included in the table information generating system 100 .
  • the optical character recognition unit 200 may receive the table image D200 and recognize characters included in the table image D200 .
  • the optical character recognition unit 200 may generate information about the recognized characters in the process of recognizing the characters from the table image. As will be described later with reference to FIG. 2 , the optical character recognition unit 200 may generate a bounding box including characters and text information from the table image D200 .
  • the table information generating system 100 may perform rule-based clustering, cell identification, header identification, and header cell merging by receiving information about the recognized characters from the optical character recognition unit 200 .
  • the data preprocessor 110 may receive information on the characters recognized by the optical character recognition unit 200 and convert the received information into data suitable for generating table information. For example, the data preprocessor 110 may convert the result output from the optical character recognition unit 200 into a data type and data structure that can be processed in character units. In some embodiments, the data preprocessor 110 may calculate the size of the characters, and may calculate the average width and average height of the characters. The data preprocessor 110 may remove noise data from the result output from the optical character recognition unit 200 , and for example, the noise data may include blanks. An example of the data preprocessor 110 will be described later with reference to FIG. 2 .
  • the clustering unit 130 may cluster the characters identified as belonging to the same cell into one group by classifying the characters included in the table image D200 into row groups and column groups. In some embodiments, the clustering unit 130 classifies the characters into a plurality of row groups based on an angle between a vector connecting the centers of the bounding boxes and a horizontal axis, and into a plurality of column groups based on the size of the vector. can be classified. An example of the clustering unit 130 will be described later with reference to FIGS. 4 to 6 .
  • the clustering unit 130 includes the optical character recognition unit ( 200) may directly receive information about the recognized characters.
  • the cell identification unit 150 may identify a row and a column corresponding to each of a plurality of clustered groups. In some embodiments, the cell identification unit 150 may identify a row corresponding to a plurality of groups based on a horizontal axis in a bounding box, and determine a reference line of the row. When a plurality of groups having different vertical axis boundaries of the bounding box at least partially overlap, the cell identification unit 150 may identify that they correspond to the same column, and may determine a reference line for the column. An example of the cell identification unit 150 will be described later with reference to FIGS. 6 to 7 .
  • the header identification unit 170 may receive, from the cell identification unit 150 , bounding boxes in which rows and columns are identified (or information about them), and may receive a table image D200 .
  • the header identification unit 170 may distinguish a header area and a data area based on the bounding boxes and the table image D200 .
  • the header identification unit 170 may extract at least one dividing line from the table image based on the pixels and the bounding box of the table image.
  • the header identification unit 170 may generate a cell state matrix such that cells belonging to the same region have the same value based on at least one dividing line.
  • the header identification unit 170 may classify the header area and the data area based on the cell state matrix. An example of the header identification unit 170 will be described later with reference to FIG. 8 .
  • the header cell merging unit 190 may merge header cells based on the cell state matrix generated by the header identification unit 170 and identify a relationship between the plurality of sub-regions.
  • the header cell merging unit 190 may distinguish a type in which the header area is divided into a plurality of sub areas by a dividing line.
  • the header cell merging unit 190 may merge two or more cells by modifying the cell state matrix so that values corresponding to the plurality of sub-regions have the same value.
  • An example of the header cell merging unit 190 will be described later with reference to FIGS. 10A and 10B .
  • FIG. 2 is a block diagram illustrating an example of the data preprocessor 110 of FIG. 1 according to an exemplary embodiment of the present disclosure.
  • the data pre-processing unit 110 ′ receives information about the characters recognized by the optical character recognition unit 200 and converts the received information into data suitable for generating table information. can
  • the data preprocessor 110 ′ may receive a bounding box D210 of recognized characters and text information D230 .
  • the bounding box D210 may indicate the smallest boundary surrounding the character in the horizontal and vertical axis directions, and may have a horizontal axis length and a vertical axis length.
  • the text information D230 may include data types and data values.
  • the data type may be ⁇ character>, ⁇ integer>, ⁇ float>, etc.
  • the data value may be 'a', '1', '.', etc.
  • the data preprocessor 110 ′ may include a data parsing unit 111 , a data normalization unit 113 , and a noise data removal unit 115 .
  • the data parsing unit 111 may convert the result output from the optical character recognition unit 200 into a data type and data structure that can be processed in character units.
  • the result output from the optical character recognition unit 200 may be a markup language of the structure of document data.
  • the data parsing unit 111 converts the markup language into a list data structure or dictionary type, so that the table information generating system 100 can calculate the distance and angle in units of characters, and in units of characters can be clustered.
  • the data normalizer 113 may calculate the size of each character based on the bounding box D210 .
  • the horizontal axis length of the bounding box may be calculated as the width of the character
  • the vertical axis length of the bounding box may be calculated as the character height.
  • the data normalization unit 113 may calculate the average width and average height of the characters from the width and height of each of the characters.
  • the data normalization unit 113 may normalize the size of the characters based on the average width and the average height and minimize the deviation of the width and height of the characters. For example, the data normalization unit 113 may reduce variations in width and height of the characters when both uppercase and lowercase letters are included in the table constituent characters or when a subscript is included.
  • the data normalization unit 113 may be omitted from the data preprocessor 110 ′.
  • the noise data removing unit 115 may remove the blank recognized by the optical character recognition unit 200 based on the bounding box D210 .
  • the noise data removal unit 115 may generate a vector linking the centers of the left and right bounding boxes adjacent to each other. When the size of the vector is equal to or greater than a predetermined multiple of the average width calculated by the data normalization unit 113 , the noise data removing unit 115 may recognize it as a blank, and may perform data preprocessing for removing the blank.
  • the table image D200' may include data sorted based on a row and a column, and a header providing specific information about data included in each column. It may contain areas.
  • the table image D200 ′ may include a plurality of dividing lines L1 , L2 , and L3 , and a header area and a data area may be divided based on at least one dividing line (eg, L2 ).
  • the table image D200 ′ may include indented characters D270 , and the indented characters (eg, CAMP, Costa Rica, GENDAI) may include non-indented characters (eg, CAMP, Costa Rica, GENDAI). , may be required to be identified as corresponding to the same column as Pediatric Studies).
  • the table information generating system 100 may output structured data by recognizing a row and column structure from the table image D200 based on a rule. Accordingly, it is possible to generate the table information D100 with high accuracy even for a table having an arbitrary type.
  • FIG. 4 is a flowchart exemplarily illustrating an operation method of the clustering unit 130 of FIG. 1 according to an exemplary embodiment of the present disclosure.
  • FIG. 5 shows an example of a method of clustering characters D250 included in the table image D200' of FIG. 3 according to an exemplary embodiment of the present disclosure.
  • the clustering unit 130 may receive information on recognized characters as input data, and the input data may include a bounding box including characters.
  • the clustering unit 130 may calculate at least one of an average width and an average height of characters based on the bounding box D210 ′ ( S20 ). For example, the average width of the characters may be calculated as the average of the horizontal lengths of the bounding boxes D210' including the characters, and the average height of the characters may be calculated as the average of the vertical lengths of the bounding boxes including the characters. .
  • the clustering unit 130 may normalize the size of the characters based on at least one of the average width and the average height of the characters so that a deviation in the width or height of the characters is reduced ( S40 ).
  • the clustering unit 130 may cluster adjacent characters into one group by classifying the characters into a plurality of groups based on the bounding box D210'.
  • the clustering unit 130 may classify the characters into a plurality of line groups (S60).
  • the clustering unit 130 may generate a vector linking the centers of the left and right adjacent bounding boxes, and may classify the row groups based on an angle between the vector and the horizontal axis. If the angle between the vector and the horizontal axis is less than or equal to the critical angle (eg, 30 degrees), the clustering unit 130 classifies them into the same row group, and if the angle between the vector and the horizontal axis is greater than the critical angle, classifies them into different row groups.
  • the x-axis may be referred to as a horizontal axis
  • the y-axis may be referred to as a vertical axis. For example, as shown in FIG.
  • the clustering unit 130 may generate a fourth vector V4 connecting the centers of a bounding box including '1' and a bounding box including '6'. , an angle between the fourth vector V4 and the horizontal axis may be smaller than a critical angle. Accordingly, the character '1' and the character '6' may be classified into the same row group.
  • the clustering unit 130 may generate a third vector V3 linking the centers of the bounding box including '1' and the bounding box including '3', and between the third vector V3 and the horizontal axis. The angle of may be greater than the critical angle. Accordingly, the character '1' and the character '3' may be classified into different row groups. When characters are classified as described above, 0.97 and 3.45 may be classified as a first line group, and ⁇ 0.001 and -6.82 may be classified as a second line group.
  • the clustering unit 130 may classify the characters into a plurality of column groups ( S80 ).
  • the clustering unit 130 may generate a vector linking the centers of left and right adjacent bounding boxes, and may classify column groups based on the size of the vector.
  • the clustering unit 130 may classify the vectors into the same column group if the size is less than or equal to the threshold value, and may classify the vectors into different column groups if the vector size is greater than the threshold value.
  • the clustering unit 130 may generate a second vector V2 linking the center of the bounding box including '7' and the adjacent bounding box including '9'. and the magnitude of the second vector V2 may be smaller than the threshold value.
  • the character '9' and the character '7' may be classified into the same column group.
  • the clustering unit 130 may generate a first vector V1 linking the centers of a bounding box including '7' and a bounding box including '3', and the size of the first vector V1 is may be greater than the threshold.
  • the letter '7' and the letter '3' may be classified into different column groups. When characters are classified as described above, 0.97 and ⁇ 0.001 may be classified as a first column group, and 3.45 and -6.82 may be classified as a second column group.
  • the characters are shown in the order in which they are sorted into row groups (S60) and sorted into column groups (S80), in some embodiments, the characters are sorted into column groups and sorted into row groups (S80). can have
  • the clustering unit 130 clusters the characters included in the same cell into one group by classifying the characters included in the table image D200 ′ into row groups and column groups. can do.
  • the plurality of groups may include groups having different vertical axis boundaries of the bounding box. For example, when characters are indented in a table as in the area D270' shown in FIG. 6, the vertical axis boundaries of the bounding boxes of the groups are not aligned, but they are required to be identified as corresponding to the same column. Referring to FIG. 6 , when the first group of bounding boxes and the second group of bounding boxes at least partially overlap in the vertical axis, the cell identification unit 150 may identify them as corresponding to the same column.
  • the cell identification unit 150 may display the first group G1, the second group G2, the third group G3 and It is identified that the fourth group (G4) corresponds to the same column, and the first group (G1), the second group (G2), the third group (G3), and the fourth group (G4) are clustered in the reference bounding box.
  • the box can be updated.
  • the cell identification unit 150 may determine the vertical axis boundary of the reference bounding box as the reference line of the column. Accordingly, the region D270' shown in FIG. 6 may be structured as the region D270'' shown in FIG. 7 and identified as corresponding to the same column.
  • FIG. 8 is a flowchart exemplarily illustrating an operation method of the header identification unit 170 of FIG. 1 according to an exemplary embodiment of the present disclosure.
  • FIG. 9 shows an example of dividing a header area and a data area in the header identification unit 170 of FIG. 1 according to an exemplary embodiment of the present disclosure.
  • FIGS. 8 and 9 will be described with reference to FIG. 1 .
  • the header identification unit 170 may receive the table image D200 and the bounding box D210', and may extract information on pixels from the received table image D200.
  • the header identification unit 170 may extract a dividing line based on the pixels of the table image D200 and the horizontal length of the bounding box ( S100 ). Referring to FIG.
  • the table image D200 may include a plurality of dividing lines L1, L2, and L3, and the plurality of dividing lines L1, L2, and L3 may have a pixel value and a horizontal axis length.
  • the plurality of dividing lines L1 , L2 , and L3 may have (0,0,0) as an RGB value, and may have a horizontal axis length greater than or equal to a predetermined multiple of the average character width.
  • the header identification unit 170 selects a plurality of dividing lines L1 , L2, L3) can be extracted.
  • the header identification unit 170 may generate a cell state matrix including values corresponding to each of the cells identified by the cell identification unit 150 based on the plurality of dividing lines ( S120 ). .
  • the header identification unit 170 may generate a cell state matrix such that cells belonging to the same region have the same value based on a plurality of dividing lines. For example, referring to FIG. 9 , cells D500 in which rows and columns are identified may be divided into two regions A1 and A2 based on a plurality of dividing lines L1 , L2 , and L3 .
  • the header identifier 170 may generate a cell state matrix in which cells in the first area A1 correspond to a first value and cells in the second area A2 correspond to a second value.
  • the header identification unit 170 may classify the header area and the data area based on the cell state matrix ( S140 ). In some embodiments, a region of cells corresponding to the most values in the cell state matrix may be identified as a data region, and the remaining regions may be identified as a header region. For example, referring to FIG. 9 , the second value may correspond to the largest number of values in the cell state matrix, and the header identification unit 170 uses the second area A2 corresponding to the second value as the data area. can be identified. The header identification unit 170 may identify the remaining area, that is, the first area A1, as the header area.
  • the header identification unit 170 may classify the table type based on the dividing line type (S160). For example, the header identification unit 170 may distinguish a type in which the header area is divided into a plurality of sub areas by a dividing line. Although it is shown in FIG. 8 that the header identification unit 170 distinguishes table types, the header cell merge unit 190 may also distinguish table types.
  • FIG. 10A illustrates an example in which a header area is divided into a plurality of sub areas according to an exemplary embodiment of the present disclosure.
  • 10B illustrates a cell state matrix corresponding to FIG. 10A according to an exemplary embodiment of the present disclosure.
  • FIGS. 10A and 10B will be described with reference to FIG. 1 .
  • the header cell merging unit 190 may distinguish a type in which the header area is divided into a plurality of sub areas by a dividing line. As shown in FIG. 10A , the header area may be divided into a plurality of sub areas H1 and H2 by a dividing line, and the plurality of sub areas may include empty cells. In order to generate table information, it may be required that the lower header area H2 belongs to the upper header area H1, that is, the upper header area H1 is identified as a higher layer of the lower header area H2. The header cell merging unit 190 may merge header cells based on the cell state matrix generated by the header identification unit 170 and identify a relationship between the plurality of sub-regions.
  • the header identification unit 170 may generate a cell state matrix including values corresponding to the cells identified by the cell identification unit 150 .
  • the header identification unit 170 may generate a cell state matrix such that cells belonging to the same region have the same value based on the plurality of dividing lines L4, L5, L6, and L7.
  • the plurality of sub-regions may include two or more cells and may include empty cells.
  • the header cell merging unit 190 may merge two or more cells by modifying values corresponding to two or more cells to have the same value.
  • a cell in which data is written may correspond to '0', and an empty cell may correspond to '-1'.
  • Cells belonging to the lower header area H2' may correspond to '1', and cells belonging to the data area may correspond to '2'.
  • the header cell merging unit 190 duplicates '0', which is a value corresponding to a cell in the same region, to an empty cell belonging to the upper header region H1' in the cell state matrix, so that values corresponding to two or more cells have the same value. It can be modified to have a value. Accordingly, the lower header cells may be identified as belonging to the upper header cell, and the upper header cell may be identified as being a higher layer of the lower header cell.

Abstract

본 발명의 기술적 사상에 따라, 표 이미지로부터 구조화된 출력 데이터를 생성하기 위한 표 정보 생성 시스템은, 표 이미지에서 인식된 문자들(characters)에 대한 정보를 포함하는 입력 데이터를 수신하고, 입력 데이터에 기초하여 상기 문자들을 복수의 그룹들로 분류하도록 구성된 클러스터링부, 복수의 그룹들 각각에 대응하는 행과 열을 식별하도록 구성된 셀 식별부, 표 이미지에서 적어도 하나의 구분선을 추출하고, 상기 적어도 하나의 구분선에 기초하여 머리글(header) 영역과 데이터 영역을 식별하도록 구성된 머리글 식별부를 포함할 수 있다.

Description

표 이미지로부터 구조화된 출력 데이터를 생성하기 위한 표 정보 생성 시스템 및 방법
본 발명의 기술적 사상은 표 정보 생성 시스템에 관한 것으로서, 더욱 상세하게는 표 이미지로부터 구조화된 출력 데이터를 생성하기 위한 표 정보 생성 시스템에 관한 것이다.
본 발명은 과학기술정보통신부 SW컴퓨팅산업원천기술개발산업(SW)의 일환으로 (주)솔트룩스에서 주관하고 연구하여 수행된 연구로부터 도출된 것이다. [연구기간: 2020.01.01 ~2020.12.31, 연구관리 전문기관: 정보통신기술진흥센터, 연구과제명: WiseKB: 빅데이터 이해 기반 자가학습형 지식베이스 및 추론 기술 개발, 과제 고유번호: 1711103335, 세부과제번호: 2013-2-00109-008]
표는 학회지, 학술지, 보고서 등 다양한 분야에서 자료 분석을 위해 사용될 수 있다. 문서 내부에 포함된 표 또는 이미지 형태의 표로부터 구조화된 표 정보를 생성하는 것은 용이하지 아니할 수 있다. 기계학습(Machine learning) 기술이 발전함에 따라, 학습 데이터를 통해 표를 식별하고 구조화된 표 정보를 생성하는 방법이 있으나, 표 정보의 정확도가 떨어지는 문제점이 있다.
본 발명의 기술적 사상은, 표 이미지로부터 구조화된 출력 데이터를 정확하게 생성하는 표 정보 생성 시스템 및 방법을 제공한다.
상기와 같은 목적을 달성하기 위하여, 본 발명의 기술적 사상에 따라, 표 이미지로부터 구조화된 출력 데이터를 생성하기 위한 표 정보 생성 시스템은, 표 이미지에서 인식된 문자들(characters)에 대한 정보를 포함하는 입력 데이터를 수신하고, 입력 데이터에 기초하여 상기 문자들을 복수의 그룹들로 분류하도록 구성된 클러스터링부, 복수의 그룹들 각각에 대응하는 행과 열을 식별하도록 구성된 셀 식별부, 표 이미지에서 적어도 하나의 구분선을 추출하고, 상기 적어도 하나의 구분선에 기초하여 머리글(header) 영역과 데이터 영역을 식별하도록 구성된 머리글 식별부를 포함할 수 있다.
본 발명의 기술적 사상에 따라, 정보는, 문자를 포함하는 바운딩 박스를 포함하고, 바운딩 박스에 기초하여 상기 문자들의 평균 너비 및 평균 높이 중 적어도 하나를 산출하도록 구성된 데이터 전처리부를 더 포함할 수 있다.
본 발명의 기술적 사상에 따라, 클러스터링부는, 좌우로 상호 인접한 바운딩 박스들의 중심을 잇는 벡터와 수평축 사이의 각도에 기초하여 행 그룹들을 분류하고, 상기 벡터의 크기에 기초하여 열 그룹들을 분류하도록 구성될 수 있다.
본 발명의 기술적 사상에 따라, 셀 식별부는, 제1 그룹의 제1 바운딩 박스 및 제2 그룹의 제2 바운딩 박스가 수직축 방향으로 적어도 부분적으로 중첩되는 경우 상기 제1 그룹과 상기 제2 그룹이 동일한 열에 속하는 것으로 식별하도록 구성될 수 있다.
본 발명의 기술적 사상에 따라, 정보는, 문자를 포함하는 바운딩 박스를 포함하고, 머리글 식별부는, 표 이미지를 수신하고, 표 이미지의 픽셀들 및 바운딩 박스의 수평축 길이에 기초하여 표 이미지로부터 적어도 하나의 구분선을 추출하도록 구성될 수 있다.
본 발명의 기술적 사상에 따라, 머리글 셀 인식부는, 적어도 하나의 구분선을 기준으로 같은 영역에 속한 셀들은 동일한 값을 가지도록 셀 식별부에서 인식된 셀들 각각에 대응하는 값들을 포함하는 셀 상태 행렬을 생성하도록 구성될 수 있다.
본 발명의 기술적 사상에 따라, 머리글 식별부는, 셀 상태 행렬에서 가장 많은 값들에 대응하는 셀들의 영역을 데이터 영역으로 식별하고, 나머지 영역을 머리글 영역으로 식별하도록 구성될 수 있다.
본 발명의 기술적 사상에 따라, 표 이미지로부터 구조화된 출력 데이터를 생성하기 위한 표 정보 생성 시스템은, 적어도 하나의 구분선의 유형에 기초하여 머리글 영역에 대응하는 2이상의 셀들을 병합하도록 구성된 머리글 셀 병합부를 더 포함할 수 있다.
본 발명의 기술적 사상에 따라, 머리글 식별부는, 셀들 각각에 대응하는 값들을 포함하는 셀 상태 행렬을 생성하도록 구성되고, 머리글 셀 병합부는, 머리글 영역에서 적어도 하나의 구분선으로 분할된 복수의 서브 영역들을 식별하고, 2 이상의 셀들에 대응하는 값들이 동일한 값을 가지도록 셀 상태 행렬을 수정하도록 구성될 수 있다.
본 발명의 기술적 사상에 따라, 표 이미지로부터 구조화된 출력 데이터를 생성하기 위한 표 정보 생성 방법에 있어서, 표 이미지에서 인식된 문자들(characters)에 대한 정보를 포함하는 입력 데이터를 수신하는 단계, 입력 데이터에 기초하여 상기 문자들을 복수의 그룹들로 분류 하는 단계, 복수의 그룹들 각각에 대응하는 행과 열을 식별하는 단계, 표 이미지에서 적어도 하나의 구분선을 추출하고, 적어도 하나의 구분선에 기초하여 머리글(header) 영역과 데이터 영역을 식별하는 단계를 포함할 수 있다.
본 발명의 기술적 사상에 따른 시스템 및 방법에 의하면, 광학 문자 인식 결과를 활용하여 표 이미지로부터 높은 정확도의 표 정보를 생성할 수 있다.
또한, 본 발명의 기술적 사상에 따른 시스템 및 방법에 의하면 기계학습으로 인식하기 어려운 특정 유형의 표 이미지로부터 규칙 기반의 프로세스를 기반으로 높은 정확도의 표 정보를 생성할 수 있다.
또한, 본 발명의 기술적 사상에 따른 시스템 및 방법에 의하면, 높은 정확도의 표 정보에 기인하여 표로부터 정확한 지식 데이터가 용이하게 추출될 수 있고, 지식 그래프 또는 지식 베이스의 구축이 용이해질 뿐만 아니라 방대한 지식을 포함하는 지식 그래프 또는 지식 베이스가 구축될 수 있다.
본 발명의 실시예들에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 아니하며, 언급되지 아니한 다른 효과들은 이하의 본 발명의 실시예들에 대한 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 도출되고 이해될 수 있다. 즉, 본 발명을 실시함에 따른 의도하지 아니한 효과들 역시 본 발명의 실시예들로부터 당해 기술분야의 통상의 지식을 가진 자에 의해 도출될 수 있다.
도 1은 본 발명의 예시적 실시예에 따른 표 정보 생성 시스템 및 그 입출력 관계를 나타내는 블록도이다.
도 2는 본 개시의 예시적 실시예에 따른 도 1의 데이터 전처리부의 예시를 나타내는 블록도이다.
도 3은 본 개시의 예시적 실시예에 따른 도 1의 표 이미지의 예시를 나타낸다.
도 4는 본 개시의 예시적 실시예에 따른 도 1의 클러스터링부의 동작 방법을 예시적으로 나타내는 순서도이다.
도 5는 본 개시의 예시적 실시예에 따라 도 3의 일부 문자들을 클러스터링하는 방법의 예시를 나타낸다.
도 6은 본 개시의 예시적 실시예에 따라 도 1의 클러스터링부에서 문자들을 복수의 그룹들로 분류한 결과를 예시적으로 나타낸다.
도 7은 본 개시의 예시적 실시예에 따라 도 1의 셀 식별부에서 복수의 그룹들에 대응하는 행과 열을 식별한 결과를 예시적으로 나타낸다.
도 8는 본 개시의 예시적 실시예에 따라 도 1의 머리글 식별부의 동작 방법을 예시적으로 나타내는 순서도이다.
도 9는 본 개시의 예시적 실시예에 따라 도 1의 머리글 식별부에서 머리글 영역과 데이터 영역을 구분하는 예시를 나타낸다.
도 10a는 본 개시의 예시적 실시예에 따라 머리글 영역이 복수의 서브 영역들로 분할되는 예시를 나타낸다.
도 10b는 본 개시의 예시적 실시예에 따라 도 10a에 대응하는 셀 상태 행렬을 나타낸다.
이하, 첨부한 도면을 참조하여 본 발명의 실시 예에 대해 상세히 설명한다. 본 발명의 실시 예는 당 업계에서 평균적인 지식을 가진 자에게 본 발명을 보다 완전하게 설명하기 위하여 제공되는 것이다. 본 발명은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는 바, 특정 실시 예들을 도면에 예시하고 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용한다. 첨부된 도면에 있어서, 구조물들의 치수는 본 발명의 명확성을 기하기 위하여 실제보다 확대하거나 축소하여 도시한 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수개의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 갖는다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 아니하는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하 도면 및 설명에서, 하나의 블록으로 표시 또는 설명되는 구성요소는 하드웨어 블록 또는 소프트웨어 블록일 수 있다. 예를 들면, 구성요소들 각각은 서로 신호를 주고 받는 독립적인 하드웨어 블록일 수도 있고, 또는 하나의 프로세서에서 실행되는 소프트웨어 블록일 수도 있다. 또한, 본 명세서에서 "시스템" 또는 "데이터베이스"는 적어도 하나의 프로세서 및 프로세서에 의해서 액세스되는 메모리를 포함하는 컴퓨팅 시스템을 지칭할 수 있다. 이하, 첨부한 도면을 참조하여 본 개시의 실시 예에 대해 상세히 설명한다.
도 1은 본 발명의 예시적 실시예에 따른 표 정보 생성 시스템(100) 및 그 입출력 관계를 나타내는 블록도이다. 도 1에 도시된 바와 같이, 표 정보 생성 시스템(100)은 표 이미지(D200)에서 인식된 문자들(characters)에 대한 정보를 광학 문자 인식부(200)로부터 수신할 수 있고, 구조화된 표 정보(D100)를 출력할 수 있다. 일부 실시예들에서, 표 이미지(D200)는 문서 내부에 포함된 표 또는 이미지 형태의 표일 수 있고, 표 정보(D100)는 행과 열 구조의 구조화된 텍스트 데이터일 수 있다. 일부 실시예들에서, 표 정보(D100)는 지식 그래프(또는 지식베이스)를 구축하는데 사용될 수 있고, 지식 그래프를 구성하는 적어도 하나의 지식 인스턴스(예컨대, 트리플)가 표 정보(D100)로부터 생성될 수 있다. 도 1에 도시된 바와 같이, 표 정보 생성 시스템(100)은 데이터 전처리부(110), 클러스터링부(130), 셀 식별부(150), 머리글 식별부(170), 머리글 셀 병합부(190)를 포함할 수 있다. 일부 실시예들에서, 도 1에 도시된 바와 상이하게, 광학 문자 인식부(200)는 표 정보 생성 시스템(100) 내에 포함될 수 있다.
광학 문자 인식부(200)는 표 이미지(D200)를 수신할 수 있고, 표 이미지(D200)에 포함된 문자들을 인식할 수 있다. 광학 문자 인식부(200)는 표 이미지로부터 문자들을 인식하는 과정에서, 인식된 문자들에 대한 정보를 생성할 수 있다. 도 2에서 후술되는 바와 같이, 광학 문자 인식부(200)는 표 이미지(D200)로부터 문자들을 포함하는 바운딩 박스 및 텍스트 정보를 생성할 수 있다. 표 정보 생성 시스템(100)은 광학 문자 인식부(200)로부터 인식된 문자들에 대한 정보를 수신함으로써 규칙 기반의 클러스터링, 셀 식별, 머리글 식별, 머리글 셀 병합을 할 수 있다.
데이터 전처리부(110)는 광학 문자 인식부(200)에서 인식된 문자들에 대한 정보를 수신하고, 수신된 정보를 표 정보 생성에 적합한 데이터로 변환할 수 있다. 예를 들어, 데이터 전처리부(110)는 광학 문자 인식부(200)에서 출력된 결과를 문자 단위로 처리할 수 있는 자료형 및 자료구조로 변환할 수 있다. 일부 실시예들에서, 데이터 전처리부(110)는 문자들의 크기를 산출할 수 있고, 문자들의 평균 너비 및 평균 높이를 산출할 수 있다. 데이터 전처리부(110)는 광학 문자 인식부(200)에서 출력된 결과에서 노이즈 데이터를 제거할 수 있고, 예컨대 노이즈 데이터는 공백을 포함할 수 있다. 데이터 전처리부(110)에 대한 예시는 도 2를 참조하여 후술될 것이다.
클러스터링부(130)는 표 이미지(D200)에 포함된 문자들을 행 그룹들과 열 그룹들로 분류함으로써, 같은 셀에 속하는 것으로 식별된 문자들을 하나의 그룹으로 클러스터링 할 수 있다. 일부 실시예들에서, 클러스터링부(130)는 문자들을 바운딩 박스들의 중심을 잇는 벡터와 수평축 사이의 각도에 기초하여 복수의 행 그룹들로 분류하고, 벡터의 크기에 기초하여 복수의 열 그룹들로 분류할 수 있다. 클러스터링부(130)에 대한 예시는 도 4 내지 도 6을 참조하여 후술될 것이다.
비록 도 1에서 데이터 전처리부(110)가 광학 문자 인식부(200)에서 인식된 문자들에 대한 정보를 수신하는 것으로 도시되어 있으나, 일부 실시예들에서 클러스터링부(130)가 광학 문자 인식부(200)로부터 인식된 문자들에 대한 정보를 직접 수신할 수도 있다.
셀 식별부(150)는 클러스터링 된 복수의 그룹들 각각에 대응하는 행과 열을 식별할 수 있다. 일부 실시예들에서, 셀 식별부(150)는 바운딩 박스에 수평축에 기초하여 복수의 그룹들에 대응하는 행을 식별하고, 행의 기준선을 정할 수 있다. 셀 식별부(150)는 바운딩 박스의 수직축 경계가 상이한 복수의 그룹들이 적어도 부분적으로 중첩되는 경우, 동일한 열에 대응하는 것으로 식별할 수 있고, 열의 기준선을 정할 수 있다. 셀 식별부(150)에 대한 예시는 도 6 내지 도 7을 참조하여 후술될 것이다.
머리글 식별부(170)는 셀 식별부(150)로부터 행 및 열이 식별된 바운딩 박스들(또는 그에 대한 정보)을 수신할 수 있고, 표 이미지(D200)를 수신할 수 있다. 머리글 식별부(170)는 바운딩 박스들 및 표 이미지(D200)에 기초하여 머리글(header) 영역과 데이터 영역을 구분할 수 있다. 일부 실시예들에서, 머리글 식별부(170)는 표 이미지의 픽셀들 및 바운딩 박스에 기초하여 표 이미지로부터 적어도 하나의 구분선을 추출할 수 있다. 머리글 식별부(170)는 적어도 하나의 구분선을 기준으로 같은 영역에 속한 셀들은 동일한 값을 가지도록 셀 상태 행렬을 생성할 수 있다. 머리글 식별부(170)는 셀 상태 행렬에 기초하여 머리글 영역과 데이터 영역을 구분할 수 있다. 머리글 식별부(170)에 대한 예시는 도 8을 참조하여 후술될 것이다.
머리글 셀 병합부(190)는 머리글 식별부(170)에서 생성된 셀 상태 행렬에 기초하여, 머리글 셀들을 병합하고 복수의 서브 영역들간의 관계를 식별할 수 있다.
일부 실시예들에서, 머리글 셀 병합부(190)는 머리글 영역이 구분선에 의해 복수의 서브 영역들로 분할된 유형을 구분할 수 있다. 머리글 셀 병합부(190)는 복수의 서브 영역들에 대응하는 값이 동일한 값을 가지도록 셀 상태 행렬을 수정함으로써, 2 이상의 셀들을 병합할 수 있다. 머리글 셀 병합부(190)에 대한 예시는 도 10a 및 도 10b를 참조하여 후술될 것이다.
도 2는 본 개시의 예시적 실시예에 따라 도 1의 데이터 전처리부(110)의 예시를 나타내는 블록도이다. 도 1을 참조하여 전술된 바와 같이, 데이터 전처리부(110')는 광학 문자 인식부(200)에서 인식된 문자들에 대한 정보를 수신하고, 수신된 정보를 표 정보 생성에 적합한 데이터로 변환할 수 있다.
도 2를 참조하면, 데이터 전처리부(110')는 인식된 문자들의 바운딩 박스(D210) 및 텍스트 정보(D230)를 수신할 수 있다. 바운딩 박스(D210)는 수평축과 수직축 방향으로 문자를 둘러싸는 가장 작은 경계를 나타낼 수 있고, 수평축 길이 및 수직축 길이를 가질 수 있다. 텍스트 정보(D230)는 데이터의 타입 및 데이터 값을 포함할 수 있다. 예를 들어, 데이터 타입은 <character>, <integer>, <float>등일 수 있고, 데이터 값은 'a', '1', '.'등 일 수 있다.
도 2에 도시된 바와 같이 데이터 전처리부(110')는 데이터 파싱부(111), 데이터 정규화부(113), 노이즈 데이터 제거부(115)를 포함할 수 있다.
데이터 파싱부(111)는 광학 문자 인식부(200)에서 출력된 결과를 문자 단위로 처리 가능한 자료형과 자료구조로 변환할 수 있다. 일부 실시예들에서, 광학 문자 인식부(200)에서 출력된 결과는 문서 데이터의 구조의 마크업(MarkUp) 언어일 수 있다. 데이터 파싱부(111)는 마크업 언어를 리스트(list) 자료구조 또는 딕셔너리(dictionary) 타입으로 변환함으로써, 표 정보 생성 시스템(100)은 문자 단위로 거리 및 각도를 산출할 수 있고, 문자 단위로 클러스터링 할 수 있다.
데이터 정규화부(113)는 바운딩 박스(D210)에 기초하여 문자들 각각의 크기를 산출할 수 있다. 예를 들어, 바운딩 박스의 수평축 길이를 문자의 너비로 산출하고, 바운딩 박스의 수직축 길이를 문자의 높이로 산출할 수 있다. 데이터 정규화부(113)는 문자들 각각의 너비 및 높이로부터 문자들의 평균 너비 및 평균 높이를 산출할 수 있다. 데이터 정규화부(113)는 평균 너비 및 평균 높이에 기초하여, 문자들의 크기를 정규화할 수 있고 문자들의 너비 및 높이의 편차가 최소화되도록 할 수 있다. 예를 들어, 데이터 정규화부(113)는 표 구성 문자에 대문자와 소문자가 모두 포함된 경우 또는 첨자(subsrcipt)가 포함된 경우 문자들의 너비 및 높이의 편차를 줄일 수 있다. 일부 실시예들에서, 데이터 정규화부(113)는 데이터 전처리부(110')에서 생략될 수 있다.
노이즈 데이터 제거부(115)는 바운딩 박스(D210)에 기초하여 광학 문자 인식부(200)에서 인식된 공백을 제거할 수 있다. 일부 실시예들에서, 노이즈 데이터 제거부(115)는 좌우로 상호 인접한 바운딩 박스들의 중심을 잇는 벡터를 생성할 수 있다. 노이즈 데이터 제거부(115)는 벡터의 크기가 데이터 정규화부(113)에서 산출된 평균 너비의 일정 배수 이상인 경우 공백으로 인식할 수 있고, 공백을 제거하는 데이터 전처리를 수행할 수 있다.
도 3은 본 개시의 예시적 실시예에 따른 도 1의 표 이미지(D200)의 예시를 나타낸다. 일부 실시예들에서, 표 이미지(D200')는 행(Row)과 열(Column)을 기준으로 정렬된 데이터를 포함할 수 있고, 각 열에 포함된 데이터에 대해 특정한 정보를 제공하는 머리글(header) 영역을 포함할 수 있다. 표 이미지(D200')는 복수의 구분선들(L1, L2, L3)을 포함할 수 있고, 적어도 하나의 구분선(예컨대, L2)에 기초하여 머리글 영역과 데이터 영역이 나누어질 수 있다. 일부 실시예들에서, 표 이미지(D200')는 들여쓰기 된 문자들(D270)을 포함할 수 있고, 들여쓰기 된 문자들(예컨대, CAMP, Costa Rica, GENDAI)은 들여쓰기 되지 아니한 문자(예컨대, Pediatric Studies)와 동일한 열에 대응하는 것으로 식별되는 것이 요구될 수 있다. 도 1을 참조하여 전술된 바와 같이, 표 정보 생성 시스템(100)은 표 이미지(D200)로부터 규칙에 기반하여 행과 열 구조를 인식함으로써 구조화된 데이터를 출력할 수 있다. 이에 따라, 임의의 유형을 갖는 표에 대해서도 높은 정확도의 표 정보(D100)를 생성할 수 있다.
도 4는 본 개시의 예시적 실시예에 따라 도 1의 클러스터링부(130)의 동작 방법을 예시적으로 나타내는 순서도이다. 도 5는 본 개시의 예시적 실시예에 따라 도 3의 표 이미지(D200')에 포함된 문자들(D250)을 클러스터링하는 방법의 예시를 나타낸다. 이하에서, 도 4 및 도 5는 도 1을 참조하여 설명될 것이다. 도 4에 도시된 바와 같이, 클러스터링부(130)는 인식된 문자들에 대한 정보를 입력 데이터로 수신할 수 있고, 입력 데이터는 문자들을 포함하는 바운딩 박스를 포함할 수 있다.
클러스터링부(130)는 바운딩 박스(D210')에 기초하여 문자들의 평균 너비 및 평균 높이 중 적어도 하나를 산출할 수 있다(S20). 예를 들어, 문자들의 평균 너비는 문자들을 포함하는 바운딩 박스(D210')들의 수평축 길이의 평균으로 산출될 수 있고, 문자들의 평균 높이는 문자들을 포함하는 바운딩 박스들의 수직축 길이의 평균으로 산출될 수 있다. 클러스터링부(130)는 문자들의 너비 또는 높이의 편차가 작아지도록 문자들의 평균 너비 및 평균 높이 중 적어도 하나에 기초하여 문자들의 크기를 정규화할 수 있다(S40). 클러스터링부(130)는 문자들을 바운딩 박스(D210')에 기초하여 복수의 그룹들로 분류함으로써, 인접한 문자들을 하나의 그룹으로 클러스터링할 수 있다.
클러스터링부(130)는 문자들을 복수의 행 그룹들로 분류할 수 있다(S60). 클러스터링부(130)는 좌우로 상호 인접한 바운딩 박스들의 중심을 잇는 벡터를 생성할 수 있고, 벡터와 수평축 사이의 각도에 기초하여 행 그룹들을 분류할 수 있다. 클러스터링부(130)는 벡터와 수평축 사이의 각도가 임계 각도(예컨대, 30도)보다 작거나 같으면 동일한 행 그룹으로 분류하고, 벡터와 수평축 사이의 각도가 임계 각도보다 크면 서로 다른 행 그룹으로 분류할 수 있다. 본 명세서에서 x축은 수평축으로 지칭될 수도 있고, y축은 수직축으로 지칭될 수도 있다. 예를 들어, 도 5에 도시된 바와 같이, 클러스터링부(130)는 '1'을 포함하는 바운딩 박스와 '6'을 포함하는 바운딩 박스의 중심을 잇는 제4 벡터(V4)를 생성할 수 있고, 제4 벡터(V4)와 수평축 사이의 각도는 임계 각도보다 작을 수 있다. 이에 따라, 문자 '1'과 문자 '6'은 동일한 행 그룹으로 분류될 수 있다. 또한, 클러스터링부(130)는 '1'을 포함하는 바운딩 박스와 '3'을 포함하는 바운딩 박스의 중심을 잇는 제3 벡터(V3)를 생성할 수 있고, 제3 벡터(V3)와 수평축 사이의 각도는 임계 각도보다 클 수 있다. 이에 따라, 문자 '1'과 문자 '3'은 서로 다른 행 그룹으로 분류될 수 있다. 전술한 방법과 같이 문자들을 분류하면, 0.97 및 3.45는 제1 행 그룹으로 분류될 수 있고, <0.001 및 -6.82는 제2 행 그룹으로 분류될 수 있다.
도 4를 다시 참조하면, 클러스터링부(130)는 문자들을 복수의 열 그룹들로 분류할 수 있다(S80). 클러스터링부(130)는 좌우로 상호 인접한 바운딩 박스들의 중심을 잇는 벡터를 생성할 수 있고, 벡터의 크기에 기초하여 열 그룹들을 분류할 수 있다. 클러스터링부(130)는 벡터의 크기가 임계값보다 작거나 같으면 동일한 열 그룹으로 분류하고, 벡터의 크기가 임계값보다 크면 서로 다른 열 그룹으로 분류할 수 있다. 예를 들어, 도 5에 도시된 바와 같이, 클러스터링부(130)는 '7'을 포함하는 바운딩 박스와 인접한 '9'을 포함하는 바운딩 박스의 중심을 잇는 제2 벡터(V2)를 생성할 수 있고, 제2 벡터(V2)의 크기는 임계값보다 작을 수 있다. 이에 따라, 문자 '9과 문자 '7'은 동일한 열 그룹으로 분류될 수 있다. 또한, 클러스터링부(130)는 '7'을 포함하는 바운딩 박스와 '3'을 포함하는 바운딩 박스의 중심을 잇는 제1 벡터(V1)를 생성할 수 있고, 제1 벡터(V1)의 크기는 임계값보다 클 수 있다. 이에 따라, 문자 '7'과 문자 '3'은 서로 다른 열 그룹으로 분류될 수 있다. 전술한 방법과 같이 문자들을 분류하면, 0.97 및 <0.001은 제1 열 그룹으로 분류될 수 있고, 3.45 및 -6.82는 제2 열 그룹으로 분류될 수 있다.
비록 도 4에서 문자들은 행 그룹들로 분류(S60)되고 열 그룹들로 분류(S80)되는 순서로 도시되었으나, 일부 실시예들에서, 문자들은 열 그룹들로 분류되고 행 그룹들로 분류되는 순서를 가질 수 잇다.
도 6은 본 개시의 예시적 실시예에 따라 도 1의 클러스터링부(130)에서 문자들을 복수의 그룹들로 분류한 결과를 예시적으로 나타낸다. 도 7은 본 개시의 예시적 실시예에 따라 도 1의 셀 식별부(150)에서 복수의 그룹들에 대응하는 행과 열을 식별한 결과를 예시적으로 나타낸다. 도 1을 참조하여 전술된 바와 같이, 클러스터링부(130)는 표 이미지(D200')에 포함된 문자들을 행 그룹들과 열 그룹들로 분류함으로써, 같은 셀에 포함되는 문자들을 하나의 그룹으로 클러스터링 할 수 있다.
도 6에 도시된 바와 같이, 클러스터링부(130)는 도 3의 표 이미지(D200')에 포함된 문자들을 복수의 그룹들(D300)로 분류할 수 있다. 셀 식별부(150)는 바운딩 박스에 기초하여 복수의 그룹들에 대응하는 행과 열을 식별할 수 있다. 셀 식별부(150)는 바운딩 박스의 중앙 값으로부터 수평축을 기준으로 임계값 내에 있는 그룹들을 동일한 행에 대응하는 것으로 식별할 수 있다. 예를 들어, 바운딩 박스의 중앙 값보다 수평축을 기준으로 ±2 내에 있는 그룹들을 동일한 행에 대응하는 것으로 식별하고, 바운딩 박스의 중앙 값의 ±2를 행의 기준선의 위치로 정할 수 있다.
일부 실시예들에서, 복수의 그룹들은 바운딩 박스의 수직축 경계가 상이한 그룹들을 포함할 수 있다. 예를 들어, 도 6에서 도시된 영역(D270')과 같이 표에서 문자가 들여쓰기된 경우 그룹들의 바운딩 박스의 수직축 경계는 정렬되지 아니하나, 동일한 열에 대응하는 것으로 식별될 것이 요구된다. 도 6을 참조하면, 셀 식별부(150)는 제1 그룹의 바운딩 박스와 제2 그룹의 바운딩 박스가 수직축으로 적어도 부분적으로 중첩되는 경우 동일한 열에 대응하는 것으로 식별할 수 있다.
예를 들어, 제1 그룹(G1)의 바운딩 박스는 제2 그룹(G2)의 바운딩 박스와 수직축으로 부분적으로 중첩되는 경우, 셀 식별부(150)는 제1 그룹(G1)과 제2 그룹(G2)이 동일한 열에 대응하는 것으로 식별하고, 제1 그룹(G1)과 제2 그룹(G2)이 클러스터링된 기준 바운딩 박스를 생성할 수 있다. 기준 바운딩 박스와 제3 그룹(G3)의 바운딩 박스가 수직축으로 부분적으로 중첩되는 경우, 셀 식별부(150)는 제1 그룹(G1), 제2 그룹(G2) 및 제3 그룹(G3)이 동일한 열에 대응하는 것으로 식별하고, 기준 바운딩 박스를 제1 그룹(G1), 제2 그룹(G2) 및 제3 그룹(G3)이 클러스터링된 바운딩 박스로 갱신할 수 있다. 기준 바운딩 박스와 제4 그룹(G4)의 바운딩 박스가 수직축으로 부분적으로 중첩되는 경우, 셀 식별부(150)는 제1 그룹(G1), 제2 그룹(G2), 제3 그룹(G3) 및 제 4 그룹(G4)이 동일한 열에 대응하는 것으로 식별하고, 기준 바운딩 박스를 제1 그룹(G1), 제2 그룹(G2), 제3 그룹(G3) 및 제4 그룹(G4)이 클러스터링된 바운딩 박스로 갱신할 수 있다. 셀 식별부(150)는 기준 바운딩 박스가 더 이상 갱신되지 않는 경우, 기준 바운딩 박스의 수직축 경계를 열의 기준선으로 정할 수 있다. 이에 따라, 도 6에서 도시된 영역(D270')은 도 7에서 도시된 영역(D270'')과 같이 구조화되어 동일한 열에 대응하는 것으로 식별될 수 있다.
도 8는 본 개시의 예시적 실시예에 따라 도 1의 머리글 식별부(170)의 동작 방법을 예시적으로 나타내는 순서도이다. 도 9는 본 개시의 예시적 실시예에 따라 도 1의 머리글 식별부(170)에서 머리글 영역과 데이터 영역을 구분하는 예시를 나타낸다. 이하 도 8 및 도 9는 도 1을 참조하여 설명된다. 머리글 식별부(170)는 표 이미지(D200) 및 바운딩 박스(D210')를 수신할 수 있고, 수신된 표 이미지(D200)로부터 픽셀들에 대한 정보를 추출할 수 있다. 머리글 식별부(170)는 표 이미지(D200)의 픽셀들 및 바운딩 박스의 수평축 길이에 기초하여 구분선을 추출할 수 있다(S100). 도 9를 참조하면, 표 이미지(D200)는 복수의 구분선들(L1, L2, L3)을 포함할 수 있고, 복수의 구분선들(L1, L2, L3)은 픽셀 값 및 수평축 길이를 가질 수 있다. 예를 들어, 복수의 구분선들(L1, L2, L3)은 RGB 값으로 (0,0,0)을 가질 수 있고, 평균 문자 너비의 일정 배수 이상의 수평축 길이를 가질 수 있다. 머리글 식별부(170)는 표 이미지(D200')에서 기 설정된 픽셀 값(또는 픽셀 값의 범위)에 해당하고 수평축 길이가 평균 문자 너비의 일정 배수 이상인 선이 인식되는 경우, 복수의 구분선들(L1, L2, L3)을 추출할 수 있다.
도 8을 다시 참조하면, 머리글 식별부(170)는 복수의 구분선들에 기초하여 셀 식별부(150)에서 식별된 셀들 각각에 대응하는 값들을 포함하는 셀 상태 행렬을 생성할 수 있다(S120). 머리글 식별부(170)는 복수의 구분선들을 기준으로 같은 영역에 속한 셀들은 동일한 값을 가지도록 셀 상태 행렬을 생성할 수 있다. 예를 들어, 도 9를 참조하면, 행과 열이 식별된 셀들(D500)은 복수의 구분선들(L1, L2, L3)을 기준으로 두 개의 영역(A1, A2)로 나누어질 수 있다. 머리글 식별부(170)는 제1 영역(A1)에 속한 셀들이 제1 값에 대응하고, 제2 영역(A2)에 속한 셀들이 제2 값에 대응하는 셀 상태 행렬을 생성할 수 있다.
도 8을 다시 참조하면, 머리글 식별부(170)는 셀 상태 행렬에 기초하여 머리글 영역과 데이터 영역을 구분할 수 있다(S140). 일부 실시예들에서, 셀 상태 행렬에서 가장 많은 값들에 대응하는 셀들의 영역을 데이터 영역으로 식별하고, 나머지 영역을 머리글 영역으로 식별할 수 있다. 예를 들어, 도 9를 참조하면, 셀 상태 행렬에서 제2 값이 가장 많은 값에 해당할 수 있고, 머리글 식별부(170)는 제2 값에 대응하는 제2 영역(A2)을 데이터 영역으로 식별할 수 있다. 머리글 식별부(170)는 나머지 영역, 즉 제1 영역(A1)을 머리글 영역으로 식별할 수 있다.
머리글 식별부(170)는 구분선 유형에 기초하여 표 유형을 구분할 수 있다(S160). 예를 들어, 머리글 식별부(170)는 머리글 영역이 구분선에 의해 복수의 서브 영역들로 분할된 유형을 구분할 수 있다. 비록 도 8에는 머리글 식별부(170)에서 표 유형을 구분하는 것으로 도시되었으나, 머리글 셀 병합부(190)에서 표 유형을 구분할 수도 있다.
도 10a는 본 개시의 예시적 실시예에 따라 머리글 영역이 복수의 서브 영역들로 분할되는 예시를 나타낸다. 도 10b는 본 개시의 예시적 실시예에 따라 도 10a에 대응하는 셀 상태 행렬을 나타낸다. 이하에서, 도 10a 및 도 10b는 도 1을 참조하여 설명될 것이다.
일부 실시예들에서, 머리글 셀 병합부(190)는 머리글 영역이 구분선에 의해 복수의 서브 영역들로 분할된 유형을 구분할 수 있다. 도 10a에 도시된 바와 같이, 머리글 영역이 구분선에 의해 복수의 서브 영역들(H1, H2) 로 분할될 수 있고, 복수의 서브 영역들은 비어있는 셀들을 포함할 수 있다. 표 정보 생성을 위해 하단 머리글 영역(H2)은 상단 머리글 영역(H1)에 속하는 것, 즉 상단 머리글 영역(H1)이 하단 머리글 영역(H2)의 상위 계층인 것으로 식별되는 것이 요구될 수 있다. 머리글 셀 병합부(190)는 머리글 식별부(170)에서 생성된 셀 상태 행렬에 기초하여, 머리글 셀들을 병합하고 복수의 서브 영역들간의 관계를 식별할 수 있다.
일부 실시예들에서, 머리글 식별부(170)는 셀 식별부(150)에서 식별된 셀들에 대응하는 값들을 포함하는 셀 상태 행렬을 생성할 수 있다. 머리글 식별부(170)는 복수의 구분선들(L4, L5, L6, L7)을 기준으로 같은 영역에 속한 셀들은 동일한 값을 가지도록 셀 상태 행렬을 생성할 수 있다. 셀 상태 행렬에서, 복수의 서브 영역들은 2 이상의 셀들을 포함할 수 있고, 비어있는 셀들을 포함할 수 있다. 머리글 셀 병합부(190)는 2 이상의 셀들에 대응하는 값이 서로 동일한 값을 가지도록 수정함으로써, 2 이상의 셀들을 병합할 수 있다.
도 10b를 참조하면, 셀 상태 행렬에서 상단 머리글 영역(H1') 에 속한 셀 중 데이터가 기입된 셀은 '0'에 대응하고, 비어있는 셀은 '-1'에 대응할 수 있다. 하단 머리글 영역(H2')에 속한 셀들은 '1'에 대응하고, 데이터 영역에 속한 셀들은 '2'에 대응할 수 있다. 머리글 셀 병합부(190)는 셀 상태 행렬에서 상단 머리글 영역(H1')에 속한 비어있는 셀에 같은 영역의 셀에 대응하는 값인 '0'을 복제함으로써, 2 이상의 셀들에 대응하는 값이 서로 동일한 값을 가지도록 수정할 수 있다. 이에 따라, 하단 머리글 셀들은 상단 머리글 셀에 속하는 것으로 식별될 수 있고, 상단 머리글 셀이 하단 머리글 셀의 상위 계층인 것으로 식별될 수 있다.
이상에서와 같이 도면과 명세서에서 예시적인 실시예들이 개시되었다. 본 명세서에서 특정한 용어를 사용하여 실시예들을 설명되었으나, 이는 단지 본 개시의 기술적 사상을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 개시의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 개시의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.

Claims (10)

  1. 표 이미지로부터 구조화된 출력 데이터를 생성하기 위한 표 정보 생성 시스템으로서,
    상기 표 이미지에서 인식된 문자들(characters)에 대한 정보를 포함하는 입력 데이터를 수신하고, 상기 입력 데이터에 기초하여 상기 문자들을 복수의 그룹들로 분류하도록 구성된 클러스터링부;
    상기 복수의 그룹들 각각에 대응하는 행과 열을 식별하도록 구성된 셀 식별부; 및
    상기 표 이미지에서 적어도 하나의 구분선을 추출하고, 상기 적어도 하나의 구분선에 기초하여 머리글(header) 영역과 데이터 영역을 식별하도록 구성된 머리글 식별부를 포함하는 표 정보 생성 시스템.
  2. 제1항에 있어서,
    상기 정보는, 상기 문자를 포함하는 바운딩 박스를 포함하고,
    상기 바운딩 박스에 기초하여 상기 문자들의 평균 너비 및 평균 높이 중 적어도 하나를 산출하도록 구성된 데이터 전처리부를 더 포함하는 표 정보 생성 시스템.
  3. 제2항에 있어서,
    상기 클러스터링부는, 좌우로 상호 인접한 바운딩 박스들의 중심을 잇는 벡터와 수평축 사이의 각도에 기초하여 행 그룹들을 분류하고, 상기 벡터의 크기에 기초하여 열 그룹들을 분류하도록 구성된 것을 특징으로 하는 표 정보 생성 시스템.
  4. 제3항에 있어서,
    상기 셀 식별부는, 제1 그룹의 제1 바운딩 박스 및 제2 그룹의 제2 바운딩 박스가 수직축 방향으로 적어도 부분적으로 중첩되는 경우, 상기 제1 그룹과 상기 제2 그룹이 동일한 열에 속하는 것으로 식별하도록 구성된 것을 특징으로 하는 표 정보 생성 시스템.
  5. 제1항에 있어서,
    상기 정보는, 상기 문자를 포함하는 바운딩 박스를 포함하고,
    상기 머리글 식별부는, 상기 표 이미지를 수신하고, 상기 표 이미지의 픽셀들 및 상기 바운딩 박스의 수평축 길이에 기초하여 상기 표 이미지로부터 적어도 하나의 구분선을 추출하도록 구성된 것을 특징으로 하는 표 정보 생성 시스템.
  6. 제1항에 있어서,
    상기 머리글 식별부는, 상기 적어도 하나의 구분선을 기준으로 같은 영역에 포함된 셀들은 동일한 값을 가지도록 상기 셀 식별부에서 인식된 셀들 각각에 대응하는 값들을 포함하는 셀 상태 행렬을 생성하도록 구성된 것을 특징으로 하는 표 정보 생성 시스템.
  7. 제6항에 있어서,
    상기 머리글 식별부는, 상기 셀 상태 행렬에서 가장 많은 값들에 대응하는 셀들의 영역을 상기 데이터 영역으로 식별하고, 나머지 영역을 상기 머리글 영역으로 식별하도록 구성된 것을 특징으로 하는 표 정보 생성 시스템.
  8. 제1항에 있어서,
    상기 적어도 하나의 구분선의 유형에 기초하여 상기 머리글 영역에 대응하는 2 이상의 셀들을 병합하도록 구성된 머리글 셀 병합부를 더 포함하는 표 정보 생성 시스템.
  9. 제8항에 있어서,
    상기 머리글 식별부는, 상기 셀들 각각에 대응하는 값들을 포함하는 셀 상태 행렬을 생성하도록 구성되고,
    상기 머리글 셀 병합부는, 상기 머리글 영역에서 상기 적어도 하나의 구분선으로 분할된 복수의 서브 영역들을 식별하고, 상기 2 이상의 셀들에 대응하는 값들이 동일한 값을 가지도록 상기 셀 상태 행렬을 수정하도록 구성되는 것을 특징으로 하는 표 정보 생성 시스템.
  10. 표 이미지로부터 구조화된 출력 데이터를 생성하기 위한 표 정보 생성 방법에 있어서,
    상기 표 이미지에서 인식된 문자들(characters)에 대한 정보를 포함하는 입력 데이터를 수신하는 단계;
    상기 입력 데이터에 기초하여 상기 문자들을 복수의 그룹들로 분류하는 단계;
    상기 복수의 그룹들 각각에 대응하는 행과 열을 식별하는 단계; 및
    상기 표 이미지에서 적어도 하나의 구분선을 추출하고, 상기 적어도 하나의 구분선에 기초하여 머리글(header) 영역과 데이터 영역을 식별하는 단계를 포함하는 표 정보 생성 방법.
PCT/KR2020/016092 2020-11-16 2020-11-16 표 이미지로부터 구조화된 출력 데이터를 생성하기 위한 표 정보 생성 시스템 및 방법 WO2022102823A1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/KR2020/016092 WO2022102823A1 (ko) 2020-11-16 2020-11-16 표 이미지로부터 구조화된 출력 데이터를 생성하기 위한 표 정보 생성 시스템 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/KR2020/016092 WO2022102823A1 (ko) 2020-11-16 2020-11-16 표 이미지로부터 구조화된 출력 데이터를 생성하기 위한 표 정보 생성 시스템 및 방법

Publications (1)

Publication Number Publication Date
WO2022102823A1 true WO2022102823A1 (ko) 2022-05-19

Family

ID=81601370

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2020/016092 WO2022102823A1 (ko) 2020-11-16 2020-11-16 표 이미지로부터 구조화된 출력 데이터를 생성하기 위한 표 정보 생성 시스템 및 방법

Country Status (1)

Country Link
WO (1) WO2022102823A1 (ko)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060271502A1 (en) * 1995-11-10 2006-11-30 Mantaro Yajima Information processing apparatus and method for making document
KR20110081099A (ko) * 2010-01-06 2011-07-13 캐논 가부시끼가이샤 문서를 디지털화하는 장치 및 방법과, 컴퓨터 판독가능 기록 매체
US20190171704A1 (en) * 2017-12-01 2019-06-06 International Business Machines Corporation Heuristic Domain Targeted Table Detection and Extraction Technique
US20190340240A1 (en) * 2018-05-03 2019-11-07 Microsoft Technology Licensing, Llc Automated extraction of unstructured tables and semantic information from arbitrary documents
US20200042785A1 (en) * 2018-07-31 2020-02-06 International Business Machines Corporation Table Recognition in Portable Document Format Documents

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060271502A1 (en) * 1995-11-10 2006-11-30 Mantaro Yajima Information processing apparatus and method for making document
KR20110081099A (ko) * 2010-01-06 2011-07-13 캐논 가부시끼가이샤 문서를 디지털화하는 장치 및 방법과, 컴퓨터 판독가능 기록 매체
US20190171704A1 (en) * 2017-12-01 2019-06-06 International Business Machines Corporation Heuristic Domain Targeted Table Detection and Extraction Technique
US20190340240A1 (en) * 2018-05-03 2019-11-07 Microsoft Technology Licensing, Llc Automated extraction of unstructured tables and semantic information from arbitrary documents
US20200042785A1 (en) * 2018-07-31 2020-02-06 International Business Machines Corporation Table Recognition in Portable Document Format Documents

Similar Documents

Publication Publication Date Title
CA1299292C (en) Character recognition algorithm
Parhami et al. Automatic recognition of printed Farsi texts
CN104182750B (zh) 一种在自然场景图像中基于极值连通域的中文检测方法
WO2017039086A1 (ko) 웹플러그인 기반 딥러닝 모듈화시스템 및 이를 이용한 영상인식방법
Ahmad et al. Line and ligature segmentation of Urdu Nastaleeq text
CN1761976A (zh) 利用重排位图改善可读性
CN113486828A (zh) 图像处理方法、装置、设备和存储介质
WO2020138607A1 (ko) 챗봇을 이용한 질의 응답 방법 및 장치
WO2022102823A1 (ko) 표 이미지로부터 구조화된 출력 데이터를 생성하기 위한 표 정보 생성 시스템 및 방법
WO2023075434A1 (ko) 머신러닝 기반 바운딩 박스를 이용한 디지털 참고서 제공 시스템 및 그 방법
Dori et al. Segmentation and recognition of dimensioning text from engineering drawings
US20060126939A1 (en) Apparatus and method for recognizing an image
Essa et al. Enhanced technique for Arabic handwriting recognition using deep belief network and a morphological algorithm for solving ligature segmentation
WO2019107625A1 (ko) 기계 번역 방법 및 이를 위한 장치
Weigel et al. Normalizing the weighted edit distance
CN1025764C (zh) 字符识别方法
WO2024005413A1 (ko) 전자 문서 내 인공지능 기반 정보 추출 방법 및 장치
WO2022211323A1 (ko) 이미지 문서의 비정형 레이아웃 인식 방법
KR20220066740A (ko) 표 이미지로부터 구조화된 출력 데이터를 생성하기 위한 표 정보 생성 시스템 및 방법
WO2021261763A1 (ko) 온톨로지 데이터베이스 기반의 딥러닝을 통한 병리검사결과보고서 정제 시스템
WO2022092672A1 (ko) Ai 예측 모델을 이용한 예측 결과의 학습 데이터 추가 방법
CN112561928B (zh) 一种藏文古籍的版面分析方法及系统
CN101894277A (zh) 基于多分类支持向量机的集装箱箱号识别方法
WO2021091052A1 (ko) 가중 퍼지 소속함수 기반 심층 신경망을 통한 하위 패턴 학습 및 세부 학습을 이용한 클래스 분류 방법 및 장치
WO2021145541A1 (ko) Pdf 파일을 대상으로 하는 테이블 데이터 파싱 방법

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 20961693

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 20961693

Country of ref document: EP

Kind code of ref document: A1