IP Library Granted Patent US 10,732,002
Granted Patent B2
US 10,732,002 · App. 15/693,193 · Granted Aug 4, 2020

Generating accurate speed estimations using aggregated telemetry data

Inventors: Lily Chai (San Francisco, CA); Morgan Herlocker (Oakland, CA)
Assignee: Mapbox, Inc.
G01C21/3492G01C21/32G01C21/3691G01C21/3697G06F16/29
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,732,002
App. No.
15/693,193
Granted
Aug 4, 2020
Kind
B2
Abstract

A method for providing an improvement in speed estimation for route planning involves identifying a plurality of observed speeds for a segment of road during a first time period, the plurality of observed speeds corresponding to the plurality of traces of the segment of road. The method further involves identifying a plurality of discrete values in the plurality of observed speeds, and determining a count for each of the plurality of discrete values. The method further involves aggregating the counts for the plurality of traces including the segment to create aggregated counts for the segment, and determining the speed estimate from the aggregated counts for the plurality of traces including the segment.

Claims (92)

1. A data processing method for speed estimation, the method comprising:

receiving, from each of a plurality of devices, a plurality of traces, each trace comprising a set of location coordinates of a path traversed by the device and a timestamp associated with the set of location coordinates;

identifying, based on the received pluralities of traces, one or more road segments that have been traversed by at least one of the plurality of devices;

for each of the identified one or more road segments:

determining, based on the received pluralities of traces, a plurality of observed speeds for the road segment for a first time interval, wherein each of the plurality of observed speeds for the road segment for the first time interval is a speed at which a device of the plurality of devices traversed the road segment during the first time interval;

identifying a plurality of discrete values, each of the plurality of discrete values being representative of a different range of speeds;

mapping each of the plurality of observed speeds for the road segment for the first time interval to one of the plurality of discrete values based upon a range of speed within which is the observed speed;

determining a count for each of the plurality of discrete values for the road segment for the first time interval by counting how many observed speeds for the road segment for the first time interval are mapped to the discrete value;

determining, based on the received pluralities of traces, a plurality of observed speeds for the road segment for a second time interval spanning a time range immediately preceding or following the first time interval;

mapping each of the plurality of observed speeds for the road segment for the second time interval to one of the plurality of discrete values;

determining a count for each of the plurality of discrete values for the road segment for the second time interval by counting how many observed speeds for the road segment for the second time interval are mapped to the discrete value; and

aggregating the determined counts for each of the plurality of discrete values for the first and second time intervals; and

determining a speed estimate for traversing a road segment based on the aggregated counts for the road segment.

2. The method of claim 1 , further comprising:

correlating the road segment with digital map data representative of the road segment; and

storing the aggregated counts for the road segment with the digital map data that correlates to the road segment.

3. The method of claim 1 , wherein identifying the plurality of discrete values in the plurality of observed speeds comprises identifying discrete values in a stored set of discrete values.

4. The method of claim 1 , further comprising:

storing the count for each of the plurality of discrete values for each time interval in at least one of a histogram data structure and an array, wherein counts for each of the plurality of discrete values for different time intervals are stored separately.

5. The method of claim 1 , further comprising:

storing the aggregated counts for each of the plurality of discrete values for each road segment in at least one of an histogram data structure and an array.

6. The method of claim 1 , further comprising:

determining a confidence level in the determined speed estimate;

comparing the confidence level to a threshold confidence level for the speed estimate to determine that the confidence level exceeds the threshold confidence level; and

in response to determining that the threshold confidence level exceeds the threshold confidence level, generating an alert.

7. The method of claim 1 , wherein determining the speed estimate from the aggregated counts comprises:

estimating the speed based on a predetermined percentile within the distribution of the aggregated counts.

8. The method of claim 1 , further comprising:

receiving a request for an arrival time estimate;

retrieving the determined speed estimate based on the request for the arrival time estimate; and

generating the arrival time estimate in response to the request for the arrival time based on the determined speed estimate.

9. The method of claim 1 , further comprising:

calculating a total count for a particular road segment of the one or more road segments by summing the counts of the aggregated counts for the road segment;

comparing the total count for the particular road segment to a threshold total count; and

in response to determining that the total count for the particular road segment is below the threshold total count:

identifying a second road segment that is proximate to the particular road segment and in which traffic travels in an opposite direction from traffic on the particular road segment;

aggregating the counts for the particular road segment and counts for the second road segment; and

using the aggregated counts for the particular road segment and the second road segment as the counts for the particular road segment.

10. The method of claim 1 , further comprising:

determining that an identified road segment is in a low traffic area;

wherein aggregating the determined counts for each of the plurality of discrete values for the first and second time intervals is responsive to determining that the identified road segment is in the low traffic area.

11. A non-transitory computer-readable storage containing computer program code executable on a processor for providing an improvement in speed estimation for route planning, the computer program code for:

receiving, from each of a plurality of devices, a plurality of traces, each trace comprising a set of location coordinates of a path traversed by the device and a timestamp associated with the set of location coordinates;

identifying, based on the received pluralities of traces, one or more road segments that have been traversed by at least one of the plurality of devices;

for each of the identified one or more road segments:

determining, based on the received pluralities of traces, a plurality of observed speeds for the road segment for a first time interval, wherein each of the plurality of observed speeds for the road segment for the first time interval is a speed with which a device of the plurality of devices traversed the road segment during the first time interval;

identifying a plurality of discrete values, each of the plurality of discrete values being representative of a different range of speeds;

mapping each of the plurality of observed speeds for the road segment for the first time interval to one of the plurality of discrete values based upon a range of speed within which is the observed speed;

determining a count for each of the plurality of discrete values for the road segment for the first time interval by counting how many observed speeds for the road segment for the first time interval are mapped to the discrete value;

determining, based on the received pluralities of traces, a plurality of observed speeds for the road segment for a second time interval spanning a time range immediately preceding or following the first time interval;

mapping each of the plurality of observed speeds for the road segment for the second time interval to one of the plurality of discrete values;

determining a count for each of the plurality of discrete values for the road segment for the second time interval by counting how many observed speeds for the road segment for the second time interval are mapped to the discrete value; and

aggregating the determined counts for each of the plurality of discrete values for the first and second time intervals; and

determining a speed estimate for traversing a road segment based on the aggregated counts for the road segment.

12. The computer-readable medium of claim 11 , further containing computer program code executable on a processor for:

correlating the road segment with digital map data representative of the road segment; and

storing the aggregated counts for the road segment with the digital map data that correlates to the road segment.

13. The computer-readable medium of claim 11 , wherein the computer program code executable on a processor for identifying the plurality of discrete values in the plurality of observed speeds comprises computer program code executable on a processor for:

identifying discrete values in a stored set of discrete values.

14. The computer-readable medium of claim 11 , further containing computer program code executable on a processor for:

storing the count for each of the plurality of discrete values for each time interval in at least one of a histogram data structure and an array, wherein counts for each of the plurality of discrete values for different time intervals are stored separately.

15. The computer-readable medium of claim 11 , further containing computer program code executable on a processor for:

storing the aggregated counts for each of the plurality of discrete values for each road segment in at least one of an histogram data structure and an array.

16. The computer-readable medium of claim 11 , further containing computer program code executable on a processor for:

determining a confidence level in the determined speed estimate;

comparing the confidence level to a threshold confidence level for the speed estimate to determine that the confidence level exceeds the threshold confidence level; and

in response to determining that the threshold confidence level exceeds the threshold confidence level, generating an alert.

17. The computer-readable medium of claim 11 , wherein the computer program code executable on a processor for determining the speed estimate from the aggregated counts comprises computer program code executable on a processor for:

estimating the speed based on a predetermined percentile within the distribution of the aggregated counts.

18. The computer-readable medium of claim 11 , further containing computer program code executable on a processor for:

receiving a request for an arrival time estimate;

retrieving the determined speed estimate based on the request for the arrival time estimate; and

generating the arrival time estimate in response to the request for the arrival time based on the determined speed estimate.

19. The computer-readable medium of claim 11 , further containing computer program code executable on a processor for:

calculating a total count for a particular road segment of the one or more road segments by summing the counts of the aggregated counts for the road segment;

comparing the total count for the particular road segment to a threshold total count; and

in response to determining that the total count for the particular road segment is below the threshold total count:

identifying a second road segment that is proximate to the particular road segment and in which traffic travels in an opposite direction from traffic on the particular road segment;

aggregating the counts for the particular road segment and counts for the second road segment; and

using the aggregated counts for the particular road segment and the second road segment as the counts for the particular road segment.

20. A data processing method for speed estimation, the method comprising:

receiving, from each of a plurality of devices, a plurality of traces, each trace comprising a set of location coordinates of a path traversed by the device and a timestamp associated with the set of location coordinates;

combining the received pluralities of traces with a historic set of traces to produce a combined set of traces;

identifying a subset of traces in the combined set of traces wherein each trace in the subset of traces is associated with a timestamp at least a threshold time old;

removing the subset of traces from the combined set of traces to produce an updated set of traces;

identifying, based on the updated set of traces, one or more road segments that have been traversed by at least one of the plurality of devices;

for each of the identified one or more road segments:

determining, based on the updated set of traces, a plurality of observed speeds for the road segment for a first time interval, wherein each of the plurality of observed speeds for the road segment for the first time interval is a speed at which a device of the plurality of devices traversed the road segment during the first time interval;

identifying a plurality of discrete values, each of the plurality of discrete values being representative of a different range of speeds;

mapping each of the plurality of observed speeds for the road segment for the first time interval to one of the plurality of discrete values based upon a range of speed within which is the observed speed;

determining a count for each of the plurality of discrete values for the road segment for the first time interval by counting how many observed speeds for the road segment for the first time interval are mapped to the discrete value; and

determining a speed estimate for traversing a road segment of the one or more road segments based on determined counts for the road segment.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 6, 2017
From: CHAI, LILY; HERLOCKER, MORGAN
To: MAPBOX, INC.
Reel/Frame 043495/0332 →
Continuity (1)
Related Publication 20190063939A1 · Feb 28, 2019