KR20080086460A - 컴퓨터 실행가능 명령어들을 갖는 컴퓨터 판독가능 매체 및필기된 문서에서 테이블을 검출하는 테이블 검출기 - Google Patents
컴퓨터 실행가능 명령어들을 갖는 컴퓨터 판독가능 매체 및필기된 문서에서 테이블을 검출하는 테이블 검출기 Download PDFInfo
- Publication number
- KR20080086460A KR20080086460A KR1020087014962A KR20087014962A KR20080086460A KR 20080086460 A KR20080086460 A KR 20080086460A KR 1020087014962 A KR1020087014962 A KR 1020087014962A KR 20087014962 A KR20087014962 A KR 20087014962A KR 20080086460 A KR20080086460 A KR 20080086460A
- Authority
- KR
- South Korea
- Prior art keywords
- computer
- line segments
- readable medium
- executable instructions
- line
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/10—Character recognition
- G06V30/32—Digital ink
- G06V30/333—Preprocessing; Feature extraction
- G06V30/347—Sampling; Contour coding; Stroke extraction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/40—Document-oriented image-based pattern recognition
- G06V30/41—Analysis of document content
- G06V30/412—Layout analysis of documents structured with printed lines or input boxes, e.g. business forms or tables
Landscapes
- Engineering & Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Theoretical Computer Science (AREA)
- Artificial Intelligence (AREA)
- Character Discrimination (AREA)
- Image Analysis (AREA)
- Character Input (AREA)
- Ink Jet (AREA)
- Pens And Brushes (AREA)
Abstract
컴퓨터 실행가능 명령어를 갖는 컴퓨터 판독가능 매체 및 장치가 필기 문서에서 테이블을 검출한다. 후보 테이블의 경계 프레임(bounding frame)이 획득되도록 드로잉 스트로크(drawing stroke)로부터 라인 세그먼트(line segment)가 도출된다. 그 결과, 경계 프레임, 경계 프레임 내의 라인 세그먼트들, 및 이들의 교차점으로부터 관련 테이블 구조가 인식된다. 적어도 하나의 테이블 특성을 반영하는 분류자(classifier)가 결정되고, 그 결과 후보 테이블이 검증되거나 거부된다.
테이블 검출, 잉크 노트, 경계 프레임, 스트로크, 분류자
Description
컴퓨터 사용자는 퍼스널 컴퓨터와 상호작용하는 방법으로서 마우스 및 키보드를 사용하는 것에 익숙해져 있다. 퍼스널 컴퓨터가 인쇄된 문서보다 많은 이점들을 제공하지만, 사용자는 종종 인쇄된 종이를 사용하여 어떤 기능들을 계속 수행한다. 이들 기능 중 어떤 것은 필기 문서를 읽는 것을 포함한다. 주석의 경우에, 인쇄된 문서는 사용자에 의해 문서 상에 배치된 주석으로 인해 더 많은 중요성을 갖는다. 그렇지만, 필기 문서를 갖는 것으로 인한 문제점들 중 하나는 나중에 그 문서의 전자 형태에 그 내용을 다시 입력해야만 한다는 것이다. 이것을 하려면 원래의 사용자 또는 다른 사용자가 필기 내용을 힘들여 읽고 그 내용을 퍼스널 컴퓨터에 입력해야만 한다. 어떤 경우에, 사용자는 필기된 내용 및 원래의 텍스트를 스캔하여 읽어들임으로써 새 문서를 생성한다. 이들 다수의 단계들로 인해 인쇄된 문서와 그 문서의 전자 버전 간의 상호작용을 반복적으로 처리하는 것이 어렵게 된다. 게다가, 스캔하여 읽어들인 이미지가 종종 수정가능하지 않다. 필기된 내용을 원래의 텍스트로부터 분리하는 방법이 없을 수 있다. 이것에 의해 필기된 내용을 사용하는 것이 어렵게 된다. 그에 따라, 필기된 내용을 처리하는 개선된 방법이 필요하다.
컴퓨터 및 전자 데이터베이스가 점점 더 보편화됨에 따라, 디지털 형태의 문서의 효율적인 저장, 처리 및 검색에 대한 요구가 많아졌다. 문서들은 사용자에 의해 주석 첨부될 수 있는 필기된 문서 또는 기계-발생된 문서(machine-generated document)일 수 있다. 그에 따라, 테이블 및 다른 유형의 필기된 객체가 종종 문서 내에 포함된다. 예를 들어, 테이블은 통계 및 관계 정보를 기술하기 위해 문서에서 흔히 사용된다. 따라서, 필기된 테이블의 추출은 문서 처리에서 중요한 역할을 한다. 테이블은 데이터베이스를 채우는 것을 비롯하여 많은 응용 분야를 가지며, 이 데이터베이스는 나중에 조작되거나 질의되거나 챠트로 변경될 수 있다.
컴퓨터 시스템 상에서의 전자 문서의 사용 및 전송이 점점 증가함에 따라 필기된 객체를 검출하고 처리하는 것이 더 중요해지고 있다. 향상된 지원이 사무 자동화를 촉진하는 데 도움이 된다.
필기된 문서에서 테이블이 검출된다. 후보 테이블의 경계 프레임이 획득되도록 드로잉 스트로크로부터 라인 세그먼트가 도출된다. 그 결과, 후보 테이블의 경계 프레임, 경계 프레임 내의 라인 세그먼트들, 및 교차점으로부터 관련 테이블 구조가 인식된다. 적어도 하나의 테이블 특성을 반영하는 분류자가 결정되고, 그 결과, 후보 테이블이 검증된다.
이 요약은 이하의 상세한 설명에서 더 기술되는 개념들 중 선택된 것들을 간략화된 형태로 소개하기 위해 제공된 것이다. 이 요약은 청구된 발명 대상의 주요 특징 또는 필수 특징을 확인하기 위한 것이 아니며 청구된 발명 대상의 범위를 정하는 보조 수단으로서 사용되기 위한 것도 아니다.
도 1은 본 발명의 다양한 측면들을 구현하는 데 사용될 수 있는 종래의 범용 디지털 컴퓨팅 환경의 일례의 기능 블록도.
도 2는 본 발명의 예시적인 측면에 따른 텍스트, 차트, 그래픽 및 테이블을 포함하는 필기된 문서의 일례를 나타낸 도면.
도 3은 본 발명의 예시적인 측면에 따른 필기된 문서에서 테이블을 검출하는 알고리즘의 흐름도.
도 4는 본 발명의 예시적인 측면에 따른 도 3에 도시된 흐름도에 계속하여 나타낸 도면.
도 5는 본 발명의 예시적인 측면에 따른 필기된 문서를 파싱하는 장치를 나타낸 도면.
도 6은 본 발명의 예시적인 측면에 따른 검출가능 및 검출불가능 테이블을 나타낸 도면.
도 7은 본 발명의 예시적인 측면에 따른 검출된 라인 세그먼트의 예들을 나타낸 도면.
도 8은 본 발명의 예시적인 측면에 따른 스트로크 세그먼트화(segmentation) 및 근사화(approximation)를 나타낸 도면.
도 9는 본 발명의 예시적인 측면에 따른 라인 세그먼트의 병합을 나타낸 도면.
도 10은 본 발명의 예시적인 측면에 따른 테이블 경계 프레임(table bounding frame)을 검출하는 흐름도.
도 11은 본 발명의 예시적인 측면에 따른 합성 프레임 라인 세그먼트(composite frame line segment)의 예들을 나타낸 도면.
도 12는 본 발명의 예시적인 측면에 따른 라인 세그먼트의 선형성을 나타낸 도면.
도 13은 본 발명의 예시적인 측면에 따른 2개의 라인 세그먼트의 연접 강도(concatenation strength)를 결정하는 인자들을 나타낸 도면.
도 14는 본 발명의 예시적인 측면에 따른 한쌍의 라인 세그먼트의 유사성을 결정하는 인자들을 나타낸 도면.
도 15는 본 발명의 예시적인 측면에 따른 후보 경계 프레임의 방형성(rectangularity)을 결정하는 인자들을 나타낸 도면.
도 16은 본 발명의 예시적인 측면에 따른 후보 경계 프레임의 돌출성(saliency)을 결정하는 것을 나타낸 도면.
도 17은 본 발명의 예시적인 측면에 따른 가상 경계 프레임을 형성하는 것을 나타낸 도면.
도 18은 본 발명의 예시적인 측면에 따른 테이블 프레임의 정규화를 나타낸 도면.
도 19는 본 발명의 예시적인 측면에 따른 테이블 구조 인식을 나타낸 도면.
도 20은 본 발명의 예시적인 측면에 따른 잘못된 교차점에 관련된 라인 세그 먼트를 버리는 것을 나타낸 도면.
도 21은 본 발명의 예시적인 측면에 따른 i번째 셀과 j번째 스트로크의 공통 영역을 나타낸 도면.
도 22는 본 발명의 예시적인 측면에 따른, 필기된 입력이 검증된 테이블에 대응하는지의 결정 트리를 나타낸 도면.
도 23은 본 발명의 예시적인 측면에 따른, 테이블 검출을 갖지 않는 파싱 트리의 구조를 나타낸 도면.
도 24는 본 발명의 예시적인 측면에 따른, 테이블 검출을 갖는 파싱 트리의 구조를 나타낸 도면.
도 25는 본 발명의 예시적인 측면에 따른 필기된 문서의 검출 결과를 나타낸 도면.
도 26은 본 발명의 예시적인 측면에 따른 테이블 검출의 일례를 나타낸 도면.
도 27은 본 발명의 예시적인 측면에 따른 테이블 검출의 일례를 나타낸 도면.
도 28은 본 발명의 예시적인 측면에 따른 다수의 테이블을 검출하는 것의 일례를 나타낸 도면.
도 29는 본 발명의 예시적인 측면에 따른 필기된 문서 내의 경사진 테이블을 나타낸 도면.
도 30은 본 발명의 예시적인 측면에 따른, 도 29에 도시된 경사진 테이블을 수평으로 재배열함으로써 그 경사진 테이블을 편집하는 것을 나타낸 도면.
도 31은 본 발명의 예시적인 측면에 따른, 도 30에 도시된 테이블에서 프레임 라인들을 이동시킴으로써 경사진 테이블을 추가로 편집하는 것을 나타낸 도면.
도 32는 본 발명의 예시적인 측면에 따른, 도 29 내지 도 31에 도시되어 있는 테이블들을 변환(transformation)하여 차트를 형성하는 것을 나타낸 도면.
도 33은 본 발명의 예시적인 측면에 따른, 객체 검출 프레임워크(object detection framework)에 의해 검출되는 구조화된 필기된 객체(structured handwritten object)를 나타낸 도면.
본 발명의 상기 요약은 물론 양호한 실시예에 대한 이하의 상세한 설명은 첨부 도면과 관련하여 읽어볼 때 더 잘 이해되며, 첨부 도면은 청구된 발명과 관련하여 제한이 아닌 예로서 포함되어 있다.
본 발명의 측면들은 필기 입력(writing input)의 적어도 한 부분의 스크립트 유형(script type)을 구별하는 것에 관한 것이다.
이하는 독자를 위해 소제목(subheading)으로 분리되어 있다. 소제목은 용어, 범용 컴퓨터, 필기된 문서의 예, 필기된 테이블의 검출에 대한 개요, 전처리, 경계 프레임의 검출, 의사-테이블 형성, 테이블 구조 인식, 셀 내용의 분석, 분류자의 결정, 파싱 트리의 구조, 실험 결과, 테이블 검출 후의 편집, 및 구조화된 필기된 객체를 검출하는 프레임워크를 포함한다.
용어
펜: 잉크를 저장하는 기능을 포함하거나 포함하지 않을 수 있는 임의의 필기 도구. 어떤 예에서, 잉크 기능(ink capability)을 갖지 않는 스타일러스가 본 발명의 실시예들에 따른 펜으로서 사용될 수 있다. 일례는 마이크로소프트의 uPen(Universal Pen)이다.
스트로크(stroke): 펜 다운(pen down)(또는 마우스 다운(mouse down))부터 펜 업(pen up)(또는 마우스 업(mouse up))까지 수집되는 점들의 시계열. 스트로크는 드로잉 스트로크(drawing stroke) 또는 필기 스트로크(writing stroke)로 분류될 수 있다. 드로잉 스트로크는 그래픽 객체의 일부인 반면, 필기 스트로크는 필기된 텍스트의 일부이다.
세그먼트(segment): 곡률이 큰 점(high-curvature point)에서 스트로크를 절단함으로써 얻어지는 스트로크의 일부.
곡선 세그먼트(curvilinear segment): 스트로크 상의 2개의 종단점 간의 곡선 경로(curved path). 원호에 가까운 곡선 세그먼트는 원호의 반경이 충분히 크게 될 때 또는 곡선 세그먼트가 충분히 짧을 때 라인 세그먼트로 될 수 있다.
의사-테이블(Quasi-Table): 경계 프레임 및 경계 프레임 내의 모든 라인 세그먼트로 형성되는 후보 테이블.
의미-테이블(Semantic table): 테이블의 구조 및 셀 내용 등의 의미 정보(semantic information)를 포함하며 따라서 검증된 테이블의 구조 및 내용을 사용하여 소프트웨어 애플리케이션(예를 들어, Microsoft Word)에 의해(소프트웨어 애플리케이션으로 포팅(porting)함으로써) 처리될 수 있는 검출된 테이블.
범용 컴퓨터
도 1은 펜(예를 들어, 스타일러스(166))으로부터의 필기 입력을 처리하는 데 사용될 수 있는 종래의 범용 디지털 컴퓨팅 환경의 일례의 기능 블록도이다. 도 1에서, 컴퓨터(100)는 처리 장치(110), 시스템 메모리(120) 및 시스템 메모리를 비롯한 각종의 시스템 컴포넌트를 처리 장치(110)에 연결시키는 시스템 버스(130)를 포함한다. 시스템 버스(130)는 메모리 버스 또는 메모리 컨트롤러, 주변 장치 버스, 및 각종의 버스 아키텍처 중 임의의 것을 사용하는 로컬 버스를 비롯한 몇가지 유형의 버스 구조 중 어느 것이라도 될 수 있다. 시스템 메모리(120)는 판독 전용 메모리(ROM)(140) 및 랜덤 액세스 메모리(RAM)(150)를 포함한다.
시동 중과 같은 때에 컴퓨터(100) 내의 구성요소들 간의 정보 전송을 돕는 기본적인 루틴을 포함하는 기본 입/출력 시스템(BIOS)(160)은 ROM(140)에 저장되어 있다. 컴퓨터(100)는 또한 하드 디스크(도시 생략)로부터 판독을 하고 그에 기록을 하는 하드 디스크 드라이브(170), 이동식 자기 디스크(190)로부터 판독을 하거나 그에 기록을 하는 자기 디스크 드라이브(180), 및 CD ROM 또는 기타 광 매체 등의 이동식 광 디스크(192)로부터 판독을 하거나 그에 기록을 하는 광 디스크 드라이브(191)를 포함한다. 하드 디스크 드라이브(170), 자기 디스크 드라이브(180), 및 광 디스크 드라이브(191)는 각각 하드 디스크 드라이브 인터페이스(192), 자기 디스크 드라이브 인터페이스(193), 및 광 디스크 드라이브 인터페이스(194)에 의해 시스템 버스(130)에 접속되어 있다. 이들 드라이브 및 그와 연관된 컴퓨터 판독가능 매체는 퍼스널 컴퓨터(100)에 대한 컴퓨터 판독가능 명령어, 데이터 구조, 프로 그램 모듈 및 기타 데이터의 비휘발성 저장을 제공한다. 당업자라면 자기 카세트, 플래쉬 메모리 카드, 디지털 비디오 디스크, 베르누이 카트리지(Bernoulli cartridge), 랜덤 액세스 메모리(RAM), 판독 전용 메모리(ROM), 기타 등등의 컴퓨터에 의해 액세스가능한 데이터를 저장할 수 있는 다른 유형의 컴퓨터 판독가능 매체도 역시 이 예시적인 운영 환경에서 사용될 수 있다는 것을 잘 알 것이다.
운영 체제(195), 하나 이상의 애플리케이션 프로그램(196), 기타 프로그램 모듈(197) 및 프로그램 데이터(198)를 비롯한 다수의 프로그램 모듈이 하드 디스크 드라이브(170), 자기 디스크(190), 광 디스크(192), ROM(140) 또는 RAM(150) 상에 저장될 수 있다. 사용자는 키보드(101) 및 포인팅 장치(102) 등의 입력 장치들을 통해 컴퓨터(100)에 명령 및 정보를 입력할 수 있다. 기타 입력 장치(도시 생략)로는 마이크, 조이스틱, 게임 패드, 위성 안테나, 스캐너, 기타 등등이 있을 수 있다. 이들 및 다른 입력 장치들은 종종 시스템 버스에 연결되어 있는 직렬 포트 인터페이스(106)를 통해 처리 장치(110)에 접속되어 있지만, 병렬 포트, 게임 포트 또는 USB(universal serial bus) 등의 다른 인터페이스에 의해 접속될 수도 있다. 게다가, 이들 장치는 적절한 인터페이스(도시 생략)를 통해 시스템 버스(130)에 직접 연결될 수도 있다. 모니터(107) 또는 기타 유형의 디스플레이 장치도 역시 비디오 어댑터(108) 등의 인터페이스를 통해 시스템 버스(130)에 접속되어 있다. 모니터 이외에도, 퍼스널 컴퓨터는 통상적으로 스피커 및 프린터 등의 다른 주변 출력 장치(도시 생략)를 포함하고 있다.
일 실시예에서, 수서(手書) 입력(freehand input)을 디지털적으로 캡처하여 처리 장치(110)에 필기 입력(writing input)(예를 들어, 필기된 문서)을 제공하기 위해 펜 디지타이저(pen digitizer)(165) 및 부속 펜 또는 스타일러스(166)가 제공되어 있다. 비록 펜 디지타이저(165)와 직렬 포트 간에 직접 접속이 도시되어 있지만, 실제로는, 공지된 바와 같이, 펜 디지타이저(165)가 병렬 포트 또는 기타 인터페이스 및 시스템 버스(130)를 통해 처리 장치(110)에 직접 연결되어 있을 수도 있다. 게다가, 비록 디지타이저(165)가 모니터(107)와 분리되어 도시되어 있지만, 디지타이저(165)의 사용가능 입력 영역이 모니터(107)의 디스플레이 영역과 동일 공간에 있는(co-extensive) 것이 선호된다. 더욱이, 디지타이저(165)는 모니터(107)에 일체화되어 있을 수 있거나, 모니터(107)를 덮고 있거나 모니터(107)에 다른 방식으로 부착되어 있는 별도의 장치로서 존재할 수도 있다.
컴퓨터(100)는 원격 컴퓨터(109) 등의 하나 이상의 원격 컴퓨터로의 논리적 접속을 사용하여 네트워크화된 환경에서 동작할 수 있다. 원격 컴퓨터(109)는 서버, 라우터, 네트워크 PC, 피어 장치 또는 다른 통상의 네트워크 노드일 수 있으며, 통상적으로 컴퓨터(100)와 관련하여 상기한 구성요소들 중 다수 또는 그 전부를 포함하지만, 도 1에는 메모리 저장 장치(111)만이 도시되어 있다. 도 1에 도시된 논리적 접속은 근거리 통신망(LAN)(112) 및 원거리 통신망(WAN)(113)을 포함한다. 이러한 네트워킹 환경은 사무실, 전사적 컴퓨터 네트워크(enterprise-wide computer network), 인트라넷 및 인터넷에서 흔한 일이다.
LAN 네트워킹 환경에서 사용될 때, 컴퓨터(100)는 네트워크 인터페이스 또는 어댑터(114)를 통해 근거리 통신망(112)에 접속된다. WAN 네트워킹 환경에서 사용 될 때, 컴퓨터(100)는 통상적으로 인터넷과 같은 원거리 통신망(113)을 통해 통신을 설정하기 위한 모뎀(115) 또는 기타 수단을 포함한다. 내장형 또는 외장형일 수 있는 모뎀(115)은 직렬 포트 인터페이스(106)를 통해 시스템 버스(130)에 접속된다. 네트워크화된 환경에서, 퍼스널 컴퓨터(100) 또는 그의 일부와 관련하여 기술된 프로그램 모듈은 원격 메모리 저장 장치에 저장될 수 있다.
필기된 문서의 예
도 2는 본 발명의 예시적인 측면에 따른, 텍스트(201), 차트(203, 213), 그래픽(211) 및 테이블(205-209) 등의 각종 유형의 구조화된 필기된 객체를 포함하는 필기된 문서(200)를 나타낸 것이다. 필기된 문서(200)이 필기된 성분만을 나타내고 있지만, 본 발명의 실시예들은 필기된 객체로 주석 첨부될 수 있는 기계-형식으로 된 컨텐츠(machine-formatted content)도 지원한다.
태블릿 PC(Tablet PC) 및 전자 칠판(Electronic Whiteboard) 등의 펜-기반 장치의 등장에 따라, 전체 페이지(whole page)를 갖는 또는 심지어 여러 페이지를 갖는 온라인 문서 또는 잉크 노트(ink note)가 있게 되었다. 통상적인 필기된 문서 페이지는, 도 2에 도시된 바와 같이, 여러 유형의 테이블(예를 들어, 테이블(205-209)), 차트(예를 들어, 차트(203, 213)), 그래픽(예를 들어, 그래픽(211)), 및 텍스트(예를 들어, 텍스트(201)) 등의 여러가지 드로잉된 개체를 포함할 수 있다. 통상적으로, 스캔된 또는 온라인 문서에서의 필기된 테이블의 검출 및 인식은 인쇄된 문서에서보다 달성하기가 더 어렵다. 예를 들어, 필기된 테이블의 심볼 및 레이아웃은 종종 직선 구조(rectilinear structure)를 갖는, 즉 정확하 게 m개의 열 및 n개의 행으로 이루어진 괘선있는(ruled) 또는 괘선없는(unruled) 수평 테이블(horizontal table)보다 훨씬 더 비규칙적이고 복잡하다. 테이블은 다른 컨텐츠에 의해 가까이 둘러싸여 있거나 심지어 덮여 있을 수 있으며, 그에 따라 테이블 분리(table isolation)가 부가적인 문제점을 야기할 수 있다. 필기된 테이블은 불완전한 경계 프레임(bounding frame)을 포함할 수도 있고(예를 들어, 도 6에 도시한 테이블(603)), 변칙적인 드로잉(drawing anomaly)으로 드로잉되어 있을 수도 있다(예를 들어, 도 25 내지 도 31에 도시한 바와 같이, 위를 지나가거나(over-traced) 연접된 스트로크 또는 테이블이 경사져 있음). 게다가, 설명하게 되는 바와 같이, 연관된 테이블 구조를 결정하기 위해 검출된 테이블이 추가적으로 처리된다.
필기된 테이블 검출의 개요
도 3은 본 발명의 예시적인 측면에 따른, 필기된 문서에서 테이블을 검출하는 알고리즘의 흐름도(300)를 나타낸 것이다. 도 4는 본 발명의 예시적인 측면에 따른 도 3에 도시된 흐름도(300)에 계속되는 흐름도(400)를 나타낸 것이다. 이하의 설명은 본 발명의 일 실시예의 개요를 제공하며 더 상세히 기술될 것이다.
절차(301)는 필기된 문서에 포함되어 있는 드로잉 스트로크(drawing stroke)로부터 라인 세그먼트(line segment)를 획득한다. 절차(303)에 의해 라인 세그먼트의 방향이 결정되고 비닝(bin)된다. (도 29에 나타낸 바와 같이 경사져 있을 수 있는) 테이블의 배향을 결정하기 위해, 히스토그램 피크(histogram peak)가 선택된다. 테이블의 경우, 또다른 히스토그램 피크가 통상적으로 선택된 피크로부터 대 략 90 떨어져 생긴다.
절차(305)는 후보 테이블의 경계 프레임을 결정한다. 경계 프레임을 검색하기 위해 히스토그램의 피크들이 가장 낮은 것부터 가장 높은 것까지 하나씩 테스트된다. 경계 프레임이 완전한 경우, 절차(305)는 라인 세그먼트를 삽입함으로써 경계 프레임을 완성하려고 시도한다.
경계 프레임을 형성한 후에, 절차(307)는 라인 리스트(line list)들로부터 경계 프레임 내에서 프레임 라인(frame line)일 수 있는 모든 라인 세그먼트를 수집함으로써 의사-테이블(quasi-table)(후보 테이블)을 형성한다. 절차(311)는 거의 수평인 라인 세그먼트를 본질적으로 수평인 라인 세그먼트로 대체하고 거의 수직인 라인 세그먼트를 본질적으로 수직인 라인 세그먼트로 대체하기 위해 의사-테이블을 정규화한다. 후속 절차들은 확률 메트릭(probability metric)을 구하고 이 확률 메트릭이 미리 정해진 문턱값보다 높은지를 판정함으로써 의사-테이블이 "진짜" 테이블(real table)(검증된 테이블)인지를 판정한다.
절차(313)는 의사-테이블의 교차점의 유형을 분석함으로써 의사-테이블의 연관된 구조를 인식한다. 테이블은, 도 19에 나타낸 바와 같이, T자형 교차점(T-junction), ┼자형 교차점(cross intersection) 및 직각 교차점(right-angle junction)을 비롯한 여러 유형의 교차점을 가질 수 있다.
흐름도(400)는 논리적 접속(315)으로 흐름도의 논리적 흐름을 계속 나타낸 것이다. 절차(317)는 각각의 테이블 셀의 내용을 탐색하고 그 내용과 연관된 신뢰도 수준(confidence level)(메트릭)을 구하기 위해 프레임 라인과 교차하는 스트로 크의 수를 검사한다. 의사-테이블이 프레임 라인과 교차하는 스트로크를 너무 많이 가지고 있는 경우, 그 결과 의사-테이블은 검증된 테이블로서 거부될 수 있다.
절차(319)는 후보 테이블이 유효한 테이블이라는 전체적인 신뢰도 수준(overall confidence level)을 획득하기 위해 이전에 결정된 신뢰도 수준들로부터 선형 분류자(linear classifier)를 결정한다. 절차(321)는 이 선형 분류자를 미리 정해진 문턱값과 비교한다. 선형 분류자가 미리 정해진 문턱값보다 작거나 같은 경우, 종료 절차(325)가 실행된다. 이러한 경우에, 검출된 테이블이 있는지 필기된 문서의 새 영역이 분석될 수 있다. 선형 분류자가 미리 정해진 문턱값보다 큰 경우, 의사-테이블(후보 테이블)은 검증된 테이블인 것으로 간주되며, 검증된 테이블의 추가적인 처리(예를 들어, 도 30 및 도 31에 도시된 바와 같은 편집)가 실행될 수 있다.
도 5는 본 발명의 예시적인 측면에 따른, 필기된 문서(온라인 문서 또는 잉크 노트)(501)를 파싱하는 장치(500)를 나타낸 것이다. 장치는 선행하는 엔진들(503), 테이블 검출기(505), 및 나머지 엔진들(507)을 포함한다.
장치(500)는 진보된 파서의 파이프라인을 지원하며, 이 경우 온라인 문서(501) 전부가 입력으로서 처리된다. 진보된 파서의 엔진(509, 511, 513)은 테이블 검출 엔진(505)에 선행하고, 테이블 검출을 도울 수 있다. 온라인 문서(501)는 텍스트, 그래픽, 플로우차트 및 테이블 등의 각종의 의미 개체(semantic entity)를 포함할 수 있다. 테이블 검출 이전에, 엔진(509-513)이 온라인 문서(501)에 적용된다. 우선, 엔진(509)(필기 파서)(writing parser)은 기본적인 필기/드로잉(W/D) 분리를 행하고 필기 스트로크를 3개의 레벨, 즉 단어(word), 라인(line) 및 문단(paragraph)으로 그룹화한다. 그 다음에, W/D 분류 엔진(511)은 잉크 노트에서의 스트로크가 각종의 특징들에 기초하여 필기(writing)인지 드로잉(drawing)인지를 판정한다. W/D 분리 후에, 테이블 프레임 라인을 검출하는 데 드로잉 스트로크만이 사용된다. 마지막으로, 미지의 드로잉 객체 그룹화 엔진(unknown drawing object grouping engine)(513)은 근방의 필기 단어 및 드로잉 스트로크를 그룹화하며, 그에 따라 필기된 객체들이 공간적으로 분리된다. 각각의 필기된 객체는 뒤따라오는 엔진들, 예를 들어, 나머지 엔진들(507)에 의해 검출되는 잠재적인 의미 객체이다. 비록 엔진(509-513)이 테이블 검출 전에 적용되지만, 처리 시간이 중요하지 않은 경우, 테이블 검출기(505)는 엔진(509-513)에 의존하지 않을 수도 있는데, 그 이유는 테이블 검출기(505)가 그 자체로 라인 세그먼트를 검출하고 이 라인 세그먼트를 블록으로 그룹화할 수 있기 때문이다. W/D 분리는 후보 스트로크의 범위를 좁히는 데 도움을 주며, 미지의 객체 그룹화는 블록 세그먼트화(block segmentation)를 돕는다. 설명하게 되는 바와 같이, 테이블 셀 내용 테스트(table cell content test)(533)는 필기 파서(509)로부터의 그룹화 에러(grouping error)를 정정하는 것을 돕는다. 테이블 검출기(505)는 잉크 노트(ink note)에서 테이블을 검출할 수 있고 검출된 테이블의 구조를 추출할 수 있다. 게다가, 테이블 검출기(505)는 엔진(509-513)과 무관하게 동작할 수 있다. 그렇지만, 이전의 파싱 결과에 기초하여 테이블을 검출하는 것은 프로세스의 속도를 높일 수 있으며 더 높은 정확도를 가질 수 있다.
테이블 검출기(505)는 프리프로세서(515), 특징 추출기(feature extractor)(517), 및 분류기(519)를 포함하며, 나머지 엔진들(507)에 의미 테이블(semantic table)(521)을 제공한다. 프리프로세서(515)는 미지의 드로잉 객체로부터 모든 라인 세그먼트를 수집하는 라인 세그먼트화기(line segmentator)(523) 및 라인 세그먼트들을 대응하는 공간 위치에 따라 서로 다른 영역으로 그룹화하는 라인 블록 세그먼트화기(line block segmentator)(525)를 포함한다.
특징 추출기(517)는 테이블 경계 프레임 검출기(table bounding frame detector)(527), 테이블 프레임 정규화기(table frame normalizer)(529), 테이블 구조 인식기(table structure recognizer)(531), 및 테이블 셀 내용 테스터(table cell content tester)(533)를 포함한다. 테이블 경계 프레임 검출기는 테이블의 경계 프레임을 찾아내려고 한다. 완전한 경계 프레임이 존재하지 않는 경우, 테이블 경계 프레임 검출기는 계속하여 가상 경계 프레임(virtual bounding frame)을 검출한다. 테이블 프레임 정규화기(529)는 거의 수평인 라인 세그먼트가 본질적으로 수평인 라인 세그먼트로 대체되고 거의 수직인 라인 세그먼트가 본질적으로 수직인 라인 세그먼트로 대체되도록 후보 테이블(의사-테이블)을 정규화한다. 테이블 구조 인식기(531)는 교차점의 유형을 분석함으로써 후보 테이블의 구조를 인식한다. 테이블 셀 내용 테스터(533)는 각각의 테이블 셀의 내용을 탐색하고 후보 테이블의 프레임 라인과 교차하는 스트로크를 분석한다. 테이블 경계 프레임 검출기(527), 테이블 프레임 정규화기(529), 테이블 구조 인식기(531), 및 테이블 셀 내용 테스터(533)에 의해 수행되는 프로세스들에 대한 추가적인 설명이 기술된다.
분류기(519)는 분류 모듈(classification module)(535) 및 의미 테이블 발생기(semantic table generator)(537)를 포함한다. 분류 모듈(535)은 프레임 추출기(517)에 의해 제공되는 이전에 결정된 신뢰도 수준들로부터 전체적인 신뢰도 수준(분류자)을 결정한다. 분류 모듈이 후보 테이블을 검증한 경우(예를 들어, 분류자가 미리 정해진 문턱값보다 큰 경우), 발생기(537)는 후보 테이블로부터 의미 테이블을 발생한다.
일 실시예에서, 테이블 검출기(505)는 2가지 유형의 테이블, 즉 완전한 경계 프레임(complete bounding frame)을 갖는 테이블 또는 완전한 경계 프레임을 갖지 않는 테이블을 검출할 수 있다. 2가지 유형의 테이블 모두에 대해, 내부 프레임 라인(internal frame line)은 명확해야만 한다. 그렇지 않은 경우, 추출된 구조 정보가 부정확할 수 있다. 경계 프레임이 완전한 경우, Microsoft Word에 의해 지원되는 테이블 구조가 검출될 수 있다. 하나의 행 또는 열을 갖는 테이블의 경우, 부가적인 의미 정보가 필요할 수도 있는데, 그 이유는 많은 도해(illustration)가 유사한 구조를 포함하기 때문이다.
경계 프레임이 불완전한 경우, 각각 테이블의 폭 및 높이에 가까운 길이를 갖는 적어도 하나의 수평 라인 및 적어도 하나의 수직 라인이 있을 때 테이블이 검출된다. 게다가, 경계 프레임은 0 또는 2개의 평행한 라인으로 이루어져 있어야만 하며, 적어도 하나의 테이블 셀이 필기 스트로크를 포함하고 있어야만 한다.
W/D 분류 엔진(511)에 의해 필기/드로잉 분류가 제공된다. 장치(500)에 엔진(511)이 구성되어 있지 않은 경우, 테이블 검출기(505)는 테이블 셀에 스트로크 가 있는지를 테스트한다. 따라서, 정확도가 약간 감소될 수 있다. 필기된 객체가 테이블인지 단지 특정의 다이어그램, 예를 들어, 체스 메뉴얼 가기(Go chess manual)인지를 구분하기 위해서는 적어도 하나의 테이블 셀이 필기 스트로크를 포함하고 있어야만 한다.
테이블 검출기(505)는 이하의 경우를 처리함에 있어서 안정적이도록 설계되어 있다.
1. 테이블이 각종 유형의 복잡한 구조를 가질 수 있으며, 테이블 구조에 대한 선험적 지식이 필요하지 않다.
2. 테이블이 수평일 필요가 없다. 페이지 상의 다수의 테이블이 서로 다른 배향을 가질 수 있다.
3. 프레임 라인들이 위를 지나거나(over-traced), 연접(concatenated)하거나 또는 하나 또는 다수의 스트로크에서 끝날 수 있다.
4. 수정된 객체가 여전히 테이블이기만 하다면, 테이블이 수정 후에도 여전히 검출될 수 있다.
5. 페이지에 많은 테이블이 있는 경우, 이들이 나란히 있어서 테이블의 경계가 모호하더라도 이들 모두가 검출될 수 있다.
테이블 검출기(505)는 또한 테이블 편집(예를 들어, 회전, 스케일링, 전체 테이블의 이동, 프레임 라인의 이동, 셀 내용의 정렬)이 지원되도록 구조 정보(structural information)를 추출한다. 논리적으로, 테이블 검출기(505)는 이하의 처리 단계들로 이루어져 있다. 전처리 단계(예를 들어, 프리프로세서(503))에 서, 드로잉 스트로크가 공간적으로 분리된 블록으로 그룹화되는 일련의 라인 세그먼트에 의해 세그먼트화되고 근사화된다. 검출 단계(예를 들어, 테이블 검출기(505))에서, 경계 프레임이 발견된다. 정말로 완전한 경계 프레임이 없을 때, 가능한 경우 가상 경계 프레임이 형성된다. (예를 들어, 도 6의 테이블(607)을 참조하면, 가상 라인 세그먼트(623, 625)가 가상 경계 프레임으로 구현된다.) 경계 프레임은, 경계 프레임 내의 모든 라인 세그먼트와 함께, 의사-테이블(후보 테이블)을 형성한다. 둘째, 의사-테이블이 정규화된다. 셋째, 테이블 구조가 인식되고, 넷째, 테이블 셀 내용이 테스트된다. 상기 4개의 단계에서 각각 4가지 테이블 특징이 추출된다. 검출 프로세스는 특징이 그의 문턱값을 초과할 때마다 종료될 수 있다. 그렇지 않은 경우, 4가지 테이블 특징(메트릭)을 결합한 최종적인 선형 분류자가 적용되고, 마지막으로 의미 테이블이 발생된다. 그렇지 않은 경우, 테이블이 검출되지 않는다.
도 6은 본 발명의 예시적인 측면에 따른 검출가능 및 검출불가능 테이블의 예들을 나타낸 것이다. 상기 설명에 따르면, 테이블(601, 607, 609, 613)은 검출되는 반면, 테이블(603, 605, 611, 615-619)은 검출되지 않는다.
전처리
도 7은 본 발명의 예시적인 측면에 따른 검출된 라인 세그먼트(701-723)의 예들을 나타낸 것이다. 상부 행(스트로크(701-711))은 입력 스트로크를 나타낸 것이다. 하부 행(스트로크(713-723))은 근사화 후의 라인 세그먼트를 나타낸 것이다. 입력 스트로크(701)는 후크(hook)를 갖는 스트로크를 나타낸 것이다. 입력 스트로크(703)는 자기 위로 지나가는 스트로크(stroke with self-overtracing)를 나타낸 것이다. 입력 스트로크(705)는 2개의 라인 세그먼트에 의해 근사화되는 스트로크를 나타낸 것이다. 입력 스트로크(707)는 둥근 모서리를 갖는 스트로크를 나타낸 것이다. 입력 스트로크(709)는 3개의 라인 세그먼트에 의해 근사화되는 스트로크를 나타낸 것이다. 입력 스트로크(711)는 4개의 라인 세그먼트에 의해 근사화되는 스트로크를 나타낸 것이다.
스트로크 라인 세그먼트화(stroke line segmentation)는 미지의 드로잉 객체로부터 모든 라인 세그먼트를 수집한다. 사용자가 단일의 스트로크로 (경계 프레임 등의) 몇개의 프레임 라인을 드로잉할 수 있기 때문에(예를 들어, 입력 스트로크(705-711)), 라인 세그먼트에 가까운 스트로크들만을 검사해서는 안된다. 라인 세그먼트화 및 근사화(도 3에 도시한 절차(301) 및 도 5에 도시한 프리프로세서(515)에 대응함)는 스트로크를 세그먼트화 및 근사화하고 드로잉 스트로크로부터 프레임 라인의 후보인 모든 라인 세그먼트를 수집한다. 비록 사용자가 하나의 스트로크로 몇개의 프레임 라인을 드로잉할 수 있지만, 사용자는 테이블을 드로잉할 때 보통 단일의 스트로크로 겨우 4개의 프레임 라인(경계 프레임 등)을 드로잉한다. 따라서, 이하의 경우의 드로잉 스트로크만을 고려한다.
1. 1개 내지 4개의 라인 세그먼트로 근사화될 수 있는 드로잉 스트로크,
2. 연속적인 라인 세그먼트 간의 회전 각도(turning angle)가 0도, 90도 또는 180도에 가까운 드로잉 스트로크.
도 8은 본 발명의 예시적인 측면에 따른 스트로크 세그먼트화 및 근사 화(801-807)를 나타낸 것이다. 드로잉 스트로크에 대해, 먼저 수학식 1에 표현된 선형성 특성(linearity characteristic)을 계산함으로써 그 스트로크가 라인 세그먼트에 가까운지를 테스트한다(이하에서 더 상세히 기술함). 선형성 특성이 라인 세그먼트에 대응하지 않는 경우, 그 스트로크가 세그먼트화 및 근사화된다. 도 8은 스트로크 세그먼트화 및 근사화의 프로세스를 나타낸 것이다. 먼저, 소정의 허용 오차(error tolerance)까지 각각의 드로잉 스트로크를 결합 라인 세그먼트(conjoint line segment)로 근사화하기 위해 다각형 근사화 알고리즘(polygonal approximation algorithm)이 적용된다(스트로크(801)로 나타냄). 유의할 점은 연관된 노이즈가 제거되도록 디후킹(de-hooking)이 수행되어야만 한다, 즉 무의식적인 손의 떨림으로 일어나는 스트로크의 끝에서의 후크가 제거되어야만 한다는 것이다(스트로크(803)로 나타냄). 둘째, 스트로크를 4개의 서브-스트로크로 세그먼트화하는, (스트로크(801-807)에서 굵은 점에 대응하는) 가장 큰 곡률을 갖는 3개의 점이 선택된다. 라인 세그먼트의 수가 4개보다 적은 경우, 모든 점을 택한다. 셋째, 2개의 종단점의 기하학적 정보에 의해 서브-스트로크를 라인 세그먼트로 근사화한다. 일 실시예에서, 최소 제곱 오차 근사법(least square error fitting)을 사용하지 않는데, 그 이유는 이 근사법이 상당한 계산을 소비할 수 있기 때문이다. 유의할 점은 라인 세그먼트가 곡률 극값(curvature extrema)을 지나지 않을 수도 있다는 것이다(스트로크(805)로 나타냄).
스트로크의 근사화는 이하의 단계들을 포함한다.
그렇지 않은 경우, 서브-스트로크에서의 거의 평행한 라인 세그먼트(예를 들어, 도 9에 도시된 라인 세그먼트(905-909))가 새로운 라인 세그먼트(예를 들어, 라인 세그먼트(915))로 병합된다. 새로운 라인 세그먼트는 병합될 첫번째 라인 세그먼트와 마지막 라인 세그먼트의 2개의 중간점(중간점(911, 913)에 대응함)을 통과한다. 새로운 라인 세그먼트의 시작점과 종료점은 각각 근사화되는 라인 세그먼트들의 시작점 및 종료점의 새로운 라인 세그먼트 상으로의 정사영(orthogonal projection)(도 9에 나타낸 점(901, 903)에 대응함)이다.
넷째, 근사화되는 라인 세그먼트가 병합되거나 삭제된다.
1. 연속적인 라인 세그먼트들의 방향이 거의 동일한 경우, 이들을 하나의 세그먼트화로 병합한다. 이 병합 프로세스는 세번째 단계와 동일하다.
2. 라인 세그먼트의 방향이 그의 앞에 오는 것(predecessor) 및 뒤에 오는 것(successor)과 반대인 경우, 이는 스트로크의 자기 위를 지나가는 부분(self-overtracing part)일 수도 있다. 따라서, 이를 삭제하고 근사화되는 라인 세그먼트가 재계산된다.
3. 라인 세그먼트가 너무 짧고 그의 앞에 오는 것과 뒤에 오는 것이 직교에 가까운 경우, 이들은 삭제되고, 근사화되는 라인 세그먼트가 재계산된다(스트로크(807)로 나타냄).
4. 나머지 라인 세그먼트의 수가 1보다 큰 경우, 나머지 라인 세그먼트 각각이 그의 앞에 오는 것 및 뒤에 오는 것 둘다와 직교에 가까운지를 검사한다. 4개 의 라인 세그먼트가 있는 경우, 첫번째 세그먼트와 마지막 세그먼트 간의 직교성(orthogonality)도 역시 테스트되어야만 한다. 직교하지 않는 경우, 그 스트로크는 틀림없이 직사각형의 일부가 아니다.
5. 단지 하나의 라인 세그먼트가 남아 있거나 나머지 라인 세그먼트들이 이전 단계에서의 테스트를 통과하는 경우, 나머지 라인 세그먼트들을 라인 리스트에 추가하며, 이 라인 리스트(line list)는 프레임 라인의 모든 가능한 후보들을 저장하고 있다.
라인 블록 세그먼트화
라인 세그먼트화 및 근사화 후에, 선택된 스트로크가 그의 근사화되는 라인 세그먼트로 표현된다. 한 페이지에 다수의 테이블이 있을 수도 있다. 그 전부를 검출하기 위해, 이전의 단계에서 획득된 라인 세그먼트들을 그의 공간 위치에 따라 서로 다른 영역으로 그룹화한다. 영역 내의 라인 세그먼트들은 라인 블록(line block)으로 간주된다. 각각의 라인 블록에 대해, 그 안에 있는 모든 라인 세그먼트들은 라인 리스트에 저장된다. 그 다음에, 각 방향에서의 라인 세그먼트의 수를 카운트하기 위해 히스토그램이 작성된다. 히스토그램에서의 각각의 피크는, 수평이 아닐 수도 있는 테이블에 대해, 그로부터 대략 90도 떨어져 있는 다른 피크와 연관될 수 있다. 테이블 검출기는 테이블이 있는지를 알아내기 위해 각각의 피크 및 연관된 피크를 검사한다. 전체 블록이 검사된 경우, 테이블 검출기는 그 다음 블록으로 간다.
경계 프레임의 검출
정말로 완전한 경계 프레임의 검출
도 10은 본 발명의 예시적인 측면에 따른 테이블 경계 프레임을 검출하는 흐름도(1000)를 나타낸 것이다. 도 10에 도시된 프로세스는 테이블의 경계 프레임을 찾아내려고 한다. 완전한 경계 프레임이 존재하지 않는 경우, 이 시스템은 계속하여 절차(1007)에 의해 수행되는 바와 같이 가상 경계 프레임을 검출한다.
우선, 각각의 방향 범위와 연관된 라인 세그먼트의 수의 히스토그램으로부터, 피크에 대응하는 방향에 가깝거나 그에 수직인 방향을 갖는 라인 세그먼트를 선택한다. 히스토그램의 피크들은 가장 높은 것부터 가장 낮은 것까지 하나씩 테스트된다. 라인 세그먼트가 수평 또는 수직 방향에 가깝도록 회전이 적용된다. 그 다음에, 절차(1001)에 의해 수행되는 바와 같이 수평 라인 리스트 및 수직 라인 리스트를 작성한다.
절차(1003)는 4개의 라인 세그먼트가 경계 프레임을 형성하는 신뢰도 수준(PBF)을 결정한다. PBF의 결정에 대해서는 이하에서 더 상세히 기술한다. 그 다음에, 절차(1005)는 신뢰도 수준이 미리 정해진 문턱값보다 큰지를 판정한다. '예'인 경우, 절차(1011)는 경계 프레임 내의 모든 라인 세그먼트를 수집하고 절차(1013)에서 의사-테이블을 형성한다. 신뢰도 수준이 미리 정해진 문턱값보다 작거나 같은 경우, 절차(1007)는 가상 경계 프레임을 구성하려고 시도한다. 가능하지 않은 경우, 프로세스는 절차(1009)에서 종료된다.
위로 지나가는 연접된 프레임 라인을 처리할 필요가 있기 때문에, 라인 리스 트는 또한 어떤 연접가능하고 거의 평행인 원래의 라인 세그먼트의 조합인 모든 합성 라인 세그먼트들(composite line segments)을 저장한다. 도 11은 본 발명의 예시적인 측면에 따른 합성 프레임 라인 세그먼트(1101-1115)의 예들을 나타낸 것이다.
이하에 기술되는 4개의 메트릭(선형성(linearity), 유사성(similarity), 방형성(rectangularity), 및 돌출성(saliency))으로부터 경계 프레임을 형성할 확률 PBF를 계산하기 위해, 2개의 수평 라인 세그먼트 및 2개의 수직 라인 세그먼트(원래의 것 또는 합성된 것)의 모든 가능한 조합이 테스트된다.
도 12는 본 발명의 예시적인 측면에 따른 라인 세그먼트의 선형성 메트릭(linearity metric)을 나타낸 것이다. 선형성 메트릭 은 라인 세그먼트(원래의 라인 세그먼트 또는 합성 라인 세그먼트)가 그 라인 세그먼트로 표현되는 스트로크 또는 스트로크들을 얼마나 잘 근사화하는지를 나타낸다. 라인 세그먼트가 원래의 라인 세그먼트인 경우(라인 세그먼트(1201)), 라인 세그먼트는 그가 근사화하는 스트로크(1207)의 선형성에 대응한다.
여기서, Bw 및 Bh는 주 방향(principal direction)이 최소 제곱(least square)을 통해 계산되는 스트로크의 경사진 경계 직사각형의 폭 및 높이이고, L은 스트로크의 길이이다. 유의할 점은 Bw/(Bh + Bw)가 스트로크의 평탄성(flatness)을 나타내고, Bw/L은 스트로크의 변동성(fluctuation)을 나타낸다.
라인 세그먼트가 합성 라인 세그먼트인 경우(라인 세그먼트(1203, 1205)에 대응함), 메트릭 는 성분 스트로크(1209, 1211)의 선형성과 연속적인 라인 세그먼트 간의 연접 강도(concatenation strength) 의 곱이다.
여기서, 이고, (라인 세그먼트가 거의 수평인 것으로 가정할 때) θ는 2개의 라인 세그먼트[라인 세그먼트(1301, 1303)에 대응함] 간의 예각[도 13에 도시한 θ(1309)에 대응함]이고, p[p(1307)에 대응함]는 결합점(conjunction point) 간의 수평 거리이고, d [d(1305)]는 2개의 라인 세그먼트가 서로 교차하는 경우 0이고, 그렇지 않은 경우 2개의 라인 세그먼트의 종점 사이의 수직 거리이다. 도 13은 본 발명의 예시적인 측면에 따른 2개의 라인 세그먼트의 연접 강도를 결정하는 인자들을 나타낸 것이다.
A, B 및 C는 경험적으로 결정되는 어떤 양수 파라미터(positive parameter)이다. 유의할 점은 2개의 라인 세그먼트가 수평 방향으로 중첩하는 경우 p가 음 수(negative)라는 것이다. 연접 강도 fcon는 d, p 및 θ에서 단조이고, 따라서 연접 강도가 우리의 직관과 일치한다. 2개의 라인이 완벽하게 연접되어 있는 경우 이 값은 '1'이다.
도 14는 본 발명의 예시적인 측면에 따른 한쌍의 라인 세그먼트 쌍(1401, 1403)의 유사성을 결정하는 인자들을 나타낸 것이다. 유사성 메트릭 fp는 2개의 라인 세그먼트가 진짜 테이블의 하단 라인 및 상단 라인(또는 좌측 라인 및 우측 라인)에 대응하는 한쌍의 라인 세그먼트일 수 있는지를 나타낸다. 유사성 메트릭 fp는 수학식 3과 같이 정의된다.
여기서, (도 14에 나타낸 바와 같이, 라인 세그먼트가 거의 수평인 것으로 가정하면) 는 i번째 라인 세그먼트의 예각이고, 는 i번째 라인 세그먼트의 길이이며, pj는, 좌측에서 우측으로, 라인 세그먼트들의 종점의 4개의 후속하는 투영점(projection point)이다. (수학식 3에 포함된 파라미터들은 도 14에 도시한 파라미터(1405-1415)에 대응한다.) 직사각형 객체에 대한 한쌍의 라인 세그먼트의 라인 세그먼트들은 공통의 특성을 갖는다, 즉 라인 세그먼트들이 대략 동일한 길이 및 방향을 가지며 그의 중심이 일렬로 정렬되어 있어야만 한다. 유사성 메트릭 fp는 이 공통 특성을 반영하고 있다.
도 15는 본 발명의 예시적인 측면에 따른 후보 경계 프레임의 방형성 메트릭을 결정하는 인자들을 나타낸 것이다. 방형성 메트릭 fr은 4개의 라인이 직사각형 영역(1501)에서 진짜 직사각형(1509)의 4개의 경계일 확률을 나타낸다. 이 메트릭은 3개의 성분 메트릭으로 이루어져 있다.
fmin: (직사각형 영역(1501)에 나타낸 바와 같이) 4 방향(좌측, 우측, 상방, 하방)에서 라인 세그먼트와 경계 박스 간의 상대 최소 거리(relative minimum distance).
Δb(1510)는 하부 라인 세그먼트의 종점과 경계 박스의 하단 간의 작은 쪽 거리이고, Δt(1511), Δl(1512) 및 Δr(1513)도 마찬가지로 도 15에 도시된 바와 같이 정의된다.
: "총" 길이(total length)에 대한 총 "유효" 길이(total valid length)의 비. "유효" 길이는 라인 세그먼트의 길이와 연속적인 라인 세그먼트들 사이의 부분의 길이 중 더 작은 길이이고, "총" 길이는 (라인 세그먼트의 전체 길이) + (라인 세그먼트의 종점들과 그의 연속적인 라인 세그먼트들 사이의 있을 수 있는 간격)이다(직사각형 영역(1505)으로 나타냄, 예를 들어, 길이(1521)는 라인 세그먼트(1525)의 총 길이이고, 길이(1523)는 라인 세그먼트(1525)의 유효 길이이다).
방형성 메트릭 fr은 fmin, fangle 및 fvl의 선형 결합(linear combination)이다. 이는 형상, 각도 및 길이의 측면에서 볼 때 4개의 라인이 직사각형의 4개의 경계선에 얼마나 잘 맞는지를 나타낸다.
도 16은 본 발명의 예시적인 측면에 따른 후보 경계 프레임의 돌출성을 결정 하는 것을 나타낸 것이다. 돌출성 메트릭 fs는 테이블이 다른 외부 스트로크로부터 얼마나 분리되어 있는지를 나타낸다. 돌출성 메트릭 fs는 상황 정보(contextual information)를 이용한다. 가능한 경계 프레임 주변에 많은 스트로크가 있는 경우, 경계 프레임에 의해 둘러싸인 영역이 테이블이 아닐 수도 있으며, 돌출성 메트릭 fs가 감소하게 된다. 가능한 경계 프레임의 감지 박스(sensitive box) B2(1603)와 경계 박스(bounding box) B1(1601) 사이의 영역, 여기서 B2 및 B1은 동심원이고 그 크기의 비(감지율(sensitive rate)이라고 함)가 1보다 크다. 감지율은 시스템 파라미터이다. 돌출성 fs는 수학식 7로서 정의된다.
여기서, 쓸모없는 스트로크(dirty stroke)(예를 들어, 스트로크(1605-1609))는 B1(1610) 외부에 있고 감지 영역(sensitive area)에 접촉하는 스트로크를 말한다.
상기한 바와 같이, 4개의 메트릭 fl, fp, fr 및 fs는 경계 프레임의 여러 특성들을 나타낸다. 4개의 라인 세그먼트는 4개의 메트릭 중 어느 하나라도 그의 대응하는 문턱값보다 낮은 경우 거부되고, 그렇지 않은 경우, 경계 프레임을 형성하는 4개의 라인 세그먼트의 신뢰도 PBF는 상기 4개의 메트릭의 선형 결합이다. 최대 PBF가 문턱값보다 높은 경우, 라인 세그먼트들이 경계 프레임을 형성하는지를 결정하기 위해 대응하는 4개의 라인 세그먼트를 추출한다.
가상 경계 프레임의 검출
도 17은 본 발명의 예시적인 측면에 따른 가상 경계 프레임을 형성하는 것을 나타낸 것이다. 정말로 완전한 경계 프레임이 발견되지 않는 경우, 장치(500)는 계속하여 완전한 경계 프레임을 갖지 않는 테이블이 있는지를 검출한다. 테이블 검출기(505)는 라인 세그먼트 세트(1701)로 나타낸 일련의 동길이 직교 라인 세그먼트(equi-length orthogonal line segment)를 결정하는 것으로부터 시작한다. 수평 및 수직 라인 리스트 둘다는 긴 것부터 짧은 것으로 정렬되어 있다. 그 다음에, 테이블 검출기(505)는, 다른 대안으로서, 그 다음에 선택된 라인 세그먼트가 다른쪽 리스트로부터 선택된 모든 라인 세그먼트와 교차하고 그의 길이 및 수직(또는 수평) 천이(shift) 둘다가 동일한 리스트로부터 선택된 이전의 라인 세그먼트와 비슷하도록 수평 라인 리스트 및 수직 라인 리스트를 검색한다. 일련의 교차하는 라인 세그먼트(1703)가 발견되는 경우, 수직 경계 프레임(수평이거나 수직인 성분 라인을 가짐)은 대응하는 라인 세그먼트(라인 세그먼트(1705-1711)에 대응함)의 종점의 선형 회귀(linear regression)에 의해 획득된다. 마지막으로, 테이블 검출기(505)는 라인 세그먼트가 경계 프레임에 속하는지를 결정한다. (유의할 점은 일 실시예의 테이블 검출기(505)가 0 또는 2개의 평행한 경계선을 갖는 테이블을 검출하도록 설계되어 있다는 것이다.) 경계 라인(예를 들어, 하부 라인(1709))이 발견 되는 경우, 가상 경계 프레임이 조정된다. 가상 경계 프레임을 결정한 후에, 테이블 검출기(505)는 정말로 완전한 경계 프레임에서와 같이 계속한다.
의사-테이블 형성
의사-테이블의 형성
진짜 또는 가상 경계 프레임이 검출된 후에, 이어서 라인 리스트로부터 경계 프레임 내에서 프레임 라인일 수도 있는 모든 라인 세그먼트를 수집함으로써 의사-테이블이 형성된다. 이러한 라인 세그먼트의 세트를 "의사-테이블"이라고 하는데, 그 이유는 이 라인 세그먼트의 세트가 진짜 테이블에 대한 후보이고 그것이 이 처리 시점에서 정말로 테이블인지를 결정할 수 없기 때문이다.
테이블 프레임 정규화
도 18은 본 발명의 예시적인 측면에 따른 테이블 프레임을 정규화하는 것을 나타낸 것이다. 의사-테이블(1800)의 구조를 획득하고 차후의 계산을 간단화하기 위해, 이 프로세스는 거의 수평 또는 수직인 라인 세그먼트가 본질적으로 정확하게 수평 또는 수직인 라인 세그먼트로 대체되도록 의사-테이블(1800)를 정규화한다. (예를 들어, 정규화된 의사-테이블(1850)에서 라인 세그먼트(1853)는 라인 세그먼트(1851)를 대체한다.) 또한, 이 프로세스는 수직 라인 세그먼트가 수평 라인 세그먼트와 교차하는지를 판정한다. 이하의 설명은 정규화 및 교차의 품질(quality of intersection)을 나타내는 정규화 메트릭 Pnorm의 계산의 단계들을 제공한다. 의사-테이블이 m개의 수평 라인 및 n개의 수직 라인을 갖는 것으로 가정하고, m*n개 의 교차하는 점 모두를 계산하고 2개의 라인이 정말로 교차하는지 이들 라인을 연장함으로써 서로 교차할 수 있는지의 정보를 기록한다. 이는 이하의 식을 계산함으로써 획득될 수 있다.
여기서, P는 수평 라인이고, 및 는 각각 라인 P의 시점(start point) 및 종점(end point)이며, p는 스칼라양의 파라미터이다. 수학식 8b에서의 파라미터들도 유사하게 정의된다.
P = Q에 대해 상기 식들을 풀면, p와 q의 값을 구할 수 있으며, 이로부터 2개의 라인의 교차 정보(crossing information)를 얻을 수 있다. 각각의 (i, j)에 대해, 값 pij 및 qij를 구할 수 있고, 따라서 의사-테이블의 교차 정보를 기술하는 2개의 행렬 Pmxn 및 Qmxn을 구할 수 있다. 이하의 단계들은 라인들 및 교차점들을 정규화한다.
j번째 수직 라인도 유사하게 표현될 수 있다. 모든 수평 및 수직 라인이 정규화된 경우, 정규화된 교차점이 계산될 수 있다. 마지막으로, m개의 수평 교차점 및 n개의 수직 교차점으로 테이블에 대한 기하 정보를 조정한다. 교차 정보, 즉 2개의 라인이 정말로 어디에서 교차하는지가 동시에 기록된다. 그 다음에, 2개의 서브메트릭(sub-metric), 즉 교차점 성분 메트릭(intersection component metric) fint 및 유효 프레임 라인 성분 메트릭(valid frame line component metric) fvfl의 선형 결합으로 형성되는 정규화 메트릭 Pnorm을 계산할 수 있다.
교차점 성분 메트릭 fint는 교차점의 품질을 나타낸다. 이는 모든 교차점의 수에 대한 "불량" 교차점의 수의 비로서 정의된다. "불량" 교차점(예를 들어, 교차점(1803))이란 교차점인 것으로 결정되지만 대응하는 2개의 라인 세그먼트가 서로 정말로 교차하지는 않는 것을 말한다.
유효 프레임 라인 성분 메트릭(valid frame line component metric) fvfl은 테이블 프레임의 깨끗함(cleanness)을 나타낸다. 이 엔진은 프레임 라인과 교차하는 스트로크가 많은 경우 테이블 후보를 거부한다. 이는 모든 라인 세그먼트의 수에 대한 무효 라인 세그먼트의 수의 비로서 정의된다.
여기서, "무효" 라인 세그먼트는 단지 하나의 교차점만을 갖는다(예를 들어, 라인 세그먼트(1801)). 무효 라인 세그먼트 및 어떤 다른 라인 세그먼트와도 교차하지 않는 라인 세그먼트는 버려지며 따라서 이들은 테이블 구조에 영향을 미치지 않는다. 상기 2개의 성분 메트릭이 선형 결합되어 의사-테이블을 정규화하는 정규화 메트릭(신뢰도 수준) Pnorm을 형성한다.
테이블 구조 인식
도 19는 본 발명의 예시적인 측면에 따른 테이블 구조 인식을 나타낸 것이다. 정규화 후에, 교차 정보, 즉 모든 라인 세그먼트의 교차 관계가 획득된다. 테이블 검출기(505)는 교차점의 유형을 검사함으로써 테이블의 구조를 인식한다. 3가지 유형의 교차점, 즉 ┼자형 교차점(1901)(테이블(1906)에서 교차점(1907)에 대응함), T자형 교차점(1903)(교차점(1909)에 대응함) 및 직각 교차점(1905)(교차점(1911)에 대응함)이 있다. 교차점이 경계 프레임의 4개의 모서리 중 하나가 아닌 경우, 교차점은 단지 ┼자형 또는 T자형일 수 있을 뿐이다. 도 20은 본 발명의 예시적인 측면에 따른 잘못된 교차점(2009, 2021)에 관련된 라인 세그먼트를 버리는 것을 나타낸 것이다. 직각형의 교차점이 존재하고 4개의 모서리점 중 하나가 아닌 경우, 테이블 검출기는 이하의 방식으로 교차점에 관련된 라인 세그먼트를 검사함으로써 이 교차점을 제거하려고 한다.
교차하는 라인 세그먼트가 원래의 것인 경우, 테이블 검출기(505)는 그 라인 세그먼트를 버린다, 예를 들어, 의사-테이블(2001)의 잘못된 교차점(2009)에 대한 라인 세그먼트(2005, 2007)가 버려진다.
그렇지 않은 경우, 라인 세그먼트는 몇개의 라인 세그먼트로 이루어져 있다. 테이블 검출기(505)는 나머지 라인 세그먼트들이 의사-테이블(2003)에 대한 유효한 테이블 구조를 형성할 때까지 잘못된 교차점(2021)로부터의 거리의 순서로 성분 라인 세그먼트(2011-2015)를 버린다.
어떤 라인 세그먼트들을 버린 후에, 의사-테이블의 구조가 얻어진다. 그 다음에, 테이블 셀들이 그의 좌측 상부 모서리의 좌표에 따라, 좌에서 우로, 이어서 위에서 아래로 순서화된다. 테이블(1906)은 셀들의 순서화의 일례이다. 이 단계 에 의해 구조 신뢰도 수준(structural confidence level) Pstr이 얻어진다.
여기서, Nerror_intersect는 직각형이지만 테이블 경계 프레임의 4개의 모서리점 중 하나가 아닌 잘못된 교차점의 수이고, Ntotal _ intersect는 모든 교차점의 수이다.
셀 내용의 분석
도 21은 본 발명의 예시적인 측면에 따른 i번째 셀(2101) 및 j번째 스트로크(2103)의 공통 영역을 나타낸 것이다. 이 프로세스 전에, 테이블 검출기(505)는 의사-테이블이 진짜 테이블인지를 판정하지 않는다. 앞서 설명한 바와 같이, 프레임 라인과 교차하는 스트로크가 너무 많은 경우, 테이블 검출기(505)는 테이블 후보를 거부한다. 이 프로세스는 테이블 정보를 완성하기 위해 각각의 셀의 내용을 탐색하고, 또한 진짜 테이블일 신뢰도를 평가하기 위해 프레임 라인과 교차하는 스트로크의 수를 검사한다. 셀 내용 테스트는 현재의 의사-테이블를 포함하는 미지의 드로잉 객체에서 각각의 셀의 경계 박스 및 모든 객체(회전시킨 후의 문단, 라인, 단어, 및 스트로크 등)의 경계 박스를, 객체의 경계 박스에서의 이들의 공통 영역의 비율에 의해, 검사한다. 이는 상위 레벨부터 하위 레벨로 행해진다. 즉, 문단이 셀에 있는 것으로 판단되는 경우, 테스트가 종료된다. 그렇지 않은 경우, 계속하여 라인, 기타 등등을 테스트한다. 이 프로세스는 스트로크 레벨까지 계속 될 수도 있다. 드로잉 스트로크의 경우에, 미지의 드로잉 객체 그룹화 엔진도 드로잉 스트로크를 계층구조로 그룹화하는 경우, 이 테스트도 역시 위에서 아래로 행해진다. 이 프로세스는 이전의 엔진들로부터의 그룹화 에러를 정정할 수 있다. 예를 들어, 과도하게 그룹화된(over-grouped) 문단, 라인 또는 단어는 다른 셀에 있는 또는 테이블 외부에 있는 보다 작은 부분으로 분할될 수 있다. 이 단계에 의해 내용 출력의 신뢰도 수준 Pcon이 얻어진다. 이는 다음과 같이 정의된다.
여기서, (2105)는 i번째 셀(2101) 및 j번째 스트로크(2103)의 경계 박스의 공통 영역이고, Ai는 i번째 셀의 영역이며, Bj는 j번째 스트로크의 경계 박스의 영역이고, 는 j번째 스트로크와 i번째 셀의 프레임 라인 간의 위치 관계를 반영하는 파라미터이며, Ncell 및 Nstroke는 각각 셀들의 프레임 라인과 교차하는 셀의 수 및 스트로크의 수이다. 스트로크가 프레임 라인 상에 있는 경우, 스트로크가 종종 화살촉 모양(arrow head)이기 때문에, 스트로크가 프레임 라인의 중심에 가까이 있을 때보다 프레임 라인의 끝에 가까이 있을 때 신뢰도 수준이 더 떨어진다는 것을 고려하기 위해 를 도입한다. 의사-테이블이 가상 경계 프레임을 가지고 어떤 셀에도 필기 스트로크가 없는 경우, 의사-테이블이 즉각 거부된다.
실제로, 테이블 검출기(505)는 몇개의 테이블이 너무 가까이 있어서 서로 분리할 수 없거나 테이블이 여러번 수정되는 등의 어떤 복잡한 경우를 처리하기 위해 특징들을 동적으로 계산한다. 예를 들어, 테이블 검출기(505)가 필기 입력이 서로 가까이 있는 2개의 테이블에 대응하는지 단지 하나의 큰 테이블에 대응하는지를 결정할 수 없는 경우, 테이블 검출기(505)는 이들 경우 둘다를 맞는 것으로 간주한다. 테이블 검출기(505)는 2가지 경우에 각각 모든 메트릭을 계산하고 그 다음에 더 나은 것을 찾기 위해 최종적인 신뢰도 수준을 비교한다. 이들 메트릭을 계산할 때, 벌점 및 가점 메카니즘(penalty and inspiring mechanism)이 적용된다, 즉 라인 세그먼트가 한 경우에서는 테이블의 하단 라인으로 취급될 수 있고 다른 경우에서는 테이블의 상단 라인으로 취급될 수 있는 경우, 메트릭 값에 벌점을 주어야만 한다.
분류자의 결정
도 22는 본 발명의 예시적인 측면에 따른, 필기 입력이 검증된 테이블에 대응하는지의 결정 트리(2200)를 나타낸 것이다. 앞서 설명한 바와 같이, 각각이 테이블의 특성을 반영하는 4개의 메트릭 PBF, Pnorm, Pstr, 및 Pcon이 결정된다. 일 실시예는 각종의 분류 방식 중 하나를 사용하여 결론을 도출할 수 있다. 예를 들어, 테이블 검출기(505)는 4개의 메트릭(예를 들어, 연관된 신뢰도 수준)을 선형 결합하는 선형 분류자를 사용한다. 전체적인 신뢰도를 4개의 메트릭의 선형 결합으로서 지정할 수 있다.
여기서, 가중치 W (단, 1 ≤ i ≤ 4)는 모두 양수값이다. 테이블 검출기(505)에서, 파라미터 및 문턱값이 단계별로 결정된다. 파라미터 및 문턱값은 먼저 경험적으로 선택된다. 이들 파라미터 및 문턱값은 테이블 검출 결과의 에러를 거의 최소화시키기 위해 수동으로 조정된다. 예를 들어, 20개의 테스트 페이지 및 사람이 처리될 수 있고 대응하는 결과가 검사될 수 있다. 이 프로세스는 여러번 반복될 수 있다. 사용 중인 파라미터 및 문턱값이 최적이 아닐 수 있지만, 나중에 설명하게 되는 바와 같이, 자동 조정(automatic tuning)이 어려울 수 있다. 테이블 검출기(505)가 항상 모든 메트릭 비교(단계(2201-2209)에 대응함)를 실행하는 것은 아니다. 대응하는 단계에 대해 대응하는 신뢰도 수준이 너무 낮은 경우, 테이블 검출기(505)는 즉각 종료되고 그 다음 후보 테이블로 갈 수 있다. 전체적인 신뢰도 Pfusion이 문턱값보다 높은 경우(단계(2209)에 대응함), 테이블 검출기는 후보 테이블이 진짜 테이블인지를 결정하고(단계(2213)에 대응함) 의미 테이블(semantic table)을 출력한다. 그렇지 않은 경우, 테이블이 검출되지 않으며(단계(2211)에 대응함), 테이블 검출기(505)는 그 다음 후보 테이블을 검사한다.
선형 분류자 이외에, 본 발명의 실시예들은 다른 유형의 분류자를 이용할 수 있다. 예를 들어, 비선형 분류자는 메트릭이 1 이외의 멱수만큼 거듭제곱되는 항들을 포함할 수 있다. 게다가, 분류자는 지원 벡터 기계 또는 신경망에 의해 제공 될 수 있다.
파싱 트리의 구조
도 23은 본 발명의 예시적인 측면에 따른, 테이블 검출을 갖지 않는 파싱 트리(2300)의 구조를 나타낸 것이다. 필기된 텍스트를 포함하는 드로잉 객체(2301)는 문단(문단 객체(2303)), 라인(라인 객체(2305)), 단어(단어 객체(2307)), 및 스트로크(스트로크 객체(2309-2311))로 연속적으로 파싱된다.
도 24는 본 발명의 예시적인 측면에 따른, 테이블 검출을 갖는 파싱 트리(2400)의 구조를 나타낸 것이다. 필기된 문서는 필기된 텍스트 및 테이블을 비롯한 여러 유형의 구조화된 객체를 포함할 수 있다. 파싱 트리(2300)에서와 같이, 파싱 테이블(2400)은 텍스트(드로잉 객체(2403))를 문단, 라인, 단어, 및 스트로크로 연속적으로 파싱한다. 또한, 파싱 테이블(2400)은 테이블(테이블(2401)에 대응함)을 파싱할 수 있다. 그에 따라, 파싱 테이블(2400)은 테이블(객체(2401))을 프레임(프레임 객체(2405)) 및 셀(셀 객체(2407))로 파싱한다. 게다가, 이후에 기술하는 바와 같이, 파싱 트리(2400)는 다른 유형의 구조화된 객체(예를 들어, 드로잉 객체 유형(2409))를 지원할 수 있다.
실험 결과
도 25는 본 발명의 예시적인 측면에 따른, 필기된 문서의 검출 결과(2500)를 나타낸 것이다. 도 25에서 하이라이트된 바와 같이, 테이블(2501, 2503, 2505)은 테이블 검출기(505)에 의해 정확하게 검출되었다. 도 26은 본 발명의 예시적인 측면에 따른 테이블 검출의 일례를 나타낸 것이다. 필기된 문서(2600)의 테이 블(2601)은, 하이라이트되어 있는 바와 같이, 처리된 문서(2650)에서 검출된 테이블(2651)로서 정확하게 검출된다. 도 27은 본 발명의 예시적인 측면에 따른 테이블 검출의 일례를 나타낸 것이다. 필기된 문서(2700)의 테이블(2701)은, 하이라이트되어 있는 바와 같이, 처리된 문서(2750)에서 검출된 테이블(2751)로서 정확하게 검출된다. 게다가, 본 발명의 실시예들은 문서 내에서 복수의 필기된 테이블을 검출할 수 있다. 도 28은 본 발명의 예시적인 측면에 따른, 다수의 테이블(2801-2807)을 검출하는 예(2800)를 나타낸 것이다.
테스트 데이터 세트는, 영어로 쓰여진 195개의 필기된 문서, 중국어로 쓰여진 84개의 필기된 문서, 불어로 쓰여진 44개의 필기된 문서, 및 독일어로 쓰여진 55개의 필기된 문서를 포함하는 378개 잉크 노트를 가지고 있다. 많은 잉크 노트는 다수의 페이지를 가지고 있다. 잉크 노트는 문서를 필기하는 스타일에 제한을 두지 않고 많은 서로 다른 사람들로부터 수집되었다. 잉크 노트는 텍스트, 그래픽, 다이어그램, 플로우차트, 테이블, 기타 등등을 포함할 수 있다. 테이블은 어떤 크기 및 경사든지간에 랜덤하게 드로잉될 수 있다.
검출된 구조화된 그래픽 객체와 실제의 구조화된 그래픽 객체 간의 서로 다른 그룹화 또는 서로 다른 구조로 인해, 테이블 검출의 평가가 종종 어렵다. 그룹화 차이(grouping difference)는 성분의 서로 다른 그룹화를 말한다. 예를 들어, 몇개의 테이블이 서로 너무 가까운 경우, 이들 테이블은 하나의 테이블 또는 다수의 테이블 또는 심지어 몇개의 테이블과 몇개의 비테이블로서 검출될 수 있다. 구조상의 차이란 성분 간의 서로 다른 관계를 말한다. 예를 들어, 테이블에 대한 일 련의 프레임 라인이 실제 테이블의 일련의 프레임 라인과 같지만, 프레임 라인들 간의 교차 관계가 서로 다르며, 그 결과 서로 다른 테이블이 얻어진다. 이들 어려움으로 인해 검출된 테이블 및 실제 테이블을 정확하게 정렬하는 것이 어려운 문제가 된다. 따라서, 사람에 의한 조사가 유일한 방책일 수 있다.
테이블 검출 후의 편집
테이블 구조 정보가 추출된 후에, 회전, 스케일링, 전체 테이블의 이동, 셀 내용의 정렬, 문자로의 변환, 기타 등등의 테이블 편집이 수행될 수 있다. 잉크 파서 시연 시스템(ink parser demonstration system)(장치(500)에 대응함)의 어떤 테이블 편집 예가 도 29 내지 도 32에 도시되어 있다. 도 29는 본 발명의 예시적인 측면에 따른 필기된 문서(2900)에서의 경사진 테이블(2901)을 나타낸 것이다. 도 30은 본 발명의 예시적인 측면에 따른, 처리된 문서(3000)의 테이블(3001)을 수평으로 재배열함으로써 도 29에 나타낸 경사진 테이블을 편집하는 것을 나타낸 것이다. 도 31은 본 발명의 예시적인 측면에 따른, 처리된 문서(3100)의 편집된 테이블(3101)을 형성하기 위해 프레임 라인(3103-3105)을 이동시킴으로써 경사진 테이블(2901)을 추가 편집하는 것을 나타낸 것이다.
사용자가 보기 좋도록 하기 위해 필기된 테이블이 편집될 수 있다. 게다가, 필기된 테이블의 내용이 그 내용을 다른 구조화된 객체(예를 들어, 도 32에 나타낸 차트(3201))로 변환하기 위해 소프트웨어 애플리케이션으로 포팅될 수 있다. 도 32는 본 발명의 예시적인 측면에 따른, 차트(3201)를 형성하기 위해 도 29 내지 도 31에 도시된 테이블들을 변환하는 것을 나타낸 것이다.
구조화된 필기된 객체를 검출하는 프레임워크
도 33은 본 발명의 예시적인 측면에 따른, 객체 검출 프레임워크에 의해 검출되는 구조화된 필기된 객체(3300)를 나타낸 것이다.
앞서 기술한 바와 같이, 본 발명의 실시예들은 온라인 필기된 문서로부터 자유 형식 테이블(free style table)을 추출할 수 있는 안정된 테이블 검출 시스템을 제공한다. 손으로 그린 테이블의 괘선 및 레이아웃이 종종 인쇄된 테이블보다 훨씬 더 불규칙적이고 복잡하다는 점에서, 테이블 검출이 통상적으로 어려운 작업이다. 본 발명의 실시예들은 모호함이 없이 정의될 수 있는 구조를 갖는 플로우차트, 조직도, 바 또는 파이 그래프, 및 주석 등의 다른 구조화된 필기된 객체로 확장되어 적용될 수 있다. 예를 들어, 구조화된 그래픽 객체의 원시 구조(primitive structure)가 성분 객체(component object)(예를 들어, 구조화된 그래픽 객체(3300)에 나타낸 유향 라인(directed line), 직사각형 및 원)를 포함하기 때문에, 구조화된 그래픽 객체 검출기는 테이블 검출기(505)와 관련하여 원시 구조 및 논리적 구조(logical structure)를 검출할 시에 적절한 수정을 갖는 구조화된 그래픽 객체를 검출할 수 있다. 라인 세그먼트는 곡선 세그먼트(curvilinear segment)로 일반화될 수 있다. 예를 들어, 원은 하나 이상의 스트로크(이들로부터 원호 세그먼트가 획득될 수 있음)로 형성될 수 있다.
본 발명의 실시예들은 구조화된 필기된 객체를 검출하는 프레임워크를 제공한다. 예를 들어, 장치(500)(도 5에 도시됨)에 기초한 것일 수 있는 검출 장치는 이하의 특징(기능)을 지원한다.
원시 구조(primitive structure)의 검출 - 구조화된 그래픽 객체는 통상적으로 원시 구조를 포함한다. 예를 들어, 앞서 기술한 바와 같이, 테이블은 괘선 및 경계 박스 등의 성분 객체들을 포함한다. 연관된 기능은 앞서 경계 프레임의 전처리 및 검출에서 기술한 기능에 대응한다. 원시 구조를 검출할 때, 세그먼트가 수평 또는 수직 배향과 다른 배향을 갖는, 예를 들어, 세그먼트가 삼각형 또는 다이어몬드 형상의 객체의 대각 배향(diagonal orientation)을 가질 수 있는 피크가 있는지 히스토그램(세그먼트를 연관된 방향과 관계시킴)이 검사될 수 있다.
원시 구조로부터 논리적 구조의 검출 - 논리적 구조를 검출할 때, 성분 객체들 간의 관계가 결정된다. 예를 들어, 구조화된 필기된 객체(3300)와 관련하여, 기지의 규칙은 직사각형(복수의 메모리 셀을 갖는 메모리 장소를 나타낼 수 있음)과 원(결합 요소(combination element)를 나타낼 수 있음) 사이에 적어도 2개의 유향 라인이 존재해야만 한다는 것을 나타낼 수 있다. 게다가, 본 발명의 실시예들은 다른 구조화된 객체 유형, 예를 들어, 도 24에 나타낸 드로잉 객체(2409)를 포함시켜 파싱 트리(2400)를 확장함으로써 다른 유형의 구조화된 필기된 객체를 지원할 수 있다. 연관된 기능은 의사-테이블 정보, 테이블 구조 인식, 및 셀 내용의 분석에서 앞서 기술한 기능에 대응한다.
전체적인 검출 및 분류 - 구조화된 필기된 객체의 검출은, 앞서 기술한 바와 같이, 통상적으로 계층적(hierarchical)이고 절차적(procedural)이다. 전체적인 신뢰도 수준(분류자)이 충분히 큰 경우, 구조화된 그래픽 객체가 검출된다. 연관된 기능은 분류자의 결정에서 앞서 기술한 기능에 대응한다.
구조화된 필기된 객체 검출기에 많은 파라미터 및 문턱값이 있기 때문에, 현재는, 사람이 검출 정확도 및 속도를 신속하게 검사하는 것을 용이하게 해주기 위해 파라미터 및 문턱값의 일부분만이 각각의 페이지에 조밀한 테이블/비테이블 집단을 갖는 특별히 설계된 테스트 페이지들 상에서 수동으로 조정된다. 파라미터 및 문턱값 중 어떤 것은 정확도 및 속도에 상당한 영향을 가질 수 있다. 나머지 파라미터 및 문턱값은 추정된 값에 고정되어 있다. 문턱값이 과도하게 크지 않는 한, 최종적인 분류자가 본질적으로 검출 정확도를 결정한다. 게다가, 최적의 파라미터 및 문턱값을 자동적으로 찾아내기 위해, 예를 들어, 유전자 알고리즘(genetic algorithm)을 사용하여 자동 파라미터 조정 시스템(automatic parameter tuning system)을 개발하는 것도 가능하며, 이 경우 원하는 성능 목적을 달성하기 위해 검출 속도가 고려된다.
당업자라면 잘 알 것인 바와 같이, 컴퓨터 시스템을 제어하는 명령어들을 포함하는 연과된 컴퓨터 판독가능 매체를 갖는 컴퓨터 시스템이 본 명세서에 기술된 예시적인 실시예들을 구현하는 데 이용될 수 있다. 컴퓨터 시스템은 마이크로프로세서, 디지털 신호 처리기, 및 연관된 주변 장치 전자 회로 등의 적어도 하나의 컴퓨터를 포함할 수 있다.
본 발명이 구조상 특징 및/또는 방법 단계들과 관련된 언어도 기술되어 있지만, 첨부된 청구항들에 정의된 본 발명이 반드시 상기한 특정의 특징 또는 단계들에 한정될 필요는 없다는 것을 잘 알 것이다. 오히려, 상기한 특정의 특징 및 단 계는 청구항들을 구현하는 예시적인 형태로서 기술된 것이다.
Claims (20)
- 컴퓨터 실행가능 명령어들을 갖는 컴퓨터 판독가능 매체로서,상기 컴퓨터 실행가능 명령어들은,(a) 필기된 문서로부터 라인 리스트를 결정하는 단계(301),(b) 상기 라인 리스트로부터 후보 테이블의 경계 프레임을 획득하는 단계(305),(c) 상기 경계 프레임 및 상기 라인 리스트로부터 상기 후보 테이블의 구조를 인식하는 단계(313), 및(d) 상기 후보 테이블이 검증된 테이블에 대응하는지를 판정하기 위해 분류자로부터 상기 후보 테이블을 검증하는 단계(321)를 수행하는 것인, 컴퓨터 실행가능 명령어들을 갖는 컴퓨터 판독가능 매체.
- 제1항에 있어서, 상기 컴퓨터 실행가능 명령어들은,(e) 대략 수평인 라인 세그먼트를 본질적으로 수평인 라인 세그먼트로 대체하고 대략 수직인 라인 세그먼트를 본질적으로 수직인 라인 세그먼트로 대체하기 위해 상기 후보 리스트의 필기된 라인 세그먼트들을 정규화하는 단계(311)를 수행하는 것인, 컴퓨터 실행가능 명령어들을 갖는 컴퓨터 판독가능 매체.
- 제1항에 있어서, 상기 컴퓨터 실행가능 명령어들은,(e) 상기 검증된 테이블의 셀에 대한 대응하는 내용을 결정하는 단계를 수행하는 것인, 컴퓨터 실행가능 명령어들을 갖는 컴퓨터 판독가능 매체.
- 제1항에 있어서, 상기 컴퓨터 실행가능 명령어들은,(e) 스트로크를 결합 라인 세그먼트(conjoint line segment)로 근사화하기 위해 상기 스트로크를 세그먼트화하는 단계를 수행하는 것인, 컴퓨터 실행가능 명령어들을 갖는 컴퓨터 판독가능 매체.
- 제1항에 있어서, 상기 분류자는 분류자 성분들(2201-2209)의 선형 결합을 포함하는 것인, 컴퓨터 실행가능 명령어들을 갖는 컴퓨터 판독가능 매체.
- 제1항에 있어서, 상기 컴퓨터 실행가능 명령어들은,(b)(i) 완전한 경계 프레임이 획득될 수 없을 때 가상 경계 프레임을 검출하는 단계(1007)를 수행하는 것인, 컴퓨터 실행가능 명령어들을 갖는 컴퓨터 판독가능 매체.
- 제2항에 있어서, 상기 컴퓨터 실행가능 명령어들은,(f) 상기 본질적으로 수평인 라인 세그먼트 및 상기 본질적으로 수직인 라인 세그먼트에 대응하는 교차점을 정규화하는 단계를 수행하는 것인, 컴퓨터 실행가능 명령어들을 갖는 컴퓨터 판독가능 매체.
- 제5항에 있어서, 상기 분류자 성분들 중 하나가 정규화 신뢰도 수준(normalization confidence level)을 포함하는 것인, 컴퓨터 실행가능 명령어들을 갖는 컴퓨터 판독가능 매체.
- 제1항에 있어서, 상기 컴퓨터 실행가능 명령어들은,(c)(i) 교차점의 유형으로부터 상기 후보 테이블의 구조를 결정하는 단계를 수행하는 것인, 컴퓨터 실행가능 명령어들을 갖는 컴퓨터 판독가능 매체.
- 제9항에 있어서, 상기 컴퓨터 실행가능 명령어들은,(c)(ii) 잘못된 교차점에 대응하는 잘못된 라인 세그먼트를 버리는 단계를 수행하는 것인, 컴퓨터 실행가능 명령어들을 갖는 컴퓨터 판독가능 매체.
- 제5항에 있어서, 상기 분류자 성분들 중 하나는 구조 신뢰도 수준(structural confidence level)을 포함하는 것인, 컴퓨터 실행가능 명령어들을 갖는 컴퓨터 판독가능 매체.
- 제5항에 있어서, 상기 분류자 성분들 중 하나는 경계 프레임 신뢰도 수준을 포함하는 것인, 컴퓨터 실행가능 명령어들을 갖는 컴퓨터 판독가능 매체.
- 제12항에 있어서, 상기 경계 프레임 신뢰도 수준은 선형성(linearity) 하위성분, 유사성(similarity) 하위성분, 방형성(rectangularity) 하위성분 및 돌출성(saliency) 하위성분을 더 포함하는 것인, 컴퓨터 실행가능 명령어들을 갖는 컴퓨터 판독가능 매체.
- 제5항에 있어서, 상기 컴퓨터 실행가능 명령어들은,(e) 상기 후보 테이블에 포함된 내용에 대한 내용 신뢰도 수준을 결정하는 단계를 수행하며,상기 분류자 성분들 중 하나는 상기 내용 신뢰도 수준인 것인, 컴퓨터 실행가능 명령어들을 갖는 컴퓨터 판독가능 매체.
- 제1항에 있어서, 상기 컴퓨터 실행가능 명령어들은,(e) 명령 입력으로부터 상기 검증된 테이블을 편집하는 단계를 수행하는 것인, 컴퓨터 실행가능 명령어들을 갖는 컴퓨터 판독가능 매체.
- 제1항에 있어서, 상기 컴퓨터 실행가능 명령어들은,(e) 상기 단계 (a) 내지 (c)를 반복하는 단계, 및(f) 다른쪽 후보 테이블이 또하나의 검증된 테이블에 대응하는지를 판정하기 위해 대응하는 분류자로부터 또하나의 후보 테이블을 검증하는 단계를 수행하는 것인, 컴퓨터 실행가능 명령어들을 갖는 컴퓨터 판독가능 매체.
- 제1항에 있어서, 상기 컴퓨터 실행가능 명령어들은,(e) 상기 검증된 테이블로부터 의미 테이블(semantic table)을 발생하는 단계를 수행하는 것인, 컴퓨터 실행가능 명령어들을 갖는 컴퓨터 판독가능 매체.
- 제17항에 있어서, 상기 컴퓨터 실행가능 명령어들은,(e) 상기 의미 테이블로부터 그래픽 객체를 형성하는 단계를 수행하는 것인, 컴퓨터 실행가능 명령어들을 갖는 컴퓨터 판독가능 매체.
- 필기된 문서에서 테이블을 검출하는 테이블 검출기(505)로서,드로잉 스트로크를 결합 라인 세그먼트들로 근사화함으로써 상기 필기된 문서의 라인 블록으로부터 라인 리스트를 형성하는 프리프로세서(515),후보 테이블에 대한 경계 프레임을 결정하고, 상기 경계 프레임 및 라인 리스트로부터 상기 후보 테이블의 구조를 인식하며, 상기 후보 테이블 내의 내용을 분석하고, 상기 경계 프레임, 상기 구조 및 상기 내용과 연관된 신뢰도 수준들을 결정하는 특징 추출기(517), 및상기 신뢰도 수준들로부터 분류자를 형성하고 - 상기 분류자가 미리 정해진 문턱값보다 클 때 상기 후보 테이블이 검증된 테이블에 대응함 - 상기 검증된 테이블에 대한 의미 테이블을 출력하는 분류 모듈(519)를 포함하는, 필기된 문서에서 테이블을 검출하는 테이블 검출기.
- 컴퓨터 실행가능 명령어들을 갖는 컴퓨터 판독가능 매체로서,상기 컴퓨터 실행가능 명령어들은,(a) 필기된 문서로부터 라인 리스트를 결정하는 단계(301),(b) 상기 라인 리스트로부터 경계 프레임을 획득하는 단계(305),(c) 상기 경계 프레임 내부에 있는 상기 라인 리스트의 라인 세그먼트 및 경계 프레임으로부터 후보 테이블을 형성하는 단계(307),(d) 대략 수평인 라인 세그먼트를 본질적으로 수평인 라인 세그먼트로 대체하고 대략 수직인 라인 세그먼트를 본질적으로 수직인 라인 세그먼트로 대체함으로써 상기 후보 테이블을 정규화하는 단계(309),(e) 상기 후보 테이블의 교차점 유형으로부터 상기 후보 테이블의 구조를 인식하는 단계(313),(f) 상기 후보 테이블의 라인 세그먼트와 스트로크의 교차로부터 상기 후보 테이블에서의 내용을 분석하는 단계(317),(g) 상기 후보 테이블이 유효한 테이블인지의 신뢰도 수준을 제공하는 분류자를 결정하는 단계(319), 및(h) 상기 분류자가 미리 정해진 문턱값보다 큰 경우, 의미 테이블을 출력하는 단계(321)를 수행하는 것인, 컴퓨터 실행가능 명령어들을 갖는 컴퓨터 판독가능 매체.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/314,124 US7583841B2 (en) | 2005-12-21 | 2005-12-21 | Table detection in ink notes |
US11/314,124 | 2005-12-21 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20080086460A true KR20080086460A (ko) | 2008-09-25 |
Family
ID=38173554
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020087014962A KR20080086460A (ko) | 2005-12-21 | 2006-12-18 | 컴퓨터 실행가능 명령어들을 갖는 컴퓨터 판독가능 매체 및필기된 문서에서 테이블을 검출하는 테이블 검출기 |
Country Status (7)
Country | Link |
---|---|
US (1) | US7583841B2 (ko) |
EP (1) | EP1969489B1 (ko) |
KR (1) | KR20080086460A (ko) |
CN (1) | CN101366020B (ko) |
AT (1) | ATE491188T1 (ko) |
DE (1) | DE602006018788D1 (ko) |
WO (1) | WO2007075548A1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021118273A1 (en) * | 2019-12-10 | 2021-06-17 | Samsung Electronics Co., Ltd. | Electronic device and method for processing writing input |
Families Citing this family (42)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7664325B2 (en) * | 2005-12-21 | 2010-02-16 | Microsoft Corporation | Framework for detecting a structured handwritten object |
US7583841B2 (en) * | 2005-12-21 | 2009-09-01 | Microsoft Corporation | Table detection in ink notes |
JP4569622B2 (ja) * | 2007-12-18 | 2010-10-27 | 富士ゼロックス株式会社 | 画像処理装置及び画像処理プログラム |
US8600164B2 (en) * | 2008-03-28 | 2013-12-03 | Smart Technologies Ulc | Method and tool for recognizing a hand-drawn table |
US8634645B2 (en) * | 2008-03-28 | 2014-01-21 | Smart Technologies Ulc | Method and tool for recognizing a hand-drawn table |
US9202140B2 (en) * | 2008-09-05 | 2015-12-01 | Siemens Medical Solutions Usa, Inc. | Quotient appearance manifold mapping for image classification |
JP5361574B2 (ja) * | 2009-07-01 | 2013-12-04 | キヤノン株式会社 | 画像処理装置、画像処理方法、及びプログラム |
US8335981B2 (en) * | 2009-08-03 | 2012-12-18 | Business Objects Software Ltd. | Metadata creation |
CN102129546B (zh) * | 2010-01-15 | 2013-07-10 | 富士通株式会社 | 二值图像的识别方法和识别装置 |
US8433714B2 (en) | 2010-05-27 | 2013-04-30 | Business Objects Software Ltd. | Data cell cluster identification and table transformation |
JP5640645B2 (ja) * | 2010-10-26 | 2014-12-17 | 富士ゼロックス株式会社 | 画像処理装置及び画像処理プログラム |
JP5724341B2 (ja) * | 2010-12-06 | 2015-05-27 | 富士ゼロックス株式会社 | 画像処理装置及び画像処理プログラム |
CN102289322A (zh) * | 2011-08-25 | 2011-12-21 | 盛乐信息技术(上海)有限公司 | 手写笔迹处理方法及系统 |
CN103577817B (zh) * | 2012-07-24 | 2017-03-01 | 阿里巴巴集团控股有限公司 | 表单识别方法与装置 |
JP5787843B2 (ja) * | 2012-08-10 | 2015-09-30 | 株式会社東芝 | 手書き描画装置、方法及びプログラム |
JP5783972B2 (ja) * | 2012-08-17 | 2015-09-24 | 株式会社東芝 | 手書き文書処理装置、方法およびプログラム |
JP2015035150A (ja) * | 2013-08-09 | 2015-02-19 | 株式会社東芝 | 手書き文書処理装置、手書き文書処理方法及び手書き文書処理プログラム |
JP2015049618A (ja) * | 2013-08-30 | 2015-03-16 | 株式会社東芝 | 手書き文書処理装置、手書き文書処理方法及び手書き文書処理プログラム |
JP6202997B2 (ja) * | 2013-11-07 | 2017-09-27 | 株式会社東芝 | 電子機器、方法及びプログラム |
CN104636117A (zh) * | 2013-11-12 | 2015-05-20 | 江苏奥博洋信息技术有限公司 | 一种表格图像的自动切分方法 |
KR20160062565A (ko) * | 2014-11-25 | 2016-06-02 | 삼성전자주식회사 | 디바이스 및 디바이스의 필기 컨텐트 제공 방법 |
JP2016110389A (ja) * | 2014-12-05 | 2016-06-20 | 株式会社東芝 | 検索装置、方法及びプログラム |
US20160162175A1 (en) * | 2014-12-05 | 2016-06-09 | Kabushiki Kaisha Toshiba | Electronic apparatus |
US10042539B2 (en) * | 2015-02-11 | 2018-08-07 | Adobe Systems Incorporated | Dynamic text control for mobile devices |
CN106293185A (zh) * | 2015-06-05 | 2017-01-04 | 夏普株式会社 | 手写表识别方法和设备 |
JP2017090974A (ja) * | 2015-11-02 | 2017-05-25 | 富士ゼロックス株式会社 | 画像処理装置及びプログラム |
CN105760352B (zh) * | 2016-02-02 | 2018-07-20 | 锐达互动科技股份有限公司 | 导入选中的Excel表格行列排列方式到白板软件中的方法 |
CN105739985B (zh) * | 2016-02-02 | 2018-11-20 | 锐达互动科技股份有限公司 | 导入选中的Excel表格到白板软件中的方法 |
CN105760353B (zh) * | 2016-02-02 | 2018-08-07 | 锐达互动科技股份有限公司 | 在白板软件中导入Excel表格且不改变单元格文本格式的方法 |
US9898653B2 (en) * | 2016-05-25 | 2018-02-20 | Konica Minolta Laboratory U.S.A. Inc. | Method for determining width of lines in hand drawn table |
US9965678B2 (en) * | 2016-06-29 | 2018-05-08 | Konica Minolta Laboratory U.S.A., Inc. | Method for recognizing table and flowchart in document images |
US10410386B2 (en) * | 2017-09-15 | 2019-09-10 | Konica Minolta Laboratory U.S.A., Inc. | Table cell validation |
US10679049B2 (en) * | 2017-09-29 | 2020-06-09 | Konica Minolta Laboratory U.S.A., Inc. | Identifying hand drawn tables |
CN111859874B (zh) * | 2019-04-17 | 2023-06-13 | 百度在线网络技术(北京)有限公司 | 表格生成方法及其系统、视频播放设备和计算机可读介质 |
US11048867B2 (en) * | 2019-09-06 | 2021-06-29 | Wipro Limited | System and method for extracting tabular data from a document |
EP4032016A4 (en) | 2019-09-18 | 2023-10-25 | Tata Consultancy Services Limited | DEEP LEARNING BASED TABLE COVERAGE AND ASSOCIATED DATA EXTRACTION FROM SCANNED IMAGE DOCUMENTS |
CN113139370A (zh) * | 2020-01-16 | 2021-07-20 | 京东方科技集团股份有限公司 | 一种表格提取方法、装置及触控显示装置 |
CN111428700B (zh) * | 2020-06-10 | 2020-10-27 | 上海交通大学苏州人工智能研究院 | 表格识别方法、装置、电子设备、存储介质 |
US11010543B1 (en) * | 2020-08-11 | 2021-05-18 | Fmr Llc | Systems and methods for table extraction in documents |
WO2022182104A1 (ko) * | 2021-02-23 | 2022-09-01 | 네이버 주식회사 | 테이블 생성 방법 및 시스템, 그리고 테이블이 포함된 이미지 보정 방법 및 시스템 |
KR102707927B1 (ko) * | 2021-02-23 | 2024-09-23 | 네이버 주식회사 | 테이블 생성 방법 및 시스템 |
US11887393B2 (en) | 2021-03-02 | 2024-01-30 | Claritrics Inc. | End-to-end system for extracting tabular data present in electronic documents and method thereof |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2930612B2 (ja) * | 1989-10-05 | 1999-08-03 | 株式会社リコー | 画像形成装置 |
US5701500A (en) * | 1992-06-02 | 1997-12-23 | Fuji Xerox Co., Ltd. | Document processor |
JPH06203165A (ja) * | 1993-01-07 | 1994-07-22 | Canon Inc | 画像情報処理方法及び装置 |
US5787414A (en) * | 1993-06-03 | 1998-07-28 | Kabushiki Kaisha Toshiba | Data retrieval system using secondary information of primary data to be retrieved as retrieval key |
US5392130A (en) * | 1993-11-24 | 1995-02-21 | Xerox Corporation | Analyzing an image showing a row/column representation |
US5544267A (en) | 1993-11-24 | 1996-08-06 | Xerox Corporation | Using a category to analyze an image showing a graphical representation |
US5513271A (en) | 1993-11-24 | 1996-04-30 | Xerox Corporation | Analyzing an image showing a proportioned parts graph |
US6104833A (en) * | 1996-01-09 | 2000-08-15 | Fujitsu Limited | Pattern recognizing apparatus and method |
US6108444A (en) * | 1997-09-29 | 2000-08-22 | Xerox Corporation | Method of grouping handwritten word segments in handwritten document images |
US6636631B2 (en) * | 1998-06-04 | 2003-10-21 | Matsushita Electric Industrial Co., Ltd. | Optical character reading method and system for a document with ruled lines and its application |
CN1173247C (zh) | 1999-01-13 | 2004-10-27 | 国际商业机器公司 | 具有文字分割用户接口的手写信息处理系统 |
JP4412762B2 (ja) * | 1999-05-31 | 2010-02-10 | 富士通株式会社 | 点線抽出方法、その装置及びその記録媒体 |
JP4159720B2 (ja) * | 2000-03-15 | 2008-10-01 | 株式会社リコー | 表認識方法と表認識装置と文字認識装置及び表認識プログラムを記録した記憶媒体 |
US6757870B1 (en) | 2000-03-22 | 2004-06-29 | Hewlett-Packard Development Company, L.P. | Automatic table detection method and system |
US7324691B2 (en) | 2003-09-24 | 2008-01-29 | Microsoft Corporation | System and method for shape recognition of hand-drawn objects |
US7295708B2 (en) | 2003-09-24 | 2007-11-13 | Microsoft Corporation | System and method for detecting a list in ink input |
US8849031B2 (en) * | 2005-10-20 | 2014-09-30 | Xerox Corporation | Document analysis systems and methods |
US7664325B2 (en) * | 2005-12-21 | 2010-02-16 | Microsoft Corporation | Framework for detecting a structured handwritten object |
US7583841B2 (en) * | 2005-12-21 | 2009-09-01 | Microsoft Corporation | Table detection in ink notes |
-
2005
- 2005-12-21 US US11/314,124 patent/US7583841B2/en not_active Expired - Fee Related
-
2006
- 2006-12-18 EP EP06845707A patent/EP1969489B1/en not_active Not-in-force
- 2006-12-18 KR KR1020087014962A patent/KR20080086460A/ko not_active Application Discontinuation
- 2006-12-18 DE DE602006018788T patent/DE602006018788D1/de active Active
- 2006-12-18 WO PCT/US2006/048208 patent/WO2007075548A1/en active Application Filing
- 2006-12-18 CN CN2006800489026A patent/CN101366020B/zh not_active Expired - Fee Related
- 2006-12-18 AT AT06845707T patent/ATE491188T1/de not_active IP Right Cessation
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021118273A1 (en) * | 2019-12-10 | 2021-06-17 | Samsung Electronics Co., Ltd. | Electronic device and method for processing writing input |
US11482024B2 (en) | 2019-12-10 | 2022-10-25 | Samsung Electronics Co., Ltd. | Electronic device and method for processing writing input |
Also Published As
Publication number | Publication date |
---|---|
US7583841B2 (en) | 2009-09-01 |
EP1969489A4 (en) | 2009-04-01 |
CN101366020A (zh) | 2009-02-11 |
ATE491188T1 (de) | 2010-12-15 |
US20070140565A1 (en) | 2007-06-21 |
EP1969489B1 (en) | 2010-12-08 |
CN101366020B (zh) | 2011-11-09 |
DE602006018788D1 (de) | 2011-01-20 |
EP1969489A1 (en) | 2008-09-17 |
WO2007075548A1 (en) | 2007-07-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7664325B2 (en) | Framework for detecting a structured handwritten object | |
US7583841B2 (en) | Table detection in ink notes | |
Jain et al. | Structure in on-line documents | |
US7050632B2 (en) | Handwriting layout analysis of freeform digital ink input | |
EP1363230B1 (en) | Classification analysis of freeform digital ink input | |
Shafait et al. | Performance evaluation and benchmarking of six-page segmentation algorithms | |
Jain et al. | Document representation and its application to page decomposition | |
US5390259A (en) | Methods and apparatus for selecting semantically significant images in a document image without decoding image content | |
Song et al. | A Hough transform based line recognition method utilizing both parameter space and image space | |
Mao et al. | Empirical performance evaluation methodology and its application to page segmentation algorithms | |
Yanikoglu et al. | Segmentation of off-line cursive handwriting using linear programming | |
US7142728B2 (en) | Method and system for extracting information from a document | |
Namboodiri et al. | Document structure and layout analysis | |
US8442319B2 (en) | System and method for classifying connected groups of foreground pixels in scanned document images according to the type of marking | |
Ma et al. | Adaptive Hindi OCR using generalized Hausdorff image comparison | |
Bukhari et al. | High performance layout analysis of Arabic and Urdu document images | |
Kasar et al. | Table information extraction and structure recognition using query patterns | |
Anh et al. | A hybrid method for table detection from document image | |
Priyanka et al. | Line and word segmentation approach for printed documents | |
US9798711B2 (en) | Method and system for generating a graphical organization of a page | |
Shafait et al. | Layout analysis of Urdu document images | |
Tombre et al. | Pattern recognition methods for querying and browsing technical documentation | |
Rohini et al. | Segmentation of touching, overlapping, skewed and short handwritten text lines | |
Zhang et al. | Extraction and segmentation of tables from Chinese ink documents based on a matrix model | |
Ye et al. | Grouping text lines in freeform handwritten notes |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
WITN | Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid |