WO2018227508A1 - Trace segments based navigation - Google Patents
Trace segments based navigation Download PDFInfo
- Publication number
- WO2018227508A1 WO2018227508A1 PCT/CN2017/088523 CN2017088523W WO2018227508A1 WO 2018227508 A1 WO2018227508 A1 WO 2018227508A1 CN 2017088523 W CN2017088523 W CN 2017088523W WO 2018227508 A1 WO2018227508 A1 WO 2018227508A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- segment
- trace
- segments
- target trace
- source
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/26—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
- G01C21/28—Navigation; 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
Definitions
- a navigation application may be a computer software program installed on a computing device equipped with a Global Positioning System (GPS) module. Based on signals received from GPS satellites and a map (preloaded or downloaded in real time) , the navigation application may provide a location of the computing device. Since the signals from the GPS satellites may be attenuated and scattered by roofs, walls and other objects of buildings, such a navigation application in some cases might not be able to provide an effective navigation service.
- GPS Global Positioning System
- Embodiments of the subject matter described herein provide a solution for segment-based navigation.
- traces that are obtained by a trace collector are divided into a plurality of segments, thereby reducing the granularity for navigation from trace level to segment level.
- a device obtains segments from at least one trace, and generates a segment structure reflecting the relationship among the segments.
- a target trace can be generated in a faster, more flexible, more systematic and more accurate way. In this way, efficiency and performance of the navigation are improved.
- Figs. 1A and 1B show schematic diagrams of conventional peer-to-peer navigation, respectively;
- Fig. 2 shows a schematic diagram of segment-based navigation according to embodiments of the subject matter described herein;
- FIG. 3 shows a flowchart of a method for generating a segment structure according to embodiments of the subject matter described herein;
- Fig. 4 shows a schematic diagram of a trace according to embodiments of the subject matter described herein;
- Figs. 5A and 5B show schematic diagrams of matched segments and mismatched segments according to embodiments of the subject matter described herein, respectively;
- Figs. 6A and 6B show schematic diagrams of matching and mismatching cases according to embodiments of the subject matter described herein, respectively;
- Fig. 7 shows a schematic diagram of graph construction according to embodiments of the subject matter described herein.
- Fig. 8 shows a schematic diagram of target trace generation according to the embodiment of the subject matter described herein.
- trace refers to a recording of a path from a start point to an end point in a region.
- a trace may include a variety of types of data, such as navigation data collected from a terminal device, navigation instruction (s) collected from a navigator, route (s) illustrated on a map, motion data measured at a terminal device, measurement data (such as a magnetic field signal) collected by a sensor, and/or the like.
- the term “segment” refers to at least a part of a trace.
- the segment may be obtained from a trace in a variety of ways.
- a trace may be divided into segments based on event types.
- the event type may include a turn event, a staircase event, an elevator event, and so on.
- a segment may be associated with one or more events and have corresponding attributes.
- a segment may be associated with an event of “walk straight for 6 meters. ” In this case, the segment has an event type of “walk straight” and a corresponding event attribute of “6 meters. ”
- the attribute may further include popularity, slope, speed limit, ease of access, and so on.
- P2P navigation does not require localization, instead, it follows a “leader-follower” (or peer-to-peer) paradigm.
- the P2P navigation has advantages in two main aspects. First, it saves the substantial setup effort and precision requirements of localization. Instead of building a full-fledged localization system, it offers a simple plug-and-play mechanism, that is, a “leader” captures a trace (for example, a series of sensor data) , and then any “follower” can navigate on that same trace. Second, it does not require the maps for navigation. Irrespective of whether the map information is complete or not, followers are still able to go to any point of interest (PoI) as long as a prior user has visited it before.
- PoI point of interest
- FIGs. 1A and 1B show schematic diagrams 110 and 120 of conventional P2P navigation, respectively.
- a user 1 recorded a trace from A to B
- another user 2 recorded a trace from A to C.
- conventional P2P navigation systems now if a third user 3 wants to navigate from B to C, he/she must first follow the reversed trace from B to A, and then follow the other trace from A to C.
- Fig. 1A shows a user 1 recorded a trace from A to B
- another user 2 recorded a trace from A to C.
- a third user 3 wants to navigate from B to C
- he/she must first follow the reversed trace from B to A, and then follow the other trace from A to C.
- the conventional P2P navigation systems also suffer from low flexibility.
- additional data sources may not be used as inputs or additional resources to improve the performance or accuracy of the navigation results.
- indoor maps may be available in some cases as additional resources, such additional resources, however, are not leveraged in a systematic way.
- users can merely follow a trace that was previously created by a leader. In other words, although there might be a large number of paths connecting all PoIs, it is still highly unlikely that there is a trace that exactly meets the user requirement.
- Embodiments of the subject matter described herein provide a method and device for navigation in a flexible and scalable way.
- segments are obtained from one or more traces collected by a trace collector, such as a mobile terminal, a navigation device, a sensor, and so on.
- a trace collector such as a mobile terminal, a navigation device, a sensor, and so on.
- a segment structure is generated for reflecting the relationship of the segments.
- a target trace can be generated in a faster, more flexible and more accurate way. As such, efficiency and performance of the navigation can be improved.
- Fig. 2 shows a schematic diagram of segment-based navigation according to embodiments of the subject matter described herein.
- the trace from A to B is divided into two segments 201 and 202
- the trace from A to C is divided into two segments 203 and 204.
- a new trace (sometimes also referred to as a “target trace” ) can be obtained.
- the user 3 wants to navigate from B to C, he/she can directly follow the generated target trace and arrive at point C in a quick and efficient way.
- the problem in the example of Fig. 1A can be solved.
- FIG. 3 shows a flowchart of a method 300 for generating a segment structure according to embodiments of the subject matter described herein.
- a plurality of segments are obtained from at least one trace.
- the at least one trace corresponds to a path from a start point to an end point in a region.
- the trace may be represented by data corresponding to user and environment inferences, an origin (or a start point) and a destination (or an end point) of a path, a series of movement events, location-related waypoints, and optional additional data related to the path (e.g. sensor readings, user annotations, pictures, etc. ) .
- a typical trace is shown in the following Table 1 as an example.
- a trace may come from different sources, e.g., navigation data collected from mobile apps, sequences of instructions to find a destination, routes drawn on maps, data collected from robotic devices during patrol, user motion data from wearable devices, and so on.
- the above example of a trace is merely described for purpose of discussion, rather than suggesting any limitation.
- the trace can be implemented as other suitable forms, for example, data collected from a sensor (also referred to as “sensor data” hereafter) , such as magnetic field magnitude, RF signal strength, and so on.
- Fig. 4 shows a schematic diagram of a trace 400 as illustrated in Table 1.
- the trace 400 is divided into five segments, 401 to 405.
- the trace may be divided into segments based on map information.
- a location associated with at least a part of a trace may be determined from geographical information of a map.
- the location may indicate a room, a site, a street, a traffic light, an intersection, and so on.
- the trace may be divided into segments based on the location.
- a trace can be projected to the map by, for example, using the trace projection technique.
- the projected trace can be divided into appropriate segments with high efficiency and accuracy. For instance, a passageway between two rooms may be determined as a segment.
- the segmentation as described above is merely an example rather than limitation.
- the system requirements may specify that a trace is divided into segments every 10 meters.
- a trace of 50 meters may be divided into 5 segments.
- segment structure is generated based on the segments for navigation in the region.
- segment structure refers to an organization of a plurality of segments.
- the segment structure reflects relationships among the segments, for example, whether the segments are matching, the matching degree of the segments, and so on.
- the segment structure may be determined based on a matching degree of different segments.
- the segment structure may be implemented in the form of a tree in a hash structure. A node of the tree may correspond to a segment, and a child of the node may correspond to another segment that is similar to the segment. The difference between the two segments may be reflected by a hash sequence of the child of the node.
- Hash sequences for the segments may be first generated based on the matching degree, and then a hash structure (also referred to as a hash tree) may be built as the segment structure based on the hash sequences.
- a hash structure also referred to as a hash tree
- Segment matching mainly aims to identify pairs of segments, which are recorded along the same pathway.
- the matching degree between segments may be determined.
- a matching degree of a first segment and a second segment may be determined, for example, based on a distance between the two segments, geometry shapes of the segments, event sequences of the segments, and/or the like.
- the distance and the geometry shapes may be for example determined based on location-specific sensor data (such as geomagnetic signals) of the segments. If the similarity exceeds a similarity threshold, it can be determined that the first and second segments are matching. Then, the segment structure may be determined based on the matching degree.
- Figs. 5A and 5B show schematic diagrams of matched segments and mismatched segments according to embodiments of the subject matter described herein, respectively.
- the segments are represented by the geomagnetic signals. From Fig. 5A, it can be seen see that although there are differences between two geomagnetic signals, the shapes of the two segments 511 and 512 are roughly the same. On the contrary, signals from two segments 521 and 522 in Fig. 5B share much less similarities and hence could be considered unmatched. The robustness of the geomagnetic signal may be determined in a variety ways, which are not detailed here. It is to be noted that the match or mismatch determination is not necessarily performed based on segments having substantially identical length, segments recorded along the same pathway but having different lengths may also be compared. It is also to be noted that any similarity determination algorithm now known or later developed can be employed for identifying the match/mismatch of segments.
- the first and second segments may be unsynchronized.
- the first segment may be aligned with the second segment based on a dynamic time warping (DTW) algorithm.
- DTW dynamic time warping
- a two-step approach may be used to identify whether two sequences match.
- the DTW algorithm is used to synchronize two sequences, and then a Support Vector Machine (SVM) algorithm is used to classify the synchronization result.
- SVM Support Vector Machine
- some features may be selected to train the SVM classifier.
- the selected features may include length of the first segment, length of the second segment, DTW distance between the two segments, shape of optimal DTW path in the warping cost matrix, and/or the like.
- Figs. 6A and 6B show schematic diagrams of matching and mismatching cases according to embodiments of the subject matter described herein, respectively. Specifically, Figs. 6A and 6B show optimal DTW paths in the warping cost matrix for both matching and mismatching cases, respectively.
- Every point (i, j) in the solid line (also referred to as a “synchronization line” ) means that thei-th sample in segment one should be matched with the j-th sample in segment two.
- the dashed line is a reference line.
- the intermediate area between the synchronization line and the reference line may serve as a match indicator.
- the synchronization line is similar to the reference line and the intermediate area is small. Thus, it can be determined that the matching degree is high.
- the synchronization line drifts from the reference line and the intermediate area is relatively large, which indicates that the matching degree is low.
- segment fusion is used to aggregate the matched segments into a general representation.
- an attribute weight w is introduced for every segment, where wi means the total number of raw segments that the i-th segment is aggregated from. For example, the weight of a raw segment is 1 and if two raw segments are aggregated to get a new segment, the weight becomes 2.
- the DTW synchronization algorithm may be used to get the time warping cost matrix and synchronization trajectory.
- a new segment can be obtained.
- down-sampling may be performed on the generated sequence to rescale its length to where w i is the weight and l i is the length of the segments.
- the weight of the new segment may be set to w i +w j . This process may repeat every time when a new segment match is identified.
- the hash structure may be implemented as a k-d tree based on the matching degree.
- a family of hash functions, which are used for building the hash structure, may be implemented based on Distance-Based Hashing (DBH) for mapping data under an arbitrary distance into real numbers.
- the data mapping may be implemented, for example, by using a FastMap technique.
- the formal definition may be given as: given any distance space choose two reference members
- For any query point s in the hash function may be:
- this hash function (1) will project the query point to the line determined by s 1 and s 2 . If is a non-Euclidean distance space, this hashing function (1) can still approximately preserve distance relationship. After the hash value is obtained, it may be binarized based on whether or not lies in a certain range [t 1 , t 2 ] as follows:
- Equation (2) if the hash value lies in the range of [t 1 , t 2 ] , it may be binarized as 1; otherwise, it may be binarized as 0.
- the range [t 1 , t 2 ] may be chosen to make a random object in have a 50%possibility to be mapped within the range and a 50%possibility to be mapped outside the range.
- the set of ranges may be defined as:
- the set of optimal hash functions may be defined as
- the hash structure may be built according to Algorithm 1 shown below. For every segment si in a set of segments (also referred to as a “segment set” ) S, a hash sequence h i with the length of bits may be maintained. To generate bits for every hash sequence, Algorithm 1 takes iterations. For each iteration, it first randomly chooses two reference segments s i1 , s i2 , and computes for every segment s j based on the matching degree, for example, the DTW distance. Then, a value may be assigned to the hash bits according to whether is larger or smaller than the median.
- Algorithm 1 shown below. For every segment si in a set of segments (also referred to as a “segment set” ) S, a hash sequence h i with the length of bits may be maintained. To generate bits for every hash sequence, Algorithm 1 takes iterations. For each iteration, it first randomly chooses two reference segments s
- a bit “0” may be appended to the hash sequence; otherwise, a bit “1” may be appended to the hash sequence.
- O (n log n) comparisons between segments are conducted. Since the hash sequence has a length of there are a total of O (n) possible types of hash sequence. Due to the algorithm′s balancing mechanism, the average number of segments that are hashed to a specific hash sequence is O (1) .
- s 1 and s 2 may be chosen by Algorithm 1 as the reference segments to compute the first hash bit for all the hash sequences.
- Algorithm 1 Algorithm 1
- the result is ⁇ 1, 0, 1, 0 ⁇
- the hash sequences of s 1 , s 2 , s 3 and s 4 are “10” , “00” , “11” and “01” , respectively.
- the hash structure may be updated incrementally. If a new segment is to be inserted to the hash structure, a query operation may be performed to find matching segments in the hash structure for an input segment.
- a hash sequence for a new segment may be obtained by comparing the new segment with all reference segments, for example, after O (log n) comparisons. Then, it will be compared with all the segments whose hash sequence has at most one bit difference with itself to find a match case. Since there are a total of O (log n) hash sequences satisfying this requirement, and every sequence has an average of O (1) corresponding segments, this may take, on average, O (log n) comparisons. Therefore, a query operation also takes a total of O (log n) comparisons.
- s′ 1 may be compared with all reference segments and obtain its hash sequence, say ⁇ 10 ⁇ in this case. Then it finds s 1 and s′ 1 matches to each other. Details of the matching are similar as those discussed in the section of Segment Matching, and are thus omitted here.
- a new pair of reference segments may be chosen and one more bit may be added to every hash sequence. This step takes O (n) comparisons.
- O (n) comparisons In the above example, if one more segment s 5 is added into the hash structure, it should be compared with all the reference traces to get its hash sequence. If additional four segments ⁇ s5, s6, s7, s8 ⁇ are added, it will choose two more reference segments and extend all the hash sequence by one bit. In this way, the hash structure can be more scalable.
- re-hash operation may be performed in a variety of ways.
- the re-hash operation for any hash digit, if the number of hash bits set to one is much more/less than that to zero, the re-hash operation may be triggered to reassign the hash bit value based on the median of The total complexity of the re-hash operation for any digit is O (n) .
- undesired collision and/or branching problems may occur in the hash structure.
- the collision happens when mismatching segments (that is, the matching degree of these segments is low) are hashed to the same hash sequence.
- Branching refers to the problem where matching segments are hashed to different hash sequences.
- the pairwise matching algorithm may be applied for all the segments with the same hash sequence. Since the average number of segments that are hashed to a specific hash sequence is O (1) , this operation only takes O (1) comparisons for every hash sequence.
- K K is a constant
- hash structures may be built to index traces under different sets of reference segments. All the operations are applied to different copies of hash structures. Even though a pair of matched segments can hash to diverse hash sequences in one hash structure, they tend to be hashed to the same sequence in other hash structures. In this way, the branching ratio in segment indexing can be significantly reduced without an increase in computational complexity.
- hash structure is just an example for implementing the segment structure, rather than suggesting any limitation. Those skilled in the art would appreciate that other suitable structures for indexing high-dimension data are also applicable.
- segment graph refers to a graph concatenating or connecting different segments in the segment structure.
- An edge of the segment graph may indicate a segment, and a node of the segment graph may indicate a connector between two or more segments.
- the connected segments may be also referred to as “adjacent segments. ”
- the connector may have a connector type and a corresponding attribute.
- the connector may further have a list of the adjacent segments.
- a segment graph G is a representation of overall segment connectivity, while a map M is a real indoor floor plan.
- a graph G is modeled using segments and connectors, i.e., G is defined as a set of segments and a set of connectors
- G may be defined as a set of pathways and a set of connectors
- Amap pathway and a graph segment differ only in that the segment includes a representation of sensor data.
- Each connector may have a type, an attribute value, the ID list of the adjacent segments, and so on.
- a segment graph may be constructed with only segment matching information. If optional indoor maps are available, the device may first project traces into the map, and then apply a hidden Markov model to get a graph representation.
- the segment graph may be constructed either with a map or without a map.
- the segment graph construction determines a first bucket of segments and a second bucket of segments from the segment structure.
- the first bucket may include a set of segments serving as input of a set of segments in the second bucket. Then, the connector between segments in the first and second buckets may be obtained. Now embodiments are provided to present how to construct the graph without any map information.
- the segment graph may be constructed according to the following Algorithm 2.
- the Algorithm 2 uses trace level connectivity information to connect different buckets with distinctive connector values (lines 1-7 of Algorithm 2) .
- the bucket function returns the corresponding bucket for each segment, and the value function returns the attribute value for each connector. Even if the values for certain types of connector are continuous (e.g. turn angle in degrees) , they can still discretized them by introducing thresholds or value ranges to make the total number of distinct connectors constant.
- Each bucket keeps a list of connector values representing individual links from itself to other buckets.
- the algorithm finds the most probable next segment for every connector value for each bucket using majority vote (lines 8-13 of Algorithm 2) . After obtaining the connectivity between different segments, the segment graph can be obtained from the buckets and the intermediate connectors between them (lines 14-16 of Algorithm 2) .
- Fig. 7 shows a schematic diagram of graph construction according to embodiments of the subject matter described herein.
- Fig. 7 there are four traces in the system. Every trace contains two segments connected with 90-degree right turn events. According to the matching results, segments 1-4 match each other, and belong to a first bucket. Similarly, segments 5-7 go to the second bucket, and segment 8 goes to a third bucket. Since the majority of segments in the first bucket are connected to the segments in second red bucket with a 90-degree right turn. For example, the first bucket and the second bucket may be connected with a right turn connector in the segment graph.
- PoIs including a starting point, an ending point, a connector, and/or the like
- a new trace also referred to as a “target trace”
- searching the segment graph and selecting the appropriate segments.
- the segments may be projected to a map. Then, the connector may be determined between the segments based on geographical information of the map, also referred to as “map information” hereafter.
- the map information can facilitate the segment graph construction process. Specifically, it benefits to get a clear representation for segment graphs, provide ground truth for all events and segments, reduce the dimension of the segment indexing structure, and so on. In some embodiments, to fully take advantages of a map, each trace is projected onto the map, while dealing with potential mapping conflicts from new coming traces.
- a segment may be projected to the map using a map mapping algorithm.
- a representative signal for example, sensor data
- the map geometry may be used to represent how to connect segments.
- the first step of constructing a segment graph is to project a trace onto the map. Finding the best-match pathway for an abstract trace in the floor plan can be modeled as a search problem.
- the length of recorded traces and pathways in the map is not measured by a uniform metric (steps and meters respectively, for instance) .
- different metrics may be converted to a uniform metric for effective trace projection.
- the variance of the average step length may be used for different segments as the metric to measure match quality.
- the problem may be defined as follows.
- pathway P is a possible matching candidate for trace U in M. and is the sequence of segments of trace U and pathway P, respectively.
- the function length ( ⁇ ) is used to obtain the length of a segment. If the segment comes from a recorded trace, the function returns the number of steps in the segment, otherwise it returns the length in meters. is used to denote the average step length set for the matching between U and P. and are sequences of connectors of trace U and pathway P, respectively. Every connector or can also be represented by two adjacent segments or are used to denote two connectors that have the same event type and matched event value.
- a weighted variance of L (U, P) may be considered as the matching metric.
- the goal of finding the best match pathway in the map can be expressed as subject to
- the search algorithm is improved at least along two dimensions: i) reducing the computation within each step and ii) reducing the number of search steps.
- an incremental method may be incorporated to update the weighted variance, for example, according to Lemma A. 1. This method fully utilizes the previous result to compute the result of the next step, and only takes O (1) time for each step state update.
- the performance of pruning also relies on search order: the earlier the best-match pathway is found, the more unnecessary searches can be avoided. Based on this observation, the most promising search pathways may be tried to expand in every iteration. To identify how promising a pathway is, the normalized step length variance is used as the metric. Thus the algorithm chooses the pathway with minimal norm (L (U, P) ) .
- Algorithm 3 as shown below illustrates in detail the search algorithm.
- the algorithm takes as input a trace U, a map M, and the starting point c sp in the map. During search, it maintains the search state in a priority queue pqueue.
- the search state contains several domains: key, index, var, , next, seg, which refer to the average weighted step variance, index of current matching segment, weighted step variance, the next search segments, and the last matched segment, respectively.
- the priority queue compares states by key and returns the minimum-key state.
- the makestate function is used to update the search state information incrementally based on the previous search state. The key part of this function is to upgrade the weighted variance of step length according to Lemma A. 1.
- the Algorithm 3 performs pruning with the information of weighted variance of step length to reduce the search space. Once the algorithm finds a feasible solution, it traces back the search route to get its pathway (lines 8-12) . Lines 13-18 check whether a trace event qualifies and pushes one more search state to the queue. The algorithm stops when the priority queue becomes empty.
- a Hidden Markov Model may be employed to infer the most likely magnetic signal sequence for every segment. Specifically, the sequence of segments is first used as hidden variable and corresponding magnetic signal sequences as observed variable to train the HMM. After that, the probability distribution of magnetic signal sequences is obtained for every segment. Then, the one with highest probability may be selected as the magnetic signal sequence for the segment.
- HMM Hidden Markov Model
- the segment matching results and the segment buckets may be employed. So in training, the actual observed variable is the bucket index. During the prediction, the result is also the most probable bucket.
- the most probable bucket may be extracted for every segment in the map and connected through their corresponding navigation event connectors. As such, the segment graph can be generated in a more accurate way.
- the target trace may be generated in a variety of ways, including, but not limited to, providing the shortest path from the starting point to the ending point, considering the quality of segments associated with the starting point and the ending point, and so on.
- FIG. 8 illustrates an example of target trace generation using the segments-based navigation system described as above, according to the embodiment of the subject matter described herein. As shown, three recorded traces are demonstrated as an example in FIG. 8, and each of the traces has been divided into several segments. For example, the first trace has been divided in to segments 811, 812 and 813, the second trace has been divided in to segments 821 and 822, and the third trace has been divided in to segments 831 and 832.
- more traces may be beneficial to generate an optimized trace (such as a trace having the shortest distance) from the start point to the end point selected by the user.
- an optimized trace such as a trace having the shortest distance
- the proposed segments-based navigation solution does not necessarily rely on a large number of previously recorded traces.
- even only one historical trace generated by a leader would also be helpful for generating a new trace for a follower.
- the three traces may come from different sources depending on the measuring tools available to the leaders.
- the user when a user would like to find a way from a start point to an end point, the user only needs to provide the start point and the end point for example via a request.
- the user may directly select the start and end points on an user interface.
- the user 3 may want to find a way from room 820 to room 860.
- the system upon the user’s request of trace generation is received by the navigation system, the system would automatically determine/select segments that are related to the target trace connecting room 820 and room 860 for the user 3.
- the determination/selection of segments from the respective trace can be based on the user’s own criteria or preferences, such as movement time of the target trace, movement distance of the target trace, or ease of access of the target trace.
- the determination/selection of segments from the respective trace can be based on the trace quality of at least one of the first source and the second source. For example, since the signals from the GPS satellites may be attenuated and scattered by tunnels, bridges and buildings, the system may select some segments corresponding to the open area. It is to be noted that two or more criteria or preferences can be simultaneously applied for the segments determination/selection.
- the proposed navigation system matches the starting point and the end point in the Poi database. Instead of providing the shortest path from the starting point to the destination, the proposed system returns the one feasible route by taking the quality of segment into consideration.
- segment quality is measured by the size of segment buckets as discussed with reference to Fig. 7.
- the quality of the segment is considered good, and in this case, the first bucket’s signals are treated as default signals for the segment.
- 50 segments belong to one bucket and the other 50 segments belong to the other bucket it is hard to decide what signals we should use for the segment.
- SNR signal to noise ratio
- the proposed system constructs a new path search graph based on trace graph from Section “Segment Graph Construction” by updating the “length” value of each segment as
- the system selects segment 812 from the first trace, segment 821 from the second trace, and segment 831 from the third trace to satisfy the user’s request.
- those segments are connected or “stitched” in a way of end to end, via one or more connectors, to generate a target trace satisfying the user’s request.
- the determined adjacent segments 812, 821 and 831 are connected via connectors 840 and 850 to generate a target trace from room 820 to room 860.
- the proposed navigation approach does not require a map for navigation.
- both segment division and segment connection procedure can be expedited and eased. Therefore, in some embodiments, the map information may also be utilized to connect two or more segments that are projected on the map. For example, if it is found that two adjacent segments have a shared waypoint on the map, such as a room number, then the two segments can be subsequently connected via a proper connector.
- the navigation approach is based on the segment structure that is stored and updated over time. Therefore, such stored and updated segment structure may also be applied on other aspects of people’s daily life.
- a graph that reflects “hot spots” in an area within a period can be generated based on the popularity attributes associated with segments in the segment structure and demonstrated to the user.
- a shop owner may use such a graph to find the best location for his/her shop in a shopping mall.
- a tourist may use such a graph to find the most popular places to visit in a park.
- the segment structure may help a passenger using public transportation system, such as a subway passenger, to plan the most appropriate route, including the metro line changes, from the origin to the destination.
- public transportation system such as a subway passenger
- FPGA field programmable gate array
- ASSP application-specific standard product
- SOC system on chip
- CPLD complex programmable logic device
- Program codes for carrying out methods of the subject matter described herein may be written in any combination of one or more programming languages. These computer program codes may be provided to a processor or controller of a general purpose computer, special purpose computer, or other programmable data processing apparatus, such that the program codes, when executed by the processor or controller, cause the functions/operations specified in the flowcharts and/or block diagrams to be implemented.
- the program code may be executed entirely on a machine, partly on the machine, as a stand-alone software package, partly on the machine and partly on a remote machine or entirely on the remote machine or server.
- a machine readable medium may be any tangible medium that may contain, or store a program for use by or in connection with an instruction execution system, apparatus, or device.
- the machine readable medium may be a machine readable signal medium or a machine readable storage medium.
- a machine readable medium may include but not limited to an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing.
- machine readable storage medium More specific examples of the machine readable storage medium would include an electrical connection having one or more wires, a portable computer diskette, a hard disk, a random access memory (RAM) , a read-only memory (ROM) , an erasable programmable read-only memory (EPROM or Flash memory) , an optical fiber, a portable compact disc read-only memory (CD-ROM) , an optical storage device, a magnetic storage device, or any suitable combination of the foregoing.
- RAM random access memory
- ROM read-only memory
- EPROM or Flash memory erasable programmable read-only memory
- CD-ROM portable compact disc read-only memory
- magnetic storage device or any suitable combination of the foregoing.
- a computer-implemented method comprises: determining a first segment corresponding to a first reference trace obtained from a first source; determining a second segment corresponding to a second reference trace obtained from a second source, a reference trace indicating a path from a start point to an end point; and generating a target trace at least based on the first segment and the second segment.
- the first and second sources include at least one of: navigation data; an instruction to a destination; a route on a map; and motion data measured from a device.
- the first source is different from the second source.
- the method further comprises: receiving a request related to the target trace, the request including at least an start point and an end point of the target trace.
- the determining a first segment corresponding to a first reference trace obtained from a first source comprises: in response to receiving the request related to the target trace, determining the first segment based on at least one of: movement time of the target trace; movement distance of the target trace; quality of a segment corresponding to the first trace; quality of the first source; and ease of access of the target trace.
- the generating a target trace at least based on the first segment and the second segment comprises: in response to determining that the first segment is adjacent to the second segment, connecting the first segment with the second segment, via a connector, to form at least a part of the target trace.
- the generating a target trace at least based on the first segment and the second segment comprises: in response to determining that the first segment is adjacent to the second segment, connecting the first segment with the second segment, via a connector, based on a map information that is related to the first segment and the second segment.
- an electronic device comprises: a processor; a memory coupled to the processor and storing instructions which, when executed by the processor, perform acts including: determining a first segment corresponding to a first reference trace obtained from a first source; determining a second segment corresponding to a second reference trace obtained from a second source, a reference trace indicating a path from a start point to an end point; and generating a target trace at least based on the first segment and the second segment.
- the first and second sources include at least one of: navigation data; an instruction to a destination; a route illustrated on a map; and motion data measured from a device.
- the first source is different from the second source.
- the acts further comprises: receiving a request related to the target trace, the request including at least an start point and an end point of the target trace.
- the determining a first segment corresponding to a first reference trace obtained from a first source comprises: in response to receiving the request related to the target trace, determining the first segment based on at least one of: movement time of the target trace; movement distance of the target trace; quality of a segment corresponding to the first trace; quality of the first source; and ease of access of the target trace.
- the generating a target trace at least based on the first segment and the second segment comprises: in response to determining that the first segment is adjacent to the second segment, connecting the first segment with the second segment, via a connector, to form at least a part of the target trace.
- the generating a target trace at least based on the first segment and the second segment comprises: in response to determining that the first segment is adjacent to the second segment, connecting the first segment with the second segment, via a connector, based on a map information that is related to the first segment and the second segment.
- a computer program product is provided.
- the computer program product is stored on a non-transient machine-readable medium and comprises machine-executable instructions.
- the instructions when executed in a device, causes the device to: determine a first segment corresponding to a first reference trace obtained from a first source; determine a second segment corresponding to a second reference trace obtained from a second source, a reference trace indicating a path from a start point to an end point; and generate a target trace at least based on the first segment and the second segment.
- the first source is different from the second source.
- the instructions further causes the device to: receive a request related to the target trace, the request including at least an start point and an end point of the target trace.
- the determining a first segment corresponding to a first reference trace obtained from a first source comprises: in response to receiving the request related to the target trace, determining the first segment based on at least one of: movement time of the target trace; movement distance of the target trace; quality of a segment corresponding to the first trace; quality of the first source; and ease of access of the target trace.
- the generating a target trace at least based on the first segment and the second segment comprises: in response to determining that the first segment is adjacent to the second segment, connecting the first segment with the second segment, via a connector, to form at least a part of the target trace.
- the generating a target trace at least based on the first segment and the second segment comprises: in response to determining that the first segment is adjacent to the second segment, connecting the first segment with the second segment, via a connector, based on a map information that is related to the first segment and the second segment.
Landscapes
- Engineering & Computer Science (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Automation & Control Theory (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Navigation (AREA)
Abstract
Implementations of the subject matter described herein relate to navigation. According to the embodiments of the subject matter described herein, a device obtains segments from at least one trace, and generates a segment structure reflecting the relationship of the segments. By means of the segment structure, a target trace can be generated in a faster, more flexible and more accurate way. In this way, efficiency and performance of the navigation are improved.
Description
Navigation applications have been becoming increasingly popular in recent years. A navigation application may be a computer software program installed on a computing device equipped with a Global Positioning System (GPS) module. Based on signals received from GPS satellites and a map (preloaded or downloaded in real time) , the navigation application may provide a location of the computing device. Since the signals from the GPS satellites may be attenuated and scattered by roofs, walls and other objects of buildings, such a navigation application in some cases might not be able to provide an effective navigation service.
SUMMARY
Several approaches have been proposed to provide navigation services and some of them try to provide the navigation service by means of accurate localization and maps. However, these localization-based approaches heavily depend on map information of a region. In absence of the map information, these approaches become useless. In addition, some approaches try to provide peer-to-peer navigation for a user without the map information. Generally, these approaches collect historical traces of movements in the region and try to select one of the historical traces to meet the user’s requirement. However, to cover all navigation cases, such approaches have to collect a large amount of data, thus incurring a heavy cost of recording, storing, searching, and so on.
Embodiments of the subject matter described herein provide a solution for segment-based navigation. Generally speaking, traces that are obtained by a trace collector are divided into a plurality of segments, thereby reducing the granularity for navigation from trace level to segment level. In accordance with embodiments of the subject matter described herein, a device obtains segments from at least one trace, and generates a segment structure reflecting the relationship among the segments. By means of the segment structure, a target trace can be generated in a faster, more flexible, more systematic and more accurate way. In this way, efficiency and performance of the
navigation are improved.
It is to be understood that the Summary is not intended to identify key or essential features of implementations of the subject matter described herein, nor is it intended to be used to limit the scope of the subject matter described herein. Other features of the subject matter described herein will become easily comprehensible through the description below.
Through the more detailed description in the accompanying drawings, the above and other features, advantages and aspects of the subject matter described herein will become more apparent, wherein the same or similar reference numerals refer to the same or similar elements.
Figs. 1A and 1B show schematic diagrams of conventional peer-to-peer navigation, respectively;
Fig. 2 shows a schematic diagram of segment-based navigation according to embodiments of the subject matter described herein;
Fig. 3 shows a flowchart of a method for generating a segment structure according to embodiments of the subject matter described herein;
Fig. 4 shows a schematic diagram of a trace according to embodiments of the subject matter described herein;
Figs. 5A and 5B show schematic diagrams of matched segments and mismatched segments according to embodiments of the subject matter described herein, respectively;
Figs. 6A and 6B show schematic diagrams of matching and mismatching cases according to embodiments of the subject matter described herein, respectively;
Fig. 7 shows a schematic diagram of graph construction according to embodiments of the subject matter described herein; and
Fig. 8 shows a schematic diagram of target trace generation according to the embodiment of the subject matter described herein.
Throughout the figures, same or similar reference numbers will always indicate same or similar elements.
Embodiments of the subject matter described herein will be described in more detail with reference to the accompanying drawings, in which some embodiments of the subject matter described herein have been illustrated. However, the subject matter described herein can be implemented in various manners, and thus should not be construed to be limited to the embodiments disclosed herein. On the contrary, those embodiments are provided for the thorough and complete understanding of the subject matter described herein, and completely conveying the scope of the subject matter described herein to those skilled in the art. It should be understood that the accompanying drawings and embodiments of the subject matter described herein are merely for the illustration purpose, rather than limiting the protection scope of the subject matter described herein.
The term “include” and its variants used in embodiments of the subject matter described herein are to be read as open terms that mean “include, but is not limited to. ” The term “based on” is to be read as “based at least in part on. ” The terms “one embodiment” and “an implementation” are to be read as “at least one embodiment. ” The term “another embodiment” is to be read as “at least one other embodiment. ”
Overview
As used herein, the term “trace” refers to a recording of a path from a start point to an end point in a region. A trace may include a variety of types of data, such as navigation data collected from a terminal device, navigation instruction (s) collected from a navigator, route (s) illustrated on a map, motion data measured at a terminal device, measurement data (such as a magnetic field signal) collected by a sensor, and/or the like.
The term “segment” refers to at least a part of a trace. The segment may be obtained from a trace in a variety of ways. For example, a trace may be divided into segments based on event types. The event type may include a turn event, a staircase event, an elevator event, and so on. A segment may be associated with one or more events and have corresponding attributes. For example, a segment may be associated
with an event of “walk straight for 6 meters. ” In this case, the segment has an event type of “walk straight” and a corresponding event attribute of “6 meters. ” The attribute may further include popularity, slope, speed limit, ease of access, and so on.
For navigation, a traditional way is through localization and maps, and numerous attempts have been made to build and deploy such indoor localization services. One reason that such localization-based navigation services are not widely available in practice is that they normally rely on specialized infrastructure (for example, beacons) or incur high bootstrap costs. For instance, fingerprinting-based techniques (for example, Wi-Fi) require an onerous sample collection and map calibration process. Meanwhile, precise localization requires dense deployment of specialized hardware. Lack of accurate indoor maps often poses additional challenges to path planning and exacerbates navigation performance issues. For these above reasons, navigation services based on localization and maps have been proven difficult to deploy at large scale.
Another way is the peer-to-peer (P2P) navigation. The P2P navigation does not require localization, instead, it follows a “leader-follower” (or peer-to-peer) paradigm. Compared to its localization-based counterparts, the P2P navigation has advantages in two main aspects. First, it saves the substantial setup effort and precision requirements of localization. Instead of building a full-fledged localization system, it offers a simple plug-and-play mechanism, that is, a “leader” captures a trace (for example, a series of sensor data) , and then any “follower” can navigate on that same trace. Second, it does not require the maps for navigation. Irrespective of whether the map information is complete or not, followers are still able to go to any point of interest (PoI) as long as a prior user has visited it before.
However, such P2P navigation systems only enable successful navigation along those previously recorded paths, which would result in the low scalability. Figs. 1A and 1B show schematic diagrams 110 and 120 of conventional P2P navigation, respectively. In the example of Fig. 1A, a user 1 recorded a trace from A to B, and another user 2 recorded a trace from A to C. In conventional P2P navigation systems, now if a third user 3 wants to navigate from B to C, he/she must first follow the reversed trace from B to A, and then follow the other trace from A to C. In the example of Fig. 1B, if a user (that is, the user 1) recorded a trace from D to C, and another user (that is, the user 2) recorded a trace from E to B, there is no way for a subsequent user (that is, the user 3) to move from
D to B using the conventional P2P navigation solutions.
In addition, the conventional P2P navigation systems also suffer from low flexibility. In this event, additional data sources may not be used as inputs or additional resources to improve the performance or accuracy of the navigation results. For instance, indoor maps may be available in some cases as additional resources, such additional resources, however, are not leveraged in a systematic way. Furthermore, in the conventional P2P navigation systems, users can merely follow a trace that was previously created by a leader. In other words, although there might be a large number of paths connecting all PoIs, it is still highly unlikely that there is a trace that exactly meets the user requirement.
Embodiments of the subject matter described herein provide a method and device for navigation in a flexible and scalable way. In particular, segments are obtained from one or more traces collected by a trace collector, such as a mobile terminal, a navigation device, a sensor, and so on. Then, a segment structure is generated for reflecting the relationship of the segments. With such a “cross-trace” method along with the segment structure, a target trace can be generated in a faster, more flexible and more accurate way. As such, efficiency and performance of the navigation can be improved.
It is to be noted that for sake of discussion, some embodiments will be described with reference to an indoor navigation. However, this is merely for illustration without suggesting any limitations as to the scope of the subject matter described herein. In some cases, embodiments of the subject matter described herein are also applicable to outdoor navigation. Other navigation scenarios as well as other types of application have also been envisaged, which will be described later.
Fig. 2 shows a schematic diagram of segment-based navigation according to embodiments of the subject matter described herein. As shown, the trace from A to B is divided into two segments 201 and 202, and the trace from A to C is divided into two segments 203 and 204. By concatenating the segments 201 and 204, a new trace (sometimes also referred to as a “target trace” ) can be obtained. In this way, if the user 3 wants to navigate from B to C, he/she can directly follow the generated target trace and arrive at point C in a quick and efficient way. As such, the problem in the example of Fig. 1A can be solved.
Construction of Segment Structure
More details of embodiments of the subject matter described herein will be discussed with reference to the following figures. Fig. 3 shows a flowchart of a method 300 for generating a segment structure according to embodiments of the subject matter described herein.
At 310, a plurality of segments are obtained from at least one trace. The at least one trace corresponds to a path from a start point to an end point in a region. The trace may be represented by data corresponding to user and environment inferences, an origin (or a start point) and a destination (or an end point) of a path, a series of movement events, location-related waypoints, and optional additional data related to the path (e.g. sensor readings, user annotations, pictures, etc. ) . A typical trace is shown in the following Table 1 as an example.
In this example, “Room 1234, Building 12, Corporation 1” is the starting point of the trace, and “Room 1357, Building 12, Corporation 1” is the end point of the trace. “Walk straight” , “Turn left” , and “Turn right” are movement events.
Table 1
It is to be understood that a trace may come from different sources, e.g., navigation data collected from mobile apps, sequences of instructions to find a destination, routes drawn on maps, data collected from robotic devices during patrol, user motion data from wearable devices, and so on. The above example of a trace is merely described for
purpose of discussion, rather than suggesting any limitation. Those skilled in the art would appreciate that the trace can be implemented as other suitable forms, for example, data collected from a sensor (also referred to as “sensor data” hereafter) , such as magnetic field magnitude, RF signal strength, and so on.
Fig. 4 shows a schematic diagram of a trace 400 as illustrated in Table 1. As shown in Fig. 4, the trace 400 is divided into five segments, 401 to 405. In particular, the segment 401 has an event type of “walk straight” and an event attribute of “M meters, ” for example, M=6. The segment 402 has an event type of “right turn” and an event attribute of “N degree, ” for example, N=90. The segment 403 has an event type of “upstairs” and event attributes of “X meters” (for example, X=3) and “Y degree slope” (for example, Y=45) . The segment 404 has an event type of “left turn” and an event attribute of “Z degree, ” for example, Z=90. The segment 405 has an event type of “walk straight in one way” and an event attribute of “K meters, ” for example, K=16.
It should be understood that the trace 400 shown in Fig. 4 is merely for ease of illustration, rather than suggesting any limitation to the scope of the embodiments of the subject matter described herein. Those skilled in the art would readily understand that the trace may be divided into any suitable number of segments.
Alternatively, in some embodiments, the trace may be divided into segments based on map information. In such cases, a location associated with at least a part of a trace may be determined from geographical information of a map. The location may indicate a room, a site, a street, a traffic light, an intersection, and so on. Then, the trace may be divided into segments based on the location. In an example, given the additional map (such as a floor plan) , a trace can be projected to the map by, for example, using the trace projection technique. Then, based on the map information (such as a hall way or a road junction) , the projected trace can be divided into appropriate segments with high efficiency and accuracy. For instance, a passageway between two rooms may be determined as a segment.
It is to be understood that the segmentation as described above is merely an example rather than limitation. Those skilled in the art would appreciate that the trace may be divided into segments based on other factors, for example, system requirements. In an embodiment, the system requirements may specify that a trace is divided into
segments every 10 meters. Thus, a trace of 50 meters may be divided into 5 segments.
Still referring to Fig. 3, at 320, a segment structure is generated based on the segments for navigation in the region. The term “segment structure” refers to an organization of a plurality of segments. The segment structure reflects relationships among the segments, for example, whether the segments are matching, the matching degree of the segments, and so on.
In some embodiments, the segment structure may be determined based on a matching degree of different segments. In an example, the segment structure may be implemented in the form of a tree in a hash structure. A node of the tree may correspond to a segment, and a child of the node may correspond to another segment that is similar to the segment. The difference between the two segments may be reflected by a hash sequence of the child of the node.
Hash sequences for the segments may be first generated based on the matching degree, and then a hash structure (also referred to as a hash tree) may be built as the segment structure based on the hash sequences.
Segment Matching
Segment matching mainly aims to identify pairs of segments, which are recorded along the same pathway. During matching, the matching degree between segments may be determined. In some embodiments, a matching degree of a first segment and a second segment may be determined, for example, based on a distance between the two segments, geometry shapes of the segments, event sequences of the segments, and/or the like. In some embodiments, the distance and the geometry shapes may be for example determined based on location-specific sensor data (such as geomagnetic signals) of the segments. If the similarity exceeds a similarity threshold, it can be determined that the first and second segments are matching. Then, the segment structure may be determined based on the matching degree.
Figs. 5A and 5B show schematic diagrams of matched segments and mismatched segments according to embodiments of the subject matter described herein, respectively. In this example, the segments are represented by the geomagnetic signals. From Fig. 5A, it can be seen see that although there are differences between two geomagnetic signals, the shapes of the two segments 511 and 512 are roughly the same.
On the contrary, signals from two segments 521 and 522 in Fig. 5B share much less similarities and hence could be considered unmatched. The robustness of the geomagnetic signal may be determined in a variety ways, which are not detailed here. It is to be noted that the match or mismatch determination is not necessarily performed based on segments having substantially identical length, segments recorded along the same pathway but having different lengths may also be compared. It is also to be noted that any similarity determination algorithm now known or later developed can be employed for identifying the match/mismatch of segments.
In some embodiments, different walking speeds and different smartphone sensor sampling rates during recording will make the recorded signals have widely different magnetic magnitude sequences. In such cases, the first and second segments may be unsynchronized. To cope with this problem, before determining the similarity, the first segment may be aligned with the second segment based on a dynamic time warping (DTW) algorithm.
More specifically, a two-step approach may be used to identify whether two sequences match. First, the DTW algorithm is used to synchronize two sequences, and then a Support Vector Machine (SVM) algorithm is used to classify the synchronization result. To achieve a better accuracy, some features may be selected to train the SVM classifier. For example, the selected features may include length of the first segment, length of the second segment, DTW distance between the two segments, shape of optimal DTW path in the warping cost matrix, and/or the like.
Figs. 6A and 6B show schematic diagrams of matching and mismatching cases according to embodiments of the subject matter described herein, respectively. Specifically, Figs. 6A and 6B show optimal DTW paths in the warping cost matrix for both matching and mismatching cases, respectively. Every point (i, j) in the solid line (also referred to as a “synchronization line” ) means that thei-th sample in segment one should be matched with the j-th sample in segment two. The dashed line is a reference line. The intermediate area between the synchronization line and the reference line may serve as a match indicator. As to the example shown in Fig. 6A, the synchronization line is similar to the reference line and the intermediate area is small. Thus, it can be determined that the matching degree is high. In contrast, in the example shown in Fig. 6B, the synchronization line drifts from the reference line and the intermediate area is
relatively large, which indicates that the matching degree is low.
Segment Fusion
In some embodiments, to improve sensor data quality, navigation robustness, and resistance to signal noise, interference, and outliers, segment fusion is used to aggregate the matched segments into a general representation. In an example implementation, an attribute weight w is introduced for every segment, where wi means the total number of raw segments that the i-th segment is aggregated from. For example, the weight of a raw segment is 1 and if two raw segments are aggregated to get a new segment, the weight becomes 2. The DTW synchronization algorithm may be used to get the time warping cost matrix and synchronization trajectory. Then for every point (i, j) in the synchronization trajectory, its value may be determined by weighted average between the i-th sample in “segment one” and the j-th sample in “segment two” , as shown in Figs. 5A-6B. As such, a new segment can be obtained. Then, down-sampling may be performed on the generated sequence to rescale its length towhere wi is the weight and li is the length of the segments. At last, the weight of the new segment may be set to wi+wj. This process may repeat every time when a new segment match is identified.
Hash Structure Building
In some embodiments, the hash structure may be implemented as a k-d tree based on the matching degree. A family of hash functions, which are used for building the hash structure, may be implemented based on Distance-Based Hashing (DBH) for mapping data under an arbitrary distance into real numbers. The data mapping may be implemented, for example, by using a FastMap technique.
The formal definition may be given as: given any distance spacechoose two reference membersFor any query point s inthe hash function may be:
Ifis a Euclidean distance space, this hash function (1) will project the
query point to the line determined by s1 and s2. Ifis a non-Euclidean distance space, this hashing function (1) can still approximately preserve distance relationship. After the hash value is obtained, it may be binarized based on whether or notlies in a certain range [t1, t2] as follows:
According to equation (2) , if the hash value lies in the range of [t1, t2] , it may be binarized as 1; otherwise, it may be binarized as 0.
In some embodiments, the range [t1, t2] may be chosen to make a random object inhave a 50%possibility to be mapped within the range and a 50%possibility to be mapped outside the range. The set of ranges may be defined as:
In some embodiments, the hash structure may be built according to Algorithm 1 shown below. For every segment si in a set of segments (also referred to as a “segment set” ) S, a hash sequence hi with the length ofbits may be maintained. To generatebits for every hash sequence, Algorithm 1 takesiterations. For each iteration, it first randomly chooses two reference segments si1, si2, and computes for every segment sj based on the matching degree, for example, the DTW distance. Then, a value may be assigned to the hash bits according to whether is larger or smaller than the median. Ifis smaller than the median, a bit “0” may be appended to the hash sequence; otherwise, a bit “1” may be appended to the hash sequence. In total, O (n log n) comparisons between segments are conducted. Since the hash sequence has a length ofthere are a total of O (n) possible types of hash sequence. Due to the algorithm′s balancing mechanism, the
average number of segments that are hashed to a specific hash sequence is O (1) .
For example, given a set of segments S = {s1, s2, s3, s4} , s1 and s2 may be chosen by Algorithm 1 as the reference segments to compute the first hash bit for all the hash sequences. In this example, assuming that the result is {1, 0, 1, 0} , then it repeats the operation on different reference segments and gets the second hash bit, for instance, {10, 00, 11, 01} . Thus, the hash sequences of s1, s2, s3 and s4 are “10” , “00” , “11” and “01” , respectively.
Structure Update
The hash structure may be updated incrementally. If a new segment is to be inserted to the hash structure, a query operation may be performed to find matching segments in the hash structure for an input segment. A hash sequence for a new segment may be obtained by comparing the new segment with all reference segments, for example, after O (log n) comparisons. Then, it will be compared with all the segments whose hash sequence has at most one bit difference with itself to find a match case. Since there are a total of O (log n) hash sequences satisfying this requirement, and every sequence has an average of O (1) corresponding segments, this may take, on average, O (log n) comparisons. Therefore, a query operation also takes a total of O (log n) comparisons. For the example shown above, if a query to find a match segment for s′1 comes in, s′1 may be compared with all reference segments and obtain its hash sequence, say {10} in this case. Then it
finds s1 and s′1 matches to each other. Details of the matching are similar as those discussed in the section of Segment Matching, and are thus omitted here.
When the number of segments redoubles, a new pair of reference segments may be chosen and one more bit may be added to every hash sequence. This step takes O (n) comparisons. In the above example, if one more segment s5 is added into the hash structure, it should be compared with all the reference traces to get its hash sequence. If additional four segments {s5, s6, s7, s8} are added, it will choose two more reference segments and extend all the hash sequence by one bit. In this way, the hash structure can be more scalable.
In some cases, segments that come into the device later may break the previous mapping balance, making a disproportional distribution of hash values. To address this problem, embodiments of the subject matter described herein employ a re-hash operation to achieve balance. The re-hash operation may be performed in a variety of ways. In an embodiment, in the re-hash operation, for any hash digit, if the number of hash bits set to one is much more/less than that to zero, the re-hash operation may be triggered to reassign the hash bit value based on the median ofThe total complexity of the re-hash operation for any digit is O (n) . For the example shown above, if the first hash bit for all subsequent four segments {s5, s6, s7, s8} is 1, the re-hash operation will be triggered and reassign the first hash bit to achieve a more balanced distribution.
In addition, in some cases, undesired collision and/or branching problems may occur in the hash structure. For example, the collision happens when mismatching segments (that is, the matching degree of these segments is low) are hashed to the same hash sequence. Branching refers to the problem where matching segments are hashed to different hash sequences.
To solve the hash collision problem, the pairwise matching algorithm may be applied for all the segments with the same hash sequence. Since the average number of segments that are hashed to a specific hash sequence is O (1) , this operation only takes O (1) comparisons for every hash sequence.
To solve the hash branching problem, it is possible that several pairs of matched segments are missed. To a certain extent, this problem is more severe when a bad set of reference traces is chosen. To improve overall system robustness, in some embodiments,
a redundancy mechanism may be introduced. In particular, given a duplication factor, K (K is a constant) hash structures may be built to index traces under different sets of reference segments. All the operations are applied to different copies of hash structures. Even though a pair of matched segments can hash to diverse hash sequences in one hash structure, they tend to be hashed to the same sequence in other hash structures. In this way, the branching ratio in segment indexing can be significantly reduced without an increase in computational complexity.
It is to be understood that the hash structure is just an example for implementing the segment structure, rather than suggesting any limitation. Those skilled in the art would appreciate that other suitable structures for indexing high-dimension data are also applicable.
Conventionally, to find a satisfactory trace between any two Pols, global knowledge of segment matching from all traces and how each segment connects to each other is required. It would be time-consuming to check all pairs of matched segments for each trace-generation request. To solve this problem, embodiments of the subject matter described herein construct a segment graph as an intermediary representation to aggregate the segments to provide the satisfactory trace efficiently. More details of the segment graph will be discussed below.
Segment Graph Construction
According to embodiments of the subject matter described herein, the term “segment graph” refers to a graph concatenating or connecting different segments in the segment structure. An edge of the segment graph may indicate a segment, and a node of the segment graph may indicate a connector between two or more segments. The connected segments may be also referred to as “adjacent segments. ” The connector may have a connector type and a corresponding attribute. The connector may further have a list of the adjacent segments.
The model of the graph may be defined before introducing its construction process. A segment graph G is a representation of overall segment connectivity, while a map M is a real indoor floor plan. In some embodiments, such a graph G is modeled using segments and connectors, i.e., G is defined as a set of segmentsand
a set of connectorsFor an indoor map M, it may be defined as a set of pathwaysand a set of connectorsAmap pathway and a graph segment differ only in that the segment includes a representation of sensor data. Each connector may have a type, an attribute value, the ID list of the adjacent segments, and so on.
In some embodiments, a segment graph may be constructed with only segment matching information. If optional indoor maps are available, the device may first project traces into the map, and then apply a hidden Markov model to get a graph representation. The segment graph may be constructed either with a map or without a map.
Graph Construction -Without Map
In some embodiments, the segment graph construction determines a first bucket of segments and a second bucket of segments from the segment structure. The first bucket may include a set of segments serving as input of a set of segments in the second bucket. Then, the connector between segments in the first and second buckets may be obtained. Now embodiments are provided to present how to construct the graph without any map information. In an embodiment, the segment graph may be constructed according to the following Algorithm 2.
Given a set of traces T and a set of buckets B, where each bucket is a set of segments that match each other as input, the Algorithm 2 uses trace level connectivity
information to connect different buckets with distinctive connector values (lines 1-7 of Algorithm 2) . The bucket function returns the corresponding bucket for each segment, and the value function returns the attribute value for each connector. Even if the values for certain types of connector are continuous (e.g. turn angle in degrees) , they can still discretized them by introducing thresholds or value ranges to make the total number of distinct connectors constant. Each bucket keeps a list of connector values representing individual links from itself to other buckets. The algorithm then finds the most probable next segment for every connector value for each bucket using majority vote (lines 8-13 of Algorithm 2) . After obtaining the connectivity between different segments, the segment graph can be obtained from the buckets and the intermediate connectors between them (lines 14-16 of Algorithm 2) .
Fig. 7 shows a schematic diagram of graph construction according to embodiments of the subject matter described herein. In the example of Fig. 7, there are four traces in the system. Every trace contains two segments connected with 90-degree right turn events. According to the matching results, segments 1-4 match each other, and belong to a first bucket. Similarly, segments 5-7 go to the second bucket, and segment 8 goes to a third bucket. Since the majority of segments in the first bucket are connected to the segments in second red bucket with a 90-degree right turn. For example, the first bucket and the second bucket may be connected with a right turn connector in the segment graph.
After obtaining the segment graph, PoIs (including a starting point, an ending point, a connector, and/or the like) may be inserted into the corresponding places in the graph. When a user requests the navigation service, he/she selects the start and ending points from the PoI database. Then a new trace (also referred to as a “target trace” ) may be generated by searching the segment graph and selecting the appropriate segments.
Graph construction -with map
As an alternative, in some embodiments, the segments may be projected to a map. Then, the connector may be determined between the segments based on geographical information of the map, also referred to as “map information” hereafter.
The map information can facilitate the segment graph construction process. Specifically, it benefits to get a clear representation for segment graphs, provide ground
truth for all events and segments, reduce the dimension of the segment indexing structure, and so on. In some embodiments, to fully take advantages of a map, each trace is projected onto the map, while dealing with potential mapping conflicts from new coming traces.
In embodiments where the map information is used, a segment may be projected to the map using a map mapping algorithm. A representative signal (for example, sensor data) may be generated for every segment mapped in the map. Then, the map geometry may be used to represent how to connect segments. Now more details of the three processes are discussed below.
The first step of constructing a segment graph is to project a trace onto the map. Finding the best-match pathway for an abstract trace in the floor plan can be modeled as a search problem. In the construction of the segment graph, the length of recorded traces and pathways in the map is not measured by a uniform metric (steps and meters respectively, for instance) . To solve this problem, in some embodiments, different metrics may be converted to a uniform metric for effective trace projection.
In addition, during the construction of the segment graph, pathway search in the map has exponential complexity due to the large amount of possible match candidates. Embodiments of the subject matter described herein propose the following solutions to reduce the computational overhead.
Generally, longer segments from a trace need to be projected to longer pathways on the map while shorter segments need to be projected to their shorter counterparts, different segments from the same trace should have roughly the same average step length. Therefore, the variance of the average step length may be used for different segments as the metric to measure match quality. Formally, the problem may be defined as follows.
Given a recorded trace U and a map M, pathway P is a possible matching candidate for trace U in M. andis the sequence of segments of trace U and pathway P, respectively. The function length (·) is used to obtain the length of a segment. If the segment comes from a recorded trace, the function returns the number of steps in the segment, otherwise it returns the length in meters. is used to denote the average step length set for the matching
between U and P. andare sequences of connectors of trace U and pathway P, respectively. Every connectororcan also be represented by two adjacent segmentsorare used to denote two connectors that have the same event type and matched event value.
To differentiate the effect of segments with different lengths, a weighted variance of L (U, P) may be considered as the matching metric. To sum up, the goal of finding the best match pathway in the map can be expressed assubject to
From the analysis of the computational challenge, it can be known that the number of potential pathways that fit a given trace event pattern is exponential. In view of this large search space, the search algorithm is improved at least along two dimensions: i) reducing the computation within each step and ii) reducing the number of search steps.
For the first goal, an incremental method may be incorporated to update the weighted variance, for example, according to Lemma A. 1. This method fully utilizes the previous result to compute the result of the next step, and only takes O (1) time for each step state update.
For the second goal, a novel pruning method is adopted. From the mathematical derivation in Lemma A. 1, it can be known that This characteristic gives a good way to prune the search. That is, if the weighted variance of the average step length for the first several segments in Pathway A is already larger than that for all the segments in Pathway B, the search for Pathway A can be pruned due to the monotonic non-decreasing characteristic of the weighted variance of average step length.
The performance of pruning also relies on search order: the earlier the best-match pathway is found, the more unnecessary searches can be avoided. Based on this observation, the most promising search pathways may be tried to expand in every iteration. To identify how promising a pathway is, the normalized step length variance is used as the metric. Thus the algorithm chooses the pathway with minimal norm (L (U, P)) .
To construct the segment graph, all segments are projected to the map and generate a projection graph representation. One solution iteratively applies the heuristic search algorithm from the single trace mapping problem. However, there is a challenge about how to resolve conflicts between different segment mapping results.
To solve this problem, in some embodiments, a Hidden Markov Model (HMM) may be employed to infer the most likely magnetic signal sequence for every segment.
Specifically, the sequence of segments is first used as hidden variable and corresponding magnetic signal sequences as observed variable to train the HMM. After that, the probability distribution of magnetic signal sequences is obtained for every segment. Then, the one with highest probability may be selected as the magnetic signal sequence for the segment.
To avoid handling the magnetic signal sequences during training and simplify the process, the segment matching results and the segment buckets may be employed. So in training, the actual observed variable is the bucket index. During the prediction, the result is also the most probable bucket.
After projecting all the traces into a map, the most probable bucket may be extracted for every segment in the map and connected through their corresponding navigation event connectors. As such, the segment graph can be generated in a more accurate way.
Use of Navigation System
When a user provides a starting point and an ending point to request the navigation service, for example, via a user input, the target trace may be generated in a variety of ways, including, but not limited to, providing the shortest path from the starting point to the ending point, considering the quality of segments associated with the starting point and the ending point, and so on.
FIG. 8 illustrates an example of target trace generation using the segments-based navigation system described as above, according to the embodiment of the subject matter described herein. As shown, three recorded traces are demonstrated as an example in FIG. 8, and each of the traces has been divided into several segments. For example, the first trace has been divided in to segments 811, 812 and 813, the second trace has been divided in to segments 821 and 822, and the third trace has been divided in to segments 831 and 832.
Again, it is to be understood that the number of traces as shown in FIG. 8 is only an example, and suggests no limitation as to the scope of the subject matter described herein. More or fewer traces can be envisaged.
In some embodiments, more traces may be beneficial to generate an optimized
trace (such as a trace having the shortest distance) from the start point to the end point selected by the user. However, it is to be understood that the proposed segments-based navigation solution does not necessarily rely on a large number of previously recorded traces. In fact, even only one historical trace generated by a leader would also be helpful for generating a new trace for a follower. Still referring to FIG. 8, as discussed above, the three traces may come from different sources depending on the measuring tools available to the leaders.
In some embodiments, when a user would like to find a way from a start point to an end point, the user only needs to provide the start point and the end point for example via a request. In an embodiment, the user may directly select the start and end points on an user interface. Still referring to FIG. 8, for example, the user 3 may want to find a way from room 820 to room 860. In this case, upon the user’s request of trace generation is received by the navigation system, the system would automatically determine/select segments that are related to the target trace connecting room 820 and room 860 for the user 3.
In some embodiments, the determination/selection of segments from the respective trace can be based on the user’s own criteria or preferences, such as movement time of the target trace, movement distance of the target trace, or ease of access of the target trace.
In some embodiments, the determination/selection of segments from the respective trace can be based on the trace quality of at least one of the first source and the second source. For example, since the signals from the GPS satellites may be attenuated and scattered by tunnels, bridges and buildings, the system may select some segments corresponding to the open area. It is to be noted that two or more criteria or preferences can be simultaneously applied for the segments determination/selection.
In an example embodiment, upon the user input is received, the proposed navigation system matches the starting point and the end point in the Poi database. Instead of providing the shortest path from the starting point to the destination, the proposed system returns the one feasible route by taking the quality of segment into consideration. Here, segment quality is measured by the size of segment buckets as discussed with reference to Fig. 7.
For example, for a segment with two buckets, if 98 segments belong to one bucket and 2 segments belong to the other bucket, the quality of the segment is considered good, and in this case, the first bucket’s signals are treated as default signals for the segment. However, if 50 segments belong to one bucket and the other 50 segments belong to the other bucket, it is hard to decide what signals we should use for the segment.
In some embodiments, the concept of signal to noise ratio (SNR) can be adopted to measure the quality of segment. Formally, SNR is defined in the form of
where |bucketl| is the number of candidates in the largest bucket and |bucketsl| is the size of the second largest bucket. In the case without map, SNR can be computed by the ratio of the number of traces in the bucket to the number of traces in its counterpart with the same formula.
With SNR information for each segment, the proposed system constructs a new path search graph based on trace graph from Section “Segment Graph Construction” by updating the “length” value of each segment as
Naturally, this will add up to the cost for choosing the low-quality segments in the shortest path algorithm. At last, Dijkstra’s algorithm is applied to find the shortest path between the starting point and the destination.
Still referring to Fig. 8, in this example, the system selects segment 812 from the first trace, segment 821 from the second trace, and segment 831 from the third trace to satisfy the user’s request. Once the system further determines that those selected segments are adjacent to one another, those segments are connected or “stitched” in a way of end to end, via one or more connectors, to generate a target trace satisfying the user’s request. In this example, the determined adjacent segments 812, 821 and 831 are connected via connectors 840 and 850 to generate a target trace from room 820 to room 860.
As discussed above, compared to those conventional approaches that heavily rely on maps, the proposed navigation approach does not require a map for navigation. However, with the additional map information, both segment division and segment connection procedure can be expedited and eased. Therefore, in some embodiments, the map information may also be utilized to connect two or more segments that are projected on the map. For example, if it is found that two adjacent segments have a shared waypoint on the map, such as a room number, then the two segments can be subsequently connected via a proper connector.
Other Applications
As discussed above, the navigation approach according to implementations of subject matter described herein is based on the segment structure that is stored and updated over time. Therefore, such stored and updated segment structure may also be applied on other aspects of people’s daily life.
In some embodiments, a graph that reflects “hot spots” in an area within a period can be generated based on the popularity attributes associated with segments in the segment structure and demonstrated to the user. In this case, for example, a shop owner may use such a graph to find the best location for his/her shop in a shopping mall. In another example, a tourist may use such a graph to find the most popular places to visit in a park.
In some other embodiments, the segment structure may help a passenger using public transportation system, such as a subway passenger, to plan the most appropriate route, including the metro line changes, from the origin to the destination.
Example Device
The methods and functions described in this specification may at least partly executed by one or more hardware logic components, and illustrative types of usable hardwarelogical components include field programmable gate array (FPGA) , application-specific standard product (ASSP) , system on chip (SOC) , complex programmable logic device (CPLD) , etc.
Program codes for carrying out methods of the subject matter described herein may be written in any combination of one or more programming languages. These
computer program codes may be provided to a processor or controller of a general purpose computer, special purpose computer, or other programmable data processing apparatus, such that the program codes, when executed by the processor or controller, cause the functions/operations specified in the flowcharts and/or block diagrams to be implemented. The program code may be executed entirely on a machine, partly on the machine, as a stand-alone software package, partly on the machine and partly on a remote machine or entirely on the remote machine or server.
In the context of the subject matter described herein, a machine readable medium may be any tangible medium that may contain, or store a program for use by or in connection with an instruction execution system, apparatus, or device. The machine readable medium may be a machine readable signal medium or a machine readable storage medium. A machine readable medium may include but not limited to an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing. More specific examples of the machine readable storage medium would include an electrical connection having one or more wires, a portable computer diskette, a hard disk, a random access memory (RAM) , a read-only memory (ROM) , an erasable programmable read-only memory (EPROM or Flash memory) , an optical fiber, a portable compact disc read-only memory (CD-ROM) , an optical storage device, a magnetic storage device, or any suitable combination of the foregoing.
Further, while operations are depicted in a particular order, this should not be understood as requiring that such operations be performed in the particular order shown or in sequential order, or that all illustrated operations be performed, to achieve desirable results. In certain circumstances, multitasking and parallel processing may be advantageous. Likewise, while several specific implementation details are contained in the above discussions, these should not be construed as limitations on the scope of the subject matter described herein. Certain features that are described in this specification in the context of separate implementations may also be implemented in combination in a single implementation. Conversely, various features that are described in the context of a single implementation may also be implemented in multiple embodiments separately or in any suitable sub-combination.
Example Implementations
Listed below are some example implementations of the subject matter described herein.
In some implementations, a computer-implemented method is provided. The method comprises: determining a first segment corresponding to a first reference trace obtained from a first source; determining a second segment corresponding to a second reference trace obtained from a second source, a reference trace indicating a path from a start point to an end point; and generating a target trace at least based on the first segment and the second segment.
In some implementations, the first and second sources include at least one of: navigation data; an instruction to a destination; a route on a map; and motion data measured from a device.
In some implementations, the first source is different from the second source.
In some implementations, the method further comprises: receiving a request related to the target trace, the request including at least an start point and an end point of the target trace.
In some implementations, the determining a first segment corresponding to a first reference trace obtained from a first source comprises: in response to receiving the request related to the target trace, determining the first segment based on at least one of: movement time of the target trace; movement distance of the target trace; quality of a segment corresponding to the first trace; quality of the first source; and ease of access of the target trace.
In some implementations, the generating a target trace at least based on the first segment and the second segment comprises: in response to determining that the first segment is adjacent to the second segment, connecting the first segment with the second segment, via a connector, to form at least a part of the target trace.
In some implementations, the generating a target trace at least based on the first segment and the second segment comprises: in response to determining that the first segment is adjacent to the second segment, connecting the first segment with the second segment, via a connector, based on a map information that is related to the first segment and the second segment.
In some implementations, an electronic device is provided. The device comprises: a processor; a memory coupled to the processor and storing instructions which, when executed by the processor, perform acts including: determining a first segment corresponding to a first reference trace obtained from a first source; determining a second segment corresponding to a second reference trace obtained from a second source, a reference trace indicating a path from a start point to an end point; and generating a target trace at least based on the first segment and the second segment.
In some implementations, the first and second sources include at least one of: navigation data; an instruction to a destination; a route illustrated on a map; and motion data measured from a device.
In some implementations, the first source is different from the second source.
In some implementations, the acts further comprises: receiving a request related to the target trace, the request including at least an start point and an end point of the target trace.
In some implementations, the determining a first segment corresponding to a first reference trace obtained from a first source comprises: in response to receiving the request related to the target trace, determining the first segment based on at least one of: movement time of the target trace; movement distance of the target trace; quality of a segment corresponding to the first trace; quality of the first source; and ease of access of the target trace.
In some implementations, the generating a target trace at least based on the first segment and the second segment comprises: in response to determining that the first segment is adjacent to the second segment, connecting the first segment with the second segment, via a connector, to form at least a part of the target trace.
In some implementations, the generating a target trace at least based on the first segment and the second segment comprises: in response to determining that the first segment is adjacent to the second segment, connecting the first segment with the second segment, via a connector, based on a map information that is related to the first segment and the second segment.
In some implementations, a computer program product is provided. The
computer program product is stored on a non-transient machine-readable medium and comprises machine-executable instructions. The instructions, when executed in a device, causes the device to: determine a first segment corresponding to a first reference trace obtained from a first source; determine a second segment corresponding to a second reference trace obtained from a second source, a reference trace indicating a path from a start point to an end point; and generate a target trace at least based on the first segment and the second segment.
In some implementations, the first source is different from the second source.
In some implementations, the instructions further causes the device to: receive a request related to the target trace, the request including at least an start point and an end point of the target trace.
In some implementations, the determining a first segment corresponding to a first reference trace obtained from a first source comprises: in response to receiving the request related to the target trace, determining the first segment based on at least one of: movement time of the target trace; movement distance of the target trace; quality of a segment corresponding to the first trace; quality of the first source; and ease of access of the target trace.
In some implementations, the generating a target trace at least based on the first segment and the second segment comprises: in response to determining that the first segment is adjacent to the second segment, connecting the first segment with the second segment, via a connector, to form at least a part of the target trace.
In some implementations, the generating a target trace at least based on the first segment and the second segment comprises: in response to determining that the first segment is adjacent to the second segment, connecting the first segment with the second segment, via a connector, based on a map information that is related to the first segment and the second segment.
Although the subject matter described herein has been described in a language specific to structural features and/or method logic actions, it should be appreciated that the subject matter as defined in the appended claims is not limited to the specific features or actions described above. On the contrary, the specific features and actions described above are merely example forms for implementing the claims.
Claims (20)
- A computer-implemented method, comprising:determining a first segment corresponding to a first reference trace obtained from a first source;determining a second segment corresponding to a second reference trace obtained from a second source, a reference trace indicating a path from a start point to an end point; andgenerating a target trace at least based on the first segment and the second segment.
- The method of claim 1, wherein the first and second sources include at least one of:-navigation data;-an instruction to a destination;-aroute on a map; and-motion data measured from a device.
- The method of claim 1, whereinthe first source is different from the second source.
- The method of claim 1, further comprising:receiving a request related to the target trace, the request including at least an start point and an end point of the target trace.
- The method of claim 4, wherein the determining a first segment corresponding to a first reference trace obtained from a first source comprises:in response to receiving the request related to the target trace, determining the first segment based on at least one of:-movement time of the target trace;-movement distance of the target trace;-quality of a segment corresponding to the first trace;-quality of the first source; and-ease of access of the target trace.
- The method of claim 1, wherein the generating a target trace at least based on the first segment and the second segment comprises:in response to determining that the first segment is adjacent to the second segment, connecting the first segment with the second segment, via a connector, to form at least a part of the target trace.
- The method of claim 1, wherein the generating a target trace at least based on the first segment and the second segment comprises:in response to determining that the first segment is adjacent to the second segment, connecting the first segment with the second segment, via a connector, based on a map information that is related to the first segment and the second segment.
- An electronic device, comprising:a processor;a memory coupled to the processor and storing instructions which, when executed by the processor, perform acts including:determining a first segment corresponding to a first reference trace obtained from a first source;determining a second segment corresponding to a second reference trace obtained from a second source, a reference trace indicating a path from a start point to an end point; andgenerating a target trace at least based on the first segment and the second segment.
- The electronic device of claim 8, wherein the first and second sources include at least one of:-navigation data;-an instruction to a destination;-aroute illustrated on a map; and-motion data measured from a device.
- The electronic device of claim 8, whereinthe first source is different from the second source.
- The electronic device of claim 8, wherein the acts further comprises:receiving a request related to the target trace, the request including at least an start point and an end point of the target trace.
- The electronic device of claim 11, wherein the determining a first segment corresponding to a first reference trace obtained from a first source comprises:in response to receiving the request related to the target trace, determining the first segment based on at least one of:-movement time of the target trace;-movement distance of the target trace;-quality of a segment corresponding to the first trace;-quality of the first source; and-ease of access of the target trace.
- The electronic device of claim 8, wherein the generating a target trace at least based on the first segment and the second segment comprises:in response to determining that the first segment is adjacent to the second segment, connecting the first segment with the second segment, via a connector, to form at least a part of the target trace.
- The electronic device of claim 8, wherein the generating a target trace at least based on the first segment and the second segment comprises:in response to determining that the first segment is adjacent to the second segment, connecting the first segment with the second segment, via a connector, based on a map information that is related to the first segment and the second segment.
- A computer program product being stored on a non-transient machine-readable medium and comprising machine-executable instructions, the instructions, when executed in a device, causing the device to:determine a first segment corresponding to a first reference trace obtained from a first source;determine a second segment corresponding to a second reference trace obtained from a second source, a reference trace indicating a path from a start point to an end point; andgenerate a target trace at least based on the first segment and the second segment.
- The device of claim 15, whereinthe first source is different from the second source.
- The computer program product of claim 15, wherein the instructions further causes the device to:receive a request related to the target trace, the request including at least an start point and an end point of the target trace.
- The computer program product of claim 17, wherein the determining a first segment corresponding to a first reference trace obtained from a first source comprises:in response to receiving the request related to the target trace, determining the first segment based on at least one of:-movement time of the target trace;-movement distance of the target trace;-quality of a segment corresponding to the first trace;-quality of the first source; and-ease of access of the target trace.
- The computer program product of claim 15, wherein the generating a target trace at least based on the first segment and the second segment comprises:in response to determining that the first segment is adjacent to the second segment, connecting the first segment with the second segment, via a connector, to form at least a part of the target trace.
- The computer program product of claim 15, wherein the generating a target trace at least based on the first segment and the second segment comprises:in response to determining that the first segment is adjacent to the second segment, connecting the first segment with the second segment, via a connector, based on a map information that is related to the first segment and the second segment.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2017/088523 WO2018227508A1 (en) | 2017-06-15 | 2017-06-15 | Trace segments based navigation |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2017/088523 WO2018227508A1 (en) | 2017-06-15 | 2017-06-15 | Trace segments based navigation |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2018227508A1 true WO2018227508A1 (en) | 2018-12-20 |
Family
ID=64659673
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2017/088523 WO2018227508A1 (en) | 2017-06-15 | 2017-06-15 | Trace segments based navigation |
Country Status (1)
Country | Link |
---|---|
WO (1) | WO2018227508A1 (en) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102853842A (en) * | 2012-05-15 | 2013-01-02 | 董路 | Navigation path planning method, apparatus, and system |
US8417446B2 (en) * | 2008-07-25 | 2013-04-09 | Navteq B.V. | Link-node maps based on open area maps |
CN103674017A (en) * | 2013-12-20 | 2014-03-26 | 广东瑞图万方科技股份有限公司 | Indoor electronic map generation system, indoor navigation method and system |
CN104937374A (en) * | 2012-12-19 | 2015-09-23 | Skf公司 | Graphical route navigation |
-
2017
- 2017-06-15 WO PCT/CN2017/088523 patent/WO2018227508A1/en active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8417446B2 (en) * | 2008-07-25 | 2013-04-09 | Navteq B.V. | Link-node maps based on open area maps |
CN102853842A (en) * | 2012-05-15 | 2013-01-02 | 董路 | Navigation path planning method, apparatus, and system |
CN104937374A (en) * | 2012-12-19 | 2015-09-23 | Skf公司 | Graphical route navigation |
CN103674017A (en) * | 2013-12-20 | 2014-03-26 | 广东瑞图万方科技股份有限公司 | Indoor electronic map generation system, indoor navigation method and system |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Chen et al. | TrajCompressor: An online map-matching-based trajectory compression framework leveraging vehicle heading direction and change | |
Quddus et al. | Shortest path and vehicle trajectory aided map-matching for low frequency GPS data | |
US20220333930A1 (en) | Map-matching for low-sampling-rate gps trajectories | |
Hashemi et al. | A weight-based map-matching algorithm for vehicle navigation in complex urban networks | |
US10126134B2 (en) | Method and system for estimating uncertainty for offline map information aided enhanced portable navigation | |
US10018474B2 (en) | Method and system for using offline map information aided enhanced portable navigation | |
Xiao et al. | Lightweight map matching for indoor localisation using conditional random fields | |
Hunter et al. | The path inference filter: model-based low-latency map matching of probe vehicle data | |
Chen et al. | Map-matching algorithm for large-scale low-frequency floating car data | |
KR20190082071A (en) | Method, apparatus, and computer readable storage medium for updating electronic map | |
WO2017162036A1 (en) | Yawing recognition method, terminal and storage medium | |
WO2018090773A1 (en) | Method and device thereof for matching track points captured by positioning system to map | |
CN108253976B (en) | A three-stage online map matching algorithm with full use of vehicle heading | |
US9086288B2 (en) | Method and system for finding paths using GPS tracks | |
CN105335597B (en) | For obtaining the method and system of the trajectory model of route | |
US20170227364A1 (en) | Information processing apparatus and trajectory information generating method | |
CN112444254B (en) | Method, apparatus and computer program product for generating correspondence between map versions | |
CN112444255B (en) | Method, apparatus and computer program product for generating correspondence between map versions | |
Torre et al. | Matching GPS traces to (possibly) incomplete map data: bridging map building and map matching | |
CN106855878B (en) | Historical driving track display method and device based on electronic map | |
US11519750B2 (en) | Estimating a device location based on direction signs and camera output | |
US20230196215A1 (en) | Method for computing a set of itineraries from a departure location to an arrival location using cluster-based searching | |
Rehrl et al. | Optimization and evaluation of a high-performance open-source map-matching implementation | |
Cho et al. | A basis of spatial big data analysis with map-matching system | |
Karimi et al. | Uncertainty in personal navigation services |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 17913305 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 17913305 Country of ref document: EP Kind code of ref document: A1 |