KR20180071400A - Landmark positioning - Google Patents

Landmark positioning Download PDF

Info

Publication number
KR20180071400A
KR20180071400A KR1020187016929A KR20187016929A KR20180071400A KR 20180071400 A KR20180071400 A KR 20180071400A KR 1020187016929 A KR1020187016929 A KR 1020187016929A KR 20187016929 A KR20187016929 A KR 20187016929A KR 20180071400 A KR20180071400 A KR 20180071400A
Authority
KR
South Korea
Prior art keywords
map
landmark
data
locus data
server
Prior art date
Application number
KR1020187016929A
Other languages
Korean (ko)
Other versions
KR102022668B1 (en
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 KR20180071400A publication Critical patent/KR20180071400A/en
Application granted granted Critical
Publication of KR102022668B1 publication Critical patent/KR102022668B1/en

Links

Images

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/20Instruments for performing navigational calculations
    • G01C21/206Instruments for performing navigational calculations specially adapted for indoor navigation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/02Services making use of location information
    • H04W4/023Services making use of location information using mutual or relative location information between multiple location based services [LBS] targets or of distance thresholds
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/005Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 with correlation of navigation data from several sources, e.g. map or contour matching
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/10Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration
    • G01C21/12Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning
    • G01C21/14Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning by recording the course traversed by the object
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/26Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
    • G01C21/28Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network with correlation of data from several navigational instruments
    • G01C21/30Map- or contour-matching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/02Services making use of location information
    • H04W4/025Services making use of location information using location based information parameters
    • H04W4/026Services making use of location information using location based information parameters using orientation information, e.g. compass
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/02Services making use of location information
    • H04W4/025Services making use of location information using location based information parameters
    • H04W4/027Services making use of location information using location based information parameters using movement velocity, acceleration information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/30Services specially adapted for particular environments, situations or purposes
    • H04W4/33Services specially adapted for particular environments, situations or purposes for indoor environments, e.g. buildings
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W64/00Locating users or terminals or network equipment for network management purposes, e.g. mobility management

Landscapes

  • Engineering & Computer Science (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Automation & Control Theory (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Navigation (AREA)
  • Traffic Control Systems (AREA)

Abstract

한 양태에서, 맵을 사용하여 랜드마크의 위치를 결정하는 방법이 기술된다. 한 영역에서 장치의 이동을 나타내는 궤적 데이터가 획득된다. 그 궤적 데이터는 랜드마크를 나타낸다. 그 영역의 맵이 얻어진다. 궤적 데이터의 적어도 일부가 맵의 적어도 일부와 비교 및/또는 매칭된다. 매칭에 기반하여 랜드마크의 위치가 맵 상에서 결정된다. 다양한 구현예들이 상기 방법에 관한 시스템, 장치 및 소프트웨어를 포함한다. In one aspect, a method for determining the location of a landmark using a map is described. Locus data indicating movement of the device in one area is obtained. The locus data indicates a landmark. A map of the area is obtained. At least a portion of the locus data is compared and / or matched with at least a portion of the map. The location of the landmark is determined on the map based on the matching. Various implementations include systems, devices and software related to the method.

Description

랜드마크 위치 결정Landmark positioning

예시적 실시예들의 양태는 일반적으로 장소, 객체 및 영역의 위치를 결정하기 위한 기술에 관한 것이다. 본 발명의 다양한 실시예들은 지도를 이용하여 랜드마크의 위치를 결정하는 것을 포함한다.Aspects of exemplary embodiments generally relate to techniques for determining the location of a location, an object, and an area. Various embodiments of the present invention include determining a location of a landmark using a map.

야외 영역의 맵(지도)을 제공하는 많은 대중적인 응용 애플리케이션들이 있다. 구글 맵과 같은 매핑 프로그램(mapping program)은 예컨대, 도시의 거리나 빌딩들의 위치를 알려준다. 옥내 위치(indoor location), 예를 들어 쇼핑몰이나 도서관 같은 빌딩의 층별안내도를 매핑하는 애플리케이션이 있는 것 역시 바람직할 것이다. 수많은 다양한 실내 환경들이 존재하므로, 가령 그 영역을 지나가는 사용자들이 소지한 모바일 장치들의 이동에 기반하여 실내 영역에 대한 정확한 맵이 자동으로 생성될 수 있다면 특히 유용할 것이다. 그러나 그러한 시스템을 개발하는 것은 어려운 일이다. 예를 들어, 어떤 방식은 보행자 추측 항법(Pedestrian Dead Reckoning: PDR)이라 불려지는 시스템의 이용을 수반한다. PDR에서 모바일 장치는 장치가 이동한 거리 및 장치가 수행한 방향 전환을 추적한다. 그러면 모바일 장치에 의해 기록된 방향 및 거리의 변화에 기반하여 맵이 생성될 수 있다. 그러나 모바일 장치는 보통 그러한 변화를 완벽하게 기록할 수 없으므로, 시간이 지나면서 오류가 기하급수적으로 증가되는 결과를 가져온다. 따라서, 실내 매핑 시스템의 정확성을 향상시키기 위한 노력이 진행중이다.There are many popular application applications that provide a map of the outdoor area. A mapping program, such as Google Maps, for example, indicates the location of a city street or a building. It would also be desirable to have an application that maps floor maps of an indoor location, for example, a building such as a shopping mall or a library. Because there are many different indoor environments, it would be particularly useful if an accurate map of the indoor area could be automatically generated based on the movement of mobile devices carried by users passing through the area, for example. But developing such a system is difficult. For example, some methods involve the use of a system called Pedestrian Dead Reckoning (PDR). In the PDR, the mobile device tracks the distance traveled by the device and the direction the device performs. The map can then be generated based on changes in direction and distance recorded by the mobile device. However, mobile devices usually can not record such changes completely, resulting in an exponential increase in error over time. Therefore, efforts are underway to improve the accuracy of the indoor mapping system.

한 양태에서, 맵을 사용하여 랜드마크의 위치를 결정하는 방법이 기술된다. 한 영역에서 장치의 이동을 나타내는 궤적 데이터가 획득된다. 궤적 데이터는 랜드마크를 나타낸다. 그 영역의 맵이 획득된다. 궤적 데이터의 적어도 일부가 맵의 적어도 일부와 비교 및/또는 매칭된다. 매칭에 기반하여 맵 상에서 랜드마크의 위치가 결정된다. 다양한 구현예들이 상기 방법에 관한 시스템, 장치 및 소프트웨어를 포함한다.In one aspect, a method for determining the location of a landmark using a map is described. Locus data indicating movement of the device in one area is obtained. The locus data represents a landmark. A map of the area is obtained. At least a portion of the locus data is compared and / or matched with at least a portion of the map. The location of the landmark on the map is determined based on the matching. Various implementations include systems, devices and software related to the method.

첨부된 도면과 연계한 이하의 내용을 참조함으로써 본 발명과 그 효과에 대한 이해가 극대화될 수 있다.
도 1은 본 발명의 특정 실시예에 따른 통신 시스템의 블록도이다.
도 2a-2b는 본 발명의 특정 실시예에 따라 맵 상에서 랜드마크의 위치를 결정하는 방법을 도시한 흐름도이다.
도 3은 본 발명의 특정 실시예에 따른 궤적 데이터에 대한 도면이다.
도 4는 본 발명의 특정 실시예에 따른 벡터 맵(vector map)에 대한 도면이다.
도 5는 본 발명의 특정 실시예에 따른 그래픽 맵(graphical map)에 대한 도면이다.
도 6은 본 발명의 특정 실시예에 따른 세그먼트 기반 매칭(segment-based matching) 방법을 도시한 흐름도이다.
도 7a-7c은 본 발명의 특정 실시예에 따른 세그먼트 기반 매칭 동작의 단계들을 도시한 도면들이다.
도 8은 본 발명의 특정 실시예에 따른 시퀀스 기반 매칭 방법을 도시한 흐름도이다.
도 9a-9b는 본 발명의 특정 실시예에 따른 시퀀스 기반 매칭 동작의 단계들을 도시한 도면들이다.
도 10은 본 발명의 특정 실시예에 따른 와이파이 피크(WiFi-peak) 기반 매칭 방법을 도시한 흐름도이다.
도 11a-11d는 본 발명의 특정 실시예에 따른 와이파이 피크 기반 매칭 동작의 단계들을 도시한 도면들이다.
도 12는 본 발명의 특정 실시예에 따른 랜드마크 위치의 조정을 도시한 도면이다.
도 13은 본 발명의 특정 실시예에 따른 서버의 블록도이다.
도 14는 본 발명의 특정 실시예에 따른 장치의 블록도이다.
The understanding of the present invention and its effects can be maximized by referring to the following contents in connection with the accompanying drawings.
1 is a block diagram of a communication system according to a particular embodiment of the present invention.
2A-2B are flow charts illustrating a method for determining the position of a landmark on a map in accordance with a particular embodiment of the present invention.
Figure 3 is a plot of locus data according to a particular embodiment of the present invention.
4 is a diagram of a vector map according to a specific embodiment of the present invention.
Figure 5 is a diagram of a graphical map according to a particular embodiment of the present invention.
Figure 6 is a flow diagram illustrating a segment-based matching method in accordance with certain embodiments of the present invention.
Figures 7A-7C are diagrams illustrating steps of a segment based matching operation in accordance with certain embodiments of the present invention.
Figure 8 is a flow diagram illustrating a sequence-based matching method in accordance with a particular embodiment of the present invention.
9A-9B are diagrams illustrating steps of a sequence-based matching operation according to a specific embodiment of the present invention.
10 is a flow diagram illustrating a WiFi-peak based matching method in accordance with certain embodiments of the present invention.
Figures 11A-11D are diagrams illustrating steps of a WiFi peak based matching operation in accordance with certain embodiments of the present invention.
12 is a diagram illustrating adjustment of a landmark position according to a specific embodiment of the present invention.
13 is a block diagram of a server in accordance with a particular embodiment of the present invention.
14 is a block diagram of an apparatus according to a particular embodiment of the present invention.

한 양태에서, 맵을 사용하여 랜드마크의 위치를 결정하는 방법이 기술된다. 한 영역에서 장치의 이동을 나타내는 궤적 데이터가 획득된다. 그 궤적 데이터가 랜드마크를 나타낸다. 그 영역의 맵이 얻어진다. 궤적 데이터의 적어도 일부가 맵의 적어도 일부와 비교 및/또는 매칭된다. 매칭에 기반하여 맵 상에서 랜드마크의 위치가 결정된다. 다양한 구현예들이 상기 방법에 관한 시스템, 장치 및 소프트웨어를 포함한다.In one aspect, a method for determining the location of a landmark using a map is described. Locus data indicating movement of the device in one area is obtained. The locus data indicates landmarks. A map of the area is obtained. At least a portion of the locus data is compared and / or matched with at least a portion of the map. The location of the landmark on the map is determined based on the matching. Various implementations include systems, devices and software related to the method.

상기 방법은 하나 이상의 장치들로부터 다수의 궤적 데이터 집합을 획득하되, 각각의 궤적 데이터 집합은 해당 영역에서의 장치의 이동을 나타내는 단계, 각각의 궤적 데이터 집합마다, 상기 궤적 데이터 집합이 랜드마크를 포함하는지 여부를 판단하는 단계, 상기 판단에 기반하여 랜드마크를 포함하지 않는 궤적 데이터 집합들 중 하나 이상을 선택하는 단계, 및 상기 선택된 하나 이상의 궤적 데이터의 집합을 이용하여 맵 생성을 지원하는 단계를 더 포함한다.The method comprising the steps of: obtaining a plurality of locus data sets from one or more devices, each locus data set representing movement of the device in the region; for each locus data set, the locus data set includes landmarks Selecting one or more locus data sets that do not include a landmark based on the determination, and supporting map generation using the selected one or more sets of locus data, .

예시적 실시예의 한 양태에 따르면, 유형의 형태로 실시되는 실행가능 컴퓨터 코드를 포함하는 컴퓨터 판독가능 매체가 제공되고, 상기 컴퓨터 판독가능 매체는 한 영역에서의 장치의 이동을 나타내는 제1궤적 데이터를 획득하도록 운용가능한 실행가능 컴퓨터 코드를 포함한다. 상기 제1궤적 데이터는 제1랜드마크를 나타낸다. 상기 컴퓨터 판독가능 매체는 상기 영역의 맵을 획득하도록 운용가능한 실행가능 컴퓨터 코드를 더 포함한다. 상기 맵은 경로 레이아웃(pathway layout)을 나타낸다. 상기 컴퓨터 판독가능 매체는 상기 제1궤적 데이터의 적어도 일부를 상기 경로 레이아웃의 적어도 일부와 매칭하도록 운용가능한 실행가능 컴퓨터 코드를 더 포함한다. 그리고 상기 컴퓨터 판독가능 매체는 상기 매칭에 기반하여, 상기 경로 레이아웃을 변경하지 않고 상기 맵 상에서 상기 제1랜드마크의 위치를 결정하도록 운용가능한 실행가능 컴퓨터 코드를 더 포함한다. According to an aspect of an exemplary embodiment, there is provided a computer-readable medium comprising executable computer code embodied in the form of a type, the computer readable medium comprising first locus data indicative of movement of a device in a region And executable computer code operable to be obtained. The first locus data represents a first landmark. The computer readable medium further comprises executable computer code operable to obtain a map of the region. The map represents a pathway layout. The computer readable medium further comprises executable computer code operable to match at least a portion of the first locus data with at least a portion of the path layout. And the computer readable medium further comprises executable computer code operable to determine, based on the matching, the location of the first landmark on the map without changing the path layout.

상기 컴퓨터 판독가능 저장 매체는 제2랜드마크를 나타내는 제2궤적 데이터를 획득하고, 거리 및 주변 신호 지문 데이터에 기반하여 상기 제1 및 제2랜드마크들을 비교하고, 상기 비교결과에 기반하여 상기 맵 상에서 상기 제1랜드마크의 위치를 조정하도록 운용가능한 실행가능 컴퓨터 코드를 더 포함한다. The computer-readable storage medium may be configured to: obtain second sign data representative of a second landmark; compare the first and second landmarks based on distance and surrounding signal fingerprint data; Further comprising executable computer code operable to adjust the position of the first landmark on the first landmark.

상기 컴퓨터 판독가능 저장 매체는 상기 장치가 소정 빈도 이상 방향을 바꾸었거나 소정 속도 미만으로 이동했다는 것을 나타내는 상기 제1궤적 데이터의 일부를 식별하고, 상기 식별된 제1궤적 데이터의 일부가 상기 제1랜드마크를 나타낸다고 판단하도록 운용가능한 실행가능 컴퓨터 코드를 더 포함한다. Wherein the computer readable storage medium identifies a portion of the first trajectory data indicating that the device has changed direction more than a predetermined frequency or has moved less than a predetermined speed, Further comprising executable computer code operable to determine that it represents a landmark.

상기 컴퓨터 판독가능 매체는 상기 제1궤적 데이터에서 하나 이상의 세그먼트들을 선택하도록 운용가능한 실행가능 컴퓨터 코드를 더 포함한다. 상기 하나 이상의 세그먼트들은 상기 제1궤적 데이터의 전체가 아닌 일부를 나타낸다. 상기 하나 이상의 세그먼트들은 상기 제1궤적 데이터 내 상기 제1랜드마크 위치의 소정 거리 안에 있다. 그리고 상기 컴퓨터 판독가능 매체는 상기 하나 이상의 세그먼트들을 상기 경로 레이아웃의 적어도 일부에 매칭하도록 운용가능한 실행가능 컴퓨터 코드를 더 포함한다.The computer readable medium further comprises executable computer code operable to select one or more segments from the first locus data. Wherein the one or more segments represent a portion of the first locus data that is not all of the first locus data. Wherein the one or more segments are within a predetermined distance of the first landmark position in the first locus data. And the computer readable medium further comprises executable computer code operable to match the one or more segments to at least a portion of the path layout.

제1궤적 데이터는 상기 제1궤적 데이터의 시작점에서 상기 제1랜드마크의 시작점까지 이어지는 지점들의 제1시퀀스, 및 상기 제1궤적 데이터의 종점에서 상기 제1랜드마크의 종점까지 이어지는 지점들의 제2시퀀스를 포함한다. 그리고 상기 컴퓨터 판독가능 매체는 상기 제1 및 제2시퀀스들을 상기 경로 레이아웃의 적어도 일부에 매칭하도록 운용가능한 실행가능 컴퓨터 코드를 더 포함한다. The first locus data includes a first sequence of points extending from a start point of the first locus data to a start point of the first landmark and a second sequence of points extending from an end point of the first locus data to an end point of the first landmark, Sequence. And the computer readable medium further comprises executable computer code operable to match the first and second sequences to at least a portion of the path layout.

예시적 실시예들의 양태는 기존의 맵을 사용하여 랜드마크의 위치를 결정하는 시스템 및 프로세스에 관한 것이다. 배경기술에서 논의된 바와 같이, 정확한 실내 매핑 애플리케이션의 개발은 어려운 일이다. 한 가지 방법은 특정 영역(가령, 쇼핑몰)에서 이동하는 여러 모바일 장치들로부터 궤적 데이터(가령, PDR 데이터)를 수집하는 것이다. 궤적 데이터는 사용자가 여러 랜드마크들(가령, 상점, 룸 등)을 방문하기 때문에 비롯되는 구불구불한 복잡한 경로들을 나타낼 수 있다. 그런 다음 궤적 데이터가 분석되어 복도들, 통로들, 문들, 방들, 상점들, 교차로들 및 기타 랜드마크들의 위치를 알려주는 맵을 결정한다. Aspects of exemplary embodiments relate to systems and processes for locating landmarks using existing maps. As discussed in the background, the development of accurate indoor mapping applications is difficult. One method is to collect locus data (e.g., PDR data) from various mobile devices moving in a particular area (e.g., a shopping mall). Trajectory data can indicate complex, winding paths that result from users visiting various landmarks (e.g., shops, rooms, etc.). The trajectory data is then analyzed to determine a map that indicates the locations of the corridors, corridors, doors, rooms, shops, intersections, and other landmarks.

이러한 방식의 한 가지 문제점은, PDR 데이터를 사용하여 전체 맵과 랜드마크들이 동시에 생성될 때, 어쩔 수 없이 오류의 위험이 있다는 데 있다. 대신, 기존 맵의 다른 다양한 특징들(가령, 통로 및 교차로들의 위치)을 조정하거나 판단하지 않고도, 궤적 데이터를 기존 맵에 매칭하고, 그러한 매칭을 이용하여 기존 맵의 맥락 안에서 랜드마크의 위치를 결정하는 것이 바람직하다고 판단되어 왔다. 그에 따라 이하에 기술되는 실시예들 중 일부는 맵의 다른 양태들은 조정하지 않으면서 랜드마크의 위치를 결정하는 방식들에 관한 것이다. One problem with this approach is that there is a risk of error when the entire map and landmarks are created using PDR data at the same time. Instead, the locator data is matched to the existing map, without adjusting or determining other various features of the existing map (e.g., the locations of the passageways and intersections), and the location of the landmark in the context of the existing map is determined It has been judged that it is desirable to do. Accordingly, some of the embodiments described below relate to ways to determine the position of a landmark without adjusting other aspects of the map.

먼저, 도 1을 참조하여, 본 발명의 특정 실시예에 따른 통신 시스템(100)이 기술될 것이다. 상기 시스템은 여러 장치들(104)과 서버(110)를 포함한다. 장치들(104) 및 서버(110)는 하나 이상의 네트워크(108)를 이용하여 서로 통신한다. Referring first to Figure 1, a communication system 100 in accordance with a particular embodiment of the present invention will be described. The system includes a plurality of devices 104 and a server 110. The devices 104 and the server 110 communicate with each other using one or more networks 108.

어떤 적합한 네트워크(108)가 사용되어 장치들(104)과 서버(110)를 연결할 수 있다. 다양한 실시예들에서, 네트워크(108)는 CDMA나 GSM에 기반하는 셀룰라 네트워크, 인터넷 또는 어떤 다른 적절한 프로토콜이나 어떤 다른 통신 네트워크를 포함하나 그에 국한되지 않는다.Any suitable network 108 may be used to connect the devices 104 and the server 110. In various embodiments, the network 108 includes, but is not limited to, a cellular network based on CDMA or GSM, the Internet, or any other suitable protocol or any other communication network.

이 예에서, 사용자는 빌딩, 쇼핑몰 등과 같은 실내 영역 안에 장치(104)를 휴대해 들어간다. 일부 실시예에서, 상기 영역은 (부분적으로) 실외, 가령 야외 쇼핑몰 단지이다. 사용자 장치가 그 영역을 이동하면서, 장치는 사용자가 이동하는 방향 및 거리를 나타내는 궤적 데이터(trajectory data)를 기록한다. 궤적 데이터는 사용자가 다른 곳에 비해 한 장소에서 시간을 더 보냈는지, 또는 지속된 시간 동안 특정 위치(가령, 룸이나 상점)를 둘러 보았는지 여부를 또한 나타낸다. In this example, the user carries the device 104 in an interior area such as a building, shopping mall, or the like. In some embodiments, the area is (partially) outdoor, such as an outdoor shopping mall. As the user device moves through the area, the device records trajectory data indicating the direction and distance the user moves. The locus data also indicates whether the user has spent more time in one place than elsewhere, or has looked around a particular location (e.g., a room or a store) for a sustained period of time.

궤적 데이터는 네트워크(108)를 통해 서버(110)로 업로드된다. 도시된 실시예에서, 서버(110)가 그 궤적 데이터를 분석하여, 사용자가 랜드마크에 접근했거나 접촉했다는 것을 판단한다. 랜드마크는 해당 영역 내 어떤 관심물 또는 관심지이다. 예로서, 랜드마크는 문, 엘리베이터, 입구, 출구, 상점, 룸, 분수대, 계단, 장치, 서비스 제공자 등을 포함할 수 있으나 반드시 그에 국한되는 것은 아니다. 다양한 실시예들에서 랜드마크는 경로나 경로 레이아웃과는 전혀 다른 것으로 파악된다, 즉 랜드마크는 복도, 길, 통로, 루트 및/또는 기타, 사용자에게 같은 층의 한 장소에서 다른 장소로 이동할 수 있게 하는 것이 주 목적인 구조가 아니다. The locus data is uploaded to the server 110 via the network 108. In the illustrated embodiment, the server 110 analyzes the trajectory data to determine that the user has approached or contacted the landmark. A landmark is any interest or interest within the area. By way of example, landmarks may include, but are not necessarily limited to, doors, elevators, entrances, exits, shops, rooms, fountains, staircases, devices, service providers, In various embodiments, the landmark is seen to be quite different from the path or path layout, i.e. the landmark can be moved from one location to another location on the same floor to the corridor, road, aisle, route and / This is not the main purpose of the project.

서버(110)는 광범위한 처리 및 분석 기법을 이용하여 궤적 데이터 내 랜드마크의 존재 및 위치를 결정할 수 있다. 예를 들어, 미국 특허 출원 제14/459,054에서 논의된 기법들 중 하나가 사용될 수 있다. (이 출원- 지금부터 ’054’ 출원이라 칭함-은 모든 면에서 그 전체가 참조의 형식으로 이 명세서에 포함된다).The server 110 may determine the presence and location of landmarks in the locus data using a wide variety of processing and analysis techniques. For example, one of the techniques discussed in U. S. Patent Application Serial No. 14 / 459,054 may be used. (This application - now referred to as the '054' application - is incorporated by reference in its entirety in all respects).

이 예에서, 서버(110)는 경로 레이아웃을 포함하는 맵을 또한 저장한다. 맵은 해당 영역을 나타내는 어떤 적절한 구조, 정보, 다이어그램 또는 데이터일 수 있다. 경로 레이아웃은 하나 이상의 교차로들(즉, 둘 이상의 경로들이 만나는 영역 또는 지점들)에 의해 연결되는 루트들이나 경로들을 나타낸다. 맵은 본 출원에서 나중에 개시되는 바와 같이 광범위한 방식으로(가령, 데이터 구조를 이용하거나, 알고리즘적으로, 또는 비트맵 이미지를 이용하는 등) 생성될 수 있다. 일부 실시예들에서, 경로 레이아웃은 여러 모바일 장치들 및 사용자들로부터 시간의 경과에 따라 크라우드소싱된(crowdsourced) 데이터로부터 도출되며, 그에 따라 상대적으로 정확하다고 간주된다. In this example, the server 110 also stores a map containing the path layout. The map may be any suitable structure, information, diagram or data representing the area. The path layout represents the routes or paths that are connected by one or more intersections (i.e., areas or points where two or more paths meet). The map may be generated in a broad manner (e.g., using a data structure, algorithmically, or using a bitmap image, etc.) as will be discussed later in the present application. In some embodiments, the path layout is derived from crowdsourced data over time from various mobile devices and users, and is therefore considered relatively accurate.

서버(110)가 궤적 데이터 및/또는 랜드마크를 분석하고, 저장된 맵의 맥락(context) 안에서 그 위치를 결정한다. 광범위한 매칭 기법들이 사용되어 맵 상에서 랜드마크의 위치를 결정하고/하거나 랜드마크를 배치할 수 있다. 어떤 기법들은 예를 들면, 세그먼트 기반, 시퀀스 기반이고/이거나 입자 필터(particle filter)의 사용을 수반할 수 있다. 다양한 기법들이 본 출원에서 이후 보다 상세히 논의될 것이다.Server 110 analyzes the locus data and / or landmark and determines its location within the context of the stored map. A wide variety of matching techniques can be used to locate and / or place landmarks on the map. Some techniques may involve, for example, segment-based, sequence-based and / or particle filter use. Various techniques will be discussed in more detail later in this application.

다양한 방식들은 랜드마크 위치 결정 프로세스의 효율 및 정확도를 개선한다. 예를 들어 일부 구현예에서, 맵의 경로 레이아웃을 구축하는데 사용되는 프로세스는 맵 내 랜드마크의 위치를 결정하는데 사용되는 것과 다른 별개의 것이다. 다르게 표현하면, 상술한 궤적 데이터는 기존 맵 상의 랜드마크의 위치를 결정하는데 사용되며, 동시에 그 맵 상의 경로들 및 루트들의 적절한 위치들을 판단하기 위해 사용되지는 않는다. 기존 맵이 상당히 정확하다고 전제할 때, 그러한 집중은 랜드마크의 위치가 상대적으로 신속하고 보다 적은 부담을 가지고 결정되게 할 수 있다. Various schemes improve the efficiency and accuracy of the landmark positioning process. For example, in some implementations, the process used to build the path layout of the map is separate from that used to determine the location of the landmark in the map. Stated differently, the above locus data is used to determine the location of the landmark on the existing map, and is not used to determine the appropriate locations of the routes and routes on the map at the same time. Assuming that the existing map is fairly accurate, such convergence can make the location of the landmark relatively fast and less burdensome.

이어서 도 2a 및 2b를 참조하여, 본 발명의 특정 실시예에 따라 맵을 이용하여 랜드마크의 위치를 결정하는 방법(200)이 기술된다. 처음으로, 단계 205에서 장치(104) 및/또는 서버(110)가 궤적 데이터를 획득한다. Referring now to Figures 2a and 2b, a method 200 for determining the position of a landmark using a map in accordance with a particular embodiment of the present invention is described. First, at step 205, the device 104 and / or the server 110 obtains the locus data.

궤적 데이터는 시간에 따른 장치(104)의 위치 변화 또는 이동을 나타내는 것을 돕는 어떤 데이터이다. 궤적 데이터를 생성하기 위해 다양한 기술들이 사용될 수 있다. 예로서, 실외 응용예들로서 GPS 데이터가 그러한 정보를 제공하기 위해 사용될 수 있다. 실내 응용예들로서는, 보행자 추측항법(PDR)이 궤적 데이터를 생성하는데 사용될 수 있다. PDR의 다양한 구현예들은 장치(104a)가 특정 기준점으로부터 얼마나 멀리 및/또는 어느 방향으로 이동하였는지를 판단하기 위해 장치(104)의 나침반, 가속계 및/또는 기타 센서의 이용을 수반한다. 그러면 새로운 위치가 추정되어 다음 이동의 기준점으로 사용된다. The locus data is any data that aids in indicating the position change or movement of the device 104 over time. Various techniques can be used to generate the locus data. By way of example, GPS data may be used as outdoor applications to provide such information. As indoor applications, a pedestrian guided navigation (PDR) may be used to generate the locus data. Various implementations of the PDR involve the use of a compass, accelerometer, and / or other sensors of the device 104 to determine how far and / or in which direction the device 104a has moved from a particular reference point. The new location is then estimated and used as a reference point for the next move.

일부 실시예에서, 궤적 데이터는 한 경로(trace)을 이룰 수 있는 복수의 지점들을 가리킨다. 경로의 형태는 일반적으로, 해당 영역 안에서 장치가 따라간 물리적 경로를 윤곽짓거나 가리킬 수 있다. 그러한 궤적 데이터 경로(trajectory data trace)의 한 예가 도 3에 도시된다. 각각의 지점(가령, 예로 든 궤적 데이터(300) 내 각각의 단속선(dash))은 타임스탬프 및 위치(가령, xy 좌표 한 쌍)와 연관된다.경로 내 각각의 지점은 서로 다른 물리적 위치와 연관되며, 순차적 지점들은 장치(104) 및 장치 사용자의 시간에 따른 연속적인 위치 변화를 나타낸다. In some embodiments, the locus data points to a plurality of points that can form a trace. The shape of a path generally can outline or point to a physical path along which the device has followed within that area. An example of such a trajectory data trace is shown in FIG. Each point (e.g., each interrupt line dash in the exemplary locus data 300) is associated with a timestamp and location (e.g., a pair of xy coordinates). Each point in the path may be at a different physical location And sequential points represent continuous position changes over time of device 104 and device user.

다양한 실시예들에서, 장치(104)가 지점들 중 하나로 표현되는 물리적 위치에 있을 때, 자신의 센서들을 사용하여 주변 신호들을 획득하거나 검출한다. 주변 신호는 장치(104)에 의해 검출될 수 있는 모든 유형의 신호나 환경 계수(파라미터)이다. 예로서, 장치(104a)는 와이파이나 블루투스 신호들과 같은 어떤 적절한 유형의 무선 주파수(RF) 신호를 검출할 수 있다. 장치(104)는 장치를 둘러싼 환경의 빛, 소리, 온도, 이미지, 자계 또는 어떤 다른 특징의 변화를 나타내는 주변 신호들을 또한 검출할 수 있다. 상기 신호들의 검출 및 측정을 돕기 위해, 장치(104)는 자력계, 시각적 센서, 카메라, 온도 센서, 오디오 센서, 및 광 센서와 같은 센서들을 포함할 수 있다.In various embodiments, when device 104 is in a physical location represented by one of the points, it uses its sensors to acquire or detect ambient signals. The ambient signal is any type of signal or environmental factor (parameter) that can be detected by the device 104. By way of example, device 104a may detect any suitable type of radio frequency (RF) signal, such as Wi-Fi or Bluetooth signals. Apparatus 104 may also detect ambient signals indicative of changes in light, sound, temperature, image, magnetic field or some other characteristic of the environment surrounding the device. To assist in the detection and measurement of the signals, the device 104 may include sensors such as a magnetometer, a visual sensor, a camera, a temperature sensor, an audio sensor, and an optical sensor.

장치(104)는 특정한 물리적 위치에 있을 때의 시점에 상기 신호들 중 어느 하나의 세기, 강도 및/또는 특징을 나타내는 데이터를 저장하도록 되어 있다. 그 데이터를 여기서는 주변 신호 지문 데이터(ambient signal fingerprint data)라 칭한다. 다양한 실시예들에서, 장치(104a)는 주변 신호 지문 데이터를, 그 데이터가 획득되었던 근사 시간(approximate time) 및/또는 장치(104)가 관련된 물리적 위치에 있을 때를 나타내는 타임스탬프와 함께, 여러 물리적 위치들 중 각각의 위치(가령, 도 3의 경로(300) 내 각각의 개별 지점)과 연관시킨다. The device 104 is adapted to store data indicative of the strength, intensity and / or characteristics of any one of the signals at a point in time when in a particular physical location. The data is referred to herein as ambient signal fingerprint data. In various embodiments, device 104a may provide peripheral signal fingerprint data along with a timestamp indicating when the data was acquired and / or the approximate time at which device 104 is in the physical location to which it is associated, (E.g., each individual point in path 300 of FIG. 3) of the physical locations.

주변 신호 지문 데이터는 다양한 형태를 취할 수 있다. 예로서, RF 데이터가 수집되는 경우, 그 RF 데이터는 장치(104)에서 하나 이상의 액세스 지점들이나 전송 장치들로부터 수신한 신호들의 세기를 나타낼 수 있다. 예를 들어, 와이파이의 경우, 장치(104)는 해당 영역 내 여러 와이파이 액세스 지점들, 예컨대 AP1부터 APn (n은 임의의 정수)에 대한 수신 신호 세기 지시(RSSI) 데이터를 획득할 수 있으며, RSSI 데이터는 {AP1: RSSI for signals from AP1(AP1으로부터의 신호에 대한 RSSI), AP2: RSSI for signals from AP2(AP2로부터의 신호에 대한 RSSI), … APn: RSSI for signals received from Apn(APn으로부터 수신된 신호에 대한 RSSI)} 형식을 취할 수 있다.The peripheral signal fingerprint data can take various forms. By way of example, when RF data is collected, the RF data may indicate the strength of signals received from one or more access points or transmitters at device 104. For example, in the case of Wi-Fi, the device 104 may obtain received signal strength indication (RSSI) data for multiple Wi-Fi access points in the area, e.g., AP1 through APn (where n is any integer) The data is {AP1: RSSI for signals from AP1 (RSSI for signals from AP1), AP2: RSSI for signals from AP2 (RSSI for signals from AP2), ... APn: RSSI for signals received from Apn (RSSI for signals received from APn)}.

다양한 실시예들에서, 장치(104)가 궤적 데이터(상술한 주변 신호 지문 데이터 포함)를 획득하면, 장치는 그 궤적 데이터를 서버(110)로 업로드한다. 서버(110)는 궤적 데이터를 저장 및 분석한다. 단계 207에서, 서버(110)는 궤적 데이터 내 랜드마크를 식별한다. In various embodiments, when the device 104 acquires locus data (including the surrounding signal fingerprint data described above), the device uploads the locus data to the server 110. The server 110 stores and analyzes the locus data. In step 207, the server 110 identifies a landmark in the locus data.

서버(110)는 어떤 적절한 기법을 이용하여 랜드마크의 존재를 판단할 수 있다. 일부 실시예들에서, 예컨대, 랜드마크의 존재는 궤적 데이터에 의해 형성된 궤적에서 검출된 패턴에 기반하여 판단된다. 예를 들어 도 3에 도시된 예에서, 랜드마크는 궤적 데이터(300)가 지시하는, 장치(104)의 속도 및 방향 변화 판단에 기반하여 결정된다. 도 3에서, 경로에서의 영역(305)은 사용자가 촘촘한 원을 그리며 이동했고/했거나 좁은 영역 안에서 자신의 속도를 크게 줄였다는 것을 나타내는 것으로 보여지는데, 이는 영역(305)이 룸이나 상점 등의 랜드마크 위치를 의미하는 것으로 파악된다. 예로서, 서버(110)는 ‘054 출원에 기술된 어떤 적절한 기법을 이용하여 궤적 데이터 내 랜드마크의 존재를 판단할 수 있다.The server 110 may determine the presence of a landmark using any suitable technique. In some embodiments, for example, the presence of a landmark is determined based on the detected pattern in the locus formed by the locus data. For example, in the example shown in FIG. 3, the landmark is determined based on the speed and direction change determination of the device 104, as indicated by the locus data 300. In FIG. 3, the area 305 in the path is shown to indicate that the user has moved a tight circle and / or has significantly reduced its speed in a narrow area because the area 305 is a land, Quot; mark position ". By way of example, the server 110 may determine the presence of a landmark in the locus data using any suitable technique described in the ' 054 application.

다시 도 2를 참조하면, 단계 210에서 서버(100)는 영역의 맵을 획득한다. 이 맵은 영역 내 위치들을 가리키는 어떤 도형, 구조, 이미지 및/또는 데이터일 수 있다. 맵은 여러 형태를 취할 수 있다. 일부 실시예에서, 예컨대 맵은 서버(110)에 저장되어 경로 레이아웃을 가리키는 데이터 구조이다. 맵 데이터 구조는 경로 레이아웃 안의 지점, 경로, 노드 및/또는 세그먼트를 주변 신호 지문 데이터와 연관시킨다. Referring back to FIG. 2, in step 210, the server 100 acquires a map of the area. The map may be any shape, structure, image, and / or data pointing to locations within the area. A map can take many forms. In some embodiments, for example, the map is a data structure stored in the server 110 to indicate the path layout. The map data structure associates points, paths, nodes, and / or segments within the path layout with surrounding signal fingerprint data.

그러한 맵의 예가 도 4에 도시된다. 도 4는 벡터 맵(400)에 대한 도면이다. 벡터는 컴퓨터 상에서 그래픽 데이터를 저장 및 조작하기 위한 기본 데이터 구조이다. 벡터 맵은 노드들, 세그먼트들 및/또는 다각형들을 포함하는 맵이다. 맵(400)은 노드들(410) 및 세그먼트들(405)의 형식으로 된 경로 레이아웃을 포함한다. 이 예에서, 각각의 세그먼트(405)는 (실질적으로) 직선 경로를 나타낸다. 각각의 노드(410)는 교차로, 코너, 또는 둘 이상의 경로가 만나는 기타 위치를 나타낸다. 세그먼트는 두 노드들을 연결할 수 있으며, 따라서 사용자가 제1노드로 표현된 물리적 위치와 제2 노드로 표현된 물리적 위치 사이의 일반적인 직선 경로를 따라갈 수 있음을 나타낸다. 세그먼트들(405)과 노드들(410)이 연결되어, 사용자가 특정 영역을 돌아다니기 위해 지나갈 수 있는 루트들을 윤곽짓거나 나타내는 망을 형성한다. 이 예에서 그러한 영역은 세그먼트들로 표현되는 복도/통로들이 있는 쇼핑몰이다. 상기 맵이 도 4와 유사한 시각적 형태를 취할 필요는 없으며 동일하거나 유사한 정보 및 관련사항들을 나타내는 임의의 데이터 구조나 정보일 수 있다는 것을 예상할 수 있을 것이다. An example of such a map is shown in Fig. 4 is a diagram of a vector map 400. FIG. A vector is a basic data structure for storing and manipulating graphic data on a computer. A vector map is a map that includes nodes, segments, and / or polygons. The map 400 includes a path layout in the form of nodes 410 and segments 405. In this example, each segment 405 represents a (substantially) straight path. Each node 410 represents an intersection, corner, or other location where two or more paths meet. A segment may connect two nodes, thus indicating that the user can follow a common linear path between the physical location represented by the first node and the physical location represented by the second node. Segments 405 and nodes 410 are connected to form a network that outlines or represents routes through which a user may travel to navigate through a particular area. In this example, such an area is a shopping mall with corridors / corridors represented by segments. It will be appreciated that the map does not need to take a visual form similar to FIG. 4 and may be any data structure or information that represents the same or similar information and related items.

상기 맵의 여러 부분들이 추가 데이터와 연관될 수 있다. 도시된 실시예에서, 예를 들어, 각각의 노드(410) 및 세그먼트(405)는 고유한 ID와 결부된다. 각각의 세그먼트는 여러 지점들로 이루어진다(가령, 도시된 예들에서 실제 구현예들에서는 세그먼트 당 더 많거나 더 적은 지점들이 있을 수 있지만, 한 세그먼트 내 각각의 단속선(dash)이 독립된 지점(separate point)이라고 간주될 수 있다.).궤적 데이터와 관련하여 앞서 논의된 바와 같이(가령, 단계 205), 이들 지점들 각각은 물리적 위치를 나타내며, 주변 신호 지문 데이터, 타임스탬프 및/또는 어떤 다른 적절한 유형의 위치 관련 데이터와 연관된다. Various parts of the map may be associated with additional data. In the illustrated embodiment, for example, each node 410 and segment 405 is associated with a unique ID. Each segment consists of a number of points (e.g., in the illustrated examples there may be more or less points per segment in actual implementations, but each segment in a segment may have a separate point ) 205. As discussed above with respect to the locus data (e.g., step 205), each of these points represents a physical location and may include surrounding signal fingerprint data, a timestamp, and / Related data.

서버(110)가 단계 210에서 획득할 수 있는 맵 유형의 또 다른 예가 도 5에 도시된다. 도 5는 그래픽 맵(500)에 대한 도면이다. 맵(500)은 임의 유형의 시각적 맵 표현일 수 있고, 임의의 이미지 포맷, 가령, 래스터(raster) 맵, 맵의 하드 카피 스캐닝으로부터 도출된 이미지 파일로 저장될 수 있다. 이러한 특정 예에서, 맵(500)은 다양한 교차점들에서 만나는 복도/통로(505)를 포함한다. 다수의 빌딩들(510) 또한 도시된다. Another example of a map type that the server 110 can acquire at step 210 is shown in FIG. 5 is a diagram of a graphics map 500. FIG. The map 500 may be any type of visual map representation and may be stored in an image file derived from any image format, such as a raster map, hardcopy scanning of the map. In this particular example, the map 500 includes a corridor / passage 505 that meets at various intersections. Multiple buildings 510 are also shown.

단계 210에서 얻어지는 맵은 다양한 방식으로 생성될 수 있다. 어떤 방식에서는 서버(110)(또는 다른 장치)가 그래픽 맵(가령, 도 5의 맵(500))으로부터 맵 데이터 구조(가령, 도 4의 벡터 맵(400))을 도출한다. 이것은 그래픽 맵의 스캐닝, 루트/통로/복도 및 교차점들의 위치 결정, 및 이들을 경로 레이아웃으로(가령, 세그먼트들 및 노드들 각각으로) 변환하는 것을 수반할 수 있다. 또 다른 실시예들에서 서버(110)는 (가령, 도 4-5의 맵들(400 및 500)의 경우에서처럼) 같은 영역에 대한 벡터 맵 및 그래픽 맵을 획득한다. 벡터 맵의 양상(가령, 노드들과 세그먼트들의 정렬 및 위치)은 그래픽 맵에 대한 분석에 기반하여 정정된다. 그러한 동작을 수행하기 위해 어떤 적절한 기법이 사용될 수 있다. The map obtained in step 210 may be generated in various ways. In some ways, server 110 (or other device) derives a map data structure (e.g., vector map 400 of FIG. 4) from a graphics map (e.g., map 500 of FIG. 5). This may involve scanning the graphics map, locating the routes / corridors / corridors and intersections, and converting them into path layouts (e.g., into segments and nodes, respectively). In yet other embodiments, the server 110 obtains a vector map and a graphics map for the same area (e.g., as in the case of the maps 400 and 500 of FIGS. 4-5). Aspects of the vector map (e.g., alignment and location of nodes and segments) are corrected based on an analysis of the graphics map. Any suitable technique may be used to perform such an operation.

어떤 방식들에서는 맵이, 특정 영역을 지나던 여러 장치들 및/또는 사용자들로부터 크라우드소싱되는 궤적 데이터에 기반하여 생성된다. 이 맵은, 예컨대, 각각이 여러 면에서 그 전체가 참조의 형태로 포함되는 공동 양수인의 미국 특허출원 제14/571,166; 제14/574,194; 및 제14/549,054에 기술된 어떤 기법을 이용하여 생성된다.일부 실시예에서, 이 맵은 미국 특허 출원 제14/571,166에 기재된 바와 같이 링크된 노드 구조이다. In some ways, the map is generated based on locus data that is crowded from multiple devices and / or users that have passed through a particular area. This map is described, for example, in co-pending U.S. Patent Application Serial Nos. 14 / 571,166, each of which is hereby incorporated in its entirety by reference in its entirety. 14 / 574,194; And 14 / 549,054. In some embodiments, the map is a linked node structure as described in U.S. Patent Application No. 14 / 571,166.

일부 실시예에서, 맵의 정확도를 향상시키기 위해 여러 단계들이 취해진다. 어떤 방식들에서는 예컨대, 맵이 제한된 수만의 랜드마크들 또는 랜드마크가 없음을 나타내는 선택된 궤적 데이터만을 이용하여 생성된다. 많은 랜드마크들을 나타내는 궤적 데이터는 원을 그리며 이동하거나 상점, 룸, 및 기타 특징들을 둘러보면서 자신들의 이동 속도를 빈번하게 조정하는 사용자들 및 장치들과 연관될 수 있다. 그에 따른 궤적 데이터는 종종 오류에 더 취약할 수 있다. 그 결과, 맵을 생성하는데 사용되는 궤적 데이터의 유형들이 선택적인 것이 바람직할 수 있다. In some embodiments, several steps are taken to improve the accuracy of the map. In some ways, for example, the map is generated using only a limited number of landmarks or only selected trajectory data indicating no landmarks. The locus data representing a number of landmarks may be associated with users and devices that move in circles or frequently adjust their travel speed while browsing stores, rooms, and other features. The resulting trajectory data can often be more susceptible to errors. As a result, it may be desirable that the types of sign data used to generate the map are optional.

맵 생성을 위한 예시적 방법이 다음과 같이 기술될 수 있다. 먼저, 서버(110)가 여러 사용자들 및/또는 장치들로부터 특정 영역에서의 장치 이동을 나타내는 궤적 데이터 후보 집합들을 획득한다. (이 예에서, 각각의 궤적 데이터 후보 집합은 특정 기간 동안 하나의 장치의 물리적인 이동을 나타낸다). 서버(110)는 궤적 데이터 집합들을 분석하고, 각각이 랜드마크를 나타내지 않고/않거나 소정 랜드마크 개수보다 적은 (가령, 2, 3, 4, 또는 5 개의 랜드마크들 미만의) 랜드마크만을 나타내고/나타내거나 보다 적은 방향 전환과 보다 많은 직선을 나타내는 특정 궤적 데이터 집합들만을 선택한다. 랜드마크 검출 단계(단계 207)로부터의 결과를 적용 후, 궤적을 복도 부분들과 랜드마크 부분들로 분할하는 것이 적절하다. 복도 맵(즉, 랜드마크가 사용되지 않음을 나타내는 궤적 데이터 부분들)을 생성하기 위해 궤적의 복도 부분들만 사용된다. 다양한 실시예들에서 서버(110)는 단계 207에 기술된 기법들을 사용하여 각각의 궤적 데이터 후보 집합 내 랜드마크들의 개수 및/또는 존재를 검출한다. 그런다음 서버(110)는 선택된 궤적 데이터 집합들을 사용하여 맵을 생성한다(가령, 본 출원이나 공동 양수인의 출원들에 기재된 상술한 기법들 중 어느 하나를 이용함). 다르게 표현하면, 궤적 데이터는 맵 요소들(가령, 세그먼트들, 노드들, 경로들, 루트들, 교차점들, 주변 신호 지문 데이터 등)의 위치 및 특징을 판단하는데 사용된다. 상기 프로세스는 반복될 수 있다. 즉, 새 궤적 데이터 후보 집합들이 사용될 수 있고, 그에 따라 맵/경로 레이아웃이 추가로 조정될 수 있다. An exemplary method for map generation may be described as follows. First, the server 110 obtains locale data candidate sets indicating device movement in a specific area from various users and / or devices. (In this example, each locus data candidate set represents a physical movement of one device during a particular time period). The server 110 analyzes the trajectory data sets and displays only landmarks that do not represent a landmark and / or are less than a given number of landmarks (e.g., less than 2, 3, 4, or 5 landmarks) Or select only specific trajectory data sets that exhibit less directional changes and more straight lines. After applying the result from the landmark detection step (step 207), it is appropriate to divide the locus into corridor parts and landmark parts. Only corridor portions of the trajectory are used to generate the corridor map (i.e., the trajectory data portions that indicate that the landmark is not used). In various embodiments, the server 110 detects the number and / or presence of landmarks in each of the trajectory data candidate sets using the techniques described in step 207. The server 110 then uses the selected trajectory data sets to generate a map (e.g., using any of the techniques described in the present application or co-assigned assignee's applications). Stated differently, locus data is used to determine the location and characteristics of map elements (e.g., segments, nodes, paths, routes, intersections, peripheral signal fingerprint data, etc.). The process may be repeated. That is, new trajectory data candidate sets may be used, and the map / path layout may be further adjusted accordingly.

다양한 구현예들에서, 이러한 프로세스는 맵 요소들의 위치/특징이 소정 기준 이상으로 더 이상 변하지 않을 때까지 계속된다. 예로서 벡터 맵이 사용되는 경우, 그 기준은 다음과 같은 규칙들로 이뤄진다: a. 각각의 라운드에서 생성된 벡터 맵에 있어서, 노드들이나 세그먼트들과 같이 새로 추가되는 복도 구조들은 존재하지 않는다; b. 복도 맵 상의 각각의 노드에 있어서, 그 위치들이 어떤 작은 문턱치 이상으로 업데이트되지 않는다; c. 복도 맵 상의 각각의 세그먼트에 있어서, 그 길이가 어떤 작은 문턱치 이상으로 업데이트되지 않는다. 이때 맵은 합리적 수준의 정확도를 가진 것으로 전제한다. 다양한 구현예들에서, 결과적 맵은 어떤 랜드마크들도 나타내지 않으며, 상기 프로세스는 어떠한 랜드마크의 위치 판단에도 사용되지 않는다. 그러나 가령 단계 220 및 225에 논의되는 것과 같이, 하나 이상의 랜드마크들이 추후 추가될 수 있다In various implementations, this process continues until the location / feature of the map elements no longer changes beyond a predetermined criterion. As an example, if a vector map is used, the criterion consists of the following rules: a. In the vector map generated in each round, there are no newly added corridor structures, such as nodes or segments; b. For each node on the corridor map, the positions are not updated above some small threshold; c. For each segment on the corridor map, its length is not updated beyond any small threshold. The map is assumed to have a reasonable level of accuracy. In various implementations, the resulting map does not show any landmarks, and the process is not used to determine the position of any landmark. However, as discussed, for example, in steps 220 and 225, one or more landmarks may be added later

도 2의 방법(200)을 다시 참조하면, 단계 215에서 서버(110)는 궤적 데이터를 맵과 매칭한다. 다르게 표현하면, 서버(110)는 궤적 데이터의 적어도 일부분을 맵에서 표시된 경로 레이아웃의 일부분과 매칭 및/또는 비교하여, 그들이 동일한 물리적 위치에 해당하고 있는지를 판단한다. 예를 들어, 궤적 데이터 (및 그 관련 주변 신호 지문 데이터)에 의해 정의되는 경로의 세그먼트가 맵 (및 그 관련 주변 신호 지문 데이터)의 세그먼트와 비교되어, 이들이 동일한 복도, 통로, 또는 경로를 나타내고 있는지를 확인한다. 궤적 데이터의 하나 이상의 부분들 및 맵의 하나 이상의 부분들에 대해 이러한 비교가 수차례 반복된다. Referring back to the method 200 of FIG. 2, in step 215, the server 110 matches the locus data with the map. In other words, the server 110 matches and / or compares at least a portion of the locus data with a portion of the path layout shown in the map to determine whether they correspond to the same physical location. For example, a segment of the path defined by the locus data (and its associated surrounding signal fingerprint data) is compared to a segment of the map (and its associated surrounding signal fingerprint data) to determine whether they represent the same corridor, path, or path . This comparison is repeated several times for one or more parts of the locus data and one or more parts of the map.

상기 매칭을 수행하기 위해 어떤 적절한 기법이 사용될 수 있다. 일부 실시예에서, 예컨대 궤적 데이터 내 지점들에 대한 주변 신호 지문 데이터가 맵 내 지점들에 대한 지문 데이터와 비교된다. 지문 데이터가 충분히 유사하다는 것이 확인되면(가령, 궤적 데이터 및 맵 내에서 충분한 수의 지점들에 대한 지문 데이터의 타니모토(Tanimoto) 유사도가 특정 문턱치를 초과한다고 확인되면), 매칭이 성립된다. 다른 실시예에서, 궤적 데이터 및 맵의 부분들을 매칭하기 위해 입자 필터가 사용된다. 어떤 방식에서는 매칭이 형태 비교를 수반한다. 즉, 궤적 데이터에 의해 정의되는 경로의 형태, 특징 및 거리들이 맵 내 길들/경로들의 형태, 특징 및 거리들과 비교되어 이들이 매칭하는지 여부가 판단된다. 본 출원에서 나중에 논의될 세그먼트 기반 방식, 시퀀스 기반 방식 및 와이파이 피크 기반 방식과 같은 다른 매칭 방법들 역시 사용될 수 있다. Any suitable technique may be used to perform the matching. In some embodiments, for example, peripheral signal fingerprint data for points in the locus data are compared to fingerprint data for points in the map. If it is ascertained that the fingerprint data is sufficiently similar (e.g., if it is ascertained that the Tanimoto similarity of the fingerprint data to a sufficient number of points in the locus data and the map exceeds a certain threshold), matching is established. In another embodiment, a particle filter is used to match parts of the locus data and map. In some ways matching involves shape comparisons. That is, the shape, characteristics, and distances of the path defined by the trajectory data are compared with the shapes, features, and distances of the paths / paths in the map to determine whether they match. Other matching methods, such as segment-based schemes, sequence-based schemes and Wi-Fi peak-based schemes, which will be discussed later in this application, may also be used.

궤적 데이터 및 맵의 매칭에 기반하여, 서버는 맵 내에서 랜드마크의 위치를 결정한다(단계 220). 랜드마크의 위치를 결정하기 위해 어떤 적절한 기법이 사용될 수 있다. 일부 실시예에서, 예컨대 궤적 데이터는 랜드마크가 여러 지점들(도 3의 영역(300) 내 단속선들)을 커버함을 나타낸다. 앞서 논의한 바와 같이, 각각의 지점은 RSSI 벡터로 표현될 수 있는 주변 신호 지문 데이터와 연관될 수 있다. Based on the matching of the locus data and the map, the server determines the location of the landmark in the map (step 220). Any suitable technique can be used to determine the location of the landmark. In some embodiments, for example, the locus data indicates that the landmark covers multiple points (intermittent lines in area 300 of FIG. 3). As discussed above, each point may be associated with peripheral signal fingerprint data that may be represented by an RSSI vector.

다양한 실시예들에서, 각각의 RSSI 벡터는 특정 RF 액세스 지점이나 관련 지점의 송신기로부터 수신한 신호의 세기를 나타낸다. 따라서, 해당 영역이 여러 액세스 지점들이나 송신기들을 포함하면, 각각의 지점은 여러 RSSI 벡터들의 집합과 연관된다. 각각의 액세스 지점/송신기에 대한 RSSI 벡터는 랜드마크 영역 내 지점들에 걸쳐 평균화될 수 있다. 랜드마크 위치에 대한 판단은 평균화된 RSSI 벡터들에 기반한다. 예컨대 이들을 맵 안의 하나 이상의 세그먼트들/노드들에 대한 주변 신호 지문 데이터에 대하여 비교함으로써 판단된다. 랜드마크 위치 결정 시, 일부 RSSI 벡터들은 다른 것들과 다르게 가중될 수 있다. 예를 들어 RSSI 벡터들은 비콘 비(beacon ratio)에 기반하여 가중, 즉 신호가 더 자주 나타나는 액세스 지점들/송신기들이 더 많이 가중될 수 있다. 가중은 또한, 특정 액세스 지점들/송신기들에 대한 상대적 신호 세기들에 기반할 수도 있다. 다양한 실시예들에서, 랜드마크의 위치가 결정되면, 그 랜드마크 위치가 맵 상에 배치, 추가, 및/또는 연관된다. In various embodiments, each RSSI vector represents the strength of a signal received from a transmitter at a particular RF access point or associated point. Thus, if the region includes multiple access points or transmitters, each point is associated with a set of multiple RSSI vectors. The RSSI vector for each access point / transmitter can be averaged over points within the landmark area. The determination of the landmark position is based on the averaged RSSI vectors. For example, by comparing them against peripheral signal fingerprint data for one or more segments / nodes in the map. In landmark localization, some RSSI vectors may be weighted differently than others. For example, RSSI vectors may be weighted based on beacon ratio, i.e. access points / transmitters where the signal appears more often may be weighted more. The weighting may also be based on relative signal strengths to specific access points / transmitters. In various embodiments, once the location of the landmark is determined, the landmark location is placed, added, and / or associated on the map.

상술한 맵으로의 궤적 데이터의 매칭(단계 215) 및 관련된 랜드마크 위치 결정(단계 220)은 다양한 방식으로 수행될 수 있다. 세 가지 예시적 방식들인 세그먼트 기반 방식, 시퀀스 기반 방식, 및 와이파이 피크 기반 방식을 이하에서 기술한다. 세그먼트 기반 방식의 일예가 도 6 및 도 7a-7c에 도시된다. Matching the locus data to the above-described map (step 215) and associated landmark positioning (step 220) may be performed in various ways. Three illustrative schemes, a segment-based scheme, a sequence-based scheme, and a Wi-Fi peak-based scheme are described below. One example of a segment based approach is shown in FIG. 6 and FIGS. 7A-7C.

도 6은 예시적 세그먼트 기반 매칭 방법(600)의 단계들을 나타낸다. 단계 605에서, 서버(110)는 도 2의 단계 205 및 210에 기술된 바와 같이 궤적 데이터 및 맵을 획득한다. 일반적으로 도 3의 궤적 데이터(300)와 동일한 예시적 궤적 데이터(700)가 도 7a에 도시된다. 서버(110)는 궤적 데이터(700)가 랜드마크(705)를 나타낸다고 판단하였다. 이러한 판단은 예컨대 도 2의 단계 205와 관련하여 기술된 바와 같이 어떤 적절한 기법을 이용하여 내려질 수 있다. 이 예에서, 단계 605에서 얻어진, 도 7c의 맵(750)으로서 도시되는 맵은 도 4의 맵(400)과 동일하다. FIG. 6 shows steps of an exemplary segment-based matching method 600. FIG. In step 605, the server 110 obtains the locus data and the map as described in steps 205 and 210 of FIG. Generally, the exemplary locus data 700, which is the same as the locus data 300 of FIG. 3, is shown in FIG. 7A. The server 110 has determined that the locus data 700 represents the landmark 705. [ This determination may be made using any suitable technique, for example as described in connection with step 205 of FIG. In this example, the map obtained in step 605, shown as the map 750 in FIG. 7C, is the same as the map 400 in FIG.

단계 610에서, 서버(110)는 궤적 데이터 내 하나 이상의 세그먼트들을 선택 및 식별한다. 다양한 실시예들에서 세그먼트들은 랜드마크와 인접 및/또는 그 주변에 있다. 다른 구현예들에서, 선택된 세그먼트들은 랜드마크에서 교차하고/하거나 실질적으로 직진 경로(straight path)들을 형성한다. 도시된 예에서, 서버(110)는 그에 따라, 랜드마크에서 만나고 랜드마크의 반대편들에 위치하는 세그먼트들(710 및 715)을 선택한다. 세그먼트(710)는 실질적으로 지점들(720a 및 720b) 사이를 잇는 직진 세그먼트이다. 세그먼트(715)는 실질적으로 지점들(725a 및 725b) 사이를 잇는 직진 세그먼트이다. 일반적으로, 제한된 수의 세그먼트들만(가령, 랜드마크에서 가깝거나, 소정 거리 이내이거나, 랜드마크에 인접하는 등의 세그먼트들만) 선택된다. At step 610, the server 110 selects and identifies one or more segments in the locus data. In various embodiments, the segments are adjacent to and / or around the landmark. In other implementations, the selected segments intersect and / or form substantially straight paths in the landmark. In the illustrated example, the server 110 accordingly selects the segments 710 and 715 that meet in the landmark and are located on opposite sides of the landmark. Segment 710 is a straight segment connecting substantially between points 720a and 720b. Segment 715 is a straight segment connecting substantially between points 725a and 725b. In general, only a limited number of segments are selected (e.g., only those near the landmark, within a predetermined distance, or adjacent to the landmark, etc.).

단계 615에서, 서버(110)는 선택된 세그먼트들을 맵의 경로들/세그먼트들과 비교 및/또는 매칭한다. 비교될 세그먼트들이 도 7b에 도시된다. 어느 하나의 세그먼트 또는 세그먼트들의 어떤 조합도 맵(750)의 경로들/세그먼트들과 비교 및/또는 매칭될 수 있다는 것을 알아야 한다. 예를 들어, 도 7b에 도시된 예에서, 서버(110)는 그러한 매칭 및 비교 동작을 위해 세그먼트(710), 세그먼트(715), 및/또는 세그먼트(710)와 세그먼트(715)의 조합으로 구성된 더 긴 세그먼트(730)를 사용할 수 있다. 일반적으로, 세그먼트들이 맵(400)의 경로들/세그먼트들과 더 많이 매칭될수록(가령, 세그먼트(715)와 결합된 세그먼트(710)), 매칭이 더 정확해지는 경향이 있다.In step 615, the server 110 compares and / or matches the selected segments with the paths / segments of the map. The segments to be compared are shown in Fig. 7B. It should be appreciated that any combination of any one segment or segments may be compared and / or matched with the paths / segments of the map 750. [ For example, in the example shown in FIG. 7B, the server 110 may be configured with a segment 710, a segment 715, and / or a combination of a segment 710 and a segment 715 for such matching and comparison operations. A longer segment 730 may be used. In general, the more the segments are matched with the paths / segments of the map 400 (e.g., the segment 710 combined with the segment 715), the more accurate the matching will be.

상기 매칭 동작들은 (도 2의 단계(215)에서 논의된 것과 같은) 어떤 적절한 기법을 사용할 수 있다. 도시된 실시예에서, 예를 들어 서버(110)는 세그먼트들(710, 715, 및 730) 내 지점들과 연관된 주변 신호 지문 데이터를 맵(750)의 세그먼트들 내 지점들과 연관된 주변 신호 지문 데이터와 비교한다. 도 7c는 상기 매칭 동작의 결과들의 예를 도시한다. 이 예에서 서버(110)는 맵(750)의 세그먼트(755)가 세그먼트(730)와 매칭한다고 판단한다. 즉, 세그먼트(755) 내 지점들의 특징(가령, 그들의 순서, 관련 주변 신호 지문 데이터 등)이 세그먼트(730) 내 지점들의 특징들과 충분히 매칭된다. The matching operations may use any suitable technique (such as that discussed in step 215 of FIG. 2). In the illustrated embodiment, for example, the server 110 transmits peripheral signal fingerprint data associated with points in the segments 710, 715, and 730 to surrounding signal fingerprint data associated with points in the segments of the map 750 . Figure 7C shows an example of the results of the matching operation. In this example, the server 110 determines that the segment 755 of the map 750 matches the segment 730. That is, the features of the points in segment 755 (e.g., their order, associated peripheral signal fingerprint data, etc.) sufficiently match the features of points in segment 730.

단계 620에서 서버(110)는 맵 내 랜드마크의 위치를 결정한다. 이 단계는 도 2의 단계 220와 관련하여 기술된 어떤 적절한 기법을 이용하여 수행될 수 있다. 일부 실시예들에서, 서버(110)는 랜드마크에 대해 매칭된 궤적 데이터 세그먼트들(가령, 세그먼트(730))의 위치들 및/또는 그 세그먼트들의 길이들에 기반하여 랜드마크의 위치를 결정한다. In step 620, the server 110 determines the location of the landmark in the map. This step may be performed using any suitable technique described in connection with step 220 of FIG. In some embodiments, the server 110 determines the location of the landmark based on the locations of the locator data segments (e.g., segment 730) matched for the landmark and / or the lengths of the segments .

예시된 실시예에서, 예를 들어, 세그먼트(710)의 길이를 A라고 하고 세그먼트(715)의 길이를 B라고 하자. 세그먼트들(710 및 715)의 조합인 세그먼트(730)는 맵(750)의 세그먼트(755)에 매칭되었다. 또한, 서버(110)는 세그먼트(755)에 의해 연결되는 맵(750)의 노드들(760 및 765)에 대한 주변 신호 지문 데이터가 궤적 데이터(700) 내 지점들(720a 및 725b)의 지문 데이터와 매칭된다고 판단한다. 따라서, 서버(110)는 랜드마크의 위치가, 맵(750)의 세그먼트(755) 상의 한 위치에 있고 세그먼트들의 길이들, 즉 노드(760)으로부터의 거리 A 및 노드(765)로부터의 거리 B에 기반하여 판단될 수 있다고 판단한다. 판단된 랜드마크의 위치가 도 7c에서 랜드마크(770)로 예시된다. In the illustrated embodiment, for example, let the length of segment 710 be A and the length of segment 715 B be. Segment 730, which is a combination of segments 710 and 715, has been matched to segment 755 of map 750. In addition, the server 110 determines that peripheral signal fingerprint data for the nodes 760 and 765 of the map 750 connected by the segment 755 is the fingerprint data of the points 720a and 725b in the locus data 700 ≪ / RTI > Thus, the server 110 determines that the location of the landmark is at one position on the segment 755 of the map 750 and the lengths of the segments, i.e., the distance A from the node 760 and the distance B from the node 765 As shown in FIG. The position of the determined landmark is illustrated by the landmark 770 in Fig. 7C.

상기 시퀀스 기반 방식의 이점은 구현 시 필요로 되는 비용이 보다 적을 수 있다는데 있다. 즉, 다양한 실시예들에서, 하나 이상의 세그먼트들의 어떤 제한된 집합만(가령, 랜드마크 주변의 세그먼트들만, 세그먼트들(710 및 715)처럼 랜드마크에 인접한 세그먼트들 등만)이 매칭에 사용되며, 궤적 데이터(700)의 다른 부분들/세그먼트들은 사용되지 않는다. The advantage of the sequence-based approach is that it may be less costly to implement. That is, in various embodiments, only a limited set of one or more segments (e.g., only the segments around the landmark, only the segments adjacent to the landmark, such as segments 710 and 715) are used for matching, Other portions / segments of data 700 are not used.

궤적 데이터를 맵에 매칭하고 맵 내 랜드마크의 위치를 결정하기 위해(가령, 도 2a의 단계들(215 및 220)) 다양한 다른 방식들 역시 사용될 수 있다. 다른 방식을 시퀀스 기반 방식이라 칭할 수 있으며, 이것은 도 8 및 9a-9b에 도시된 실시예를 이용하여 기술된다.Various other schemes may also be used to match the locus data to the map and determine the location of the landmarks in the map (e.g., steps 215 and 220 of FIG. 2A). Other schemes may be referred to as sequence-based schemes, which are described using the embodiment shown in Figures 8 and 9a-9b.

도 8은 예시적 시퀀스 기반 방식의 단계들을 나타낸다. 단계 805에서 서버(110)는 궤적 데이터 및 맵을 획득한다. 이 단계는 도 2a의 단계 205 및 210과 관련하여 앞서 논의된 바와 같이 수행될 수 있다. 이 예에서, 획득된 궤적 데이터는, 일반적으로 도 3의 궤적 데이터(300)와 동일한 도 9a의 궤적 데이터(900)로서 도시된다. 궤적 데이터(900)는 지점(905)에서 시작하고 지점(910)에서 끝나는 궤적을 형성한다. 궤적 데이터(900)는 랜드마크(915)를 더 나타낸다. 이 예에서 서버(110)는 또한, 일반적으로 도 4에 도시된 맵(400)과 동일한 도 9b에 도시된 맵(950)을 획득한다.Figure 8 illustrates steps of an exemplary sequence-based scheme. In step 805, the server 110 acquires the locus data and the map. This step may be performed as discussed above in connection with steps 205 and 210 of Figure 2A. In this example, the acquired locus data is shown as locus data 900 in Fig. 9A, which is generally the same as locus data 300 in Fig. The locus data 900 forms a locus starting at point 905 and ending at point 910. [ The locus data 900 further shows a landmark 915. In this example, the server 110 also obtains the map 950 shown in FIG. 9B, which is generally the same as the map 400 shown in FIG.

단계 810에서, 서버(110)는 맵(950)에서 궤적 데이터의 시작점과 종점(905/910)의 위치를 추정한다. 서버(110)는 이를 위해 어떤 적절한 기법을 이용할 수 있다. 일부 실시예들에서, 예컨대 서버(110)는 궤적 데이터 시작점 및 종점(905/910) (및/또는 다른 가까운 지점들의) 주변 신호 지문 데이터를 맵 상의 지점들, 세그먼트들 및/또는 노드들의 주변 신호 지문 데이터와 비교하여 매칭한다. 이와 달리, 또는 추가적으로 서버(110)는 상술한 지점들과 연관된 다른 데이터를 이용하여 상기 추정을 행한다. 다양한 구현예에서, 예를 들어 궤적 데이터(900)의 지점들 중 적어도 일부가 GPS 데이터와 연관된다. In step 810, the server 110 estimates the position of the start point and the end point 905/910 of the locus data in the map 950. The server 110 may use any suitable technique for this purpose. In some embodiments, for example, the server 110 may provide perimeter signal fingerprint data for the locus data start point and the end point 905/910 (and / or other nearby points) to the perimeter signals of points, segments, and / Matches with fingerprint data. Alternatively, or additionally, the server 110 makes this estimation using other data associated with the above-described points. In various implementations, for example, at least some of the points in the locus data 900 are associated with GPS data.

GPS 데이터는 사용자나 장치가 빌딩으로 진입하거나 빠져나갈 때 궤적 데이터(900) 내 지점들을 식별하기 위해 사용될 수 있다. 예를 들어 궤적 데이터(900) 내 특정 지점에 대한 GPS 데이터가 GPS 신호가 끊겼거나 크게 약화되었다는 것을 가리킨다면, 이는 장치(104)가 빌딩 안으로 방금 들어갔고/갔거나 빌딩 입구에 있다는 것을 나타낼 수 있다. GPS 데이터를 이용하여 진입 또는 진출 지점들을 식별하기 위한 다양한 기법들이 모든 면에서 전체가 이 명세서에 참조의 형식으로 포함되는 공동 양수인의 미국 특허 출원 제14/549,054에 기술되어 있다. Patent Application No. 14/549,054, which is incorporated by reference herein in its entirety for all purposes. 상술한 출원에 기술된 기법들 중 어느 하나가 사용되어, 맵(950) 내 지점들/노드들에 대응하는 궤적 데이터(900) 내 지점들(가령, 빌딩 입구 및 출구 지점들)을 식별할 수 있다. 일부 맵 구현예들 역시 입출구 지점들을 가리키므로, 그러한 정보가 사용되어 맵 내 입출구 지점들을 궤적 데이터(900) 내 식별 지점들과 매칭할 수 있다. 도시된 실시예에서, 단계 810의 수행 결과로서, 서버(110)는 궤적 데이터(900) 내 시작점 및 종점(905/910)을 맵(950) 내 노드들(955 및 960)과 각각 연관시킨다. The GPS data may be used to identify points in the locus data 900 when the user or device enters or exits the building. For example, if the GPS data for a particular point in the locus data 900 indicates that the GPS signal is lost or severely degraded, this may indicate that the device 104 has just entered / departed or is at the building entrance. Various techniques for identifying entry or exit points using GPS data are described in co-assigned US patent application Ser. No. 14 / 549,054, which is incorporated in its entirety herein by reference in its entirety. Patent Application No. 14 / 549,054, which is incorporated by reference herein in its entirety for all purposes. Either of the techniques described in the above application may be used to identify points in the locus data 900 corresponding to points / nodes in the map 950 (e.g., building inlets and outlets) have. Since some map implementations also point to entry and exit points, such information may be used to match the entry and exit points in the map with the identification points in the locus data 900. [ In the illustrated embodiment, as a result of performing step 810, the server 110 associates the start point and end point 905/910 in the locus data 900 with the nodes 955 and 960 in the map 950, respectively.

단계 815에서 서버(110)는 궤적 데이터(900) 내 랜드마크(915)가 단일 인덱스를 가지는지 한 쌍의 인덱스들을 가지는지 여부를 판단한다. 다르게 말하면, 서버(110)는 랜드마크(915)가 궤적 데이터(900) 내 단일 지점으로 표현될 수 있는지 궤적 데이터(900) 내 여러 지점들로 표현될 수 있는지 여부를 판단한다. 전자의 경우는 예컨대, 제한된 공간을 차지하고/하거나 어떤 입구나 출구도 없는 소형 랜드마크, 예컨대 분수대, 키오스크, 간판, 단일 궤적 데이터 지점이거나 그 지점으로 나타낼 수 있는 어떤 랜드마크 등에 해당할 수 있다. 후자의 경우는 여러 지점들에 의해 표현되고/되거나 입구 및/또는 출구를 가지는 대형 랜드마크, 예컨대 상점이나 룸에 해당할 수 있다. In step 815, the server 110 determines whether the landmark 915 in the locus data 900 has a single index or a pair of indices. In other words, the server 110 determines whether the landmark 915 can be represented by a single point within the locus data 900 or by multiple points within the locus data 900. [ The former case may correspond to, for example, a small landmark that occupies a limited space and / or has no entrance or exit, such as a fountain, a kiosk, a signboard, a single locus data point, or any landmark that can be represented at that point. The latter case may correspond to a large landmark, such as a store or a room, represented by several points and / or having an entrance and / or an exit.

도 9a에 도시된 실시예에서, 예컨대 서버(110)는 랜드마크(915)가 (가령 원형 영역 안에서 구불구불한 궤적으로 표현되는 것과 같은) 궤적 데이터 내 다수의 지점들로 커버되는 룸으로 보여지기 때문에 랜드마크(915)가 한 쌍의 인덱스를 가진다고 판단한다. 랜드마크(915)는 또한, 도 9a의 지점(920)으로 표현되는 입구 지점을 가지는 것으로 나타난다. In the embodiment shown in FIG. 9A, for example, the server 110 is shown as a room where the landmark 915 is covered by a number of points in the locus data (such as represented by a twisty trajectory in a circular area) It is determined that the landmark 915 has a pair of indexes. Landmark 915 also appears to have an entry point represented by point 920 in FIG. 9A.

랜드마크(915)가 단일 인덱스를 가지는 것으로 판단되면, 서버(110)는 궤적 데이터(900) 내 모든 지점들(가령, 시작점(905) 및 종점(910) 간 경로 상의 모든 지점들)을 맵(950) 상의 지점들과 비교하여 매칭되는지를 판단한다(단계 820). 이러한 비교 및 매칭 동작은 예컨대 도 2a의 단계 215와 관련하여 논의된 것과 같이, 여기에 기술된 임의의 매칭 기법을 사용하여 수행될 수 있다. 일부 실시예들에서, 상기 매칭을 수행하기 위해 입자 필터(particle filter)가 사용된다. 또 다른 실시예들에서, 서버(100)는 궤적 데이터(900) 내 각각의 지점과 연관된 주변 신호 지문 데이터와 맵(950) 내 각각의 지점과 연관된 지문 데이터와의 타니모토 유사도를 판단한다. 궤적 데이터(900) 내 충분한 개수의 지점들에 대해 그 유사도가 소정 문턱치를 초과하면, 매칭이 확인된다. 매칭이 확인되었다고 판단하면, 방법(800)은 단계 835로 진행한다.If it is determined that the landmark 915 has a single index, the server 110 maps all the points in the locus data 900 (e.g., all the points on the path between the start point 905 and the end point 910) 950) (step 820). Such comparison and matching operations may be performed using any of the matching techniques described herein, e.g., as discussed in connection with step 215 of FIG. 2A. In some embodiments, a particle filter is used to perform the matching. In yet other embodiments, the server 100 determines the tanimoto similarity between the surrounding signal fingerprint data associated with each point in the locus data 900 and the fingerprint data associated with each point in the map 950. If the similarity for a sufficient number of points in the locus data 900 exceeds a predetermined threshold, matching is confirmed. If it determines that the match has been confirmed, the method 800 proceeds to step 835.

단계 815로 돌아가서, 랜드마크(915)가 한 쌍의 인덱스들을 가지는 것으로 판단되면, 서버(110)는 두 유형의 매칭 동작을 수행하는데, 그 동작 각각은 궤적 데이터(900) 내 지점들의 특징들(가령, 주변 신호 지문 데이터)을 맵(950) 상의 지점들의 특징들과 비교하는 것을 수반한다: (1) 궤적 데이터(900)의 지점들을 시작점(905)부터, 랜드마크(915)의 시작/입구 지점과 비교하는 것(단계 825)을 수반하는 포워드 매칭; 및 (2) 궤적 데이터(900)의 지점들을 종점(910)부터, 랜드마크(915)의 종점/출구 지점과 비교하는 것(단계 830)을 수반하는 백워드 매칭. 상기 비교에 기반하여, 서버(110)는 궤적 데이터(900) 및 맵(950) 사이에 충분한 매칭이 이뤄지는지 여부를 판단한다. 지점들에 대한 이러한 비교 및 매칭은 여기에 기술된 어떤 알려진 기법이나 방법(가령, 도 8의 단계 815와 관련하여 기술된 기법들)을 이용하여 수행될 수 있다.Returning to step 815, if it is determined that the landmark 915 has a pair of indices, the server 110 performs two types of matching operations, each of which includes the features of points in the locus data 900 (E.g., surrounding signal fingerprint data) with the features of the points on map 950: (1) pointing the locus data 900 from start point 905 to the start / Forward matching involving comparing to a point (step 825); And (2) comparing the points of the locus data 900 from the end point 910 to the end point / exit point of the landmark 915 (step 830). Based on the comparison, the server 110 determines whether sufficient matching between the locus data 900 and the map 950 is achieved. Such comparison and matching of points may be performed using any known technique or method described herein (e.g., techniques described in connection with step 815 of FIG. 8).

도 9a-9b에 도시된 예에서, 서버(110)는 랜드마크(915)의 시작/입구 지점 및 종점/출구 지점이 동일한 지점인 도 9a의 지점 920이라고 판단한다. 따라서 서버(110)는 아래의 두 지점 집합들을 맵 상의 지점들과 비교 및 매칭한다: (1) 궤적 데이터 내 지점들(905 및 920) 간 경로 상에 있는 모든 지점들과 (2) 지점들(910 및 920) 간 경로 상에 있는 모든 지점들. 이 예에서 서버(110)는 궤적 데이터(900) 내 다른 지점들(가령, 랜드마크(915) 안에 있는 원형 영역 내 지점들)과 맵 상의 지점들을 비교하거나 매칭하고자 시도하지 않는다. 상기 매칭에 기반하여 서버(110)는 상기 궤적 데이터가 맵의 세그먼트들(965, 975 및 970)에 대응한다고 판단한다. In the example shown in Figures 9A-9B, the server 110 determines that the start / entry point and the end point / exit point of the landmark 915 are at the same point, point 920 in Figure 9A. Thus, the server 110 compares and matches the following two sets of points with the points on the map: (1) all points on the path between points 905 and 920 in the locus data and (2) points 910 and 920). In this example, the server 110 does not attempt to compare or match points on the map with other points in the locus data 900 (e.g., points in the circular area in the landmark 915). Based on the matching, the server 110 determines that the locus data corresponds to the segments 965, 975, and 970 of the map.

이제 서버(110)는 상기 매칭에 기반하여 맵(950) 상의 랜드마크의 위치를 결정한다(단계 835). 맵(950) 상의 랜드마크의 위치를 결정하기 위해, 서버(110)는 어떤 적절한 기법을 이용할 수 있다. 일부 실시예에서, 예컨대 서버(110)는 랜드마크가 궤적 데이터 안에서 정의된 한 세그먼트 상에 위치한다고 판단하고, 맵 상의 어느 세그먼트가 상기 궤적 데이터 상의 세그먼트에 대응하는지를 더 판단한다. 그런 다음 적절한 방위가 결정되어야 한다. 다르게 말하면, 예를 들어, 궤적 데이터 상의 세그먼트의 “왼편” 및 “오른편”은 맵 상에서 대응되는 세그먼트의 서로 다른 부분들이나 사이드(side)들과 연관될 수 있다. 다양한 실시예들에서 서버는 단계들 820, 825 및/또는 830에서 수행된 매칭에 기반하여 상기 판단을 내린다. The server 110 now determines the location of the landmark on the map 950 based on the matching (step 835). To determine the location of the landmark on the map 950, the server 110 may use any suitable technique. In some embodiments, for example, the server 110 determines that the landmark is located on one segment defined within the locus data, and further determines which segment on the map corresponds to the segment on the locus data. Proper orientation must then be determined. In other words, for example, the "left" and "right" of a segment on the locus data may be associated with different parts or sides of the corresponding segment on the map. In various embodiments, the server makes the determination based on the matching performed in steps 820, 825, and / or 830.

예시된 실시예에서, 예컨대 서버(110)는 맵(950) 상의 노드들(980 및 985)이 궤적 데이터 상의 지점들(925 및 930)에 대응한다고 판단한다. 이러한 판단은 상술한 매칭 단계(가령, 단계 825 및 830)에 기반하여 이루어진다. 궤적 데이터(900)의 분석에 기반하여, 서버(110)는 랜드마크(915)의 입/출구 지점(920)이 지점(925)/노드(980)으로부터 거리 A 및 지점(930)/노드(985)로부터 거리 B에 있음을 더 판단한다. 따라서 서버(110)는 랜드마크의 입/출구 지점이 맵(950) 상의 지점(990)에 근사한 것으로 추정한다. 어떤 응용예에서, 입/출구 지점들은 맵(950) 상에서 서로 다른 위치를 가질 수 있다는 것을 알아야 한다. 서버(110)는 상술한 궤적 데이터(900) 및 매칭 동작들에 기반하여 그러한 다른 위치들을 추정할 수 있다. In the illustrated embodiment, for example, the server 110 determines that the nodes 980 and 985 on the map 950 correspond to points 925 and 930 on the locus data. This determination is made based on the matching step described above (e.g., steps 825 and 830). Based on the analysis of the locus data 900, the server 110 determines whether the entry / exit point 920 of the landmark 915 is at a distance A from the point 925 / node 980 and at a point 930 / node 985 from the distance < RTI ID = 0.0 > B < / RTI > Thus, the server 110 assumes that the entry / exit point of the landmark is close to the point 990 on the map 950. It should be noted that in some applications, the entry / exit points may have different locations on the map 950. The server 110 may estimate such other positions based on the locus data 900 described above and matching operations.

궤적데이터를 매칭하고 랜드마크의 위치를 결정하는(즉, 도 2a의 단계들 215 및 220) 추가적인 방법은 와이파이 피크 기반 방식을 수반한다. 예시적 와이파이 피크 기반 방식이 도 10 및 11a-11d에 기술된다. 이 예는 와이파이 신호들과 관련되지만, 어떤 유형의 RF 신호나 프로토콜, 예를 들어 블루투스 와이파이 등이라도 사용될 수 있다는 것을 예상할 수 있을 것이다. An additional method of matching the locus data and determining the location of the landmark (i.e., steps 215 and 220 in FIG. 2A) involves a Wi-Fi peak-based approach. An exemplary Wi-Fi peak-based approach is described in Figures 10 and 11a-11d. Although this example relates to Wi-Fi signals, it will be appreciated that any type of RF signal or protocol, such as Bluetooth Wi-Fi, may be used.

도 10은 와이파이 피크 기반 방식의 예시적 응용예를 나타내는 흐름도이다. 단계 1005에서 서버(110)는 궤적 데이터 및 맵을 획득한다. 궤적 데이터(1100) 및 맵(1150)의 예들이 도 11a 및 11b에 도시된다. 예시된 궤적 데이터(1100) 및 맵(1150)은 도 2의 단계들 205 및 210과 관련하여 위에서 기술한 특징들(가령, 지점들, 노드들, 관련 지문 데이터 등) 중 어느 하나를 가질 수 있다. 이 예에서, 궤적 데이터(1100)는 각각이 물리적 위치 및 주변 신호 지문 데이터와 연관되는 다수의 지점들로 이루어진다. 궤적 데이터(1100)는 또한 랜드마크(1115), 가령 룸이나 상점을 가리킨다. 10 is a flow chart illustrating an exemplary application of a Wi-Fi peak-based scheme. In step 1005, the server 110 acquires the locus data and the map. Examples of locus data 1100 and map 1150 are shown in Figures 11A and 11B. The illustrated locus data 1100 and map 1150 may have any of the features described above (e.g., points, nodes, associated fingerprint data, etc.) in connection with steps 205 and 210 of FIG. 2 . In this example, the locus data 1100 comprises a plurality of points, each of which is associated with a physical location and peripheral signal fingerprint data. The locus data 1100 also indicates a landmark 1115, such as a room or a store.

도 11b에 도시된 맵(1150)은 세그먼트들과 연결된 노드들을 포함한다. 각각의 세그먼트는 여러 지점들로 이루어지고, 그 지점들 각각은 물리적 위치 및 주변 신호 지문 데이터와 연관된다. 상술한 주변 신호 지문 데이터는 와이파이 신호 세기 정보, 즉 맵이 표현하는 영역 내에 있는 하나 이상의 와이파이 액세스 지점들로부터 관련된 물리적 위치에서 수신된 신호들의 세기를 가리키는 데이터를 포함한다. The map 1150 shown in FIG. 11B includes nodes connected with the segments. Each segment consists of several points, each of which is associated with a physical location and peripheral signal fingerprint data. The peripheral signal fingerprint data described above includes data indicative of Wi-Fi signal strength information, i.e., the strength of signals received at the associated physical location from one or more Wi-Fi access points within the region represented by the map.

단계 1010에서 서버(110)는 맵 내 와이파이 피크들을 판단한다. 즉, 맵(1150) 내 하나 이상의 세그먼트들 각각에 대해, 서버(110)는 특정 와이파이 액세스 지점의 최대 와이파이 신호 세기와 관련된 상기 세그먼트 내 지점을 판단한다. 다양한 실시예들에서, 서버(110)는 해당 영역 내 하나 또는 모든 액세스 가능한 와이파이 액세스 지점들의 와이파이 피크들을 판단한다. 도 11b에서, 특정 액세스 지점에 대한 각각의 세그먼트 내 와이파이 피크 지점이 지점들(1155)로 도시되어 있다. 이 예는 와이파이 피크와 연관되어 있지만, 대신 어떤 다른 RF 신호나 주변 신호(가령, 블루투스 등)와 관련될 수도 있다는 것을 알아야 한다. In step 1010, the server 110 determines the Wi-Fi peaks in the map. That is, for each of the one or more segments in the map 1150, the server 110 determines the point in the segment associated with the maximum Wi-Fi signal strength of the particular Wi-Fi access point. In various embodiments, the server 110 determines Wi-Fi peaks of one or all accessible Wi-Fi access points in the area. In FIG. 11B, WiFi peak points within each segment for a particular access point are shown as points 1155. FIG. It should be noted that this example is associated with a Wi-Fi peak, but may instead relate to any other RF signal or peripheral signal (e.g., Bluetooth, etc.).

도 10의 단계 1015에서, 서버(110)는 궤적 데이터(1150) 안에서 랜드마크에 대한 시작점 및 종점을 식별 및 판단한다. 이것은 ‘054 출원에 기재된 어떤 기법을 포함한 임의의 적절한 기법을 이용하여 수행될 수 있다. 다양한 실시예들에서, 서버(110)는 궤적 데이터(100) 및 타임스탬프들에 대한 분석에 기반하여 랜드마크에 대한 시작점 및 종점을 판단하는데, 이것이 궤적 데이터(1100)에 의해 규정된 경로 상에서의 장치(104)의 이동 방향을 알려준다. 시작점 및 종점은 장치/사용자가 랜드마크(1115)로 들어간 지점(가령, 랜드마크가 룸이나 상점인 경우)과 장치/사용자가 랜드마크(1115)를 빠져나온 지점을 일컬을 수 있다. In step 1015 of FIG. 10, the server 110 identifies and determines the start and end points for the landmark in the locus data 1150. This may be done using any suitable technique including any technique described in the ' 054 application. In various embodiments, the server 110 determines the start and end points for the landmark based on analysis of the locus data 100 and timestamps, which determines the start and end points for the landmark on the path defined by the locus data 1100 And informs the moving direction of the apparatus 104. The start and end points may refer to the point where the device / user has entered the landmark 1115 (e.g., if the landmark is a room or a store) and where the device / user has exited the landmark 1115.

도 11b에 도시된 예에서, 랜드마크(1115)에 대한 시작점과 종점은 지점 1120과 1125로서 도시된다. 궤적 데이터(1100)가 규정하는 궤적의 시작점 및 종점은 지점 1130 및 1135이다. 즉, 궤적 데이터(1100) 내 지점들과 관련된 타임스탬프들에 따르면, 장치는 시간이 경과하는 동안 지점 1130부터 지점들 1120, 1125 및 1135를 순서대로 통과하였다. In the example shown in FIG. 11B, the starting and ending points for the landmark 1115 are shown as points 1120 and 1125. The start point and the end point of the locus defined by the locus data 1100 are points 1130 and 1135. That is, according to the time stamps associated with the points in the locus data 1100, the device sequentially passed points 1120, 1125, and 1135 from point 1130 over time.

이후 서버(110)는 맵(1150)에서 식별된 와이파이 피크들을 궤적 데이터(1100)의 부분들과 매칭한다. 서버(110)는 이 동작을 어떤 적절한 방식으로 수행할 수 있다. 도시된 실시예에서, 예컨대 서버(110)는 각각의 와이파이 피크에 대한 주변 신호 지문 데이터(가령, 도 11b의 지점들(1155)에 대한 지문 데이터) 및 궤적 데이터(1100) 내 각각의 지점에 대한 지문 데이터 사이의 유사도(가령, 타니모토 유사도)를 판단한다. 이러한 유사도 판단은 동일한 와이파이 액세스 지점/RF 송신기와 관련된 지문 데이터를 이용하여 수행되며, 각각의 액세스 지점/RF 송신기에 대해 반복될 수 있다. 일반적으로, 서버(1100)는 와이파이 피크들 및 랜드마크 외부에 있는 궤적 데이터의 부분들, 가령 랜드마크의 시작점(가령, 지점 1120) 및 랜드마크의 종점(가령, 지점 1125) 사이의 궤적 부분 외부에 있는 궤적 데이터(1100)의 부분들 간 유사도를 판단한다. 다양한 구현예들에서, 유사도가 소정 문턱치를 초과하면 피크 및 지점 사이에 매칭이 확인된다. The server 110 then matches the Wi-Fi peaks identified in the map 1150 with the portions of the locus data 1100. The server 110 may perform this operation in any suitable manner. In the depicted embodiment, for example, the server 110 is configured to store the peripheral signal fingerprint data (e.g., fingerprint data for points 1155 in FIG. 11B) for each WiFi peak, and for each point in the locus data 1100 (For example, Tanimoto similarity) between the fingerprint data. This similarity determination is performed using fingerprint data associated with the same Wi-Fi access point / RF transmitter, and may be repeated for each access point / RF transmitter. Generally, the server 1100 is configured to receive portions of the trajectory data outside the Wi-Fi peaks and landmarks, such as the locus portion between the start point of the landmark (e.g., point 1120) and the end point of the landmark (e.g., point 1125) And determines the similarity between the parts of the locus data 1100 in FIG. In various implementations, matching is confirmed between peaks and points when the degree of similarity exceeds a predetermined threshold.

상기 판단에 기반하여, 서버(110)는 특정 와이파이 피크들을 맵의 세그먼트들 내 지점들에 매칭시킨다. 이러한 것의 예가 도 11c에 도시된다. 도 11c는 맵(1150) 위에 중첩되는 궤적 데이터(1100)를 도시한다. 궤적 데이터(1100) 상의 지점들과 맵(1150) 상의 와이파이 피크 지점들(1155)을 연결하는 선들이 존재한다. 이 선들은 그 피크들 및 그들 각자의 궤적 데이터 지점들의 주변 신호 지문 데이터 사이에 매칭이 확인되었음을 나타낸다.Based on the determination, the server 110 matches specific Wi-Fi peaks with points in segments of the map. An example of this is shown in Fig. 11C. Fig. 11C shows locus data 1100 superimposed on the map 1150. Fig. There are lines connecting the points on the locus data 1100 and the WiFi peak points 1155 on the map 1150. These lines indicate that matching is confirmed between the peaks and surrounding signal fingerprint data of their respective locus data points.

이러한 매칭은 서버(110)가, 경로 데이터가 대응하는 맵 상의 부분들 및 경로들을 판단할 수 있게 한다. 이러한 예가, 어떻게 궤적 데이터(1100)가 도 11c에 도시된 매치들에 기반하여 살짝 회전되어 맵(1150)의 일부에 맞춰지도록 정렬될 수 있는지를 그래픽으로 나타내는 도 11d에서 보여진다. 다르게 말하면, 서버(110)는 단계 1020에서 수행된 매칭에 기반하여 궤적 데이터(1100) 내 세그먼트들/경로들을 맵(1150) 상의 세그먼트들/경로들과 매칭한다.This matching allows the server 110 to determine the parts and paths on the map to which the path data corresponds. This example is shown in FIG. 11d graphically showing how the trajectory data 1100 can be slightly rotated based on the matches shown in FIG. 11C and aligned to fit a portion of the map 1150. FIG. In other words, the server 110 matches the segments / paths in the locus data 1100 with the segments / paths on the map 1150 based on the matching performed in step 1020.

매칭이 완료되면, 서버(110)는 맵 상에서 랜드마크의 위치를 결정한다. 어떤 적절한 기법이 사용되어, (가령, 도 2의 단계 220이나 도 6의 단계 620이나 도 8의 단계 835와 관련하여 기술된 바와 같이) 맵 상의 랜드마크의 위치를 결정할 수 있다. 도 11d에 도시된 실시예에서, 맵 상에서의 세그먼트들의 매칭 및 궤적 데이터(1100)의 정렬은 랜드마크의 위치가 노드(1175)와 노드(1180) 사이에 있는 맵 상의 지점(1170)에 있다는 것을 드러내도록 돕는다. When the matching is completed, the server 110 determines the position of the landmark on the map. Any suitable technique may be used to determine the location of the landmark on the map (e.g., as described in step 220 of FIG. 2, step 620 of FIG. 6, or step 835 of FIG. 8). 11D, the matching of the segments on the map and the alignment of the trajectory data 1100 indicates that the location of the landmark is at point 1170 on the map between node 1175 and node 1180 Help to reveal.

도 2a의 방법(200)으로 돌아가서, 맵 상의 랜드마크의 위치가 결정되면, 다양한 실시예들에서 그 맵이 해당 랜드마크를 포함하거나 지시하도록 업데이트된다(단계 225). 이러한 조정은 다양한 방식으로 수행될 수 있다. 예를 들어 맵이 그래픽이면, 랜드마크의 그래픽 지시자가 맵에 추가될 수 있다. 맵이 데이터 구조(가령, 도 4의 맵(400)나 도 11d의 맵(1150)의 노드들 및 세그먼트들)로 표현되는 일부 실시예에서, 추가 데이터가 랜드마크 위치를 가리키기 위한 구조에 추가되거나 그러한 구조와 결부된다. Returning to method 200 of FIG. 2A, once the location of the landmark on the map has been determined, in various embodiments the map is updated to include or indicate the landmark (step 225). This adjustment can be performed in various ways. For example, if the map is graphic, a graphical indicator of the landmark may be added to the map. In some embodiments where the map is represented by a data structure (e.g., nodes 400 and segments of map 1150 and map 400 of FIG. 4), additional data may be added to the structure for pointing to landmark locations Or associated with such a structure.

도 11d에 도시된 예에서, 이를테면, 랜드마크의 위치를 가리키는 맵(1150)에 더해지는 데이터는 다음과 같은 파라미터들을 이용하여 표현될 수 있다: [SEGMENT ID]; [DISTANCE, START NODE]. 달리 말하면, [SEGMENT ID]는 랜드마크 (또는 랜드마크로의 입구)가 위치한 맵 상의 세그먼트들 중 하나를 가리킨다. [DISTANCE]는, 노드들 중 노드 ID, 즉 [START NODE]로 식별되는 한 노드에서 랜드마크의 위치를 구분하는 세그먼트(가령 세그먼트(1190) 상의 거리를 나타내는 파라미터이다. 따라서, 도 11d의 랜드마크의 위치는 다음과 같이 표현될 수 있다. [segment 1190][0.4, node 1175], 이는 랜드마크가 세그먼트(1190) 상에 위치하고, 노드(1175)에서 그 세그먼트의 길이의 40% 멀리에 있다는 것을 의미한다. 물론 상술한 것은 예시적 구현예일뿐이며, 랜드마크의 위치는 어떤 유형의 데이터나 데이터 구조를 이용해서도 표현될 수 있음을 예상할 수 있다. In the example shown in FIG. 11 (d), for example, the data added to the map 1150 indicating the location of the landmark may be represented using the following parameters: [SEGMENT ID]; [DISTANCE, START NODE]. In other words, [SEGMENT ID] refers to one of the segments on the map where the landmark (or entrance to the landmark) is located. [DISTANCE] is a parameter indicating a segment (e.g., a segment on the segment 1190) that identifies the node ID, i.e., the position of the landmark in one node identified by [START NODE] May be expressed as: [segment 1190] [0.4, node 1175], which indicates that the landmark is located on segment 1190 and is at 40% of the length of the segment at node 1175 It is to be understood that the foregoing is merely exemplary and that the location of landmarks may be expressed using any type of data or data structure.

서버(110)가 단계 205-225를 사용하여 맵 상의 랜드마크의 위치를 결정한 후, 서버(110)는 맵이 커버하는 같은 영역에 대한 추가 궤적 데이터를 획득할 수 있다(단계 230). 새 궤적 데이터는 다른 장치로부터 수신되었을 수 있고, 또는 그 영역을 지나는 동일한 장치가 다른 시점에 사용되었을 수도 있다. 새 궤적 데이터는 맵 상의 랜드마크의 위치를 조정하는데 사용될 수 있다. 시간이 지나면서 그러한 조정은 랜드마크 위치의 정확도 향상에 도움을 줄 수 있다. After the server 110 determines the location of the landmark on the map using steps 205-225, the server 110 may obtain additional trajectory data for the same area covered by the map (step 230). The new locus data may have been received from another device, or the same device across that area may have been used at another point in time. The new locus data can be used to adjust the position of the landmark on the map. Over time, such adjustments can help improve the accuracy of the landmark location.

단계 235에서, 서버(110)는 새 궤적 데이터를 분석하고 단계 205-220과 관련하여 기술된 기법들을 수행하여, 새 궤적 데이터의 후보 랜드마크의 위치를 결정한다. 이것의 한 예가 도 12에 도시된다. 도 12는 도 11d에 도시된 맵(1150)을 나타낸다. 맵(1150)은 앞서 단계 220에서 판단되었던 위치를 가진 랜드마크(1170)를 나타낸다. 서버(110) 또한, 새 궤적 데이터의 분석에 기반하여 새 후보 랜드마크(1205)의 위치를 결정하였다. In step 235, the server 110 analyzes the new locus data and performs the techniques described in connection with steps 205-220 to determine the location of the candidate landmarks of the new locus data. An example of this is shown in Fig. FIG. 12 shows the map 1150 shown in FIG. 11D. The map 1150 represents the landmark 1170 with the position previously determined in step 220. [ The server 110 also determined the location of the new candidate landmark 1205 based on the analysis of the new locus data.

도 2a의 방법은 이제 도 2b의 단계(240)로 진행한다. 단계 240에서 서버(110)는 랜드마크(1170)를 후보 랜드마크(1205)와 비교한다. 이러한 비교는 어떤 적절한 방식에 따라 수행될 수 있다. 일부 실시예들에서, 예컨대 서버(110)는 랜드마크(1170)과 관련된 지점 및 후보 랜드마크(1205)와 관련된 지점 간 거리를 판단한다. 추가적으로, 혹은 대안적으로 서버(110)는 랜드마크(1170)를 나타내는 하나 이상의 지점들에 대한 주변 신호 지문 데이터와 후보 랜드마크(1205)를 나타내는 하나 이상의 지점들에 대한 주변 신호 지문 데이터의 유사도(가령, 타니모토 유사도)를 비교 또는 판단한다. The method of FIG. 2A now proceeds to step 240 of FIG. 2B. In step 240, the server 110 compares the landmark 1170 with the candidate landmark 1205. This comparison can be performed in any suitable manner. In some embodiments, for example, the server 110 determines the point-to-point distance associated with the landmark 1170 and the candidate landmark 1205. Additionally or alternatively, the server 110 may determine the proximity signal fingerprint data for one or more points representing the landmark 1170 and the similarity of the neighbor signal fingerprint data to one or more points representing the candidate landmark 1205 For example, Tanimoto's similarity).

단계 245에서 서버(110)는 랜드마크 및 후보 랜드마크가 충분히 유사한지 여부를 판단한다. 충분히 유사하면, 이들이 같은 랜드마크를 나타낸다고 추정한다. 예를 들어, 서버(110)는 이들 사이의 거리가 소정 문턱치 미만으로 떨어지고/거나 랜드마크 및 후보 랜드마크의 주변 신호 지문 데이터의 유사도가 소정 문턱치를 초과하면 이들이 충분히 유사하다고 판단할 수 있다. 일부 실시예들에서, 충분히 유사하기 위해서는, 랜드마크와 후보 랜드마크가 최소한 동일한 맵의 세그먼트 상에 있고/있거나 해당 세그먼트의 같은 측면 상에 있어야 한다. 서버(110)가 후보 랜드마크 및 랜드마크가 충분히 유사하지 않다고 판단하면, 서버는 후보 랜드마크에 기반하여 랜드마크의 위치/특징을 조정하지 않는다(단계 255). 이제 이 방법은 단계 205 및/또는 단계 230으로 다시 진행한다.In step 245, the server 110 determines whether the landmark and the candidate landmark are sufficiently similar. If they are sufficiently similar, it is assumed that they represent the same landmark. For example, the server 110 may determine that they are sufficiently similar if the distance between them falls below a predetermined threshold and / or the similarity of the surrounding signal fingerprint data of the landmarks and candidate landmarks exceeds a predetermined threshold. In some embodiments, to be sufficiently similar, the landmark and candidate landmarks must be on at least the same segment of the map and / or on the same side of the segment. If the server 110 determines that the candidate landmark and landmark are not sufficiently similar, the server does not adjust the location / feature of the landmark based on the candidate landmark (step 255). The method then proceeds to step 205 and / or step 230 again.

서버(110)가 랜드마크 및 후보 랜드마크가 충분히 유사하다고 판단하면, 서버(110)는 후보 랜드마크의 추정 위치/특징에 기반하여 랜드마크의 위치/특징을 조정한다(단계 255). 이러한 것은 다양한 방식으로 수행될 수 있다. 일부 구현예들에서, 예컨대 서버(110)는 후보 랜드마크에 대한 주변 신호 지문 데이터에 기반하여 랜드마크에 대한 주변 신호 지문 데이터를 조정한다. If the server 110 determines that the landmark and candidate landmark are sufficiently similar, the server 110 adjusts the location / feature of the landmark based on the estimated location / feature of the candidate landmark (step 255). This can be done in a variety of ways. In some implementations, for example, the server 110 adjusts the surrounding signal fingerprint data for the landmark based on the surrounding signal fingerprint data for the candidate landmark.

예를 들어, 간단한 방법은 랜드마크에 대한 새 지문 데이터가 오리지널 랜드마크 및 후보 랜드마크의 신호 세기값들의 평균이 되게 하는 것일 수 있다. 랜드마크의 추정된 물리적 위치 또한, 후보 랜드마크의 추정된 후보 위치에 기반하여 조정될 수 있다, 예컨대 랜드마크 및 오리지널 랜드마크의 xy 좌표들을 평균낼 수 있다. 도 12b는 예컨대, 오리지널 랜드마크(1170) 및 후보 랜드마크(1205)의 위치들 사이에 있는 후보 랜드마크(1210)를 도시한다. For example, a simple method may be to make the new fingerprint data for the landmark an average of the signal strength values of the original landmark and candidate landmark. The estimated physical location of the landmark can also be adjusted based on the estimated candidate location of the candidate landmark, e. G., The x and y coordinates of the landmark and the original landmark can be averaged. 12B shows a candidate landmark 1210, for example, between the positions of the original landmark 1170 and the candidate landmark 1205. [

도 12의 단순화된 예는 하나의 후보 랜드마크만을 보이지만, 다양한 실시예들에서 서버(110)는 여러 궤적 데이터 집합들을 (가능한 경우 여러 장치들로부터) 획득하고 다수의 후보 랜드마크들의 위치들을 판단한다. 즉, 서버는 단계 230 및 235를 여러 차례 수행한다. 그런 다음 서버(110)는 랜드마크를 후보 랜드마크들 각각과 비교하고(즉, 단계 240), 충분히 유사한 후보 랜드마크들을 선택한다(단계 245). 랜드마크의 위치가 선택된 후보 랜드마크들에 기반하여 어떤 적절한 기법을 이용해 조정된다. 예로서, 랜드마크 및 선택된 후보 랜드마크들은 어떤 클러스터링 알고리즘을 사용해 클러스터링될 수 있다. 조정된 랜드마크의 위치/지문 데이터는 클러스터의 중심을 기준으로 할 수 있다. Although the simplified example of Figure 12 shows only one candidate landmark, in various embodiments the server 110 obtains multiple sets of locator data (from multiple devices if possible) and determines the locations of the multiple candidate landmarks . That is, the server performs steps 230 and 235 several times. The server 110 then compares the landmark with each of the candidate landmarks (i.e., step 240) and selects sufficiently similar candidate landmarks (step 245). The location of the landmark is adjusted using some suitable technique based on the selected candidate landmarks. By way of example, landmarks and selected candidate landmarks may be clustered using some clustering algorithm. The location / fingerprint data of the adjusted landmark can be based on the center of the cluster.

랜드마크의 위치, 지문 데이터 또는 특징에 대한 조정은 가령 단계 225와 관련하여 논의된 바와 같이, 데이터를 맵에 추가하거나 조정하는 것을 수반할 수 있다. 맵 상의 랜드마크의 위치/특징이 조정되면, 방법(200)은 단계 205 및/또는 단계 230으로 돌아간다. 즉, 서버(110)는 여기서 추가 궤적 데이터를 수집한다. 다양한 실시예들에서, 궤적 데이터가 사용되어, 맵에 추가되거나 맵과 연관될 수 있는 새 랜드마크들의 위치를 결정할 수 있다(가령, 단계 205-225). 이와 달리, 혹은 추가적으로, 맵 상의 기존 랜드마크들의 위치/특징이 새 궤적 데이터에 기반하여 조정될 수 있다(가령, 단계 230-255). Adjustments to the location, fingerprint data, or characteristics of the landmark may involve adding or adjusting data to the map, e.g., as discussed in connection with step 225. Once the location / feature of the landmark on the map has been adjusted, the method 200 returns to step 205 and / or step 230. That is, the server 110 collects additional trajectory data here. In various embodiments, locus data may be used to determine the location of new landmarks that may be added to or associated with the map (e.g., steps 205-225). Alternatively, or in addition, the location / characteristics of existing landmarks on the map may be adjusted based on the new trajectory data (e.g., steps 230-255).

도 2의 방법(200)과 관련하여 기술된 것과 같이 맵 상의 랜드마크들에 대한 조정 또는 추가는, 맵의 다른 특징을 판단하는데 사용될 수도 있다. 일부 실시예들에서, 예컨대, 새 랜드마크의 위치가 결정되었고/거나 새 랜드마크가 맵에 추가되었으면(가령, 단계 220 및 225), 서버(110)는 길, 통로, 복도 구조들이나 기타 구조들을 그 새 랜드마크에 기반하여 조정한다. 다르게 말하면, 새 랜드마크가 판단 및/또는 추가되었으면, 서버(110)는 복도나 경로 레이아웃의 모양이나 특징을 나타내는데 도움을 주는 하나 이상의 구속요건들을 판단한다. 예를 들어 랜드마크가 맵 상에서 특정 공간을 차지하는 룸이나 상점이라고 알려지는 경우, 서버는 그에 따라 경로 레이아웃(pathway layout), 복도, 통로 및/또는 경로(path)들을 조정함으로써 이들이 그 공간 안으로 지나가거나 그 공간을 포함하지 않도록 한다. The adjustment or addition to the landmarks on the map, as described in connection with the method 200 of FIG. 2, may be used to determine other features of the map. In some embodiments, if the location of a new landmark has been determined and / or a new landmark has been added to the map (e.g., steps 220 and 225), the server 110 may generate a path, aisle, corridor, Based on the new landmark. In other words, if a new landmark has been determined and / or added, the server 110 determines one or more constraining requirements to help shape or characterize the corridor or path layout. For example, if the landmark is known as a room or store that occupies a certain space on the map, the server may adjust the pathway layout, corridor, pathways, and / or paths accordingly, Do not include that space.

도 2a-2b의 방법(200)에 논의된 바와 같이 조정되는 맵들은 다양한 응용예들에 사용될 수 있다. 어떤 방식들에서는 예컨대, 상기 맵은 장치(104)(가령, 모바일 장치, 스마트폰, 태블릿 등)를 가진 사용자의 위치를 확인하는데 사용된다. 즉, 맵(가령 도 4의 맵(400))에 의해 표현된 영역을 방문하는 사용자가 장치(104)를 사용하여 자신의 위치를 결정할 수 있다. 그 위치는 장치가 수집한 궤적 데이터를 이용해 판단될 수 있다. 장치(104)는 서버(110)로 궤적 데이터를 업로드한다. The maps that are adjusted as discussed in the method 200 of Figures 2a-2b can be used in a variety of applications. In some ways, for example, the map is used to identify the location of a user with device 104 (e.g., mobile device, smartphone, tablet, etc.). That is, a user visiting a region represented by a map (e.g., the map 400 of FIG. 4) may use the device 104 to determine its location. The position can be determined using the locus data collected by the device. The device 104 uploads the locus data to the server 110.

다양한 구현예들에서, 서버(110)는 맵 상의 랜드마크들의 위치 및 수신된 데이터를 이용하여, 맵 내에서 사용자와 장치의 위치를 결정하는 것을 돕는다. 서버(110)는 이때, 맵 상에서 사용자의 위치 및/또는 랜드마크들의 상대적 위치를 나타내는 데이터를 장치(104)로 다시 전송한다. 그러면 장치(104)가 그 전송된 데이터에 기반하여 정보를 디스플레이할 수 있다. 일부 구현예들에서, 장치(104)는 상기 전송된 데이터를 이용하여, 맵/영역 내 원하는 목적지로 사용자를 안내하는 안내 정보를 디스플레이 한다. 이와 달리 또는 추가적으로, 장치(104)는 송신된 데이터를 이용하여, 맵 상에 표시되고 도 2a-2b의 방법(200)을 이용하여 판단된 위치를 가지는 하나 또는 다수의 랜드마크들을 방문하는 것을 포함하는 사용자의 맵/영역 이동을 안내한다. In various implementations, the server 110 helps determine the location of users and devices within the map, using the location of the landmarks on the map and the received data. The server 110 then sends back data to the device 104 indicating the location of the user and / or the relative location of the landmarks on the map. The device 104 may then display information based on the transmitted data. In some implementations, the device 104 uses the transmitted data to display guidance information to guide the user to a desired destination in the map / area. Alternatively or additionally, the device 104 may include using the transmitted data to visit one or more landmarks having a location displayed on the map and determined using the method 200 of Figures 2a-2b To guide the user's map / area movement.

다른 응용예에서, 서버(110)는 상술한 바와 같이 사용자들의 이동을 실시간으로 추적할 수 있다. 특히 서버(110)는 획득된 궤적 데이터를 이용하여 맵 상의 트래픽 패턴들을 판단한다. 예로서 서버(110)는 사용자들이 특정 랜드마크들을 얼마나 주자 방문 및/또는 지나가는지를 판단할 수 있다. 또 다른 실시예에서, 서버(110)는 한 사람 이상의 사용자들이 특정 랜드마크에서 얼마나 길게 머무는지를 판단한다. 이러한 판단들에 기반하여, 서버(110)는 권장사항들(가령, 특정 랜드마크까지 가장 빠른 루트, 방문할 가치가 있는 가장 인기있는 상점들 등)을 생성한다. 서버(110)는 그런 다음 그 권장사항들을 하나 이상의 장치로 전송하여 그 장치들에서 디스플레이되게 한다.In another application, the server 110 may track movement of users in real time as described above. In particular, the server 110 determines traffic patterns on the map using the obtained sign data. By way of example, the server 110 may determine how long a user visits and / or passes certain landmarks. In another embodiment, the server 110 determines how long one or more users stay in a particular landmark. Based on these judgments, the server 110 creates recommendations (e.g., the fastest route to a particular landmark, the most popular shops worth visiting, etc.). The server 110 then sends the recommendations to one or more devices to be displayed on the devices.

도 2a-2b의 방법(200)의 단계들은 경로 레이아웃을 조정하지 않고 수행될 수 있다. 즉, 다양한 실시예들에서, 도 2a-2b의 방법(200)을 이용하여 맵 상의 랜드마크의 특징(가령, 주변 신호 지문 데이터, 위치 등)을 조정하거나, (단계 220 및 225를 사용하여) 새 랜드마크를 맵에 추가하지만, 맵의 다른 특징은 그와 달리 그대로 유지하는 것이 바람직하다. 일부 방식들에서, 서버(110)가 맵 상의 랜드마크의 위치를 결정할 때(가령, 단계 220), 맵 상의 경로 레이아웃에 대해서는 어떤 변화도 만들어지지 않는다. 이러한 맥락으로 다양한 실시예들에서, 경로 레이아웃은 교차점들(즉, 둘 이상의 경로들이 만나는 지점들) 사이의 (일반적으로 직진) 경로들(가령, 통로, 복도, 루트 등)을 나타내는 맵의 일부나 전체 부분들을 일컫는다. 다양한 구현예들에서, 맵의 경로 레이아웃은 그대로 유지되며 단계 215의 매칭 동작, 단계 205 및/또는 230에서 획득된 궤적 데이터, 및/또는 방법(200)의 어떤 다른 단계들에 따라 변화되지 않는다. 보다 구체적으로, 맵 상에서 (가령, 도 4의 맵(400)과 관련하여 논의된 것과 같이) 경로들, 교차점들 및/또는 세그먼트들의 위치들은 상술한 동작들/단계들에 따라 조정되지 않는다. The steps of the method 200 of Figures 2a-2b may be performed without adjusting the path layout. That is, in various embodiments, the method 200 of FIGS. 2A-2B may be used to adjust features (e.g., peripheral signal fingerprint data, location, etc.) It is desirable to add a new landmark to the map, but keep the other features of the map intact. In some ways, when the server 110 determines the location of the landmark on the map (e.g., step 220), no changes are made to the path layout on the map. In this context, in various embodiments, the path layout may be part of a map that represents (generally straight) paths (e.g., aisle, corridor, route, etc.) between intersections (i.e., the points where two or more paths meet) All parts. In various implementations, the path layout of the map remains intact and remains unchanged according to the matching operation of step 215, the locus data obtained at step 205 and / or 230, and / or some other steps of the method 200. More specifically, the locations of paths, intersections, and / or segments on the map (e.g., as discussed in connection with map 400 of FIG. 4) are not adjusted in accordance with the operations / steps described above.

다르게 표현하면, 도 2a 및 2b의 방법(200)의 다양한 구현예들은 점진적 프로세스라고 간주될 수 있다. 즉, 방법(200)을 반복하여 맵 상의 랜드마크 위치들이 판단되고/되거나 랜드마크들이 맵에 추가된다. 따라서, 다양한 구현예들에서, 랜드마크들은 맵 상에서 그 위치들을 약간 조정할 수 있고, 아니면 새 랜드마크들이 추가될 수 있지만, 코너들/교차점들 사이의 노드들, 세그먼트들, 경로 레이아웃, 통로들, 복도들, 경로들 및/또는 그 관련 파라미터들(가령, 주변 신호 지문 데이터)은 변하지 않는다. 어느 시점에, 그러한 특징들 또한 업데이트될 수 있다, 예컨대 경로들의 지문 데이터나 정렬이 조정될 수 있다. 그런 경우, 새 궤적 데이터를 이용하여 랜드마크들을 조정된 맵 및 경로 레이아웃/경로들에 추가하기 위해 방법(200)이 반복될 수 있다.In other words, various implementations of the method 200 of FIGS. 2A and 2B may be considered an incremental process. That is, the method 200 is repeated to determine landmark locations on the map and / or landmarks are added to the map. Thus, in various implementations, the landmarks may adjust their positions slightly on the map, or new landmarks may be added, but the nodes, segments, path layouts, The corridors, paths and / or their associated parameters (e.g., surrounding signal fingerprint data) do not change. At some point, such features may also be updated, e.g., the fingerprint data or alignment of the paths may be adjusted. In such a case, the method 200 may be repeated to add landmarks to the adjusted map and path layout / paths using the new trajectory data.

이어서 도 13을 참조하면, 본 발명의 특정 실시예에 따른 서버(1300)이 기술될 것이다. 도 1의 서버(110)이거나 이 명세서에 기술된 어떤 다른 서버일 수 있는 서버(1300)는 하나 이상의 프로세서들을 가지는 프로세서 유닛(1005), 저장 유닛(1310), 네트워크 인터페이스 유닛(1315), 맵 생성 모듈(1320), 및 랜드마크 결정 모듈(1325)를 포함한다. 서버(1300)는 궤적 데이터를 처리 및 분석하고/하거나 맵 상에서 랜드마크의 위치를 결정하기 적합한 어떤 컴퓨팅 장치일 수 있다.Referring now to FIG. 13, a server 1300 according to a specific embodiment of the present invention will be described. A server 1300, which may be server 110 of FIG. 1 or any other server described herein, includes a processor unit 1005 having one or more processors, a storage unit 1310, a network interface unit 1315, A module 1320, and a landmark determination module 1325. The server 1300 may be any computing device suitable for processing and analyzing sign data and / or determining the location of the landmark on the map.

저장 유닛(1310)은 데이터나 실행가능 컴퓨터 코드를 저장하기 적합한 어떤 하드웨어나 소프트웨어이다. 저장 유닛(1310)은 하드 드라이브, 플래시 드라이브, 비휘발성 메모리, 휘발성 메모리, 또는 다른 어떤 타입의 컴퓨터 판독가능 저장 매체를 포함할 수 있으나 그에 국한되지 않는다. 이 출원서에 기술된(가령, 도 2a-2b, 6, 8 및 10) 서버에 대한 동작이나 방법이 실행가능 컴퓨터 코드나 명령어들의 형태로 저장 유닛(1310) 안에 저장될 수 있다. 프로세서 유닛(1305)에 의한 컴퓨터 코드나 명령어들의 실행은 서버(1300)나 서버(1300)와 연결된 적절한 장치가 상술한 동작들이나 방법들 중 어느 하나를 수행하게 한다. Storage unit 1310 is any hardware or software suitable for storing data or executable computer code. Storage unit 1310 may include, but is not limited to, a hard drive, flash drive, non-volatile memory, volatile memory, or any other type of computer readable storage medium. Operations or methods for a server described in this application (e.g., FIGS. 2A-2B, 6, 8, and 10) may be stored in storage unit 1310 in the form of executable computer code or instructions. Execution of the computer code or instructions by the processor unit 1305 causes the appropriate device associated with the server 1300 or server 1300 to perform any of the operations or methods described above.

네트워크 인터페이스 유닛(1315)은 서버(1300)가 외부 장치들과 통신할 수 있게 하기 적합한 어떤 하드웨어나 소프트웨어를 포함한다. 다양한 실시예들에서, 예컨대 서버(1300)는 (도 2a의 단계 205에 논의된 바와 같이) 네트워크 인터페이스 유닛(1315)을 이용하여 하나 이상의 장치들(104)로부터 네트워크(108)를 통해 궤적 데이터를 수신한다. 서버(1300)는 (도 2a의 단계(210)에서 논의된 바와 같이) 외부 장치나 다른 서버로부터 네트워크 인터페이스 유닛(1315)을 통해 맵을 획득할 수도 있다.서버(1300)가 맵 상의 랜드마크를 판단했으면(가령, 도 2a의 단계 220), 다양한 구현예들에서 네트워크 인터페이스 유닛(1315)은 하나 이상의 장치들(104)로 위치 및/또는 맵을 나타내는 데이터를 전송하도록 구성되어, 그 장치들의 사용자가 그 정보를 보거나 이용할 수 있도록 한다. 네트워크 인터페이스 유닛(1315)은 어떤 적절한 네트워크(가령, LAN, 인터넷 등)이나 통신 프로토콜(가령, 블루투스, 와이파이, NFC, IEEE 802.15.4, IEEE 802.11 등)을 이용하여 데이터를 송수신하도록 구성된다. The network interface unit 1315 includes any hardware or software suitable for allowing the server 1300 to communicate with external devices. In various embodiments, for example, the server 1300 may use the network interface unit 1315 (as discussed in step 205 of FIG. 2A) to obtain locus data from the one or more devices 104 over the network 108 . The server 1300 may obtain the map from an external device or other server via the network interface unit 1315 (as discussed in step 210 of Figure 2A). The server 1300 may retrieve the landmark (E.g., step 220 of FIG. 2A), the network interface unit 1315 in various implementations is configured to transmit data indicative of a location and / or map to the one or more devices 104, To view or use the information. The network interface unit 1315 is configured to transmit and receive data using any suitable network (e.g., LAN, Internet, etc.) or communication protocol (e.g., Bluetooth, WiFi, NFC, IEEE 802.15.4, IEEE 802.11, etc.).

맵 생성 모듈(1320)은 (가령 도 2a의 단계 210과 관련하여 기술된 바와 같이) 맵의 획득 및/또는 생성과 관련된 동작들을 수행하는데 사용되는 어떤 하드웨어나 소프트웨어이다. 일부 실시예에서, 맵 생성 모듈(1320)은 하나 이상의 장치들(104)로부터 수신된 궤적 데이터를 이용하여 맵을 생성하도록 구성된다. The map generation module 1320 is any hardware or software used to perform operations related to acquisition and / or generation of a map (e.g., as described in connection with step 210 of FIG. 2a). In some embodiments, the map generation module 1320 is configured to generate a map using the locus data received from the one or more devices 104.

일부 구현예들에서, 적어도 처음에는 랜드마크의 위치를 나타내지 않는 궤적 데이터만 사용하여 맵을 생성한다. 그에 따라 맵 생성 모듈(1320)은 이 기준을 만족시키는 궤적 데이터를 선택하고, 선택된 궤적 데이터만을 사용하여 맵을 생성하도록 구성된다. In some implementations, the map is generated using only locus data that does not at least initially indicate the location of the landmark. Accordingly, the map generation module 1320 selects the sign data satisfying this criterion, and generates the map using only the selected sign data.

다른 실시예들에서는 그러나, 랜드마크 데이터가 있는 궤적 데이터를 포함하는 다양한 유형의 궤적 데이터가 사용되어 맵을 생성한다. 맵 생성 모듈(1320)은 본 출원서에 (가령, 도 2a의 단계 210) 기술된 어떤 기법이나 소스들을 이용하여 맵을 생성하도록 구성된다. 일부 구현예들에서, 맵 생성 모듈(1320)은 노드들 및 세그먼트들을 가진 벡터 맵 및/또는 맵 데이터 구조를 생성하도록 구성된다(예: 도 4의 맵(400)). 이와 달리, 혹은 추가적으로 맵 생성 모듈(1320)은 맵의 래스터/비트맵 이미지에 기반하여 맵을 생성하도록 구성된다. In other embodiments, however, various types of locus data including locus data with landmark data are used to generate the map. The map generation module 1320 is configured to generate a map using any technique or sources described in this application (e.g., step 210 of FIG. 2A). In some implementations, map generation module 1320 is configured to generate a vector map and / or map data structure with nodes and segments (e.g., map 400 in FIG. 4). Alternatively, or additionally, the map generation module 1320 is configured to generate a map based on a raster / bitmap image of the map.

랜드마크 결정 모듈(1325)은 맵 상의 하나 이상의 랜드마크들의 위치 판단과 관련된 동작들을 수행하는데 사용되는 어떤 하드웨어 또는 소프트웨어이다. 랜드마크 결정 모듈(1325)은 도 2a-2b, 6, 8, 및 10의 방법들에 기술된 동작들 중 어느 하나를 수행하도록 구성된다. 예로서, 랜드마크 결정 모듈(1325)은 장치로부터 수신된 궤적 데이터에 기반하여 랜드마크 위치를 결정하고; 궤적 데이터의 적어도 일부를 맵의 적어도 일부에 매칭하고; 그 매칭에 따라 랜드마크의 위치를 결정하도록 구성된다. 이에 더하여, 상기 모듈은 (가령, 도 2a 및 2b의 단계들 230-255과 관련하여 논의된 바와 같이) 추가 궤적 데이터에 기반하여 랜드마크의 위치를 조정하도록 구성된다. Landmark determination module 1325 is any hardware or software used to perform operations related to determining the position of one or more landmarks on the map. The landmark determination module 1325 is configured to perform any of the operations described in the methods of Figures 2a-2b, 6, 8, and 10. By way of example, the landmark determination module 1325 determines the landmark position based on the locus data received from the device; Matching at least a portion of the locus data to at least a portion of the map; And determine the position of the landmark in accordance with the matching. In addition, the module is configured to adjust the position of the landmark based on the additional trajectory data (e.g., as discussed in connection with steps 230-255 of FIGS. 2A and 2B).

이어서 도 14을 참조하면, 본 발명의 특정 실시예에 따른 장치(1400)가 기술될 것이다. 도 1의 장치(104)일 수 있는 장치(1400)는 하나 이상의 프로세서들을 가지는 프로세서 유닛(1405), 저장 유닛(1410), 디스플레이 유닛(1420), 네트워크 인터페이스 유닛(1415), 센서 유닛(1425) 및 궤적 데이터 수집 유닛(1430)을 포함한다. 상기 장치는 서버(110)와 통신하고 궤적 데이터를 획득하도록 구성되는 임의의 컴퓨팅 장치일 수 있다. 다양한 실시예들에서 장치(1400)는 모바일 장치, 셀 폰, 랩탑, 컴퓨터 태블릿, 스마트 안경, 스마트 와치 또는 다른 다른 적절한 컴퓨팅 장치이다. Referring next to Figure 14, an apparatus 1400 according to a specific embodiment of the present invention will be described. The device 1400, which may be the device 104 of Figure 1, includes a processor unit 1405 having one or more processors, a storage unit 1410, a display unit 1420, a network interface unit 1415, a sensor unit 1425, And a locus data collecting unit 1430. The device may be any computing device that is configured to communicate with server 110 and obtain trajectory data. In various embodiments, the device 1400 is a mobile device, a cell phone, a laptop, a computer tablet, smart glasses, a SmartWatch, or any other suitable computing device.

저장 유닛(1410)은 데이터나 실행가능 컴퓨터 코드를 저장하기 적합한 어떤 하드웨어나 소프트웨어이다. 저장 유닛(1010)은 하드 드라이브, 플래시 드라이브, 비휘발성 메모리, 휘발성 메모리, 또는 다른 어떤 타입의 컴퓨터 판독가능 저장 매체를 포함할 수 있으나 그에 국한되지 않는다. 장치에 의해 수행될 수 있는 어떤 동작이나 방법(가령, 방법(200), 도 2a-2b의 단계들 205 및/또는 210)이 실행가능 컴퓨터 코드나 명령어들의 형식으로 저장 유닛(1010) 안에 저장될 수 있다. 프로세서 유닛(1005)에 의한 컴퓨터 코드나 명령어들의 실행은 장치(1400)가 상술한 동작들이나 방법들 중 어느 하나를 수행하게 한다. Storage unit 1410 is any hardware or software suitable for storing data or executable computer code. Storage unit 1010 may include, but is not limited to, a hard drive, flash drive, non-volatile memory, volatile memory, or any other type of computer-readable storage medium. (E.g., method 200, steps 205 and / or 210 of FIGS. 2A-2B) that may be performed by a device are stored in storage unit 1010 in the form of executable computer code or instructions . Execution of computer code or instructions by the processor unit 1005 causes the device 1400 to perform any of the operations or methods described above.

네트워크 인터페이스 유닛(1415)은 장치(1400)가 외부 장치들과 통신할 수 있게 하기 적합한 어떤 하드웨어나 소프트웨어를 포함한다. 다양한 실시예들에서, (도 2a의 단계들 205-215에 기재된 바와 같이) 예컨대 장치(1400)는 궤적 데이터를 획득하고, 네트워크 인터페이스 유닛(1415)이 궤적데이터를 네트워크를 통해 서버(110)로 전송하도록 구성된다.네트워크 인터페이스 유닛(1415)은 또한, 서버(110)로부터 맵 및 랜드마크 관련 정보를 수신하도록 구성된다. 네트워크 인터페이스 유닛(1415)은 어떤 적절한 네트워크(가령, LAN, 인터넷 등)이나 통신 프로토콜(가령, 블루투스, 와이파이, NFC, IEEE 802.15.4, IEEE 802.11 등)을 이용하여 데이터를 송수신하도록 구성된다. The network interface unit 1415 includes any hardware or software suitable for allowing the device 1400 to communicate with external devices. In various embodiments, the device 1400, for example, obtains sign data (as described in steps 205-215 of FIG. 2a), and the network interface unit 1415 sends the sign data to the server 110 The network interface unit 1415 is also configured to receive map and landmark related information from the server 110. [ The network interface unit 1415 is configured to transmit and receive data using any suitable network (e.g., LAN, Internet, etc.) or communication protocol (e.g., Bluetooth, WiFi, NFC, IEEE 802.15.4, IEEE 802.11, etc.).

디스플레이 유닛(1420)은 장치에서 정보를 디스플레이하기 적합한 어떤 소프트웨어의 하드웨어를 포함한다. 디스플레이 유닛(1420)은 어떤 디스플레이 기술, 예컨대 터치 감응성 (용량성) 스크린, 전자 잉크(e-ink) 디스플레이, LCD 또는 OLED 디스플레이 또는 어떤 다른 적절한 디스플레이 기술을 포함할 수 있다. 일부 실시예들에서, 장치(1400)는 서버(110)로부터 맵 및 랜드마크 정보를 수신한다. (서버(110)는 예컨대 도 2a의 단계들 205-225에서 기재된 바와 같이 이 정보를 판단한다). 디스플레이 유닛(1415)은 수신된 정보에 기반하여 정보, 이미지, 맵, 루트 및/또는 안내 정보를 디스플레이하도록 구성된다. Display unit 1420 includes any piece of software hardware suitable for displaying information in the device. Display unit 1420 may include any display technology, such as a touch sensitive (capacitive) screen, an electronic ink (e-ink) display, an LCD or OLED display or any other suitable display technology. In some embodiments, device 1400 receives map and landmark information from server 110. (The server 110 determines this information, e.g., as described in steps 205-225 of FIG. 2A). The display unit 1415 is configured to display information, images, maps, routes, and / or guidance information based on the received information.

센서 유닛(1425)은 주변 신호들이나 기타 환경적 파라미터들을 검출 및 측정하기 적합한 어떤 센서(들), 하드웨어 또는 소프트웨어를 포함한다. 그러한 센서들은 RF 신호(가령, 와이파이, 블루투스 등)를 수신하도록 구성된 하나 이상의 안테나, 광 센서, 모션 센서, 가속계, 자이로스코프, 임의의 주변 신호를 검출하기 위한 센서 등을 포함할 수 있으나 그에 국한되지 않는다. 다양한 실시예들에서, 장치(1400)는 센서 유닛(1425)에 의해 획득된 데이터를 이용하여, 가령 도 2a의 단계 205와 관련하여 기술된 것과 같은 궤적 데이터를 획득한다. Sensor unit 1425 includes any sensor (s), hardware or software suitable for detecting and measuring ambient signals or other environmental parameters. Such sensors may include, but are not limited to, one or more antennas configured to receive RF signals (e.g., Wi-Fi, Bluetooth, etc.), optical sensors, motion sensors, accelerometers, gyroscopes, Do not. In various embodiments, the apparatus 1400 uses the data obtained by the sensor unit 1425 to obtain the locus data, e.g., as described in connection with step 205 of FIG. 2A.

궤적 데이터 수집 유닛(1430)은 궤적 데이터를 획득하도록 구성된 어떤 소프트웨어나 하드웨어이다. 일부 실시예들에서, 궤적 데이터 수집 유닛은 센서 유닛(1425)을 이용하여 도 2a 및 도 3의 단계 205에 기술된 것과 같이 궤적 데이터를 수집하도록 구성된다. The locus data collection unit 1430 is any software or hardware configured to obtain locus data. In some embodiments, the trajectory data acquisition unit is configured to use the sensor unit 1425 to acquire the trajectory data as described in step 205 of FIGS. 2A and 3B.

본 출원은 궤적 데이터를 맵과 매칭시키는 것에 관한 것이다. 그러한 매칭은 어떤 알려진 기법, 이 명세서에 기재된 어떤 기법 및/또는 상술한 공동 양수인의 특허 출원들에 기술된 어떤 기법을 이용하여 다양한 방식으로 수행될 수 있다. 다양한 실시예들에서, 이 말은 궤적 데이터의 적어도 일부가 맵의 적어도 일부와 비교된다는 것을 의미한다. 그러한 비교는 여러 형식들을 취할 수 있다. 일부 구현예들에서, 상기 비교는 공간적이거나 그래픽적인 비교를 수반한다. 예를 들어 일부 실시예들에서 궤적 데이터(trajectory data)는 물리적 경로(physical path)나 경로 레이아웃(pathway layout)을 나타낸다. 이 경로의 모양 및/또는 윤곽은 맵에 의해 나타내는 물리적 경로의 모양 및/또는 윤곽과 비교된다. 경로 (또는 그 일부)의 모양 및/또는 윤곽이 충분히 유사하다고 확인되면, 매칭이 확인된다. The present application relates to matching sign data with maps. Such matching may be performed in a variety of ways using any known technique, any technique described herein, and / or any technique described in the co-pending patent applications cited above. In various embodiments, this means that at least a portion of the locus data is compared to at least a portion of the map. Such comparisons can take many forms. In some implementations, the comparison involves spatial or graphical comparisons. For example, in some embodiments, the trajectory data represents a physical path or pathway layout. The shape and / or contour of this path is compared to the shape and / or outline of the physical path represented by the map. If the shape and / or outline of the path (or portion thereof) is found to be sufficiently similar, matching is verified.

추가적으로나 대안적으로, 상기 비교는 데이터 비교를 수반할 수 있다. 예를 들어, 궤적 데이터는 (가령 도 3의 궤적 데이터(300)와 관련하여 기술된 바와 같이) 여러 지점들을 포함할 수 있다. 각각의 지점은 물리적 위치를 나타낸다. 각각의 지점은 또한, 장치가 그러한 물리적 위치에 있었을 때 장치가 획득했던 주변 신호 지문 데이터를 포함한다. 맵 데이터는 (가령 도 4의 맵(400)과 관련하여 기술된 바와 같이) 동일하거나 유사한 특징들을 가진 여러 지점들을 포함하거나 나타낼 수 있다. 따라서, 다양한 실시예들에서, 매칭은 궤적 데이터 내 다양한 지점들의 주변 신호 지문 데이터를 맵 상의 다양한 지점들의 주변 신호 지문 데이터와 비교하는 것을 수반한다. 충분한 수의 지점들이 충분히 유사한 경우(가령, 산출된 타니모토 유사도가 특정 문턱치를 초과하는 경우) 매칭이 확인된다.Additionally or alternatively, the comparison may involve data comparison. For example, the locus data may include multiple points (e.g., as described in connection with the locus data 300 of FIG. 3). Each point represents a physical location. Each point also includes peripheral signal fingerprint data that the device has acquired when the device was in such a physical location. The map data may include or represent multiple points having the same or similar characteristics (e.g., as described in connection with the map 400 of FIG. 4). Thus, in various embodiments, matching involves comparing peripheral signal fingerprint data of various points in the locus data to peripheral signal fingerprint data of various points on the map. If a sufficient number of points are sufficiently similar (e.g., if the calculated Tanimoto similarity exceeds a certain threshold) then matching is verified.

매칭은 또한 공간 및 데이터 모두를 기반으로 하는 비교 양상을 포함할 수 있다. 간단한 예를 사용하기 위해, 궤적 데이터에는 장치의 순차적이고 연속적인 이동을 나타내는 지점들의 선이, 그 지점들과 연관된 타임스탬프들에 의해 지시된 바와 같이, 존재할 수 있다. 그 지점들은 특정한 공간적 경로/모양, 가령 직선이나 곡선을 나타낸다. 이러한 지점들의 선은, 역시 순차적인 위치들 및/또는 특정한 공간적 경로를 나타내는 맵 데이터에서 지시된 지점들의 또 다른 선과 비교된다. 아래의 기준이 만족되면 매칭이 확인될 수 있다: (1) 궤적 데이터 및 맵의 지점들의 선들이 동일한 물리적 위치들에 해당하는 것으로 보여짐; (2) 궤적 데이터 및 맵의 지점들의 선들이 통로, 직선 복도 등에서의 커브와 같은 동일한 모양, 거리 및/또는 정도를 나타낸다고 보여짐; (3) 궤적 데이터 내 선 안의 각각의 지점과 관련된 주변 신호 지문 데이터가 맵 내 해당 지점과 관련된 주변 신호 지문 데이터와 충분히 유사한 것으로 확인됨. 일부 구현예들에서, 상기 기준들 중 하나 이상이 만족되지 않더라도, 혹은 특정 기준이 전부가 아닌 부분적으로나마 만족된다면 매칭이 성립될 수 있다. 상기 기준은 다만 예시적인 것으로 비한정적인 것이라 이해되어야 하며, 매칭 프로세스는 어떤 적절한 기법을 이용하여 수행될 수 있다.The matching can also include comparison aspects based on both space and data. To use the simple example, the locus data may include a line of points representing the sequential and continuous movement of the device, as indicated by the time stamps associated with those points. The points represent specific spatial paths / shapes, such as straight lines or curves. The lines of these points are also compared to another line of points indicated in the map data, which also indicate sequential positions and / or specific spatial paths. Matching can be confirmed if the following criteria are met: (1) lines of points of the locus data and map are shown to correspond to the same physical locations; (2) the lines of the locus data and the points of the map are shown to represent the same shape, distance and / or degree, such as curves in aisles, straight corridors, etc.; (3) It is confirmed that the surrounding signal fingerprint data related to each point in the line in the locus data is sufficiently similar to the surrounding signal fingerprint data related to the corresponding point in the map. In some implementations, a match may be established if one or more of the criteria are not satisfied, or if a particular criterion is not all but partially satisfactory. The criteria are to be understood as being exemplary only and non-limiting, and the matching process may be performed using any suitable technique.

본 출원은 또한, 종종 지점들 및 클러스터 사이의 거리에 대한 판단에 관한 것이다. 이 동작들 중 어느 하나는 상술한 공동 양수인의 특허 출원들에 기재된 임의의 기법이나 어떤 알려진 기법을 이용하여 수행될 수 있다. The present application also relates to the determination of the distances between points and clusters often. Either of these operations may be performed using any technique or any known technique described in the above-cited copending patent applications.

본 발명의 일부 실시예들만이 구체적으로 기술되었지만, 본 발명이 그 사상과 범주에서 벗어나지 않고 여러 다른 형식으로 구현될 수 있다는 것을 예상할 수 있을 것이다. 예를 들어, 본 출원서와 도면들은 특정 동작들을 수행하는 다양한 방법들을 설명한다. 일부 실시예들에서, 그러한 동작들/단계들 중 하나 이상은 변형되거나 순서를 바꾸거나 삭제될 수 있다는 것을 예상할 수 있을 것이다. 또한, 도 1, 13 및 14와 같은 일부 도면은 다양한 구성요소들을 포함하는 장치들/시스템들을 나타낸다. 일부 실시예들에서 그러한 구성요소들 중 하나 이상은 서로 병합될 수 있다는 것을 알아야 한다. While only certain embodiments of the invention have been described in detail, it will be appreciated that the invention may be embodied in many other forms without departing from its spirit or scope. For example, the application and drawings describe various methods of performing particular operations. In some embodiments, one or more of such operations / steps may be expected to be modified, reordered, or deleted. Further, some drawings such as FIGS. 1, 13, and 14 illustrate devices / systems that include various components. It should be appreciated that in some embodiments, one or more of such components may be merged with one another.

또 다른 실시예들에서, 하나 이상의 구성요소들이 더 많은 수의 구성요소들로 분리될 수도 있다. 한 구성요소의 특징이 다른 구성요소로 전달되고/거나 적절히 변형될 수 있다. 각각의 장치는 해당하는 도면에 도시된 것 이상의 추가 구성요소들을 가질 수 있다. 특정 객체의 일부로서 보여진 특정 모듈들이나 장치들이 가령 유무선 접속을 통해 상기 객체와 연결될 수 있다. 예를 들어, 다양한 구현예들에서, 도 2a-2b의 방법(200)에 기술된 동작들 중 전부나 거의 전부가 서버(가령, 서버(110))에 의해 수행된다. 그러나, 또 다른 실시예들에서, 이 동작들 중 어느 하나는 장치(104)나 다른 시스템이나 서버와 연결된 장치에 의해 수행될 수 있다. 따라서 본 실시예들은 예시적인 것일 뿐 한정하는 것으로 간주되어서는 아니되며, 본 발명이 명세서에 주어진 세부사항들에 국한되어서는 아니된다.In still other embodiments, one or more of the components may be separated into a greater number of components. The characteristics of one component may be transferred to the other component and / or may be modified accordingly. Each device may have additional components beyond those shown in the corresponding figures. Certain modules or devices shown as part of a particular object may be associated with the object, for example, via a wired or wireless connection. For example, in various implementations, all or almost all of the operations described in method 200 of Figures 2A-2B are performed by a server (e.g., server 110). However, in still other embodiments, any of these operations may be performed by the device 104, or by a device connected to another system or server. Accordingly, the present embodiments are to be considered as illustrative and not restrictive, and the invention is not to be limited to the details given in the specification.

Claims (15)

한 영역에서의 장치의 이동을 나타내는 제1 궤적 데이터(trajectory data)를 획득하되, 상기 제1궤적 데이터는 제1랜드마크를 표시하는 단계;
상기 영역의 맵을 획득하되, 상기 맵은 경로 레이아웃(pathway layout)을 표시하는 단계;
상기 제1 궤적 데이터의 적어도 일부를 상기 경로 레이아웃의 적어도 일부에 매칭하는 단계; 및
상기 매칭에 기반하여, 상기 경로 레이아웃의 변경 없이 상기 맵 내에서 상기 제1 랜드마크의 위치를 결정하는 단계를 포함하는 방법.
Acquiring first trajectory data representing movement of the device in one area, wherein the first trajectory data indicates a first landmark;
Obtaining a map of the area, the map representing a pathway layout;
Matching at least a portion of the first locus data to at least a portion of the path layout; And
And based on the matching, determining the position of the first landmark within the map without changing the path layout.
제1항에 있어서,
제2랜드마크를 나타내는 제2 궤적 데이터를 획득하는 단계;
거리 및 주변 신호 지문 데이터(ambient signal fingerprint data)에 기반하여 상기 제1 및 제2랜드마크들을 비교하는 단계; 및
상기 비교에 기반하여, 상기 맵 상에서 상기 제1랜드마크의 위치를 조정하는 단계를 더 포함하는 방법.
The method according to claim 1,
Obtaining second locus data representing a second landmark;
Comparing the first and second landmarks based on distance and ambient signal fingerprint data; And
And based on the comparison, adjusting the position of the first landmark on the map.
제1항에 있어서, 랜드마크는 상기 맵 상의 한 지점 및 상기 맵 상의 한 영역 중 하나인 방법.2. The method of claim 1, wherein the landmark is one of the areas on the map and the area on the map. 제1항에 있어서, 상기 제1랜드마크는 도어, 룸, 계단, 상점, 및 엘리베이터 중 하나인 방법.The method of claim 1, wherein the first landmark is one of a door, a room, a staircase, a shop, and an elevator. 제1항에 있어서,
상기 장치가 소정 빈도 이상으로 방향을 바꾸었거나 소정 속도 미만으로이동했다는 것을 나타내는 상기 제1 궤적 데이터의 일부를 식별하는 단계; 및
상기 식별된 제1 궤적 데이터의 일부가 상기 제1랜드마크에 해당한다고 판단하는 단계를 더 포함하는 방법.
The method according to claim 1,
Identifying a portion of the first locus data indicating that the device has changed direction beyond a predetermined frequency or has moved below a predetermined speed; And
Further comprising determining that a portion of the identified first locus data corresponds to the first landmark.
제1항에 있어서, 상기 맵은 제1맵이고, 상기 제1맵은 상기 매칭 전에 어떠한 랜드마크들도 나타내지 않으며, 상기 매칭 후 상기 제1랜드마크가 상기 제1맵에 추가되어 제2맵을 형성하는 방법.2. The method of claim 1, wherein the map is a first map, the first map does not show any landmarks before the matching, and after the matching, the first landmark is added to the first map, Lt; / RTI > 제1항에 있어서, 상기 매칭에 따라 상기 경로 레이아웃을 조정하지 않는 단계를 더 포함하되, 상기 경로 레이아웃은 경로들 및 교차로(intersection)들의 위치를 나타내는 상기 맵의 일부인 방법.2. The method of claim 1, further comprising not adjusting the path layout according to the matching, wherein the path layout is part of the map indicating paths and locations of intersections. 제1항에 있어서,
상기 제1 궤적 데이터에서 하나 이상의 세그먼트들을 선택하되, 상기 하나 이상의 세그먼트들은 상기 제1 궤적 데이터의 전체가 아닌 일부를 나타내며, 상기 하나 이상의 세그먼트들은 상기 제1 궤적 데이터 내 상기 제1랜드마크 위치의 소정 거리 안에 있는 단계; 및
상기 하나 이상의 세그먼트들을 상기 경로 레이아웃의 적어도 일부에 매칭하는 단계를 더 포함하는 방법.
The method according to claim 1,
Selecting one or more segments from the first trajectory data, wherein the one or more segments represent a portion of the first trajectory data that is not all of the first trajectory data, Steps in the street; And
Further comprising matching the one or more segments to at least a portion of the path layout.
제1항에 있어서,
상기 제1 궤적 데이터는 상기 제1 궤적 데이터의 시작점에서 상기 제1랜드마크의 시작점까지 이어지는 지점들의 제1 시퀀스, 및 상기 제1 궤적 데이터의 종점에서 상기 제1 랜드마크의 종점까지 이어지는 지점들의 제2 시퀀스를 포함하고,
상기 방법은 상기 제1 및 제2시퀀스들을 상기 경로 레이아웃의 적어도 일부와 매칭하는 단계를 포함하는 방법.
The method according to claim 1,
Wherein the first locus data includes a first sequence of points extending from a start point of the first locus data to a start point of the first landmark and a second sequence of points extending from an end point of the first locus data to an end point of the first landmark 2 < / RTI > sequence,
Wherein the method comprises matching the first and second sequences with at least a portion of the path layout.
제1항에 있어서, 상기 제1 궤적 데이터는 복수의 지점들을 포함하며, 각각의 지점은 타임스탬프 및 주변 신호 지문 데이터와 연관되어 있는 방법.2. The method of claim 1, wherein the first locus data comprises a plurality of points, each point being associated with a time stamp and peripheral signal fingerprint data. 유형의 형태로 구현된 실행가능 컴퓨터 코드를 포함하는 컴퓨터 판독가능 저장 매체로서, 상기 컴퓨터 판독가능 매체는
한 영역에서의 장치의 이동을 나타내고 제1 랜드마크를 표시하는 제1 궤적 데이터를 획득하도록 동작가능한 실행가능 컴퓨터 코드;
경로 레이아웃을 표시하는 상기 영역의 맵을 획득하도록 동작가능한 실행가능 컴퓨터 코드;
상기 제1 궤적 데이터의 적어도 일부를 상기 경로 레이아웃의 적어도 일부에 매칭하도록 동작가능한 실행가능 컴퓨터 코드; 및
상기 매칭에 기반하여, 상기 경로 레이아웃의 변경 없이 상기 맵 내에서 상기 제1 랜드마크의 위치를 결정하도록 동작가능한 실행가능 컴퓨터 코드를 포함하는 컴퓨터 판독가능 저장 매체.
A computer readable storage medium comprising executable computer code embodied in the form of a computer readable medium,
Executable computer code operable to obtain first trajectory data indicative of movement of the device in a region and indicative of a first landmark;
Executable computer code operable to obtain a map of said area indicative of a path layout;
Executable computer code operable to match at least a portion of the first locus data to at least a portion of the path layout; And
And based on the matching, determine the location of the first landmark within the map without changing the path layout.
적어도 하나의 프로세서;
유형의 형태로 저장되는 컴퓨터 코드를 포함하는 컴퓨터 판독가능 저장 매체를 구비하는 적어도 하나의 메모리 회로를 포함하고, 상기 컴퓨터 코드는 상기 적어도 하나의 프로세서에 의해 실행될 때 상기 장치가
한 영역에서의 장치의 이동을 나타내고 제1 랜드마크를 표시하는 제1 궤적 데이터를 획득하고;
경로 레이아웃을 표시하는 상기 영역의 맵을 획득하고;
상기 제1 궤적 데이터의 적어도 일부를 상기 경로 레이아웃의 적어도 일부에 매칭하고;
상기 매칭에 기반하여, 상기 경로 레이아웃의 변경 없이 상기 맵 내에서 상기 제1 랜드마크의 위치를 결정하도록 하는 장치.
At least one processor;
At least one memory circuit having a computer readable storage medium containing computer code stored in the form of a computer code,
Acquiring first locus data indicative of movement of the device in one area and indicative of a first landmark;
Acquiring a map of the area indicating the path layout;
Match at least a portion of the first locus data to at least a portion of the path layout;
And determine, based on the matching, the position of the first landmark in the map without changing the path layout.
제12항에 있어서, 상기 컴퓨터 코드는 상기 적어도 하나의 프로세서에 의해 실행될 때 상기 장치가
제2랜드마크를 나타내는 제2 궤적 데이터를 획득하고;
거리 및 주변 신호 지문 데이터에 기반하여 상기 제1 및 제2랜드마크들을 비교하며;
상기 비교에 기반하여 상기 맵 상에서 상기 제1랜드마크의 위치를 조정하도록 하는 장치.
13. The computer readable medium of claim 12, wherein the computer code is executable by the at least one processor
Acquiring second locus data representing a second landmark;
Compare the first and second landmarks based on distance and surrounding signal fingerprint data;
And adjust the position of the first landmark on the map based on the comparison.
제12항에 있어서, 상기 컴퓨터 코드는 상기 적어도 하나의 프로세서에 의해 실행될 때 상기 장치가
상기 제1 궤적 데이터에서, 상기 제1 궤적 데이터의 전체가 아닌 일부를 나타내고 상기 제1 궤적 데이터 내 상기 제1 랜드마크 위치의 소정 거리 안에 있는 하나 이상의 세그먼트들을 선택하고;
상기 하나 이상의 세그먼트들을 상기 경로 레이아웃의 적어도 일부에 매칭하도록 하는 장치.
13. The computer readable medium of claim 12, wherein the computer code is executable by the at least one processor
Selecting one or more segments in the first locus data that are not all of the first locus data and that are within a predetermined distance of the first landmark position in the first locus data;
And match the one or more segments to at least a portion of the path layout.
제12항에 있어서,
상기 제1 궤적 데이터는 상기 제1 궤적 데이터의 시작점에서 상기 제1랜드마크의 시작점까지 이어지는 지점들의 제1 시퀀스, 및 상기 제1 궤적 데이터의 종점에서 상기 제1 랜드마크의 종점까지 이어지는 지점들의 제2 시퀀스를 포함하고, 상기 컴퓨터 코드는 상기 적어도 하나의 프로세서에 의해 실행될 때, 상기 장치가 상기 제1 및 제2시퀀스들을 상기 경로 레이아웃의 적어도 일부와 매칭하도록 하는 장치.
13. The method of claim 12,
Wherein the first locus data includes a first sequence of points extending from a start point of the first locus data to a start point of the first landmark and a second sequence of points extending from an end point of the first locus data to an end point of the first landmark 2 sequence, wherein the computer code, when executed by the at least one processor, causes the device to match the first and second sequences with at least a portion of the path layout.
KR1020187016929A 2015-11-20 2016-06-03 Landmark positioning KR102022668B1 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/948,188 2015-11-20
US14/948,188 US10415978B2 (en) 2015-11-20 2015-11-20 Landmark location determination
PCT/KR2016/005916 WO2017086561A1 (en) 2015-11-20 2016-06-03 Landmark location determination

Publications (2)

Publication Number Publication Date
KR20180071400A true KR20180071400A (en) 2018-06-27
KR102022668B1 KR102022668B1 (en) 2019-09-18

Family

ID=58717448

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020187016929A KR102022668B1 (en) 2015-11-20 2016-06-03 Landmark positioning

Country Status (4)

Country Link
US (1) US10415978B2 (en)
EP (1) EP3351024A4 (en)
KR (1) KR102022668B1 (en)
WO (1) WO2017086561A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200123896A (en) * 2019-04-22 2020-11-02 (주)휴빌론 Method and system for extension of walking network and location database

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10239612B1 (en) * 2016-07-19 2019-03-26 Cooper Technologies Company Automated commissioning and floorplan configuration
US10746559B2 (en) 2016-08-15 2020-08-18 International Business Machines Corporation Dynamic route guidance based on real-time data
US10281279B2 (en) * 2016-10-24 2019-05-07 Invensense, Inc. Method and system for global shape matching a trajectory
EP3322149B1 (en) * 2016-11-10 2023-09-13 Tata Consultancy Services Limited Customized map generation with real time messages and locations from concurrent users
US10254125B2 (en) * 2016-11-14 2019-04-09 International Business Machines Corporation Driving assistant system
EP3409630B1 (en) * 2017-06-02 2020-11-11 Otis Elevator Company Passenger conveyor performance rating system
WO2019007437A1 (en) 2017-07-07 2019-01-10 Beijing Didi Infinity Technology And Development Co., Ltd. Systems and methods for determining a position of a terminal device
US10317216B1 (en) * 2018-03-16 2019-06-11 Microsoft Technology Licensing, Llc Object and location tracking with a graph-of-graphs
US10740965B2 (en) * 2018-06-01 2020-08-11 Trx Systems, Inc. Mapping complex building models
CN112639664B (en) * 2018-07-24 2023-03-24 奇跃公司 Method and device for determining and/or evaluating a positioning map of an image display device
US10345452B1 (en) * 2018-11-05 2019-07-09 Mapsted Corp. Method and system for mobile device localization region in trusted-GPS region
GB2588572B (en) * 2019-03-20 2024-01-10 Navenio Ltd Transition Detection
US10616723B1 (en) * 2019-07-16 2020-04-07 Eagle Technology, Llc System for mapping building interior with PDR and ranging and related methods
CN110602651B (en) * 2019-09-20 2022-02-01 北京智芯微电子科技有限公司 Positioning method based on WIFI position fingerprint and positioning system of robot
US11540083B1 (en) * 2021-03-16 2022-12-27 GigFlex LLC Method and apparatus for adaptive location determination

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014074837A1 (en) * 2012-11-08 2014-05-15 Duke University Unsupervised indoor localization and heading directions estimation

Family Cites Families (72)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0847549B1 (en) 1996-03-06 1999-09-22 GMD-Forschungszentrum Informationstechnik GmbH Autonomous mobile robot system for sensor-based and map-based navigation in pipe networks
CN101699546B (en) 2005-04-08 2012-05-09 松下电器产业株式会社 Map information updating device and map information updating method
US8836580B2 (en) 2005-05-09 2014-09-16 Ehud Mendelson RF proximity tags providing indoor and outdoor navigation and method of use
KR100679045B1 (en) 2005-06-15 2007-02-05 삼성전자주식회사 Method for deciding mobile communication terminal user's point of interest and apparatus for providing geographic information using the same
US8670925B2 (en) 2005-06-21 2014-03-11 Calabrese Holdings L.L.C. Navigation system and method
US8731821B2 (en) 2006-03-15 2014-05-20 Qualcomm Incorporated Method and apparatus for determining relevant point of interest information based upon route of user
US9137629B2 (en) 2006-08-31 2015-09-15 Qualcomm Incorporated Apparatus and methods for providing location-based services to a mobile computing device having a dual processor architecture
US8930135B2 (en) * 2007-04-17 2015-01-06 Esther Abramovich Ettinger Device, system and method of landmark-based routing and guidance
US9733091B2 (en) 2007-05-31 2017-08-15 Trx Systems, Inc. Collaborative creation of indoor maps
US9395190B1 (en) 2007-05-31 2016-07-19 Trx Systems, Inc. Crowd sourced mapping with robust structural features
SG183690A1 (en) 2007-08-06 2012-09-27 Trx Systems Inc Locating, tracking, and/or monitoring personnel and/or assets both indoors and outdoors
US8680019B2 (en) 2007-08-10 2014-03-25 Protelica, Inc. Universal fibronectin Type III binding-domain libraries
CH699096A2 (en) 2008-07-08 2010-01-15 Gilles Rooss Adaptive tracking system pilot the environment.
KR101017479B1 (en) 2008-12-01 2011-02-25 주식회사 케이티 Method and apparatus for providing POI information in location based services
US8495065B2 (en) 2009-02-02 2013-07-23 Waldeck Technology, Llc Maintaining a historical record of anonymized user profile data by location for users in a mobile environment
US8812015B2 (en) 2009-10-01 2014-08-19 Qualcomm Incorporated Mobile device locating in conjunction with localized environments
US8543143B2 (en) 2009-12-23 2013-09-24 Nokia Corporation Method and apparatus for grouping points-of-interest according to area names
US9389085B2 (en) 2010-01-22 2016-07-12 Qualcomm Incorporated Map handling for location based services in conjunction with localized environments
US20110208822A1 (en) 2010-02-22 2011-08-25 Yogesh Chunilal Rathod Method and system for customized, contextual, dynamic and unified communication, zero click advertisement and prospective customers search engine
JP5471626B2 (en) 2010-03-09 2014-04-16 ソニー株式会社 Information processing apparatus, map update method, program, and information processing system
US9767137B2 (en) 2010-04-26 2017-09-19 Apple Inc. Method and system for distributed data verification
US8260539B2 (en) 2010-05-12 2012-09-04 GM Global Technology Operations LLC Object and vehicle detection and tracking using 3-D laser rangefinder
US9641814B2 (en) 2010-05-19 2017-05-02 Nokia Technologies Oy Crowd sourced vision and sensor-surveyed mapping
US9304970B2 (en) 2010-05-19 2016-04-05 Nokia Technologies Oy Extended fingerprint generation
EP2572544A4 (en) 2010-05-19 2017-01-18 Nokia Technologies Oy Physically-constrained radiomaps
US20110285591A1 (en) 2010-05-19 2011-11-24 Palm, Inc. Correlating contextual data and position data to improve location based services
US20110313779A1 (en) 2010-06-17 2011-12-22 Microsoft Corporation Augmentation and correction of location based data through user feedback
US8892118B2 (en) 2010-07-23 2014-11-18 Qualcomm Incorporated Methods and apparatuses for use in providing position assistance data to mobile stations
US10169017B2 (en) 2010-10-21 2019-01-01 International Business Machines Corporation Crowdsourcing location based applications and structured data for location based applications
US8699773B2 (en) 2010-10-21 2014-04-15 Beth Israel Deaconess Medical Center Method for image reconstruction using low-dimensional-structure self-learning and thresholding
US20120102164A1 (en) 2010-10-21 2012-04-26 International Business Machines Corporation Deployment of location based applications with crowdsourced structured points of input for data entry
US8676623B2 (en) 2010-11-18 2014-03-18 Navteq B.V. Building directory aided navigation
US8930123B2 (en) 2010-11-19 2015-01-06 International Business Machines Corporation Systems and methods for determining traffic intensity using information obtained through crowdsourcing
US9341720B2 (en) 2011-01-11 2016-05-17 Qualcomm Incorporated Camera-based position location and navigation based on image processing
US8577389B2 (en) 2011-01-18 2013-11-05 Microsoft Corporation Filtering and clustering crowd-sourced data for determining beacon positions
US20120185458A1 (en) 2011-01-18 2012-07-19 Microsoft Corporation Clustering crowd-sourced data to identify event beacons
US8542637B2 (en) 2011-01-18 2013-09-24 Microsoft Corporation Clustering crowd-sourced data for determining beacon positions
US8320939B1 (en) 2011-04-21 2012-11-27 Google Inc. Crowd-sourced information for interior localization and navigation
US8583400B2 (en) 2011-05-13 2013-11-12 Google Inc. Indoor localization of mobile devices
US8811748B2 (en) 2011-05-20 2014-08-19 Autodesk, Inc. Collaborative feature extraction system for three dimensional datasets
US20120303556A1 (en) 2011-05-27 2012-11-29 Microsoft Corporation Comparison of modeling and inference methods at multiple spatial resolutions
US8548738B1 (en) 2011-07-08 2013-10-01 Google Inc. Constructing paths based on a particle model
US8559975B2 (en) 2011-07-22 2013-10-15 Microsoft Corporation Location determination based on weighted received signal strengths
KR101668784B1 (en) 2011-09-23 2016-10-24 퀄컴 인코포레이티드 Position estimation via proximate fingerprints
US20130084882A1 (en) 2011-09-30 2013-04-04 Qualcomm Incorporated Becoming more "aware" through use of crowdsourcing and device interaction
US8472980B2 (en) 2011-10-01 2013-06-25 Qualcomm Incorporated Flexible architecture for location based crowdsourcing of contextual data
KR102147625B1 (en) 2011-11-02 2020-08-24 샤이 론넨 Generating and using a location fingerprinting map
US8626198B2 (en) 2011-11-16 2014-01-07 Qualcomm Incorporated Characterizing an indoor structure based on detected movements and/or position locations of a mobile device
CN103118427B (en) 2011-11-16 2015-01-07 北京百度网讯科技有限公司 Location method and system based on location prefetching
KR20130063915A (en) 2011-12-07 2013-06-17 한국전자통신연구원 Method and device for estimating path for indoor localization
WO2013100287A1 (en) 2011-12-29 2013-07-04 Song Ha Yoon Data processing method, data processing device, data collecting method and information providing method
EP2817785B1 (en) 2012-02-23 2019-05-15 Charles D. Huston System and method for creating an environment and for sharing a location based experience in an environment
US9052203B2 (en) 2012-03-17 2015-06-09 Mcube, Inc. Methods and apparatus for low-cost inertial dead-reckoning using context detection
US20130267251A1 (en) 2012-04-10 2013-10-10 Qualcomm Incorporated Personalized position using information correlation and self-sourcing
US9439041B2 (en) 2012-06-29 2016-09-06 Lighthouse Signal Systems, Llc Systems and methods for calibration based indoor geolocation
US9335175B2 (en) 2012-08-15 2016-05-10 Google Inc. Crowd-sourcing indoor locations
US8934884B2 (en) 2012-09-21 2015-01-13 SenionLab AB Method and device for indoor position resolution
US9338622B2 (en) 2012-10-04 2016-05-10 Bernt Erik Bjontegard Contextually intelligent communication systems and processes
KR101382331B1 (en) 2012-10-30 2014-04-08 현대자동차 주식회사 Sound playing system of cluster
US9678660B2 (en) 2012-11-05 2017-06-13 Nokia Technologies Oy Method and apparatus for conveying efficient map panning over a mapping user interface
US9226111B2 (en) 2012-11-21 2015-12-29 Apple Inc. Pathway matching
US10115202B2 (en) 2012-12-27 2018-10-30 Arria Data2Text Limited Method and apparatus for motion detection
US20140188537A1 (en) 2013-01-02 2014-07-03 Primordial System and method for crowdsourcing map production
KR20140099386A (en) 2013-02-01 2014-08-12 한국전자통신연구원 Mobile terminal and electronic navigational chart server and method for updating electronic navigational chart based on crowdsourcing thereof
US10375517B2 (en) 2013-03-08 2019-08-06 Microsoft Technology Licensing, Llc Crowd sourced pathway maps
US9164844B2 (en) 2013-03-12 2015-10-20 Qualcomm Incorporated Method and apparatus for detecting anomalies within indoor information
WO2014172792A1 (en) 2013-04-26 2014-10-30 E-Twenty Development Incorporated Navigation computer system including landmark identifier scanning
WO2014189495A1 (en) 2013-05-21 2014-11-27 Intel Corporation Systems and methods for simultaneously and automatically creating databases of wifi signal information
US8958985B1 (en) * 2014-01-31 2015-02-17 United Parcel Service Of America, Inc. Concepts for determining the accuracy of map data
US10466056B2 (en) 2014-04-25 2019-11-05 Samsung Electronics Co., Ltd. Trajectory matching using ambient signals
US9863773B2 (en) 2014-04-29 2018-01-09 Samsung Electronics Co., Ltd. Indoor global positioning system
US10599953B2 (en) 2014-08-27 2020-03-24 Verint Americas Inc. Method and system for generating and correcting classification models

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014074837A1 (en) * 2012-11-08 2014-05-15 Duke University Unsupervised indoor localization and heading directions estimation

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200123896A (en) * 2019-04-22 2020-11-02 (주)휴빌론 Method and system for extension of walking network and location database

Also Published As

Publication number Publication date
WO2017086561A1 (en) 2017-05-26
KR102022668B1 (en) 2019-09-18
US20170146349A1 (en) 2017-05-25
US10415978B2 (en) 2019-09-17
EP3351024A4 (en) 2018-11-07
EP3351024A1 (en) 2018-07-25

Similar Documents

Publication Publication Date Title
KR102022668B1 (en) Landmark positioning
KR102399591B1 (en) System for determining the location of entrances and areas of interest
EP3019827B1 (en) Indoor location-finding using magnetic field anomalies
KR101751731B1 (en) Location tracking system and method
CN104781686B (en) Pathway matching
KR102297478B1 (en) Trajectory matching using ambient signals
KR102087452B1 (en) Generating and using a location fingerprinting map
CA2663896C (en) Concept for localizing a position on a path
TWI391632B (en) Position/navigation system using identification tag and position/navigation method
CN103162683B (en) For performing the apparatus and method of map match
US9462423B1 (en) Qualitative and quantitative sensor fusion for indoor navigation
KR20150081029A (en) Method and apparatus for recognizing indoor location using field intensity map
CN103841642A (en) Three-dimensional positioning method in a room
JP2013517480A (en) Scalable routing for mobile station navigation using location context identifiers
CN107110652B (en) Processing spatial features
CN111123198A (en) User positioning and navigation method and system in building
US20220329988A1 (en) System and method for real-time indoor navigation
CN105898711B (en) A kind of localization method and device based on earth magnetism reference line
KR101523147B1 (en) Indoor Positioning Device and Method
Wagner et al. An approach for hybrid indoor/outdoor navigation
JP2009162582A (en) Position specification device and method, and computer program
KR101161103B1 (en) Method for tracking user location, method and apparatus for constructing map using the same
Ahmad et al. WI-FI RSS fingerprinting for indoor localization using augmented reality
KR101417624B1 (en) Indoor localization system and indoor localization method using physical map and smart device sensor
Link et al. Accurate map-based indoor navigation on the mobile

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