KR20050030102A - 잉크 입력 내 핸드 드로잉 객체의 검출 시스템 및 방법 - Google Patents

잉크 입력 내 핸드 드로잉 객체의 검출 시스템 및 방법 Download PDF

Info

Publication number
KR20050030102A
KR20050030102A KR1020040065799A KR20040065799A KR20050030102A KR 20050030102 A KR20050030102 A KR 20050030102A KR 1020040065799 A KR1020040065799 A KR 1020040065799A KR 20040065799 A KR20040065799 A KR 20040065799A KR 20050030102 A KR20050030102 A KR 20050030102A
Authority
KR
South Korea
Prior art keywords
container
connector
grid
ink input
strokes
Prior art date
Application number
KR1020040065799A
Other languages
English (en)
Other versions
KR101076901B1 (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 KR20050030102A publication Critical patent/KR20050030102A/ko
Application granted granted Critical
Publication of KR101076901B1 publication Critical patent/KR101076901B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • 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/142Image acquisition using hand-held instruments; Constructional details of the instruments
    • G06V30/1423Image acquisition using hand-held instruments; Constructional details of the instruments the instrument generating sequences of position coordinates corresponding to handwriting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Multimedia (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Image Analysis (AREA)
  • Character Discrimination (AREA)
  • Processing Or Creating Images (AREA)
  • Character Input (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

잉크 입력 내의 핸드 드로잉 객체의 검출을 위한 시스템 및 방법이 제공된다. 검출기는 드로잉 내의 폐쇄 컨테이너 및/또는 비폐쇄 커낵터를 검출함으로써, 잉크 입력으로부터 다이어그램 또는 차트와 같은 드로잉을 검출할 수 있다. 잉크 스트로크를 적절한 크기를 갖는 이미지 그리드에 맞추기 위해, 효율적인 그리그 기반 접근방식이 사용될 수 있다. 컨테이너 및 커낵터를 검출하기 위하여 색 채우기 알고리즘이 사용될 수 있다. 또한, 드로잉 스트로크의 중첩을 다루기 위하여, 공간 검색 후에 시간 순서 검색이 수행될 수 있다. 마지막으로, 각각의 검출된 컨테이너에 대한 내용 검출이 수행될 수 있다. 임의의 컨테이너 및 그 관련 내용이 이미지 그리드 내에서 검출되고 나면, 커낵터 검출이 수행될 수 있다. 본 발명을 이용함으로써, 사용자는 핸드 드로잉 입력에 대한 제한없이 자유롭게 다이어그램 및 순서도를 드로잉할 수 있다.

Description

잉크 입력 내 핸드 드로잉 객체의 검출 시스템 및 방법{SYSTEM AND METHOD FOR DETECTING A HAND-DRAWN OBJECT IN INK INPUT}
<관련 출원>
본 발명은 2003년 9월 24일자 출원되었고, 그 전체가 본 명세서에 반영된 미국 특허 가출원 번호 60/505,866에 대해 우선권을 주장한다.
본 발명은 이와 동시에 출원되고 그 전체가 본 명세서에 반영된 다음의 미국 특허 출원과 관련된다:
사건 번호 4201/306517 "핸드 드로잉 객체의 형상 인식을 위한 시스템 및 방법" 및
사건 번호 4191/306517 "잉크 입력 내 리스트를 검출하기 위한 시스템 및 방법"
본 발명은 컴퓨터 시스템에 관한 것으로서, 보다 상세하게는 잉크 입력 내 핸드 드로잉 객체를 검출하기 위한 개량된 시스템 및 방법에 관한 것이다.
사용자가 잉크 입력 또는 잉크 노트를 이용하여 자신의 컴퓨터에 직접 그리는 데 있어서 핸드 드로잉 객체의 형상을 검출하고 인식하는 능력은 중요한 것이다. 현재의 하드웨어 및 소프트웨어는 핸드 라이팅을 나타내는 잉크를 적절히 캡쳐할 수 있지만, 현재는 유사하게 핸드 드로잉 객체의 의미를 인식하고 표현할 수 없다. 결과적으로, 사용자들은 객체의 드로잉을 생성하기 위해 메뉴 기반 애플리케이션 프로그램을 대신 사용한다. 사용자가 선택하여 드로잉 그리드 위에 복사할 수 있는 다양한 형상이 애플리케이션 프로그램에 의해 제공될 수 있다. 복사된 형상은 원하는 스케일로 크기가 조절될 수 있고, 사용자는 드로잉이 완성될 때까지 계속하여 드로잉 그리드 위에 추가 형상을 배치하고 그 크기를 조절할 수 있다.
핸드 드로잉 객체의 형상 인식에 집중된 연구는 지금까지 미미한 결과를 낳았다. 예컨대, 특정 순서로 만들어진 특정 수의 스트로크로부터 원 또는 박스 등의 간단한 기하 형상을 인식할 수 있는 증분 인식 알고리즘이 사용되어 왔다. 그러나, 이러한 증분 알고리즘은 스트로크 순서에 의존하며, 또는 특정 핸드 드로잉 형상을 인식하기 위하여 특정 수의 스트로크를 취한다. 이러한 방법은 여러가지 이유로 좋지 않다. 무엇보다도, 어느 증분 알고리즘도 어떤 스트로크 집합이 같은 부류에 속하는지를 결정하는 그룹화 문제를 해결하지 못하는데, 이는 이들 스트로크가 특정 형상을 나타내기 때문이다. 한 형상에 속하는 스트로크들을 함께 그룹화하는 능력이 없는 증분 알고리즘은 화살표와 같은 멀티 스트로크 형상을 수용할 수 없다. 더욱이, 증분 알고리즘은 스트로크 순서에 의존하고 형상에 대해 특정 수의 스트로크를 취하기 때문에 형상의 드로잉 동안 스트로크가 오버 트레이스될 수 있는 오버 트레이스 문제를 해결할 수 없다.
스트로크 입력 순서 및/또는 임의의 주어진 형상을 형성하는 데 필요한 스트로크 수에 영향을 받지 않는 핸드 드로잉 객체 형상의 검출 및 인식 방법이 필요하다. 이러한 시스템 및 방법은 멀티 스트로크 핸드 드로잉 형상을 검출할 수 있어야 하고 다른 형상들을 나타내는 스트로크들의 어떠한 집합이 같은 부류에 속하는지를 검출할 수 있어야 한다.
요컨대, 본 발명은 잉크 입력 내 핸드 드로잉 객체를 검출하기 위한 시스템 및 방법을 제공한다. 이를 위해, 잉크 입력에서 다이어그램 또는 차트와 같은 드로잉을 검출할 수 있는 검출기가 제공된다. 검출기는 한 컨테이너에 속하는 스트로크들을 찾기 위한 컨테이너 검출기, 및 한 커낵터에 속하는 스트로크들을 찾기 위한 커낵터 검출기를 포함할 수 있다. 핸드 드로잉 형상은 공간 검색 및 시간 순서 검색을 행하여 각 컨테이너에 대한 스트로크들을 식별함으로써 검출될 수 있다.
일 실시예는 잉크 스트로크를 적당한 크기를 가진 이미지 그리드 안에 피팅할 수 있으며 드로잉 스트로크와 교차하는 그리드에 표시할 수 있다. 이미지 그리드의 외측 에지로부터 시작하여 드로잉 스트로크와 교차하는 표시된 그리드에 이를 때까지 최외곽 블랭크 그리드가 칠해질 수 있다. 이어서, 표시된 그리드 안에 있는 블랭크 그리드의 임의의 섬이 섬의 경계에 도달할 때까지 칠해질 수 있다. 이어서, 컨테이너 후보자의 드로잉 스트로크가 칠해진 섬을 둘러싸는 경계로부터 식별될 수 있다. 임의의 컨테이너 후보자가 유효 컨테이너라는 것을 확인하기 위하여 검사될 수 있다.
일 실시예에서, 드로잉 스트로크들의 중첩을 처리하기 위한 공간 검색 후에 시간 순서 검색이 또한 행해질 수 있다. 일반적으로, 연속 스트로크들의 열로부터 형성된 컨테이너들은 시간 순서 검색을 이용하여 입력 스트로크들의 열이 컨테이너를 형성할 가능성을 결정함으로써 발견될 수 있다. 시간 순서 검색을 행하여 발견된 임의의 추가 컨테이너는 공간 검색에 사용된 이미지 그리드에서 표시될 수 있으며, 이에 따라 임의의 발견된 컨테이너들은 후에 내용 검출 및 커낵터 검출 동안 사용하기 위해 이미지 그리드에 포함될 수 있다.
임의의 컨테이너들 및 이들과 관련된 내용이 이미지 그리드에서 검출된 경우, 커낵터 검출이 행해질 수 있다. 일반적으로, 방문되지 않은 드로잉 스트로크들의 그리드들 중에서 임의의 커낵터를 검출하기 위하여 컨테이너에 표시된 이미지 그리드에서 검색이 행해질 수 있다. 방문되지 않은 드로잉 스트로크에 인접하지 않은 임의의 컨테이너는 컨테이너의 경계를 둘러싼 표시된 그리드로 팽창할 수 있으며, 따라서 커낵터는 대응하는 컨테이너에 인접할 수 있다. 이어서, 방문되지 않은 드로잉 스트로크의 그리드가 칠해질 수 있으며, 팽창된 컨테이너를 포함한 둘 이상의 컨테이너에 도달하는 상기 칠해진 그리드는 커낵터 후보자의 대응 드로잉 스트로크를 식별할 수 있다. 임의의 커낵터 후보자들이 유효 커낵터인지를 확인하기 위하여 검사될 수 있다.
이롭게도, 본 시스템 및 방법은 스트로크 입력 순서 및 핸드 드로잉 형상을 형성할 수 있는 스트로크들의 수에 영향을 받지 않는다. 더욱이, 본 시스템 및 방법은 드로잉에서 임의의 폐쇄 컨테이너 및 비폐쇄 커낵터를 검출하는 데 사용될 수 있다. 검출될 경우, 형상의 유형, 위치, 방향 및 크기가 인식될 수 있다.
다른 이점들은 도면과 관련하여 파악할 때 아래의 상세한 설명으로부터 명백해질 것이다.
예시적인 컴퓨팅 환경
도 1은 본 발명이 구현될 수 있는 적절한 컴퓨팅 시스템 환경(100)의 예를 나타낸다. 컴퓨팅 시스템 환경(100)은 단지 적절한 컴퓨팅 환경의 일 예이며 본 발명의 사용 또는 기능의 범위에 제한을 가하도록 의도된 것은 아니다. 컴퓨팅 환경(100)은 예시적인 오퍼레이팅 환경(100)에 도시된 컴포넌트들 중의 임의의 하나 또는 조합에 관하여 임의의 종속성(dependency) 또는 요구사항(requirement)을 갖는 것으로 해석되어서는 안된다.
본 발명은 많은 다른 범용 또는 특수목적 컴퓨팅 시스템 환경들 또는 구성들과 함께 동작될 수 있다. 본 발명과 함께 사용하기에 적합할 수 있는 잘 알려진 컴퓨팅 시스템, 환경, 및/또는 구성의 예로는, 퍼스널 컴퓨터, 서버 컴퓨터, 핸드헬드(hand-held) 또는 랩탑 장치, 타블릿 장치, 헤드레스 서버(headless server), 멀티프로세서 시스템, 마이크로프로세서-기반 시스템, 셋 탑 박스(set top box), 프로그램가능한 가전제품(programmable consumer electronics), 네트워크 PC, 미니컴퓨터, 메인프레임 컴퓨터, 상기의 시스템 또는 장치 중의 임의의 것을 포함하는 분산형 컴퓨팅 환경 등이 포함될 수 있지만, 이에 한정되지 않는다.
본 발명은 컴퓨터에 의해 실행되는, 프로그램 모듈과 같은 컴퓨터 실행가능 명령과 일반적으로 관련하여 기술될 수 있다. 일반적으로, 프로그램 모듈은 특정 태스크를 수행하거나 특정 추상 데이터 유형을 구현하는 루틴, 프로그램, 객체, 컴포넌트, 데이터 구조 등을 포함한다. 본 발명은 또한 통신 네트워크를 통해 링크된 원격 프로세싱 장치에 의해 태스크를 수행하는 분산형 컴퓨팅 환경에서 실행될 수 있다. 분산 컴퓨팅 환경에서, 프로그램 모듈은 메모리 저장 장치를 포함하는 국부 및 원격 컴퓨터 저장 매체 내에 위치할 수 있다.
도 1을 참조하면, 본 발명을 구현하기 위한 예시적인 시스템은 컴퓨터(110)의 형태의 범용 컴퓨팅 장치를 포함한다. 컴퓨터(110)의 컴포넌트들로는, 프로세싱 유닛(120), 시스템 메모리(130), 및 시스템 메모리를 포함하는 다양한 시스템 컴포넌트를 프로세싱 유닛(120)에 연결시키는 시스템 버스(121)가 포함될 수 있지만, 이에 한정되는 것은 아니다. 시스템 버스(121)는 다양한 버스 아키텍처 중의 임의의 것을 사용하는 로컬 버스, 주변 버스, 및 메모리 버스 또는 메모리 컨트롤러를 포함하는 몇가지 유형의 버스 구조 중의 임의의 것일 수 있다. 예로서, 이러한 아키텍처는 산업 표준 아키텍처(ISA) 버스, 마이크로 채널 아키텍처(MCA) 버스, 인핸스드 ISA(Enhanced ISA; EISA) 버스, 비디오 일렉트로닉스 표준 어소시에이션(VESA) 로컬 버스, 및 (메자닌(Mezzanine) 버스로도 알려진) 주변 컴포넌트 상호접속(PCI) 버스를 포함하지만, 이에 한정되는 것은 아니다.
컴퓨터(110)는 통상적으로 다양한 컴퓨터 판독가능 매체를 포함한다. 컴퓨터 판독가능 매체는 컴퓨터(110)에 의해 액세스될 수 있는 임의의 이용가능한 매체일 수 있으며, 휘발성 및 비휘발성 매체, 분리형(removable) 및 비분리형(non-removable) 매체를 둘다 포함한다. 예로서, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체 및 통신 매체를 포함할 수 있지만, 이에 한정되는 것은 아니다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령, 데이터 구조, 프로그램 모듈 또는 다른 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현되는 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 둘다 포함한다. 컴퓨터 저장 매체는 RAM, ROM, EEPROM, 플래쉬 메모리 또는 기타 메모리 기술, CD-ROM, DVD(digital versatile disk) 또는 기타 광학 디스크 저장장치, 자기 카세트, 자기 테이프, 자기 디스크 저장장치 또는 기타 자기 저장장치, 또는 컴퓨터(110)에 의해 액세스될 수 있고 원하는 정보를 저장하는 데 사용될 수 있는 임의의 기타 매체를 포함할 수 있지만, 이에 한정되지 않는다. 통신 매체는 통상적으로 반송파 또는 기타 전송 메카니즘 등의 변조된 데이터 신호에 컴퓨터 판독가능 명령, 데이터 구조, 프로그램 모듈, 또는 다른 데이터를 구현하며, 임의의 정보 전달 매체를 포함한다. "변조된 데이터 신호"라는 용어는 신호 내에 정보를 인코딩하도록 설정되거나 변환된 특성을 하나 또는 그 이상을 갖는 신호를 의미한다. 예로서, 통신 매체는 유선 네트워크 또는 직접 유선 접속 등의 유선 매체와, 음향, RF, 적외선 및 기타 무선 매체 등의 무선 매체를 포함하지만, 이에 한정되지 않는다. 상술한 것들 중의 임의의 조합이 컴퓨터 판독가능 매체의 범위 내에 포함되어야 한다.
시스템 메모리(130)는 ROM(131) 및 RAM(132) 등의 휘발성 및/또는 비휘발성 메모리의 형태의 컴퓨터 저장 매체를 포함한다. 시동중과 같은 때에 컴퓨터(110) 내의 구성요소들간에 정보를 전송하는 것을 돕는 기본 루틴을 포함하는 기본 입출력 시스템(133; BIOS)은 일반적으로 ROM(131)에 저장된다. RAM(132)은 일반적으로 프로세싱 유닛(120)에 즉시 액세스될 수 있고 및/또는 프로세싱 유닛(120)에 의해 현재 작동되는 프로그램 모듈 및/또는 데이터를 포함한다. 예로서, (한정하고자 하는 것은 아님) 도 1은 오퍼레이팅 시스템(134), 애플리케이션 프로그램(135), 기타 프로그램 모듈(136), 및 프로그램 데이터(137)를 도시한다.
컴퓨터(110)는 또한 다른 분리형/비분리형, 휘발성/비휘발성 컴퓨터 저장 매체를 포함할 수 있다. 단지 예로서, 도 1에는 비분리형 비휘발성 자기 매체로부터 판독하거나 그 자기 매체에 기록하는 하드 디스크 드라이브(141), 분리형 비휘발성 자기 디스크(152)로부터 판독하거나 그 자기 디스크에 기록하는 자기 디스크 드라이브(151), 및 CD-ROM 또는 기타 광학 매체 등의 분리형 비휘발성 광학 디스크(156)로부터 판독하거나 그 광학 디스크에 기록하는 광학 디스크 드라이브(155)가 도시되어 있다. 예시적인 오퍼레이팅 환경에서 사용될 수 있는 다른 분리형/비분리형, 휘발성/비휘발성 컴퓨터 저장 매체는 자기 테이프 카세트, 플래쉬 메모리 카드, DVD(Digital versatile disk), 디지털 비디오 테이프, 고체 RAM, 고체 ROM 등을 포함하지만 이에 한정되지 않는다. 하드 디스크 드라이브(141)는 일반적으로 인터페이스(140)와 같은 비분리형 메모리 인터페이스를 통해 시스템 버스(121)에 접속되고, 자기 디스크 드라이브(151) 및 광학 디스크 드라이브(155)는 일반적으로 인터페이스(150)와 같은 분리형 메모리 인터페이스에 의해 시스템 버스(121)에 접속된다.
앞서 기술되고 도 1에 도시된 드라이브 및 그 관련 컴퓨터 저장 매체는 컴퓨터(110)를 위한 컴퓨터 판독가능 명령, 데이터 구조, 프로그램 모듈 및 기타 데이터의 저장을 제공한다. 도 1에서, 예를 들어, 하드 디스크 드라이브(141)는 오퍼레이팅 시스템(144), 애플리케이션 프로그램(145), 기타 프로그램 모듈(146), 및 프로그램 데이터(147)를 저장하는 것으로 도시된다. 이들 컴포넌트는 오퍼레이팅 시스템(134), 애플리케이션 프로그램(135), 기타 프로그램 모듈(136), 및 프로그램 데이터(137)와 동일할 수도 있고 다를 수도 있다. 오퍼레이팅 시스템(144), 애플리케이션 프로그램(145), 다른 프로그램 모듈(146), 및 프로그램 데이터(147)는 최소한 다른 복사본(different copies)임을 나타내기 위하여 다른 번호를 부여하였다. 사용자는 일반적으로 마우스, 트랙볼, 또는 터치 패드라 불리우는 포인팅 장치(161), 키보드(162), 타블릿 또는 전자 디지타이저(164), 및 마이크로폰(163)과 같은 입력 장치를 통해 컴퓨터(110)에 명령 및 정보를 입력할 수 있다. 도 1에 도시되지 않은 기타 입력 장치는 조이스틱, 게임 패드, 위성 안테나, 스캐너, 또는 생체 센서(biometric sensor), 환경 센서, 위치 센서 또는 다른 유형의 센서를 구비한 장치를 포함하는 기타 장치를 포함할 수 있다. 이들 입력 장치 및 그외의 입력 장치는 시스템 버스에 연결된 사용자 입력 인터페이스(160)를 통해 종종 프로세싱 유닛(120)에 접속되지만, 병렬 포트, 게임 포트 또는 유니버설 시리얼 포트(USB) 와 같은 기타 인터페이스 및 버스 구조에 의해 접속될 수 있다. 모니터(191) 또는 다른 유형의 디스플레이 장치는 또한 비디오 인터페이스(190) 등의 인터페이스를 통해 시스템 버스(121)에 접속된다. 모니터(191)는 터치 스크린 패널 등과 일체화될 수도 있다. 타블릿형 퍼스널 컴퓨터에서와 같이, 모니터 및/또는 터치 스크린 패널은, 컴퓨팅 장치(110)가 탑재되어 있는 하우징에 물리적으로 연결될 수 있음에 유의한다. 모니터외에도, 컴퓨터는 또한 출력 주변 인터페이스(193) 등을 통해 접속될 수 있는 스피커(194) 및 프린터(195) 등의 기타 주변 출력 장치를 포함할 수 있다.
컴퓨터(110)는 원격 컴퓨터(180)와 같은 하나 이상의 원격 컴퓨터로의 논리적 접속을 이용한 네트워크 환경에서 동작할 수 있다. 원격 컴퓨터(180)는 퍼스널 컴퓨터, 서버, 라우터, 네트워크 PC, 피어(peer) 장치, 또는 기타 공통 네트워크 노드일 수 있으며, 비록 도 1 에는 메모리 저장 장치(181)만이 도시되어 있지만, 컴퓨터(110)에 관하여 상술한 구성요소 중 다수 또는 모든 구성요소를 일반적으로 포함할 수 있다. 도시된 논리적 접속은 근거리 통신망(LAN; 171) 및 원거리 통신망(WAN; 173)을 포함하지만, 그 외의 네트워크를 포함할 수도 있다. 이러한 네트워크 환경은 사무실, 기업 광역 컴퓨터 네트워크(enterprise-wide computer network), 인트라넷, 및 인터넷에서 일반적인 것이다. LAN 네트워크 환경에서 사용되는 경우, 컴퓨터(110)는 네트워크 인터페이스 또는 어댑터(170)를 통해 LAN(171)에 접속된다. WAN 네트워크 환경에서 사용되는 경우, 컴퓨터(110)는 일반적으로 인터넷 등의 WAN(173)을 통해 통신을 구축하기 위한 모뎀(172) 또는 기타 수단을 포함한다. 내장형 또는 외장형일 수 있는 모뎀(172)은 사용자 입력 인터페이스(160) 또는 기타 적절한 메카니즘을 통해 시스템 버스(121)에 접속될 수 있다. 네트워크 환경에서, 컴퓨터(110)에 관하여 도시된 프로그램 모듈 또는 그 일부분은 원격 메모리 저장 장치에 저장될 수 있다. 예로서 (한정하고자 하는 것은 아님), 도 1은 메모리 장치(181)에 상주하는 원격 애플리케이션 프로그램(185)을 도시한다. 도시된 네트워크 접속은 예시적인 것이며, 컴퓨터들간의 통신 링크를 구축하는 그 외의 수단이 사용될 수 있다.
핸드 드로잉 객체의 검출
본 발명은 일반적으로 잉크 입력 내에서 다이어그램 또는 차트와 같은 드로잉을 검출하는 시스템 및 방법에 관한 것이다. 여기서 사용되는 바와 같이, 핸드 드로잉 객체는 임의의 핸드 라이팅 비-문자 형상 또는 드로잉을 의미한다. 사용자는 핸드 드로잉 입력에 대한 제한없이 자유롭게 다이어그램 및 순서도를 그릴 수 있다. 하나의 형상은 많은 스크로크(stroke)를 가질 수 있고, 스트로크의 입력 순서는 임의적일 수 있으므로, 본 시스템 및 방법은 임의의 잉크를 입력으로서 수용할 수 있다. 여기에서 사용되는 바와 같이, 잉크는 일반적으로 핸드 라이팅 스트로크 또는 스트로크들을 의미한다. 또한, 스트로크들은 오버 트레이스되거나 중첩될 수 있다. 어떤 경우에서도, 본 시스템 및 방법은 정확한 형상을 자동적으로 검출할 수 있다.
특히, 본 시스템 및 방법은 형상 인식을 위해 핸드 드로잉 컨테이너 및 컨테이너 사이에 그려진 커낵터의 형상을 검출할 수 있다. 여기에 사용되는 바와 같이, 컨테이너는 임의의 폐쇄된 드로잉 객체를 의미한다. 여기에서 사용되는 바와 같이, 커낵터는 컨테이너들을 결합하는 임의의 드로잉 객체를 의미한다. 여기에 기재된 다양한 블록도, 순서도 및 시나리오는 단지 예일 뿐이며 본 발명이 적용되는 많은 다른 시나리오가 있음을 이해할 것이다.
도면의 도 2를 참조하면, 핸드 드로잉 객체의 검출 및 형상 인식을 위한 시스템 컴포넌트의 예시적인 아키텍처를 일반적으로 나타내는 블록도가 도시된다. 본 기술에 숙련된 자는 도면에 표시된 블록 내에서 구현되는 기능이 개별 컴포넌트로서 구현될 수 있거나 몇개의 또는 모든 블록의 기능이 단일 컴포넌트 내에서 구현될 수 있음을 이해할 것이다. 예를 들어, 차트 검출기(204)를 위한 기능은 형상 인식기(206) 내에 포함될 수 있다. 또는, 컨테이너 검출기(212)의 기능은 개별 컴포넌트로서 구현될 수 있다.
잉크 파서(ink parser; 202)는 드로잉 객체를 갖는 잉크를 포함하는 잉크를 수용할 수 있다. 잉크 파서(202)는 동작적으로 결합된 차트 검출기(204) 및 동작적으로 결합된 형상 인식기(206)를 포함할 수 있다. 일반적으로, 차트 검출기(204) 및 형상 인식기(206)는 커널(kernel) 컴포넌트, 애플리케이션 프로그램, 링크된 라이브러리, 객체 등의 임의의 유형의 실행가능 소프트웨어 코드일 수 있다. 차트 검출기(204)는 동작적으로 결합된 컨테이너 검출기(212) 및 동작적으로 결합된 커낵터 검출기(214)를 포함할 수 있고, 형상 인식기(206)는 동작적으로 결합된 컨테이너 인식기(208) 및 동작적으로 결합된 커낵터 인식기(210)를 포함할 수 있다. 컨테이너 인식기(208)는 타원형/원형 분류기(216), 다각형 분류기(218), 삼각형 분류기(220), 사변형 분류기(222) 등의 임의의 수의 동작적으로 결합된 분류기를 포함할 수 있다. 커낵터 인식기(210)는 화살대(skeleton) 인식기(224) 및 화살촉(arrowhead) 인식기(226) 등의 임의의 수의 동작적으로 결합된 인식기를 포함할 수 있다. 이들 컴포넌트들의 각각은 또한 커널 컴포넌트, 애플리케이션 프로그램, 링크된 라이브러리, 객체, 또는 다른 유형의 실행가능 소프트웨어 코드 등의 임의의 유형의 실행가능 소프트웨어 코드일 수 있다.
도 3은 핸드 드로잉 객체의 검출 및 형상 인식을 위해 수행되는 단계를 일반적으로 나타내는 순서도를 나타낸다. 단계(302)에서, 드로잉 객체를 갖는 잉크를 포함하는 임의의 잉크가 파싱(parse)될 수 있다. 예를 들어, 일 실시예에서, 한 페이지의 잉크가 입력으로서 수용되고 파싱될 수 있다. 이 실시예에서, 잉크 파서는 예를 들어 그 페이지 상의 잉크에 대한 선험적 지식(a priori knowledge)을 갖지 않을 수 있다. 그러므로, 단어 그룹화, 라이팅/드로잉 분류 및 드로잉 그룹화 등의 기본 알고리즘이 실행될 수 있다. 단어 그룹화를 수행하기 위하여, 스트로크들은 단어, 행, 및 블록의 계층으로 그룹화될 수 있다. 그렇게 하기 위하여, 단어 그룹화 프로세스는 거리, 지리적 차이점 및 선형성, 및 다른 스트로크 특징을 캡쳐하기 위한 스트로크의 특징 추출을 포함할 수 있다. 단어 그룹화 프로세스는 또한 시간 정보에 따라 스트로크를 그룹화하기 위한 동적 프로그래밍을 포함할 수 있다. 단어 그룹화는 또한 공간 정보에 따라 스트로크를 그룹화하기 위한 클러스터링(clustering)을 포함할 수 있다. 그룹 내에서 식별되는 단어, 행 및 블록은 실제 의미(semantic) 단어, 행, 및 블록에 반드시 대응하는 것은 아니다. 실제로, 이들 그룹은 핸드 드로잉 객체의 스트로크를 포함할 수 있다.
라이팅/드로잉 분류를 수행하기 위하여, 드로잉으로부터 라이팅을 구분할 수 있는 다양한 특징이 식별될 수 있다. 예를 들어, 곡률, 밀도 및 기타 핸드 라이팅 모델 특징 등의 단일 단어 특징이 드로잉으로부터 라이팅을 구분하는 데 사용될 수 있다. 일 실시예에서, 시간 및 공간 컨텍스트 특징 등의 컨텍스트 특징이 드로잉으로부터 라이팅을 구분하는 데 사용될 수 있다. 다양한 특징의 각각은 퍼지 함수(fuzzy function)로 맵핑될 수 있고, 라이팅과 드로잉 간의 분류는 퍼지 함수의 조합에 따라 결정될 수 있다.
단어 그룹화 및 라이팅/드로잉 분류를 수행한 후에, 드로잉 스트로크는 드로잉 그룹화를 수행함으로써 잘 조직될 수 있다. 드로잉 그룹화를 수행하기 위하여, 드로잉 스트로크는 그들 간의 공간 관계에 따라 독립 객체로 그룹화될 수 있다. 잉크 스트로크를 적당한 크기의 이미지 그리드에 맞추기 위해 효율적인 그리드-기반 접근법(grid-based apporoach)이 사용될 수 있다. 이미지 그리드는 연결된 컴포넌트들을 찾기 위하여 레이블링(label)될 수 있다. 각각의 연결된 컴포넌트는 하나의 드로잉 객체에 대응할 수 있다. 드로잉 객체를 조절하기 위하여 발견적 규칙(heuristic rule)이 적용될 수 있다.
단계(304)에서, 드로잉 객체에 속할 수 있는 모든 스트로크를 찾음으로써 드로잉 스트로크를 그룹화하기 위하여 차트 검출이 수행될 수 있다. 따라서, 사용자는 입력에 대한 어떠한 제한도 없이 자유롭게 다이어그램 및 순서도를 그릴 수 있다. 예를 들어, 하나의 형상은 많은 스트로크를 가질 수 있고 입력 순서는 임의로 결정될 수 있다. 또한, 스트로크는 오버 트레이스되거나 중첩될 수 있다. 이러한 경우들 중 어떠한 것에서도, 본 시스템은 정확한 형상을 자동적으로 검출할 수 있다. 일 실시예에서, 컨테이너와 커낵터 사이의 관계가 완전히 표현될 수 있도록, 하이퍼그래프(hypergraph)를 사용하여 다이어그램 및 순서도를 표현할 수 있다. 따라서, 본 실시예에서는 2개 이상의 컨테이너를 결합하는 커낵터가 지원될 수 있다.
일 실시예에서, 컨테이너 검출기(212)는 컨테이너에 속하는 모든 스트로크를 찾을 수 있고 커낵터 검출기(214)는 커낵터에 속하는 모든 스트로크를 찾을 수 있다. 그렇게 하기 위하여, 임의의 컨테이너를 검출하기 위한 최적 검색이 시간순으로 수행될 수 있다. 컨테이너 및 커낵터를 검출하기 위한 효율적인 검색이 수행될 수 있다. 마지막으로, 각각의 검출된 컨테이너에 대한 내용 검출이 수행될 수 있다.
단계(306)에서, 컨테이너 및 커낵터를 인식하기 위한 형상 인식이 수행될 수 있다. 각각의 컨테이너 및 각각의 커낵터에 대하여 모든 스트로크가 그룹화된 후에, 일 실시예에서는, 다이어그램 또는 차트 등의 드로잉에서 폐쇄 컨테이너 및 비폐쇄 커낵터를 인식하기 위하여 형상 인식 엔진(206)이 사용될 수 있다. 인식 시, 형상의 유형, 위치, 방향 및 크기가 제공될 수 있다. 유리하게, 스트로크 입력의 순서 및 스트로크의 수는 인식에 영향을 주지 않는다. 폐쇄 컨테이너 및 비폐쇄 커낵터를 인식하기 위한 형상 인식이 수행된 후, 단계(308)에서 드로잉이 생성될 수 있다.
도 4는 핸드 드로잉 객체의 검출 및 형상 인식을 수행하는 데 사용될 잉크 입력 내 핸드 라이팅 객체들의 구조적인 관계를 개괄적으로 나타내는 예시 도면이다. 루트(402)는 한 페이지의 잉크 입력과 같은 잉크 입력을 나타낼 수 있고, 그 잉크 입력은 드로잉 객체(404, 406)와 같은 하나 이상의 드로잉 객체를 포함할 수 있다. 드로잉 객체(404)는 스트로크(414)에 의해 형성된 단어(412)를 갖는 행(410)으로 만들어질 수 있는 문단(408)에 의해 구조적으로 표시될 수 있는 텍스트 등의 관련 내용을 가질 수 있다. 잉크 입력 내의 핸드 드로잉 객체의 검출 및 형상 인식을 수행함으로써 드로잉 객체(404, 406)가 검출 및 인식될 수 있다.
핸드 드로잉 객체는 일반적으로 컨테이너 및 커낵터를 포함하는 다이어그램 또는 차트 등의 드로잉일 수 있다. 도 5a-5c는 핸드 드로잉 객체의 검출 및 형상 인식을 위해 지원되는 잉크 입력의 컨테이너들의 유형을 개괄적으로 표현한 예시인 도면이다. 검출 및 인식될 수 있는 지원되는 컨테이너는 밀폐된 영역을 형성할 수 있는 임의의 유형의 컨테이너일 수 있다. 이러한 컨테이너의 예는 도 5a의 컨테이너(502), 도 5b의 컨테이너(504), 및 도 5c의 컨테이너(506)이다. 텍스트 등의 내용이 컨테이너의 밀폐된 영역 내에 포함될 수 있다. 도 6a-6d는 핸드 드로잉 객체의 검출 및 형상 인식을 위하여 지원되는 잉크 입력의 커낵터의 유형을 개괄적으로 나타내는 예시 도면을 제공한다. 검출 및 인식될 수 있는 지원되는 커낵터는 2개 이상의 컨테이너를 결합하는 임의의 유형의 커낵터일 수 있다. 이러한 커낵터는 도 6a의 커낵터(606)와 같은 화살표 없음, 도 6b의 커낵터(612)와 같은 하나의 화살표, 도 6c의 커낵터(618)와 같은 2개의 화살표, 또는 도 6d의 커낵터(626)와 같은 3개의 화살표를 포함할 수 있다. 커낵터는 자신이 결합하는 컨테이너의 수만큼 많은 화살표를 포함할 수 있다.
도 7은 컨테이너와 커낵터를 갖는 차트의 검출을 위해 수행되는 단계들의 일 실시예를 개괄적으로 나타내는 순서도이다. 드로잉 객체 내의 각각의 컨테이너에 대한 컨테이너 검출이 단계(702)에서 수행될 수 있다. 그후, 드로잉 객체 내의 각각의 커낵터에 대한 커낵터 검출이 단계(704)에서 수행될 수 있다. 일반적으로, 드로잉 객체 내의 컨테이너는 그들 사이에 브릿지를 형성하는 커낵터를 갖는 2차원 평면에서의 섬(island)으로서 간주될 수 있다. 일 실시예에서, 드로잉 객체의 스트로크는 이미지 그리드 상에 배치될 수 있고 색 채우기 알고리즘(flood-fill algorithm)이 컨테이너 및 커낵터를 검출하는 데 사용될 수 있다.
도 8은 잉크 입력의 컨테이너들의 검출을 위해 수행되는 단계들의 일 실시예를 개괄적으로 표현하는 순서도이다. 단계(802)에서 컨테이너를 검출하기 위한 공간 검색이 수행될 수 있다. 유리하게, 공간 검색은 스트로크의 임의의 입력 및 스트로크의 오버 트레이스를 핸들링할 수 있다. 시간 순서 검색이 스트로크의 중첩을 핸들링하는 데 더 적절하기 때문에, 단계(804)에서 중첩하는 연속 스트로크를 갖는 컨테이너를 검출하게 위해 시간 순서 검색이 수행될 수 있다. 시간 순서 검색을 수행함으로써 발견된 임의의 추가 컨테이너를 공간 검색에 사용되는 이미지 그리드에 마크하여, 모든 발견된 컨테이너들이 추후에 내용 검출 및 연결 검출 동안 사용되도록 이미지 그리드에 포함되게 할 수 있다. 단계(806)에서, 임의의 컨테이너에 대한 내용 검출이 수행될 수 있다. 이 단계에서, 인식된 단어와 같은 임의의 내용의 바운딩 박스와 각 컨테이너의 교차 면적을 계산함으로써, 그 내용이 한 컨테이너에 속하는지가 결정될 수 있다.
도 9는 컨테이너를 검출하기 위한 공간 검색을 위해 수행되는 단계들의 일 실시예를 개괄적으로 나타낸 순서도이다. 단계(902)에서, 이미지 그리드는 생성될 수 있고, 드로잉 객체의 스트로크들이 생성된 그리드 상에 배치될 수 있다. 일 실시예에서, 그리드 크기를 적절한 값으로 설정하여 컨테이너 스트로크들 간의 간격을 제거할 수 있지만, 컨테이너의 내부에는 여전히 텅빈 영역이 남는다. 적절한 값을 선택하기 위하여, 테스트 데이타를 검사함으로써 그리드 크기를 실험적으로 결정하여, 가능한 한 많은 컨테이너가 검출될 것을 보장할 수 있다. 이러한 결정의 결과로서, 그리드 크기는 2.5㎜로 설정될 수 있다. 드로잉 스트로크와 교차하는 그리드들은 단계(904)에서 마크될 수 있다. 어느 그리드가 드로잉 스트로크와 교차하는지를 검사하기 위해, 드로잉 스트로크가 균일한 스텝사이즈(stepsize)로 다시 샘플링될 수 있고, 다시 샘플링된 포인트들이 이미지 그리드 상에 배치된 위치가 검사될 수 있다. 도 10a에 나타난 바와 같이, 컨테이너(1004), 커낵터(1006) 및 컨테이너(1008)의 드로잉 스트로크와 교차하는 그리드가 이미지 그리드(1002)에 마크된다. 컨테이너(1004, 1008)는 이미지 그리드(1002) 내에서 8-이웃 연결 영역이 된다.
단계(906)에서, 드로잉 스트로크와 교차하는 마크된 그리드에 도달할 때까지, 이미지 그리드의 외부 에지로부터 시작하여 최외곽의 블랭크 그리드가 색 채우기될 수 있다. 도 10b에 나타난 바와 같이, 컨테이너(1004, 1008)는 이미지 그리드(1002)에 블랭크 그리드의 섬으로서 나타날 수 있다. 단계(908)에서, 블랭크 그리드의 섬은 색 채우기될 수 있다. 각 섬에 대해서, 하나의 내부 블랭크 그리드가 시작 그리드로서 선택되고, 그 그리드로부터 소정의 스트로크와 교차하는 그리드들에 의해 형성된 경계에 도달할 때까지, 모든 인접한 블랭크 그리드가 색 채우기될 수 있다. 섬의 경계에 도달되면, 컨테이너 후보자를 형성하는 스트로크들이 기록된다. 예를 들어, 도 10c는 컨테이너(1004, 1008)의 섬이 색 채우기되는 것으로 나타내고 있다. 색 채우기된 섬 둘레의 경계는 이런 후보자 컨테이너의 드로잉 스트로크와 교차한다.
블랭크 그리드의 섬을 색 채우기하는 단계는 유효 컨테이너가 아닐 수 있는 후보자 컨테이너를 식별하는 것으로 귀결될 수 있다. 그러므로, 단계(910)에서, 후보자 컨테이너가 유효 컨테이너인지를 확인하기 위해, 후보자 컨테이너가 검사될 수 있다. 각 후보자 컨테이너의 드로잉 스트로크는 색 채우기된 섬의 경계 그리드의 외부에 있는 스트로크를 가질 수 있다. 예를 들어, 도 11a는 색 채우기된 섬(1110)을 둘러싸는 경계 그리드(1106)의 외부에 있는 스트로크(1104, 1112)를 갖는 후보자 컨테이너(1108)를 갖는 이미지 그리드(1102)를 나타내고 있다. 후보자 컨테이너의 하나의 스트로크와 교차하는 모든 그리드에 대해, 색 채우기된 섬 그리드에 인접한 그리드는 유효인 것으로 정의되고, 그 외의 것은 무효인 것으로 정의될 수 있다. 유효 그리드에 대한 무효 그리드의 비율이 실험치(예를 들어, 0.2) 보다 크면, 대응하는 스트로크는 무효로 정의될 수 있다. 그러한 무효 스트로크들은 제거될 수 있다. 예를 들어, 도 11a의 스트로크(1104, 1112)는 무효 스트로크이다. 모든 무효 스트로크를 제거한 후에도, 컨테이너 후보자가 그것이 여전히 폐쇄되어 있으면(즉, 폐쇄된 영역을 형성하면), 그 컨테이너 후보자는 유효이다. 컨테이너가 여전히 폐쇄되어 있는지를 결정하기 위해, 도 9에서 컨테이너 검출을 위해 사용된 것과 동일한 단계들이 사용될 수 있다. 즉, 컨테이너 후보자의 블랭크 그리드의 섬이 색 채우기될 수 있고, 만약 섬 외부의 소정의 블랭크 그리드에 도달될 수 있으면, 그 컨테이너 후보자는 더 이상 폐쇄되어 있지 않은 것으로 결정될 수 있다.
유효한 폐쇄 컨테이너는 내부 드로잉 스트로크와 같은 기타 드로잉 스트로크를 포함하거나, 다른 컨테이너 후보자와 드로잉 스트로크를 공유할 수 있다. 유효 컨테이너가 내부 드로잉 스트로크를 포함하는 경우, 일 실시예에서는, 도 11b에 나타나 있는 바와 같이 내부 드로잉 스트로크가 컨테이너의 내용으로서 취급될 수 있다. 이미지 그리드(1114)의 컨테이너(1116)는 컨테이너(1116)의 내용으로서 취급될 수 있는 내부 드로잉 스트로크(1118)를 포함한다. 컨테이너 후보자가 다른 컨테이너 후보자와 드로잉 스트로크를 공유하는 경우, 일 실시예에서는, 공유된 스트로크가 분리될 수 있고 후보자 컨테이너 중 하나에 속하도록 결정될 수 있다. 예를 들어, 도 11c는 유효 경계의 일부가 각 컨테이너 후보자에 의해 공유되는 이미지 그리드(1120)의 컨테이너 후보자(1122, 1124)를 나타내고 있다. 경계의 공유 부분의 그리드와 교차하는 드로잉 스트로크가 2개 존재한다. 경계의 공유 부분의 각 스트로크에 대해, 드로잉 스트로크의 포인트들이 다시 샘플링되고, 각 후보자 컨테이너의 중심까지의 평균 거리가 계산된다. 드로잉 스트로크는 그 중심까지의 평균 거리가 가장 짧은 후보자 컨테이너에 속한 것으로 할당된다. 다른 후보자 컨테이너가 드로잉 스트로크를 상실한 결과로서 더 이상 폐쇄되어 있지 않게 되면, 그 후보자 컨테이너는 무효 후보자 컨테이너가 될 것이다. 그러나, 도 11c에 설명된 바와 같이, 컨테이너 후보자(1122, 1124)의 유효 경계의 공유 부분과 교차하는 2개의 드로잉 스트로크는 그 중심까지의 평균 거리가 가장 짧은 컨테이너 후보자에 속하는 것으로 각각 할당될 수 있다. 컨테이너 후보자들은 각각 2개의 스트로크 중 하나를 할당받으므로, 둘 다 모두 폐쇄된 채로 있을 수 있고, 여전히 유효하다.
일 실시예에서, 시간 순서 검색이 스트로크의 중첩을 핸들링하는 데에 더 적절할 수 있기 때문에, 공간 검색 후에 시간 순서 검색이 수행될 수 있다. 일반적으로, 연속적인 스트로크들의 시퀀스로부터 형성된 컨테이너는, 입력 스트로크의 한 시퀀스가 컨테이너를 형성할 확률을 결정함으로써 시간 순서 검색을 사용하여 찾아질 수 있다. 본 실시예에서, p(i,j)는 (i,j) -즉, i로부터 j까지 입력 스트로크 시퀀스- 가 컨테이너일 수 있는 확률을 나타낼 수 있다. p(i,j)는 다음과 같이 정의될 수 있다.
여기서, vb는 유효 경계 비를, va는 유효 면적 비를, s(i,j)는 스트로크의 개수를, w1, w2, w3는 가중치를, VA 및 VB는 va 및 vb에 대한 임계치를 각각 나타낸다. 유효 경계 비율은 vb = 유효 경계 길이/총 경계 길이로서 정의될 수 있다. 컨테이너 후보자의 무효 영역 면적은 해당 컨테이너 후보자에 속하지 않는 소정의 내부 드로잉 스트로크와 교차하는 영역으로서 정의될 수 있고, 유효 영역 면적은 임의의 무효 영역 면적을 제외한 컨테이너 후보자 내의 면적으로서 정의될 수 있다. 유효 면적 비율은 va = 유효 영역 면적/총 면적으로서 정의될 수 있다. 도 12는 내부 드로잉 스트로크(1206)와 교차하는 무효 영역 면적을 포함하는 후보자 컨테이너(1202)의 유효 영역 면적(1204)의 설명의 예를 나타낸다. 본 기술 분야의 숙련자라면, 유효 경계 길이, 총 경계 길이, 유효 영역 및 총 영역의 특징은, 도 9와 관련하여 전술된 바와 같이 공간 검색 동안 후보자 컨테이너들의 경계들을 식별하기 위해 사용되는 것과 동일한 프로세스로 이미지 그리드를 사용하여 결정될 수 있음을 이해할 것이다. 0.15 및 0.25와 같은 실험치가 VB 및 VA로 사용될 수 있고, 0.4, 0.4 및 0.2와 같은 실험치가 가중치 w1, w2, w3로 사용될 수 있다. 스트로크의 개수 s(i,j)는 s(i,j) = j - i + 1과 같이 정의될 수 있다. 도 13에 설명된 바와 같이, 스트로크의 개수의 특징은 컨테이너 근처의 임의의 작은 스트로크들의 잘못된 그룹화를 방지하는 데에 사용될 수 있다. 컨테이너(1302)를 형성하는 데에 사용되는 스트로크의 개수가 둘러싼 영역(1308)에 대해 결정될 수 있고, 컨테이너(1302) 및 커낵터(1304)의 일부를 형성하는 영역(1306)에서 발견되는 스트로크의 수와 구별될 수 있다.
도 14는 시간 순서 검색을 수행하기 위해 행해진 단계들의 구현을 개괄적으로 나타낸 순서도이다. 단계(1402)에서, 유효 경계 비율 vb가 결정될 수 있다. 단계(1404)에서, 유효 면적 비율 va가 결정될 수 있다. 단계(1406)에서, 스트로크의 개수 b(i, j)가 결정될 수 있다. 단계(1408)에서, 컨테이너들은 입력 스트로크 시퀀스로부터 결정될 수 있다. 일 실시예에서, 컨테이너는 P(m,n)의 해를 구함으로써 입력 스트로크 시퀀스 (m,n) 내에서 찾을 수 있다. 입력 스트로크 시퀀스 (m,n)을 k개의 서브시퀀스 i1, i2, Λ, ik로 분할하는 것에 대하여, P(m,n)은 다음과 같이 정의될 수 있다.
P(m, n) = max(p(m,i1) + p(i1 + 1, i2) + Λ+ p(ik + 1,n))
입력 스트로크들은 P(m,n)을 계산함으로써 정확한 컨테이너로 그룹화될 수 있다. 일 실시예에서, 동적 프로그래밍이 P(m,n)을 계산하는 데에 사용될 수 있고, 여기서 P(m,n)은 다음과 같이 정의된 반복 절차(recursive procedure)로서 표현될 수 있다.
시간 순서 검색을 수행함으로써 발견된 임의의 추가적인 컨테이너로 공간 검색을 위해 사용되는 이미지 그리드 내에 표시되어, 발견된 모든 컨테이너가 추후에 내용 검출 및 커낵터 검출 동안 사용되도록 이미지 그리드 내에 포함될 수 있게 한다.
컨테이너를 검출하기 위한 공간 검색 및 시간 순서 검색을 수행한 후에, 컨테이너에 속할 수 있는 인식된 단어와 같은 임의의 내용에 대한 내용 검출이 이미지 그리드 내에서 수행될 수 있다. 예를 들어, 라이팅된 단어의 바운딩 박스와 컨테이너의 경계 그리드의 교차 면적을 계산함으로써, 그 라이팅된 단어가 컨테이너에 속하는지의 여부가 검사될 수 있다. 도 15는 컨테이너의 내용 검출을 수행하기 위해 행해지는 단계들의 한 실시예를 개괄적으로 나타낸 순서도이다. 단계(1502)에서, 이미지 그리드에서 식별된 임의의 텍스트에 대하여, 최소 바운딩 직사각형 및 그 면적이 결정될 수 있다. 단계(1504)에서, 각각의 컨테이너와 최소 바운딩 직사각형의 교차 면적이 결정될 수 있다. 단계(1506)에서, 교차 면적과 최소 바운딩 직사각형 면적의 비율이 계산될 수 있다. 단계(1508)에서, 최대 교차 비율을 갖는 컨테이너가 해당 내용이 속하는 컨테이너로 선택될 수 있다. 예를 들어, 도 16은 이미지 그리드(1602)에서 단어 "hello"를 둘러싼 바운딩 직사각형(1606)을 도시하고 있다. 컨테이너(1604)와의 교차 비율이 컨테이너(1608)와의 교차 비율보다 더 크기 때문에, 단어 "hello"는 컨테이너(1604)에 속하는 것으로 결정될 수 있다. 일 실시예에서, 교차 비율은 실험상의 임계치(예를 들어, 0.55)보다 크도록 요구될 수도 있다.
임의의 컨테이너 및 그와 관련된 내용이 이미지 그리드에서 검출되고 나면, 커낵터 검출이 수행될 수 있다. 도 17은 잉크 입력에 내의 커낵터의 검출을 위해 행해지는 단계들의 한 실시예를 개괄적으로 나타내는 순서도이다. 일반적으로, 컨테이너가 마크되어 있는 이미지 그리드 내에서 검색이 수행되어, 모든 비-컨테이너스트로크(non-container stroke)를 포함하는 방문되지 않은 드로잉 스트로크의 그리드들 중에서 임의의 커낵터를 검출할 수 있다. 일부 사용자들은 커낵터를 컨테이너로부터 멀리 떨어져서 작게 그리는 경향이 있으므로, 커낵터가 대응 컨테이너에 인접할 수 있도록 컨테이너가 팽창될 수 있다. 도 18a는 커낵터(1806)와 교차하는 방문되지 않은 그리드와 마크된 컨테이너의 경계(1804 및 1808) 사이의 그리드가 색 채우기되어 있는 이미지 그리드(1802)를 나타내고 있다. 그러한 커낵터를 검출하기 위하여, 단계(1702)에서, 방문되지 않은 드로잉 스트로크와 인접하지 않은 고립된 컨테이너는, 컨테이너의 경계를 둘러싼 마크된 그리드로 팽창될 수 있다. 팽창 처리는 방문되지 않은 그리드 또는 또다른 컨테이너에 도달할 때 정지될 수 있다. 이러한 방식으로, 도 18b에서 도시되는 바와 같이, 커낵터는 대응하는 팽창된 컨테이너에 인접할 수 있다. 도 18b의 이미지 그리드(1810)에서 도시된 컨테이너는 자신의 경계가 표시된 그리드로 둘러 싸이게 하여, 팽창된 컨테이너(1812 및 1816)를 생성한다. 결과적으로, 커낵터(1814)의 방문되지 않은 드로잉 스트로크와 교차하는 그리드는 팽창된 컨테이너의 그리드와 인접할 수 있다.
도 17의 단계(1704)에서, 방문되지 않은 그리드는 색 채우기될 수 있다. 방문되지 않은 하나의 그리드가 시작 그리드로서 선택되고, 그 그리드로부터 시작하여 모든 인접한 방문되지 않은 그리드가 색 채우기될 수 있다. 이러한 색 채우기된 그리드가 팽창된 컨테이너를 포함하여 2개 이상의 컨테이너에 도달하면, 대응하는 드로잉 스트로크는 커낵터 후보자로 기록된다. 도 19a의 이미지 그리드(1902)에서 도시된 바와 같이, 팽창된 컨테이너들(1904 및 1908) 사이의 색 채우기된 그리드는 커낵터 후보자(1906)를 형성한다. 일 실시예에서, 이미지 그리드 내의 컨테이너의 경계는 커낵터를 형성하는 방문되지 않은 드로잉 스트로크와 이미 인접해 있을 수 있다. 이 경우에, 방문되지 않은 그리드는 먼저 컨테이너를 팽창시키지 않고 색 채우기될 수 있다. 도 19b는 이러한 경우를 이미지 그리드 내에 나타내고 있으며, 이 때 색 채우기된 그리드는 팽창없이 컨테이너들(1912 및 1916) 사이에서 커낵터 후보자를 형성할 수 있다.
드로잉 스트로크의 방문되지 않은 그리드를 색 채우기하는 단계는 결과적으로 유효한 커낵터가 아닐 수 있는 후보자 커낵터를 식별할 수 있다. 따라서, 단계(1706)에서, 후보자 커낵터는 그들이 유효한 커낵터임을 확인하기 위하여 검사될 수 있다. 후보자 커낵터가 컨테이너와 접속되지 않은 드로잉 스트로크를 갖는다면, 그 후보자 커낵터는 무효일 수 있다. 일 실시예에서, 컨테이너에 연결되지 않은 후보자 커낵터의 드로잉 스트로크가 있을 수 있음을 검출하기 위하여, 슬라이딩 윈도우가 커낵터 후보자를 따라 이동하여, 슬라이딩 윈도우의 경계와 드로잉 스트로크의 교차점의 수가 후보자 커낵터가 결합할 수 있는 인접 컨테이너의 수를 넘지 않음을 확인한다. 슬라이딩 윈도우의 크기는 국부적인 분산과의 잘못된 교차를 회피하기 위한 실험적인 크기로 설정될 수 있다. 일 실시예에서, 윈도우의 반경은 4mm일 수 있다. 예를 들어, 후보자 커낵터가 N개의 컨테이너를 결합하고(N >= 2), M은 슬라이딩 윈도우 경계와 후보자 커낵터의 드로잉 스트로크의 교차점 개수라고 가정하면, 슬라이딩 윈도우가 커낵터 후보자를 따라 이동될 때 임의의 위치에서 M>N인 경우에, 커낵터 후보자는 유효하다고 간주될 수 있다. 예를 들어, 도 20a는 컨테이너(2002), 컨테이너(2006) 및 컨테이너(2008)의 3개의 컨테이너를 결합하는 후보자 커낵터(2010)를 따라 이동되는 슬라이딩 윈도우(2004)의 3개의 위치를 도시한다. 도시된 각각의 위치에서, 교차점 개수는 후보자 컨테이너가 결합될 수 있는 컨테이너 개수보다 작다. 교차점 개수가 결합된 컨테이너의 개수를 초과하지 않기 때문에, 커낵터 후보자는 유효하다. 한편, 도 20b는 슬라이딩 윈도우(2014)의 경계 내의 교차점 개수가 결합된 컨테이너(2012, 2016 및 2018)의 개수보다 더 큰 무효 커낵터 후보자(2020)의 검출을 도시한다. 컨테이너를 결합하지 않은 드로잉 스트로크를 포함한다면, 후보자 커낵터는 무효일 수 있다. 예를 들어, 도 20c는 컨테이너(2022, 2026 및 2028) 중 어느 것도 결합하지 않은 후보자 커낵터(2030)의 드로잉 스트로크를 슬라이딩 윈도우(2024) 내에 도시한다. 결과적으로, 후보자 커낵터(2030)는 무효 커낵터이다.
컨테이너 및 커낵터가 검출되고 나면, 핸드 라이팅 객체의 구조 관계가 이해될 수 있다. 도 21은 드로잉 객체의 검출을 수행한 후에, 잉크 입력 내의 핸드 라이팅 객체의 구조 관계를 개괄적으로 나타내는 예시 도면이다. 루트(2002)는 드로잉 객체(2106)와 같은 하나 이상의 드로잉 객체를 포함할 수 있는 한 페이지의 잉크 입력과 같은 잉크 입력을 나타낼 수 있다. 차트(2104)와 같은 드로잉 객체는, 잉크 입력 내에서 핸드 드로잉 객체의 검출 및 형상 인식을 수행함으로써 검출 및 인식될 수 있다. 차트(2104)는 커낵터(2112)에 의해 결합된 컨테이너(2108 및 2110)에 의해 형성될 수 있다. 컨테이너(2108)는 스트로크(2120)에 의해 형성된 단어(2118)를 갖는 행(2116)으로 구성될 수 있는 문단(2114)에 의해 구조적으로 표현될 수 있는 텍스트와 같은 관련 내용을 포함할 수 있다.
전술된 시스템 및 방법에 의해 모든 컨테이너 및 커낵터가 검출된 후에, 잉크 입력 내의 핸드 드로잉 객체는 완전히 인식 및 생성될 수 있다. 본 발명을 사용함으로써, 사용자는 핸드 드로잉 입력에 대한 제한없이 자유롭게 다이어그램 및 순서도를 드로잉할 수 있다. 하나의 형상은 많은 스트로크를 가질 수 있고 스트로크의 입력 순서는 임의적이어서, 본 시스템 및 방법이 임의의 잉크를 입력으로서 수용할 수 있도록 한다. 또한, 스트로크는 오버 트레이스 또는 중첩될 수 있다. 어느 경우에라도, 본 시스템 및 방법은 자동적으로 정확한 형상을 검출할 수 있다.
상기의 상세된 설명으로부터 알 수 있는 바와 같이, 본 발명은 핸드 드로잉 객체의 검출을 위한 시스템 및 방법을 제공한다. 유리하게도, 본 시스템 및 방법은 스트로크 입력 순서, 및 핸드 드로잉 형상을 형성할 수 있는 스트로크의 개수에 민감하지 않다. 또한, 제공되는 시스템 및 방법은 유연하고 확장적이다. 이해되는 바와 같이, 본 발명은 다이어그램 및 차트를 포함하는 드로잉 내의 임의의 폐쇄 컨테이너 및 비폐쇄 커낵터를 검출하는 데 사용될 수 있다. 검출되고 나면, 형상의 타입, 위치, 배향 및 크기가 인식될 수 있다. 따라서, 본 방법 및 시스템은 최신 컴퓨팅에 필요한 큰 장점 및 이점을 제공한다.
본 발명은 다양한 변경 및 대안적인 구성을 수용할 수 있으며, 여기에 설명된 특정 실시예는 도면에서 도시되고 앞서 상세히 설명되었다. 그러나, 본 발명을 개시된 특정 형태로 제한하려는 의도가 없으며, 반대로, 본 발명은 본 발명의 취지 및 범주 내의 모든 변경, 대안적인 구성 및 그 동등물을 포함하고 있음을 이해해야 한다.
본 발명에 의하면, 사용자는 핸드 드로잉 입력에 대한 제한없이 자유롭게 다이어그램 및 순서도를 그릴 수 있다.
도 1은 본 발명이 구현될 수 있는 컴퓨터 시스템을 나타내는 블록도.
도 2는 본 발명의 일 양태에 따라, 잉크 입력 내 핸드 드로잉 객체의 검출 및 핸드 드로잉 객체의 형상 인식을 위한 시스템 컴포넌트의 예시적인 아키텍쳐를 나타내는 블록도.
도 3은 본 발명의 일 양태에 따라, 잉크 입력 내 핸드 드로잉 객체의 검출 및 핸드 드로잉 객체의 형상 인식을 위해 행하는 단계들을 나타내는 순서도.
도 4는 본 발명에 일 양태에 따라, 핸드 드로잉 객체의 검출 및 형상 인식을 행하는 데 사용될 잉크 입력 내 핸드 라이팅 객체들의 구조적인 관계를 나타내는 예시 도면.
도 5a-5c는 본 발명의 일 양태에 따라, 핸드 드로잉 객체의 검출 및 형상 인식을 위해 지원되는 잉크 입력 내 컨테이너들의 유형을 나타내는 예시 도면.
도 6a-6d는 본 발명의 일 양태에 따라, 핸드 드로잉 객체의 검출 및 형상 인식을 위해 지원되는 잉크 입력 내 커낵터들의 유형을 나타내는 예시 도면.
도 7은 본 발명의 일 양태에 따라, 잉크 입력 내 컨테이너 및 커낵터의 검출을 위해 행하는 단계들의 일 실시예를 나타내는 순서도.
도 8은 본 발명의 일 양태에 따라, 잉크 입력 내 컨테이너의 검출을 위해 행하는 단계들의 일 실시예를 나타내는 순서도.
도 9는 본 발명의 일 양태에 따라, 컨테이너를 검출하기 위한 공간 검색을 위해 행하는 단계들의 일 실시예를 나타내는 순서도.
도 10a-10c는 본 발명의 일 양태에 따라, 공간 검색의 여러 단계 동안 화상 그리드 내 컨테이너들의 묘사를 나타내는 예시 도면.
도 11a-11c는 본 발명의 일 양태에 따라, 공간 검색 동안 이미지 그리드 내 확인을 위한 후보자들인 컨테이너들의 묘사를 나타내는 예시 도면.
도 12는 본 발명의 일 양태에 따라, 후보자 컨테이너의 유효 면적의 묘사를 나타내는 예시 도면.
도 13은 본 발명의 일 양태에 따라, 후보자 컨테이너의 스트로크의 수를 그룹화하는 묘사를 나타내는 예시 도면.
도 14는 본 발명의 일 양태에 따라, 시간 순서 검색을 위해 행하는 단계들의 일 실시예를 나타내는 순서도.
도 15는 본 발명의 일 양태에 따라, 컨테이너의 내용 검출을 위해 행하는 단계들의 일 실시예를 나타내는 순서도.
도 16은 본 발명의 일 양태에 따라, 컨테이너 내용의 검출을 나타내는 예시 도면.
도 17은 본 발명의 일 양태에 따라, 잉크 입력 내 커낵터들의 검출을 위해 행하는 단계들의 일 실시예를 나타내는 순서도.
도 18a-18b는 본 발명의 일 양태에 따라, 이미지 그리드 내 커낵터의 검출의 묘사를 나타내는 예시 도면.
도 19a-19b는 본 발명의 일 양태에 따라, 이미지 그리드 내 커낵터 후보자들의 묘사를 나타내는 예시 도면.
도 20a-20c는 본 발명의 일 양태에 따라, 유효 및 무효 커낵터 후보자들의 묘사를 나타내는 예시 도면.
도 21은 본 발명의 일 양태에 따라, 드로잉 객체의 검출을 행한 후 잉크 입력 내 핸드 라이팅 객체들의 구조적 관계를 나타내는 예시 도면.
<도면의 주요 부분에 대한 부호의 설명>
202 : 잉크 파서
204 : 차트 검출기
206 : 형상 인식기
208 : 컨테이너 인식기
210 : 커낵터 인식기
212 : 컨테이너 검출기
214 : 커낵터 검출기

Claims (40)

  1. 핸드 드로잉 형상을 검출하기 위한 컴퓨터 시스템에 있어서,
    잉크 입력을 수신하는 차트 검출기;
    상기 차트 검출기에 동작적으로 연결되어, 잉크 입력 내의 폐쇄 컨테이너(closed container)를 검출하는 컨테이너 검출기; 및
    상기 차트 검출기에 동작적으로 연결되어, 잉크 입력 내의 커낵터를 검출하는 커낵터 검출기
    를 포함하는 시스템.
  2. 제1항에 있어서,
    상기 차트 검출기에 동작적으로 연결되어, 상기 차트 검출기에 잉크 입력을 송신하는 잉크 파서(ink parser)를 더 포함하는 시스템.
  3. 제2항에 있어서,
    상기 잉크 파서에 동작적으로 연결되어, 핸드 드로잉 형상을 인식하는 형상 인식기를 더 포함하는 시스템.
  4. 제3항에 있어서,
    상기 형상 인식기는, 상기 형상 인식기에 동작적으로 연결된 컨테이너 인식기를 포함하는 시스템.
  5. 제3항에 있어서,
    상기 형상 인식기는, 상기 형상 인식기에 동작적으로 연결된 커낵터 인식기를 포함하는 시스템.
  6. 제1항에 따른 시스템을 포함하는 컴퓨터 실행가능 컴포넌트를 포함하는 컴퓨터 판독가능 매체.
  7. 핸드 드로잉 형상을 검출하는 방법에 있어서,
    잉크 입력을 수신하는 단계;
    상기 잉크 입력 내의 각각의 컨테이너에 대한 컨테이너 검출을 수행하는 단계; 및
    상기 잉크 입력 내의 각각의 커낵터에 대한 커낵터 검출을 수행하는 단계
    를 포함하는 방법.
  8. 제7항에 있어서,
    상기 잉크 입력을 파싱하여, 상기 잉크 입력 내의 드로잉으로부터 라이팅(writing)을 구별해내는 단계를 더 포함하는 방법.
  9. 제7항에 있어서,
    잉크 입력 내의 다이어그램의 스트로크를 식별하기 위한 차트 검출을 수행하는 단계를 더 포함하는 방법.
  10. 제7항에 있어서,
    상기 잉크 입력 내에서 검출된 각각의 컨테이너 및 각각의 커낵터의 형상을 인식하기 위한 형상 인식을 수행하는 단계를 더 포함하는 방법.
  11. 제10항에 있어서,
    상기 잉크 입력 내에서 인식된 각각의 컨테이너 및 각각의 커낵터로 드로잉을 생성하는 단계를 더 포함하는 방법.
  12. 제7항에 있어서,
    상기 컨테이너 검출을 수행하는 단계는, 컨테이너를 검출하기 위한 공간 검색을 수행하는 단계를 포함하는 방법.
  13. 제7항에 있어서,
    상기 컨테이너 검출을 수행하는 단계는, 이미지 그리드를 생성하고 상기 잉크 입력으로부터의 스트로크들을 상기 생성된 이미지 그리드 상에 배치하는 단계를 포함하는 방법.
  14. 제7항에 있어서,
    상기 컨테이너 검출을 수행하는 단계는, 이미지 그리드 상에 배치된 잉크 입력의 스트로크들과 교차하는 상기 이미지 그리드의 그리드를 마크하는 단계를 포함하는 방법.
  15. 제7항에 있어서,
    상기 컨테이너 검출을 수행하는 단계는, 이미지 그리드 상에 배치된 잉크 입력의 스트로크와 교차하는 마크된 그리드에 도달할 때까지, 상기 이미지 그리드의 최외곽 블랭크 그리드(outmost blank grid)를 색 채우기(flood filling)하는 단계를 포함하는 방법.
  16. 제7항에 있어서,
    상기 컨테이너 검출을 수행하는 단계는, 이미지 그리드 상에 배치된 잉크 입력의 스트로크와 교차하는 마크된 그리드에 도달할 때까지, 상기 이미지 그리드의 블랭크 그리드들의 섬(island)을 색 채우기하는 단계를 포함하는 방법.
  17. 제7항에 있어서,
    상기 컨테이너 검출을 수행하는 단계는, 컨테이너 후보자가 유효 컨테이너인지를 검사하는 단계를 포함하는 방법.
  18. 제17항에 있어서,
    상기 컨테이너 후보자가 유효 컨테이너인지를 검사하는 단계는, 이미지 그리드 상에 배치된 컨테이너 후보자의 스트로크와 교차하는 모든 경계 그리드가, 색 채우기된 섬 그리드에 인접하는지를 검사하는 단계를 포함하는 방법.
  19. 제17항에 있어서,
    상기 컨테이너 후보자가 유효 컨테이너인지를 검사하는 단계는, 이미지 그리드 상에 배치된 컨테이너 후보자의 스트로크 중 상기 이미지 그리드 내의 경계 그리드와 교차하지 않는 임의의 스트로크들을 제거하는 단계를 포함하는 방법.
  20. 제17항에 있어서,
    상기 컨테이너 후보자가 유효 컨테이너인지를 검사하는 단계는, 상기 컨테이너 후보자가 폐쇄 컨테이너인지를 결정하는 단계를 포함하는 방법.
  21. 제17항에 있어서,
    상기 컨테이너 후보자가 유효 컨테이너인지를 검사하는 단계는, 컨테이너 후보자들 간에 공유되는 임의의 드로잉 스트로크를 분리하는 단계를 포함하는 방법.
  22. 제21항에 있어서,
    상기 임의의 드로잉 스트로크를 분리하는 단계는, 상기 드로잉 스트로크의 포인트들과 상기 드로잉 스트로크들 간에 공유되는 각각의 후보자 컨테이너의 중심 간의 평균 거리를 계산하고, 드로잉 스트로크를 상기 드로잉 스트로크의 포인트로부터 그 중심까지의 평균 거리가 가장 짧은 컨테이너 후보자에 속한 것으로 할당하는 단계를 포함하는 방법.
  23. 제7항에 있어서,
    상기 컨테이너 검출을 수행하는 단계는, 컨테이너를 검출하기 위하여 시간 순서 검색을 수행하는 단계를 포함하는 방법.
  24. 제23항에 있어서,
    상기 시간 순서 검색을 수행하는 단계는, 유효 경계 길이를 총 경계 길이로 나눈 것으로서 정의되는 유효 경계 비율을 계산하는 단계를 포함하며, 상기 경계는 이미지 그리드 상에 배치된 잉크 입력의 스트로크와 교차하는 마크된 그리드를 포함하는 방법.
  25. 제23항에 있어서,
    상기 시간 순서 검색을 수행하는 단계는, 유효 영역 면적을 총 면적으로 나눈 것으로서 정의되는 유효 면적 비율을 계산하는 단계를 포함하며, 상기 영역 면적은 이미지 그리드 상에 배치된 잉크 입력의 스트로크와 교차하는 마크된 그리드의 경계 내의 면적을 포함하는 방법.
  26. 제23항에 있어서,
    상기 시간 순서 검색을 수행하는 단계는, 입력 스트로크들의 시퀀스가 컨테이너를 형성할 확률을 계산함으로써, 상기 잉크 입력의 스트로크로부터 컨테이너를 결정하는 단계를 포함하는 방법.
  27. 제26항에 있어서,
    상기 입력 스트로크의 시퀀스가 컨테이너를 형성할 확률을 계산하는 단계는, 동적 프로그래밍을 사용하여 상기 입력 스트로크들을 세그먼트로 그룹화하는 단계를 포함하며, 상기 세그먼트 각각은 컨테이너를 형성하는 방법.
  28. 제7항에 있어서,
    상기 컨테이너 검출을 수행하는 단계는, 컨테이너에 속하는 임의의 내용을 검출하기 위한 내용 검출을 수행하는 단계를 포함하는 방법.
  29. 제28항에 있어서,
    상기 내용 검출을 수행하는 단계는, 상기 내용을 둘러싸는 최소 바운딩 직사각형을 결정하고, 그 면적을 계산하는 단계를 포함하는 방법.
  30. 제28항에 있어서,
    상기 내용 검출을 수행하는 단계는, 상기 최소 바운딩 직사각형과 각각의 교차 컨테이너의 교차 면적 비율을 계산하고, 상기 최소 바운딩 직사각형과 각각의 교차 컨테이너와의 교차 면적 비율이 최대인 컨테이너를 선택하는 단계를 포함하는 방법.
  31. 제7항에 있어서,
    상기 잉크 입력 내의 각각의 커낵터에 대한 커낵터 검출을 수행하는 단계는, 이미지 그리드 상에 배치된 잉크 입력의 방문되지 않은 스트로크(unvisited stroke)와 교차하는 그리드에 인접하지 않은 경계를 갖는 컨테이너를 팽창시키는 단계를 포함하는 방법.
  32. 제31항에 있어서,
    상기 컨테이너를 팽창시키는 단계는, 상기 방문되지 않은 스트로크와 교차하는 그리드에 도달할 때까지 상기 컨테이너의 경계를 둘러싸는 그리드들을 마크하는 단계를 포함하는 방법.
  33. 제31항에 있어서,
    상기 컨테이너를 팽창시키는 단계는, 다른 컨테이너의 경계 그리드에 도달할 때까지 상기 컨테이너의 경계를 둘러싸는 그리드들을 마크하는 단계를 포함하는 방법.
  34. 제7항에 있어서,
    상기 잉크 입력 내의 각각의 커낵터에 대한 커낵터 검출을 수행하는 단계는, 이미지 그리드 상에 배치된 잉크 입력의 방문되지 않은 스트로크와 교차하는 그리드를 색 채우기하는 단계를 포함하는 방법.
  35. 제7항에 있어서,
    상기 커낵터 검출을 수행하는 단계는, 커낵터 후보자들이 유효 커낵터인지를 검사하는 단계를 포함하는 방법.
  36. 제35항에 있어서,
    상기 커낵터 후보자들이 유효 커낵터인지를 검사하는 단계는, 커낵터 후보자의 스트로크가 컨테이너에 연결되는지를 검증하는 단계를 포함하는 방법.
  37. 제35항에 있어서,
    상기 커낵터 후보자들이 유효 커낵터인지를 검사하는 단계는, 커낵터 후보자의 스트로크의 교차점의 수가 상기 커낵터 후보자가 결합할 수 있는 인접 컨테이너의 수를 초과하지 않는지를 검증하는 단계를 포함하는 방법.
  38. 제37항에 있어서,
    상기 커낵터 후보자의 스트로크의 교차점의 수가 상기 커낵터 후보자가 결합할 수 있는 인접 컨테이너의 수를 초과하지 않는지를 검증하는 단계는, 상기 커낵터 후보자를 따라 이동할 수 있는 슬라이딩 윈도우를 사용하는 단계를 포함하는 방법.
  39. 제7항에 따른 방법을 수행하기 위한 컴퓨터 실행가능 명령을 포함하는 컴퓨터 판독가능 매체.
  40. 핸드 드로잉 형상을 검출하기 위한 컴퓨터 시스템에 있어서,
    잉크 입력을 수신하는 수단;
    잉크 입력 내의 폐쇄 컨테이너를 검출하는 수단; 및
    잉크 입력 내의 커낵터를 검출하는 수단
    을 포함하는 시스템.
KR1020040065799A 2003-09-24 2004-08-20 잉크 입력 내 핸드 드로잉 객체의 검출 시스템 및 방법 KR101076901B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US50586603P 2003-09-24 2003-09-24
US60/505,866 2003-09-24
US10/850,948 US7352902B2 (en) 2003-09-24 2004-05-20 System and method for detecting a hand-drawn object in ink input
US10/850,948 2004-05-20

Publications (2)

Publication Number Publication Date
KR20050030102A true KR20050030102A (ko) 2005-03-29
KR101076901B1 KR101076901B1 (ko) 2011-10-25

Family

ID=34198319

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040065799A KR101076901B1 (ko) 2003-09-24 2004-08-20 잉크 입력 내 핸드 드로잉 객체의 검출 시스템 및 방법

Country Status (10)

Country Link
US (1) US7352902B2 (ko)
EP (1) EP1519302B1 (ko)
JP (1) JP4723840B2 (ko)
KR (1) KR101076901B1 (ko)
CN (1) CN100535928C (ko)
AU (1) AU2004208732B2 (ko)
BR (1) BRPI0404101A (ko)
CA (1) CA2481828C (ko)
MX (1) MXPA04009151A (ko)
RU (1) RU2373575C2 (ko)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7295708B2 (en) * 2003-09-24 2007-11-13 Microsoft Corporation System and method for detecting a list in ink input
US7324691B2 (en) * 2003-09-24 2008-01-29 Microsoft Corporation System and method for shape recognition of hand-drawn objects
US7586490B2 (en) * 2004-10-20 2009-09-08 Siemens Aktiengesellschaft Systems and methods for three-dimensional sketching
AU2006252019B2 (en) * 2006-12-13 2012-06-28 Canon Kabushiki Kaisha Method and Apparatus for Dynamic Connector Analysis
US8806354B1 (en) * 2008-12-26 2014-08-12 Avaya Inc. Method and apparatus for implementing an electronic white board
KR101189003B1 (ko) 2011-03-30 2012-10-08 케이오씨엠(주) 만화콘텐츠 이미지파일을 모바일용 이미지파일로 변환하는 방법
WO2013191315A1 (ko) 2012-06-21 2013-12-27 엘지전자 주식회사 디지털 이미지 처리 장치 및 방법
GB201212521D0 (en) * 2012-07-13 2012-08-29 Wapple Net Ltd Drawing package
JP5774558B2 (ja) * 2012-08-10 2015-09-09 株式会社東芝 手書き文書処理装置、方法及びプログラム
JP5787843B2 (ja) * 2012-08-10 2015-09-30 株式会社東芝 手書き描画装置、方法及びプログラム
US9116871B2 (en) * 2013-05-20 2015-08-25 Microsoft Technology Licensing, Llc Ink to text representation conversion
US9524440B2 (en) 2014-04-04 2016-12-20 Myscript System and method for superimposed handwriting recognition technology
US9384403B2 (en) 2014-04-04 2016-07-05 Myscript System and method for superimposed handwriting recognition technology
US9489572B2 (en) 2014-12-02 2016-11-08 Myscript System and method for recognizing geometric shapes
US10417491B2 (en) 2015-10-19 2019-09-17 Myscript System and method for recognition of handwritten diagram connectors
US10643067B2 (en) 2015-10-19 2020-05-05 Myscript System and method of handwriting recognition in diagrams
US10228775B2 (en) * 2016-01-22 2019-03-12 Microsoft Technology Licensing, Llc Cross application digital ink repository
US20180173688A1 (en) * 2016-12-15 2018-06-21 Myscript System and method for management of handwritten diagram connectors
US10402642B2 (en) * 2017-05-22 2019-09-03 Microsoft Technology Licensing, Llc Automatically converting ink strokes into graphical objects
US10817266B2 (en) * 2018-09-25 2020-10-27 Salesforce.Com, Inc. Converting a captured image to visual programming logic for an automation building tool
JP7273291B2 (ja) * 2019-03-22 2023-05-15 フリュー株式会社 ゲームプログラム、方法、および、情報処理装置
US10957080B2 (en) * 2019-04-02 2021-03-23 Adobe Inc. Automatic illustrator guides
EP3736677A1 (en) 2019-05-10 2020-11-11 MyScript A method and corresponding device for selecting and editing handwriting input elements
EP3754537B1 (en) 2019-06-20 2024-05-22 MyScript Processing text handwriting input in a free handwriting mode
EP3772015B1 (en) 2019-07-31 2023-11-08 MyScript Text line extraction
EP3796145B1 (en) 2019-09-19 2024-07-03 MyScript A method and correspond device for selecting graphical objects

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02204881A (ja) * 1989-02-02 1990-08-14 Canon Inc 図形文字分離方法
US5038382A (en) * 1989-10-13 1991-08-06 International Business Machines Corporation Multi-scale recognizer for hand drawn strokes
US5239596A (en) * 1990-06-08 1993-08-24 Xerox Corporation Labeling pixels of an image based on near neighbor attributes
JPH0554089A (ja) * 1991-08-23 1993-03-05 Mitsubishi Electric Corp 図形認識装置及び認識誤り修正装置
JPH0628477A (ja) * 1992-04-27 1994-02-04 Digital Equip Corp <Dec> パターン知覚デバイス
US5544265A (en) * 1992-05-27 1996-08-06 Apple Computer, Inc. Shape recognizer for graphical computer systems
US5517578A (en) 1993-05-20 1996-05-14 Aha! Software Corporation Method and apparatus for grouping and manipulating electronic representations of handwriting, printing and drawings
US5537491A (en) * 1993-11-24 1996-07-16 Xerox Corporation Analyzing an image or other data to obtain a stable number of groups
JPH086707A (ja) 1993-12-30 1996-01-12 Xerox Corp スクリーン指向ディスプレー処理システム
JP3177138B2 (ja) * 1995-11-21 2001-06-18 日本電信電話株式会社 図面閉領域の抽出方法
US6009196A (en) * 1995-11-28 1999-12-28 Xerox Corporation Method for classifying non-running text in an image
US5864635A (en) * 1996-06-14 1999-01-26 International Business Machines Corporation Distinguishing gestures from handwriting in a pen based computer by stroke analysis
JPH11250256A (ja) * 1998-03-05 1999-09-17 Nippon Telegr & Teleph Corp <Ntt> 図形認識処理方法及びそのプログラムを記録した記録媒体
US6563955B2 (en) * 1998-11-13 2003-05-13 Xerox Corporation Method and apparatus for analyzing image data to use multiple transforms for enhanced image data transmission
JP2003208259A (ja) * 2002-01-10 2003-07-25 Ricoh Co Ltd 座標入力表示装置
US7136082B2 (en) * 2002-01-25 2006-11-14 Xerox Corporation Method and apparatus to convert digital ink images for use in a structured text/graphics editor
US7139004B2 (en) 2002-01-25 2006-11-21 Xerox Corporation Method and apparatus to convert bitmapped images for use in a structured text/graphics editor
US20040090439A1 (en) * 2002-11-07 2004-05-13 Holger Dillner Recognition and interpretation of graphical and diagrammatic representations
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

Also Published As

Publication number Publication date
RU2373575C2 (ru) 2009-11-20
CA2481828A1 (en) 2005-03-24
CN1619576A (zh) 2005-05-25
EP1519302A3 (en) 2006-06-21
US7352902B2 (en) 2008-04-01
AU2004208732A1 (en) 2005-04-07
KR101076901B1 (ko) 2011-10-25
US20050063594A1 (en) 2005-03-24
EP1519302B1 (en) 2016-04-13
RU2004128383A (ru) 2006-03-10
JP2005100398A (ja) 2005-04-14
BRPI0404101A (pt) 2005-05-24
JP4723840B2 (ja) 2011-07-13
CA2481828C (en) 2015-01-13
MXPA04009151A (es) 2005-06-17
CN100535928C (zh) 2009-09-02
EP1519302A2 (en) 2005-03-30
AU2004208732B2 (en) 2010-06-03

Similar Documents

Publication Publication Date Title
KR101076901B1 (ko) 잉크 입력 내 핸드 드로잉 객체의 검출 시스템 및 방법
US9911052B2 (en) System and method for superimposed handwriting recognition technology
RU2372654C2 (ru) Система и способ для распознавания формы рукописных объектов
US10007859B2 (en) System and method for superimposed handwriting recognition technology
JP6777723B2 (ja) 複数のオブジェクトの入力を認識するためのシステムならびにそのための方法および製品
KR101085605B1 (ko) 잉크 입력에서 리스트를 검출하기 위한 시스템 및 방법
JP2006146894A (ja) 階層リストおよびアウトラインを構文解析すること
JP2006338687A (ja) 走査された及びリアルタイムの手書き文字の識別を行う文字認識システム
JP2006260573A (ja) 単語または文字の境界ベースのスクラッチアウトジェスチャ認識
CN111507330B (zh) 习题识别方法、装置、电子设备及存储介质
KR102310385B1 (ko) 중첩된 필기 인식 기술을 위한 시스템 및 방법

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20140929

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20150918

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20160921

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20170919

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20180918

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20190917

Year of fee payment: 9