KR100587540B1 - 디지털 잉크 질의 검색 장치 및 방법 - Google Patents

디지털 잉크 질의 검색 장치 및 방법 Download PDF

Info

Publication number
KR100587540B1
KR100587540B1 KR1020040009862A KR20040009862A KR100587540B1 KR 100587540 B1 KR100587540 B1 KR 100587540B1 KR 1020040009862 A KR1020040009862 A KR 1020040009862A KR 20040009862 A KR20040009862 A KR 20040009862A KR 100587540 B1 KR100587540 B1 KR 100587540B1
Authority
KR
South Korea
Prior art keywords
segment
query
search
memo
similarity
Prior art date
Application number
KR1020040009862A
Other languages
English (en)
Other versions
KR20050081555A (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 삼성전자주식회사
Priority to KR1020040009862A priority Critical patent/KR100587540B1/ko
Priority to JP2005033675A priority patent/JP4308785B2/ja
Priority to EP05250793A priority patent/EP1564675B1/en
Priority to DE602005008121T priority patent/DE602005008121D1/de
Priority to US11/056,104 priority patent/US7778464B2/en
Priority to CNB2005100077305A priority patent/CN100412861C/zh
Publication of KR20050081555A publication Critical patent/KR20050081555A/ko
Application granted granted Critical
Publication of KR100587540B1 publication Critical patent/KR100587540B1/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/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
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F9/00Details other than those peculiar to special kinds or types of apparatus
    • G07F9/10Casings or parts thereof, e.g. with means for heating or cooling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/334Query execution
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F13/00Coin-freed apparatus for controlling dispensing or fluids, semiliquids or granular material from reservoirs
    • G07F13/10Coin-freed apparatus for controlling dispensing or fluids, semiliquids or granular material from reservoirs with associated dispensing of containers, e.g. cups or other articles

Abstract

본 발명은 사용자가 디지털 펜 인터페이스(digital pen interface)를 이용하여 수기(手記) 입력한 메모에서 사용자의 질의어에 해당하는 단어를 검색하는 장치 및 방법에 관한 것이다.
본 발명에 따른 장치는, 입력된 질의어 또는 메모에 대한 디지털 잉크 데이터에서 각종 불필요한 부분을 제거하여 정보량을 감소시키는 전처리부와, 상기 정보량이 감소된 데이터로부터 특징 벡터를 추출하는 특징추출부와, 상기 질의어가 상기 메모 중에서 매칭되는 부분이 있는지를 세그먼트 단위로 검색하는 질의어 검색부로 이루어진다.
본 발명에 따르면, 디지털 펜으로 질의어를 입력하여 기 작성된 메모 혹은 문서 내에서 원하는 내용을 검색하는 방법에 있어 정확성과 신속성을 기할 수 있다.
문자 인식, 디지털 잉크, 스포팅 테이블, 유사도

Description

디지털 잉크 질의 검색 장치 및 방법{Apparatus and method for searching for digital ink query}
도 1은 디지털 잉크 메모의 예를 나타낸 도면.
도 2는 디지털 잉크 질의어의 예를 나타낸 도면.
도 3은 본 발명의 일 실시예에 따른 디지털 잉크 검색 장치의 구성을 나타낸 블록도.
도 4는 사용자에게 디스플레이되는 메모의 예를 나타낸 도면.
도 5는 질의어 검색부(50)의 구성을 나타낸 블록도.
도 6은 질의어를 세그먼트 별로 분리한 예를 나타낸 도면.
도 7은 스포팅 테이블의 예를 나타낸 도면.
도 8은 각 세그먼트의 정보량에 따라서 세그먼트의 우선순위를 결정하는 방식의 예를 나타낸 도면.
도 9는 질의어의 특정 세그먼트와 메모의 전체 영역에 대하여 유사도를 비교하는 예를 나타낸 도면.
도 10a는 '주변검색' 과정의 예를 나타낸 도면.
도 10b는 '확장 주변검색' 과정의 예를 나타낸 도면.
도 11은 '확장 주변검색' 과정의 예를 트리(Tree) 형태로 표현한 도면.
도 12는 문자 분할 메타 정보를 활용한 스포팅 방법을 도시한 도면.
(도면의 주요부분에 대한 부호 설명)
10 : 디지타이저 20 : 전처리부
30 : 특징추출부 40 : 메모 DB
50 : 질의어 검색부 60 : 디스플레이부
100 : 디지털 잉크 검색 장치
본 발명은 문자 입력 장치에 관한 것으로, 보다 상세하게는 사용자가 디지털 펜 인터페이스(digital pen interface)를 이용하여 수기(手記) 입력한 메모에서 사용자의 질의어에 해당하는 단어를 검색하는 장치 및 방법에 관한 것이다. 여기서 디지털 펜 인터페이스란, 터치스크린과 같이 펜 형태의 디바이스를 화면에 접촉함으로서 그 압력 혹은 전자적 신호를 감지하여 해당 디바이스의 이동 궤적을 전자적 형태로 검출할 수 있는 장치를 이용하여, 종이 위에 펜으로 필기하는 전통적 방식을 디지털 형태로 구현한 인터페이스를 말한다.
최근 디지털 기술의 발전에 힘입어 디지털 디바이스의 보급이 급격히 진행되면서 소형화 및 경량화 등 다양한 발전 추세를 보이고 있다. 특히 최근 몇십년 동안 디지털 디바이스의 인터페이스로서 확고한 입지를 갖추고 있는 키보드, 마우스 인터페이스는 디지털 디바이스의 소형화 추세가 진행되면서 휴대성에 관한 문제가 지적되고 있다. 이러한 문제를 해결하기 위한 대안 인터페이스(substitute interface)의 필요성은 수십년 전부터 지적되어 왔으며, 음성(voice), 펜(pen), 제스쳐(gesture), 영상(video) 등을 이용한 대안 인터페이스를 개발하기 위한 연구가 꾸준히 진행되어 왔다. 그 중에서도 수천년 동안 인간 사회에서의 커뮤니케이션의 수단으로 사용되어 왔던 펜과 음성 인터페이스는 그 자연스러움과 표현력의 방대함으로 인하여 주목받고 있다.
디지털 펜 인터페이스는, 종이 위에 펜을 이용하여 문자, 도, 기호 등을 기록하는 커뮤니케이션의 습관을 디지털 디바이스에 적용하려는 시도이다. 이러한 펜 인터페이스를 디지털화하기 위한 방안으로 문자인식 기술이 꾸준히 연구되고 있다. 문자 인식 기술이란, 패턴 인식 기술을 이용하여 디지털 펜으로 입력된 문자 정보(이하, '잉크'라고 표현함)를 인식(Recognize)하여 컴퓨터에서 문자를 표현하는 방식인 아스키(ASCII) 코드 형태로 변환하는 기술을 의미한다.
그러나 문자인식 기술은 연구의 성과에 비하여 사용자들에게 쉽게 보급되지 못하고 있는데, 그 보급의 장벽으로는 크게 두 가지 원인을 지적할 수 있다. 첫째, 문자인식 속도가 느리다는 점이다. 사용자가 자연스럽게 필기하기 위해서는 연속적으로 필기하는 과정 중에 시간 지연 없이 인식, 처리되어야 하나, 실제로는 0.5초 정도의 시간 지연(delay)이 발생하여 사용자가 필기를 연속적으로 진행하기에 심리적으로 답답하게 하는 문제를 유발한다.
둘째, 문자인식 오류로 인한 장벽을 원인으로 지적할 수 있다. 현재의 문자인식 기술 수준으로는 실제 상황에서 90% 정도의 정확도로 문자를 인식 처리하고 있으나, 이 또한 문자와 문자간의 구분을 쉽게 하기 위한 여러 가지 인터페이스적 도움 장치가 제공되는 환경에서의 성능이라고 말할 수 있다. 사용자의 필기를 연속적으로 인식처리하는 과정에서 오류가 발생하는 경우에는 사용자는 오류를 수정하기 위한 행동을 취하게 되는데, 이 역시 연속성을 방해하는 요소로 작용하게 된다.
펜 인터페이스 분야에서 이러한 문자인식 기술의 약점을 극복하기 위한 대안으로서, 디지털 잉크(digital ink), 즉 디지털 펜의 궤적을 이용하되, 문자 인식 과정(입력된 디지털 잉크가 ASCII 코드 중 어느 것에 해당하는가를 결정하는 과정)을 거치지 않는 기술이 제시되고 있다. 도 1에서와 같이 검출한 펜의 궤적을 검출한 그대로 디지털화하여 저장하고, 그 내용을 그대로 보여줌으로써 사용자로 하여금 사용자가 기록했던 정보를 입수할 수 있도록 하는 방식이 제시되고 있다. 이 방식은 문자 인식 과정을 거치지 않기 때문에 필기하는 사용자 손의 자연스러운 움직임을 방해하지 않음으로써 문자인식 기술의 단점을 극복할 수 있다.
그러나 상기 인터페이스는 컴퓨터가 인식할 수 있는 코드화된 문자형태로 저장을 하지 않기 때문에 향후에 사용자가 원하는 정보를 검색하고자 할 때, 기록된 모든 정보를 사용자가 직접 확인하는 과정을 거쳐야 하는 단점을 가지고 있다. 이러한 단점을 극복하기 위해서는, 디지털 잉크로 기록된 매체에 대한 검색 기술이 개발되어야 한다. 이와 관련하여, 도 1과 같이 디지털 잉크로 기록된 메모(이하, '메모'라 함)가 다수 존재하는 상황에서 도 2와 같이 디지털 잉크 형태의 검색 질의어(이하, '질의어'라 함)를 입력했을 때, 질의어의 내용인 '결혼식'이라는 부분을 포함하고 있는 메모를 검색 결과로 보여주는 기술(이하, '디지털 잉크 검색 기술' 이라 함)이 있다.
디지털 잉크 검색에 관한 종래의 방식은 검색하고자 하는 단위가 단어 단위로 분할되어 있는 경우이거나 혹은 단어 사이의 간격을 충분히 넓혀서 필기해서 단어 단위로 분할하는데 문제가 없는 경우를 전제로 하고 있다.
질의어와 메모가 모두 단어 단위로 분할되었다면, 기존의 다양한 문헌에서 제시하고 있는 Elastic Matching 등의 방법을 사용하여 질의어와 메모간의 유사도를 비교하는 방식으로 간단히 처리할 수 있다. 이러한 상황에서는 비교 검색하고자 하는 대상이 명확하기 때문에 단어 단위로 분할하는데 문제가 없으며, 속도도 크게 문제가 되지 않는다. 상기 Elastic Matching 방법은 C.C.Tappert의 논문 "Cursive Script Recognition by Elastic Matching(IBM J. Research Development, V.26, No.6, pp.765-771, 1982)"에 잘 나타나 있다. 이 방법은 확정된 두 대상을 비교하여, 그 결과 상기 두 대상간의 유사도를 수치로써 나타내 준다.
그러나 실제로는 디지털 디바이스의 많은 부분이 입력 화면이 소형이고, 이러한 디바이스에서는 공간의 제약으로 인하여 문자간, 단어간의 간격이 없거나 분할이 용이할 만큼 충분히 넓지 않아서 사용자가 단어간에 공백 없이 입력하는 경우가 많다. 또한 입력할 공간이 충분한 경우에도, 사용자의 특성에 따라서 엄격한 띄어쓰기를 하지 않는 경우도 있다. 이와 같이 검색 대상의 분할이 쉽지 않은 상황에서는, 질의어를 메모 내의 어느 부분과 비교해 보아야 하는 지조차 해결이 되지 않음으로써 근본적인 문제에 봉착하게 된다.
따라서 본 발명은 상기한 문제점을 고려하여 창안된 것으로, 사용자가 디지털 펜을 이용하여 메모를 다수 생성하고, 이로부터 추후 사용자에 의해 입력된 질의어에 대한 검색 기능을 구현하기 위한 방법을 제공하는 것을 목적으로 한다.
또한, 본 발명은 상기한 검색 기능을 구현하기 위하여, 질의어의 특정 부분만을 이용하여 스포팅(spotting)하는 방법을 제공하는 것을 목적으로 한다.
그리고, 본 발명은 상기한 검색 기능을 구현하기 위하여, 부가적인 메타 정보를 이용하는 방법을 제공하는 것을 목적으로 한다.
상기한 목적을 달성하기 위하여, 본 발명에 따른 디지털 잉크 검색 장치는 입력된 질의어 또는 메모에 대한 디지털 잉크 데이터에서 각종 불필요한 부분을 제거하여 정보량을 감소시키는 전처리부; 상기 정보량이 감소된 데이터로부터 특징 벡터를 추출하는 특징추출부; 및 상기 질의어가 상기 메모 중에서 매칭되는 부분이 있는지를 세그먼트 단위로 검색하는 질의어 검색부를 포함한다.
상기 디지털 잉크 검색 장치는 사용자의 스트로크를 입력받고 이를 상기 디지털 잉크 데이터로 인식하여 전처리부에 전달하는 디지타이저를 더 포함하는 것이 바람직하다.
상기 디지털 잉크 검색 장치는 상기 검색 결과 매칭된 부분을 강조하여 상기 매칭된 부분을 포함하는 메모를 사용자에게 디스플레이하고, 전체 메모 중에 매칭되는 부분이 존재하지 않으면 그 결과를 메시지로 사용자에게 알려주는 디스플레이부를 더 포함하는 것이 바람직하다.
상기 디지털 잉크 검색 장치는 상기 입력 스트로크가 메모인 경우에는 그 메모 데이터를 상기 특징추출부에서 추출된 특징 벡터 형태로 저장하고, 질의어 검색시 질의어 검색부에 상기 저장된 메모를 제공하는 메모 DB를 더 포함하는 것이 바람직하다.
상기 질의어 검색부는 상기 특징 벡터로 표현되는 문자를 시간적으로 입력된 순서 정보 또는 공간적 분리 정보를 이용하여 세그먼트로 분할하는 세그먼트 분할부; 상기 분할된 세그먼트들에 대하여 검색할 순위를 결정하고 이를 스포팅부에 제공하는 검색순위 결정부; 스포팅 테이블을 이용하여 상기 결정된 검색순위 중 가장 높은 순위를 갖는 질의어의 세그먼트를 메모의 세그먼트와 비교하여 유사도가 소정의 임계치(a)를 넘는 셀을 검색하는 스포팅부; 및 상기 검색된 셀로부터 상기 셀의 주변을 검색하여 질의어 전체에 대하여 해당 메모와 일치하는 부분이 있는지의 여부를 검사하는 주변검색부를 포함하는 것이 바람직하다.
상기 검색순위는 각 세그먼트의 정보량에 결정하는 것이 바람직하다.
상기 스포팅 테이블은 열(row)와 행(column)으로 구분된 다단계의 명암 정도를 가진 셀로 구성되는데, i번째 열과 j번째 행이 만나는 셀은 질의어의 i번째 세그먼트와 검색 대상 메모의 j번째 세그먼트의 유사도를 비교한 결과를 기록하는 것이 바람직하다.
상기 유사도를 구하는 것은 Elastic Matching 방법을 사용하는 것이 바람직하다.
상기 셀의 주변을 검색하는 것은 상기 셀의 대각선 방향으로 검색하되, 상기 스포팅 테이블의 상단 및 하단에 다다를 때까지 검색하는 것이 바람직하다.
상기 셀의 주변을 검색하는 것은 상기 셀의 대각선 방향으로 검색하되, 가로확장 및 세로확장을 통하여 다음에 선택될 노드의 후보군을 선정하고, Best First Search 방식에 따라 현재까지의 검색 결과 중 가장 유사도가 높은 부분으로부터 연속 확장해 나가면서 스포팅 테이블의 상단 및 하단에 다다를 때까지 검색하는 것이 바람직하다.
상기 일치하는 부분은 상기 상단 및 하단에 다다를 때까지 검색한 결과에 대한 누적 유사도를 결정하고 상기 누적 유사도가 소정의 임계치(b)를 넘는 경우에 메모에서 해당 부분을 의미하는 것이 바람직하다.
상기 후보군 중 확장 없이 대각선 방향의 셀을 다음 노드로 선택하는 경우에, 누적 유사도는
Figure 112004006194907-pat00001
로 표시되는데,
Figure 112004006194907-pat00002
는 현재 노드에서 사용하는 질의어 세그먼트의 길이를,
Figure 112004006194907-pat00003
는 다음 노드에서 확장된 질의어 세그먼트의 길이를,
Figure 112004006194907-pat00004
는 질의어의 i번째 세그먼트와 검색 대상 메모의
Figure 112004006194907-pat00005
번째 세그먼트의 유사도를 의미하는 것이 바람직하다.
상기 후보군 중 세로 확장을 하는 경우에, 누적 유사도는
Figure 112004006194907-pat00006
로 표시되는데,
Figure 112004006194907-pat00007
는 현재 노드에서 사용하는 질 의어 세그먼트의 길이를,
Figure 112004006194907-pat00008
는 다음 노드에서 확장된 질의어 세그먼트의 길이를,
Figure 112004006194907-pat00009
는 다다음 노드에서 확장된 질의어 세그먼트의 길이를,
Figure 112004006194907-pat00010
는 질의어의 i+1번째 세그먼트와 i+2번째 세그먼트를 합한 것과 검색 대상 메모의
Figure 112004006194907-pat00011
번째 세그먼트의 유사도를 의미하는 것이 바람직하다.
상기 후보군 중 세로 확장을 하는 경우에, 누적 유사도는
Figure 112004006194907-pat00012
로 표시되는데,
Figure 112004006194907-pat00013
는 현재 노드에서 사용하는 질의어 세그먼트의 길이를,
Figure 112004006194907-pat00014
는 다음 노드에서 확장된 질의어 세그먼트의 길이를,
Figure 112004006194907-pat00015
는 질의어의 i+1번째 세그먼트와, 검색 대상 메모의
Figure 112004006194907-pat00016
번째 세그먼트와
Figure 112004006194907-pat00017
번째 세그먼트를 합한 것의 유사도를 의미하는 것을 특징으로 하는 것이 바람직하다.
상기 검색순위를 결정하는 것은 상기 질의어 및 상기 메모를 문자 단위로 분할하고, 상기 질의어의 세그먼트 중 문자의 시작 부분 또는 끝부분에 해당하는 세그먼트들에 대해서만 검색순위를 결정하는 것이 바람직하다.
상기 질의어의 세그먼트를 메모의 세그먼트와 비교하는 것은 상기 검색순위 중 최우선 순위로 결정된 세그먼트를 상기 결정된 세그먼트가 시작 부분인지 끝부분인지에 따라서, 검색 대상 메모에서 문자의 시작 부분 또는 끝부분에 해당하는 세그먼트들과만 비교하는 것이 바람직하다.
상기한 목적을 달성하기 위하여 본 발명에 따른 디지털 잉크 검색 방법은, 입력된 메모에 대한 디지털 잉크 데이터에서 각종 불필요한 부분을 제거하여 정보량을 감소시키는 단계; 상기 정보량이 감소된 메모 데이터로부터 특징 벡터를 추출하여 메모 DB에 저장하는 단계; 입력된 질의어에 대한 디지털 잉크 데이터에서 각종 불필요한 부분을 제거하여 정보량을 감소시키는 단계; 상기 정보량이 감소된 질의어 데이터로부터 특징 벡터를 추출하는 단계; 및 상기 질의어가 상기 메모 중에서 매칭되는 부분이 있는지를 세그먼트 단위로 검색하는 단계를 포함한다.
상기 세그먼트 단위로 검색하는 단계는, 상기 특징 벡터로 표현되는 문자를 시간적으로 입력된 순서 정보 또는 공간적 분리 정보를 이용하여 세그먼트로 분할하는 단계; 상기 분할된 세그먼트들에 대하여 검색할 순위를 결정하는 단계; 스포팅 테이블을 이용하여 상기 결정된 검색순위 중 가장 높은 순위를 갖는 질의어의 세그먼트를 메모의 세그먼트와 비교하여 유사도가 소정의 임계치(a)를 넘는 셀을 검색하는 단계; 및 상기 검색된 셀로부터 상기 셀의 주변을 검색하여 질의어 전체에 대하여 해당 메모와 일치하는 부분이 있는지의 여부를 검사하는 단계를 포함하는 것이 바람직하다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명한다. 본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태 로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
본 발명의 일 실시예에 따른 디지털 잉크 검색 장치는 도 3과 같이 구성된다. 디지털 잉크 검색 시스템(100)은 디지타이저(10), 세그먼트 분할부(20), 전처리부(30), 특징추출부(40), 메모 DB(40), 질의어 검색부(50), 및 디스플레이부(60)를 포함하여 구성될 수 있다.
디지타이저(digitizer; 10)는 사용자의 스트로크를 입력받아 이를 픽셀별 이진 데이터, 즉 디지털 잉크 데이터로 인식하여 전처리부에 전달한다. 디지타이저(10)의 해상도는 예컨대, 인치당 150 포인트 정도로 하여 입력받을 수 있으며, 초당 50포인트의 속도로 프로세서에 전달할 수 있다.
전처리부(20)는 입력된 디지털 잉크 데이터의 각종 불필요한 부분을 제거하여 정보량을 감소시킨다. 상기 불필요한 부분은 사용자 스트로크 입력의 불완전성, 문자 크기의 다양성, 필기속도의 다양성 등에 의하여 발생된다. 이러한, 전처리에는 과정에는 De-Hooking, Resampling 등의 처리를 포함할 수 있다. De-Hooking은 펜 입력 과정에서 스트로크(stroke; 펜을 떼지 않고 한번에 필기하는 단위)의 시작과 끝 부분에서 나타나는 삐침(Hook)을 제거하는 과정이다. Resampling은 정보의 왜곡을 최소화하면서 정보량을 줄이기 위한 처리 과정으로, 변화가 큰 부분 점(Point)을 제외한 나머지 부분의 점들을 삭제하는 과정이다.
특징추출부(feature extraction; 30)는 전처리를 통하여 필터링된 데이터로부터 특징 벡터를 추출한다. 상기 특징 벡터에는 점과 점이 연결된 라인의 각도, 그 길이 등이 정보로서 포함될 수 있으며, 그 밖의 다양한 정보를 특징 정보로 사용하는 것이 가능하다. 이러한 특징추출 과정에 관하여 여러 가지 종래 방법이 존재하는데, 본 발명에서는 이 중 하나의 방법 이용할 수 있다. 예를 들어, B.K.Shin, J.Y.Ha, S.C.Oh, Kim J.H.의 공저 논문, "Network-based approach to online cursive script recognition"(IEEE Trans. on Systems, Man and Cybernetics, Part B, V.29, Issue 2, 1999)에 제시된 특징추출 방법을 이용할 수 있을 것이다.
사용자가 입력한 스트로크는 단순한 '메모 데이터'일 수도 있고, 상기 메모 데이터에서 매칭되는 부분을 찾기 위한 '질의어'일 수도 있다. 메모 DB(40)는 상기 입력 스트로크가 단순한 메모 데이터인 경우에는 그 메모 데이터를 특징추출부(30)에서 추출된 특징 벡터 형태로 저장한다.
반면에, 상기 입력 스트로크가 질의어인 경우에는 메모 DB(40)를 거치지 않고 질의어 검색부(50)로 입력된다.
질의어 검색부(50)는 본 발명의 핵심 부분으로서, 질의어가 메모 DB에 저장된 메모 데이터에서 매칭되는 부분이 있는지를 소정의 매칭 알고리즘을 이용하여 세그먼트 단위로 검색하고 그 검색 결과를 디스플레이부에 전달한다.
디스플레이부(60)는 질의어 검색 결과 매칭되는 부분이 존재하는 메모를 매칭된 부분을 강조하여 사용자에게 디스플레이하고, 전체 메모에 매칭되는 부분이 존재하지 않으면 그 사실을 사용자에게 메시지로 알려 준다. 도 4에서는 사용자에게 디스플레이되는 메모의 예를 나타내었다.
도 5는 질의어 검색부(50)의 구성을 나타낸 블록도이다. 질의어 검색부(50)는 세그먼트 분할부(51), 검색순위 결정부(52), 스포팅부(53), 주변검색부(54)를 포함하여 구성될 수 있다.
세그먼트 분할부(51)는 상기 특징 벡터로 표현되는 문자를 시간적 정보(temporal information; 시간적으로 입력된 순서 정보) 또는 공간적 정보(spatial information; 공간적으로 분리 정보)를 이용하여 분할 단위, 즉 세그먼트로 분할한다. 세그먼트란 사용자가 입력한 문자 중에서 다른 부분과 연결성이 없이 별도로 분리된 부분이라고 정의할 수 있다. 따라서 한글의 경우에 하나의 자음, 모음 등의 음소 등이 될 수 있고 영문의 경우에는 하나의 알파벳 문자가 될 수 있다. 그러나, 사용자의 필기 방식에 따라서는 두 개의 음소가 하나의 세그먼트로 인식될 수도 있고, 하나의 음소가 두 개의 세그먼트로 인식될 수도 있어서, 상기 세그먼트 분할은 사용자의 입력이 실제로는 같은 문자를 나타내는 것이라고 하더라도 사용자의 필기 방식에 따라서 가변적으로 될 수 있다.
여기서 '별도로 분리'되었다고 표현한 것은 대부분 공간적으로 분리된 것뿐만이 아니라, 시간적으로 분리된 것 또한 포함된다는 점을 주목하여야 한다. 예를 들어, 도 2의 예에서 '결'의 'ㄹ'은 '혼'의 '오'와 공간적으로 연결되어 있지만, 시간적으로는 연결되어 있지 않다. 디지타이저를 통하여 사용자가 메모나 질의어를 입력할 때, 디지타이저는 입력된 최종 형태뿐만이 아니라 스트로크의 순서 정보도 알 수 있으므로 이를 이용한다면, 'ㄹ' 후에 'ㅎ'이 기록되기 때문에 'ㄹ'과 '오'를 합하여 하나의 세그먼트로 인식하지는 않는다.
세그먼트별 분할을 결정하는 기준은 여러 가지가 있을 수 있다. 예를 들어, 디지타이저의 표면에서 펜 디바이스의 접촉이 떨어지는 순간을 기준으로 하나의 세그먼트가 완성되고 다음 세그먼트가 시작되는 것으로 인식할 수 있다. 영문의 경우에는, 국부적 최대점, 최소점을 기준으로 분할 할 수도 있고, 연결획 분석을 통하여 연결획(Ligature) 지점을 기준으로 분할하는 방법을 사용할 수도 있다. 이외에도 세그먼트를 인식하는 종래의 방법에는 여러 가지가 있으며 본 발명에서는 이들 중에서 하나의 방법을 선택하여 사용할 수 있다.
도 2의 질의어를 세그먼트 별로 분리한 예를 도 6에 나타내었다. 각 세그먼트는 사용자가 디지타이저에 입력한 시간적 순서에 따라서 배열되며, i값은 그 배열순서를 나타낸다. 이는 입력된 시간적 순서에 불과하고 검색하는 순서는 아님에 유의해야 한다.
한편, 본 발명에서 세그먼트는 바람직하게는 상기와 같이 정의하였지만, 이에 한하지 않고 하나의 스트로크(획)를 세그먼트로 정의할 수도 있을 것이다. 다만, 일반적으로 스트로크를 세그먼트로 선택하면 문자의 분할이 너무 많아져 검색 성능이 저하될 경우가 많겠지만, 띄기가 별로 없는 필기방식(예를 들어, 영어의 필기체)을 사용하는 경우에는 오히려 스트로크 단위로 분할하는 것이 보다 유리할 것이다.
검색순위 결정부(52)는 세그먼트 분할부(51)에서 분할된 세그먼트들에 대하 여 검색할 순위를 결정한다. 스포팅부(53)에서 수행되는 스포팅 과정이 의미 있는 결과를 내기 위해서는 다음의 두 가지 기본 조건을 만족해야 한다. 첫째, 복잡도를 충분히 줄일 수 있어야 한다. 둘째, 스포팅의 결과가 충분히 의미 있어야 한다. 이러한 조건을 충족시키기 위하여, 세그먼트 분할부(51)에서 분할한 각 세그먼트에 대하여 상기 두 가지 조건을 만족시킬 수 있는 세그먼트들을 우선순위로 하여, 이들의 적용 순서를 정한다. 상기 첫째 조건을 만족시키기 위해서는, 분할된 부분이 전체 질의어에 비하여 충분히 작은 단위여야 한다. 그리고 상기 둘째 조건을 만족시키기 위해서는, 분할된 부분이 너무 단순한 패턴이어서는 안되며, 일반적으로 자주 발생하지 않는 패턴일수록 좋다.
도 7의 스포팅 테이블을 참조하면(도 7에 관한 보다 상세한 설명은 후술한다), 1)부분으로 스포팅을 진행하는 경우 총 3곳이 스포팅되는 반면, 2)부분으로 스포팅을 진행하면 총 8곳이 스포팅이 진행되는 것을 알 수 있다. 즉, 2)부분으로 스포팅을 진행하는 경우에는 잘못된 스포팅(False Alarm)이 자주 발생하는 반면, 1)부분으로 진행하는 경우에는 잘못된 스포팅의 횟수가 적다. 그러나, 1)부분으로 스포팅을 진행하는 경우 잘못된 거절(False Rejection)의 가능성이 높아지기 때문에, 이상의 두 가지 조건을 절충할 수 있는 방식으로 질의어를 분할하고 스포팅 순서를 결정하여야 한다.
도 8를 참조하여 각 세그먼트의 정보량에 따라서 세그먼트의 우선순위를 결정하는 방식의 예를 설명한다. 각 세그먼트의 정보량을 결정하는 방식으로는 전처리부(20)에서 전처리를 한 후 나타나는 점(Point)의 개수를 사용한다. 즉, 세그먼 트를 구성하는 점의 개수가 많으면 세그먼트의 정보량이 많은 것으로 판단하고, 정보량이 많은 세그먼트에 검색의 우선 순위를 주는 방식이다.
도 8에서 질의어의 각 부분들 중 5개의 점으로 구성된 부분이 총 4개로서 우선 순위가 같다. 이들 중에서 임의 선택(random selection)을 통하여 스포팅에 사용할 순서를 결정할 수 있다.
스포팅부(53)는 스포팅 테이블을 이용하여 상기 결정된 검색순위 중 가장 높은 순위를 갖는 질의어 세그먼트를 메모 세그먼트와 비교하여 임계치를 넘는 셀을 검색한다.
스포팅(spotting)이란, 전체를 비교하는 복잡도를 피하기 위한 방법으로, 검색하고자 하는 질의어의 세그먼트 단위로 검색 대상을 스캔하는 방법이다.
디지털 잉크 검색상의 가장 큰 문제점 중의 하나는, 검색 대상인 메모를 검색을 위한 특정 단위로 분할하기가 쉽지 않다는 점이다. 예를 들어, 도 2의 '결혼식'이라는 질의어가 도 1과 같은 메모 내에 존재하는지의 여부를 검색하려면, 메모 내의 모든 가능한 획의 순서적 조합을 추출하여 질의어와 유사도를 비교해야 한다. 즉, '친구 결혼식'과 유사도를 비교하기도 하고, 혹은 '결혼식 대구', 혹은 '파라다이스', '구결혼', 심지어는 획의 일부인 'ㅜ결ㅎ' 등의 부분과도 유사도를 비교해야 하는 경우가 발생한다. 이는 문자와 문자간의 경계를 정확하게 파악하기 어렵다는 사실에 기인한다.
이러한 방식으로는 검색의 복잡도가 너무 높아서 실제적으로는 사용할 수 없으며, 어떠한 방식으로든 메모 내에서 질의어에 해당하는 부분이 실제로 존재하는 지, 존재한다면 어느 부분인지를 가능한 적은 횟수의 유사도 비교만으로 처리하는 방법이 필요하다.
본 발명에서는 고속 검색을 실현하기 위한 방법으로, 모든 가능성 있는 후보들을 검색하지 않고, 검색어의 특정 부분만을 추출하여 이를 검색하고, 해당 부분에 대해 높은 유사도로 검색 결과가 나오는 경우에 대해서만 보다 상세한 검색을 진행하는 방식으로 고속화를 실현하는 방법을 설명한다.
본 발명에서는 도 7에서 도시하는 바와 같이, 스포팅(Spotting)이라는 방법을 통하여 질의어의 일부분만으로 검색을 진행함으로써 유사도 검색의 단위를 크게 줄여서 검색 소요 시간을 크게 단축함과 동시에 실제 전체 질의어에 대한 유사도 비교 횟수를 줄이는 방법을 사용한다.
예를 들어, 도 9에서 도시하는 바와 같이, 질의어의 특정 세그먼트(예를 들어, 받침 'ㅇ' 부분)와 메모의 전체 영역에 대하여 유사도를 비교한다. 유사도 비교 결과 받침 'ㅇ'과 유사한 부분으로는 '천', '상', '진', '행'의 받침 부분이 유사한 것으로 검출될 수 있음을 보여주고 있다. 이렇게 스포팅된 지점으로부터 각각 나머지 부분들에 대한 검색(Candidate Expansion)을 진행함으로써 질의어 전체 영역과의 유사도를 비교할 수 있다.
스포팅 과정을 알기 쉽게 수행하기 위한 스포팅 테이블(spotting table)의 일 예를 도 7에 나타내었다. 스포팅 테이블은 열(row)와 행(column)으로 구분된 다단계의 명암 정도를 가진 사각형으로 구성되어 있다. 열은 질의어를 세그먼트 단위로 분할한 후 각각의 단위별로 분리된 것을 의미하며, 행은 검색 대상 메모를 검색 의 단위로 분할한 후 각각의 단위별로 펼쳐놓은 것을 의미한다. 즉, i번째 열과 j번째 행이 만나는 셀(cell)은 질의어의 i번째 세그먼트와 검색 대상 메모의 j번째 세그먼트의 유사도를 비교한 결과이다.
각 사각형의 명암은 각 셀의 유사도 비교 결과를 의미한다. 명암이 진한 셀일수록 비교된 두 세그먼트가 유사한 것을 의미하며, 특히 붉은 색으로 표시된 셀은 스포팅 임계치를 넘는다는 것, 즉 질의어의 세그먼트와 메모의 세그먼트가 매칭된다는 것을 나타낸다.
스포팅 과정을 보다 상세히 살펴보면, 질의어 세그먼트 중 질의어 검색부(50)의 검색 순서에 따라 최우선 검색순위를 갖는 질의어 세그먼트에 대하여 수평 방향(j를 증가시키는 방향)으로 진행하면서 메모에서 매칭되는 세그먼트가 있는지를 찾는다. 만약, 매칭되는 세그먼트가 존재하지 않는다면 상기 최우선 검색순위 다음의 순위를 갖는 질의어 세그먼트에 대하여 마찬가지 방법으로 매칭되는 세그먼트가 있는지를 찾는다.
매칭 여부를 판단하는 것은, 현재 스포팅에 사용하고 있는 질의어의 특정 세그먼트와 메모의 특정 세그먼트의 유사도를 비교하여, 이를 [Min, Max] 값으로 정규화된 형태로 출력하고, 계산된 값을 임계치와 비교하여 설정된 임계치를 넘는 경우에는 이를 매칭된 것으로 판단하며, 이와 같이 매칭된 셀을 '스포팅된 셀(spotted cell)'이라고 정의한다.
만약, 계산된 유사도 값이 임계치보다 작은 경우에는 메모의 다음 세그먼트를 선택하고 동일한 과정을 반복한다. 유사도 비교 방법은 상술한 Elastic Matching 방법 등을 사용하여 비교 결과를 정규화된 수치로 표현 가능한 여러 가지 방법을 사용할 수 있다. 스포팅 과정에서 계산되는 유사도 비교 결과는 유사도 테이블을 작성하여 보관함으로써 필요한 경우에 한하여 계산하며, 중복된 계산을 하지 않는다.
주변검색부(54)는 상기 검색된(스포팅된) 셀로부터 상기 셀의 주변을 검색하여 질의어 전체에 대하여 해당 메모와 일치하는 부분이 있는지의 여부를 검사한다. 스포팅부(53)에서의 스포팅 과정을 통하여 현재 질의어의 세그먼트와 매칭되는 메모의 세그먼트가 존재하면, 그 해당하는 셀에서 대각선 방향으로 스포팅 테이블의 상단 및 하단에 다다를 때까지 이동하면서 다음 셀에서의 유사도를 계산하고, 이를 해당 셀에 기록(색상으로 표시)한다. 이러한 과정은 대각선 방향의 모든 셀에 대하여 처리될 때까지 반복된다.
여기서, 대각선 방향이란 좌상 또는 우상 방향을 의미하는데, 좌상 방향으로 이동한다는 것은 현재 셀 좌표가 (i,j)라고 했을 때 (i-1,j-1) 좌표를 갖는 셀로 이동하는 것으로서, 이는 질의어의 이전 세그먼트를 메모의 이전 세그먼트와 비교하는 것이 된다. 그리고, 우하 방향으로 이동한다는 것은 현재 셀 좌표가 (i,j)라고 했을 때 (i+1,j+1) 좌표를 갖는 셀로 이동하는 것으로서, 질의어의 이후 세그먼트를 메모의 이후 세그먼트와 비교하는 것이다. 이와 같은 과정을 '주변검색'이라고 명명한다.
예를 들어, 도 10a에서 보는 바와 같이 매칭된 셀(A)를 기준으로 하여 좌상 방향으로 이동하면서 그 방향의 모든 셀에서의 유사도를 계산하여 기록한다. 그 후, 다시 셀(A)로부터 우하 방향으로 이동하면서 그 방향의 모든 셀에서의 유사도를 계산하여 기록하게 된다.
이와 같이, 대각선 방향으로 유사도를 비교하는 과정은, 질의어 세그먼트와 메모 세그먼트가 서로 일대일 대응이라는 것을 전제로 하는 것이지만 실제로 필기 방식에 따라서는 하나의 세그먼트에 복수의 음소가 포함될 수도 있고, 하나의 음소가 복수의 세그먼트로 인식될 수도 있다.
이러한 문제점을 해결하기 위하여 각 부분 단위로 매칭된 유사도 정보 및 각 부분의 길이 정보 등을 이용하여 스포팅 된 지점으로부터 확장해 가면서 검색을 진행하는 것이 바람직하다.
도 10b는 스포팅된 셀로부터 확장 검색을 진행하는 방식을 도식화하고 있다. 여기서, 녹색 테두리로 그려진 부분은 실제 질의어의 세그먼트와 메모의 세그먼트가 대응되는 정답을 마킹해 둔 것이다. 스포팅된 셀(B)로부터 화살표 (a)방향으로 향하는 것, 즉 확장이 없는 경우는 하나의 질의어 세그먼트와 하나의 메모 세그먼트를 비교하는 것을 나타낸다. 그리고, 화살표 (b)방향으로 확장하는 것, 즉 가로확장은 하나의 질의어 세그먼트와 두 개의 메모 세그먼트를 합한 것을 비교하는 것을 나타낸다. 또한, 화살표 (c)방향으로 확장하는 것, 즉 세로확장은 두 개의 질의어 세그먼트를 합한 것과 하나의 메모 세그먼트를 비교하는 것을 나타낸다.
가로확장은 질의어에서 두 개의 음소가 하나의 세그먼트로 인식되고, 메모에서는 하나의 음소가 하나의 세그먼트로 인식된 경우에 대비한 방법이다. 그리고, 세로확장은 질의어에서 하나의 음소가 하나의 세그먼트로 인식되고, 메모에서는 두 개의 음소가 하나의 세그먼트로 인식된 경우에 대비한 방법이다.
이러한 음소를 병합하여 필기하는 문제를 극복하기 위하여, 한 단계를 확장하는 과정에서 여러 가지의 음소가 병합되었을 가능성을 동시에 테스트하고, 확장 가능한 부분 결과들을 Best First Search 알고리즘을 사용하여 현재까지의 검색 결과 중 가장 유사도가 높은 부분으로부터 연속 확장해 나가는 방식을 사용한다. 이와 같은 과정을 '확장 주변검색'이라고 명명한다.
만약, 도 10b에서와 같이 2단계 확장(가로방향 2, 세로방향 2의 확장)을 사용하는 경우에는 3가지 노드 후보군이 존재하며 이중 가장 유사도가 높은 쪽을 선택하면 된다. 만약, 3단계 확장을 사용한다면 5가지 노드 후보군이 존재할 수 있다.
도 10b에서 도시한 알고리즘은 도 11과 같이 트리(Tree) 형태로 표현될 수 있다. 이러한 검색 과정을 유사도 테이블 상에서 좌상단, 우하단으로 경계점에 다다를 때까지 검색을 진행한다. 도 11에서는 하나의 스포팅된 셀로부터 우하 방향으로 검색해 나가는 과정을 예로 들었는데, 여기서 붉은색 사각형 하나는 Elastic Matching 1회에 해당하며, 이를 노드라고 정의한다. 하나의 노드는 하나의 셀 또는 하나 이상의 셀로 구성될 수 있다.
이와 같은, 확장 주변검색을 함에 있어서 유사도의 계산 방식의 실시예는 다음과 같다. 도 11의 노드(C)에서의 유사도를
Figure 112004006194907-pat00018
라고 할 때, (1)의 형태처럼 질의어의 한 세그먼트를 확장하는 경우, 아래의 식 1과 같이 누적 유사도를 각 세 그먼트의 길이에 비례하여 정규화된 형태로 계산할 수 있다.
Figure 112004006194907-pat00019
[식 1]
여기서
Figure 112004006194907-pat00020
,
Figure 112004006194907-pat00021
는 각각 현재 노드에서 사용하는 질의어 세그먼트의 길이, 다음 노드에서 확장된 질의어 세그먼트의 길이를 의미하며,
Figure 112004006194907-pat00022
는 질의어의 i번째 세그먼트와 검색 대상 메모의
Figure 112004006194907-pat00023
번째 세그먼트의 유사도를 의미하고,
Figure 112004006194907-pat00024
는 질의어의 i+1번째 세그먼트와 검색 대상 메모의
Figure 112004006194907-pat00025
번째 세그먼트의 유사도를 의미한다.
마찬가지로 (2)의 형태처럼 질의어의 2개의 세그먼트를 사용하면서 확장한 경우에는 다음의 [식 2]와 같이 누적 유사도를 계산한다. 여기서,
Figure 112004006194907-pat00026
는 다다음 노드에서 확장된 질의어 세그먼트의 길이를,
Figure 112004006194907-pat00027
는 질의어의 i+1번째 세그먼트와 i+2번째 세그먼트를 합한 것과 검색 대상 메모의
Figure 112004006194907-pat00028
번째 세그먼트의 유사도를 의미한다.
Figure 112004006194907-pat00029
[식 2]
마찬가지로 (3)의 형태처럼 질의어의 2개의 세그먼트를 사용하면서 확장한 경우에는 다음의 [식 3]과 같이 누적 유사도를 계산한다. 여기서,
Figure 112004006194907-pat00030
는 질의어의 i+1번째 세그먼트와, 검색 대상 메모의
Figure 112004006194907-pat00031
번째 세그먼트와
Figure 112004006194907-pat00032
번째 세그먼트를 합한 것의 유사도를 의미한다.
Figure 112004006194907-pat00033
[식 3]
이와 같이, 확장 가능한 부분의 결과들을 Best First Search 알고리즘을 사용하여 현재까지의 검색 결과 중 가장 유사도가 높은 부분으로부터 연속 확장해 나간다. 예를 들어, 도 11에서 (1) 방향 검색과 (2) 방향 검색, (3) 방향 검색을 수행하고, 그 결과 (1) 방향 검색의 누적 유사도가 현재까지의 검색 결과 중 가장 높은 것으로 나타났다면, (1) 방향 결과에서 다시 한 단계 확장 검색을 진행한다. (3) 방향 검색과 같이 누적 유사도가 소정의 임계치 이상인 경우에는 더 이상 검색을 진행하지 않고 검색 패스를 잘라낸다(Pruning).
이상의 확장 검색 과정에서 검색 방향의 끝 (상단 및 하단)에 다다를 때까지 진행된 확장 검색되었으며 그 누적 유사도가 임계치 이상인 결과가 발견 되었다면, 거기서 검색을 멈추고 메모에서 그 패스에 해당하는 부분을 최적으로 매칭된 부분으로 선택한다.
이상의 스포팅 과정 및 주변검색 과정을 거쳤으나 임계치를 넘는 패스가 존 재하지 않는 경우에는 메모 내에 질의어와 유사한 부분이 없는 것으로 판단할 수도 있고, 계산된 각 패스에 대한 누적 유사도 중 가장 큰 값을 갖는 패스를 후보로서 제시할 수도 있다.
상기한 스포팅 방법을 적용하면 스포팅에 사용되는 질의어의 일부분과 검색 대상 메모의 모든 부분에 대하여 순차적인 검색을 진행하게 된다. 그러나 실제 필기 정보로부터 도출될 수 있는 추가적인 정보(이하 메타정보)를 얻을 수 있다면 검색 대상 메모의 모든 부분과 유사도를 비교하지 않고 특성이 일치하는 부분에 대해서만 선택적으로 비교를 함으로써 더욱 빠른 속도를 얻을 수 있다.
문자 분할 정보를 메타 정보로서 사용하는 경우를 예로 들 수 있다. 입력된 디지털 잉크를 문자 단위로 분할하는 것은 100% 정확하게 분할할 수는 없지만, 다양한 정보를 활용하여 높은 정확도로 문자 단위의 분할 결과를 얻을 수 있다. 정확한 정보가 아니기 때문에 이러한 정보를 신뢰하고서 다음 단계에서 이용할 수는 없지만, 본 발명에서는 스포팅 과정에서의 의미 없는 비교 시도를 피하는 용도로 사용이 가능하다.
도 12는 문자 분할 메타 정보를 활용한 스포팅 방법을 도식화하고 있다. 도 12의 각 열과 행은 상술한 바와 같이, 각각 질의어와 메모의 각 부분들의 유사도를 의미한다. 문자 분할 메타 정보가 주어지면 파란색 선과 같이 각 문자 사이의 경계지점을 표시할 수 있다.
이렇게 문자 분할된 메타 정보가 주어진 상황에서는 세그먼트 분할부(51)에서의 동작 과정(세그먼트 분할 과정)과, 검색순위 결정부(52)에서의 동작 과정(검 색순위 결정 과정)과, 스포팅부(53)에서의 동작 과정(스포팅 과정)이 달라진다.
먼저 세그먼트 분할 과정에서는, 메타 정보에서 주어진 문자의 시작 부분 혹은 끝부분에 해당하는 세그먼트들에 대해서만 스포팅에 사용한다. 예를 들어, 도 12에서는 질의어가 2개의 문자로 구분되어 있으며, 문자의 시작 세그먼트와 끝 세그먼트는 총 4개 존재한다. 따라서, 이 경우에는 4개의 세그먼트에 대해서 정보량을 기준으로 검색 순위를 정한다.
다음으로 메타 정보로 주어진 문자 분할 정보를 이용하여 선택적인 검색을 수행한다. 예를 들어, 현재 스포팅에 사용하는 세그먼트가 질의어의 문자 시작부분에 해당하는 세그먼트인 경우, 검색 대상 메모에서도 문자의 시작 부분에 해당하는 세그먼트에 대해서만 선택적으로 비교를 수행한다. 마찬가지로, 문자의 끝부분에 해당하는 세그먼트인 경우 메모에서도 문자의 끝에 해당하는 세그먼트에 대해서만 비교를 진행한다. 이와 같이 비교하는 과정은 도 12에서 화살표로 나타나 있다.
이상의 메타정보 이용 실시예 이외에 상기 실시예를 응용하여, 문자를 가분할한 후 특징 세그먼트가 문자 내 차지하는 위치(topology) 정보를 이용하여 문자중 해당 위치 근처에 존재하는 부분의 세그먼트들 간에만 비교하는 방법도 사용할 수 있을 것이다. 또한, 영문의 경우에는 단어 단위로 가분할하고 이를 메타 정보를 이용하는 방법도 사용할 수 있다.
이러한 방법을 적용하면 검색 성능에서는 약간의 손실이 발생할 가능성이 있으나 일반적인 사용자의 필기 패턴에 적용해 보면 그 손실의 폭이 적은 반면, 속도 개선의 효과는 무척 크게 나타남을 알 수 있었다.
이상 첨부된 도면을 참조하여 본 발명의 실시예를 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.
본 발명에 따르면, 디지털 펜으로 질의어를 입력하여 기 작성된 메모 혹은 문서 내에서 원하는 내용을 검색하는 방법에 있어 정확성과 신속성을 기할 수 있다.
또한 본 발명에 따르면, 문자인식과정에서 발생하는 입력 지연 없이 사용자가 신속하게 입력될 수 있어 제품의 친밀도를 향상시킬 수 있다.

Claims (24)

  1. 입력된 질의어 또는 메모에 대한 디지털 잉크 데이터에서 각종 불필요한 부분을 제거하여 정보량을 감소시키는 전처리부;
    상기 정보량이 감소된 데이터로부터 특징 벡터를 추출하는 특징추출부;
    상기 특징 벡터로 표현되는 문자를 시간적으로 입력된 순서 정보 또는 공간적 분리 정보를 이용하여 세그먼트로 분할하는 세그먼트 분할부;
    상기 분할된 세그먼트들에 대하여 검색할 순위를 결정하는 검색순위 결정부;
    상기 결정된 검색순위 중 가장 높은 순위를 갖는 질의어의 세그먼트를 메모의 세그먼트와 비교하여 유사도가 소정의 임계치(a)를 넘는 셀을 검색하는 스포팅부; 및
    상기 검색된 셀로부터 상기 셀의 주변을 검색하여 질의어 전체에 대하여 해당 메모와 일치하는 부분이 있는지의 여부를 검사하는 주변검색부를 포함하는 디지털 잉크 질의 검색 장치.
  2. 제1항에 있어서,
    사용자의 스트로크를 입력받고 이를 상기 디지털 잉크 데이터로 인식하여 전처리부에 전달하는 디지타이저를 더 포함하는 디지털 잉크 질의 검색 장치.
  3. 제1항에 있어서,
    상기 검색 결과 매칭된 부분을 강조하여 상기 매칭된 부분을 포함하는 메모를 사용자에게 디스플레이하고, 전체 메모 중에 매칭되는 부분이 존재하지 않으면 그 결과를 메시지로 사용자에게 알려주는 디스플레이부를 더 포함하는 디지털 잉크 질의 검색 장치.
  4. 제2항에 있어서,
    상기 입력 스트로크가 메모인 경우에는 그 메모를 상기 특징추출부에서 추출된 특징 벡터 형태로 저장하고, 질의어 검색시 상기 저장된 메모를 제공하는 메모 DB를 더 포함하는 디지털 잉크 질의 검색 장치.
  5. 삭제
  6. 제1항에 있어서, 상기 검색순위는 각 세그먼트의 정보량을 기준으로 결정하는 것을 특징으로 하는 디지털 잉크 질의 검색 장치.
  7. 제1항에 있어서, 상기 스포팅부는 상기 임계치(a)를 넘는 셀을 검색하기 위하여 스포팅 테이블을 이용하는데, 상기 스포팅 테이블은
    열(row)와 행(column)으로 구분된 다단계의 명암 정도를 가진 셀로 구성되는데, i번째 열과 j번째 행이 만나는 셀에는 질의어의 i번째 세그먼트와 검색 대상 메모의 j번째 세그먼트의 유사도를 비교한 결과가 기록되는 것을 특징으로 하는 디지털 잉크 질의 검색 장치.
  8. 제1항에 있어서, 상기 유사도는
    Elastic Matching 방법에 의하여 구해지는 것을 특징으로 하는 디지털 잉크 질의 검색 장치.
  9. 제1항에 있어서, 상기 주변검색부는
    상기 셀의 대각선 방향으로 검색하되, 상기 스포팅 테이블의 상단 및 하단에 다다를 때까지 검색하는 것을 특징으로 하는 디지털 잉크 질의 검색 장치.
  10. 제1항에 있어서, 상기 주변검색부는
    상기 셀의 대각선 방향으로 검색하되, 가로확장 및 세로확장을 통하여 다음에 선택될 노드의 후보군을 선정하고, Best First Search 방식에 따라 현재까지의 검색 결과 중 가장 유사도가 높은 부분으로부터 연속 확장해 나가면서 스포팅 테이블의 상단 및 하단에 다다를 때까지 검색하는 것을 특징으로 하는 디지털 잉크 질의 검색 장치.
  11. 제10항에 있어서, 상기 일치하는 부분은
    상기 상단 및 하단에 다다를 때까지 검색한 결과에 대한 누적 유사도가 소정의 임계치(b)를 넘는 경우에 메모에서 해당 부분을 의미하는 것을 특징으로 하는 디지털 잉크 질의 검색 장치.
  12. 제11항에 있어서, 상기 후보군 중 확장 없이 대각선 방향의 셀을 다음 노드로 선택하는 경우에, 상기 누적 유사도는
    Figure 112006007325715-pat00034
    로 표시되는데,
    Figure 112006007325715-pat00035
    는 현재 노드에서 사용하는 질의어 세그먼트의 길이를,
    Figure 112006007325715-pat00036
    는 다음 노드에서 확장된 질의어 세그먼트의 길이를,
    Figure 112006007325715-pat00037
    는 질의어의 i번째 세그먼트와 검색 대상 메모의
    Figure 112006007325715-pat00038
    번째 세그먼트의 유사도를,
    Figure 112006007325715-pat00039
    는 질의어의 i+1번째 세그먼트와 검색 대상 메모의
    Figure 112006007325715-pat00040
    번째 세그먼트의 유사도를 의미하는 것을 특징으로 하는 디지털 잉크 질의 검색 장치.
  13. 제11항에 있어서, 상기 후보군 중 세로 확장을 하는 경우에, 상기 누적 유사도는
    Figure 112006007325715-pat00041
    로 표시되는데,
    Figure 112006007325715-pat00042
    는 현재 노드에서 사용하는 질의어 세그먼트의 길이를,
    Figure 112006007325715-pat00043
    는 다음 노드에서 확장된 질의어 세그먼트의 길이를,
    Figure 112006007325715-pat00044
    는 다다음 노드에서 확장된 질의어 세그먼트의 길이를,
    Figure 112006007325715-pat00045
    는 질의어의 i번째 세그먼트와 검색 대상 메모의
    Figure 112006007325715-pat00046
    번째 세그먼트의 유사도를,
    Figure 112006007325715-pat00047
    는 질의어의 i+1번째 세그먼트와 i+2번째 세그먼트를 합한 것과 검색 대상 메모의
    Figure 112006007325715-pat00048
    번째 세그먼트의 유사도를 의미하는 것을 특징으로 하는 것을 특징으로 하는 디지털 잉크 질의 검색 장치.
  14. 제11항에 있어서, 상기 후보군 중 세로 확장을 하는 경우에, 상기 누적 유사도는
    Figure 112006007325715-pat00049
    로 표시되는데,
    Figure 112006007325715-pat00050
    는 현재 노드에서 사용하는 질의어 세그먼트의 길이를,
    Figure 112006007325715-pat00051
    는 다음 노드에서 확장된 질의어 세그먼트의 길이를,
    Figure 112006007325715-pat00052
    는 질의어의 i번째 세그먼트와 검색 대상 메모의
    Figure 112006007325715-pat00053
    번째 세그먼트의 유사도를,
    Figure 112006007325715-pat00054
    는 질의어의 i+1번째 세그먼트와, 검색 대상 메모의
    Figure 112006007325715-pat00055
    번째 세그먼트와
    Figure 112006007325715-pat00056
    번째 세그먼트를 합한 것의 유사도를 의미하는 것을 특징으로 하는 것을 특징으로 하는 디지털 잉크 질의 검색 장치.
  15. 제1항에 있어서, 상기 검색순위 결정부는
    상기 질의어 및 상기 메모를 문자 단위로 분할하고, 상기 질의어의 세그먼트 중 문자의 시작 부분 또는 끝부분에 해당하는 세그먼트들에 대해서만 검색순위를 결정하는 것을 특징으로 하는 디지털 잉크 질의 검색 장치.
  16. 제15항에 있어서, 상기 검색순위 결정부는
    상기 검색순위 중 최우선 순위로 결정된 세그먼트를 상기 결정된 세그먼트가 시작 부분인지 끝부분인지에 따라서, 검색 대상 메모에서 문자의 시작 부분 또는 끝부분에 해당하는 세그먼트들과만 비교하는 것을 특징으로 하는 디지털 잉크 질의 검색 장치.
  17. 입력된 메모에 대한 디지털 잉크 데이터에서 각종 불필요한 부분을 제거하여 정보량을 감소시키는 단계;
    상기 정보량이 감소된 메모 데이터로부터 특징 벡터를 추출하여 메모 DB에 저장하는 단계;
    입력된 질의어에 대한 디지털 잉크 데이터에서 각종 불필요한 부분을 제거하여 정보량을 감소시키는 단계;
    상기 정보량이 감소된 질의어 데이터로부터 특징 벡터를 추출하는 단계;
    상기 질의어가 상기 메모 중에서 매칭되는 부분이 있는지를 세그먼트 단위로 검색하는 단계를 포함하는 디지털 잉크 질의 검색 방법.
  18. 제17항에 있어서, 상기 세그먼트 단위로 검색하는 단계는
    상기 특징 벡터로 표현되는 문자를 시간적으로 입력된 순서 정보 또는 공간적 분리 정보를 이용하여 세그먼트로 분할하는 단계;
    상기 분할된 세그먼트들에 대하여 검색할 순위를 결정하는 단계;
    스포팅 테이블을 이용하여 상기 결정된 검색순위 중 가장 높은 순위를 갖는 질의어의 세그먼트를 메모의 세그먼트와 비교하여 유사도가 소정의 임계치(a)를 넘는 셀을 검색하는 단계; 및
    상기 검색된 셀로부터 상기 셀의 주변을 검색하여 질의어 전체에 대하여 해당 메모와 일치하는 부분이 있는지의 여부를 검사하는 단계를 포함하는 것을 특징으로 하는 디지털 잉크 질의 검색 방법.
  19. 제18항에 있어서, 상기 검색순위는 각 세그먼트의 정보량을 기준으로 결정되는 것을 특징으로 하는 디지털 잉크 질의 검색 방법.
  20. 제18항에 있어서, 상기 스포팅 테이블은
    열(row)와 행(column)으로 구분된 다단계의 명암 정도를 가진 셀로 구성되는데, i번째 열과 j번째 행이 만나는 셀은 질의어의 i번째 세그먼트와 검색 대상 메모의 j번째 세그먼트의 유사도를 비교한 결과가 기록되는 것을 특징으로 하는 디지털 잉크 질의 검색 방법.
  21. 제18항에 있어서, 상기 셀의 주변을 검색하는 것은
    상기 셀의 대각선 방향으로 검색하되, 상기 스포팅 테이블의 상단 및 하단에 다다를 때까지 검색하는 것을 특징으로 하는 디지털 잉크 질의 검색 방법.
  22. 제18항에 있어서, 상기 셀의 주변을 검색하는 것은
    상기 셀의 대각선 방향으로 검색하되, 가로확장 및 세로확장을 통하여 다음에 선택될 노드의 후보군을 선정하고, Best First Search 방식에 따라 현재까지의 검색 결과 중 가장 유사도가 높은 부분으로부터 연속 확장해 나가면서 스포팅 테이블의 상단 및 하단에 다다를 때까지 검색하는 것을 특징으로 하는 디지털 잉크 질의 검색 방법.
  23. 제22항에 있어서, 상기 일치하는 부분은
    상기 상단 및 하단에 다다를 때까지 검색한 결과에 대한 누적 유사도가 소정의 임계치(b)를 넘는 경우에 메모에서 해당 부분을 의미하는 것을 특징으로 하는 디지털 잉크 질의 검색 방법.
  24. 제17항 내지 제23항 중 어느 한 항의 방법을 컴퓨터로 판독한 프로그램으로 기록한 기록매체.
KR1020040009862A 2004-02-14 2004-02-14 디지털 잉크 질의 검색 장치 및 방법 KR100587540B1 (ko)

Priority Applications (6)

Application Number Priority Date Filing Date Title
KR1020040009862A KR100587540B1 (ko) 2004-02-14 2004-02-14 디지털 잉크 질의 검색 장치 및 방법
JP2005033675A JP4308785B2 (ja) 2004-02-14 2005-02-09 デジタルインク質疑検索装置及びその方法
EP05250793A EP1564675B1 (en) 2004-02-14 2005-02-11 Apparatus and method for searching for digital ink query
DE602005008121T DE602005008121D1 (de) 2004-02-14 2005-02-11 Anordnung und Verfahren zur Suche nach einer Anfrage in digitaler Tinte
US11/056,104 US7778464B2 (en) 2004-02-14 2005-02-14 Apparatus and method for searching for digital ink query
CNB2005100077305A CN100412861C (zh) 2004-02-14 2005-02-16 用于搜索数字墨水查询的设备和方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020040009862A KR100587540B1 (ko) 2004-02-14 2004-02-14 디지털 잉크 질의 검색 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20050081555A KR20050081555A (ko) 2005-08-19
KR100587540B1 true KR100587540B1 (ko) 2006-06-08

Family

ID=34698989

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040009862A KR100587540B1 (ko) 2004-02-14 2004-02-14 디지털 잉크 질의 검색 장치 및 방법

Country Status (6)

Country Link
US (1) US7778464B2 (ko)
EP (1) EP1564675B1 (ko)
JP (1) JP4308785B2 (ko)
KR (1) KR100587540B1 (ko)
CN (1) CN100412861C (ko)
DE (1) DE602005008121D1 (ko)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7546524B1 (en) * 2005-03-30 2009-06-09 Amazon Technologies, Inc. Electronic input device, system, and method using human-comprehensible content to automatically correlate an annotation of a paper document with a digital version of the document
US7970763B2 (en) * 2006-02-21 2011-06-28 Microsoft Corporation Searching and indexing of photos based on ink annotations
US7646940B2 (en) * 2006-04-04 2010-01-12 Microsoft Corporation Robust indexing and retrieval of electronic ink
US8098939B2 (en) * 2006-12-04 2012-01-17 Trend Micro Incorporated Adversarial approach for identifying inappropriate text content in images
US7693842B2 (en) * 2007-04-09 2010-04-06 Microsoft Corporation In situ search for active note taking
US8064696B2 (en) * 2007-04-10 2011-11-22 Microsoft Corporation Geometric parsing of mathematical expressions
US20090058820A1 (en) * 2007-09-04 2009-03-05 Microsoft Corporation Flick-based in situ search from ink, text, or an empty selection region
JP2010113610A (ja) * 2008-11-07 2010-05-20 Nec Corp 会議支援システム、関連情報登録方法、関連情報検索方法、サーバおよびプログラム
US8346091B2 (en) * 2009-04-29 2013-01-01 Andrew Llc Distributed antenna system for wireless network systems
CN102033928B (zh) * 2010-12-15 2013-01-23 北京壹人壹本信息科技有限公司 手写原笔迹记录及查询系统、电子装置
CN102157078B (zh) * 2011-03-04 2013-03-20 博视联(苏州)信息科技有限公司 双屏电子书包的笔迹保存系统及其保存方法
KR101830787B1 (ko) * 2011-07-12 2018-02-21 삼성전자 주식회사 수기로 작성된 메모 데이터 검색 방법 및 장치
US8640046B1 (en) * 2012-10-23 2014-01-28 Google Inc. Jump scrolling
US8943092B2 (en) * 2013-03-04 2015-01-27 Microsoft Corporation Digital ink based contextual search
KR101434963B1 (ko) * 2013-05-30 2014-08-28 주식회사 디오텍 디지털 잉크 데이터 매칭방법 및 매칭장치
KR20150007577A (ko) * 2013-07-11 2015-01-21 삼성전자주식회사 데이터 병합을 제어하는 휴대 단말 및 방법
US9418281B2 (en) * 2013-12-30 2016-08-16 Google Inc. Segmentation of overwritten online handwriting input
KR101488670B1 (ko) * 2014-01-29 2015-02-04 주식회사 디오텍 텍스트와 디지털 잉크를 포함하는 대용량 문서의 교차 검색 시스템 및 방법
US9569692B2 (en) 2014-10-31 2017-02-14 The Nielsen Company (Us), Llc Context-based image recognition for consumer market research
US20160154555A1 (en) * 2014-12-02 2016-06-02 Lenovo (Singapore) Pte. Ltd. Initiating application and performing function based on input
US10210383B2 (en) 2015-09-03 2019-02-19 Microsoft Technology Licensing, Llc Interacting with an assistant component based on captured stroke information
US10387034B2 (en) 2015-09-03 2019-08-20 Microsoft Technology Licensing, Llc Modifying captured stroke information into an actionable form
US10417229B2 (en) * 2017-06-27 2019-09-17 Sap Se Dynamic diagonal search in databases

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5380428A (en) * 1992-04-22 1995-01-10 Product Research & Development Pump for reverse osmosis system
CN1096110A (zh) 1993-06-04 1994-12-07 珠海巨人高科技集团公司 微机汉字手写输入设备
US5687254A (en) * 1994-06-06 1997-11-11 Xerox Corporation Searching and Matching unrecognized handwriting
EP0691623B1 (en) * 1994-07-04 2001-10-04 Hewlett-Packard Company, A Delaware Corporation Scribble matching
US5757959A (en) * 1995-04-05 1998-05-26 Panasonic Technologies, Inc. System and method for handwriting matching using edit distance computation in a systolic array processor
US6041137A (en) * 1995-08-25 2000-03-21 Microsoft Corporation Radical definition and dictionary creation for a handwriting recognition system
US5832474A (en) * 1996-02-26 1998-11-03 Matsushita Electric Industrial Co., Ltd. Document search and retrieval system with partial match searching of user-drawn annotations
US6275611B1 (en) * 1996-10-17 2001-08-14 Motorola, Inc. Handwriting recognition device, method and alphabet, with strokes grouped into stroke sub-structures
JPH10214267A (ja) 1997-01-29 1998-08-11 Sharp Corp 手書き文字記号処理装置および手書き文字記号処理装置の制御プログラムを記録した媒体
US6560360B1 (en) * 1999-01-28 2003-05-06 Nestor, Inc. Feed forward feed back multiple neural network with context driven recognition
US6565611B1 (en) 1999-02-26 2003-05-20 Xerox Corporation Automatic index creation for handwritten digital ink notes
US6549675B2 (en) 2000-12-20 2003-04-15 Motorola, Inc. Compression of digital ink
KR20030003787A (ko) 2001-07-02 2003-01-14 조미경 전자잉크데이터의 부분매칭을 이용한 개인정보검색시스템
KR20030043806A (ko) 2003-02-24 2003-06-02 김진일 태블릿 pc를 이용한 필기 문서관리시스템 및필기글자,사전 동기화 기술방법

Also Published As

Publication number Publication date
EP1564675A1 (en) 2005-08-17
JP2005228328A (ja) 2005-08-25
KR20050081555A (ko) 2005-08-19
CN1655147A (zh) 2005-08-17
EP1564675B1 (en) 2008-07-16
US7778464B2 (en) 2010-08-17
US20050182760A1 (en) 2005-08-18
DE602005008121D1 (de) 2008-08-28
JP4308785B2 (ja) 2009-08-05
CN100412861C (zh) 2008-08-20

Similar Documents

Publication Publication Date Title
KR100587540B1 (ko) 디지털 잉크 질의 검색 장치 및 방법
JP3974359B2 (ja) オンライン文字認識装置及び方法並びにコンピュータ読み取り可能な記憶媒体及びオンライン文字認識プログラム
TWI321294B (en) Method and device for determining at least one recognition candidate for a handwritten pattern
KR102247020B1 (ko) 손가락 동작 인식을 이용한 키보드 입력 시스템 및 키보드 입력 방법
EP1971957B1 (en) Methods and apparatuses for extending dynamic handwriting recognition to recognize static handwritten and machine generated text
KR102293538B1 (ko) 음악 심볼들을 인식하기 위한 방법 및 장치
JPH05217025A (ja) オンライン手書き文字認識装置および方法
WO2017114002A1 (zh) 一维手写文字输入设备和一维手写文字输入方法
JP6754120B2 (ja) プログラム、情報記憶媒体及び文字分割装置
JP2013238918A (ja) 電子機器、手書き文書表示方法、及び表示プログラム
JP4817297B2 (ja) 文字検索装置
Zarro et al. Recognition-based online Kurdish character recognition using hidden Markov model and harmony search
US9384304B2 (en) Document search apparatus, document search method, and program product
JP4686502B2 (ja) オンライン文字認識装置
JPS6115287A (ja) 手書き文字認識方法
JP2013239203A (ja) 電子機器、方法、及びプログラム
Nguyen et al. A semi-incremental recognition method for on-line handwritten Japanese text
Nguyen et al. Semi-incremental recognition of on-line handwritten Japanese text
JP5807881B2 (ja) プログラム、情報記憶媒体及び文字列認識装置
AU2020103527A4 (en) IPDN- Read Handwriting: Intelligent Process to Read Handwriting Using Deep Learning and Neural Networks
KR100204618B1 (ko) 문자 또는 도형의 인식 방법 및 시스템
JP3066530B2 (ja) オンライン手書文字認識装置
Shenbagavadivu et al. Deep Learning Design for Character Recognition with Position-Free Touchscreen-Based Braille Input Method
KR100258934B1 (ko) 군집화된 알파벳 추출에 의한 온라인 영문 단어 인식장치 및방법
JPS6059487A (ja) 手書文字認識装置

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: 20130422

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20140424

Year of fee payment: 9

LAPS Lapse due to unpaid annual fee