A method, device, and storage medium for processing trajectory data
By determining key points in the trajectory data set and dividing molecular sets, and building a target key point tree, the problem of low retrieval efficiency of massive trajectory data in the existing technology is solved, and more efficient retrieval performance is achieved.
Patent Information
- Application Number
- CN202111361080.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2021-11-17
- Publication Date
- 2025-05-30
- Estimated Expiration
- 2041-11-17
AI Technical Summary
When processing massive trajectory data, the generated binary tree depth is too high, resulting in a reduction in retrieval efficiency. The tolerance distance convergence of traditional nearest neighbor algorithms is slow, further reducing retrieval efficiency.
By determining the first key point in the trajectory data set and calculating its distance from other trajectory data, the trajectory data set is divided into multiple subsets; recursively determine the second key point in each subset until it cannot be divided anymore, and a target key point tree is constructed.
The structure of the key point tree is optimized, the depth of the tree is reduced, the retrieval performance is improved, and the retrieval efficiency of massive trajectory data is improved.
Smart Images

Figure CN114036345B_ABST
Abstract
Description
Technical Field
[0001] Embodiments of the present invention relate to the technical field of data processing, and in particular, to a method, device, and storage medium for processing trajectory data. Background Art
[0002] Trajectory data refers to the set of points passed by an entity in space; by analyzing the similarity of a large amount of trajectory data, predicting the future trajectory of the entity has broad application prospects in fields such as route recommendation and driving assistance.
[0003] Currently, existing methods for analyzing the similarity of trajectory data usually store a large amount of trajectory data in the form of a binary tree, and each piece of trajectory data corresponds to a tree node in the binary tree; when retrieving trajectory data, the binary tree is traversed through the nearest neighbor algorithm to obtain multiple stored trajectory data that match the retrieved trajectory. However, in the prior art, when the amount of trajectory data is large, the depth of the generated binary tree is very high, resulting in a decrease in the retrieval efficiency of trajectory data. At the same time, the tolerance distance convergence speed of the traditional nearest neighbor algorithm is relatively slow, further reducing the retrieval efficiency of trajectory data. Summary of the Invention
[0004] Embodiments of the present invention provide a method, device, and storage medium for processing trajectory data, which can optimize the structure of the generated key point tree and improve the retrieval performance of the key point tree.
[0005] In a first aspect, an embodiment of the present invention provides a method for processing trajectory data, including:
[0006] Determine a first key point in the trajectory data set, and calculate the distances between the first key point and each other trajectory data in the trajectory data set;
[0007] Divide the trajectory data set into at least one trajectory data subset according to the distances between the first key point and each other trajectory data in the trajectory data set;
[0008] In each trajectory data subset, recursively execute the operation of determining a second key point and dividing the corresponding trajectory data subset according to the second key point until a trajectory data subset that cannot be further divided is obtained, and obtain the target key point tree corresponding to the trajectory data set;
[0009] Wherein, the target key point tree includes a root node and at least one child node; the root node corresponds to the first key point, and each child node corresponds to each second key point.
[0010] In a second aspect, an embodiment of the present invention further provides a computer device, including a processor and a memory, where the memory is used to store instructions, and when the instructions are executed, the processor performs the following operations:
[0011] Determine a first key point in the trajectory dataset, and calculate the distances between the first key point and each other trajectory data in the trajectory dataset;
[0012] Divide the trajectory dataset into at least one trajectory data subset according to the distances between the first key point and each other trajectory data in the trajectory dataset;
[0013] In each trajectory data subset, recursively execute the operation of determining a second key point and dividing the corresponding trajectory data subset according to the second key point until a trajectory data subset that cannot be further divided is obtained, and obtain the target key point tree corresponding to the trajectory dataset;
[0014] Wherein, the target key point tree includes a root node and at least one sub-node; the root node corresponds to the first key point, and each sub-node corresponds to each second key point respectively.
[0015] In a third aspect, an embodiment of the present invention further provides a computer-readable storage medium, on which a computer program is stored, and when the program is executed by a processor, it implements the method for processing trajectory data provided in any embodiment of the present invention.
[0016] The technical solution provided by the embodiment of the present invention determines a first key point in the trajectory dataset, and calculates the distances between the first key point and each other trajectory data in the trajectory dataset; and then divides the trajectory dataset into multiple trajectory data subsets according to the distances between the first key point and each other trajectory data in the trajectory dataset; and in each trajectory data subset, recursively execute the operation of determining a second key point and dividing the corresponding trajectory data subset according to the second key point until a trajectory data subset that cannot be further divided is obtained, and obtain the target key point tree corresponding to the trajectory dataset; by determining a first key point in the trajectory dataset and dividing the trajectory dataset into multiple trajectory data subsets, the structure of the constructed key point tree can be optimized, the depth of the key point tree can be reduced, and the retrieval performance of the key point tree can be improved. Description of the Drawings
[0017] Figure 1A is a flowchart of a method for processing trajectory data in an embodiment of the present invention;
[0018] Figure 1B is a schematic structural diagram of a priority point tree in the prior art;
[0019] Figure 1C is a schematic diagram of the division of a trajectory dataset in the data space in the prior art;
[0020] Figure 2A is a flowchart of a method for processing trajectory data in another embodiment of the present invention;
[0021] Figure 2B It is a schematic structural diagram of a target key point tree in another embodiment of the present invention;
[0022] Figure 3A It is a flowchart of a method for processing trajectory data in another embodiment of the present invention;
[0023] Figure 3B It is a schematic diagram of a target key point tree search algorithm in another embodiment of the present invention;
[0024] Figure 3C It is a schematic diagram of a tolerance distance in another embodiment of the present invention;
[0025] Figure 4 It is a schematic structural diagram of a device for processing trajectory data in another embodiment of the present invention;
[0026] Figure 5 It is a schematic structural diagram of a computer device in another embodiment of the present invention. Detailed implementation manners
[0027] The present invention will be further described in detail below with reference to the accompanying drawings and embodiments. It can be understood that the specific embodiments described herein are only used to explain the present invention, rather than limiting the present invention. Additionally, it should be noted that for the sake of description, only parts related to the present invention rather than all structures are shown in the drawings.
[0028] Before discussing the exemplary embodiments in more detail, it should be mentioned that some exemplary embodiments are described as processes or methods depicted as flowcharts. Although the flowcharts describe the operations (or steps) as sequential processes, many of the operations can be implemented in parallel, concurrently, or simultaneously. In addition, the order of the operations can be rearranged. The process can be terminated when its operations are completed, but it can also have additional steps not included in the drawings. The process can correspond to a method, function, procedure, subroutine, subprogram, and so on.
[0029] The term "trajectory dataset" used herein can be a data set composed of multiple trajectory data.
[0030] The term "first key point" used herein can be a trajectory data determined in the trajectory dataset, and can be the first priority point in the priority point tree.
[0031] The term "distance" used herein can be the distance between two trajectory data in a metric space. For example, it can be the Hausdorff distance; wherein, the smaller the distance, the higher the similarity between the two trajectory data; the larger the distance, the lower the similarity between the two trajectory data.
[0032] The term "subset of trajectory data" used in this article can be multiple sets of trajectory data obtained by dividing a trajectory data set after removing the first key point.
[0033] The term "second key point" used in this article can be a piece of trajectory data determined in each subset of trajectory data, and can be the priority points corresponding to each sub-node in the priority point tree.
[0034] The term "target key point tree" used in this article can be a tree-shaped data structure generated according to a trajectory data set, and can be a priority point tree including multiple branches; wherein, the target key point tree includes a root node and multiple sub-nodes, the root node corresponds to the first key point, and each sub-node corresponds to each second key point respectively.
[0035] Figure 1A It is a flowchart of a method for processing trajectory data provided in an embodiment of the present invention. The embodiment of the present invention is applicable to the case where a trajectory data set is stored in the form of a key point tree; this method can be executed by a processor in a computer device and is generally integrated in the computer device. As Figure 1A shown, the method specifically includes the following steps:
[0036] S110. Determine the first key point in the trajectory data set, and calculate the distance between the first key point and each other piece of trajectory data in the trajectory data set.
[0037] Among them, the trajectory data set includes at least one piece of trajectory data, and the trajectory data can be the movement trajectory of a vehicle, such as the driving trajectory of a vehicle, or the activity trajectory of a person.
[0038] It can be understood that the trajectory data can be abstracted as a point in a metric space. At this time, the similarity between different trajectories can be expressed as the distance between two points in the metric space. In this embodiment, a piece of trajectory data can be randomly selected in the trajectory data set as the first key point, and the distance between the current first key point and other pieces of trajectory data in the trajectory data set can be calculated respectively.
[0039] It should be noted that when constructing the key point tree corresponding to the trajectory data set, only one similarity metric function is required to create the key point tree; among them, the key point tree is a general index and does not care about the data type of the indexed data, and can realize the efficient indexing of any type of data. It should be noted that not any similarity metric function can realize the construction of the key point tree. The similarity metric function in the key point tree needs to satisfy the following three criteria at the same time: 1. The similarity distance is non-negative; 2. It satisfies the commutative law; 3. It satisfies the triangle inequality.
[0040] In this embodiment, the similarity metric function can be the Hausdorff distance; the Hausdorff distance is used to represent the distance between two subsets in a metric space and is often used in the calculation of trajectory similarity. It should be noted that the smaller the Hausdorff distance between two trajectory data, the higher the similarity between the two trajectory data; the larger the Hausdorff distance between two trajectory data, the lower the similarity between the two trajectory data.
[0041] It should be noted that the selection of the first key point seriously affects the performance of the generated key point tree. Among them, the difference between the boundary values of each subtree divided by the first key point should be as uniform as possible to increase the probability of successful pruning during data retrieval and improve the retrieval performance of the key point tree. In this embodiment, multiple trajectory data can be randomly selected in advance from the trajectory data set as candidate key points, and according to a preset evaluation rule, the scores corresponding to each candidate key point are calculated, and finally the candidate key point with the highest score is selected as the first key point.
[0042] S120. Divide the trajectory data set into at least one trajectory data subset according to the distances between the first key point and each other trajectory data in the trajectory data set.
[0043] It should be noted that in the prior art, as Figure 1B shown, the trajectory data set is usually continuously divided into two parts to finally obtain the corresponding key point tree, that is, the vantage point tree (VP-tree), which is also a balanced binary tree structure. In the vantage point tree, each non-leaf node includes a VP identifier (identification, ID) for identifying the vantage point (VP), the median mu of the split, and two pointers pointing to the left and right subtrees respectively. Through the above balanced binary tree structure, the vantage point tree actually performs continuous spherical bisection on the trajectory data set; in the entire data space, the trajectory data set is divided into a large number of overlapping spherical subspaces centered on different first key points, as Figure 1C shown. However, when there is a large amount of trajectory data, the depth of the finally generated vantage point tree will be very high, which will seriously affect the retrieval performance of the trajectory data.
[0044] To solve the above problems, in this embodiment, a multi-way structure is used to replace the two-way structure of the existing vantage point tree. By continuously dividing the trajectory data set into multiple parts, a vantage point tree with a multi-way structure can be finally obtained, which can greatly reduce the depth of the vantage point tree corresponding to a large amount of trajectory data, thereby improving the retrieval efficiency of the vantage point tree.
[0045] In this embodiment, after obtaining the distances between the first key point and each other trajectory data, the maximum distance can be determined among the distances; and according to the number of subsets of trajectory data to be divided, the maximum distance is equally divided to determine multiple cut-off values, and according to each cut-off value, the trajectory data set is divided into multiple subsets of trajectory data. For example, if the maximum distance is 100 and the number of subsets of trajectory data to be divided is 4, the corresponding cut-off values can be 25, 50, and 75; specifically, the trajectory data with a distance less than or equal to 25 is added to a subset of trajectory data, the trajectory data with a distance greater than 25 and less than or equal to 50 is added to a subset of trajectory data, the trajectory data with a distance greater than 50 and less than or equal to 75 is added to a subset of trajectory data, and the trajectory data with a distance greater than 75 and less than or equal to 100 is added to a subset of trajectory data, so as to finally obtain four subsets of trajectory data corresponding to the trajectory data set.
[0046] Optionally, each other trajectory data in the trajectory data set can also be sorted in ascending order according to the distance from the first key point, and according to the total number of the other trajectory data, the trajectory data after ascending order sorting is equally divided to obtain multiple subsets of trajectory data corresponding to the trajectory data set; for example, if the number of other trajectory data included in the trajectory data set is 100 and the number of subsets of trajectory data to be divided is 4, then the first 25 of the other trajectory data after ascending order sorting are used as a subset of trajectory data, the 26th trajectory data to the 50th trajectory data are used as a subset of trajectory data, the 51st trajectory data to the 75th trajectory data are used as a subset of trajectory data, and the 76th trajectory data to the 100th trajectory data are used as a subset of trajectory data. It can be understood that when the total number of the other trajectory data cannot be divided evenly, it is only necessary to ensure that the difference in the number of trajectory data between each subset of trajectory data does not exceed one.
[0047] In an optional implementation manner of this embodiment, dividing the trajectory data set into at least one subset of trajectory data according to the distances between the first key point and each other trajectory data in the trajectory data set may include:
[0048] Sorting each other trajectory data in ascending order according to the distances between the first key point and each other trajectory data in the trajectory data set; determining at least one cut-off value of the trajectory data set according to the maximum distance between the first key point and each other trajectory data in the trajectory data set; and dividing each other trajectory data after ascending order sorting into at least one subset of trajectory data according to each cut-off value of the trajectory data set.
[0049] In this embodiment, first, according to the distances between each other trajectory data and the first key point, each other trajectory data can be sorted in ascending order, and multiple trajectory data set cut-off values can be determined according to the maximum distance and the number of subsets of trajectory data to be divided; finally, according to the obtained multiple trajectory data set cut-off values, the sorted other trajectory data can be directly divided to obtain multiple subsets of trajectory data.
[0050] In this embodiment, by pre-sorting each trajectory data according to the distance between each other trajectory data and the first key point, after determining the cut-off value of the trajectory data set, the sorted trajectory data can be directly divided to obtain the corresponding multiple subsets of trajectory data, which can improve the division efficiency of the trajectory data set and the construction efficiency of the target key point tree.
[0051] S130. In each subset of trajectory data, recursively determine the second key point and perform the division operation of the corresponding subset of trajectory data according to the second key point until a subset of trajectory data that cannot be divided any further is obtained, and obtain the target key point tree corresponding to the trajectory data set.
[0052] Among them, the target key point tree includes a root node and at least one child node; the root node corresponds to the first key point, and each child node corresponds to each second key point.
[0053] In this embodiment, after the initial division of the trajectory data set is completed, each subset of trajectory data can be recursively divided; specifically, a trajectory data can be determined as the corresponding second key point in each subset of trajectory data, the distances between the other trajectory data in each subset of trajectory data and the corresponding second key point can be calculated, and according to this distance, each subset of trajectory data can be divided into multiple subsets of trajectory data again; further, the above operations are re-executed in each subset of trajectory data after the re-division until the obtained subset of trajectory data cannot be divided any further (only includes one trajectory data), and the complete division of the trajectory data set is completed.
[0054] It should be noted that while dividing the trajectory data set, the construction of the target key point tree is carried out; specifically, the determined first key point is used as the root node of the target key point tree, and the non-leaf nodes at each depth of the target key point tree are determined according to the confirmation order of the second key points; finally, the obtained subset of trajectory data that cannot be divided any further is determined as the leaf node, and the construction of the target key point tree is completed.
[0055] In this embodiment, after obtaining a trajectory data set including multiple trajectory data, by mapping the trajectory data set into a tree-shaped data structure with multiple branches, the structure of the generated key point tree can be optimized, the depth of the generated key point tree can be reduced, and the retrieval performance of the key point tree can be improved.
[0056] The technical solution provided by the embodiment of the present invention determines a first key point in the trajectory dataset, and calculates the distances between the first key point and other trajectory data in the trajectory dataset; then, according to the distances between the first key point and other trajectory data in the trajectory dataset, the trajectory dataset is divided into multiple trajectory data subsets; and in each trajectory data subset, the operation of determining a second key point is recursively executed, and the corresponding trajectory data subset is divided according to the second key point until a trajectory data subset that cannot be further divided is obtained, and the target key point tree corresponding to the trajectory dataset is obtained; by determining a first key point in the trajectory dataset and dividing the trajectory dataset into multiple trajectory data subsets, the structure of the constructed key point tree can be optimized, the depth of the key point tree can be reduced, and the retrieval performance of the key point tree can be improved.
[0057] Figure 2A It is a flowchart of a method for processing trajectory data provided by another embodiment of the present invention. Based on the above technical solution, this embodiment specifically introduces how to determine the first key point in the trajectory dataset. As Figure 2A shown, the method includes:
[0058] S210. Randomly sample in the trajectory dataset to obtain a first preset number of candidate key points, and a second preset number of reference points corresponding to each candidate key point, and calculate the distances between each candidate key point and the corresponding reference points respectively.
[0059] Among them, the first preset number is the number of candidate key points collected in advance; correspondingly, the second preset number is the number of reference points collected for each candidate key point preset.
[0060] In this embodiment, after obtaining the trajectory dataset, first randomly sample in the trajectory dataset to obtain a first preset number of trajectory data as candidate key points; then, for each candidate key point, randomly sample from the trajectory dataset again to obtain the second preset number of reference points corresponding to each candidate key point. It can be understood that the random sampling of trajectory data is sampling without replacement, that is, once a certain trajectory data is sampled, it is no longer included in the trajectory dataset. After sampling to obtain multiple candidate key points and multiple reference points corresponding to each candidate key point, calculate the distance between each candidate key point and each corresponding reference point respectively.
[0061] S220. According to the distances between each candidate key point and the corresponding reference points, divide the reference points corresponding to each candidate key point into at least one reference point set, and calculate the boundary value differences of each candidate key point corresponding to each reference point set respectively.
[0062] Among them, the boundary value includes the maximum distance and the minimum distance between the candidate point and each reference point in the corresponding reference point set.
[0063] In this embodiment, after calculating the distances between each candidate key point and the corresponding reference points, for each candidate key point, the maximum distance from the corresponding reference points can be determined, and multiple division values can be determined according to the maximum distance and the number of reference point sets to be divided; then, according to the division values and the distances between each reference point and the corresponding candidate key point, each reference point can be divided to obtain multiple reference point sets respectively corresponding to each candidate key point.
[0064] Furthermore, in each reference point set, the maximum distance and the minimum distance between each reference point and the corresponding candidate key point are statistically calculated as the boundary values corresponding to the reference point set, and the difference between the boundary values corresponding to each reference point set is calculated, that is, the difference between the maximum distance and the minimum distance.
[0065] S230. Determine the scores of the candidate key points according to the difference between the boundary values of each reference point set corresponding to each candidate key point; and determine the first key point with the highest score among the candidate key points according to the scores of the candidate key points.
[0066] In this embodiment, for each candidate key point, the sum of the differences between the boundary values of each corresponding reference point set can be calculated respectively and used as the score of the corresponding candidate key point; or, the variance of the differences between the boundary values of each reference point set corresponding to each candidate key point can be calculated respectively and used as the score of the corresponding candidate key point. Furthermore, after determining the scores of the candidate key points, the highest score can be determined among the scores, and the candidate key point corresponding to the highest score can be determined as the first key point.
[0067] It should be noted that in the process of constructing the key point tree, the selection of the first key point is crucial; according to the first key point, the difference between the boundary values of each trajectory data subset obtained by splitting should be as large as possible to improve the pruning success probability when retrieving the key point tree; secondly, the difference between the boundary values of different trajectory data subsets should be as uniform as possible to ensure the same pruning success probability for different search target points and avoid performance jumps.
[0068] In this embodiment, by using the random sampling method to pre-select multiple candidate key points and selecting the candidate key point with the highest score among the candidate key points through a preset evaluation rule as the final first key point, the rationality of selecting the first key point can be ensured; it is possible to avoid the situation where the retrieval intervals corresponding to the search target points simultaneously include multiple subtrees when randomly selecting the first key point, resulting in ineffective pruning, and at the same time, it is possible to avoid the problem of reduced retrieval performance caused by the need to retrieve multiple subtrees, which can improve the retrieval performance of the generated key point tree.
[0069] In an alternative implementation of this embodiment, determining the scores of the candidate key points according to the boundary value differences between the candidate key points and the reference point sets may include: calculating the sum of the boundary value differences between each candidate key point and each reference point set, and the variance of the boundary value differences between each candidate key point and each reference point set; determining the scores of the candidate key points according to the sum and the variance.
[0070] Among them, for each candidate key point, the ratio of the sum and the variance of the boundary value differences corresponding to each reference point set may be used as the score corresponding to each candidate key point; alternatively, the product of the sum and the variance of the boundary value differences of each reference point set may be used as the score corresponding to each candidate key point.
[0071] In another alternative implementation of this embodiment, determining the scores of the candidate key points according to the sum and the variance may include:
[0072] Calculating the score p of each candidate key point according to the formula: p = SUM / ln(e + VAR); where SUM represents the sum of the boundary value differences between the candidate key point and each reference point set, VAR represents the variance of the boundary value differences between the candidate key point and each reference point set, ln represents the natural logarithm function, and e represents the base of the natural logarithm function.
[0073] S240. Calculate the distances between the first key point and each other trajectory data in the trajectory dataset.
[0074] S250. Divide the trajectory dataset into at least one trajectory data subset according to the distances between the first key point and each other trajectory data in the trajectory dataset.
[0075] Among them, the number of divided trajectory data subsets can be adaptively adjusted according to the total number of trajectory data in the trajectory data; for example, when the total number of trajectory data in the trajectory dataset is large, the number of divided trajectory data subsets can be appropriately increased; when the total number of trajectory data in the trajectory dataset is small, the number of divided trajectory data subsets can be appropriately decreased.
[0076] In a specific example, when the number of divided trajectory data subsets is 4, such as Figure 2BAs shown in the figure, the corresponding generated target key point tree includes four branches; where R represents the first key point, and C1, C2, C3, and C4 respectively represent each non-leaf node at depth 2. Optionally, each non-leaf node can be further divided into four branches; in each non-leaf node, the VP ID of the current non-leaf node can be recorded, and the four divided branches are respectively d1, d2, d3, and d4; at the same time, the boundary values corresponding to each branch (the maximum distance upper and the minimum distance lower from the current non-leaf node) can be recorded, as well as the child node child having an inheritance relationship with the current non-leaf node.
[0077] S260. In each subset of trajectory data, recursively execute to determine the second key point, and perform a partitioning operation on the corresponding subset of trajectory data according to the second key point until a subset of trajectory data that cannot be further divided is obtained, and obtain the target key point tree corresponding to the trajectory dataset.
[0078] Among them, the target key point tree includes a root node and at least one child node; the root node corresponds to the first key point, and each child node corresponds to each second key point.
[0079] The technical solution provided by the embodiments of the present invention obtains a first preset number of candidate key points by randomly sampling in the trajectory dataset, as well as a second preset number of reference points corresponding to each candidate key point, and calculates the distances between each candidate key point and the corresponding reference points respectively; then, according to the distances between each candidate key point and the corresponding reference points, divides the reference points corresponding to each candidate key point into multiple reference point sets, and calculates the boundary value differences of each candidate key point corresponding to each reference point set respectively; finally, determines the scores of each candidate key point according to the boundary value differences of each candidate key point corresponding to each reference point set; and determines the first key point with the highest score among each candidate key point according to the scores of each candidate key point; by pre-obtaining a certain number of candidate key points and obtaining the candidate key point with the highest score as the first key point according to the preset evaluation rules, the retrieval performance of the generated target key point tree can be improved, and the retrieval efficiency of the target key point tree can be improved.
[0080] Figure 3A It is a flowchart of a method for processing trajectory data provided by another embodiment of the present invention. This embodiment is based on the above technical solution and specifically introduces how to find the trajectory data matching the retrieved trajectory in the key point tree according to the retrieval request of the retrieved trajectory, as Figure 3A shown, the method includes:
[0081] S310. Determine the first key point in the trajectory dataset, and calculate the distances between the first key point and each other trajectory data in the trajectory dataset.
[0082] S320. Divide the trajectory data set into at least one trajectory data subset according to the distances between the first key point and each other trajectory data in the trajectory data set.
[0083] S330. In each trajectory data subset, recursively execute to determine the second key point, and perform the division operation of the corresponding trajectory data subset according to the second key point until a trajectory data subset that cannot be further divided is obtained, and obtain the target key point tree corresponding to the trajectory data set.
[0084] Among them, the target key point tree includes a root node and at least one child node; the root node corresponds to the first key point, and each child node corresponds to each second key point respectively.
[0085] S340. When a retrieval request for a retrieval trajectory is received, determine the third preset number of child nodes that match the retrieval trajectory in the target key point tree according to a preset tolerance distance.
[0086] Among them, the retrieval trajectory can be a trajectory data input by a user that needs to find similar existing trajectory data. The tolerance distance refers to the allowable error distance between the retrieval trajectory and the matching child node; specifically, if the distance between a certain child node in the target key point tree and the retrieval trajectory is less than the tolerance distance, it is considered that the child node matches the retrieval trajectory. Correspondingly, the preset tolerance distance is a preset tolerance distance; for example, the preset tolerance distance can be 0, that is, only the child node with a distance of 0 from the retrieval trajectory is determined to match the retrieval trajectory.
[0087] It should be noted that when retrieving the retrieval trajectory, the retrieval trajectory can be abstracted as a target point; first calculate the distance between the target point and the first key point of the current target key point tree, and determine which subtree's boundary value range the distance falls into to determine the subtree corresponding to the target point. Subsequently, when searching the target key point tree, only this subtree needs to be searched, rather than other subtrees, to achieve pruning of the target key point tree.
[0088] In this embodiment, the preset tolerance distance can be set to 0, and a pre-search can be performed once to find the third preset number of child nodes that match the retrieval trajectory in the target key point tree. Among them, since the preset tolerance distance is 0, only one subtree needs to be searched, so the path length of this search is equal to the depth of the target key point tree. And since the depth of the target key point tree generated in this embodiment is small, the current search takes less time. The third preset number is the number of child nodes that need to be searched and match the retrieval trajectory preset in advance.
[0089] In this embodiment, when finding the child node that matches the retrieval trajectory, if the distance between the child node and the retrieval trajectory is less than or equal to the preset tolerance distance, it can be considered that the child node matches the retrieval trajectory.
[0090] It can be understood that when the preset tolerance distance is not 0, the search distance corresponding to the target point is a range value; taking the tolerance distance as u and the distance between the target point and the first key point as d as an example, the search distance range corresponding to the target point is [d - u, d + u]. At this time, the search distance range of the target point may fall within the boundary ranges of multiple subtrees, and it is necessary to retrieve multiple subtrees simultaneously.
[0091] In a specific example, the target key point tree is a balanced binary tree structure, and its corresponding key point tree search algorithm is as Figure 3B shown. Among them, the preset tolerance distance is u, and the split median corresponding to the first key point is mu; first, calculate the distance distance between the target point and the first key point; based on the triangle inequality, if distance ≥ mu + u, it can be determined that there cannot be a point in the left subtree whose distance from the target point is less than u, and only the right subtree needs to be searched subsequently; if distance ≤ mu - u, only the left subtree needs to be searched; if mu - u < distance < mu + u, pruning cannot be performed, and both the left and right subtrees need to be searched simultaneously.
[0092] It should be noted that the smaller the tolerance distance, the higher the probability of successful pruning and the better the retrieval performance; for example, as Figure 3C shown, a certain data space is divided into three subspaces S1, S2, and S3 (the trajectory data set is divided into three trajectory data subsets) based on the first key point VP, and the target point falls in the subspace S2, and T is the tolerance distance. In scenario (1), with the target point as the center and T as the radius, the circular range covers S1, S2, and S3 at the same time, so pruning cannot be performed, and it is necessary to retrieve and traverse in all three subspaces. In scenario (2), with the target point as the center and T as the radius, the circular range only covers S2, and at this time, S1 and S3 can be excluded, and pruning is successfully achieved.
[0093] It is worth noting that when the tolerance distance is too small, it is easy to cause excessive pruning, resulting in inaccurate retrieval results or inability to retrieve matching trajectory data; thus, it is necessary to select an appropriate tolerance distance according to the actual task requirements.
[0094] S350. Update the preset tolerance distance by using the maximum distance between the retrieved trajectory and each matched child node; and return to execute the operation of determining the third preset number of child nodes matched by the retrieved trajectory in the target key point tree according to the preset tolerance distance until the search of the target key point tree is completed, and obtain the third preset number of target child nodes matched by the retrieved trajectory.
[0095] In this embodiment, after obtaining multiple child nodes that match the retrieval trajectory, the maximum distance between the retrieval trajectory and each matching child node is determined, and the maximum distance is used to replace the preset tolerance distance to update the preset tolerance distance. Further, after completing the update of the preset tolerance distance, the target key point tree can be searched again according to the current preset tolerance distance to re-obtain the third preset number of child nodes that match the retrieval trajectory, and the obtained child nodes are used as the target child nodes.
[0096] It should be noted that when searching the target key point tree according to the updated preset tolerance distance, if the third preset number of matching child nodes has been obtained before completing the entire search of the target key point tree; then the maximum distance between each matching child node and the retrieval trajectory is used to update the preset tolerance distance again, and the target key point tree is searched again according to the preset tolerance distance after the second update; the above process is repeated until the search of the target key point tree is completed to obtain the third preset number of target child nodes that match the retrieval trajectory.
[0097] In this embodiment, by performing a pre-search according to the initial preset tolerance distance and updating the initial preset tolerance distance according to the search result, the convergence speed of the tolerance distance can be improved, and thus the retrieval efficiency of the retrieval trajectory matching the existing trajectory data can be improved.
[0098] In an alternative embodiment of this embodiment, determining the third preset number of child nodes that match the retrieval trajectory in the target key point tree according to the preset tolerance distance may include:
[0099] When the number of child nodes that match the retrieval trajectory determined in the target key point tree according to the preset tolerance distance is less than the third preset number, among the adjacent leaf nodes of each child node that matches the retrieval trajectory, search for child nodes that match the retrieval trajectory until the third preset number of child nodes that match the retrieval trajectory is obtained.
[0100] It can be understood that when the third preset number is greater than the depth of the target key point tree, it may not be possible to obtain the third preset number of child nodes that match the retrieval trajectory through one search; for example, when the preset tolerance distance is 0, the maximum number of matching child nodes that can be obtained is the depth of the target key point tree; at this time, the backtracking algorithm can be used to backtrack according to the search path to sequentially match and search the leaf nodes adjacent to the search path until the third preset number of child nodes that match the retrieval trajectory is obtained.
[0101] In this embodiment, when not enough matching child nodes can be obtained after a pre-search, the adjacent leaf nodes are searched by the backtracking algorithm, which can ensure the acquisition of the third preset number of matching child nodes, and then ensure the update of the preset tolerance distance, so that the retrieval trajectory search method of this embodiment can be adapted to target key point trees of any depth.
[0102] Optionally, before searching for the retrieval trajectory, the number of nodes of the target key point tree can be determined in advance. When the number of nodes is small, that is, when the existing trajectory data is small, the target key point tree can be directly traversed, and the distance between the retrieval trajectory and each child node can be calculated to determine the third preset number of child nodes closest to the retrieval trajectory.
[0103] The technical solution provided by the embodiment of the present invention, after obtaining the target key points corresponding to the trajectory data set, when receiving a retrieval request for the retrieval trajectory, first determines the third preset number of child nodes that the retrieval trajectory matches in the target key point tree according to the preset tolerance distance; then updates the preset tolerance distance by using the maximum distance between the retrieval trajectory and each matching child node; and returns to execute the operation of determining the third preset number of child nodes that the retrieval trajectory matches in the target key point tree according to the preset tolerance distance until the search of the target key point tree is completed and the third preset number of target child nodes that the retrieval trajectory matches is obtained; by performing a pre-search according to the initial preset tolerance distance and updating the initial preset tolerance distance according to the pre-search result, the convergence speed of the tolerance distance is improved, and the search efficiency of the target key point tree is improved.
[0104] Figure 4 It is a schematic structural diagram of a processing device for trajectory data provided by another embodiment of the present invention. As Figure 4 shown, the device includes: a distance calculation module 410, a trajectory data set division module 420, and a target key point tree acquisition module 430. Among them,
[0105] The distance calculation module 410 is used to determine the first key point in the trajectory data set and calculate the distances between the first key point and each other trajectory data in the trajectory data set;
[0106] The trajectory data set division module 420 is used to divide the trajectory data set into at least one trajectory data subset according to the distances between the first key point and each other trajectory data in the trajectory data set;
[0107] The target key point tree acquisition module 430 is used to recursively execute the operation of determining the second key point in each trajectory data subset and dividing the corresponding trajectory data subset according to the second key point until the trajectory data subset that cannot be further divided is obtained, and obtain the target key point tree corresponding to the trajectory data set;
[0108] Among them, the target key point tree includes a root node and at least one sub-node; the root node corresponds to a first key point, and each sub-node corresponds to a second key point respectively.
[0109] The technical solution provided by the embodiment of the present invention determines a first key point in the trajectory dataset, and calculates the distance between the first key point and each other trajectory data in the trajectory dataset; then, according to the distance between the first key point and each other trajectory data in the trajectory dataset, the trajectory dataset is divided into multiple trajectory data subsets; and in each trajectory data subset, the second key point is recursively determined, and the corresponding trajectory data subset is divided according to the second key point until the trajectory data subset that cannot be further divided is obtained, and the target key point tree corresponding to the trajectory dataset is obtained; by determining the first key point in the trajectory dataset and dividing the trajectory dataset into multiple trajectory data subsets, the structure of the constructed key point tree can be optimized, the depth of the key point tree can be reduced, and the retrieval performance of the key point tree can be improved.
[0110] Optionally, on the basis of the above technical solution, the distance calculation module 410 includes:
[0111] A candidate key point acquisition unit, configured to perform random sampling in the trajectory dataset to obtain a first preset number of candidate key points, and a second preset number of reference points corresponding to each candidate key point, and calculate the distance between each candidate key point and the corresponding reference points respectively;
[0112] A boundary value difference calculation unit, configured to divide the reference points corresponding to each candidate key point into at least one reference point set according to the distances between each candidate key point and the corresponding reference points, and calculate the boundary value differences of each candidate key point corresponding to each reference point set respectively; the boundary value includes the maximum distance and the minimum distance between the candidate point and each reference point in the corresponding reference point set;
[0113] A first key point determination unit, configured to determine the scores of each candidate key point according to the boundary value differences of each candidate key point corresponding to each reference point set; and determine the first key point with the highest score among each candidate key point according to the scores of each candidate key point.
[0114] Optionally, on the basis of the above technical solution, the first key point determination unit is specifically configured to calculate the sum value of the boundary value differences of each candidate key point corresponding to each reference point set, and the variance of the boundary value differences of each candidate key point corresponding to each reference point set respectively; determine the scores of each candidate key point according to the sum value and the variance.
[0115] Optionally, on the basis of the above technical solution, the first key point determination unit is specifically configured to calculate the score p of each candidate key point according to the formula: p = SUM / ln(e + VAR); where SUM represents the sum of the boundary value differences of each reference point set corresponding to the candidate key point, VAR represents the variance of the boundary value differences of each reference point set corresponding to the candidate key point, ln represents the natural logarithm function, and e represents the base of the natural logarithm function.
[0116] Optionally, on the basis of the above technical solution, the trajectory data set division module 420 includes:
[0117] An ascending sorting unit, configured to perform ascending sorting on each of the other trajectory data according to the distance between the first key point and each of the other trajectory data in the trajectory data set;
[0118] A trajectory data set cut-off value determination unit, configured to determine at least one trajectory data set cut-off value according to the maximum distance between the first key point and each of the other trajectory data in the trajectory data set;
[0119] A trajectory data subset division unit, configured to divide each of the other trajectory data after ascending sorting into at least one trajectory data subset according to each trajectory data set cut-off value.
[0120] Optionally, on the basis of the above technical solution, the processing device for the trajectory data further includes:
[0121] A sub-node determination module, configured to, when receiving a retrieval request for a retrieval trajectory, determine a third preset number of sub-nodes that match the retrieval trajectory in the target key point tree according to a preset tolerance distance;
[0122] A target sub-node acquisition module, configured to update the preset tolerance distance by using the maximum distance between the retrieval trajectory and each matching sub-node; and return to execute the operation of determining a third preset number of sub-nodes that match the retrieval trajectory in the target key point tree according to the preset tolerance distance until the search for the target key point tree is completed, and acquire a third preset number of target sub-nodes that match the retrieval trajectory.
[0123] Optionally, on the basis of the above technical solution, the sub-node determination module is specifically configured to, when the number of sub-nodes that match the retrieval trajectory determined in the target key point tree according to the preset tolerance distance is less than the third preset number, search for sub-nodes that match the retrieval trajectory among the adjacent leaf nodes of each sub-node that matches the retrieval trajectory until a third preset number of sub-nodes that match the retrieval trajectory are acquired.
[0124] The above device can execute the method for processing trajectory data provided in all the foregoing embodiments of the present invention, and has corresponding functional modules and beneficial effects for executing the above method. For technical details not described in detail in the embodiments of the present invention, reference may be made to the methods provided in all the foregoing embodiments of the present invention.
[0125] Figure 5 As shown in the structural schematic diagram of a computer device provided in another embodiment of the present invention, Figure 5 as shown, the computer device includes a processor 510, a memory 520, an input device 530, and an output device 540; the number of processors 510 in the computer device may be one or more, Figure 5 and one processor 510 is taken as an example herein; the processor 510, the memory 520, the input device 530, and the output device 540 in the computer device may be connected through a bus or other means, Figure 5 and connection through a bus is taken as an example herein.
[0126] The memory 520, as a computer-readable storage medium, can be used to store software programs, computer-executable programs, and modules, such as program instructions / modules corresponding to the method for processing trajectory data in any embodiment of the present invention (for example, the distance calculation module 410, the trajectory data set division module 420, and the target key point tree acquisition module 430 in a device for processing trajectory data). The processor 510 executes various functional applications and data processing of the computer device by running the software programs, instructions, and modules stored in the memory 520, that is, to implement the above method for processing trajectory data. That is, when the program is executed by the processor, it realizes:
[0127] Determine a first key point in the trajectory data set, and calculate the distances between the first key point and each other trajectory data in the trajectory data set;
[0128] According to the distances between the first key point and each other trajectory data in the trajectory data set, divide the trajectory data set into at least one trajectory data subset;
[0129] In each trajectory data subset, recursively execute the determination of a second key point, and perform the division operation of the corresponding trajectory data subset according to the second key point until a trajectory data subset that cannot be further divided is obtained, and obtain the target key point tree corresponding to the trajectory data set;
[0130] Wherein, the target key point tree includes a root node and at least one child node; the root node corresponds to the first key point, and each child node corresponds to each second key point.
[0131] The memory 520 may mainly include a program storage area and a data storage area. Among them, the program storage area may store an operating system and application programs required for at least one function; the data storage area may store data created according to the use of the terminal, etc. In addition, the memory 520 may include a high-speed random access memory, and may also include a non-volatile memory, such as at least one magnetic disk storage device, a flash memory device, or other non-volatile solid-state storage devices. In some instances, the memory 520 may further include a memory remotely provided with respect to the processor 510, and these remote memories may be connected to the computer device through a network. Examples of the above network include but are not limited to the Internet, an intranet, a local area network, a mobile communication network, and combinations thereof.
[0132] The input device 530 may be used to receive input digital or character information, and generate key signal inputs related to the user settings and function control of the computer device, and may include a keyboard, a mouse, etc. The output device 540 may include a display device such as a display screen.
[0133] The embodiment of the present invention also provides a computer-readable storage medium, on which a computer program is stored, and when the program is executed by a processor, it implements the method described in any embodiment of the present invention. Of course, the computer-readable storage medium provided by the embodiment of the present invention can perform the related operations in the processing method of a trajectory data provided by any embodiment of the present invention. That is, when the program is executed by a processor, it implements:
[0134] Determine a first key point in the trajectory data set, and calculate the distances between the first key point and each other trajectory data in the trajectory data set;
[0135] According to the distances between the first key point and each other trajectory data in the trajectory data set, divide the trajectory data set into at least one trajectory data subset;
[0136] In each trajectory data subset, recursively execute to determine a second key point, and perform the division operation of the corresponding trajectory data subset according to the second key point until a trajectory data subset that cannot be further divided is obtained, and obtain the target key point tree corresponding to the trajectory data set;
[0137] Wherein, the target key point tree includes a root node and at least one sub-node; the root node corresponds to the first key point, and each sub-node corresponds to each second key point respectively.
[0138] From the above description of the embodiments, those skilled in the art can clearly understand that the present invention can be implemented by means of software and necessary general hardware. Of course, it can also be implemented by hardware, but in many cases the former is a better implementation. Based on such an understanding, the technical solution of the present invention, in essence, or the part that contributes to the prior art can be embodied in the form of a software product. This computer software product can be stored in a computer-readable storage medium, such as a floppy disk, read-only memory (ROM), random access memory (RAM), flash memory (FLASH), hard disk or optical disc of a computer, etc., and includes several instructions for causing a computer device (which can be a personal computer, server, or network device, etc.) to execute the methods described in various embodiments of the present invention.
[0139] It should be noted that in the embodiments of the above-mentioned processing device for trajectory data, the included units and modules are only divided according to functional logic, but are not limited to the above division, as long as the corresponding functions can be achieved; in addition, the specific names of the functional units are only for the convenience of mutual distinction and do not limit the protection scope of the present invention.
[0140] Note that the above is only the preferred embodiment of the present invention and the applied technical principle. Those skilled in the art will understand that the present invention is not limited to the specific embodiments described here, and various obvious changes, re-adjustments and substitutions can be made by those skilled in the art without departing from the protection scope of the present invention. Therefore, although the present invention has been described in detail through the above embodiments, the present invention is not limited to the above embodiments. Without departing from the concept of the present invention, more other equivalent embodiments can be included, and the scope of the present invention is determined by the scope of the appended claims.
Claims
1. A method for processing trajectory data, characterized in that, it includes: Performing random sampling in the trajectory data set to obtain a first preset number of candidate key points, and a second preset number of reference points corresponding to each candidate key point respectively, and calculating the distances between each candidate key point and its corresponding reference points respectively; According to the distances between each candidate key point and its corresponding reference points, dividing the reference points corresponding to each candidate key point into at least one reference point set, and calculating the boundary value differences of each reference point set corresponding to each candidate key point respectively; The boundary values include the maximum distance and the minimum distance between the candidate point and each reference point in the corresponding reference point set; Determining the scores of each candidate key point according to the boundary value differences of each reference point set corresponding to each candidate key point; And according to the scores of each candidate key point, determining the first key point with the highest score among each candidate key point, and calculating the distances between the first key point and each other trajectory data in the trajectory data set; Dividing the trajectory data set into at least one trajectory data subset according to the distances between the first key point and each other trajectory data in the trajectory data set; In each trajectory data subset, recursively execute to determine the second key point, and perform the division operation of the corresponding trajectory data subset according to the second key point until obtaining a trajectory data subset that cannot be further divided, and obtaining the target key point tree corresponding to the trajectory data set; Wherein, the target key point tree includes a root node and at least one sub-node; The root node corresponds to the first key point, and each sub-node corresponds to each second key point respectively.
2. The method according to claim 1, characterized in that, Determining the scores of each candidate key point according to the boundary value differences of each reference point set corresponding to each candidate key point, includes: Calculating the sum value of the boundary value differences of each reference point set corresponding to each candidate key point respectively, and the variance of the boundary value differences of each reference point set corresponding to each candidate key point respectively; Determining the scores of each candidate key point according to the sum value and the variance.
3. The method according to claim 2, characterized in that, Determining the scores of each candidate key point according to the sum value and the variance, includes: According to the formula: p = SUM / ln(e + VAR), calculating the score p of each candidate key point; where SUM represents the sum value of the boundary value differences of each reference point set corresponding to the candidate key point, VAR represents the variance of the boundary value differences of each reference point set corresponding to the candidate key point, ln represents the natural logarithm function, and e represents the base of the natural logarithm function.
4. The method according to claim 1, characterized in that, Dividing the trajectory data set into at least one trajectory data subset according to the distances between the first key point and each other trajectory data in the trajectory data set, includes: Ascendingly sorting each other trajectory data according to the distances between the first key point and each other trajectory data in the trajectory data set; Determining at least one trajectory data set cut-off value according to the maximum distance between the first key point and each other trajectory data in the trajectory data set; According to the split values of each trajectory dataset, the sorted other trajectory data in ascending order is divided into at least one trajectory data subset.
5. The method according to claim 1, wherein, further comprising: when receiving a retrieval request for a retrieval trajectory, determining a third preset number of child nodes matching the retrieval trajectory in the target key point tree according to a preset tolerance distance; updating the preset tolerance distance by using the maximum distance between the retrieval trajectory and each matching child node; and returning to execute the operation of determining a third preset number of child nodes matching the retrieval trajectory in the target key point tree according to the preset tolerance distance until the search of the target key point tree is completed, and obtaining a third preset number of target child nodes matching the retrieval trajectory.
6. The method according to claim 5, wherein, determining a third preset number of child nodes matching the retrieval trajectory in the target key point tree according to a preset tolerance distance includes: when the number of child nodes matching the retrieval trajectory determined in the target key point tree according to the preset tolerance distance is less than the third preset number, searching for child nodes matching the retrieval trajectory among the adjacent leaf nodes of each child node matching the retrieval trajectory until a third preset number of child nodes matching the retrieval trajectory is obtained.
7. A computer device, comprising a processor and a memory, the memory is used for storing instructions, and when the instructions are executed, the processor performs the following operations: performing random sampling in the trajectory dataset to obtain a first preset number of candidate key points and a second preset number of reference points respectively corresponding to each candidate key point, and calculating the distances between each candidate key point and the corresponding reference points respectively; dividing the reference points corresponding to each candidate key point into at least one reference point set according to the distances between each candidate key point and the corresponding reference points, and calculating the boundary value differences of each candidate key point corresponding to each reference point set; the boundary values include the maximum distance and the minimum distance between the candidate point and each reference point in the corresponding reference point set; determining the scores of each candidate key point according to the boundary value differences of each candidate key point corresponding to each reference point set; and determining a first key point with the highest score among each candidate key point according to the scores of each candidate key point, and calculating the distances between the first key point and each other trajectory data in the trajectory dataset; dividing the trajectory dataset into at least one trajectory data subset according to the distances between the first key point and each other trajectory data in the trajectory dataset; in each trajectory data subset, recursively executing the operation of determining a second key point and dividing the corresponding trajectory data subset according to the second key point until a trajectory data subset that cannot be further split is obtained, and obtaining a target key point tree corresponding to the trajectory dataset; wherein, the target key point tree includes a root node and at least one child node; the root node corresponds to the first key point, and each child node corresponds to each second key point respectively.
8. The computer device according to claim 7, wherein, The processor is configured to determine the scores of the candidate key points according to the difference between the boundary values of each candidate key point corresponding to each reference point set in the following manner: Calculate the sum of the difference between the boundary values of each candidate key point corresponding to each reference point set, and the variance of the difference between the boundary values of each candidate key point corresponding to each reference point set; Determine the scores of the candidate key points according to the sum and the variance.
9. The computer device according to claim 8, wherein, the processor is configured to determine the scores of the candidate key points according to the sum and the variance in the following manner, including: According to the formula: p = SUM / ln(e + VAR), calculate the score p of each candidate key point; where SUM represents the sum of the difference between the boundary values of the candidate key point corresponding to each reference point set, VAR represents the variance of the difference between the boundary values of the candidate key point corresponding to each reference point set, ln represents the natural logarithm function, and e represents the base of the natural logarithm function.
10. The computer device according to claim 7, wherein, the processor is configured to divide the trajectory data set into at least one trajectory data subset according to the distance between the first key point and each other trajectory data in the trajectory data set in the following manner: Sort the other trajectory data in ascending order according to the distance between the first key point and each other trajectory data in the trajectory data set; Determine at least one cut-off value of the trajectory data set according to the maximum distance between the first key point and each other trajectory data in the trajectory data set; Divide the sorted other trajectory data into at least one trajectory data subset according to each cut-off value of the trajectory data set.
11. The computer device according to claim 7, wherein, the processor is further configured to perform the following operations: When receiving a retrieval request for a retrieval trajectory, determine a third preset number of child nodes in the target key point tree that match the retrieval trajectory according to a preset tolerance distance; Update the preset tolerance distance by using the maximum distance between the retrieval trajectory and each matching child node; And return to execute the operation of determining a third preset number of child nodes in the target key point tree that match the retrieval trajectory according to the preset tolerance distance until the search of the target key point tree is completed, and obtain a third preset number of target child nodes that match the retrieval trajectory.
12. The computer device according to claim 11, wherein, the processor is configured to determine a third preset number of child nodes in the target key point tree that match the retrieval trajectory according to the preset tolerance distance in the following manner: When the number of child nodes determined to match the retrieval trajectory in the target key point tree according to the preset tolerance distance is less than the third preset number, search for child nodes that match the retrieval trajectory among the adjacent leaf nodes of each child node that matches the retrieval trajectory until a third preset number of child nodes that match the retrieval trajectory are obtained.
13. A computer-readable storage medium, on which a computer program is stored, wherein, When the computer program is executed by a processor, it implements the method for processing trajectory data as described in any one of claims 1-6.
Citation Information
Patent Citations
Vehicle track data compression method keeping moving characteristics
CN106899306A
Sub-segment similarity matching method based on multi-level track coding tree
CN111475596A