KR101812380B1 - 공식 검출 엔진 - Google Patents

공식 검출 엔진 Download PDF

Info

Publication number
KR101812380B1
KR101812380B1 KR1020147020563A KR20147020563A KR101812380B1 KR 101812380 B1 KR101812380 B1 KR 101812380B1 KR 1020147020563 A KR1020147020563 A KR 1020147020563A KR 20147020563 A KR20147020563 A KR 20147020563A KR 101812380 B1 KR101812380 B1 KR 101812380B1
Authority
KR
South Korea
Prior art keywords
formula
elements
formal
region
group
Prior art date
Application number
KR1020147020563A
Other languages
English (en)
Other versions
KR20140116428A (ko
Inventor
밀로스 라자레빅
밀로스 라스코빅
알조사 오블젠
탄코빅 밴자 페트로빅
Original Assignee
마이크로소프트 테크놀로지 라이센싱, 엘엘씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 filed Critical 마이크로소프트 테크놀로지 라이센싱, 엘엘씨
Publication of KR20140116428A publication Critical patent/KR20140116428A/ko
Application granted granted Critical
Publication of KR101812380B1 publication Critical patent/KR101812380B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/14Image acquisition
    • G06V30/148Segmentation of character regions
    • G06V30/15Cutting or merging image elements, e.g. region growing, watershed or clustering-based techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/151Transformation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/40Document-oriented image-based pattern recognition
    • G06V30/41Analysis of document content
    • G06V30/414Extracting the geometrical structure, e.g. layout tree; Block segmentation, e.g. bounding boxes for graphics or text
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/50Information retrieval; Database structures therefor; File system structures therefor of still image data
    • G06F16/58Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • G06F16/583Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content
    • G06F16/5846Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content using extracted text
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/50Information retrieval; Database structures therefor; File system structures therefor of still image data
    • G06F16/58Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • G06F16/583Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content
    • G06F16/5854Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content using shape and object relationship
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Artificial Intelligence (AREA)
  • Computer Graphics (AREA)
  • Geometry (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • General Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Character Input (AREA)
  • Character Discrimination (AREA)
  • Machine Translation (AREA)
  • Document Processing Apparatus (AREA)

Abstract

공식 검출 엔진 및 관련 방법. 공식 검출 엔진은 공식 시드들을 식별함으로써 고정된 포맷 문서 부분 안에서 공식들을 찾아낸다. 공식 검출 엔진은 공식 영역을 정의하기 위해 공식 시드 주변의 경계를 생성 및 확장한다. 주변의 노멀 텍스트와의 중복을 제거하기 위해, 공식 영역은 공식 요소들 사이의 수평 공백 및 수직 위치에 기반하여 다수의 공식 영역들로 분할된다. 수직으로 정렬된 후, 수평으로 중복된 공식 영역들이 병합되어 공식을 유동 요소로서 재구성한다.

Description

공식 검출 엔진{FORMULA DETECTION ENGINE}
유동 포맷 문서(flow format documents)들 및 고정 포맷 문서들이 널리 사용되며 상이한 목적들을 가진다. 유동 포맷 문서들은 섹션, 파라미터, 칼럼 및 테이블들과 같은 복잡한 논리적 포맷팅 구조들을 이용하여 문서를 조직한다. 결과적으로, 유동 포맷 문서들은 자주 업데이트되거나 편집량이 많은 문서들을 수반하는 작업들에 맞도록 융통성 있게 그리고 쉽게 수정될 수 있다. 이에 비해, 고정된 포맷 문서들(fixed format documents)은 오리지널의 외관을 보존하기 위해 텍스트 런(runs), 경로들, 및 이미지들과 같은 기본적인 물리적 레이아웃 요소들을 이용하여 문서를 조직한다. 고정 포맷 문서들은 자주 혹은 광범위하게 변경되지 않거나 동일성이 요망되는 문서들을 수반하는 작업들에 맞는 일관적이고 정밀한 포맷 레이아웃을 제공한다. 그러한 작업들의 예들에는 문서 기록(archival), 고품질 재생, 및 상용 출판 및 인쇄를 위한 소스 파일들이 포함된다. 고정 포맷 문서들은 흔히 유동 포맷 소스 문서들로부터 생성된다. 고정 포맷 문서들은 또한 물리적(즉, 종이) 문서들의 디지털 재생(가령, 스캐닝 및 사진들)을 포함한다.
고정 포맷 문서의 편집이 요망되지만 유동 포맷 소스 문서는 사용 가능하지 않은 상황에서, 고정 포맷 문서는 유동 포맷 문서로 변환되어야 한다. 변환은 고정 포맷 문서를 분석하고, 고정 포맷 문서로부터의 기본 물리적 레이아웃 요소들을 유동 포맷 문서에 사용되는 보다 복잡한 논리적 요소들로 변환하는 동작을 수반한다. 수학 공식들 및 표현들과 같은 복잡한 요소들에 직면한 기존의 문서 변환기들은 출력 문서의 융통성을 희생하면서 고정 포맷 문서의 레이아웃(가령, 텍스트 프레임, 라인 간격, 문자 간격, 및 이미지들)의 시각적 충실도를 보전하도록 고안된 기본 기법들에 의존한다. 그 결과가 사용자에게 정말 유용한 유동 포맷 문서를 가지도록 실질적 문서 재구성을 수행할 것을 요구하는 제한된 유동 포맷 문서이다. 본 발명이 만들어진 것은 이러한 것들 및 기타 고려사항들과 관련된다.
이하의 간단한 요약은 이하의 상세한 설명에 자세히 기술되는 개념들의 발췌를 간략한 형식으로 소개하기 위해 주어진다. 이 간단한 요약은 청구 발명 대상의 주요 특징이나 필수적 특징을 확인하도록 의도되거나 청구 발명 대상의 범위를 한정하는 데 사용되도록 의도된 것이 아니다.
공식 검출 엔진의 일실시예는 고정 포맷 문서를 유동 포맷 문서로 변환하는 변환 프로세스의 일부로서 관련된 공식 검출 방법을 실행한다. 공식 검출 엔진은 수학 공식의 잠정적 일부인 요소들을 식별하고 그러한 요소들의 상대적 위치에 기반하여 그 요소들을 공식 영역들로 그룹화함으로써 초기 공식 영역들을 생성한다. 공식 검출 엔진은 분석된 요소들에서 공식 시드(seed)들을 식별하는 것으로 시작된다. 공식 시드는 수학 공식들에서 전용으로나 거의 전용으로 사용되는 수학 표현들 및 수학 연산자를 디스플레이하기 위해 전용으로나 거의 전용으로 사용되는 폰트들로 작성된 텍스트 런(run)들, 심볼 또는 키워드와 같이 공식의 일부가 되는 어떤 표시를 포함하는 텍스트 요소이다. 공식 시드들이 식별되면, 공식 검출 엔진은 검출된 공식 시드들 각각의 주변으로 공식 영역(즉, 경계)을 규정하고 근접성에 기반하여 공식 시드들 및 다른 요소들을 그룹화하도록 경계들을 확장한다. 공식 영역의 경계 박스로 둘러싸인 페이지 요소들 전부가 캡처된 요소들이라고 간주된다.
이어서, 공식 검출 엔진은 수직 위치에 기반하여 노멀 텍스트에 겹치는 공식 영역들을 하위분할(subdividing)하고 수평 공백에 기반하여 공식 영역들을 쪼갬으로써 공식 영역들 및 어떤 주변의 노멀 텍스트(즉, 수학 공식의 일부가 아닌 텍스트 요소들) 사이의 중복을 제거한다. 공식 검출 엔진은 공식 영역이 노멀 텍스트의 어떤 영역들에 겹치는지 겹치지 않는지 여부를 판단하기 위해 각각의 공식 영역을 분석하는 것으로 시작한다. 공식 영역이 어떤 노멀 텍스트에 겹치면, 공식 검출 엔진은 캡처된 요소들을 수직 위치에 기반하여 그룹화함으로써 공식 영역을 분할한다. 캡처된 요소들의 각각의 그룹 주위로 새로운 공식 영역이 생성된다. 공식 검출 엔진은 노멀 텍스트와의 중복에 대해 새로운 공식 영역들의 콘텐츠를 분석하며, 노멀 테스트를 여전히 포함하는 어느 새로운 공식 영역이 추가로 분할된다. 공식 영역들이 분할되면, 공식 검출 엔진은 갭처된 요소들 사이의 수평 공백에 따라 각각의 공식 영역을 쪼갠다.
마지막으로 공식 검출 엔진은 근접성에 기반하여 어느 이웃하는 공식 영역들을 병합함으로써 수학 공식들을 유동(flowable) 요소들로서 재구성한다. 공식 검출 엔진은 어느 페이지 상의 서로 다른 라인들에 나타나는 공식 영역들의 병합을 방지하기 위해 상기 이웃하는 텍스트 요소들의 위치들에 대한 정보를 이용한다. 수평으로 중복되고(즉, 적어도 부분적으로 수직으로 정렬되고) 선택된 수직 분리 거리 안에 있는 공식 영역들은 병합 후보들로서 그룹화된다. 공식 검출 엔진은 공식 영역들 간 수직 공백에 따라 병합 후보들을 정렬(가령, 소팅)하며, 병합 후보 중 두 개의 공식 영역들을 새로운 공식 영역으로 대체한다(그 두 공식 영역들이 이미 병합된 것이 아니고 분리된 라인들 상에 있지 않다면).
하나 이상의 실시예들의 세부 내용이 첨부된 도면 및 이하의 상세한 설명을 통해 기술된다. 다른 특징들과 이점들이 이하의 상세한 설명을 판독하고 관련 도면들을 검토함으로써 자명해질 것이다. 이하의 상세한 내용은 단지 설명을 위한 것이며 청구된 본 발명을 한정하는 것이 아니라는 것을 알아야 한다.
이하의 상세한 설명, 첨부된 청구범위와 도면들을 참조함으로써 특징들, 양태들 및 이점들이 보다 잘 이해될 것이고, 여기에서 구성요소들은 세부 사항을 보다 명료하게 보여주기 위해 축척에 따르는 것은 아니고 유사 참조 부호들은 몇몇 도면들에 걸쳐 유사 구성요소들을 지시한다.
도 1은 공식 검출 엔진을 포함하는 시스템을 도시한다.
도 2는 문서 처리기의 일 실시예에 대한 동작 플로우를 보여주는 블록도이다.
도 3은 공식 검출 방법의 일 실시예를 보여주는 흐름도이다.
도 4는 공식 검출 방법에 사용되는 초기 공식 영역들을 생성하기 위한 프로세스의 일 실시예를 보여주는 흐름도이다.
도 5a는 일련의 노멀 텍스트 안에 나타나는 여러 수학 공식들과 수식들을 포함하는 고정 포맷 문서로부터 분석된 데이터의 선택 부분에 적용되는 공식 시드들을 식별하는 예시적 동작을 그래픽으로 예시한다.
도 5b는 초기 공식 영역들을 생성하는 프로세스의 일 실시예로부터의 예시적 동작을 그래픽으로 예시한다.
도 6은 공식 검출 방법에 사용되는 공식 영역들과 노멀 텍스트 사이의 중복을 제거하기 위한 프로세스의 일 실시예를 보여주는 흐름도이다.
도 7a-7d는 공식 검출 방법의 일 실시예에 사용되는 공식 영역들과 노멀 텍스트 사이의 중복을 제거하는 프로세스의 일 실시예로부터 선택된 예시적 동작들을 그래픽으로 예시한다.
도 8은 공식 검출 방법에 사용되는 개별 공식들을 재구성하는 프로세스의 일 실시예를 보여주는 흐름도이다.
도 9a-9b는 공식 검출 방법에 사용되는 개별 공식들을 재구성하는 프로세스의 일 실시예로부터 선택된 예시적 동작들을 그래픽으로 예시한다.
도 10은 공식 검출 엔진의 일 실시예를 실행하는 예시적 태블릿 컴퓨팅 장치를 도시한다.
도 11은 공식 검출 엔진의 실시예들을 실시하기 적합한 예시적 컴퓨팅 장치의 간략화된 블록도이다.
도 12a는 공식 검출 엔진의 일 실시예를 실행하는 모바일 컴퓨팅 장치의 일 실시예를 도시한다.
도 12b는 공식 검출 엔진의 실시예들을 실시하기 적합한 예시적 모바일 컴퓨팅 장치의 간략화된 블록도이다.
도 13은 공식 검출 엔진의 실시예들을 실시하기 적합한 예시적 분산 컴퓨팅 장치의 간략화된 블록도이다.
고정 포맷 문서로부터 추출된 데이터 내 수학 공식들과 표현들을 식별하기 위한 공식 검출 엔진 및 관련 방법이 본 명세서에서 기술되며 첨부된 도면들에 예시된다. 공식 검출 엔진은 공식 시드를 식별함으로써 고정된 포맷 문서 부분 안에서 공식들을 찾아낸다. 공식 검출 엔진은 공식 영역을 정의하기 위해 공식 시드 주변의 경계를 생성 및 확장한다. 주변의 노멀 텍스트와의 중복을 제거하기 위해, 공식 영역은 캡처된 요소들 사이의 수평 공간 및 수직 위치에 기반하여 다수의 공식 영역들로 분할된다. 그에 따른 공식 영역들이 수직으로 정렬되고, 수평으로 중복된 공식 영역들이 병합되어 해당 공식을 유동 요소로서 재구성한다.
도 1은 공식 검출 엔진(100)을 포함하는 시스템의 일 실시예를 도시한다. 도시된 실시예에서, 공식 검출 엔진(100)은 컴퓨팅 장치(104) 상에서 실행되는 문서 변환기(102)의 일부로서 동작한다. 문서 변환기(102)는 파서(110), 문서 처리기(112) 및 직렬 변환기(114)를 이용하여 고정 포맷 문서(106)를 유동 포맷 문서(108)로 변환한다. 파서(110)는 고정 포맷 문서(106)로부터 데이터를 읽고 추출한다. 고정 포맷 문서로부터 추출된 데이터는 문서 처리기(112) 및 직렬 변환기(114)에 의해 액세스 가능한 데이터 저장부(116)에 기입된다. 문서 처리기(112)는 하나 이상의 검출 및/또는 재구성 엔진들(가령, 본 발명의 공식 검출 엔진(100))을 이용하여 데이터를 분석하고 유동 요소들로 변환한다 마지막으로, 직렬 변환기(114)가 그 유동 요소들을 유동 문서 포맷(가령, 워드 프로세싱 포맷)으로 작성한다.
도 2는 문서 처리기(112)의 동작 플로우에 대한 일 실시예를 보다 상세히 예시한다. 문서 처리기(112)는 선택적 광학 문자 인식(OCR) 엔진(202), 레이아웃 분석 엔진(204) 및 의미(semantic) 분석 엔진(206)을 포함한다. 데이터 저장부(116)에 포함된 데이터는 물리적 레이아웃 오브젝트들(208) 및 논리적 레이아웃 오브젝트들(210)을 포함한다. 일부 실시예들에서, 물리적 레이아웃 오브젝트들(208) 및 논리적 레아아웃 오브젝트들(210)은 그룹들(즉, 데이터 오브젝트들)의 트리 유형 어레이로 계층구조적으로 정렬된다. 다양한 실시예들에서 페이지는 물리적 레이아웃 오브젝트들(208)의 최상위 레벨 그룹이고, 섹션은 논리적 레이아웃 오브젝트들(210)의 최상위 레벨 그룹이다. 고정 포맷 문서(106)로부터 추출된 데이터는 일반적으로 고정 포맷 문서(106)에 포함한 페이지로 조직되는 물리적 레이아웃 오브젝트들(208)로서 저장된다. 기본적인 물리적 레이아웃 오브젝트들은 텍스트 런들, 이미지들 및 경로들을 포함한다. 텍스트 런들은 고정 포맷 문서를 디스플레이할 때 문자들이 그려지는 위치들을 특정하는 페이지 콘텐츠 스트림들 내 텍스트 요소들이다. 이미지들은 고정 포맷 문서(106)에 저장되는 래스터(raster) 이미지들(즉, 사진들)이다. 경로들은 벡터 그래픽을 구성하는데 사용되는 라인들, 곡선들(가령, 큐빅 베지어(cubic Bezier) 곡선들) 및 텍스트 아웃라인들과 같은 요소들을 서술한다. 논리적 데이터 오브젝트들은 섹션들, 파라미터들, 컬럼들, 및 테이블들과 같은 유동 요소들을 포함한다.
프로세싱이 시작되는 곳은 분석되는 고정 포맷 문서(106)의 타입에 따라 달라진다. 유동 포맷 소스 문서로부터 직접 생성된 네이티브 고정 포맷 문서(106a)는 기본적인 물리적 레이아웃 요소들의 일부나 전부를 포함한다. 일반적으로 데이터는 네이티브 고정 포맷 문서로부터 추출된다. 파서에 의해 내장(embedded) 데이터 구조들이 추출되며 문서 변화기에 의해 즉시 사용 가능하다; 다만 일부 예들에서, 데이터를 조직하거나 규격화하기 위해 사소한 재포맷팅이나 다른 사소한 프로세서가 적용된다. 이와 달리, 물리적 문서를 디지털 이미지화함(가령, 스캐닝이나 사진찍기)으로써 생성된 이미지 기반 고정 포맷 문서(106b) 안의 모든 정보는 추가 데이터 없이(즉, 텍스트 런들이나 경로들 없이) 일련의 페이지 이미지들로서 저장된다. 이 경우, 선택적 광학 문자 인식 엔진(202)이 각각의 페이지 이미지를 분석하여 대응하는 물리적 레이아웃 오브젝트들을 생성한다. 물리적 레이아웃 오브젝트들(208)이 이용 가능하면, 레이아웃 분석 엔진(204)이 고정 포맷 문서의 레이아웃을 분석한다. 레이아웃 분석이 완료된 후, 의미 분석 엔진(206)은 물리적 레이아웃 오브젝트들 및/또는 논리적 레이아웃 오브젝트들의 분석으로부터 얻어진 의미 정보를 이용하여 논리적 레이아웃 오브젝트들을 풍부하게 한다.
도 3은 공식 검출 엔진(100)에 의해 실행되는 공식 검출 방법(300)의 일 실시예를 보여주는 흐름도이다. 공식 검출 엔진(100)은 수학 공식의 잠정적 일부인 물리적 레이아웃 오브젝트들 내 요소들을 식별하고 그러한 요소들의 상대적 위치에 기반하여 그 요소들을 공식 영역들로 그룹화함으로써 초기 공식 영역들을 생성한다(302). 이어서, 공식 검출 엔진(100)은 노멀 텍스트에 겹치는 공식 영역들을 하위분할(subdividing)하고 수평 공백에 기반하여 공식 영역들을 쪼갬으로써 공식 영역들 및 어떤 주변의 노멀 텍스트(즉, 수학 공식의 일부가 아닌 텍스트 요소들) 사이의 중복을 제거한다(304). 마지막으로 공식 검출 엔진(100)은 근접성에 기반하여 어느 이웃하는 공식 영역들을 병합함으로써 수학 공식들을 유동(flowable) 요소들로서 재구성한다(306).
도 4는 공식 검출 방법(300)에 사용되는 초기 공식 영역들을 생성하는(302) 프로세스의 일 실시예를 보여주는 흐름도이다. 공식 검출 엔진(100)은 분석된 요소들에서 공식 시드들을 식별하는 것(402)으로 시작된다. 가장 일반적으로, 공식 시드는 공식의 일부가 되는 어떤 표시를 포함하는 텍스트 요소이다. 공식 시드들을 식별하기 위해, 공식 검출 엔진(100)은 비한정적으로 다음과 같은 것들 중 하나 이상을 검색한다: 수학 공식들에서 전용으로나 거의 전용으로 사용되는 수학 표현들 및 수학 연산자를 디스플레이하기 위해 전용으로나 거의 전용으로 사용되는 폰트들로 작성된 텍스트 런들, 심볼들, 또는 키워드들.
예를 들어 워드 프로세서가 마이크로소프트 사의 캠브리아 매쓰(Cambria Math)와 같은 수학 폰트를 사용하여 공식들을 나타낼 수 있는 반면, 문서 준비 시스템(가령, 라텍스(LaTeX)는 컴퓨터 모던(Computer Modern) 수학 폰트들과 같은 다수의 수학 폰트 패밀리들을 이용할 수 있다. 공식 검출 엔진(100)은 또한 수학 연산자들, 심블들 및 키워드들의 존재를 고려하여 공식 시드들을 식별하도록 하는데, 이는 일부 문서 처리기들은 수학을 위한 어떤 특별한 수학 폰트들을 사용하지 않기 때문이다. 공식 검출에 사용되는 수학 연산자들, 심볼들, 또는 키워드들의 예들로는
Figure 112014068819124-pct00001
와 같은 수학 연산자들 및 "π"와 같은 심볼들, 그리고 코사인 함수를 나타내는 "cos"와 같은 키워드들이 포함된다. 일반적으로, 공식 검출 엔진(100)은 보통 언어에서 의미를 가지지 않는 키워드들(가령, "tan")을 사용한다. 다양한 실시예들에서, 공식 시드들을 식별하는데 사용되는 폰트들은 비한정적인 것으로서 이하의 폰트들 중 일부나 전부를 포함한다: 캠브리아 매쓰, 컴퓨터 모던 매쓰 이탤릭(cmmi), 컴퓨터 모던 매쓰 볼드 이탤릭(cmmib), 컴퓨터 모던 매쓰 익스텐션(cmex), 컴퓨터 모던 매쓰 심볼들(cmsy), 컴퓨터 모던 볼드 매쓰 심볼들(cmbsy), 어메리칸 수학 협회 엑스트라 매쓰 심볼들-제1시리즈(masm), 어메리칸 수학 협회 엑스트라 매쓰 심볼들-제2시리즈(msbm), 컴퓨터 모던용 적분들의 확장 집합(esint), 매쓰타임 텍스(MathTime TeX) 매쓰 이탤릭(mtmi), 매쓰타임 텍스 매쓰 심볼들(mtsy), 매쓰타임 텍스 매쓰 익스텐션(mtex), 및 롤랜드 왈디(Roland Waldi's) 심볼들(wasy). 일부 실시예들에서 공식 시드들은 비한정적인 것으로서, #2200-#22FF(수학 연산자들), #27C0-#27EF(기타 수학 심볼들-A), #2980-#29FF(기타 수학 심볼들-B) 및 #2A00-#2AFF(보충적 수학 연산자들)의 범위들 내 유니코드 문자들이나 문자 집합들 중 일부나 전부를 공식 시드들로서 포함한다. 다양한 실시예들에서 공식 시드들은 비한정적인 것으로서, diet, sin, cos, tg, tan, ctg, ctan, sinh, cosh, tanh, ctanh, log, In, gcd, arcsin, arcos, arctan, sec, esc, max, min, inf, sup, lim, sgn, exp, mod, 및 var와 같은 텍스트 키워드들 중 일부나 전부를 포함한다.
공식 시드들이 식별되면, 공식 검출 엔진(100)은 검출된 공식 시드들 각각의 주위에 공식 영역(즉, 경계)를 정의한다(404). 이어서, 공식 검출 엔진(100)은 초기 공식 영역들을 생성하기 위해 공식 시드들 주위의 경계들을 확장한다(406). 일 실시예에서, 수학적 요소들의 특성들을 가지는 공식 시드 근처의 페이지 요소들 전체를 그러한 요소들이 남아 있지 않을 때까지 더한다. 페이지 요소가 공식 영역 안에 포함되어야 할지 말아야 할지 여부를 결정하기 위해, 공식 검출 엔진(100)은 페이지 요소를 잠정적 수학 공식 요소로서 식별하는 특성들을 찾는다. 다양한 실시예들에서, 공식 검출 엔진(100)은 비한정적인 것으로서, 공식 영역으로부터 페이지 요소까지의 유클리드 거리, 페이지 요소의 텍스트 폰트, 페이지 요소 내 수학 연산자들, 심볼들 및/또는 숫자 캐릭터들(즉, 디지트들)의 존재, 및 페이지 요소의 규모(즉, 그것이 표준 텍스트 요소들보다 크거나 넓은지)를 포함하는 특성들을 고려한다. 공식 영역의 경계 박스로 둘러싸인 페이지 요소들 전부가 캡처된 요소들이라고 간주된다.
도 5a는 공식 검출 엔진(100)에 의해 식별된 공식 시드들(502a-d)의 예들을 가진 고정 포맷 문서로부터 분석된 데이터(500)의 선택 부분을 그래픽으로 예시한다. 폰트(502a)로 식별되는 공식 시드들은 점선으로 된 직사각형으로 둘러싸여 있고, 수학적 연산자들(502b), 심볼들(502c), 및 키워드들(502d)에 의해 식별되는 공식 시드들은 실선의 타원형으로 둘러싸여 있다.
도 5b는 경계 박스로 경계지어지고 공식 검출 엔진(100)에 의해 생성된 공식 영역(504)을 그래픽으로 예시한다. 예시된 실시예에서, 그 결과는 하나 이상의 수학 공식들을 포함하는 직사각형들로 경계지어진 공식 영역이다. 수학 공식들이 서로 충분히 분리되어 있는 경우, 각각의 공식 영역은 하나의 수학 공식을 캡처할 것이다; 그러나, 다수의 수학 공식들이 가까이 근접해 있는 경우 별개의 수학 공식들은 하나의 공식 영역 안에서 캡처될 수 있다. 게다가, 둘 이상의 공식이 하나의 공식 영역 안에서 캡처될 때, 확장된 공식 영역은 주변 노멀 텍스트와 겹칠 수 있다. 도시된 실시예에서, 확장된 공식 영역은 다수의 수학 공식들(506)을 가지며 그 수학 공식들 주변의 노멀 텍스트(508)에 겹친다.
도 6은 공식 검출 방법(300)에 사용되는 공식 영역들 및 노멀 텍스트 사이의 중복을 제거하는(304) 프로세스의 일 실시예를 보여주는 흐름도이다. 공식 검출 엔진(100)은 공식 영역이 노멀 텍스트의 어떤 영역들에 겹치는지 겹치지 않는지 여부를 판단하기 위해 각각의 공식 영역을 분석하는 것(600)으로 시작한다. 공식 영역이 어떤 노멀 텍스트에 겹치는 경우, 공식 검출 엔진(100)은 캡처된 요소의 수직 위치에 기반하여 각각의 캡처된 요소를 그룹화(602)하는 것으로 이어진다. 캡처된 요소들의 각각의 새로운 그룹 주위로 새로운 공식 영역이 생성된다(604). 공식 검출 엔진(100)은 노멀 텍스트와의 중복에 대해 새로운 공식 영역들의 콘텐츠를 분석하며, 노멀 테스트를 포함하는 어느 새로운 공식 영역이 추가로 분할된다. 필요할 때 반복적으로 각각의 새로운 공식 영역을 분석, 분할 및 축소하는 것은 공식 검출 엔진(100)이 공식 영역이 텍스트의 다수 라인들에 겹치는 경우들을 처리할 수 있게 한다. 공식 영역들이 수직으로 그룹화되면, 공식 검출 엔진(100)은 갭처된 요소들 사이의 수평 공백에 따라 각각의 공식 영역을 분할(606)하는 것으로 이어진다.
도 7a-7d는 초기 공식 영역(504)에 적용되는 공식 검출 방법(300)에 사용된 공식 영역들 및 노멀 텍스트 사이의 중복을 제거하는(304) 하위 프로세스를 그래픽으로 예시한다. 도 7a는 수직 위치에 기반하여 초기 공식 영역(504)의 캡처된 요소들을 그룹화하는데 사용되는 두 개의 수평 분할기들(700a, 702a)에 의해 분할되는 초기 공식 영역(504)을 도시한다. 수평 라인들(700a, 702a)은 노멀 텍스트 라인의 높이에 대응한다. 제1수평 라인(700a)은 수학 공식을 포함하는 노멀 텍스트의 라인을 경계 짓는 박스의 상부 가장자리(즉, 경계)에 해당한다. 제2수평 라인(702a)은 수학 공식들을 포함하는 노멀 텍스트의 라인을 경계 짓는 박스의 하위 가장자리에 해당한다.
분할기들(700a, 702a)은 초기 공식 영역(504)을 노멀 텍스트의 라인 위, 같은 라인 및 라인 아래에 대응하는 상위 지역(704a), 중간 지역(706a) 및 하위 지역(708a)으로 분할한다. 일차 분할기들(700a, 702a) 중 하나가 캡처된 요소들을 가로지르면, 공식 검출 엔진(100)은 필요할 때, 가로지른 캡처된 요소들의 최상위 및 최하위 위치들 위와 아래의 이차 상위 수평 분할 라인(710a) 및 이차 하위 수평 분할 라인(712a)을 설정한다. 당업자는 일차 분할기들(700a, 702a)이 캡처된 어떤 요소들도 가로지르지 않는 경우 이차 분할기들(710a, 712a)이 설정될 필요가 없다는 것을 예상할 수 있을 것이다. 대안적으로, 이차 분할기들(710a, 712a)이 일차 분할기들(700a, 702a)과 동일 선상에 있을 수 있다.
공식 검출 엔진(100)에 의해 설정된 최상위 분할 라인(700a, 710a)의 온전한 위에 놓이는 캡처된 요소들만이 상위 지역(704a)에 대응하는 제1그룹에 배치된다. 도시된 실시예에서는 심볼들인 "n"과 "∞"만이 제1그룹안으로 들어온다. 마찬가지로, 공식 검출 엔진(100)에 의해 설정된 최하위 분할 라인(702a, 712a)의 온전한 아래에 놓이는 캡처된 요소들만이 하위 지역(708a)에 대응하는 제2그룹에 배치된다. 도시된 실시예에서는 항들인 "k=0"과 "n=1" 및 그 항들 아래 라인에 있는 텍스트, 수식 및 공식들이 제2그룹의 일부가 된다. 제1그룹이나 제2그룹 중 어느 하나에 들어오지 않는 캡처된 요소들 전부는 중간 지역(706a)에 대응하는 제3그룹에 배치된다. 즉, 제3그룹은 일차 분할기들(700a, 702a) 사이에 온전히 놓이거나, 일차 분할기들(700a, 702a) 중 하나나 둘 모두에 의해 가로질러지거나, 가로지른 캡처된 요소와 수직으로 겹치는 캡처된 요소들을 포함한다. 모든 빈 그룹들은 버려진다.
도 7b는 캡처된 요소들의 수직 위치에 기반하여 그룹들 주변에 새로운 공식 영역들을 생성(604)하는 동작을 예시한다. 세 개까지의 새로운 공식 영역들이 초기 공식 영역(504)으로부터 생성된다. 공식 검출 엔진(100)은 선택적인 것으로서, 각각의 새로운 공식 영역의 규모를 그 안에 캡처된 모든 공식 요소들을 둘러싸기 충분한 적당한 정도로 줄인다. 도시된 실시예에서, 초기 공식 영역(504)은 새 개의 새로운 공식 영역들(714, 716 및 716)로 하위 분할되었고, 초기 공식 영역(500)은 버려졌다. 새로운 공식 영역들(714, 716 및 718) 각각은 중복 식별 동작(600)의 대상이 된다. 도시된 실시예에서, 두 개의 최상위의 새로운 공식 영역들(714, 716)은 어떤 추가 수직 분할도 요하지 않는다. 세 번째 새로운 공식 영역(718)은 공식 영역들과 노멀 텍스트 사이에 수직 중복부분을 여전히 포함한다. 그에 따라 공식 검출 엔진(100)은 세 번째 새로운 공식 영역(718)에 대한 수직 위치 동작(602) 및 새로운 공식 영역 생성 동작(604)을 통한 그룹화를 반복한다. 하위 분할 라인(702b)은 합 연산자를 가로지르고, 상위 분할 라인(700b)은 제곱근 연산자 및 합 연산자 둘 모두를 가로지른다. 이차 상위 분할자(710b)가 가장 높게 가로지른 캡처된 요소(즉, 제곱근 연산자) 위에 설정된다. 앞에서와 같이 분할자들(700b, 702b)은 공식 영역(718)을 상위 지역(704b), 중간 지역(706b) 및 하위 지역(708b)으로 분할한다. 공식 검출 엔진(100)은 상술한 방식으로 공식 영역(718) 안에서 캡처된 요소들을 재그룹화한다.
도 7c는 중복 식별 동작(600), 수직 위치 동작(602)을 통한 그룹화, 및 새로운 공식 영역 생성 동작(604)의 반복적 적용의 최종 결과를 예시한다. 세 번째 새로운 공식 영역(718)이 두 개의 새로운 공식 영역들(724, 726)로 분할되었다. 첫 번째 공식 영역(724)은 공식 영역(718)의 상위 지역(704b)에 대응하고, 두 번째 공식 영역(726)은 공식 영역(718)의 중간 지역(706b)에 대응한다. 공식 영역(718)의 중간 지역(706b)에 대응하는 빈 그룹은 버려졌다. 남은 공식 영역들(724, 726) 중 어느 것도 어떠한 추가 수직 그룹화를 요하지 않는다.
도 7d는 캡처된 요소들 간 수평 공백에 기반하여 공식 영역들을 분할(606)하는 동작을 예시한다. 공식 검출 엔진(100)은 각각의 공식 영역을 수평으로 스캐닝하고 공식 영역 안에서 연속 캡처된 요소들 각각의 쌍 사이의 수평 거리를 판단하는 것으로 시작한다. 일부 실시예들에서 수평 스캐닝 방향은 문서 언어의 판독 방향에 해당한다. 다른 실시예들에서 수평 스캐닝 방향은 문서 언어와 무관하게 좌에서 우로나 우에서 좌가 된다. 공식 검출 엔진(100)은 새로운 공식 영역들을 생성하기 위해, 선택된 기준 거리보다 큰 수평 거리만큼 분리된 두 개의 연속 캡처된 요소들 사이의 공식 영역을 분할한다. 다양한 실시예들에서 연속 캡처된 요소들 간 수평 거리는 공백으로부터 결정된다. 도 7d에 도시된 점선의 파선들(730)은 수평적 분리가 상기 선택된 기준을 초과하는 곳을 나타낸다. 일부 실시예들에서는 하나의 기준치가 사용된다. 다른 실시예들에서는 주변 텍스트에 따라 기준치가 가변된다.
도 8은 공식 방스들을 그룹화함으로써 개별 공식들을 재구성(306)하는 하위 프로세스의 일 실시예를 보여주는 흐름도이다. 공식 검출 엔진(100)은 각각의 공식 영역의 좌측 및 우측에 나타나는 노멀 텍스트 요소들을 위치확인(800)하는 것으로 시작된다. 공식 검출 엔진(100)은 어느 페이지 상의 서로 다른 라인들에 나타나는 공식 영역들의 병합을 방지하기 위해 상기 이웃하는 텍스트 요소들의 위치들에 대한 정보를 이용한다. 공식 검출 엔진(100)은 그런 다음, 이용 가능한 공식 영역들로부터 병합 후보들의 집합들을 생성한다. 수평으로 중복되고(즉, 적어도 부분적으로 수직으로 정렬되고) 선택된 수직 분리 거리 안에 있는 공식 영역들은 병합 후보들로서 그룹화된다(802). 공식 검출 엔진은 공식 영역들 간 수직 거리에 따라 병합 후보들을 정렬(가령, 소팅)한다(804). 일부 실시예들에서 병합 후보들은 오름 차순으로 소팅된다. 다른 실시예들에서 병합 후보들은 내림 차순으로 소팅된다. 소팅된 병합 후보들에 대해 처음부터 마지막까지 작업하면서, 공식 검출 엔진(100)은 병합 후보들을 구성하는 두 개의 공식 영역들을, 그 두 공식 영역들이 이미 하나의 공식 영역으로 병합되어 있지 않으며 그들의 수직 위치들이 개별 라인들의 수직 위치들과 관련이 없다면, 새로운 공식 영역으로 대체한다(806). 일부 실시예들에서 공식 영역들이 페이지 상에서 동일한 라인 상에 있는지 그렇지 않은지 여부가 각각의 공식 영역의 우측 및/또는 좌측에 있는 노멀 텍스트로부터 판단된다. 각각의 공식 영역의 우측이나 좌측에 있는 노멀 텍스트가 동일하면, 공식 영역들은 해당 페이지 상의 동일 라인 안에 위치되는 것으로 판단된다. 반대로, 공식 영역들의 우측이나 좌측에 있는 노멀 텍스트의 차이는 해당 공식 영역들이 해당 페이지 상의 다른 라인들 상에 위치함을 가리킨다. 병합된 공식 영역의 경계는 병합 후보를 구성하는 두 개의 공식 영역들의 최대 정도들로 규정된다. 즉, 새로운 공식 영역은 병합 후보들의 상하좌우 경계들로부터 최상위, 최하위, 최좌측 및 최우측 경계를 선택함으로써 규정된다.
도 9a 및 9b는 텍스트 런(500)에 적용되는 개별 공식들을 재구성하는(306) 하위 프로세스로부터 선택된 동작들을 그래픽으로 예시한다. 도 9a는 병합 후보들로 그룹화된 선택된 공식 영역들을 도시한다. 제1병합 후보 그룹(900a)은 공식 영역들(914a, 916a, 및 924a)을 포함한다. 제2병합 후보 그룹(900b)은 공식 영역들(914b, 916b, 및 924b)을 포함한다. 공식 영역들(924a 및 924b)은 각기 공식 영역들(926a 및 926b)와의 병합 후보들이 아닌데, 그 이유는 수직 분리 거리가 선택된 기준치를 초과하기 때문이다. 또한, 공식 영역들(926a 및 926b)은 좌우측에 있는 노멀 텍스트가 그들 간에 서로 상이하기 때문에(즉, 공식 영역들이 해당 페이지 상의 서로 다른 라인들 상에 있으므로) 병합 그룹들(900a 및 900b)과 병합되지 않는다. 도 9b는 네 개의 공식들(902a-d) 각각이 서로 서로 그리고 주변의 노멀 텍스트로부터 적절히 떨어진 최종 해법을 도시한다.
본 명세서에 사용된 바와 같이, "영역", "경계", "박스"라는 용어들은 서로 혼용하여 사용된다. 마찬가지로 "라인" 및 "분할자"라는 용어들도 혼용하여 사용된다. 당업자는 본 명세서에 기술된 경계들 및 분할자들이 공식 검출 방법 중에 시각적으로 표현 및/또는 디스플레이되지 않아도 된다는 것을 알아야 한다. 또한 경계들과 분할자들이 박스들이나 라인들에 국한하는 것은 아니다. 경계들 및 분할자들은 본 발명의 범위 및 사상으로부터 벗어나지 않은 채 다른 형상들(가령, 곡선들)을 취할 수 있다. 또한, 경계들 및 분할자들이 단순히 좌표들이나 기타 참조 체계들을 이용할 수 있다. 형상들(가령, 직사각형, 박스, 라인, 및 타원)을 암시하는 용어들은 한정하는 것으로 해석되어서는 안될 것이며, 명세서가 확실하게 다른 것을 나타내는 것이 아니라면 적절할 경우 어떠한 적합한 경계나 분할자든지 포괄하는 것으로 넓게 파악되어야 할 것이다.
본 명세서에 기술된 공식 검출 엔진 및 관련 공식 검출 방법은 고정 포맷 문서에 나타나는 각각의 명백한 수학 공식을 식별하고 식별된 각각의 수학 공식을 유동 포맷 요소로 변환하는데 유용하다. 다양한 실시예들에서 공식 검출 엔진의 출력은 직렬변환되기 전에 문서 처리기 안에서 추가 포맷팅 엔진들에 의해 추가 처리된다.
본 발명은 퍼스널 컴퓨터 상의 운영체계 상에서 실행되는 애플리케이션 프로그램과 연계하여 실행되는 프로그램 모듈들의 일반적 맥락에서 기술될 것이지만, 당업자는 본 발명이 다른 프로그램 모듈들과의 조합으로도 구현될 수 있다는 것을 인지할 것이다. 일반적으로 프로그램 모듈은 특정 작업을 수행하거나 특정한 추상적 데이터 유형들을 구현하는 루틴, 프로그램, 컴포넌트, 데이터 구조, 및 다른 타입의 구조들을 포함한다.
본 명세서에 기술된 실시예들과 기능들은 비한정적으로 데스크탑 컴퓨터 시스템, 유무선 컴퓨팅 시스템, 모바일 컴퓨팅 시스템(가령, 모바일 전화, 넷북, 태블릿 또는 슬레이트 타입 컴퓨터, 노트북 컴퓨터, 및 랩탑 컴퓨터), 핸드헬드 장치, 멀티프로세서 시스템, 마이크로프로세서 기반 또는 프로그래머블 소비가전 기기, 미니컴퓨터, 및 메인프레임 컴퓨터를 포함하는 다수의 컴퓨팅 시스템들을 통해 동작할 수 있다. 도 10은 공식 검출 엔진(100)의 일 실시예를 실행하는 예시적 태블릿 컴퓨팅 장치(1000)를 도시한다. 또한, 본 발명에 기술된 실시예들 및 기능들은 분산 시스템들(가령, 클라우드 기반 컴퓨팅 시스템들)을 통해 동작될 수 있으며, 이때 애플리케이션 기능, 메모리, 데이터 저장 및 검색, 그리고 다양한 프로세싱 기능들이 인터넷이나 인트라넷과 같은 분산 컴퓨팅 네트워크를 통해 서로로부터 원격으로 동작될 수 있다. 다양한 타입의 사용자 인터페이스들과 정보가 온보드 컴퓨팅 장치 디스플레이들이나, 하나 이상의 컴퓨팅 장치들과 관련된 원격 디스플레이 유닛들을 통해 디스플레이될 수 있다. 예를 들어 다양한 종류의 사용자 인터페이스들 및 정보가 다양한 타입의 사용자 인터페이스들과 정보가 투사되는 벽면 상에 디스플레이되고 상호동작(인터랙션)하게 될 수 있다. 본 발명의 실시예들이 실시될 수 있는 다수의 컴퓨팅 시스템들과의 상호동작은 키스트로크 입력, 터치 스크린 입력, 음성 또는 다른 청각적 입력, 관련 컴퓨팅 장치가 컴퓨팅 장치의 기능을 제어하기 위해 사용자 제스처들을 캡처하고 해석하는 검출(가령, 카메라) 기능이 구비된 경우 제스처 입력 등을 포함한다. 도 11 내지 13과 관련 설명은 본 발명의 실시예들이 실시될 수 있는 다양한 동작 환경들에 대한 논의를 제공한다. 그러나 도 11내지 13과 관련하여 예시되고 논의된 장치들 및 시스템들은 예를 들기 위한 목적의 것으로, 본 명세서에 기술된 본 발명의 실시예들을 실시하기 위해 사용될 수 있는 수많은 컴퓨팅 장치 구성들을 한정하는 것이 아니다.
도 11은 본 발명의 실시예들이 실시될 수 있는 컴퓨팅 장치(1100)의 물리적 구성요소들(즉, 하드웨어)을 예시한 블록도이다. 이하에 기술되는 컴퓨팅 장치 구성요소들은 상술한 컴퓨팅 장치들에 적합할 수 있다. 구본 구성에 있어서, 컴퓨팅 장치(1100)는 적어도 한 개의 프로세싱 유닛(1102) 및 시스템 메모리(1104)를 포함할 수 있다. 컴퓨팅 장치의 구성 및 종류에 따라, 시스템 메모리(1104)는 비한정적인 것으로서, 휘발성 저장부(가령, 랜덤 액세스 메모리), 비휘발성 저장부(가령, 리드-온리 메모리), 플래시 메모리, 또는 그러한 메모리들의 어떤 조합을 포함할 수 있다. 시스템 메모리(1104)는 운영체제(1105), 및 공식 검출 엔진(100), 파서(110), 문서 변환기(112) 및 직렬변화기(114)와 같은 소프트웨어 애플리케이션들(1120)을 실행하기 적합한 하나 이상의 프로그램 모듈들(1106)을 포함할 수 있다. 예를 들어 운영체제(1105)는 컴퓨팅 장치(1100)의 동작을 제어하기 적합할 수 있다. 또한 본 발명의 실시예들은 그래픽 라이브러리, 다른 운영체제들, 또는 어떤 다른 애플리케이션 프로그램과 연계하여 실시될 수 있으나 어떤 특정한 애플리케이션이나 시스템에 국한되지 않는다. 이러한 기본 구성이 도 11에서 점선 안(1108)의 구성요소들로써 예시된다. 컴퓨팅 장치(1100)는 추가 구성 또는 기능을 가질 수 있다. 예를 들어 컴퓨팅 장치(1100)는 가령 마그네틱 디스크, 광 디스크, 또는 테이프와 같은 추가 데이터 저장 소자들(착탈형 및/또는 비착탈형)을 포함할 수도 있다. 그러한 추가 저장부는 도 11에서 착탈형 저장 장치(1109) 및 비착탈형 저장 장치(1110)로써 예시된다.
상술한 바와 같이, 다수의 프로그램 모듈들과 데이터 파일들이 시스템 메모리(1104) 안에 저장될 수 있다. 프로세싱 유닛(1102) 상에 실행되는 동안, 공식 검출 엔진(100), 파서(110), 문서 프로세서(112), 및 직렬 변환기(114)와 같은 프로그램 모듈들(1106)은 예컨대 공식 검출 방법(300)의 단계들 중 하나 이상을 포함하는 프로세스들을 수행할 수 있다. 상술한 프로세스는 예이며, 프로세싱 유닛(1102)은 다른 프로세스들을 수행할 수 있다. 본 발명의 실시예들에 따라 사용될 수 있는 다른 프로그램 모듈들은 전자 메일 및 연락처 애플리케이션, 워드 프로세싱 애플리케이션, 스프레드시트 애플리케이션, 데이터베이스 애플리케이션, 슬라이드 프레젠테이션 애플리케이션, 그리기나 컴퓨터 지원 애플리케이션 프로그램 등을 포함할 수 있다.
또한, 본 발명의 실시예들은 낱개의 전자 소자들, 로직 게이트들을 포함하는 패키지형 또는 일체형 전자 칩들을 포함하는 전자 회로, 마이크로프로세서를 활용하는 회로, 또는 전자 소자들이나 마이크로프로세서들을 포함하는 단일 칩 상에서 실시될 수 있다. 예를 들어 본 발명의 실시예들은 도 11에 도시된 구성요소들 각각이나 다수가 단일 집적 회로 상에 집적될 수 있는 온칩 시스템(system-on-a-chip:SOC)을 통해 실시될 수 있다. 그러한 SOC 소자는 전체가 칩 기판 상에 하나의 집적 회로로서 집적(또는 "버닝되는(burned)"), 하나 이상의 프로세싱 유닛, 그래픽 유닛, 통신 유닛, 시스템 가상화 유닛 및 다양한 애플리케이션 기능을 포함할 수 있다. SOC를 통해 동작할 때, 공식 검출 엔진(100), 파서(110), 문서 처리기(112) 및 직렬 변환기(114)와 관련하여 본 명세서에 기술된 기능은 단일 집적 회로(칩) 상의 컴퓨팅 장치(100)의 다른 구성요소들과 함께 집적된 애플리케이션 고유 로직을 통해 동작될 수 있다. 본 발명의 실시예들은 또한, 예컨대 비한정적으로 기계적, 광학적, 유체적 및 양자적 기술들을 포함하는 AND, OR 및 NOT과 같은 논리적 연산들을 수행할 수 있는 다른 기술들을 이용하여 실시될 수도 있다. 또한, 본 발명의 실시예들은 범용 컴퓨터나 어떤 다른 회로들이나 시스템들 내에서 실시될 수 있다.
컴퓨팅 장치(1100)는 또한, 키보드, 마우스, 펜, 사운드 입력 장치, 터치 입력 장치 등과 같은 하나 이상의 입력 장치(들)(1112)을 가질 수도 있다. 디스플레이, 스피커, 프린터 등과 같은 출력 장치(들)(1114) 역시 포함될 수 있다. 상술한 장치들은 예들이며 다른 것들이 사용될 수도 있다. 컴퓨팅 장치(1100)는 다른 컴퓨팅 장치들(1118)과의 통신을 허용하는 하나 이상의 통신 연결부들(1116)을 포함할 수 있다. 적절한 통신 연결부들(1116)의 예들로는 비한정적인 것으로서, RF 송신기, 수신기 및/또는 송수신기 회로; USB(universal serial bus), 병렬 또는 직렬 포트들, 및 적용가능한 컴퓨터 판독가능 매체를 이용하여 사용하기 적합한 다른 연결부들을 포함한다.
본 발명의 실시예들은 예컨대, 컴퓨터 프로세스(방법), 컴퓨팅 시스템, 또는 컴퓨터 프로그램 제품이나 컴퓨터 판독가능 매체와 같은 제조품으로서 구현될 수 있다. 컴퓨터 프로그램 제품은 컴퓨터 시스템에 의해 판독가능하고 컴퓨터 프로세스를 실행하게 하는 명령어들의 컴퓨터 프로그램을 인코딩한 컴퓨터 저장 매체일 수 있다.
본 명세서에서 사용된 컴퓨터 판독가능 매체라는 용어는 컴퓨터 저장 매체 및 통신 매체를 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈이나 기타 데이터 같은 정보의 저장을 위해 어떤 방법 또는 기술로 구현된 휘발성 및 비휘발성, 착탈형 및 비착탈형 매체를 포함한다. 시스템 메모리(1104), 착탈형 저장 장치(1109) 및 비착탈형 저장 장치(1110)는 모두 컴퓨터 저장 매체의 예들(즉, 메모리 저장부)이다. 컴퓨터 저장 매체는 RAM, ROM, EEPROM(electrically erasable read-only memory), 플래시 메모리 또는 다른 메모리 기술, CD-ROM, DVD(digital versatile disks) 또는 다른 광학적 저장부, 마그네틱 카세트, 마그네틱 테이프, 마그네틱 디스크 저장부 또는 다른 마그네틱 저장기, 또는 원하는 정보를 저장하는데 사용될 수 있고 컴퓨터 장치(1100)에 의해 액세스될 수 있는 어떤 다른 매체를 포함하나, 그에 국한되지 않는다. 그러한 어떤 컴퓨터 저장 매체는 컴퓨팅 장치(1100)의 일부일 수 있다.
통신 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 반송파나 다른 전송 메커니즘 같은 변조된 데이터 신호 속의 다른 데이터를 통해 구현될 수 있으며, 어떤 정보 전달 매체라도 포함한다. "변조된 데이터 신호"라는 용어는 신호 안에 정보를 인코딩하기 위한 방식으로 세팅되거나 변경되는 신호의 특성들 중 한 개 이상을 가지는 신호를 기술할 수 있다. 한정하는 것이 아닌 예로서, 통신 매체는 유선 네트워크나 직접 유선 연결 같은 유선 매체, 및 청각, RF(radio frequency), 적외선 및 다른 무선 매체 같은 무선 매체를 포함할 수 있다.
도 12a 및 12b는 모바일 컴퓨팅 장치(1200), 예컨대, 본 발명의 실시예들이 실시될 수 있는 모바일 전화, 스마트 폰, 테블릿 퍼스널 컴퓨터, 랩탑 컴퓨터 등을 예시한다. 도 12a를 참조할 때, 실시예들을 구현하기 위한 예시적 모바일 컴퓨팅 장치(1200)가 예시된다. 기본적인 구성에서, 모바일 컴퓨팅 장치(1200)는 입력 요소들과 출력 요소들 모두를 가지는 핸드헬드 컴퓨터이다. 모바일 컴퓨팅 장치(1200)는 통상적으로, 디스플레이(1205) 및 사용자가 모바일 컴퓨팅 장치(1200)에 정보를 입력할 수 있게 하는 하나 이상의 입력 버튼들(1210)을 포함한다. 모바일 컴퓨팅 장치(1200)의 디스플레이(1205)는 또한 입력 장치(가령, 터치 스크린 디스플레이)로서 기능할 수도 있다. 옵션인 사이드 입력 요소(1215)는 포함된 경우 추가적 사용자 입력을 가능하게 한다. 사이드 입력 요소(1215)는 로터리 스위치, 버튼, 또는 다른 유형의 수동 입력 요소일 수 있다. 다른 대안적 실시예들에서, 모바일 컴퓨팅 장치(1200)는 더 많거나 더 적은 입력 요소들을 포함할 수 있다. 예를 들어 디스플레이(1205)는 일부 실시예들에서 터치 스크린일 수 있다. 또 다른 대안적 실시예에서, 모바일 컴퓨팅 장치(1200)는 셀룰라 폰과 같은 휴대형 전화 시스템이다. 모바일 컴퓨팅 장치(1200)는 키패드(1235) 옵션을 포함할 수도 있다. 키패드(1235) 옵션은 물리적 키패드이거나 터치 스크린 디스플레이 상에 생성된 "소프트" 키패드일 수 있다. 다양한 실시예들에서, 출력 요소들은 그래픽 유저 인터페이스(GUI)를 보여주기 위한 디스플레이(1205), 시각적 지시자(1220)(가령, 발광 다이오드) 및/또는 오디오 트랜스듀서(1225)(가령, 스피커)를 포함한다. 일부 실시예들에서 모바일 컴퓨팅 장치(1200)는 사용자에게 촉각적 피드백을 제공하기 위한 진동 트랜스듀서를 포함한다. 또 다른 실시예에서 모바일 컴퓨팅 장치(1200)는 신호를 외부장치로 전송하거나 그로부터 신호를 수신하기 위해, 오디오 입력(가령, 마이크 잭), 오디오 출력(가령, 헤드폰 잭) 및 비디오 출력(가령, HDMI 포트)와 같은 입력 및/또는 출력 포트들을 포함한다.
도 12b는 모바일 컴퓨팅 장치의 일 실시예의 구조를 예시한 블록도이다. 즉, 모바일 컴퓨팅 장치(1200)는 일부 실시예들을 구현하기 위한 시스템(즉, 아키텍처)을 포함할 수 있다. 일 실시예에서, 시스템(1202)은 하나 이상의 애플리케이션들(가령, 브라우저, 이메일, 일정관리, 연락 관리자, 메시징 클라이언트, 게임, 및 미디어 클라이언트/플레이어)을 실행할 수 있는 "스마트 폰"으로서 구현된다. 일부 실시예들에서 시스템(1202)은 DA(personal digital assistant) 및 무선 전화가 통합된 것과 같은 컴퓨팅 장치로서 집적된다.
하나 이상의 애플리케이션 프로그램들(1266)이 메모리(1262) 안에 로딩되고 운영체제(1264) 상에서 혹은 그와 관련하여 실행될 수 있다. 애플리케이션 프로그램들의 예들은 전화 다이알 프로그램, 이메일 프로그램, 퍼스널 정보 관리(PIM) 프로그램, 워드 프로세싱 프로그램, 스프레드시트 프로그램, 인터넷 브라우저 프로그램, 메시징 프로그램 등을 포함한다. 시스템(1202)은 또한 메모리(1262) 안에 비휘발성 저장 영역(1268)을 포함한다. 비휘발성 저장 영역(1268)은 시스템(1202)의 전원이 끊어지면 손실될 수 있는 지속적 정보를 저장하는데 사용될 수 있다. 애플리케이션 프로그램들(1266)은 이메일이나 이메일 애플리케이션 등에 의해 사용된 다른 메시지들과 같은 비휘발성 저장 영역(1268) 내 정보를 이용 및 저장할 수 있다. 동기 애플리케이션(미도시)은 또한 시스템(1202) 상에 상주하며, 호스트 컴퓨터에 저장된 대응 정보와 동기된 비휘발성 저장 영역(1268)에 저장된 정보를 보유하기 위해 호스트 컴퓨터 상에 상주하는 대응하는 동기 애플리케이션과 상호동작하도록 프로그래밍된다. 예상할 수 있다시피, 다른 애플리케이션들이 메모리(1262) 안에 로딩되어 본 명세서에 기술된 공식 검출 엔진(100), 파서(110), 문서 처리기(112) 및 모바일 컴퓨팅 장치(1200) 상에서 실행될 수 있다.
시스템(1202)은 하나 이상의 배터리들로서 구현될 수 있는 전력 공급기(1270)을 가진다. 전력 공급기(1270)는 배터리들을 보충하거나 충전하는 AC 어댑터나 전력 도킹 크래들과 같은 외부 전력 소스를 더 포함할 수도 있을 것이다.
시스템(1202)은 무선 주파수 통신을 송수신하는 기능을 수행하는 무선기(1272)를 또한 포함할 수 있다. 무선기(1272)는 통신 캐리어나 서비스 제공자를 통해 시스템(1202) 및 "외부 세계" 사이의 무선 연결을 용이하게 한다. 무선기(1272)로/로부터의 전송이 운영체제(1264)의 제어 하에서 수행된다. 즉, 무선기(1272)에 의해 수신된 통신들이 운영체제(1264)를 통해 애플리케이션 프로그램들(1266)로 유포될 수 있고 그 반대의 경우도 성립될 수 있다.
무선기(1272)는 시스템(1202)이 네트워크 등을 통해 다른 컴퓨팅 장치들과 통신할 수 있게 한다. 무선기(1272)는 통신 매체의 한 예이다. 통신 매체는 통상적으로, 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 반송파나 다른 전송 메커니즘 같은 변조된 데이터 신호 속의 다른 데이터를 통해 구현될 수 있으며, 어떤 정보 전달 매체라도 포함한다. "변조된 데이터 신호"라는 용어는 신호 안에 정보를 인코딩하기 위한 방식으로 세팅되거나 변경되는 신호의 특성들 중 한 개 이상을 가지는 신호를 의미한다. 한정하는 것이 아닌 예로서, 통신 매체는 유선 네트워크나 직접 유선 연결 같은 유선 매체, 및 청각, RF, 적외선 및 다른 무선 매체 같은 무선 매체를 포함한다. 본 명세서에서 사용된 컴퓨터 판독가능 매체라는 용어는 저장 매체 및 통신 매체 모두를 포함할 수 있다.
시스템(1202)의 이러한 실시예는 시각적 통지를 제공하는데 사용될 수 있는 시각적 지시자(1220) 및/또는 오디오 트랜스듀서(1225)를 통해 청각적 통지를 생성하는 오디오 인터페이스(1274)를 이용하여 통지를 제공한다. 도시된 실시예에서 시각적 지시자(1220)는 발광 다이오드(LED)이고 오디오 트랜스듀서(1225)는 스피커이다. 이러한 장치들은 활성화될 때, 프로세서(126) 및 다른 구성요소들이 배터리 전력 보존을 위해 셧다운될 수 있다고 하더라도 이 장치들은 통지 메커니즘에 의해 지시된 지속기간 동안 유지되도록 전력 공급기(1270)와 직접 연결될 수 있다. LED는 사용자가 장치의 전력 상태를 나타내기 위한 액션을 취할 때까지 무기한 온 상태를 유지하도록 프로그래밍될 수 있다. 오디오 인터페이스(1274)는 청각 신호들을 사용자에게 제공하고 사용자로부터 수신하기 위해 사용된다. 예를 들어 오디오 트랜스듀서(1225)와 결합되는 것 외에, 오디오 인터페이스(1274)는 전화 통화를 용이하게 하는 것과 같이, 오디오 입력을 수신할 마이크에 연결될 수도 있다. 본 발명의 실시예들에 따르면, 마이크는 이하에 기술되는 바와 같이, 통지에 대한 제어를 용이하게 하기 위한 오디오 센서로서도 기능할 수 있다. 시스템(1202)은 온보드 카메라(1230)의 동작이 정지 영상, 비디오 스트림 등을 레코딩할 수 있게 하는 비디오 인터페이스(1276)를 더 포함할 수 있다.
시스템(1202)을 구현하는 모바일 컴퓨팅 장치(1200)는 추가적 특성들이나 기능을 가질 수 있다. 예를 들어 모바일 컴퓨팅 장치(1200)는 마그네틱 디스크, 광 디스크, 또는 테이프와 같은 추가 데이터 저장 소자들(착탈형 및/또는 비착탈형)을 포함할 수도 있다. 그러한 추가 저장부가 도 12b에서 비착탈형 저장 영역(1268)으로 도시된다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈이나 기타 데이터 같은 정보의 저장을 위해 어떤 방법 또는 기술로 구현된 휘발성 및 비휘발성, 착탈형 및 비착탈형 매체를 포함한다.
모바일 컴퓨팅 장치(1200)에 의해 생성되거나 캡처되고 시스템(1202)을 통해 저장되는 데이터/정보는 상술한 바와 같이 모바일 컴퓨팅 장치(1200) 상에 국지적으로 저장될 수 있거나, 데이터가 무선기(1272)를 통하거나 모바일 컴퓨팅 장치(1200) 및 모바일 컴퓨팅 장치(1200)와 관련된 다른 컴퓨팅 장치, 예컨대 인터넷과 같은 분산 컴퓨팅 네트워크 상의 서버 컴퓨터 사이의 유선 연결을 통해 장치에 의해 액세스될 수 있는 임의 개의 저장 매체 상에 저장될 수 있다. 예상할 수 있는 바와 같이, 그러한 데이터/정보는 무선기(1272)를 통하거나 분산 컴퓨팅 네트워크를 통해 모바일 컴퓨팅 장치(1200)를 거쳐 액세스될 수 있다. 마찬가지로 그러한 데이터/정보는 전자 메일 및 협력 데이터/정보 공유 시스템들을 포함하는 잘 알려진 데이터/정보 전송 및 저장 수단에 따라 저장 및 사용하기 위해 컴퓨팅 장치들 사이에서 용이하게 전송될 수 있다.
도 13은 상술한 바와 같이 공식 검출 엔진(100), 파서(110), 문서 프로세서(112) 및 직렬 변환기(114)를 하나 이상의 클라이언트 장치들에게 제공하기 위한 시스템 아키텍처의 일 실시예를 도시한다. 공식 검출 엔진(100), 파서(110), 문서 프로세서(112) 및 직렬 변환기(114)와 관련하여 개발되거나 상호동작되거나 편집된 콘텐츠가 사로 다른 통신 채널들이나 다른 저장 타입들 안에 저장될 수 있다. 예를 들어 디렉토리 서비스(1322), 웹 포털(1324), 메일박스 서비스(1326), 인스턴트 메시징 저장부(1328) 또는 소셜 네트워킹 사이트(1330)를 이용하여 다양한 문서들이 저장될 수 있다. 공식 검출 엔진(100), 파서(110), 문서 프로세서(112) 및 직렬 변환기(114)는 본 명세서에 기술된 바와 같이 데이터 이용을 가능하게 하기 위해 그러한 종류의 시스템들이나 그와 같은 것들 중 어느 하나를 이용할 수 있다. 서버(1320)는 공식 검출 엔진(100), 파서(110), 문서 프로세서(112) 및 직렬 변환기(114)를 클라이언트들에게 제공할 수 있다. 일례로서, 서버(1320)는 웹을 통해 공식 검출 엔진(100), 파서(110), 문서 프로세서(112) 및 직렬 변환기(114)를 제공하는 웹 서버일 수 있다. 서버(1320)는 공식 검출 엔진(100), 파서(110), 문서 프로세서(112) 및 직렬 변환기(114)를 웹 상으로 네트워크(1315)를 통해 클라이언트들에게 제공할 수 있다. 예로서, 클라이언트 컴퓨팅 장치(1318)는 컴퓨팅 장치(1100)로서 구현되고 퍼스널 컴퓨터(1318a), 태블릿 컴퓨팅 장치(1318b) 및/또는 모바일 컴퓨팅 장치(1318c)(가령, 스마트 폰)에서 실시될 수 있다. 클라이언트 컴퓨팅 장치(1318)의 이러한 실시예들 중 어느 하나는 저장부(1316)로부터 콘텐츠를 얻을 수 있다.
본 발명의 실시예들은 예컨대, 위에서 본 발명의 실시예들에 따른 블록도들 및/또는 방법들의 동작 예들, 시스템들, 및 컴퓨터 프로그램 제품들을 참조하여 설명된다. 블록들 안에 언급된 기능들/행위들은 어떤 흐름도에 도시된 바와 같은 순서를 벗어나 발생할 수 있다. 예를 들어 관련된 기능/행위들에 따라, 연속으로 보여진 두 개의 블록들이 사실상 실질적으로 동시발생적으로 실행되거나, 블록들이 종종 반대의 순서로 실행될 수 있다.
본 발명의 특정 실시예들이 기술되었으나 다른 실시예들이 존재할 수도 있다. 또한 본 발명의 실시예들은 메모리 및 기타 저장 매체들에 저장된 데이터와 관련되는 것으로 기술되었으나, 데이터가 하드 디스크, 플로피 디스크 또는 CD-ROM, 인터넷으로부터의 반송파나 다른 형식의 RAM이나 ROM 같은 이차 저장 장치들과 같은 다른 타입의 컴퓨터 판독가능 매체 상에 저장 또는 그로부터 읽혀질 수 있다. 또한, 개시된 방법들의 단계들은 본 발명에서 벗어나지 않으면서 단계들을 재정렬하고/하거나 단계들을 삽입 또는 삭제하는 것을 포함하는 어떤 방식으로 변형될 수 있다.
다양한 실시예들에서, 본 발명을 이루는 컴퓨팅 장치들 간의 통신에 사용되는 네트워크들의 타입에는 인터넷, 인트라넷, WLAN(wide area network), LAN(local area network) 그리고 버추얼 사설 네트워크(VPN)가 포함되지만 그에 국한되지 않는다. 본 출원에서 네트워크들은 회사 네트워크, 및 클라이언트 컴퓨팅 장치가 회사 네트워크에 액세스하게 하는 네트워크(즉, 클라이언트 네트워크)를 포함한다. 일 실시예에서 클라이언트 네트워크는 회사 네트워크의 일부이다. 다른 실시예에서 클라이언트 네트워크는 게이트웨이, 원격 액세스 프로토콜, 또는 공공 혹은 사설 인터넷 어드레스와 같이 외부적으로 이용 가능한 입력 포인트들을 통해 회사 네트워크를 액세스하는 별도의 네트워크이다.
이 출원에서 제공된 하나 이상의 실시예들에 대한 설명과 예시는 청구 발명의 범위를 어떤 방식으로든 제한 또는 한정하도록 의도된 것이 아니다. 본 출원에 제공되는 실시예들, 예들 및 세부사항들은 소유권을 전달하고 다른 사람이 청구 발명의 최상의 모드를 제작하고 이용할 수 있기에 충분하다고 간주된다. 청구 발명은 본 출원에 제공된 어떤 실시예, 예, 또는 세부사항에 국한되는 것으로 해석되지 않아야 한다. 조합이나 개별적으로 도시되고 기술되는지 여부와 무관하게, 다양한 특성들(구조적이고 방법론적인 특성들 모두)은 특정한 특성들의 집합을 가진 일 실시예를 도출하기 위해 선택적으로 포함되거나 생략되도록 의도된다. 본 출원의 설명 및 예시가 제공되었으므로, 당업자는 청구 발명의 보다 넓은 양태의 사상 및 본 출원에 구현된 일반적인 발명 개념에 속하고 보다 넓은 범위에서 벗어나지 않는 변경, 수정 및 대안 실시예들을 생각할 수 있을 것이다.

Claims (20)

  1. 고정 포맷 문서(fixed format document)로부터 분석된 데이터에 포함된 수학 공식을 식별하고 상기 수학 공식이 유동 포맷 요소로 변환될 수 있게 하는 공식 검출 방법(a formula detection method)으로서,
    고정 포맷 문서로부터 분석된 데이터 내 수학 공식을 나타내는 공식 시드(seed)를 식별하는 단계와 - 공식 시드는 공식의 일부임을 나타내는 소정의 표시를 포함하는 텍스트 요소임 -,
    상기 공식 시드를 경계 짓는 공식 영역을 생성하는 단계와,
    상기 공식 시드에 근접한 공식 요소를 포함하도록 상기 공식 영역을 확장하는 단계와 - 공식 요소는 공식의 잠정적 일부인 페이지 요소임 -,
    상기 공식 영역에 의해 캡처된 상기 공식 요소를 상기 공식 영역에 겹치는 노멀(normal) 텍스트의 라인과 관련한 상기 캡처된 요소의 수직 위치에 기반하여 그룹에 배치하는 단계와,
    상기 그룹 각각에 대해 새로운 공식 영역을 생성하는 단계와,
    각각의 상기 공식 요소와 상기 공식 영역에 의해 캡처된 이웃 요소 사이의 수평 공백에 기반하여 각각의 상기 공식 영역을 분할하는 단계와,
    적어도 부분적으로 서로 수평으로 겹치는 상기 공식 영역의 집합을 선택하는 단계와,
    페이지 상의 동일 라인 상에 나타나는 상기 선택된 공식 영역을 병합하는 단계
    를 포함하는 공식 검출 방법.
  2. 제1항에 있어서,
    상기 공식 시드를 식별하는 단계는 수학 폰트로 렌더링된 텍스트를 식별하는 단계를 포함하는
    공식 검출 방법.
  3. 제1항에 있어서,
    상기 공식 시드를 식별하는 단계는 선택된 수학 심볼, 선택된 수학 연산자 및 선택된 수학 키워드를 식별하는 단계를 포함하는
    공식 검출 방법.
  4. 제1항에 있어서,
    상기 공식 영역에 의해 캡처된 상기 공식 요소를 상기 공식 영역에 겹치는 노멀 텍스트의 라인과 관련한 상기 캡처된 요소의 수직 위치에 기반하여 그룹에 배치하는 단계는
    상기 공식 요소 옆 노멀 텍스트의 라인의 상부 경계 위에 나타나는 상기 공식 요소를 제1그룹 내에 배치하는 단계와,
    상기 공식 요소 옆 노멀 텍스트의 라인의 하부 경계 아래에 나타나는 상기 공식 요소를 제2그룹 내에 배치하는 단계와,
    남은 상기 공식 요소 각각을 제3그룹 내에 배치하는 단계
    를 더 포함하는 공식 검출 방법.
  5. 제1항에 있어서,
    상기 공식 영역에 의해 캡처된 상기 공식 요소를 상기 공식 영역에 겹치는 노멀 텍스트의 라인과 관련한 상기 캡처된 요소의 수직 위치에 기반하여 그룹에 배치하는 단계는
    노멀 텍스트의 라인의 상부 경계에 의해 횡단된 공식 요소 위에 나타나는 상기 공식 요소를 제1그룹 내에 배치하는 단계와,
    노멀 텍스트의 라인의 하부 경계에 의해 횡단된 공식 요소 아래에 나타나는 상기 공식 요소를 제2그룹 내에 배치하는 단계와,
    남은 상기 공식 요소 각각을 제3그룹 내에 배치하는 단계
    를 더 포함하는 공식 검출 방법.

  6. 제1항에 있어서,
    상기 공식 영역의 집합을 선택하는 단계는 선택된 상기 공식 영역을 수직 위치별로 정렬하는 단계를 더 포함하는
    공식 검출 방법.
  7. 제6항에 있어서,
    상기 공식 영역의 집합을 선택하는 단계는 두 개의 연속적으로 정렬된 상기 공식 영역 사이의 수직 분리 거리가 선택된 거리 임계치를 초과하지 않을 때 상기 공식 영역을 공통적인 상기 집합 안에 배치하는 단계를 더 포함하는
    공식 검출 방법.
  8. 제1항에 있어서,
    각각의 상기 공식 요소와 상기 공식 영역에 의해 캡처된 이웃 요소 사이의 수평 공백에 기반하여 각각의 상기 공식 영역을 분할하는 단계는 선택된 거리 임계치에 기반하는
    공식 검출 방법.
  9. 제8항에 있어서,
    상기 선택된 거리 임계치는 평가되고 있는 상기 공식 요소에 기반하여 가변되는
    공식 검출 방법.
  10. 제1항에 있어서,
    상기 페이지 상의 동일 라인 상에 나타나는 상기 선택된 공식 영역을 병합하는 단계는
    각각의 상기 공식 영역 옆에 나타나는 노멀 텍스트를 식별하는 단계와,
    두 개의 상기 공식 영역의 옆에 나타나는 노멀 텍스트가 동일할 때 상기 두 개의 공식 영역이 페이지 상의 동일 라인에 나타난다고 판단하는 단계
    를 더 포함하는 공식 검출 방법.
  11. 고정 포맷 문서에 나타나는 공식을 검출하는 시스템으로서,
    공식 검출 엔진 애플리케이션을 포함하되,
    상기 공식 검출 엔진 애플리케이션은
    고정 포맷 문서로부터 분석된 데이터 내 수학 공식을 나타내는 공식 시드(seed)를 식별하고 - 공식 시드는 공식의 일부임을 나타내는 소정의 표시를 수반하는 텍스트 요소임 -,
    상기 공식 시드를 경계 짓는 공식 영역을 생성하고,
    상기 공식 시드에 근접한 공식 요소를 포함하도록 상기 공식 영역을 확장하고 - 공식 요소는 공식의 잠정적 일부인 페이지 요소임 -,
    상기 공식 영역에 의해 캡처된 상기 공식 요소를 상기 공식 영역에 겹치는 노멀(normal) 텍스트의 라인과 관련한 상기 캡처된 요소의 수직 위치에 기반하여 그룹에 배치하고,
    상기 그룹 각각에 대해 새로운 공식 영역을 생성하고,
    각각의 상기 공식 요소와 상기 공식 영역에 의해 캡처된 이웃 요소 사이의 수평 공백에 기반하여 각각의 상기 공식 영역을 분할하고,
    적어도 부분적으로 서로 수평으로 겹치는 상기 공식 영역의 집합을 선택하고,
    페이지 상의 동일 라인 상에 나타나는 상기 선택된 공식 영역을 병합하도록 동작하는
    시스템.
  12. 제11항에 있어서,
    상기 공식 검출 엔진 애플리케이션은 수학 폰트로 렌더링된 텍스트 런을 공식 시드로서 식별하도록 동작하는
    시스템.
  13. 제11항에 있어서,
    상기 공식 검출 엔진 애플리케이션은 선택된 수학 심볼, 선택된 수학 연산자 및 선택된 수학 키워드를 공식 시드로서 식별하도록 동작하는
    시스템.
  14. 제11항에 있어서,
    상기 공식 검출 엔진 애플리케이션은
    상기 공식 영역에 겹치는 노멀 텍스트의 라인의 상부 경계 위에 나타나는 상기 공식 요소를 제1그룹 내에 배치하고,
    상기 공식 영역에 겹치는 노멀 텍스트의 라인의 하부 경계 아래에 나타나는 상기 공식 요소를 제2그룹 내에 배치하고,
    남은 상기 공식 요소 각각을 제3그룹 내에 배치하도록 동작하는
    시스템.

  15. 제11항에 있어서,
    상기 공식 검출 엔진 애플리케이션은
    노멀 텍스트의 라인의 상부 경계에 의해 횡단된 공식 요소 위에 나타나는 상기 공식 요소를 제1그룹 내에 배치하고,
    노멀 텍스트의 라인의 하부 경계에 의해 횡단된 공식 요소 아래에 나타나는 상기 공식 요소를 제2그룹 내에 배치하고,
    남은 상기 공식 요소 각각을 제3그룹 내에 배치하도록 동작하는
    시스템.
  16. 제11항에 있어서,
    상기 공식 검출 엔진 애플리케이션은
    각각의 상기 공식 영역 옆에 나타나는 노멀 텍스트를 식별하고,
    두 개의 상기 공식 영역의 옆에 나타나는 노멀 텍스트가 동일할 때 상기 두 개의 공식 영역이 페이지 상의 동일 라인에 나타난다고 판단하도록 동작하는
    시스템.
  17. 컴퓨터에 의해 실행될 때 고정 포맷 문서로부터 분석된 데이터에 포함된 수학 공식을 식별하고 상기 수학 공식이 유동 포맷 요소로 변환될 수 있게 하는 방법을 수행하는 컴퓨터 실행 가능 명령어를 포함하는 컴퓨터 판독 가능 매체로서,
    상기 방법은
    고정 포맷 문서로부터 분석된 데이터 내 수학 공식을 나타내는 공식 시드(seed)를 식별하는 단계와 - 공식 시드는 공식의 일부임을 나타내는 소정의 표시를 포함하는 텍스트 요소임 -,
    상기 공식 시드를 경계 짓는 공식 영역을 생성하는 단계와,
    상기 공식 시드에 근접한 공식 요소를 포함하도록 상기 공식 영역을 확장하는 단계와 - 공식 요소는 공식의 잠정적 일부인 페이지 요소임 -,
    상기 공식 요소 옆의 노멀 텍스트의 라인의 상부 경계에 의해 횡단된 공식 요소 위에 나타나는 상기 공식 요소를 제1그룹 내에 배치하는 단계와,
    상기 공식 요소 옆의 노멀 텍스트의 라인의 하부 경계에 의해 횡단된 공식 요소 아래에 나타나는 상기 공식 요소를 제2그룹 내에 배치하는 단계와,
    남은 상기 공식 요소 각각을 제3그룹 내에 배치하는 단계와,
    상기 제1그룹, 상기 제2그룹 및 상기 제3그룹 각각에 대해 새로운 공식 영역을 생성하는 단계와,
    각각의 상기 공식 요소와 상기 공식 영역에 의해 캡처된 이웃 요소 사이의 수평 공백에 기반하여 각각의 상기 공식 영역을 분할하는 단계와,
    적어도 부분적으로 서로 수평으로 겹치는 상기 공식 영역의 집합을 선택하는 단계와,
    각각의 상기 공식 영역 옆에 나타나는 노멀 텍스트를 식별하는 단계와,
    두 개의 상기 공식 영역의 옆에 나타나는 노멀 텍스트가 동일할 때 상기 두 개의 공식 영역이 페이지 상의 동일 라인에 나타난다고 판단하는 단계와,
    페이지 상의 동일 라인 상에 나타나는 상기 선택된 공식 영역을 병합하는 단계
    를 포함하는 컴퓨터 판독 가능 매체.
  18. 제17항에 있어서,
    상기 공식 시드를 식별하는 단계는 수학 폰트로 렌더링된 텍스트를 식별하는 단계를 포함하는
    컴퓨터 판독 가능 매체.
  19. 제17항에 있어서,
    상기 공식 시드를 식별하는 단계는 선택된 수학 심볼, 선택된 수학 연산자 및 선택된 수학 키워드를 식별하는 단계를 포함하는
    컴퓨터 판독 가능 매체.

  20. 제17항에 있어서,
    상기 공식 영역의 집합을 선택하는 단계는 선택된 상기 공식 영역을 수직 위치별로 정렬하는 단계를 더 포함하는
    컴퓨터 판독 가능 매체.
KR1020147020563A 2012-01-23 2012-01-23 공식 검출 엔진 KR101812380B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/EP2012/000285 WO2013110285A1 (en) 2012-01-23 2012-01-23 Formula detection engine

Publications (2)

Publication Number Publication Date
KR20140116428A KR20140116428A (ko) 2014-10-02
KR101812380B1 true KR101812380B1 (ko) 2017-12-26

Family

ID=45768167

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147020563A KR101812380B1 (ko) 2012-01-23 2012-01-23 공식 검출 엔진

Country Status (11)

Country Link
US (1) US9928225B2 (ko)
EP (1) EP2807603B1 (ko)
JP (1) JP5974115B2 (ko)
KR (1) KR101812380B1 (ko)
CN (1) CN104067292B (ko)
AU (1) AU2012367116B2 (ko)
BR (1) BR112014017832B1 (ko)
CA (1) CA2863522C (ko)
MX (1) MX2014008560A (ko)
RU (1) RU2585972C2 (ko)
WO (1) WO2013110285A1 (ko)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10025979B2 (en) * 2012-01-23 2018-07-17 Microsoft Technology Licensing, Llc Paragraph property detection and style reconstruction engine
KR101812380B1 (ko) 2012-01-23 2017-12-26 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 공식 검출 엔진
US9946690B2 (en) 2012-07-06 2018-04-17 Microsoft Technology Licensing, Llc Paragraph alignment detection and region-based section reconstruction
US20140115447A1 (en) * 2012-10-22 2014-04-24 Apple Inc. Centering Mathematical Objects in Documents
KR102061798B1 (ko) * 2012-12-20 2020-01-03 삼성전자주식회사 수식 연산 방법 및 그 전자 장치
US9330070B2 (en) 2013-03-11 2016-05-03 Microsoft Technology Licensing, Llc Detection and reconstruction of east asian layout features in a fixed format document
US9569418B2 (en) * 2014-06-27 2017-02-14 International Busines Machines Corporation Stream-enabled spreadsheet as a circuit
US10007943B2 (en) * 2014-12-09 2018-06-26 Minted, Llc Vendor website GUI for marketing greeting cards and envelopes
CN104572577B (zh) * 2014-12-17 2018-09-04 百度在线网络技术(北京)有限公司 数学公式处理方法及装置
US10354133B2 (en) * 2015-08-26 2019-07-16 Beijing Lejent Technology Co., Ltd. Method for structural analysis and recognition of handwritten mathematical formula in natural scene image
US10540424B2 (en) * 2017-06-13 2020-01-21 Microsoft Technology Licensing, Llc Evaluating documents with embedded mathematical expressions
US20190139280A1 (en) * 2017-11-06 2019-05-09 Microsoft Technology Licensing, Llc Augmented reality environment for tabular data in an image feed
US10482162B2 (en) * 2017-11-30 2019-11-19 International Business Machines Corporation Automatic equation transformation from text
CN111103987B (zh) * 2018-10-29 2021-06-04 北京新唐思创教育科技有限公司 公式录入方法及计算机存储介质
US11106858B2 (en) * 2020-01-16 2021-08-31 Adobe Inc. Merging selected digital point text objects while maintaining visual appearance fidelity
US11244203B2 (en) * 2020-02-07 2022-02-08 International Business Machines Corporation Automated generation of structured training data from unstructured documents
KR102449336B1 (ko) * 2021-09-23 2022-09-30 (주)웅진씽크빅 Ocr을 이용한 학습 추천 장치 및 방법
US20230394221A1 (en) * 2022-06-06 2023-12-07 Microsoft Technology Licensing, Llc Converting a portable document format to a latex format
CN116483943A (zh) * 2023-06-21 2023-07-25 山东网安安全技术有限公司 一种全文检索方法及其检索系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002269499A (ja) 2001-03-07 2002-09-20 Masakazu Suzuki 数式認識装置および数式認識方法並びに文字認識装置および文字認識方法
JP2003256769A (ja) 2002-03-06 2003-09-12 Toshiba Corp 数式認識装置および数式認識方法

Family Cites Families (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6257069A (ja) 1985-09-06 1987-03-12 Fujitsu Ltd 文字列抽出方式
US5212769A (en) 1989-02-23 1993-05-18 Pontech, Inc. Method and apparatus for encoding and decoding chinese characters
EP0667567B1 (en) 1993-12-30 2001-10-17 Xerox Corporation Apparatus and method for supporting the implicit structure of freeform lists, outlines, text, tables, and diagrams in a gesture-based input system and editing system
US6370269B1 (en) 1997-01-21 2002-04-09 International Business Machines Corporation Optical character recognition of handwritten or cursive text in multiple languages
JPH10224789A (ja) 1997-02-07 1998-08-21 Matsushita Electric Ind Co Ltd 画像データ処理装置および画像データ処理方法
JPH11259477A (ja) 1998-03-13 1999-09-24 Toshiba Corp 文書処理システムおよび記録媒体
US6081381A (en) 1998-10-26 2000-06-27 Polametrics, Inc. Apparatus and method for reducing spatial coherence and for improving uniformity of a light beam emitted from a coherent light source
US6757870B1 (en) * 2000-03-22 2004-06-29 Hewlett-Packard Development Company, L.P. Automatic table detection method and system
US6915484B1 (en) 2000-08-09 2005-07-05 Adobe Systems Incorporated Text reflow in a structured document
JP2003256679A (ja) 2002-02-27 2003-09-12 Tomiko Maruta ネット販売システム
US20040205568A1 (en) * 2002-03-01 2004-10-14 Breuel Thomas M. Method and system for document image layout deconstruction and redisplay system
AU2002952711A0 (en) 2002-11-18 2002-11-28 Typefi Systems Pty Ltd A method of formatting documents
JP4390523B2 (ja) 2002-11-22 2009-12-24 オセ−テクノロジーズ・ベー・ヴエー 最小領域による合成画像の分割
TWI273443B (en) 2003-12-09 2007-02-11 Hon Hai Prec Ind Co Ltd System and method for converting file's format
US20050183033A1 (en) 2004-02-18 2005-08-18 Yaniv Feinberg Apparatus and methods for displaying dialog box text messages including languages having different reading orders
US8661332B2 (en) 2004-04-30 2014-02-25 Microsoft Corporation Method and apparatus for document processing
US20060001667A1 (en) 2004-07-02 2006-01-05 Brown University Mathematical sketching
US7561737B2 (en) 2004-09-22 2009-07-14 Microsoft Corporation Mathematical expression recognition
US7447360B2 (en) 2004-09-22 2008-11-04 Microsoft Corporation Analyzing tabular structures in expression recognition
JP4607633B2 (ja) 2005-03-17 2011-01-05 株式会社リコー 文字方向識別装置、画像形成装置、プログラム、記憶媒体および文字方向識別方法
US8249344B2 (en) 2005-07-01 2012-08-21 Microsoft Corporation Grammatical parsing of document visual structures
EP1739574B1 (en) 2005-07-01 2007-09-12 PDFlib GmbH Method of identifying words in an electronic document
GB2428114A (en) 2005-07-08 2007-01-17 William Alan Hollingsworth Data Format Conversion System
US20070079236A1 (en) 2005-10-04 2007-04-05 Microsoft Corporation Multi-form design with harmonic composition for dynamically aggregated documents
US7853869B2 (en) 2005-12-14 2010-12-14 Microsoft Corporation Creation of semantic objects for providing logical structure to markup language representations of documents
US8064696B2 (en) 2007-04-10 2011-11-22 Microsoft Corporation Geometric parsing of mathematical expressions
GB0717067D0 (en) 2007-09-03 2007-10-10 Ibm An Apparatus for preparing a display document for analysis
US8280892B2 (en) 2007-10-05 2012-10-02 Fujitsu Limited Selecting tags for a document by analyzing paragraphs of the document
US8121412B2 (en) * 2008-06-06 2012-02-21 Microsoft Corporation Recognition of tabular structures
CN101329731A (zh) * 2008-06-06 2008-12-24 南开大学 图像中数学公式的自动识别方法
US8285049B2 (en) * 2008-06-06 2012-10-09 Microsoft Corporation Corrections for recognizers
US8473467B2 (en) 2009-01-02 2013-06-25 Apple Inc. Content profiling to dynamically configure content processing
US8249356B1 (en) 2009-01-21 2012-08-21 Google Inc. Physical page layout analysis via tab-stop detection for optical character recognition
US8209600B1 (en) * 2009-05-26 2012-06-26 Adobe Systems Incorporated Method and apparatus for generating layout-preserved text
US8271873B2 (en) 2009-10-30 2012-09-18 International Business Machines Corporation Automatically detecting layout of bidirectional (BIDI) text
US8922582B2 (en) 2009-11-16 2014-12-30 Martin J. Murrett Text rendering and display using composite bitmap images
US8594422B2 (en) 2010-03-11 2013-11-26 Microsoft Corporation Page layout determination of an image undergoing optical character recognition
WO2012012911A1 (en) * 2010-07-28 2012-02-02 Hewlett-Packard Development Company, L.P. Producing web page content
US8340425B2 (en) * 2010-08-10 2012-12-25 Xerox Corporation Optical character recognition with two-pass zoning
CN102375988B (zh) 2010-08-17 2013-12-25 富士通株式会社 文件图像处理方法和设备
JP5193263B2 (ja) 2010-10-21 2013-05-08 シャープ株式会社 文書生成装置、文書生成方法、コンピュータプログラムおよび記録媒体
US9710435B2 (en) 2010-10-29 2017-07-18 P. Karl Halton Object-field-based mathematics system
US8543911B2 (en) 2011-01-18 2013-09-24 Apple Inc. Ordering document content based on reading flow
US20120185788A1 (en) 2011-01-19 2012-07-19 Microsoft Corporation User interface with vertical text elements for an east-asian defined layout
US8910039B2 (en) * 2011-09-09 2014-12-09 Accenture Global Services Limited File format conversion by automatically converting to an intermediate form for manual editing in a multi-column graphical user interface
CN102411707A (zh) 2011-10-31 2012-04-11 世纪龙信息网络有限责任公司 一种图片中文本的识别方法及识别装置
US9098471B2 (en) 2011-12-29 2015-08-04 Chegg, Inc. Document content reconstruction
KR101812380B1 (ko) 2012-01-23 2017-12-26 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 공식 검출 엔진
CN104067293B (zh) 2012-01-23 2017-07-25 微软技术许可有限责任公司 矢量图分类引擎
US8559718B1 (en) 2012-04-27 2013-10-15 Abbyy Development Llc Defining a layout of text lines of CJK and non-CJK characters
US9471550B2 (en) 2012-10-16 2016-10-18 Linkedin Corporation Method and apparatus for document conversion with font metrics adjustment for format compatibility
US9460089B1 (en) 2012-11-07 2016-10-04 Amazon Technologies, Inc. Flow rendering of annotation characters
US20140258852A1 (en) 2013-03-11 2014-09-11 Microsoft Corporation Detection and Reconstruction of Right-to-Left Text Direction, Ligatures and Diacritics in a Fixed Format Document
US9330070B2 (en) 2013-03-11 2016-05-03 Microsoft Technology Licensing, Llc Detection and reconstruction of east asian layout features in a fixed format document

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002269499A (ja) 2001-03-07 2002-09-20 Masakazu Suzuki 数式認識装置および数式認識方法並びに文字認識装置および文字認識方法
JP2003256769A (ja) 2002-03-06 2003-09-12 Toshiba Corp 数式認識装置および数式認識方法

Also Published As

Publication number Publication date
EP2807603A1 (en) 2014-12-03
JP5974115B2 (ja) 2016-08-23
WO2013110285A1 (en) 2013-08-01
CN104067292A (zh) 2014-09-24
AU2012367116B2 (en) 2017-10-19
BR112014017832B1 (pt) 2021-07-06
US9928225B2 (en) 2018-03-27
CN104067292B (zh) 2017-05-03
MX2014008560A (es) 2014-09-26
RU2585972C2 (ru) 2016-06-10
CA2863522C (en) 2018-08-28
JP2015505113A (ja) 2015-02-16
EP2807603B1 (en) 2020-03-18
RU2014130243A (ru) 2016-02-10
BR112014017832A2 (pt) 2017-06-20
KR20140116428A (ko) 2014-10-02
AU2012367116A1 (en) 2014-08-07
CA2863522A1 (en) 2013-08-01
BR112014017832A8 (pt) 2021-03-02
US20130205200A1 (en) 2013-08-08

Similar Documents

Publication Publication Date Title
KR101812380B1 (ko) 공식 검출 엔진
KR101872564B1 (ko) 무경계 표 검출 엔진
US10127221B2 (en) Detection and reconstruction of East Asian layout features in a fixed format document
US20130191732A1 (en) Fixed Format Document Conversion Engine
US10025979B2 (en) Paragraph property detection and style reconstruction engine
US20140013215A1 (en) Paragraph Alignment Detection and Region-Based Section Reconstruction
US20130188875A1 (en) Vector Graphics Classification Engine
US20130191366A1 (en) Pattern Matching Engine
US9703759B2 (en) Footnote zone detection in a fixed format document using number of paragraphs in footnote description
US20140258852A1 (en) Detection and Reconstruction of Right-to-Left Text Direction, Ligatures and Diacritics in a Fixed Format Document

Legal Events

Date Code Title Description
N231 Notification of change of applicant
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant