KR102257172B1 - 기하학적 형상들을 인식하는 시스템 및 방법 - Google Patents

기하학적 형상들을 인식하는 시스템 및 방법 Download PDF

Info

Publication number
KR102257172B1
KR102257172B1 KR1020177014707A KR20177014707A KR102257172B1 KR 102257172 B1 KR102257172 B1 KR 102257172B1 KR 1020177014707 A KR1020177014707 A KR 1020177014707A KR 20177014707 A KR20177014707 A KR 20177014707A KR 102257172 B1 KR102257172 B1 KR 102257172B1
Authority
KR
South Korea
Prior art keywords
constraint
primitive
constraints
input stroke
gesture
Prior art date
Application number
KR1020177014707A
Other languages
English (en)
Other versions
KR20170087895A (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 KR20170087895A publication Critical patent/KR20170087895A/ko
Application granted granted Critical
Publication of KR102257172B1 publication Critical patent/KR102257172B1/ko

Links

Images

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
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • G06F3/04883Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures for inputting data by handwriting, e.g. gesture or text
    • 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
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04845Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range for image manipulation, e.g. dragging, rotation, expansion or change of colour
    • G06K9/00416
    • G06K9/00422
    • G06K9/481
    • G06K9/52
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/20Drawing from basic elements, e.g. lines or circles
    • G06T11/203Drawing of straight lines or curves
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/60Editing figures and text; Combining figures or text
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/60Analysis of geometric attributes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/42Global feature extraction by analysis of the whole pattern, e.g. using frequency domain transformations or autocorrelation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/46Descriptors for shape, contour or point-related descriptors, e.g. scale invariant feature transform [SIFT] or bags of words [BoW]; Salient regional features
    • G06V10/469Contour-based spatial representations, e.g. vector-coding
    • 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/18Extraction of features or characteristics of the image
    • G06V30/182Extraction of features or characteristics of the image by coding the contour of the pattern
    • G06V30/1823Extraction of features or characteristics of the image by coding the contour of the pattern using vector-coding
    • 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/18Extraction of features or characteristics of the image
    • G06V30/186Extraction of features or characteristics of the image by deriving mathematical or geometrical properties from the whole image
    • 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/32Digital ink
    • 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/32Digital ink
    • G06V30/333Preprocessing; Feature extraction
    • G06V30/347Sampling; Contour coding; Stroke extraction
    • 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/32Digital ink
    • G06V30/36Matching; Classification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/20Movements or behaviour, e.g. gesture recognition
    • G06V40/28Recognition of hand or arm movements, e.g. recognition of deaf sign language

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • General Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Human Computer Interaction (AREA)
  • Geometry (AREA)
  • Social Psychology (AREA)
  • Health & Medical Sciences (AREA)
  • Psychiatry (AREA)
  • General Health & Medical Sciences (AREA)
  • Algebra (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Character Discrimination (AREA)
  • User Interface Of Digital Computer (AREA)
  • Image Analysis (AREA)

Abstract

사용자의, 기하학적 형상들의 자연스러운 드로잉을 인식가능한 시스템 및 방법이 개시된다. 시스템 및 방법은 싱글-스트로크 및 멀티-스트로크 기하학적 형상들을 프로세싱가능하다. 이는 또한 기하학적 형상들에 묵시적이고 사용자 정의된 제약들을 적용할 수 있다. 시스템 및 방법은 프리미티브 레벨보다는 벡터 성분 레벨에서 이들 제약들을 적용한다. 이는 벡터 성분 레벨 상에서 기하학적 형상들 및 제약들 양쪽을 나누는 것에 의해 이를 행한다. 이는 시스템 및 방법이 더 많은 수의 기하학적 형상들 및 제약들을 처리하는 것을 허용한다. 벡터 성분 레벨에서 제약들을 기하학적 형상들에 적용한 후, 시스템 및 방법은 묵시적 및 사용자 정의된 제약들 양쪽을 통합한 매끄러운 기하학적 형상들을 출력한다.

Description

기하학적 형상들을 인식하는 시스템 및 방법{SYSTEM AND METHOD FOR RECOGNIZING GEOMETRIC SHAPES}
관련 출원들의 상호 참조
본 출원은 2014 년 12 월 2 일 출원된 미국 가출원 제14/558,181호를 우선권으로 주장하며, 여기서는 그 전체 내용을 참조로서 포함하고 본원의 부분을 이룬다.
기술 분야
본 발명은 일반적으로 기하학적 형상들의 사용자 입력을 인식가능한 컴퓨팅 디바이스 인터페이스들의 분야에 관한 것이다.
컴퓨팅 디바이스들은 일상 생활에 대해 계속해서 더욱더 유비쿼터스화되고 있다. 이러한 디바이스들은 컴퓨터 데스크톱들, 랩톱들, 테블릿 PC들, e-북 리더기들, 상호작용 화이트보드들, 모바일 폰들, 스마트폰들, 웨어러블 컴퓨터들, 글로벌 포지셔닝 시스템 (global positioning system; GPS) 유닛들, 엔터프라이즈 디지털 어시스턴스들 (enterprise digital assistants; EDAs), 개인 휴대 정보 단말기들 (personal digital assistants; PDAs), 게임 콘솔들 등의 형태를 취한다. 또한, 컴퓨팅 디바이스들은 차량, 트럭, 농기구 장비, 제조 장비, 빌딩 환경 제어 (예를 들어, 조명, HVAC), 가정 및 상업용 가전기기들에 통합되고 있다.
컴퓨팅 디바이스들은 일반적으로 중앙 프로세싱 유닛 (central processing unit; CPU) 과 같은 적어도 하나의 프로세싱 소자들, 일부 형태의 메모리 및 입력 및 출력 디바이스들로 구성된다. 다양한 종류의 컴퓨팅 디바이스들 및 이들의 후속 사용들은 다양한 입력 디바이스들을 필요로 한다. 한 유형의 입력 디바이스들은 터치 스크린 또는 터치 패드와 같은 터치 감지 표면이며, 여기서 사용자 입력은 사용자의 손가락 또는 펜 또는 스타일러스와 같은 도구와 터치 감지 표면 사이의 접촉을 통하여 수신된다. 입력 디바이스의 또 다른 유형은 입력 표면이며, 이 입력 표면은 입력 표면을 터치함이 없이 그리고 입력 표면 상에서 사용자에 의해 행해진 모션들을 감지한다. 이들 입력 방법들 어느 것도 일반적으로 형상들을 드로잉하거나 또는 입력하기 위해 이용될 수 있다. 사용자 입력이 형상인 경우, 컴퓨팅 디바이스는 예를 들어 온-라인 기하학적 형상 인식 시스템 또는 방법을 이용하여 사용자의 자연 드로잉 기술 (user’s natural drawing technique) 을 해석해야 한다.
일반적으로, 온-라인 기하학적 형상 인식 시스템들 또는 방법들은 사용자가 터치 감지 표면을 접촉할 때 (펜-다운) 와 같은 스트로크의 개시; 사용자가 터치 감지 표면을 접촉하는 것을 중단할 때 (펜-업) 와 같은 스트로크의 만료; 및 스트로크의 개시와 만료 사이에서 사용자가 자신의 손가락 또는 펜으로 형성하는 임의의 움직임들 (즉, 스트로크) 을 모니터링한다.
온-라인 기하학적 형상 인식 시스템들 또는 방법들은 싱글-스트로크 또는 멀티-스트로크로 분류될 수도 있다. 싱글-스트로크 인식은 각각의 싱글-스트로크를 별도의 프리미티브로서 분석한다. 프리미티브는 기하학적 형상이다. 시스템은 싱글-스트로브 프리미티브들만을 이용할 수도 있거나 또는 달리 다수의 스트로크들을 필요로 하는 프리미티브들에 대한 약기 (shorthand) 를 이용할 수도 있다. 이들 싱글-스트로크 시스템들 또는 방법들은 통상적으로 입력 에러들이 적지만, 약기가 이용되면 멀티-스트로크 프리미티브들에 대한 스트로크 패턴들을 사용자들이 기억하는 것을 필요로 할 수도 있다. 멀티-스트로크 인식 시스템들은 자연스러운 드로잉을 인식할 수 있고, 누구나 약기를 학습할 필요가 있는 것은 아니기 때문에 사용자들에게 보다 직관적이다.
싱글 스트로크 시스템을 사용하든 또는 멀티-스트로크 시스템을 사용하든, 온-라인 기하학적 형상 인식 시스템들 또는 방법들은 일반적으로 사전 프로세싱, 프리미티브 인식 및 제약 해결로 구성된다. 실제로, 온-라인 기하학적 형상 인식 시스템들 또는 방법들은 이들 단계를 추가 단계와 함께 포함할 수도 있다. 또한, 온-라인 기하학적 형상 인식 시스템들 또는 방법들은 각각의 단계를 명확하게 묘사하지 않을 수도 있고, 또는 다른 순서로 단계들을 수행할 수도 있다.
사전 프로세싱은 통상 관련없는 입력 데이터를 폐기하는 것 및 관련 데이터로부터 노이즈를 정규화, 샘플링 및 제거하는 것을 포함한다.
프리미티브 인식은 기본 모델들의 세트 (예를 들어, 선, 원, 타원, 호 및 점) 에 기초하여 입력 데이터를 개별적인 선들, 형상들 또는 다른 선분들로 나누는 다양한 방법들을 특정한다. 프리미티브 인식은 일반적으로 가능한 프리미티브 후보들과 선분들을 연관시킨다. 프리미티브들은 기본 (예를 들어, 선분, 원, 타원, 원의 호, 타원의 호 및 점) 으로부터 더 복잡한 것 (예를 들어, 정현파, 스플라인, 베지어 (Bezier) 및 매개변수 함수 플롯들) 까지의 임의이 유형의 형상 또는 곡선일 수도 있다. 프리미티브 후보들은 싱글-스트로크, 멀티-스트로크, 및/또는 기하학적 형상 변형들을 포함할 수 있다. 프리미티브 인식은 또한, 입력 데이터가 기하학적 형상인지 또는 제스처 (예를 들어, 이미 입력된 기하학적 형상들의 관련성에 관련하여 추가 정보를 제공하는 입력 스트로크) 인지 여부를 결정하는 제스처 결정이 선행될 수도 있다.
제약 해결은 일반적으로 제약들의 세트 (예를 들어, 길이 동등성, 각도 동등성, 평행성, 대칭, 정렬, 접선, 연결 및 수직) 에 대해 프리미티브를 체크하는 것을 포함한다. 통상적으로, 제약들은 프리미티브 레벨 상에서 정의되며, 이는 제약들이 특정 프리미티브들과 연관되어 있음을 의미한다. 제약들은 묵시적 또는 명시적일 수 있다. 묵시적 제약들은 시스템이 프리미티브들의 사용자 입력에 기초하여 제약을 추론하도록 하는 것이다. 예를 들어, 시스템 또는 방법은 2 개의 선들이 수직에 가깝다는 것을 검출하고 수직 제약이 적용되어야 한다고 추론하여, 2 개의 수직선들을 출력할 수도 있다. 이 예에서, 수직성은 묵시적 제약의 일 예이다. 명시적 제약들은 사용자가 적용할 추가 제약들을 명시적으로 구체화하도록 하는 것이다. 예를 들어, 시스템 또는 방법은 2 개의 선들이 수직이도록 의도되었던 것을 검출하지 못할 수도 있다. 사용자는 이 명시적 제약을 제공하기 위해 추가 제스처를 입력할 수도 있다. 온-라인 기하학적 형상 인식 시스템 또는 방법은 암시적 및 명시적 제약들 모두를 인식할 수도 있다. 프리미티브들의 세트 및 제약들의 세트가 구축되면, 제약 해결 메소드는 최대 수의 가능한 제약들을 가한다. 제약 해결에 이어, 온-라인 기하학적 형상 인식 시스템 또는 방법은 매끄러운 기하학적 형상을 출력한다.
프리미티브 레벨에서의 제약 해결은, 제약들이 일반적으로 프리미티브 레벨에서 정의되고 프리미티브 유형들에 밀접하게 링크되기 때문에, 시스템이 분석할 수 있는 프리미티브들 및 제약들의 수에서 통상 제한받는다. 시스템에 도입된 각각의 새로운 프리미티브 또는 제약은 프리미티브들과 제약들 사이에 기하급수적으로 더 많은 관계들을 야기하여, 제약 해결 동안에 분석할 가능성들을 기하급수적으로 야기한다.
본 시스템 및 방법은 프리미티브 레벨보다는, 벡터 성분 레벨에서 제약들을 정의하는 것에 의해 사용자 입력 인식을 위한 개선된 결과들을 제공한다. 벡터 성분 레벨에 대한 제약들을 정의하는 것에 의해, 시스템 및 방법은 점점더 커지는 대형 세트의 프리미티브들 및 제약들을 보다 잘 처리할 수도 있다.
본원에 설명된 본 발명의 예들은 온-라인 기하학적 형상 인식에 이용하기 위한 방법들, 시스템들 및 소프트웨어를 제공한다. 이들은 하나의 기하학적 형상이 한 장의 종이 위에 있는 것으로서 기하학적 형상들을 컴퓨팅 디바이스 내에 입력하는 것을 허용한다. 본 형상 인식 시스템 및 방법은 입력 표면의 형태로 입력 디바이스에 접속된 컴퓨팅 디바이스를 포함한다. 사용자는 스타일러스 또는 펜과 같은 장비 또는 사용자의 손가락을 이용하여 입력 표면 위에서 제스처를 취하거나 또는 입력 표면에 압력을 인가하는 것에 의해 입력을 제공할 수 있다. 본 시스템 및 방법은 입력 스트로크들을 모니터링한다. 입력 스트로크들을 사전프로세싱한 후, 본 시스템 및 방법은 입력 스트로크가 제스처인지의 여부를 결정한다. 입력 스트로크가 제스처이면, 본 시스템 및 방법은 기존 존재한 드로잉에 적용하도록 제스처를 명령과 매칭시킨다 (예를 들어, 추가 제약을 추가하거나 또는 드로잉을 삭제한다). 입력이 제스처가 아니면, 본 시스템 및 방법은 어느 프리미티브가 입력 스트로크에 밀접하게 매칭하는지를 결정한다. 마지막으로, 본 시스템 및 방법은 매끄러운 기하학적 형상들을 출력하기 위해 프리미티브들의 세트에 제약들의 세트를 적용한다. 출력이 출력 디바이스 상에서 드로잉으로서 표시된 후 사용자는 더 많은 형상들이나 제약들로 출력 드로잉을 조정하거나 달리 강화할 수도 있다.
일 양태에서, 개시된 시스템 및 방법은 사용자의 자연스러운 드로잉 스타일을 해석할 수 있고 클린업된 기하학적 형상들을 출력할 수 있는 온-라인 기하학적 형상 인식 시스템 및 방법을 제공한다. 이는 사용자가 명시적으로 제약들을 정의하는데 사용할 수 있는 프리미티브들 또는 제스처들과 입력 스트로크들이 연관되게 하는 시스템 및 방법을 제공하는 것에 의해 행해질 수 있다. 사용자 입력과 연관된 프리미티브들 및 제약들을 사용하여, 시스템은 매끄러운 기하학적 형상들을 출력가능하다.
또 다른 양태에서, 개시된 시스템 및 방법은 제약들의 보다 간단한 정의를 제공한다. 이는 프리미티브 레벨 보다는 벡터 성분 레벨에 대한 제약들을 정의하는 시스템 및 방법을 제공하는 것에 의해 행해질 수 있다.
또 다른 양태에서, 개시된 시스템 및 방법은 벡터 성분 레벨에서 프리미티브들 및 제약들을 관련시킨다. 이는 프리미티브들을 벡터 성분들의 세트들로 나누고 벡터 성분 레벨에서 제약들과 프리미티들 사이의 관계를 분석하는 시스템 및 방법을 제공하는 것에 의해 행해질 수 있다.
다른 양태에서, 개시된 시스템 및 방법은 출력의 추가 편집을 허용하는 온-라인 기하학적 형상 인식 시스템 및 방법을 제공한다. 이는 특정 입력 편집 제스처들을 인식하는 시스템 및 방법을 제공하는 것에 의해 행해질 수 있다.
본 시스템 및 방법은 도면들과 함께 이하의 실시예에 대한 다음의 상세한 설명으로부터 더욱 완전히 이해될 것이다.
도 1 은 본 시스템의 일 예에 따른 컴퓨팅 디바이스의 블록도를 도시한다.
도 2 는 본 시스템의 일 예에 따른 온-라인 기하학적 형상 인식을 위한 시스템의 블록도를 도시한다.
도 3a 는 본 시스템의 일 예에 따른 가능한 수직 제약의 도해도를 도시한다.
도 3b 는 본 시스템의 일 예에 따른 가능한 길이 동등성 제약의 도해도를 도시한다.
도 3c 는 본 시스템의 일 예에 따른 가능한 각도 동등성 제약의 도해도를 도시한다.
도 3d 는 본 시스템의 일 예에 따른 가능한 평행성 제약의 도해도를 도시한다.
도 3e 는 본 시스템의 일 예에 따른 선분들의 단부들을 포함하는 가능한 접합 제약의 도해도를 도시한다.
도 3f 는 본 시스템의 일 예에 따른 선분과 선분의 단부를 포함하는 가능한 접합 제약의 도해도를 도시한다.
도 3g 는 본 시스템의 일 예에 따른 선분 및 원의 일부를 포함하는 가능한 접합 제약의 도해도를 도시한다.
도 4a 는 본 시스템의 일 예에 따른 가능한 사용자 입력의 도해도를 도시한다.
도 4b 는 본 시스템의 일 예에 따른 가능한 출력의 도해도를 도시한다.
도 4c 는 본 시스템의 일 예에 따른 가능한 추가 사용자 입력에 의한 가능한 출력의 도해도를 도시한다.
도 4d 는 본 시스템의 일 예에 따른 가능한 출력의 도해도를 도시한다.
도 4e 는 본 시스템의 일 예에 따른 가능한 추가 사용자 입력에 의한 가능한 출력의 도해도를 도시한다.
도 4f 는 본 시스템의 일 예에 따른 가능한 출력의 도해도를 도시한다.
도 5a 는 본 시스템의 일 예에 따른 가능한 사용자 입력의 도해도를 도시한다.
도 5b 는 본 시스템의 일 예에 따른 가능한 추가 사용자 입력에 의한 가능한 출력의 도해도를 도시한다.
도 5c 는 본 시스템의 일 예에 따른 가능한 출력의 도해도를 도시한다.
다음의 상세한 설명에서, 관련 교시들의 철저한 이해를 제공하기 위해 다양한 구체적인 실시형태들이 제시된다. 그러나, 당업자에게는 본 발명의 교시가 그러한 세부 사항없이도 실시될 수도 있음이 자명하다. 다른 경우들에서, 잘 알려진 방법들, 절차들, 컴포넌트들 및/또는 회로들은 본 발명의 교시들이 불필요하게 모호해지는 것을 회피하기 위해, 세부 사항없이 비교적 하이레벨로 기술되었다.
본원에 설명된 다양한 기술들은 일반적으로 온-라인 기하학적 형상 인식에 관련된다. 본원에 설명된 시스템 및 방법은 프리미티브 인식 및 제약 해결의 프로세스들을 통해 사용자의 자연스러운 드로잉 스타일 입력을 인식하는데 사용될 수도 있다. 제약 조건 해결의 프로세스에는 벡터 성분 레벨에서 프리미티브들 및 제약들을 나누고 비교하는 것을 포함할 수 있다.
도 1 은 예시적 컴퓨팅 디바이스 (100) 의 블록도를 도시한다. 컴퓨팅 디바이스는 컴퓨터 데스크톱, 랩톱, 태블릿 PC, e-북 리더, 모바일 폰, 스마트 폰, 웨어러블 컴퓨터, 디지털 시계, 인터랙티브 화이트 보드, GPS (global positioning system) 유닛, EDA (enterprise digital assistant), PDA (personal digital assistant), 게임 콘솔 등일 수도 있다. 디바이스 (100) 는 적어도 하나의 프로세싱 소자, 메모리 및 입력 및/또는 출력 (I/O) 디바이스들의 일부 형태를 포함한다. 컴포넌트들은 입력들 및 출력들, 이를 테면, 커넥터들, 라인들, 버스들, 케이블들, 버퍼들, 전자기 링크들, 네트워크들, 모뎀들, 트랜스듀서들, IR 포트들, 안테나들 또는 당업자에게 잘 알려진 다른 것들을 통해 서로 통신한다.
디바이스 (100) 는 적어도 하나의 입력 표면 (104) 을 포함한다. 입력 표면 (104) 은 기술, 이를 테면, 저항성, 표면 음향파, 용량성, 적외선 그리드, 적외선 아크릴 프로젝션, 광학 이미징, 분산형 신호 기술, 음향 펄스 인식, 또는 당업자에게 잘 알려진 임의의 다른 적절한 기술을 채택할 수도 있다. 입력 표면 (104) 은 그 바운더리들을 명확하게 식별하는 영구적인 또는 비디오 생성된 경계에 의해 경계지어 질 수도 있다.
입력 표면 (104) 이외에, 디바이스 (100) 는 로컬 인터페이스를 통해 통신가능하게 커플링된 하나 이상의 추가 I/O 디바이스들 (또는 주변기기들) 을 포함할 수도 있다. 로컬 인터페이스는 통신들을 가능하게 하는 추가적인 엘리먼트들, 이를 테면, 제어기들, 버퍼들 (캐시들), 드라이버들, 중계기들 및 수신기들을 가질 수도 있으며, 이들은 간략화를 위해 생략되었지만 당업자에게는 잘 알려져 있다. 또한, 로컬 인터페이스는 다른 컴퓨터 컴포넌트들 간의 적절한 통신을 가능하게 하는 어드레스, 제어 및/또는 데이터 접속들을 포함할 수도 있다.
하나의 그러한 I/O 디바이스는 컴퓨팅 디바이스로부터의 데이터, 이를 테면, 이미지들, 텍스트 및 비디오를 출력하기 위한 적어도 하나의 디스플레이 (102) 일 수도 있다. 디스플레이 (102) 는 LCD, 플라즈마, CRT, 또는 당업자에게 잘 알려진 임의의 다른 적절한 기술을 사용할 수도 있다. 디스플레이 (102) 의 적어도 일부 또는 전부는 입력 표면 (104) 과 함께 위치될 수도 있다. 다른 추가 I/O 디바이스들은 입력 디바이스들, 이를 테면, 키보드, 마우스, 스캐너, 마이크로폰, 터치 패드들, 바코드 리더들, 레이저 리더들, 무선 주파수 장치 리더들 또는 당업자에게 알려진 임의의 다른 적절한 기술을 포함할 수도 있다. 또한, I/O 디바이스들은 또한, 출력 디바이스들, 이를 테면, 프린터, 바코드 프린터들 또는 당업자에게 알려진 임의의 다른 적절한 기술을 포함할 수도 있다. 마지막으로, I/O 디바이스들은 입력들 및 출력들 양쪽과 통신하는 디바이스들, 이를 테면, 변조기/복조기 (모뎀: 다른 디바이스, 시스템 또는 네트워크에 액세스하기 위한 것), 무선 주파수 (RF) 또는 다른 트랜시버, 전화 인터페이스, 브릿지 (bridge), 라우터, 또는 당업자에게 공지된 임의의 다른 적절한 기술을 더 포함할 수도 있다.
디바이스 (100) 는 또한 소프트웨어, 특히 메모리 (108) 에 저장된 소프트웨어를 실행하기 위한 하드웨어 디바이스인 프로세서 (106) 를 포함한다. 프로세서는 맞춤형 또는 상용 범용 프로세서, 중앙 프로세싱 유닛 (CPU), 반도체 기반 마이크로프로세서 (마이크로칩 또는 칩셋의 형태로 됨), 매크로프로세서, 마이크로컨트롤러, 디지털 신호 프로세서 (DSP), 응용 주문형 집적 회로 (ASIC), 필드 프로그래머블 게이트 어레이 (FPGA) 또는 다른 프로그래머블 로직 디바이스, 개별 게이트 또는 트랜지스터 로직, 개별 하드웨어 컴포넌트들, 상태 머신, 또는 당업자에게 잘 알려진 명령들을 실행하기 위하여 설계된 이들의 임의의 조합일 수 있다. 적합한 상용 마이크로 프로세서들의 예들은 다음과 같이: Hewlett-Packard Company 의 PA-RISC 시리즈 마이크로프로세서, Intel Corporation 의 80x86 또는 Pentium 시리즈 마이크로 프로세서, IBM 의 PowerPC 마이크로프로세서, Sun Microsystems, Inc. 의 Sparc 마이크로프로세서, Motorola Corporation 의 68xxx 시리즈 마이크로프로세서, DSP 마이크로 프로세서들 또는 ARM 마이크로 프로세서들이 있다.
메모리 (108) 는 휘발성 메모리 소자들 (예를 들어, DRAM, SRAM, SDRAM 등과 같은 랜덤 액세스 메모리 (RAM)) 및 비휘발성 메모리 소자들 (예를 들어, 플래시 PROM, EEPROM, 하드 드라이브, 자기 또는 광학 테이프, 메모리 레지스터들, CD-ROM, WORM, DVD, RAID (redundant array of inexpensive disks), 다른 DASD (direct access storage device) 등) 의 어느 하나 또는 조합을 포함할 수 있다. 또한, 메모리 (108) 는 전자, 자기, 광학 및/또는 다른 유형의 저장 매체를 포함할 수도 있다. 메모리 (108) 는 다양한 컴포넌트들이 서로 멀리 떨어져 위치되지만 프로세서 (106) 에 의해 또한 액세스될 수 있는 분산된 아키텍처를 가질 수 있다. 메모리 (108) 는 프로세서 (106) 에 커플링되어, 프로세서 (106) 가 메모리 (108) 로부터 정보를 판독하고 메모리 (108) 에 정보를 기록할 수 있다. 대안적으로, 메모리 (108) 는 프로세서 (106) 와 일체적일 수도 있다. 다른 예에서, 프로세서 (106) 및 메모리 (108) 양쪽은 단일 ASIC 또는 다른 집적 회로에 존재할 수도 있다.
메모리 (108) 에서의 소프트웨어는 하나 이상의 개별 프로그램들을 포함할 수도 있는 온-라인 기하학적 형상 인식 컴퓨터 프로그램을 포함하며, 각각의 프로그램은 논리 함수들을 구현하기 위한 실행가능 명령들의 순서화된 리스팅을 포함한다. 오퍼레이팅 시스템 (110) 은 온-라인 기하학적 형상 인식 컴퓨터 프로그램의 실행을 제어한다. 오퍼레이팅 시스템 (110) 은 WEBOS, WINDOWS®, MAC 및 IPHONE OS®, LINUX 및 ANDROID 와 같은 임의의 독점적인 오퍼레이팅 시스템 또는 상용 오퍼레이팅 시스템일 수도 있다. 본원에 개시된 시스템 및 방법의 사상을 벗어나지 않으면서 다른 오퍼레이팅 시스템이 또한 이용될 수도 있음을 이해할 것이다.
메모리 (108) 는 본원에 설명된 바와 같은 기하학적 형상 인식과 관련된 다른 애플리케이션 프로그램들 (112), 완전히 다른 기능들 또는 양쪽을 포함할 수도 있다. 애플리케이션들 (112) 은 제조시 디바이스 (100) 에 제공된 프로그램들을 포함하고, 제조 후에 디바이스 (100) 에 다운로드된 프로그램들을 더 포함할 수도 있다. 일부 예들은 텍스트 편집기, 전화 다이얼러, 연락처 디렉토리, 인스턴트 메시징 기능, 컴퓨터 지원 설계 (CAD) 프로그램, 이메일 프로그램, 워드 프로세싱 프로그램, 웹 브라우저 및 카메라를 포함한다.
지원 및 컴플라이언스 능력들을 갖는 온-라인 기하학적 형상 인식 컴퓨터 프로그램은 소스 프로그램, 실행가능 프로그램 (객체 코드), 스크립트 또는 수행될 명령들의 세트를 포함하는 임의의 다른 엔티티일 수도 있다. 소스 프로그램일 때, 프로그램은 컴파일러, 어셈블러, 인터프리터 등을 통해 번역될 필요가 있으며, 이는 오퍼레이팅 시스템과 연계하여 적절하게 동작하도록 메모리 내에 포함될 수도 또는 포함되지 않을 수도 있다. 또한, 지원 및 컴플라이언스 능력들을 갖는 온-라인 기하학적 형상 인식 컴퓨터 프로그램은 (a) 데이터 및 메소드들의 클래스들을 갖는 객체 지향 프로그래밍 언어, (b) 루틴들, 서브 루틴들 및/또는 함수들을 갖는 프로시저 프로그래밍 언어, 예를 들어, 이들에 제한되지 않지만, C, C++, Pascal, Basic, Fortran, Cobol, Perl, Java 및 Ada, 또는 (c) 기능적 프로그래밍 언어들, 예를 들어, 이들에 제한되지 않지만 Hope, Rex, Common Lisp, Scheme, Clojure, Racket, Erlang, OCaml, Haskell, F# 등으로서 기록될 수 있다.
시스템은 프로세서 (106) 가 입력 표면 (104) 을 통해 사용자가 입력한 스트로크를 검출할 때 개시될 수도 있다. 사용자는 손가락 또는 일부 도구들, 이를 테면 펜 또는 스타일러스로 스트로크를 입력할 수도 있다. 사용자는 또한 입력 표면 (104) 위의 동작들을 감지하는 기술들이 사용되면 입력 표면 (104) 위에 제스처를 행하여 스트로크를 입력할 수도 있다. 스트로크는 적어도 스트로크 개시 위치, 스트로크 만료 위치 및 사용자가 스트로크 시작 위치와 만료 위치를 연결하는 경로에 의해 특징화된다.
도 2 는 본 시스템의 일 예에 따른 온-라인 기하학적 형상 인식을 위한 시스템의 개략적 도면이다. 적어도 하나의 입력 스트로크 (113) 로 개시되면, 시스템은 스트로크를 사전프로세싱한다 (114). 사전프로세싱 (114) 은 입력을 평활화하기 위해 사이즈 정규화 및/또는 방법들 이를 테면, B-스플라인 근사화를 적용하는 것에 의해 스트로크 개시 위치와 만료 위치를 연결하는 경로를 정규화하는 것을 포함할 수 있다.
사전 프로세싱 후, 시스템은 스트로크가 기존의 드로잉의 환경에서 제스처인지의 여부를 결정한다. 제스처는 기존 드로잉에 관한 추가 정보를 제공하는 입력 스트로크이다. 제스처 결정 (116) 이 제스처를 인식하면, 시스템은 그 입력을 제스처 인식 (120) 에 패스한다. 그 후, 시스템은 사용자가 기존의 기하학적 형상들에 부가하고자 할 수도 있는 명시적 제약을 정의하는 주석으로서 입력을 인식할 수도 있다. 일 실시형태에서, 제스처 인식 (120) 은 제스처들을 검출하고 기존 드로잉의 환경에서 이들을 구별하기 위해 프리미티브들과 비교된 제스처 스트로크들 및 이들의 포지션의 폴리라인 근사화에 기초하여 수동으로 튜닝된 휴리스틱스를 사용할 수도 있다. 그러나, 당업자에게 알려진 임의의 제스처 인식 (120) 방법이 사용될 수도 있다. 인식된 제스처는 제약 해결 메소드 (122) 로 패스된다. 제약 해결 메소드 (122) 는 이하에서 설명될 것이다. 제스처는 또한 충전, 음영 또는 삭제 명령들과 같은 그래픽 편집 명령들과 연관될 수도 있다. 이 경우, 제스처는 그래픽 편집 (124) 상에 패스된다.
그래픽 편집 (124) 은 기존 출력 (126) 을 편집하기 위해 당업자에게 알려진 임의의 방법일 수도 있다. 이러한 그래픽 편집 (124) 은 통상적으로 제스처 인식 (120) 및 출력 (126) 으로부터의 정보를 사용하여 현재 드로잉을 삭제하거나, 패턴 또는 컬러로 형상들을 충전하거나, 두께를 변경하거나 또는 특정 라인들을 강조하거나, 또는 그렇지 않으면 현재 출력 (126) 을 당업자에게 잘 알려진 방식들로 편집하는 것에 의해 현재 드로잉을 조정한다.
제스처 결정 (116) 이 제스처를 검출하지 않으면, 입력은 프리미티브 인식 (118) 에 패스된다. 프리미티브들은 기본 기하학적 형상들 (예를 들어, 선분, 원, 타원, 원의 호, 타원의 호 및 점) 또는 추가적으로 더 복잡한 형상들 (예를 들어, 정현파, 스플라인, 베지어 및 매개변수 함수 플롯들) 을 포함할 수도 있다. 시스템은 "정크 (junk)" 프리미티브를 또한 정의할 수도 있는데, 이는 시스템이 입력을 비인식된 프리미티브로서 폐기하게 한다. 시스템에서 정의된 프리미티브들의 수에 따라, 프리미티브 인식 (118) 은 각각의 스트로크를 처리할 별도의 프리미티브로서 처리하는 싱글-스트로크 프리미티브 인식을 포함할 수도 있다. 프리미티브 인식 (118) 은 또한 다수의 연속적인 입력 스트로크들을 단일의 프리미티브로서 처리하는 멀티-스트로크 인식을 포함할 수도 있다.
시스템은 당업자에게 알려진 싱글-스트로크 및 멀티-스트로크 인식 방법들의 임의의 조합을 채택하여 어떤 프리미티브가 상기 입력 (113) 과 가장 밀접하게 매칭하는지를 결정할 수도 있다. 프리미티브 인식 (118) 의 한 예는 입력 (113) 을 모든 프리미티브들에 피팅하여 각 피팅 시도마다 스코어를 주는 것이다. 그 후, 동적 프로그래밍을 사용하여 최상의 전체 피팅 스코어들에 기초하여 모든 입력 스트로크들을 포함하는 최상의 프리미티브들의 세트를 선택할 수도 있다. 일단 최상의 프리미티브들의 세트가 선택되면, 프리미티브들의 세트는 제약 해결 메소드 (122) 로 전송된다.
제약 해결 메소드 (122) 는 프리미티브 인식 (118), 제스처 인식 (120) 및/또는 출력 (126) 으로부터 입력을 수신할 수도 있다. 제약들은 일반적으로 프리미티브들 (예를 들어, 길이 동등성, 각도 동등성, 평행성, 대칭성, 정렬, 접선, 연결 및 수직) 을 함께 링크한다. 도 3a 내지 도 3g 는 가능한 제약들의 도해도들이다. 각각의 경우에, 최좌측 예시는 입력 (113) 이고 최우측 예시는 출력 (126) 이다. 중간 예시는 제약 해결 메소드 (122) 에 의한 제약의 적용이다. 중간 예시는 제약 해결 메소드 (122) 에 의한 제약들의 적용이다. 제약들은 프리미티브 인식 (118) 에 의해 제공되는 프리미티브들에 따라 제약 해결 메소드 (122) 에 의해 암시적으로 추론될 수 있거나 또는 제스처를 통해 사용자에 의해 명시적으로 정의될 수 있다. 예를 들어, 제약 해결 메소드 (122) 는 도 3a 에서 사용자에 의한 2 개의 선분 입력 (128) 이 수직이도록 의도되었다고 추론할 수도 있고, 자동적으로 수직 제약을 적용하여 도 3a 의 최우측 예시를 출력 (132) 할 수도 있다. 이 예에서, 중간 예시 (130) 는 수직 제약을 내부적으로 가산하는 제약 해결 메소드 (122) 를 나타낸다.
다른 사례에서, 제약 해결 메소드 (122) 는 사용자가 도 3a 에서의 2 개의 수직 선분들을 의도하였음을 검출하지 못할 수도 있고, 중간 예시 (130) 에서 비수직 선분들을 출력할 수도 있다. 그 다음, 사용자는 시스템이 제스처로서 인식할 정사각형 (134) 을 갖는 2 개의 선분들의 접합에 주석을 붙일 수도 있다. 제스처 인식 (120) 은 이 제스처를 제약 해결 메소드 (122) 상으로 패스할 것이며, 이는 도 3a 의 최우측 예시의 출력 (132) 에 도시된 바와 같이 출력이 2 개의 수직 선분들이도록 조정한다.
도 3a 내지 도 3g 에서, 제약들은 제약 해결 메소드 (122) 에 의해 추론될 수 있거나 또는 사용자에 의해 명시적으로 주석이 붙을 수 있다. 이들 도면들의 주석들 (즉, 도 3a 의 수직에 대한 정사각형 (134), 도 3b 의 길이 동등성에 대한 2 개의 작은 선분들 (136), 도 3c 의 각도 동등성에 대한 2 개의 호들 (138), 도 3d 에서 평행성을 위한 2 개의 화살표들 (140), 도 3e 에서 접합을 형성하기 위한 선분들의 단부들 주위의 원 (142), 도 3f 에서 접합을 형성하기 위한 선분 및 선분의 단부 주위의 원 (144), 및 도 3g 에서 접합 또는 접선을 형성하기 위한 선분 주위의 원 (146) 또는 원의 부분) 은 일 실시형태이며, 본 시스템 및 방법은 이러한 제약들 및 다른 것들에 대한 임의의 제스처들을 사용할 수 있다. 또한, 프리미티브들과 본질적으로 연관된 제약들은 제약 해결 메소드 (122) 이전에 프리미티브 인식 (118) 동안 추론될 수도 있다. 예를 들어, 프리미티브 인식 (118) 은 입력으로부터 정사각형을 인식할 수 있고 또한 4 개의 동일한 변들, 4 개의 내부 직각들 및 평행한 대향 변들의 제약을 적용할 수 있다. 프리미티브 인식 (118) 이 폴리라인을 인식하면, 이는 또한 선들이 교차하는 곳에서 접합 제약을 적용할 수도 있다. 그러나, 명료성을 위해, 본 명세서는 프리미티브 인식 (118) 이 몇몇 상황에서 이 기능을 처리할 수도 있다고 가정하더라도 모든 제약들을 적용하는 것으로서 제약 해결 메소드 (122) 만을 언급할 것이다.
제약 해결 메소드 (122) 는 프리미티브 레벨 보다는 벡터 성분 레벨에서 제약들 및 프리미티브들을 정의하는 것을 포함한다. 프리미티브 레벨에서 제약들을 정의할 때 제약들은 특정 프리미티브들과 관련된다. 그러나 벡터 성분 레벨에서 제약들을 정의하는 것에 의해, 사용자는 기하급수적으로 더 많은 작업을 추가하지 않고도 추가적인 제약들과 프리미티브들을 추가할 수도 있다. 예를 들어, 접합 제약이 정의되어 2 개의 선분들로 프리미티브 레벨에서 적용되면 먼저, 선분의 시작 또는 끝과 연관되어야 한다. 일단 원형 프리미티브가 본 시스템 및 방법에 추가되면, 접합 제약은 또한 다른 선분 외계들 (externalities) 과 함께 원 중심과 연관되어야 한다. 제약이 여전히 2 개의 점들 사이의 접합을 정의하고 있음에도 불구하고, 타원 및 기타 보다 복잡한 프리미티브들이 현재 시스템 및 방법에 추가되면 이 제약은 훨씬 더 복잡해진다.
복잡성의 지수 함수적인 증가를 피하기 위해, 제약 해결 메소드 (122) 는 벡터 성분 레벨에서 프리미티브들 및 제약들 양쪽을 나누어, 방법이 점들 간의 관계에 초점을 맞추게 한다. 일 실시형태에서, 제약 해결 메소드 (122) 는 점들, 길이들 및 기울기 각도들의 적어도 3 개의 아이템들을 정의할 수도 있다. 프리미티브들을 아이템들로 정의하기 위해, 제약 해결 메소드 (122) 는 프리미티브들을 그들의 아이템들로 나눌 수도 있다. 예를 들어, 선분 프리미티브는 2 개의 종점들, 기울기 및 길이에 의해 정의될 수도 있다. 또 다른 예는 중심점과 반경 길이로 정의된 원 프리미티브이다. 프리미티브들이 그들의 항목들로 나누어지면서, 제약 해결 메소드 (122) 는 벡터 성분 제약들을 적용한다. 제약 해결 메소드 (122) 가 프리미티브들을 그들의 벡터 성분 아이템들로 나누는 것을 포함할 수도 있지만, 다른 실시형태들에서, 프리미티브 인식 (118) 은 제약 해결 메소드 (122) 에 정보를 패스하기 전에 프리미티브들을 벡터 성분들로 나눌 수도 있다. 이 대안적인 실시형태에서, 프리미티브 인식들 (118) 로부터의 프리미티브 아이템들은 제약 해결 메소드 (122) 에 의하여 자신들에 제약들을 여전히 적용받게 된다.
프리미티브 레벨에서 정의된 제약들과 달리, 벡터 성분 레벨에서 정의된 제약들은 아이템들을 함께 링크한다. 벡터 성분 제약들은 다음을 포함한다:
Figure 112017051440725-pct00001
2 개의 점들과 하나의 기울기 각도 간에 정의된 기울기 각도 제약;
Figure 112017051440725-pct00002
||AB|| = L 이도록, 2 개의 점들 (A, B) 과 하나의 길이 (L) 간에 정의된 길이 제약;
Figure 112017051440725-pct00003
B 가 거리 (L) 에서 기울기(들)을 따르는 A 의 프로젝션이도록 그리고 그 반대의 경우도 성립하도록, 2 개의 점들 (A, B), 길이 (L) 및 기울기(들) 간에 정의된 프로젝션 제약;
Figure 112017051440725-pct00004
A = B 를 보장하기 위해 2 개의 점들 (A, B) 간에 정의된 접합 제약;
s2 - s1 = v 이도록, 2 개의 기울기 각도들 (s1, s2) 및 주어진 값 (v) 간에 정의된 기울기 각도 차이 제약;
Figure 112017051440725-pct00005
L1/L2 = r 이도록, 2 개의 길이들 (L1, L2) 및 주어진 값 (r) 간에 정의된 길이 비 제약;
Figure 112017051440725-pct00006
||AC||+||BC|| = L 이도록, 3 개의 점들 (A, B, C) 과 하나의 길이 (L) 간에 정의된 길이 합산 제약; 및
Figure 112017051440725-pct00007
임의의 점에 대해 정의되고 그리고 점이 분리되고 어떠한 다른 제약에 의해서도 링크되어 있지 않다면 유용한 존재 제약 (Existence Constraint).
다른 제약들이 당업자에게 알려진 바와 유사한 방식으로 정의될 수도 있다. 또한, 임의의 제약이 벡터 성분 제약들의 조합으로서 정의될 수도 있다. 벡터 성분 제약들을 이용하는 하나의 이점은 다른 아이템들 중 일부가 알려져 있다면, 제약 해결 메소드 (122) 가 아이템의 값을 추론할 수도 있다는 것이다. 일 예로서, 길이 제약은 2 개의 점 아이템들 (A, B) 을 길이 아이템 (L) 에 링크한다. 따라서, A 와 B 가 알려지면, L 의 값이 결정될 수 있다. 그 반대로, A 와 L 이 알려지면, B 가 A 를 중심으로 하는 반경 (L) 의 원 상에 있는 것으로서 정의될 수 있고 이 정보는 B 의 교차점 파라미터에 추가된다. A 와 B 를 전환해도 동일하게 적용한다. 벡터 성분 레벨 상에서 프리미티브들 및 제약들 양쪽을 모두 나누는 것에 의해, 본 시스템 및 방법은 더 많은 상황을 해결할 수 있다.
일단 제약 해결 메소드 (122) 가 프리미티브들을 아이템들로 나누었다면, 제약 해결 메소드 (122) 는 모든 가능한 제약들을 프리미티브들에 적용할 수도 있거나 또는 우선 순위에 기초하여 특정 제약들의 리스트를 구축할 수도 있다. 제약들을 계층적으로 배치하는 것에 의해, 제약 해결 메소드 (122) 는 상반되는 제약들을 적용하는 것을 방지한다. 예를 들어, 프리미티브 무결성을 유지하는 제약들이 높은 우선 순위일 수도 있다. 이는 프리미티브들이 그들의 고유한 형상들을 변경하지 않는 것을 보장한다 (예를 들어, 원은 점과 반지름을 유지한다). 제 2 우선 순위는 제약 해결 메소드 (122) 가 프리미티브들, 이를 테면, 폴리라인의 접합에 내포되어 있다는 제약들일 수도 있다. 다른 더 낮은 우선 순위 제약들은 사용자에 의해 명시적으로 정의된 제약들 (예를 들어, 사용자 정의된 평행성) 또는 프리미티브들의 페어들 (예를 들어, 원에 대해 접선으로 교차하는 선분) 에 대한 제약들일 수도 있다. 그러나, 이 계층은 단지 하나의 예이며, 본 시스템 및 방법은 당업자가 필요로 하는 임의의 방식으로 제약들을 우선순위화할 수 있다. 제약 해결 메소드 (122) 가 프리미티브들에 적절한 제약들을 적용한 후에, 벡터 성분 레벨들로부터 프리미티브들을 재구성하여 매끄러운 기하학적 형상의 형태로 출력 (126) 을 생성한다.
도 4a 내지 도 4f 는 본 시스템의 일 예에 따른 직사각형 및 폴리라인에 관한 가능한 입력들 및 출력들의 개략적인 도해도를 도시한다. 도 4a 는 직사각형의 입력의 개략적 예시도를 나타낸다. 사전 프로세싱 (114) 후에, 제스처 결정 (116) 은 이 입력을 제스처로서 정의하지 않고 프리미티브 인식 (118) 을 위하여 입력을 패스한다. 입력이 직사각형이였다고 프리미티브 인식 (118) 이 결정한 후에, 정보는 제약 해결 메소드 (122) 로 패스된다. 제약 해결 메소드 (122) 는 직사각형 (예를 들어, 4 개의 내부 직각들에서 교차하고 상대 변들이 평행하고 동일한 길이로 이루어진 4 개의 선분들) 에 대해 알려진 제약들을 적용한다. 이는 도 4b 에 도시된 직사각형을 출력으로서 생성한다.
사용자는 도 4c 에 도시된 입력으로 직사각형에 더 추가할 수도 있다. 프리미티브 인식 (118) 은 이것을 폴리라인 프리미티브로서 인식한다. 제약 해결 메카니즘 (122) 은 또한, 이전 직사각형의 모서리와의 접합 뿐만 아니라 직각인 새로운 폴리라인의 중간에서 접합을 검출한다. 이는 도 4d 에 도시된 새로운 출력을 생성한다. 사용자는 검출되지 않았던 다른 접합을 원할 수도 있고, 도 4e 에 도시된 바와 같이 출력에 주석 (148) 을 추가할 수도 있다. 이 주석 (148) 은 제스처로서 프로세싱되고, 접합을 표시하기 위해 제스처로서 인식되고, 제약 해결 메소드 (122) 상으로 패스된다. 제약 해결 메소드는 도 4f 에 도시된 새로운 출력을 생성하기 위해 이 제스처 및 모든 다른 관련 제약들과 함께 출력을 취할 것이다.
도 5a 내지 도 5c 는 본 시스템의 일 예에 따른 직사각형 및 폴리라인에 관한 가능한 입력들 및 출력들의 개략적인 도해도를 도시한다. 도 5a 는 폴리라인의 입력의 개략 예시도를 나타낸다. 사전 프로세싱 (114) 후에, 제스처 결정 (116) 은 이 입력을 제스처로서 정의하지 않고 프리미티브 인식 (118) 을 위하여 입력을 패스한다. 입력이 폴리라인이였다고 프리미티브 인식 (118) 이 결정한 후에, 정보는 제약 해결 메소드 (122) 로 패스된다. 제약 해결 메소드 (122) 는 프리미티브 폴리라인에 의해 검출된 제약들: 3 개의 선분들 간의 2 개의 접합들, 제 1 및 제 3 선분들 간의 평행성, 2 개의 각도들 간의 대응하는 각도 동등성, 및 제 1 및 제 2 선분들 간의 길이 동등성을 적용한다. 이는 출력으로서 도 5b 에 도시된 폴리라인 출력을 생성할 것이다. 사용자는 도 5b 에 도시된 제 2 각도에서 추가적인 작은 박스 주석 (150) 으로 도시된 바와 같이 수직을 추가로 표시할 수도 있다. 이 주석 (150) 은 제스처로서 프로세싱되고, 수직을 표시하기 위해 제스처로서 인식되고, 제약 해결 메소드 (122) 상으로 패스된다. 제약 해결 메소드는 도 5c 에 도시된 새로운 출력을 생성하기 위해 이 제스처 및 모든 다른 관련 제약들과 함께 출력을 취할 것이다.
현재의 온-라인 기하학적 형상 인식 시스템 및 방법을 통해, 사용자 입력 드로잉 인식에 대한 최상의 결과들은 벡터 성분 레벨 상에서 프리미티브들 및 제약들을 나누는 것에 의해 제공된다. 벡터 성분 레벨 상에서 프리미티브들에 대한 제약들을 인가하고 출력에 대해 수정된 프리미티브들을 재구성하는 것에 의해, 현재의 온-라인 기하학적 형상 인식 시스템 및 방법은 난이도에서의 지수함수적 증가 없이도 더 많은 프리미티브들 및 제약들을 처리가능하다.
위에서 최상의 모드 및/또는 다른 예들인 것으로 고려되는 것을 설명하였지만, 다양한 수정들이 이루어질 수도 있고 본 명세서에 개시된 청구물들이 다양한 형태들 및 예들로 구현될 수 있고, 이들이 본원에 설명되었던 다른 적용들, 조합들, 및 환경들에서 적용될 수도 있음을 이해할 것이다. 당업자는 개시된 양태들이 본 청구물의 진정한 사상 및 범위로부터 벗어남이 없이 수정 또는 변경될 수도 있음을 이해할 것이다. 따라서, 청구물은 이 설명에서 특정 구체예들, 제시예들 및 예시된 예들로 제한되지 않는다. 본원 개시된 유리한 개념들의 진정한 범위 내에 있는 임의의 그리고 모든 변경들 및 변형들을 보호하도록 의도된다.

Claims (40)

  1. 컴퓨터 판독가능 프로그램 코드가 내부에 수록된 비일시적 컴퓨터 판독가능 매체로서,
    상기 컴퓨터 판독가능 프로그램 코드는 적어도 하나의 입력 스트로크에 대한 기하학적 형상 인식을 제공하기 위한 방법을 구현하게 실행되도록 구성되며,
    상기 방법은 :
    적어도 하나의 입력 스트로크에 대응하는 적어도 하나의 프리미티브를 인식하는 단계;
    상기 적어도 하나의 프리미티브에 적어도 하나의 제약을 적용하는 단계로서, 상기 적어도 하나의 제약 및 적어도 하나의 프리미티브는 벡터 성분 레벨에서 적용되는, 상기 적어도 하나의 제약을 적용하는 단계; 및
    상기 적어도 하나의 프리미티브에 대한 상기 적어도 하나의 제약의 적용에 기초하여 출력을 제공하는 단계를 포함하고,
    상기 적어도 하나의 제약이 다수의 제약들을 포함하면, 상기 다수의 제약들은 우선 순위에 기초하여 상기 적어도 하나의 프리미티브에 적용되고, 상기 우선 순위는 상기 적어도 하나의 프리미티브의 무결성을 유지하는 제약들, 상기 적어도 하나의 프리미티브에서 암시적인 제약들, 및 제스처에 의해 정의된 제약들을 포함하는, 컴퓨터 판독가능 프로그램 코드가 내부에 수록된 비일시적 컴퓨터 판독가능 매체.
  2. 제 1 항에 있어서,
    상기 적어도 하나의 프리미티브는 복수의 입력 스트로크들을 포함하는, 컴퓨터 판독가능 프로그램 코드가 내부에 수록된 비일시적 컴퓨터 판독가능 매체.
  3. 제 1 항에 있어서,
    상기 적어도 하나의 입력 스트로크는 입력 표면 상에서 행해지는 적어도 하나의 사용자 제스처인, 컴퓨터 판독가능 프로그램 코드가 내부에 수록된 비일시적 컴퓨터 판독가능 매체.
  4. 제 1 항에 있어서,
    상기 적어도 하나의 입력 스트로크는 사전 프로세싱되고, 상기 사전 프로세싱은 상기 적어도 하나의 입력 스트로크의 적어도 정규화 및 평활화를 포함하는, 컴퓨터 판독가능 프로그램 코드가 내부에 수록된 비일시적 컴퓨터 판독가능 매체.
  5. 제 4 항에 있어서,
    상기 적어도 하나의 프리미티브는 적어도 하나의 점, 길이, 또는 기울기 각도로 구성되는 것으로서 상기 벡터 성분 레벨에서 정의되는, 컴퓨터 판독가능 프로그램 코드가 내부에 수록된 비일시적 컴퓨터 판독가능 매체.
  6. 제 5 항에 있어서,
    상기 적어도 하나의 제약은 적어도 하나의 점, 길이, 또는 기울기 각도에 적용하는 것으로서 상기 벡터 성분 레벨에서 정의되는, 컴퓨터 판독가능 프로그램 코드가 내부에 수록된 비일시적 컴퓨터 판독가능 매체.
  7. 제 6 항에 있어서,
    상기 적어도 하나의 프리미티브에 적용할 상기 적어도 하나의 제약은 상기 적어도 하나의 프리미티브와 연관되는, 컴퓨터 판독가능 프로그램 코드가 내부에 수록된 비일시적 컴퓨터 판독가능 매체.
  8. 제 4 항에 있어서,
    사전 프로세싱된 상기 적어도 하나의 입력 스트로크는, 상기 적어도 하나의 입력 스트로크가 제스처인지 여부를 결정하도록 분석되고, 상기 적어도 하나의 입력 스트로크가 제스처이면, 상기 제스처는 상기 적어도 하나의 프리미티브에 대한 상기 적어도 하나의 제약의 적용에 기초하여 상기 출력에 적어도 하나의 추가 제약을 제공할 수 있는, 컴퓨터 판독가능 프로그램 코드가 내부에 수록된 비일시적 컴퓨터 판독가능 매체.
  9. 제 8 항에 있어서,
    상기 제스처는 상기 적어도 하나의 프리미티브에 대한 상기 적어도 하나의 제약의 적용에 기초하여 상기 출력에 적용할 그래픽 편집 명령들을 제공하는, 컴퓨터 판독가능 프로그램 코드가 내부에 수록된 비일시적 컴퓨터 판독가능 매체.
  10. 제 9 항에 있어서,
    상기 그래픽 편집 명령들은 적어도 삭제 명령을 포함하는, 컴퓨터 판독가능 프로그램 코드가 내부에 수록된 비일시적 컴퓨터 판독가능 매체.
  11. 제 1 항에 있어서,
    가능한 상기 적어도 하나의 제약은 길이 동등성, 각도 동등성, 평행성, 대칭, 정렬, 접선, 연결 및 수직 중 적어도 하나를 포함하는, 컴퓨터 판독가능 프로그램 코드가 내부에 수록된 비일시적 컴퓨터 판독가능 매체.
  12. 제 1 항에 있어서,
    가능한 상기 적어도 하나의 제약은 기울기 각도 제약, 길이 제약, 프로젝션 제약, 접합 제약, 기울기 각도 차이 제약, 길이 비 제약, 길이 합산 제약, 또는 존재 제약 중 적어도 하나를 포함하는, 컴퓨터 판독가능 프로그램 코드가 내부에 수록된 비일시적 컴퓨터 판독가능 매체.
  13. 제 1 항에 있어서,
    상기 적어도 하나의 프리미티브는 선 세그먼트, 원, 타원, 원의 호, 타원의 호, 및 점 중 적어도 하나를 포함하는, 컴퓨터 판독가능 프로그램 코드가 내부에 수록된 비일시적 컴퓨터 판독가능 매체.
  14. 컴퓨팅 디바이스 상에서 적어도 하나의 입력 스트로크에 대한 기하학적 형상 인식을 제공하는 방법으로서,
    상기 컴퓨팅 디바이스는 프로세서 및 상기 프로세서의 제어 하의 적어도 하나의 비일시적 컴퓨터 판독가능 매체를 포함하고,
    상기 방법은 :
    상기 적어도 하나의 비일시적 컴퓨터 판독가능 매체에 의해, 적어도 하나의 입력 스트로크에 대응하는 적어도 하나의 프리미티브를 인식하는 단계;
    상기 적어도 하나의 비일시적 컴퓨터 판독가능 매체에 의해, 상기 적어도 하나의 프리미티브에 적어도 하나의 제약을 적용하는 단계로서, 상기 적어도 하나의 제약 및 적어도 하나의 프리미티브는 벡터 성분 레벨에서 적용되는, 상기 적어도 하나의 제약을 적용하는 단계; 및
    상기 적어도 하나의 비일시적 컴퓨터 판독가능 매체에 의해, 상기 적어도 하나의 프리미티브에 대한 상기 적어도 하나의 제약의 적용에 기초하여 출력을 제공하는 단계를 포함하고,
    상기 적어도 하나의 제약이 다수의 제약들을 포함하면, 상기 다수의 제약들은 우선 순위에 기초하여 상기 적어도 하나의 프리미티브에 적용되고, 상기 우선 순위는 상기 적어도 하나의 프리미티브의 무결성을 유지하는 제약들, 상기 적어도 하나의 프리미티브에서 암시적인 제약들, 및 제스처에 의해 정의된 제약들을 포함하는, 적어도 하나의 입력 스트로크에 대한 기하학적 형상 인식을 제공하는 방법.
  15. 제 14 항에 있어서,
    상기 적어도 하나의 프리미티브는 복수의 입력 스트로크들을 포함하는, 적어도 하나의 입력 스트로크에 대한 기하학적 형상 인식을 제공하는 방법.
  16. 제 14 항에 있어서,
    상기 적어도 하나의 입력 스트로크는 입력 표면 상에서 행해지는 적어도 하나의 사용자 제스처인, 적어도 하나의 입력 스트로크에 대한 기하학적 형상 인식을 제공하는 방법.
  17. 제 14 항에 있어서,
    상기 적어도 하나의 입력 스트로크는 상기 적어도 하나의 비일시적 컴퓨터 판독가능 매체에 의해 사전 프로세싱되고, 상기 사전 프로세싱은 상기 적어도 하나의 입력 스트로크의 적어도 정규화 및 평활화를 포함하는, 적어도 하나의 입력 스트로크에 대한 기하학적 형상 인식을 제공하는 방법.
  18. 제 17 항에 있어서,
    상기 적어도 하나의 프리미티브는 적어도 하나의 점, 길이, 또는 기울기 각도로 구성되는 것으로서 상기 벡터 성분 레벨에서 정의되는, 적어도 하나의 입력 스트로크에 대한 기하학적 형상 인식을 제공하는 방법.
  19. 제 18 항에 있어서,
    상기 적어도 하나의 제약은 적어도 하나의 점, 길이, 또는 기울기 각도에 적용하는 것으로서 상기 벡터 성분 레벨에서 정의되는, 적어도 하나의 입력 스트로크에 대한 기하학적 형상 인식을 제공하는 방법.
  20. 제 19 항에 있어서,
    상기 적어도 하나의 프리미티브에 적용할 상기 적어도 하나의 제약은 상기 적어도 하나의 프리미티브와 연관되는, 적어도 하나의 입력 스트로크에 대한 기하학적 형상 인식을 제공하는 방법.
  21. 제 17 항에 있어서,
    사전 프로세싱된 상기 적어도 하나의 입력 스트로크는, 상기 적어도 하나의 입력 스트로크가 제스처인지 여부를 결정하도록 분석되고, 상기 적어도 하나의 입력 스트로크가 제스처이면, 상기 제스처는 상기 적어도 하나의 프리미티브에 대한 상기 적어도 하나의 제약의 적용에 기초하여 상기 출력에 적어도 하나의 추가 제약을 제공할 수 있는, 적어도 하나의 입력 스트로크에 대한 기하학적 형상 인식을 제공하는 방법.
  22. 제 21 항에 있어서,
    상기 제스처는 상기 적어도 하나의 프리미티브에 대한 상기 적어도 하나의 제약의 적용에 기초하여 상기 출력에 적용할 그래픽 편집 명령들을 제공하는, 적어도 하나의 입력 스트로크에 대한 기하학적 형상 인식을 제공하는 방법.
  23. 제 22 항에 있어서,
    상기 그래픽 편집 명령들은 적어도 삭제 명령을 포함하는, 적어도 하나의 입력 스트로크에 대한 기하학적 형상 인식을 제공하는 방법.
  24. 제 14 항에 있어서,
    가능한 상기 적어도 하나의 제약은 길이 동등성, 각도 동등성, 평행성, 대칭, 정렬, 접선, 연결 및 수직 중 적어도 하나를 포함하는, 적어도 하나의 입력 스트로크에 대한 기하학적 형상 인식을 제공하는 방법.
  25. 제 14 항에 있어서,
    가능한 상기 적어도 하나의 제약은 기울기 각도 제약, 길이 제약, 프로젝션 제약, 접합 제약, 기울기 각도 차이 제약, 길이 비 제약, 길이 합산 제약, 또는 존재 제약 중 적어도 하나를 포함하는, 적어도 하나의 입력 스트로크에 대한 기하학적 형상 인식을 제공하는 방법.
  26. 제 14 항에 있어서,
    상기 적어도 하나의 프리미티브는 선 세그먼트, 원, 타원, 원의 호, 타원의 호, 및 점 중 적어도 하나를 포함하는, 적어도 하나의 입력 스트로크에 대한 기하학적 형상 인식을 제공하는 방법.
  27. 컴퓨터 판독가능 프로그램 코드가 내부에 수록된 비일시적 컴퓨터 판독가능 매체로서,
    상기 컴퓨터 판독가능 프로그램 코드는 적어도 하나의 입력 스트로크에 대한 기하학적 형상 인식을 제공하기 위한 방법을 구현하게 실행되도록 구성되고,
    상기 방법은 :
    적어도 하나의 입력 스트로크를 사전 프로세싱하는 단계;
    상기 적어도 하나의 입력 스트로크가 제스처인지 여부를 결정하기 위해 사전 프로세싱된 상기 적어도 하나의 입력 스트로크를 분석하는 단계,
    상기 적어도 하나의 입력 스트로크가 제스처가 아니면:
    상기 적어도 하나의 입력 스트로크에 대응하는 적어도 하나의 프리미티브를 인식하는 단계;
    상기 적어도 하나의 프리미티브에 적어도 하나의 제약을 적용하는 단계로서, 상기 적어도 하나의 제약 및 상기 적어도 하나의 프리미티브는 벡터 성분 레벨에서 적용되는, 상기 적어도 하나의 제약을 적용하는 단계;
    상기 적어도 하나의 입력 스트로크가 제스처이면, 상기 제스처가 상기 적어도 하나의 프리미티브에 대한 상기 적어도 하나의 제약의 적용에 기초하여 출력에 적어도 하나의 추가 제약을 제공하는 단계로서, 상기 적어도 하나의 제약 및 상기 적어도 하나의 프리미티브는 상기 벡터 성분 레벨에서 적용되는, 상기 적어도 하나의 추가 제약을 제공하는 단계; 및
    상기 적어도 하나의 프리미티브에 대한 상기 적어도 하나의 제약의 적용에 기초하여 출력을 제공하는 단계를 포함하고,
    상기 적어도 하나의 제약이 다수의 제약들을 포함하면, 상기 다수의 제약들은 우선 순위에 기초하여 상기 적어도 하나의 프리미티브에 적용되고, 상기 우선 순위는 상기 적어도 하나의 프리미티브의 무결성을 유지하는 제약들, 상기 적어도 하나의 프리미티브에서 암시적인 제약들, 및 제스처에 의해 정의된 제약들을 포함하는, 컴퓨터 판독가능 프로그램 코드가 내부에 수록된 비일시적 컴퓨터 판독가능 매체.
  28. 제 27 항에 있어서,
    상기 적어도 하나의 프리미티브는 복수의 입력 스트로크들을 포함하는, 컴퓨터 판독가능 프로그램 코드가 내부에 수록된 비일시적 컴퓨터 판독가능 매체.
  29. 제 27 항에 있어서,
    상기 적어도 하나의 입력 스트로크는 입력 표면 상에서 행해지는 적어도 하나의 사용자 제스처인, 컴퓨터 판독가능 프로그램 코드가 내부에 수록된 비일시적 컴퓨터 판독가능 매체.
  30. 제 28 항에 있어서,
    상기 적어도 하나의 프리미티브는 적어도 하나의 점, 길이, 또는 기울기 각도로 구성되는 것으로서 상기 벡터 성분 레벨에서 정의되는, 컴퓨터 판독가능 프로그램 코드가 내부에 수록된 비일시적 컴퓨터 판독가능 매체.
  31. 제 30 항에 있어서,
    상기 적어도 하나의 제약은 적어도 하나의 점, 길이, 또는 기울기 각도에 적용하는 것으로서 상기 벡터 성분 레벨에서 정의되는, 컴퓨터 판독가능 프로그램 코드가 내부에 수록된 비일시적 컴퓨터 판독가능 매체.
  32. 제 31 항에 있어서,
    상기 적어도 하나의 프리미티브에 적용할 상기 적어도 하나의 제약은 상기 적어도 하나의 프리미티브와 연관되는, 컴퓨터 판독가능 프로그램 코드가 내부에 수록된 비일시적 컴퓨터 판독가능 매체.
  33. 제 31 항에 있어서,
    상기 제스처는 상기 적어도 하나의 프리미티브에 대한 상기 적어도 하나의 제약의 적용에 기초하여 상기 출력에 적용할 그래픽 편집 명령들을 제공하는, 컴퓨터 판독가능 프로그램 코드가 내부에 수록된 비일시적 컴퓨터 판독가능 매체.
  34. 제 33 항에 있어서,
    상기 그래픽 편집 명령들은 적어도 삭제 명령을 포함하는, 컴퓨터 판독가능 프로그램 코드가 내부에 수록된 비일시적 컴퓨터 판독가능 매체.
  35. 제 27 항에 있어서,
    가능한 상기 적어도 하나의 제약은 길이 동등성, 각도 동등성, 평행성, 대칭, 정렬, 접선, 연결 및 수직 중 적어도 하나를 포함하는, 컴퓨터 판독가능 프로그램 코드가 내부에 수록된 비일시적 컴퓨터 판독가능 매체.
  36. 제 27 항에 있어서,
    가능한 상기 적어도 하나의 제약은 기울기 각도 제약, 길이 제약, 프로젝션 제약, 접합 제약, 기울기 각도 차이 제약, 길이 비 제약, 길이 합산 제약, 또는 존재 제약 중 적어도 하나를 포함하는, 컴퓨터 판독가능 프로그램 코드가 내부에 수록된 비일시적 컴퓨터 판독가능 매체.
  37. 제 27 항에 있어서,
    상기 적어도 하나의 프리미티브는 선 세그먼트, 원, 타원, 원의 호, 타원의 호, 및 점 중 적어도 하나를 포함하는, 컴퓨터 판독가능 프로그램 코드가 내부에 수록된 비일시적 컴퓨터 판독가능 매체.
  38. 삭제
  39. 삭제
  40. 삭제
KR1020177014707A 2014-12-02 2015-11-27 기하학적 형상들을 인식하는 시스템 및 방법 KR102257172B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/558,181 2014-12-02
US14/558,181 US9489572B2 (en) 2014-12-02 2014-12-02 System and method for recognizing geometric shapes
PCT/EP2015/002400 WO2016087035A1 (en) 2014-12-02 2015-11-27 System and method for recognizing geometric shapes

Publications (2)

Publication Number Publication Date
KR20170087895A KR20170087895A (ko) 2017-07-31
KR102257172B1 true KR102257172B1 (ko) 2021-05-26

Family

ID=55066556

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177014707A KR102257172B1 (ko) 2014-12-02 2015-11-27 기하학적 형상들을 인식하는 시스템 및 방법

Country Status (6)

Country Link
US (2) US9489572B2 (ko)
EP (1) EP3227769B1 (ko)
JP (1) JP6807840B2 (ko)
KR (1) KR102257172B1 (ko)
CN (1) CN107003806A (ko)
WO (1) WO2016087035A1 (ko)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9697423B1 (en) * 2015-12-31 2017-07-04 Konica Minolta Laboratory U.S.A., Inc. Identifying the lines of a table
US20180121075A1 (en) * 2016-10-28 2018-05-03 Microsoft Technology Licensing, Llc Freehand object manipulation
WO2019152669A1 (en) * 2018-01-31 2019-08-08 Nike Innovate C.V. High resiliency foams and components and articles formed therefrom
US11380028B2 (en) 2018-07-02 2022-07-05 Apple Inc. Electronic drawing with handwriting recognition
US11270486B2 (en) * 2018-07-02 2022-03-08 Apple Inc. Electronic drawing with handwriting recognition
US10635413B1 (en) 2018-12-05 2020-04-28 Bank Of America Corporation System for transforming using interface image segments and constructing user interface objects
US10678521B1 (en) 2018-12-05 2020-06-09 Bank Of America Corporation System for image segmentation, transformation and user interface component construction
CN111898593B (zh) * 2020-09-29 2020-12-22 湖南新云网科技有限公司 一种几何图形的形状识别方法、装置、设备及存储介质
CN114863077B (zh) * 2022-04-21 2024-02-23 西北工业大学 一种用于沉浸式三维草图绘制的引导线推断方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1355275A2 (en) 2002-04-17 2003-10-22 The Boeing Company Vector graphic normalizer
JP2004094296A (ja) 2002-08-29 2004-03-25 Casio Comput Co Ltd 図形処理装置、図形処理方法、及びプログラム
US20050275622A1 (en) 2004-06-14 2005-12-15 Patel Himesh G Computer-implemented system and method for defining graphics primitives

Family Cites Families (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5544265A (en) 1992-05-27 1996-08-06 Apple Computer, Inc. Shape recognizer for graphical computer systems
US5596656B1 (en) 1993-10-06 2000-04-25 Xerox Corp Unistrokes for computerized interpretation of handwriting
DE69426919T2 (de) 1993-12-30 2001-06-28 Xerox Corp Gerät und Verfahren zur Ausführung von vielen verkettenden Befehlsgesten in einen System mit Gestenbenutzerschnittstelle
EP0697679A3 (en) 1994-08-12 1998-07-01 Dassault Systemes of America Computerized drawing method
US5615321A (en) 1994-08-12 1997-03-25 Dassault Systemes Of America Corp. Automatic identification of geometric relationships between elements of a computer-generated drawing
DE69533074T2 (de) 1994-09-09 2004-09-16 Xerox Corp. Verfahren zum Interpretieren handgeschriebener schematischer Benutzerschittstellenbefehle
JPH0896138A (ja) * 1994-09-20 1996-04-12 Just Syst Corp 形状認識装置
US5880743A (en) * 1995-01-24 1999-03-09 Xerox Corporation Apparatus and method for implementing visual animation illustrating results of interactive editing operations
US6476834B1 (en) 1999-05-28 2002-11-05 International Business Machines Corporation Dynamic creation of selectable items on surfaces
US6459442B1 (en) 1999-09-10 2002-10-01 Xerox Corporation System for applying application behaviors to freeform data
SE520504C2 (sv) 2001-11-30 2003-07-15 Anoto Ab Elektronisk penna och metod för registrering av handskriven information
US7385595B2 (en) 2001-11-30 2008-06-10 Anoto Ab Electronic pen and method for recording of handwritten information
US7256773B2 (en) * 2003-06-09 2007-08-14 Microsoft Corporation Detection of a dwell gesture by examining parameters associated with pen motion
US7324691B2 (en) 2003-09-24 2008-01-29 Microsoft Corporation System and method for shape recognition of hand-drawn objects
US7352902B2 (en) 2003-09-24 2008-04-01 Microsoft Corporation System and method for detecting a hand-drawn object in ink input
JP2006139366A (ja) * 2004-11-10 2006-06-01 Namco Ltd プログラム、情報記憶媒体及び近似線判定処理装置
US20060212430A1 (en) 2005-03-18 2006-09-21 Searete Llc, A Limited Liability Corporation Of The State Of Delaware Outputting a saved hand-formed expression
US7639250B2 (en) 2005-11-01 2009-12-29 Microsoft Corporation Sketching reality
US20070206024A1 (en) 2006-03-03 2007-09-06 Ravishankar Rao System and method for smooth pointing of objects during a presentation
US8896597B2 (en) * 2008-04-14 2014-11-25 Siemens Product Lifecycle Management Software Inc. System and method for modifying geometric relationships in a solid model
US20090278848A1 (en) 2008-05-12 2009-11-12 Microsoft Corporation Drawing familiar graphs while system determines suitable form
JP4582204B2 (ja) 2008-06-11 2010-11-17 コニカミノルタビジネステクノロジーズ株式会社 画像処理装置、画像変換方法、およびコンピュータプログラム
US20100100866A1 (en) 2008-10-21 2010-04-22 International Business Machines Corporation Intelligent Shared Virtual Whiteboard For Use With Representational Modeling Languages
US8749497B2 (en) 2008-12-12 2014-06-10 Apple Inc. Multi-touch shape drawing
TWI391850B (zh) 2009-03-31 2013-04-01 Au Optronics Corp 輸入圖形判定方法及電腦可讀儲存媒體
CN101944175B (zh) * 2009-07-07 2013-01-30 华中师范大学 物理运动学实验的动态几何虚拟方法
US9495482B2 (en) 2010-01-27 2016-11-15 Dassault Systemes Solidworks Corporation Computer method and apparatus for creating sketch geometry
US8928652B2 (en) 2010-05-11 2015-01-06 Siemens Aktiengesellschaft Sketched overdrawn lines for editing spline-based three-dimensional curves
US8648862B2 (en) * 2010-07-21 2014-02-11 Esko Software Bvba Method for automatically modifying a graphics feature to comply with a resolution limit
CN102436589B (zh) * 2010-09-29 2015-05-06 中国科学院电子学研究所 一种基于多类基元自主学习的复杂目标自动识别方法
US8564620B2 (en) 2010-10-07 2013-10-22 International Business Machines Corporation Method for automatically adjusting the rendered fidelity of elements of a composition
US8718375B2 (en) 2010-12-03 2014-05-06 Massachusetts Institute Of Technology Sketch recognition system
US20120176416A1 (en) 2011-01-10 2012-07-12 King Fahd University Of Petroleum And Minerals System and method for shape recognition and correction
US9645986B2 (en) 2011-02-24 2017-05-09 Google Inc. Method, medium, and system for creating an electronic book with an umbrella policy
CN102999282B (zh) * 2011-09-08 2015-11-25 北京林业大学 基于实时笔画输入的数据对象逻辑控制系统及其方法
JP5942729B2 (ja) 2012-09-20 2016-06-29 カシオ計算機株式会社 図形描画装置およびプログラム
CN103400109B (zh) * 2013-07-10 2016-05-25 西安交通大学 一种手绘草图离线识别与整形方法
CN103500037A (zh) * 2013-09-11 2014-01-08 天脉聚源(北京)传媒科技有限公司 一种轨迹平滑的方法及装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1355275A2 (en) 2002-04-17 2003-10-22 The Boeing Company Vector graphic normalizer
JP2004094296A (ja) 2002-08-29 2004-03-25 Casio Comput Co Ltd 図形処理装置、図形処理方法、及びプログラム
US20050275622A1 (en) 2004-06-14 2005-12-15 Patel Himesh G Computer-implemented system and method for defining graphics primitives

Also Published As

Publication number Publication date
EP3227769A1 (en) 2017-10-11
JP6807840B2 (ja) 2021-01-06
US20160247040A1 (en) 2016-08-25
JP2018503179A (ja) 2018-02-01
US9489572B2 (en) 2016-11-08
WO2016087035A1 (en) 2016-06-09
US20160154998A1 (en) 2016-06-02
KR20170087895A (ko) 2017-07-31
CN107003806A (zh) 2017-08-01
EP3227769B1 (en) 2020-01-08
US10181076B2 (en) 2019-01-15

Similar Documents

Publication Publication Date Title
KR102257172B1 (ko) 기하학적 형상들을 인식하는 시스템 및 방법
JP7134169B2 (ja) 手書き図式のコネクタの管理用システムおよび方法
KR102428704B1 (ko) 핸드라이팅된 다이어그램 커넥터들의 인식을 위한 시스템 및 방법
US9207858B2 (en) Method and apparatus for drawing and erasing calligraphic ink objects on a display surface
JP7388645B2 (ja) グラフィックオブジェクトを選択するための方法及び対応するデバイス
JP2018524734A (ja) 複数のオブジェクトの入力を認識するためのシステムならびにそのための方法および製品
KR102347554B1 (ko) 디지털 잉크를 뷰티파잉하기 위한 시스템 및 방법
JP6877446B2 (ja) 多重オブジェクト構造を認識するためのシステムおよび方法
US20130082949A1 (en) Method of directly inputting a figure on an electronic document
US11429259B2 (en) System and method for selecting and editing handwriting input elements
CN105074622A (zh) 用于产生书写数据的方法及其电子装置
CN111492407B (zh) 用于绘图美化的系统和方法
US11380028B2 (en) Electronic drawing with handwriting recognition
EP3555736B1 (en) System and method for management of handwritten diagram connectors
WO2018109084A1 (en) System and method for management of handwritten diagram connectors
Wenyin et al. Online stroke segmentation by quick penalty‐based dynamic programming
CN107636681A (zh) 绘图对象推断系统和方法
WO2023170314A1 (en) Creating text block sections
WO2023170315A1 (en) Merging text blocks

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant