Patent Description:
Drivers, municipalities and insurance companies have a shared interest in encouraging people to travel at safe speeds. Determining a safe speed, however, can be difficult.

Frequently, safe speeds have been determined by comparison with an official speed limit. Municipalities typically set speed limits by performing a "traffic and engineering survey". The survey measures actual driving speeds on the road in question and the speed limit is often set based on the <NUM>th percentile of observed speed. The decision to use the <NUM>th percentile was motivated by the "Solomon Curve" shown in <FIG>. This curve shows that the risk of crash is related to the deviation from the average speed; traveling significantly faster or slower than the typical speed is associated with an elevated rate of crashing.

A single official speed limit, however, presumes that there is a universal safe speed for a road segment. However, a safe speed is highly dependent on the driver and the road conditions. For example, the speed limit may not reflect a safe speed because of weather (rain, snow, fog, wind speed), construction, darkness, sun glare, traffic, an inexperienced driver, an exhausted driver, or a host of other factors.

Furthermore, it can be difficult to gauge the degree of safety based solely on a single speed limit. For example, exceeding the speed limit by <NUM> miles per hour (approx. <NUM> kilometers per hour) may be safe on some roads but dangerous on others. Because of this ambiguity, there is no accepted method to compare a driver's fine-grained speeding behavior across different road segments. Therefore, it can be difficult to identify where a driver's most dangerous speeding occurs.

This difficulty makes it harder to help drivers modify their own behavior to become safer, and harder for municipalities or insurance companies to assess risk. Further, <CIT> describes a method of monitoring the speed of an automotive vehicle comprising: identifying an approaching road segment lying ahead of the vehicle; accessing a speed profile of the approaching segment, the speed profile generated by analyzing a statistical distribution of historical speed data collected from probe vehicles that have previously traveled over the approaching segment; establishing a target vehicle speed over the approaching road segment based on a desired relationship with the speed profile, the desired relationship being based upon at least one of a driver condition factor, a driving conditions factor, a vehicle condition factor, and a driver input factor; assessing whether the vehicle is likely to exceed the target speed over the approaching segment based, at least in part, on at least one measured vehicle dynamic property; and activating at least one vehicle system in response to the above assessment, as well as a method of monitoring the speed of an automotive vehicle comprising: determining a location of the vehicle relative to an approaching road segment lying ahead of the vehicle; accessing a first speed profile of the approaching segment, the first speed profile generated by analyzing a statistical distribution of historical speed data collected from probe vehicles that have previously traveled over the approaching segment; identifying a baseline road segment over which the vehicle has previously traveled; accessing a second speed profile of the baseline segment, the second speed profile generated by analyzing a statistical distribution of historical speed data collected from probe vehicles that have previously traveled over the baseline segment; comparing a past speed of the vehicle over the baseline segment with the second speed profile to determine a speed differential; and applying the speed differential to the first speed profile to establish a target vehicle speed over the approaching segment; assessing whether the vehicle is likely to exceed the desired speed over the approaching segment based, at least in part, on a current vehicle speed; and notifying the vehicle driver of results of the assessment, as well as an apparatus therefore.

In one aspect, as further defined in the accompanying claims, in general, information is collected from multiple trips and multiple drivers across many road segments. The information collected includes the speed traveled along the road segment, along with additional information, such as (for example) driver, time of day, day of week, weather and road conditions, angle of the sun or other factors. Given information from a new trip, the driver's speed can be compared on each road segment with relevant data from previous trips (from e.g., similar roads, weather conditions, drivers). The comparison yields a score representing the safety of the driver's speed.

In another aspect, not according to the claimed invention, a smart phone executing an application travels with a driver in a vehicle and records the vehicle's speed, its location along a road network, and the time of travel. The recorded data is sent to a server, either on an ongoing basis, or in a batch from time to time. The server stores the data for a plurality of vehicles representing travelling speed on a plurality of road segments of a road network.

For each road segment of the plurality of road segments, the collected data is processed for the road segment to determine speed characteristics for the road segment. For example, a server computes a cumulative distribution of the speeds observed during rush hour travel and during non-rush hour travel. In some embodiments, once a characterization has been made, it is then used to label certain ranges of speeds as e.g. "safe", "slightly risky", or "very risky".

For the assessment of an individual vehicle, vehicle data is collected from that vehicle for each road segment the vehicle travels on over the course of a trip. This data is used to compute a segment-specific risk score for each road segment. These segment-specific scores are aggregated for each road segment in the trip to create a global risk for the trip, or for multiple trips. For example, in some embodiments, the median speed of the individual vehicle may be compared with the median speed of other vehicles in similar conditions. This score is then provided to the driver of the vehicle, or alternatively to a third party, for instance, an insurance company.

In another aspect, a method is directed to characterizing a target vehicle's speed on a road network, as further defined in the accompanying claim <NUM>. Advantageous embodiments may be configured according to the dependent claims <NUM>-<NUM>.

In another aspect, a machine-readable medium is provided according to the accompanying claim <NUM>.

In another aspect, not according to the claimed invention, a computer-implemented system includes a processor configured to perform all the steps of any method set forth above.

Advantages of one or more embodiments may include the following.

Empirical data on driver speed on a road segment may provide a more accurate assessment of safe speeds than speed limits based on conventional traffic and engineering survey approaches. Furthermore, the empirical data collected using these approaches may be used to inform municipalities or other entities that set sped limits. For example, since many speed limits are set with the intention of being the <NUM>th percentile of speeds driven on a road, the <NUM>th percentile of empirical speed on a road segment can be dynamically computed, making for a more accurate suggested speed limit.

The data collection approach may provide a greater amount of data collected at a lower cost than conventional road survey approaches. This in turn allows for a better estimation of the <NUM>th speed percentile. Given the sheer volume of data that is to be dealt with, the results of its analysis can be updated continuously, and be made available more promptly.

Municipalities or insurance companies may be most interested in the most frequently travelled road. One or more embodiments may be capable of producing accurate estimates of high-traffic road segments rapidly, since the most data is collected there. The collection of large quantities of data would also allow for the inference of speed limits from empirical data for populating map databases.

Aspects allow for the estimation of relative driving behavior for individual drivers or vehicles. Given an empirical speed distribution, the server can associate a percentile for each trip taken by a user. A user's behavior can then be described as a distribution over percentiles. This description allows us to combine behavior from different road segments. It may be further useful to characterize the driver's speeding habits based on the functional class of the road (e.g., major highway versus small side street), road geometry, time of day, inclement weather, and so forth.

The safe speed on a road segment is often a function of road conditions. For example, a driver may need to drive more slowly on a road at night than during the day. This invention allows the estimation of conditional empirical speed distributions, where any of the following may be factors in this estimation: weather conditions on a given road segment, time of day, day of the week, or direction of one's driving with respect to solar glare (whether or not "the sun is in your eyes").

In order to help a driver become safer, the system can identify on which roads the driver speeds the most relative to other drivers. Identifying such roads benefits from an empirical distribution, e.g., from knowledge of percentiles above the <NUM>th.

Other features and advantages of the invention are apparent from the following description, and from the claims.

Referring to <FIG>, a number of cars <NUM> are able to communicate with a server <NUM> in order to provide the server with driving information about each car. More specifically, in a number of embodiments, drivers of the cars carry personal devices, such as smartphones, that internally include sensors, processors, and communication device that are used to collect speed, location and time data and communicate that data with the server. The server <NUM> maintains a log <NUM> of driving information for all vehicles. The server then provides feedback to each driver about their performance based on the log data <NUM> from the cars. A representative car <NUM> is shown on a roadway <NUM>. Roadway <NUM> is shown to be divided into smaller road segments <NUM>-<NUM>, with the car <NUM> occupying the road segment <NUM>.

As a vehicle traverses a particular road segment (e.g., road segment <NUM> in <FIG>), the personal device in the vehicle collects a time series of speed samples (e.g., one sample per second). These samples may be summarized as a single number (e.g., mean or median speed), as several numbers (e.g. mean and variance of speed), or retained as the full set of speed samples. We will refer to the full speed samples or their summary as the "segment speed" for the user on that segment. As a vehicle <NUM> traverses multiple road segments on a trip (e.g., including segments <NUM>-<NUM>), the personal device determines the segment speed <NUM> on each road segment for the vehicle on the trip. Very generally, the vehicle's segment speed on a segment is compared to the distribution of segment speeds (on the same or similar segments) from other trips at the server <NUM>, weighted by the similarity of the trip. This comparing yields the information about the driver's performance.

For a particular road segment traversed by a particular vehicle, the server <NUM> computes a score by comparing the segment speed with the segment speeds logged for the same segment (or similar segments) from other similar trips, and combining the comparisons according to a weighting based on the similarity of the trips. The other trips may be from the same or other drivers. Similarity of trips is based on a combination of one or more of the following measures: weather (including rain, snow, fog, wind speed), construction, darkness, sun glare, traffic, driver experience, driver exhaustion, driver distraction, typical speeds for this driver or this vehicle on this or other road segments, or other features of the road, driver and environment. Henceforth we refer to such measures as "covariate measures". Use of similar segments is discussed further below.

To determine the weights for the combining of the comparisons, the system takes into account how the speed distribution changes as a function of covariate measures. We provide two examples. These weights are typically informed by measurements of speed as the covariate measures vary across drives. For example, <FIG> illustrates variability in mean speed across time of day; driving speed during the early morning (3am-6am) is much faster than driving during the day. <FIG> illustrates the value of combining multiple covariate measures, in this case, time of day and weekend versus weekday. The reduction in typical speed during a weekday rush hour is evident.

There are several ways to set the weights. First, the weights can be set directly through expert knowledge of the system. Second, the weights can be set to maximize the likelihood of held-out speed data. Third, the weights can be set to maximize the accuracy of prediction of the safety data.

We give a more detailed example of the third technique for setting weights. Suppose our safety data consists of the time and location of vehicle crashes. We imagine that there is some unknown probability of a crash on a road segment R given the speed and covariate measures. We will write this as prob(crash on R | speed, covariate measures). For an individual road segment in isolation, we can use a logistic regression to set the weights of the covariates. To combine statistical information across multiple road segments, we can choose a set of weights randomly and separate the crash data into a training and test set. We can use, e.g., stochastic gradient descent to optimize the weights on the training data, using the test data for validation to prevent overfitting.

Once we have computed a score per road segment, we can report this score directly to an interested party (such as the driver). We can also aggregate the segment scores per trip, per user, per vehicle, per calendar time (e.g., mean score over two weeks of driving), per driving time (e.g., mean score per hour of driving), or per distance (e.g., mean score per kilometer).

<FIG> illustrates the cumulative distribution function (CDF) of speed on a single road segment, across many drivers and trips, weighted by driver. It additionally illustrates the CDFs of two particular drivers. The drivers' CDFs differ from the common CDF and from each other.

We provide a more detailed example for clarity. (The numerical values, covariate measures and weights are provided as examples for concreteness, and may vary in different embodiments. ) This example is illustrated in <FIG>. Suppose vehicle <NUM> traversed road segment <NUM> from <NUM>:<NUM> AM to <NUM>:<NUM> AM, on a Monday, in light rain, traveling at segment speed <NUM>.

We consider separate other trips on the same road segment into three categories and compute the empirical cumulative distribution function for each category: trips that occurred between <NUM>:<NUM>-<NUM>:<NUM> AM on a week day in light rain (<NUM>); trips that occurred between <NUM>:<NUM>-<NUM>:<NUM> AM or <NUM>:<NUM>-<NUM>:<NUM> AM in light rain (<NUM>); and all other trips (<NUM>). The segment speed <NUM> corresponds to a vertical line (<NUM>) on the plot; in general, this vertical line intersects each CDF at a different height (quantile). The intersection with CDF <NUM> is marked by <NUM> (at quantile <NUM>), and the intersection with CDF <NUM> is marked by <NUM> (at quantile <NUM>). We produce a final score by taking a weighted combination of the quantiles (<NUM>) and (<NUM>), as denoted by <NUM>. For example, we might take score=<NUM>*(<NUM>)+<NUM>*(<NUM>)=<NUM>. (We give <NUM> a weight of zero, and thus do not bother including it in the weighted sum.

If the road segment score exceeded the <NUM>th percentile or fell below the <NUM>th percentile (i.e., score><NUM> or score<<NUM>), we may interpret the score as "mildly risky"; if it exceeds the <NUM>th percentile or fell below the <NUM>th percentile, we may interpret the score as "very risky".

The observed quantiles for two different drivers can vary substantially.

Operation of the system described above can be understood with reference to the flowchart shown in <FIG>. Referring to <FIG>, the system collects segment speed data from multiple vehicles (step <NUM>). As discussed above, this data may be first collected in the vehicle, and then sent to a server in batches, or alternatively, the data may be sent to the server on an ongoing basis. This data for each road segments is used to compute segment data <NUM> for all the segments (step <NUM>). The server also collects data for a specific vehicle (step <NUM>). Using the road segment characteristics <NUM>, the system computes segment-specific speed data for the user, for example, the median speed travelled in the segment (step <NUM>). The system aggregates the segment-specific data over the road segments travelled by the vehicle (step <NUM>), and computes a driver score (step <NUM>), which is provided to the driver or a third party. In some examples, the aggregated score may be specific to a class (i.e., type) of road segments, for example, for highway or surface street, or some other category, such as time of day, for example, daytime versus nighttime driving.

Some aspects may vary in other embodiments. In particular, instead of the median, we may record alternate statistics of the speed across a segment, such as the mean speed, the mean and variance, the Z-score, the median and interquartile range, or all the speed samples. The score (for a road segment, trip or trips) may include a confidence interval or other indication or uncertainty. Rather than evaluating the observed speed, a speed margin can be added to forgive some fraction of risky speeding. For example, the observed median speed for an individual road segment under evaluation can be modified to be, e.g., <NUM> miles per hour (approx. <NUM> kilometers per hour) closer to the population median speed. The output score can be either discrete (e.g., "safe" vs "slightly risky" vs "very risky") or continuous (e.g., <NUM> vs <NUM>). To avoid overweighting drivers who drive on the same road segment many times, the weight can be reduced by the number of trips per driver on that road segment (e. , if a driver traverses a particular road segment X times, reduce the weight by an additional multiplicative factor of X).

When insufficient data is available to estimate a speed distribution (i.e., sparse or missing data) for a particular road segment only from logged data for that segment, the speed distribution can be inferred from data on similar road segments in similar conditions. For example, by finding other road segments of similar road type (e.g., highway or surface street), road geometry, and road conditions, the speed samples can be pooled and a speed distribution can be inferred for all the similar road segments.

Alternatively, when dealing with sparse data, speed samples may be used from differing road segments (or the same road segment in different environments) by transforming the speed samples to representative speed samples of the appropriate type. For example, suppose we observe the speed distribution for road segment A and road segment B, both in clear weather. We match speed samples based on quantiles and fit a regression R1. Next, we fit a speed regression R2 on segment A between speeds in clear weather versus rain. By applying R2 and R1 on the original CDF of road segment A in clear weather, we obtain an estimate for the CDF of road segment B in the rain.

When transforming and combining samples from various different road segments and conditions, the weight of these additional samples are reduced based on the inaccuracy of the estimate (e.g., if the transformation produces an estimate with high variance, the transformed sample's weight would be low). The uncertainty of the regression may be estimated through various techniques, such as using Gaussian process regression. The estimation techniques may rely on a notion of the similarity of two road segments. A quantitative measure of similarity is provided by the weights discussed in paragraph <NUM>.

An additional technique for handling sparse data is to leverage the prior driving history of the drivers. For example, suppose we wish to estimate the <NUM>th percentile of the mean speed on a road segment. Absent additional information, it would require many samples to make a reliable estimate. Suppose we only have a single measurement on the road segment. However, suppose prior measurements indicated that that particular driver regularly drove between the <NUM>th and <NUM>th percentile on most other roads. The single data point is then a fairly accurate estimate of the <NUM>th percentile. Leveraging the prior speeding behavior of all the drivers allows for more accurate estimates of speed distributions with less data.

In one or more examples described above, a driver's smartphone is used to collect the speed and location data for the vehicle. Alternative embodiments may use techniques described in <CIT>, "TELEMATICS USING PERSONAL MOBILE DEVICES," and in <CIT>, "INFERENCE OF VEHICULAR TRAJECTORY CHARACTERISTICS WITH PERSONAL MOBILE DEVICES". Furthermore, a device affixed to the vehicle, for example, a tag as described in US Past. Pub <CIT>, "SYSTEM AND METHOD FOR OBTAINING VEHICLE TELEMATICS DATA".

In other embodiments, the system may factor in a roadway's speed limit in addition to population speeds when determining safe speed ranges for a road segment.

In the interests of preserving battery life or reduce data transmission, it is possible to record and/or transmit only a portion or summary of the underlying speed measurements.

Implementation of the approaches described above may implement the data processing steps (e.g., data storage, data reduction, and data communication) using hardware, software, or a combination of hardware and software. The hardware can include application specific integrated circuits (ASICS). The software can instructions stored on a non-transitory medium (e.g., non-volatile semiconductor memory) for causing one or more processors in a tag, the smartphone, and/or the server, to perform the procedures described above.

Claim 1:
A computer-implemented method for characterizing a target vehicle's speed on a road network, the method comprising:
collecting and storing (<NUM>) data, the data including segment speed from one or more vehicles traversing a plurality of road segments of a road network, along with one or more covariate measures selected from driver, time of day, day of week, weather, construction, darkness, sun glare, traffic, driver experience, driver exhaustion, driver distraction, road type, road geometry or road conditions;
for each road segment of the plurality of road segments, processing (<NUM>,<NUM>) the data collected associated with the road segment to determine a speed characterization for said road segment including determining a distribution of speed of vehicles on said road segment using segment speeds collected for vehicles traversing said road segment and using segment speeds collected for vehicles traversing other road segments that are similar to said road segment; wherein the other road segments that are similar to said road segment are selected from road segments of similar road type, road geometry, or road conditions;
collecting (<NUM>) data from the target vehicle for each road segment in a sequence of road segments;
for one or more road segments in the sequence of road segments, combining (<NUM>) the speed characterization for said road segment and the data collected from the target vehicle on said road segment to compute a segment-specific score for the target vehicle's speed on said road segment by combining the distribution of speed of said road segment and a speed determined from the data collected from the target vehicle, wherein the combining comprises determining a percentile of the speed for the target vehicle in the distribution of speed of the road segment; aggregating (<NUM>) the segment-specific scores for each road segment in the sequence of road segments to compute (<NUM>) a driving score for the target vehicle; and
providing the driving score to a driver of the target vehicle or a third party.