Transit time prediction for public user routes
By identifying and analyzing frequently crossed super-road segments, using machine learning technology to predict route crossing time in navigation systems, the problems of noise error accumulation and error correlation in the prior art are solved, and more accurate and effective navigation prediction is achieved.
Patent Information
- Application Number
- CN202080090393.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2019-12-26
- Filing Date
- 2020-03-19
- Publication Date
- 2025-05-09
- Estimated Expiration
- 2040-03-19
AI Technical Summary
Existing navigation systems have problems with noise error accumulation and error correlation when predicting route crossing time, and have failed to effectively consider the impact of complex manipulation on crossing time.
By identifying a series of route segments that frequently cross as super segments, and using machine learning analysis based on historical travel data to calculate the crossing time of super segments, reducing noise and explaining complex manipulations.
The noise amount of predicted crossing time is reduced, the accuracy of prediction is improved, and the impact of complex manipulation on route crossing time can be effectively explained.
Smart Images

Figure CN114846298B_ABST
Abstract
Description
Technical Field
[0001] The present disclosure generally relates to predicting traversal time of a route. Background Art
[0002] When a user uses a navigation application to request navigation directions from a departure location to a destination location, the navigation application will generate a route from the departure location to the destination location, the route comprising a series of route segments (e.g., the first segment may be driving one mile on Road A, the second segment may be turning right onto Road B and driving 0.5 miles, etc.). To predict the total transit time, the navigation application typically predicts the transit time for each route segment and adds the transit times for all route segments together to obtain the total transit time for the entire route. Summary of the invention
[0003] In one aspect, the present application provides a computer-implemented method for predicting a crossing time of a route, the method comprising: receiving, by a processor, a request for navigation guidance, the request comprising a departure location and a destination location; calculating, by the processor, a route between the departure location and the destination location; determining, by the processor, a series of route segments to be traversed on the route between the departure location and the destination location; identifying, by the processor, one or more sub-series of route segments in the series of route segments, each sub-series having route segments to be traversed continuously on a portion of the route between the departure location and the destination location; for each sub-series of route segments, predicting, by the processor, a sub-series crossing time of the sub-series route segments based on historical crossing time data associated with historical trips, wherein each route segment in the sub-series of route segments is traversed continuously in the historical trips; predicting, by the processor, a total route crossing time based on the sub-series crossing time of each sub-series of route segments; and providing, by the processor, a set of navigation guidance and a predicted total route crossing time for presentation on a client device for navigating from the departure location to the destination location via the route.
[0004] On the other hand, an electronic device is provided, comprising: one or more processors and a non-transitory computer-readable memory having instructions stored thereon, wherein the instructions, when executed by the one or more processors, cause the computing device to: receive a request for navigation guidance, the request comprising a departure location and a destination location; calculate a route between the departure location and the destination location; determine a series of route segments to be traversed on the route between the departure location and the destination location; identify one or more sub-series of route segments in a series of route segments, each sub-series having route segments to be traversed continuously on a portion of the route between the departure location and the destination location; for each sub-series route segment, predict a sub-series crossing time of the sub-series route segment based on historical crossing time data associated with historical trips, wherein each route segment in the sub-series route segment is traversed continuously in the historical trips; predict a total route crossing time based on the sub-series crossing time of each sub-series route segment; and provide a set of navigation guidance and the predicted total route crossing time for presentation on a client device for navigating from the departure location to the destination location via the route.
[0005] In yet another aspect, a non-transitory computer-readable medium is provided that stores instructions for selecting points of interest to include in a maneuver, the instructions, when executed by one or more processors in a computing device, cause the one or more processors to: receive a request for navigation directions, the request including a departure location and a destination location; calculate a route between the departure location and the destination location; determine a series of route segments to be traversed on the route between the departure location and the destination location; identify one or more sub-series of route segments in a series of route segments, each sub-series having route segments to be traversed continuously on a portion of the route between the departure location and the destination location; for each sub-series route segment, predict a sub-series crossing time of the sub-series route segment based on historical crossing time data associated with historical trips, wherein each route segment in the sub-series route segment is traversed continuously in the historical trips; predict a total route crossing time based on the sub-series crossing time of each sub-series route segment; and provide a set of navigation directions and the predicted total route crossing time for presentation on a client device for navigating from the departure location to the destination location via the route. BRIEF DESCRIPTION OF THE DRAWINGS
[0006] Figure 1 An example environment in which the techniques of this disclosure can be used to predict the traversal time of a route generated by a navigation application running on an electronic device is shown;
[0007] Figure 2 is able to Figure 1 A block diagram of an example electronic device and a server device operating in a system;
[0008] Figure 3A-3C is a diagram of an example series of route segments and sub-series of route segments;
[0009] Figure 4 is a flow chart of an example method for predicting a traversal time of a route requested by a navigation application executing on an electronic device. DETAILED DESCRIPTION
[0010] Overview
[0011] As described above, when a user uses a navigation application to request navigation guidance from a departure location to a destination location, the navigation application or a server associated with the navigation application generates a route from the departure location to the destination location, the route comprising a series of route segments. For example, each route segment may be a portion of a road between two intersections (e.g., the first segment may be driving on road A until reaching the intersection of road A and road B, the second segment may be turning right onto road B and driving 0.5 miles until the intersection of road B and road C, etc.). The navigation application may predict the total traversal time of the route by aggregating or combining the predicted traversal time of each route segment on the route.
[0012] However, calculating the total transit time in this manner has several limitations. First, the predicted transit time for shorter route segments is typically noisier than the predicted transit time for longer route segments, so the predicted transit time for a route that includes many shorter route segments will include the accumulated noise errors from each of the shorter route segments.
[0013] Furthermore, in general, calculating the transit time for the entire route based on the predicted transit time for each route segment involves the assumption that the prediction errors for the individual route segments are uncorrelated and cancel each other out. However, in many cases, the prediction errors for individual route segments along the same route may be correlated with each other. For example, if the predicted transit time for a particular route segment erroneously fails to account for an accident that affects the transit time along that route segment, it is possible that the same (unaccounted-for) accident affects other segments along the requested route, resulting in a cumulative error in the predicted transit time for the entire route. For routes with many individual segments affected by the same error, the cumulative error may be large even if each individual error is small.
[0014] In addition, the calculation of the crossing time of the entire route based on the predicted crossing time of each route segment involves the assumption that the previous route segment or subsequent route segment of a particular user will not affect the crossing time of the user on the current route segment. However, the actual crossing time of the user on a particular route segment may be affected by which previous route segment and / or subsequent route segment is included in the user's route, especially when complex maneuvers are required to bring the user between these route segments. For example, a user who needs to leave the highway at the end of a 2-mile highway segment usually takes longer to cross the 2-mile highway segment than a user who continues along the highway after the 2-mile highway segment. Similarly, a user who has just entered the highway at the beginning of the 2-mile highway segment will usually take longer to cross the 2-mile highway segment than a user who is already on the highway before crossing the 2-mile highway segment. This effect is exacerbated if the highway exit or entrance is crowded and the traffic on the highway itself flows freely, and vice versa.
[0015] The present application provides a system and method for predicting the crossing time of a series of route segments rather than predicting the crossing time of each route segment in the series separately and adding them together. A series of route segments that are frequently crossed in a particular order can be identified as a supersegment, and the crossing time on the entire supersegment can be calculated, for example, using a machine learning analysis based on real-time and / or historical crossing time data from users who have crossed the supersegment, which will be discussed in more detail below. When a user's route includes one of the identified supersegments, the predicted crossing time of the supersegment can be used to calculate the total crossing time on the user's route, rather than the predicted crossing time of each of the route segments that make up the supersegment.
[0016] Advantageously, calculating the predicted crossing time over the entire super-segment reduces the amount of noise in the calculation compared to calculating the predicted crossing time for the route based on the crossing times of the individual route segments, because the super-segment is longer than the individual segments. In particular, even when the calculation of the predicted crossing time over the entire super-segment includes an error margin, the error margin only affects the total crossing time once, rather than adding an additional error margin for each individual route segment. In addition, the predicted crossing time over the entire super-segment can account for complex maneuvers contained within the super-segment. That is, the predicted crossing time over a super-segment that includes a route segment for entering the highway at a first mile marker and exiting the highway at a second mile marker can be based on the historical crossing times of other users who entered the highway at the first mile marker and exited the highway at the second mile marker.
[0017] The disclosed subject matter solves technical problems associated with navigation systems and provides an improved navigation method. Real world data about how a user traverses different combinations of individual route segments is captured and used to determine a more accurate predicted route traversal time presented to the user. That is, technical information about the underlying travel network system is obtained and used to improve the predicted traversal time of a route.
[0018] Sample computing environment
[0019] refer to Figure 1 , an example environment 100 in which the techniques outlined above can be implemented includes an electronic device 102 and a vehicle 104 having an onboard head unit 106. The electronic device 102 can be a smart phone, a tablet computer, a wearable computer, etc. The electronic device 102 communicates with the onboard head unit 106 of the vehicle 104 via a communication link 108, which can be wired (e.g., Universal Serial Bus (USB)) or wireless (e.g., Bluetooth, Wi-Fi Direct). The electronic device 102 can also communicate with various content providers, servers, etc. via a wireless communication network.
[0020] In operation, the electronic device 102 obtains navigation data for navigating the user from the departure location to the destination location in the form of a sequence of navigation instructions or manipulations. As discussed in more detail below, depending on the implementation, the electronic device 102 can receive navigation data from a navigation service via a communication network or can generate navigation data locally. In some embodiments, the electronic device 102 provides navigation-related information to the vehicle host 106, which may include digital map images, text and audio. The vehicle host 106 displays the information via a display 110. In some embodiments, the display 110 is a touch screen and includes a software keyboard for text input, which may include the name or address of the destination, the origin, etc. Another type of display 110 can be, for example, a screen provided with a non-touch input device (such as a rotary controller), or a separate touch pad. Typically, the display 110 does not need to be able to display both text and images. The vehicle host in another vehicle can include, for example, a simple display that can only display alphanumeric characters on one or more lines.
[0021] The vehicle host 106 can include hardware input controls, such as buttons, knobs, etc. These controls can be located on the vehicle host 106 or elsewhere in the vehicle 104. For example, Figure 1The vehicle 104 in the embodiment includes a navigation control 112 on the vehicle head unit 106 and a steering wheel control 114 communicatively coupled to the vehicle head unit 106. The controls 112 and 114 can be mapped to various navigation control functions on the electronic device 102. In some embodiments, the controls 112 and 114 can also be used to enter alphanumeric characters or perform other functions for requesting navigation directions.
[0022] The vehicle 104 can also include audio input and output components, such as a microphone 116 and a speaker 118. The microphone 116 can be configured to capture voice input from a user, while the speaker 118 can be configured to communicate navigation-related information to the user. Similar to the hardware controls 112 and 114, the microphone 116 and the speaker 118 can be provided directly on the vehicle head unit 106 or elsewhere in the vehicle 104.
[0023] refer to Figure 2 An example implementation of an electronic device 102 is shown. The electronic device 102 may include one or more processors 120 coupled to a memory 122, a GPS unit 124, a display 126 such as a touch screen, one or more sensors 128 (e.g., accelerometers, gyroscopes, inertial measurement units (IMUs), speedometers), one or more audio input components 130, one or more audio output components 132, and one or more communication units 134. The communication unit 134 may include a short-range communication unit for communicating with the vehicle head unit 106 and a long-range communication unit. The short-range communication unit may support one or more communication schemes such as USB, Bluetooth, Wi-Fi Direct, etc., while the long-range communication unit may send and receive data via a suitable wireless network 136 (such as, for example, a 3G cellular network or a 4G cellular network). Each of the one or more processors 120 can be any suitable general-purpose processing unit (e.g., a CPU), a microprocessor, or a dedicated processing unit. The memory 122 can be a non-transitory computer-readable medium that can include a persistent component such as a hard disk, a flash drive, etc. and a non-persistent component such as a random access memory (RAM) unit. For example, the processor 120 and the memory 122 can be interconnected via a suitable electrical connection, such as a digital bus.
[0024] Using the communication unit 134, the electronic device 102 can communicate with any number of suitable servers. Figure 2 In an example configuration, the electronic device 102 communicates with a navigation server 138 that provides navigation data and a hyper-segment server 140 that provides hyper-segment data based on historical travel data. The navigation server 138 may include a processor 142 and a memory 144, and may be configured to access a navigation database 146 that stores navigation data and / or a map database that stores map data.
[0025] The super-segment server 140 may include a processor 148 and a memory 150, and may be configured to access a historical trip database 152 storing historical trip data, including, for example, routes (i.e., a series of route segments) associated with the historical trips, crossing times associated with the historical trips, and other information about the historical trips, such as the date and time of the historical trips, and / or weather or traffic information at the time of each historical trip. In some examples, the processor 148 of the super-segment server 140 may analyze the historical trip data to identify super-segments, i.e., a series of route segments that are frequently traveled in the historical trips. That is, for a plurality of historical routes, each historical route includes a series of route segments, and a super-segment may be a sub-series of route segments that includes several route segments in a series of route segments.
[0026] In addition to identifying the super-segments, the processor 148 of the super-segment server may also be configured to calculate predicted traversal times for each of the super-segments at various future times. Predicting the traversal time of a super-segment may include, for example, averaging or otherwise weighting the traversal times on the super-segment in each of the historical routes that include the super-segment, or in each of the historical routes that include the super-segment that is traversed at a particular time of day, or a particular day of the week, or under particular weather or traffic conditions.
[0027] In some examples, predicting the crossing time of a super-segment may include training a machine learning model using historical travel data from the historical travel database 152 to identify the characteristics or features of super-segments associated with various crossing times. Therefore, in some examples, the machine learning model may be applied to data associated with a specific super-segment to predict the crossing time of the super-segment. The data associated with a specific super-segment may include characteristics of the super-segment, such as the location of the super-segment, the length of the super-segment, historical crossing time data associated with the super-segment, historical crossing time data associated with super-segments adjacent to the super-segment, current crossing time data associated with the super-segment, current crossing time data associated with each of the route segments within the super-segment, historical crossing time data associated with each of the route segments within the super-segment, current crossing time data associated with super-segments adjacent to the super-segment, the time at which a route request is made, the distance from the starting location of the route request to the location of the super-segment, the road type of the super-segment (e.g., highway, one-way street, side road, etc.), the number of traffic signals on the super-segment, the mode of transportation used to cross the super-segment, etc. Processor 148 can generate machine learning model based on the characteristic of super road segment and the actual crossing time of super road segment. In some embodiments, each of super road segment can be classified according to the actual crossing time of super road segment (for example, the first road segment set with the first crossing time or crossing time range can be classified as the first group, the second super road segment set with the second crossing time or crossing time range can be classified as the second group, etc.). Then, processor 148 can analyze the characteristic of super road segment in each group to generate machine learning model. For example, machine learning model can include the correlation between the historical crossing time of route segment in super road segment and the historical crossing time of super road segment. In order to predict the crossing time of super road segment, processor 148 can apply the current crossing time of route segment in super road segment to machine learning model to predict the crossing time of super road segment.
[0028] In any case, the processor 148 can then obtain characteristics of each super-segment on the requested route from the starting location to the destination location, such as the current traversal time of each of the route segments within the super-segment. The processor 148 can apply the characteristics of the super-segments to a machine learning model using machine learning techniques. The machine learning techniques can include linear regression, polynomial regression, logistic regression, random forests, boosting (such as adaptive boosting, gradient boosting, and extreme gradient boosting), nearest neighbor, Bayesian network, neural network, support vector machine, or any other suitable machine learning technique.
[0029] For example, when the machine learning technique is a random forest, the processor 148 may collect several representative samples of each subset of the training data. Using each representative sample, the processor 148 may generate a decision tree for predicting the crossing time of the super segment. The processor 148 may then aggregate and / or combine each decision tree to generate a machine learning model, for example, by averaging the crossing times determined at each individual tree, calculating a weighted average, performing a majority vote, etc. In some embodiments, when the machine learning technique is boosting, the processor 148 may also generate a decision tree.
[0030] Each decision tree may include a number of nodes, branches, and leaves, wherein each node of the decision tree represents a test of a super-segment characteristic (e.g., is the time of the request between 5pm and 7pm?). Each branch represents the result of the test (e.g., the time of the request is between 5pm and 7pm). In addition, each leaf represents a different crossing time (e.g., 6 minutes), a range of crossing times (e.g., 5-7 minutes), or a confidence interval (e.g., 5.2-7.8 minutes, with 95% confidence) based on the combined test results of the branches connected to the leaf.
[0031] For example, processor 148 may generate a decision tree in which a first node corresponds to whether the location of a super segment is more than 1 mile from the starting location of the requested route. If the super segment is no more than 1 mile from the starting location of the requested route, a first branch may be connected to a first leaf node, which may indicate a 7 minute traversal time. If the super segment is more than 1 mile from the starting location of the requested route, a second branch may be connected to a second node, which corresponds to whether the length of an adjacent super segment differs from the length of the super segment by less than a threshold amount.
[0032] If the length of adjacent super section differs from the length of described super section and is less than threshold value, then the third branch can be connected to the second leaf node, and it can indicate that the time of crossing is the current time of crossing of adjacent super section, for example 12 minutes. Yet, if the length of adjacent super section differs from the length of described super section and is not less than threshold value, then the fourth branch can be connected to the third leaf node, and it can indicate that the time of crossing is 10 minutes. Although decision tree comprises three leaf nodes and four branches, this is only an example for the convenience of explanation. Each decision tree can comprise any number of nodes, branches and leaves, and it has the test of any suitable quantity and / or type to super section characteristic and / or statistical measurement.
[0033] Although the navigation server 138 and the super-segment server 140 are shown as separate servers, in some embodiments, the navigation server 138 and the super-segment server 140 may be included within the same server device.
[0034] like Figure 2As shown, the memory 122 of the electronic device 102 stores a navigation application 154. The navigation application 154 can include compiled instructions and / or instructions of any suitable programmable language that can be interpreted and executed on one or more processors 120 at runtime. Typically, the navigation application 154 generates or receives from the navigation server 138 and / or the super segment server 140 a route that guides the driver from the current position or another starting position (e.g., the departure position) to the destination that the user has selected. As an example, the route can include a series of route segments and a manipulation for traveling from one route segment to the next route segment, each manipulation having several components. The components within the manipulation can include a route segment component (e.g., the name or number of the road, distance, travel time, speed limit, etc.) and an action component for accessing the next route segment (e.g., turning left, merging right, etc.).
[0035] In addition, the navigation application 154 may calculate a predicted transit time for the route, or may obtain a predicted transit time for the route from the super-segment server 140. To calculate the transit time for the route, the navigation application 154 or super-segment server 140 may generate or receive a predicted transit time for a sub-series of a series of route segments (i.e., a predicted transit time for a super-segment that is part of the route), and may calculate a transit time for the entire series of route segments for the route based on the predicted transit times for the sub-series of route segments.
[0036] Specifically, navigation application 154 can request or otherwise receive the indication of the super segment as a part of the route and / or the predicted crossing time of each super segment to the super segment server 140. In some examples, navigation application 154 can select the super segment as the entire route. For example, navigation application 154 can select the super segment based on length (e.g., the number of segments in the super segment, or the total distance covered by the super segment) or based on the number of historical trips including the super segment. Navigation application 154 can combine the predicted crossing time of the selected super segment with the predicted crossing time of the remaining route segments (i.e., the route segments as a part of the route but not a part of the super segment) to calculate the predicted crossing time of the entire route. In some examples, navigation application 154 can calculate the predicted crossing time of the entire route based on the predicted crossing time of multiple super segments as a part of the route (i.e., and the predicted crossing time of any route segment that is not a part of any of the multiple super segments as a part of the route).
[0037] In other embodiments, the super-segment server 140 may divide the route into non-overlapping super-segments and / or remaining route segments. The super-segment server 140 may then determine the predicted crossing time for each super-segment and / or remaining route segment, and may combine the predicted crossing time of the super-segment with the predicted crossing time of the remaining route segment. The super-segment server 140 may then provide the predicted crossing time of the route to the navigation application 154 running on the electronic device 102.
[0038] In any case, the navigation application 154 may display to a user (eg, a driver) via the display 110 an indication of the route, the traversal time of the route, and indications of maneuvers that are part of the route.
[0039] A series of route segments and subseries of route segments for an example
[0040] Figure 3A-3C is a diagram of an example series of route segments and sub-series of route segments (sub-series of route segments may also be interchangeably referred to as “super-segments” throughout this disclosure). Figure 3A As shown, a series of route segments from departure location 1 to destination location 1 of route 1 includes route segment A, followed by route segment B, followed by route segment C, followed by route segment D, and followed by route segment E. A sub-series of route segments of route 1 may include route segment A, followed by route segment B. As another example, a sub-series of route segments of route 1 may include route segment C, followed by route segment D, followed by route segment E. A sub-series of route segments of a given route may include any number of route segments. In some examples, a sub-series of route segments of a route may include the entire series of route segments of the route, while in other examples, a sub-series of route segments of a route may include fewer route segments than the entire series of route segments of the route.
[0041] A subseries of route segments that are part of one route can also be part of other routes. Figure 3B As shown, route 2 from departure location 2 to destination 2 may include route segment A, followed by route segment B, followed by route segment X, followed by route segment Y. That is, route 2 may also include a subsequence of route segment A from route 1, followed by route segment B. As another example, Figure 3C As shown, route 3 from departure point 3 to destination 3 may include route segment Z, followed by route segment C, followed by route segment D, and followed by route segment E, that is, route 3 may include a subseries of route segment C from route 1, followed by route segment D, and followed by route segment E.
[0042] In some embodiments, super-segment server 140 may divide a series of route segments into super-segments and may store an indication of each super-segment (e.g., route segment C, followed by route segment D, followed by route segment E) in historical trip database 152 along with characteristics of the super-segment (e.g., location of the super-segment, length of the super-segment, historical crossing time data associated with the super-segment, historical crossing time data associated with super-segments adjacent to the super-segment, current crossing time data associated with the super-segment, current crossing time data associated with super-segments adjacent to the super-segment, time when the route request was made, etc.) Then, when super-segment server 140 retrieves a request for navigation directions from a starting location to a destination location, super-segment server 140 may obtain an indication of a route including a series of route segments from navigation server 138. Super-segment server 140 may compare the obtained series of route segments of the route with the super-segments stored in historical trip database 152 to identify one or more super-segments from historical trip database 152 that correspond to a sub-series of route segments on the route. For example, the super-segment server 140 may identify each super-segment based on length (e.g., the number of segments in the super-segment, or the total distance covered by the super-segment) or based on the number of historical trips that include the super-segment. The super-segment server 140 may then predict the crossing time of the route based on the predicted crossing time of each of the identified super-segments and / or the predicted crossing time of the remaining route segments in the obtained series of route segments of the route, wherein the remaining route segments are not part of any of the identified super-segments. The super-segment server 140 may predict the crossing time by combining the predicted crossing time of each of the identified super-segments and / or the predicted crossing time of the remaining route segments in the obtained series of route segments of the route in any suitable manner (such as by aggregating each of the predicted crossing times), wherein the remaining route segments are not part of any of the identified super-segments.
[0043] In order to predict the crossing time of super road section, super road section server 140 can average or otherwise weight the historical crossing time of super road section, the history of super road section adjacent to super road section or the current crossing time, the specific time of the day or the specific day of the week or the historical crossing time of super road section under specific weather or traffic conditions. In addition, super road section server 140 can adjust the historical crossing time of super road section based on the difference between the historical crossing time of super road section adjacent to super road section and the current crossing time of adjacent super road section. For example, if the current crossing time of adjacent super road section is longer than the historical crossing time of adjacent super road section by 4 minutes, then super road section server 140 can increase the historical crossing time of super road section by 4 minutes to predict the crossing time of super road section. In other embodiments, super road section server 140 can predict the crossing time of super road section by obtaining the characteristic of super road section and applying the characteristic to the machine learning model of the crossing time of prediction super road section.
[0044] Example method for predicting the transit time of a route
[0045] Reference now Figure 4 , an example method 400 for predicting a crossing time of a route may be implemented by the hyper-segment server 140. The method 400 can be implemented as a set of instructions stored on a computer-readable memory 150 and executable on one or more processors 148 of the hyper-segment server 140 or another suitable computing system. In other embodiments, the method 400 may be implemented by a navigation application 154 within the electronic device 102 or by any suitable combination of the hyper-segment server 140 and the navigation application 154.
[0046] At box 402, a request for navigation instructions including a departure location (e.g., which may be a current location) and a destination location may be received. In some embodiments, the request for navigation instructions includes a mode of transportation for the route, such as walking, driving, biking, public transportation, etc. At box 404, a route between the departure location and the destination location may be calculated in response to the request. For example, the super segment server 140 may send a request to the navigation server 138, which may then provide a set of navigation instructions for traversing the route from the departure location to the destination location. The route may include a series of route segments and manipulations for traveling from one route segment to the next route segment.
[0047] At block 406, the hyper-segment server 140 may determine a series of route segments on the route between the origin location and the destination location. In the above example, the hyper-segment server 140 may determine the series of route segments based on the route provided from the navigation server 138. In some examples, the route segment may be a portion of a route between two maneuvers, such as Figure 3A-3CIn addition, in some examples, a route segment may be a section of a route having a specific length. For example, for a route involving 200 miles of highway driving between maneuvers, every 5 miles (or every mile, every 10 miles, or any suitable distance) of the 200-mile segment may be considered a separate route segment.
[0048] At block 408, the super-segment server 140 may identify one or more sub-series of route segments (of a series of route segments) to be traversed continuously over a portion of the route between the origin location and the destination location (i.e., to predict a traversal time of the route). A sub-series of route segments for a given route may include any number of route segments. In some examples, a sub-series of route segments for a route may include the entire series of route segments for the route, while in other examples, a sub-series of route segments for a route may include fewer route segments than the entire series of route segments for the route.
[0049] At block 410, for each sub-series, a sub-series crossing time may be predicted based on historical crossing time data associated with historical trips in which each route segment in the sub-series route segments was traversed consecutively in the historical trips. That is, the historical crossing times of the sub-series route segments that are part of a particular route may be used to calculate the crossing time of the entire series of route segments for the route.
[0050] For example, while there may be limited historical travel data for an entire series of route segments for a given route, there may be more historical travel data for various sub-series of the route. For example, few users may have traveled through a route such as Figure 3A The entire Route 1 (Route Segment A to Route Segment B to Route Segment C to Route Segment D to Route Segment E) is shown, but many users will have traversed some portion of Route 1 (i.e., a subseries of routes) as part of other routes. Figure 3B As shown, some users may have traversed a subsequence of route segments A to route segments B as part of route 2, or, as shown Figure 3C As shown, some users may have traversed the subsequence of route segment C to route segment D to route segment E as part of route 3, and so on.
[0051] Thus, historical trip data for all (or a certain number of) trips that include a particular sub-series of route segments may be analyzed to predict the crossing time of the sub-series of route segments. For example, the crossing time of sub-series route segment C to route segment D to route segment E may be averaged over all trips that include the sub-series (or over all trips that include the sub-series at a particular time of day, a particular day of the week, a particular time of the year, associated with a particular type of weather, etc.) to calculate a predicted sub-series crossing time for the sub-series. In some examples, current trip data (e.g., including current weather data or current traffic data) for trips that include the particular sub-series of route segments may also be analyzed to predict the crossing time of the sub-series of route segments.
[0052] In some examples, a machine learning model can be trained using historical travel data to identify characteristics or features of sub-series route segments associated with various transit times. The trained machine learning model can be applied to the characteristics of a particular sub-series route segment to predict the sub-series transit time.
[0053] At block 412, a total route transit time for a series of route segments may be predicted based on the sub-series transit times for one or more sub-series in the series of route segments. In some examples, the predicted sub-series transit times for a sub-series of a series of route segments may be added to the respective predicted transit times for other route segments in the series of route segments (e.g., based on historical travel or current travel data for the other route segments) to predict a transit time for the entire series of route segments.
[0054] For example, using the example of route 1, Figure 3A As shown, the total route crossing time of a series of route segments A to route segment B to route segment C to route segment D to route segment E of route 1 can be calculated based on the predicted crossing time of the sub-series route segment A to route segment B. For example, the predicted crossing time of the sub-series route segment A to route segment B can be added to the predicted crossing time of route segment C, the predicted crossing time of route segment D, and the predicted crossing time of route segment E to predict the crossing time of the series of route segments A to route segment B to route segment C to route segment D to route segment E.
[0055] Additionally, in some examples, the predicted sub-series crossing times of multiple sub-series of a series of route segments may be combined to predict the crossing time of the entire series of route segments. For example, the predicted crossing time of the sub-series route segment A to route segment B may be added to the predicted crossing time of the sub-series route segment C to route segment D to route segment E to predict the crossing time of the series of route segment A to route segment B to route segment C to route segment D to route segment E.
[0056] In some examples, a particular sub-series route segment may be selected for use in predicting a total route traversal time based on various factors, such as the length of the sub-series (e.g., the number of route segments in the sub-series, or the total length of the sub-series in miles or km) or the number of historical trips that include the sub-series (e.g., whether the number of historical trips that include the sub-series is greater than a threshold number of trips). That is, if only one sub-series route segment is used to predict a total route traversal time, a longer sub-series may be selected over a shorter sub-series. Similarly, a sub-series associated with a larger number of historical trips may be selected over a sub-series associated with a smaller number of historical trips.
[0057] In some embodiments, the super-segment server 140 may periodically predict the total route traversal time (e.g., every minute, every two minutes, every five minutes, etc.) to generate an updated prediction of the total route traversal time. In this manner, the super-segment server 140 may generate an updated prediction to account for changes in traffic or other conditions.
[0058] At block 414, a set of navigation directions and a predicted total route traversal time may be provided for presentation on a client device for navigating from the origin location to the destination location. For example, the navigation application 154 may present the set of navigation directions and the predicted total route traversal time on the display 126 of the electronic device 102. As the user traverses the route, the super-segment server 140 may also provide updated predicted total route traversal times for presentation on the client device.
[0059] Other considerations
[0060] The following additional considerations apply to the foregoing discussion. Throughout the specification, multiple instances may implement components, operations or structures described as single instances. Although the individual operations of one or more methods are shown and described as separate operations, one or more of the individual operations may be performed simultaneously, and the operations do not need to be performed in the order shown. The structures and functions presented as separate components in the example configuration may be implemented as combined structures or components. Similarly, the structures and functions presented as separate components may be implemented as separate components. These and other variations, modifications, additions and improvements fall within the scope of the subject matter of the present disclosure.
[0061] In addition, certain embodiments are described herein as including logic or multiple components, modules, or mechanisms. Modules may constitute software modules (e.g., code stored on a machine-readable medium) or hardware modules. A hardware module is a tangible unit capable of performing certain operations and may be configured or arranged in a certain manner. In an example embodiment, one or more computer systems (e.g., independent client or server computer systems) or one or more hardware modules of a computer system (e.g., a processor or a group of processors) may be configured by software (e.g., an application or application portion) as a hardware module that operates to perform certain operations as described herein.
[0062] A hardware module may include dedicated circuitry or logic that is permanently configured to perform certain operations (e.g., as a dedicated processor such as a field programmable gate array (FPGA) or an application specific integrated circuit (ASIC)). A hardware module may also include programmable logic or circuitry (e.g., contained within a general purpose processor or other programmable processor) that is temporarily configured by software to perform certain operations. It should be understood that the decision to implement a hardware module in dedicated and permanently configured circuitry or in temporarily configured circuitry (e.g., configured by software) may be driven by cost and time considerations.
[0063] Thus, the term hardware should be understood to encompass tangible entities that are physically constructed, permanently configured (e.g., hardwired), or temporarily configured (e.g., programmed) to operate in a certain manner or to perform certain operations described herein. Considering embodiments in which hardware modules are temporarily configured (e.g., programmed), it is not necessary to configure or instantiate each hardware module at any one time. For example, where the hardware modules include a general-purpose processor configured using software, the general-purpose processor can be configured as corresponding different hardware modules at different times. Thus, software can configure a processor, for example, to constitute a particular hardware module at one time, and to constitute a different hardware module at a different time.
[0064] Hardware and software modules can provide information to other hardware and / or software modules and receive information from other hardware and / or software modules. Therefore, the described hardware modules can be considered as being coupled in communication. In the case of multiple such hardware or software modules being present at the same time, communication can be achieved by connecting the signal transmission of the hardware or software modules (e.g., by appropriate circuits and buses). In the embodiment where multiple hardware modules or software are configured or instantiated at different times, the communication between such hardware or software modules can be achieved, for example, by storing and retrieving the information in the memory structure that multiple hardware or software modules can access. For example, a hardware or software module can perform an operation and store the output of the operation in a memory device coupled to it in communication. Then, other hardware or software modules can access the memory device at a later time to retrieve and process the stored output. The hardware and software modules can also initiate communication with input or output devices, and can operate resources (e.g., information collection).
[0065] The various operations of the example methods described herein may be performed at least in part by one or more processors that are temporarily configured (e.g., by software) or permanently configured to perform the relevant operations. Whether temporarily or permanently configured, such processors may constitute processor-implemented modules that operate to perform one or more operations or functions. In some example embodiments, the modules mentioned herein may include processor-implemented modules.
[0066] Similarly, the methods or routines described herein may be implemented at least in part by a processor. For example, at least some of the operations of the method may be performed by one or more processors or a hardware module implemented by the processor. The execution of certain operations may be distributed in one or more processors, not only residing in a single machine, but also deployed on multiple machines. In some example embodiments, one or more processors may be located in a single location (e.g., in a home environment, an office environment, or as a server cluster), while in other embodiments, the processor may be distributed in multiple locations.
[0067] The one or more processors may also operate to support execution of related operations in a "cloud computing" environment or as a SaaS. For example, as described above, at least some operations may be performed by a set of computers (as an example of a machine including a processor), which may be accessed via a network (e.g., the Internet) and via one or more appropriate interfaces (e.g., APIs).
[0068] The execution of certain operations may be distributed among one or more processors, not only residing in a single machine, but also deployed on multiple machines. In some example embodiments, one or more processors or processor-implemented modules may be located in a single geographic location (e.g., in a home environment, an office environment, or a server farm). In other example embodiments, one or more processors or processor-implemented modules may be distributed across multiple geographic locations.
[0069] Some parts of this specification are presented in terms of algorithms or symbolic representations of operations on data stored in a machine memory (e.g., computer memory) as bits or binary digital signals. These algorithms or symbolic representations are examples of techniques used by those of ordinary skill in the field of data processing to convey the substance of their work to other technicians in the field. As used herein, an "algorithm" or "routine" is a self-consistent sequence of operations or similar processes that result in a desired result. In this context, algorithms, routines, and operations involve physical manipulations of physical quantities. Typically, but not necessarily, such quantities can take the form of electrical, magnetic, or optical signals that can be stored, accessed, transmitted, combined, compared, or otherwise manipulated by a machine. Sometimes, primarily for general reasons, it is convenient to use words such as "data," "content," "bit," "value," "element," "symbol," "character," "item," "number," "number," etc. to refer to such signals. However, these words are merely convenient labels and will be associated with appropriate physical quantities.
[0070] Unless specifically stated otherwise, discussions herein using words such as "process," "compute," "calculate," "determine," "present," "display," etc. may refer to the actions or processes of a machine (e.g., a computer) that manipulates or transforms data represented as physical (e.g., electronic, magnetic, or optical) quantities within one or more memories (e.g., volatile memory, non-volatile memory, or a combination thereof), registers, or other machine components that receive, store, send, or display information.
[0071] As used herein, any reference to "one embodiment" or "an embodiment" means that a particular element, feature, structure, or characteristic described in conjunction with the embodiment is included in at least one embodiment. The phrase "in one embodiment" appearing in various places in the specification does not necessarily refer to the same embodiment.
[0072] Some embodiments may be described using the expressions "coupled" and "connected" and their derivatives. For example, some embodiments may be described using the term "coupled" to indicate that two or more elements are in direct physical or electrical contact. However, the term "coupled" may also mean that two or more elements are not in direct contact with each other, but still cooperate or interact with each other. The embodiments are not limited to this context.
[0073] As used herein, the terms "comprises," "consisting of," "includes," "has," or any other variation thereof, are intended to cover a non-exclusive inclusion. For example, a process, method, article, or apparatus that includes a list of elements is not necessarily limited to only those elements, but may include other elements not expressly listed or inherent to such process, method, article, or apparatus. In addition, unless expressly stated to the contrary, "or" refers to an inclusive or and not an exclusive or. For example, condition A or B is satisfied by any one of the following: A is true (or exists) and B is false (or does not exist), A is false (or does not exist) and B is true (or exists), and both A and B are true (or exists).
[0074] In addition, singular nouns are used to describe the elements and components of the embodiments of this document. This is done only for convenience and to give a general sense of the description. The description should be understood to include one or at least one, and the singular also includes the plural, unless it is obvious that there is another meaning.
[0075] Upon reading this disclosure, those skilled in the art will appreciate additional alternative structural and functional designs for predicting the crossing time of a route through the principles disclosed herein. Therefore, although specific embodiments and applications have been shown and described, it should be understood that the disclosed embodiments are not limited to the precise construction and components disclosed herein. Various modifications, changes and variations that are clear to those skilled in the art may be made to the arrangement, operation and details of the methods and apparatus disclosed herein without departing from the spirit and scope defined in the appended claims.
Claims
1. A computer-implemented method for predicting a crossing time of a route, the method comprising: receiving, by a processor, a request for navigation directions, the request including a departure location and a destination location; calculating, by a processor, a route between a departure location and a destination location; determining, by a processor, a series of route segments to be traversed on a route between a departure location and a destination location, and corresponding maneuvers between route segments included in the series of route segments; identifying, by a processor, one or more sub-series of route segments in a series of route segments, and corresponding maneuvers between route segments included in each sub-series of route segments, each sub-series having route segments to be traversed successively over a portion of the route between a departure location and a destination location; for each sub-series route segment, predicting, by a processor, a sub-series traversal time for the sub-series route segment and corresponding maneuvers between route segments included in the sub-series route segment based on historical traversal time data associated with historical trips, wherein each route segment in the sub-series route segment was traversed consecutively in the historical trips; predicting, by a processor, a total route traversal time based on the sub-series traversal time of each sub-series route segment; as well as A set of navigation directions and a predicted total route traversal time are provided by the processor for presentation on a client device for navigating from a departure location to a destination location via the route.
2. The computer-implemented method of claim 1 , wherein: Identifying one or more sub-series of route segments includes: identifying, by a processor, a plurality of sub-series of route segments in the series of route segments, wherein each route segment of each sub-series of route segments in the plurality of sub-series of route segments is traversed continuously over a portion of the route between a departure location and a destination location; analyzing, by a processor, the historical trips to determine, for each of the plurality of sub-series of route segments, a number of historical trips in which each route segment in the sub-series of route segments is traversed consecutively; and The sub-series of route segments are selected by a processor from the plurality of sub-series of route segments based on a number of historical trips in which each route segment in the sub-series of route segments is traversed consecutively.
3. The computer-implemented method of claim 2, wherein: Selecting the sub-series route segments includes selecting the sub-series route segments from the plurality of sub-series route segments based on whether the number of historical trips in which each route segment in the sub-series route segments is continuously traversed is greater than a threshold number of historical trips.
4. The computer-implemented method of claim 2, wherein: Selecting the sub-series route segments includes selecting the sub-series route segments from the plurality of sub-series route segments based on the number of route segments in each of the plurality of sub-series route segments.
5. The computer-implemented method of claim 1 , wherein: Predicting the sub-series crossing time includes predicting the sub-series crossing time for each sub-series route segments further based on historical or current crossing time data associated with route segments included in the series of route segments and not included in the one or more sub-series route segments.
6. The computer-implemented method of claim 1 , wherein: Predicting the sub-series crossing time includes predicting the sub-series crossing time for each sub-series route segment further based on historical or current crossing time data associated with route segments not included in the one or more sub-series route segments.
7. The computer-implemented method of claim 1 , wherein: Each sub-series of route segments contains fewer route segments than the series of route segments.
8. The computer-implemented method of claim 1 , further comprising: predicting, by a processor, a traversal time for each route segment included in the series of route segments and not included in the one or more sub-series of route segments; as well as Wherein, the total route traversal time predicted by the processor is further based on the predicted traversal time of each route segment included in the series of route segments and not included in the one or more sub-series of route segments.
9. The computer-implemented method of claim 7, wherein: The predicted crossing time for a route segment is based on one or more of the following: (i) historical traversal time data associated with the route segment; (ii) historical crossing time data associated with another route segment that immediately precedes the route segment or immediately follows the route segment in the series of route segments; (iii) current crossing time data associated with the route segment; or (iv) current crossing time data associated with another route segment that immediately precedes the route segment or immediately follows the route segment in the series of route segments.
10. The computer-implemented method of claim 1, wherein: Predicting the sub-series traversal time for each sub-series route segment includes: The machine learning model is trained, by the processor, using one or more of: (i) characteristics of the sub-series of route segments, including historical traversal times of route segments within each sub-series of route segments, and (ii) historical traversal times of each sub-series of route segments; For each of the one or more sub-series route segments: identifying, by a processor, characteristics of the sub-series of route segments, including current traversal times of route segments within the sub-series of route segments; and A machine learning model is applied, by a processor, to the characteristics of the sub-series of route segments to predict a sub-series of crossing times.
11. A computing device comprising: One or more processors and a non-transitory computer-readable memory having stored thereon instructions that, when executed by the one or more processors, cause the computing device to: receiving a request for navigation directions, the request including a departure location and a destination location; Calculate a route between a departure location and a destination location; determining a series of route segments to be traversed on a route between a departure location and a destination location, and corresponding maneuvers between route segments included in the series of route segments; identifying one or more sub-series of route segments in a series of route segments, and corresponding maneuvers between route segments included in each sub-series of route segments, each sub-series having route segments to be traversed consecutively over a portion of the route between a departure location and a destination location; for each sub-series route segment, predicting a sub-series traversal time for the sub-series route segment and corresponding maneuvers between route segments included in the sub-series route segment based on historical traversal time data associated with historical trips, wherein each route segment in the sub-series route segment was traversed consecutively in the historical trips; predicting a total route traversal time based on the sub-series traversal time of each sub-series route segment; as well as A set of navigation directions and a predicted total route traversal time are provided for presentation on a client device for navigating from a departure location to a destination location via the route.
12. The computing device of claim 11, wherein: The instructions cause the computing device to identify the one or more sub-series of route segments by: identifying a plurality of sub-series of route segments in the series of route segments, wherein each route segment of each sub-series of route segments in the plurality of sub-series of route segments is traversed continuously over a portion of the route between a departure location and a destination location; Analyzing the historical trips to determine, for each of the plurality of sub-series of route segments, a number of historical trips in which each route segment in the sub-series of route segments is traversed consecutively; and The sub-series of route segments are selected from the plurality of sub-series of route segments based on the number of historical trips in which each route segment in the sub-series of route segments is traversed consecutively.
13. The computing device of claim 12, wherein: The instructions cause the computing device to select the sub-series of route segments from the plurality of sub-series of route segments based on whether the number of historical trips in which each route segment in the sub-series of route segments is continuously traversed is greater than a threshold number of historical trips.
14. The computing device of claim 12, wherein: The instructions cause the computing device to select a sub-series of route segments from the plurality of sub-series of route segments based on a number of route segments in each of the plurality of sub-series of route segments.
15. The computing device of claim 11, wherein: The instructions cause the computing device to further predict a sub-series transit time for each sub-series route segments based on historical or current transit time data associated with route segments included in the series of route segments and not included in the one or more sub-series of route segments.
16. The computing device of claim 11, wherein: The instructions cause the computing device to further predict a sub-series transit time for each sub-series route segments based on historical or current transit time data associated with route segments not included in the one or more sub-series route segments.
17. The computing device of claim 11, wherein: Each sub-series of route segments contains fewer route segments than the series of route segments.
18. The computing device of claim 11, wherein: The instructions further cause the computing device to: predicting a traversal time for each route segment included in the series of route segments and not included in the one or more sub-series of route segments; and A total route traversal time is also predicted based on the predicted traversal time of each route segment included in the series of route segments and not included in the one or more sub-series of route segments.
19. The computing device of claim 17, wherein: The instructions cause the computing device to predict a crossing time of a route segment based on one or more of: (i) historical traversal time data associated with the route segment; (ii) historical crossing time data associated with another route segment that immediately precedes the route segment or immediately follows the route segment in the series of route segments; (iii) current crossing time data associated with the route segment; or (iv) current crossing time data associated with another route segment that immediately precedes the route segment or immediately follows the route segment in the series of route segments.
20. A non-transitory computer-readable medium storing instructions that, when executed by one or more processors in a computing device, cause the one or more processors to: receiving a request for navigation directions, the request including a departure location and a destination location; Calculate a route between a departure location and a destination location; determining a series of route segments to be traversed on a route between a departure location and a destination location, and corresponding maneuvers between route segments included in the series of route segments; identifying one or more sub-series of route segments in a series of route segments, and corresponding maneuvers between route segments included in each sub-series of route segments, each sub-series having route segments to be traversed consecutively over a portion of the route between a departure location and a destination location; for each sub-series route segment, predicting a sub-series traversal time for the sub-series route segment and corresponding maneuvers between route segments included in the sub-series route segment based on historical traversal time data associated with historical trips, wherein each route segment in the sub-series route segment was traversed consecutively in the historical trips; predicting a total route traversal time based on the sub-series traversal time of each sub-series route segment; as well as A set of navigation directions and a predicted total route traversal time are provided for presentation on a client device for navigating from a departure location to a destination location via the route.
Citation Information
Patent Citations
Segment defining method, travel time calculation device, and driving support device
US20130173153A1