Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
CONTEXTUAL VEHICLE EVENT PROCESSING FOR DRIVER PROFILING
Document Type and Number:
WIPO Patent Application WO/2024/042521
Kind Code:
A1
Abstract:
A computing system, for automated generation of instructional text for driver safety, executes steps including: 1) accessing predefined datasets of telematic alerts, of predefined alert sequences, and of instructional categories; 2) acquiring one or more alert vectors during driving, each alert associated with a time of occurrence; 3) scanning each of the one or more alert vectors, over multiple time windows, to identify a set of alert sequence occurrences matching alert sequences in the sequence dataset and conforming to predefined time windows; 4) according to the severity of each alert sequence in the identified set of alert sequences, increasing by a proportional amount a priority score of a corresponding instructional category, to generate an aggregate priority score for each instructional category with respect to the identified set; 5) extracting instructional text associated with said instructional category from the text dataset and providing said instructional text to the driver.

Inventors:
GOREN ADI (IL)
Application Number:
PCT/IL2023/050892
Publication Date:
February 29, 2024
Filing Date:
August 22, 2023
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
I4D LTD (IL)
International Classes:
B60W40/09; G06N7/00
Foreign References:
US20210053579A12021-02-25
US20200126423A12020-04-23
US20170364821A12017-12-21
Attorney, Agent or Firm:
BENETT, Gad et al. (IL)
Download PDF:
Claims:
generate an aggregate priority score for each instructional category with respect to the identified set of alert sequences occurrences;

5) for each of the instructional categories having priority scores above a preset threshold, extracting instructional text associated with said instructional category from the text dataset and providing said instructional text to the driver.

2. The system of claim 1, wherein the instructional text is provided in an order, according to the aggregate priority score of the associated instructional category.

3. The system of claim 1, wherein the severity of each alert sequence is a value correlated with a risk of accident or with a risk of traffic violation.

4. The system of claim 1, wherein identifying the alert sequences in the one or more alert vectors further comprises calculating driver progress parameters on a recurring basis to indicate driver progress.

5. The system of claim 4, wherein the driver progress parameters include a driver profile with attributes of reckless (Profile R), insecure (Profile I), skilled (Profile S), and complacent (Profile C), wherein attributes of the driver profile are associated with each alert sequence in the predefined sequence dataset, and wherein calculating the driver progress parameters comprises aggregating the attributes of all of the alert sequences in the identified set.

6. The system of claim 1, wherein a subset of the alert sequences in the sequence dataset are close-call events having a high correlation with accident risk and the steps further comprise providing the close-call events to the driver with the instructional text.

7. The system of claim 1, wherein each alert sequence is further associated with time gaps between sequential alerts.

8. The system of claim 1, wherein the alerts include one or more of vehicle speed, a vehicle - to-vehicle distance, an intersection approach, a pedestrian distance, a severe steering alert, a severe braking alert, a severe bypassing alert, a traffic light or traffic sign violations, a forward collision, an accident, or an impact.

9. The system of claim 1, wherein the alerts include one or more driver distraction indicators including phone use, drowsiness, smoking, eating and a drinking.

10. The system of claim 1, wherein each alert of each alert vector is associated with a location of occurrence, wherein each alert sequence in the sequence dataset includes one or more road parameters, and wherein identifying each alert sequence further comprises acquiring one or more road parameters associated with the location of occurrence.

11. The system of claim 1, wherein factors of an alert are applied to calculate severity of a sequence.

12. The system of claim 1, wherein providing the instructions further comprise selecting a driver for a driving assignment according to a driver profile calculated from the instructional category.

13. The system of claim 1, wherein the alerts are acquired in real time.

14. The system of claim 1, wherein the alerts are acquired in post processing, with video analysis of a video log of a drive.

15. The system of claim 1, wherein the alerts are acquired as a log history including multiple sequential alerts.

16. The system of claim 1, wherein the instructions further include a mapping of one or more driver profiles on a grid of reckless, insecure, skilled, and complacent (RISC) attributes.

17. The system of claim 1, wherein accessing predefined datasets further comprises adding sequences to the dataset by determining that an alert sequence in an alert vector not stored in the sequence dataset is relevant as an indicator of driving behavior.

18. The system of claim 17, further comprising adding sequences to the dataset by determining that the alert sequence includes combinations of alerts and external events similar to combinations in existing sequences.

Description:
CONTEXTUAL VEHICLE EVENT PROCESSING FOR DRIVER PROFILING

FIELD OF THE INVENTION

[0001] The invention generally relates to systems and methods for improving driver training.

BACKGROUND

[0002] Vehicle accidents cause injuries and loss of life, as well as property damage to vehicles and structures. Fleet operators suffer losses as injured drivers cannot work and damaged vehicles cannot be driven. Consequently, programs may be instituted to monitor driver performance and to institute driver reviews and training to improve driver safety and reduce accidents.

[0003] Different telematics solutions are available on the market for monitoring a driver’s handling of a vehicle (i.e., “vehicle handling”). These solutions can be classified into two main categories: 1) “Dry sensor” systems, which collect data related to speed, acceleration, deceleration, and turning; and 2) more advanced systems, such as advanced driver-assistance systems (ADAS) and driving monitoring systems (DMS), which combine dry sensors with safety systems (e.g., Mobileye®), which typically include in-cabin and external cameras. In-cabin cameras may be used for monitoring driver motions that indicate driver distraction. External cameras can monitor the vehicle environment, providing alerts related to lane changes, vehicle-to-vehicle distances, pedestrian crossings, intersections, etc. The sensors may also include a GPS system for monitoring a vehicle location. Such systems may also include video telematics, which may combine a dry sensor system with a standard recording dash cam.

[0004] Most telematics-based systems collect data and provide information regarding vehicle handling alerts, that is, events indicating non-standard vehicle operation, such as harsh braking or harsh cornering, etc. A customer of such information is typically a fleet manager or insurer, who receives the information and uses it in programs that assess drivers. However, such methods of assessment are often considered to be poorly correlated to driver skills. Improved driver evaluation can improve the results of driver coaching and training programs. SUMMARY

[0005] Embodiments of the present invention provide a system and methods for generating “contextual” insights regarding driver skill, determining optimal driver training (i.e., coaching) based on identification of alerts and events, and sequences of alerts.

[0006] While a vehicle is being driven, the system receives a series of alerts, that is, a series of recorded data from the vehicle telematics and/or driver monitoring systems. Such a series is called an “alert vector.” The alert vector includes sequences of alerts that are known to be risky. For example, when a driver approaches a traffic light junction a sequence of alerts indicative of risk may include: 1) the vehicle speed; 2) a yellow traffic light at the junction; 3) a pedestrian collision warning (PCW); 4) harsh braking; 5) harsh cornering; and 6) full stop. The system automatically checks if such a sequence is listed in a predefined dataset of sequences, applying predefined timing windows to check for matches between the alerts and the predefined sequences. If the sequence exists in the dataset, an occurrence of the sequence is recorded, together with attributes of the sequence, such as severity and risk level.

[0007] On every driving trip over a given period of time, the vector of alerts for the trip is recorded and scanned to determine sequences performed by the driver. At the end of a given analysis period, detected sequences are grouped according to their relevant instruction category. An aggregate priority and severity level of each category is calculated. An automatic instruction report is then generated for the categories with the highest priority level. A personalized instruction report is provided, including professional driving guides that are prepared in advance for each driving category and predefined in an instructional dataset.

[0008] The system may also determine a driver profile, presenting a highest correlated driver profile category as a primary profile and presenting a second highest correlated driver profile category as a secondary profile, wherein the primary profile and the secondary profile create a weighted profile.

[0009] The system may also present a driver risk factor, calculated based on the risk associated with each alert in the sequences that were detected by the system. BRIEF DESCRIPTION OF DRAWINGS

[0010] For a better understanding of various embodiments of the invention and to show how the same may be carried into effect, reference will now be made, by way of example, to the accompanying drawings. Structural details of the invention are shown to provide a fundamental understanding of the invention, the description, taken with the drawings, making apparent to those skilled in the art how the several forms of the invention may be embodied in practice.

[0011] In the accompanying drawings:

[0012] Fig. 1 is a schematic illustration of a system for driver profiling and automated instruction generation, according to some embodiments of the present invention;

[0013] Figs. 2A and 2B are respective exemplary predefined datasets of alerts and alert sequences, according to some embodiments of the present invention;

[0014] Fig. 3 is a flowchart of generating a sequence and associated attributes from a series of alerts, according to some embodiments of the present invention;

[0015] Fig. 4 is a table of instructional categories to which sequences may be associated, according to some embodiments of the present invention;

[0016] Fig. 5 is a flowchart of a process for driver profiling and automated instruction generation, according to some embodiments of the present invention;

[0017] Fig. 6 is a table of examples of instructive text associated with each instructional category, according to some embodiments of the present invention;

[0018] Fig. 7 is a table of examples of sequence occurrences, instructive text associated with each problem category, according to some embodiments of the present invention;

[0019] Fig. 8 is a flowchart for establishing one of four sectors of a driver profile as a primary profile, according to some embodiments of the present invention;

[0020] Fig. 9 shows two stages of the calculation of a driver profile, according to some embodiments of the present invention;

[0021] Fig. 10 is a 4-quadrant graph indicating four profiles, R, I, S, and C of driver behavior, and calculation of a weighted driver profile, according to some embodiments of the present invention; [0022] Fig. 11 is a graph indicating a process of a connectivity search of sequence and alert factors for automated sequence detection; and

[0023] Fig. 12 is a diagram of connection/relation identification for automated sequence detection.

DETAILED DESCRIPTION

[0024] It is to be understood that the invention and its application are not limited to the system and methods described below or to the arrangement of the components set forth or illustrated in the drawings, but are applicable to other embodiments that may be practiced or carried out in various ways.

[0025] Systems that combine dry sensors and Advanced Driver Assistance System (ADAS) capabilities, together with safety monitoring devices (e.g. Mobileye®) can provide safety alerts in addition to alerts related to vehicle operation. Safety alerts may include, for example, a headway distance warning, a forward collision alert, a pedestrian collision alert, etc. Additional alerts may be provided by a Driver Monitoring System (DMS), which may provide distraction and drowsiness-related alerts.

[0026] Fig. 1 is a schematic illustration of a system 100 for driver profiling, according to some embodiments of the present invention. Associated with a vehicle 102 is a set of sensors 110, which may include “dry sensors” (inertial and location sensors), as well as sensors and cameras used by telematics systems, including ADAS and DMS applications. Cameras may include in-cabin cameras, which may be used for monitoring driver motions that indicate driver distraction, and external cameras, which can monitor the vehicle environment (lane changes, vehicle-to-vehicle distances, pedestrian crossing, intersections, etc.). Sensors of telematics systems may also include a GPS system for monitoring a vehicle location.

[0027] Sensor data is communicated from the sensors 110 to telematics platforms 112, which are typically provided by telematics service providers (TSPs) and/or fleet management systems (FMSs) that measure and which correlate sensor data with “events” of vehicle operation, such as braking, turning, pedestrian crossing alerts, etc.

[0028] The telematics platform 112 provide raw vehicle event data 114, also referred to herein as alert lists or alert vectors to a core engine 116 of the system. The alerts data typically include identifiers vehicle speed or “hard braking,” ADAS alerts, DMS alerts etc. as well as identifiers of a vehicle location and a time stamp of the alert. The core engine which associates successive alerts with each other allows a deeper contextual analysis of each driving event. The core engine 116 may also provide additional context by correlating the timing and location of vehicle event data with external conditions, such as weather, road conditions, and map data (e.g., intersection crossings), which may be provided by 3 rd party systems.

[0029] In some implementations, the core engine 116 includes two key modules: a “ground truth” module and an artificial intelligence (“Al”) module or “engine.” The ground truth module stores a dataset of driver behavior and driver safety (or driving events) events denoted herein as predefined alerts, which indicate an element of risk or of poor driving performance or vehicle handling. The ground truth module also stores a predefined dataset of sequences, as well as correlations between sequences and instructional categories and profile definitions. The ground truth module may include two sub-modules, an Alert List and a Sequence Combination Scheme. The Alert List module compares alerts received (i.e., occurrences) with predefined alerts, and associates the received alerts with attributes of the predefined alerts.

[0030] The core engine 116 also includes scoring algorithms 118 described further hereinbelow. The core engine 116 generates output that includes driving instructional text 120 (i.e., “coaching”) and sequence list and score output 122, primarily related to determination of a driver profile. The output 122 is typically stored in a cloud database 130, which may apply the output to generating additional analytics for improving driver safety. Driving instructional text 120 is then directed to an interactive platform 140, primarily for driver instruction.

[0031] The Al engine applies the pre-defined lists and definitions to automatically detect and classify new sequences, as well as to create new scoring and driver profile definitions. The Al module may be trained to recognize specific sequences out of their context, for example, HDW+HDW sequence can be considered as a lane change event.

[0032] The core engine database includes hundreds of different sequences, while the Al module constantly identifies and classifies new sequences that expand the database. [0033] Figs. 2A and 2B are partial examples of predefined datasets of alerts and alert sequences, indicated as tables 200 and 210 respectively. Table 200 shows some of the alerts that may be used by the system, including:

G, Y, R refer to alert severity: G (Green): normal; Y (Yellow) Caution; R (Red): dangerous. [0034] Fig. 2B is a table 210 showing a series of alerts, indicated as “alert codes,” and associated attributes stored with the sequence dataset. Attributes include instructional (i.e., “problem”) category, severity, and time window. The first sequence, for example, is a sequence 101 that includes the series of alerts: SPD-1 (speed level 1), a steering alert (STNG) and a mid-level (“Y”) braking alert. The severity of such a sequence is indicated as 2, and the maximum time duration over which the sequence occurs is indicated as 5 seconds. The instructional category (also referred to herein as the “problem category”) is indicated as the “Steering” category. Note that there is no limit to the length of sequences, but they typically include between two and four alerts.

[0035] Fig. 3 is a flowchart of a process 300, generating, from a series of alerts 312, a sequence 320 and associated attributes 322. As described above, typical attributes are category, severity, and time duration. Additional attributes, as described further below, may include risk and profile, as well as a “close-call event.”

[0036] The algorithm of the core engine determines if a sequence is classified as a “close call” event, meaning a sequence that had a high risk of leading to an accident. This is defined first as a sequence with a tactical speed above a 2 nd level, as described further hereinbelow. Also, a close call includes an alert that belongs to a “driving behavior” category with an alert level of 2 or 3, and a technical alert such as hard braking or hard steering.

[0037] The algorithm determines the severity level by first calculating the sum of severity factors of each alert, taken from the alerts preset, and adding the severity factor of the sequence category, taken from the category preset. Next, a close-call event is taken into account and if the sequence is marked as a close-call event, the severity level is increased by multiplying it by a pre-defined factor. The severity level is normalized to be in the range of 1-10, where 1 is the lowest and 10 is the highest severity level.

[0038] Telematics systems typically provide a vehicle speed with each alert. However, the relation between speed and accident risk depends on the context of the event. A contextual speed, or tactical speed, refers to the driving speed of an alert with respect to the alert itself and its properties. This is a more insightful parameter than the absolute speed as it provides direct information about the risk involved with the driving speed. To determine a tactical speed of a given sequence, a pre-defined table relates instructional categories and driving speed with a tactical speed. The tactical speed may be normalized between 1-4. The alert- 1 in each sequence of Figs. 2B and 3 is the tactical speed of the sequence, determined by the tactical speed of the first alert of the sequence.

[0039] Fig. 4 is a table of instructional categories to which sequences may be associated. The categories are ordered with descending priority level, with Phone Use in the highest priority and acceleration with the lowest priority. As described above, a sequence is a combination of alerts, which may include alerts from one or more categories, and which may occur in different orders.

[0040] Fig. 5 is a flowchart of a process 500 for driver profiling and automated instruction generation. The process is typically performed on a general purpose computer having one or more processors and non-transient memory communicatively coupled to the one or more processors. Computer-readable instructions stored on the non-transient memory are executed to implement steps of the process 500.

[0041] At a first step 510, the system accesses predefined datasets including: an alert dataset of alerts that telematics and driver monitoring systems are configured to issue; a sequence dataset of alert sequences; a category dataset, each instructional category corresponding to one or more alert sequences, and a text dataset of instructional text associated with each of the instructional categories. Each alert sequence includes: a sequence of alerts from the alert dataset, a predefined timing window for a maximum duration of the alert sequence, and a severity of the alert sequence.

[0042] At a subsequent step 512, one or more alert vectors are acquired from one or more vehicle telematics and/or driver monitoring systems (DMSs), while a vehicle is driven by a driver. Each alert vector is a series of alerts, each alert being associated with a time of occurrence. Typically, multiple drives a monitored, such that multiple alert vectors are aggregated.

[0043] Next, at a step 514, the system scans each of the one or more alert vectors, over multiple time windows across each alert vector. The scanning starts with each successive alert and identifies occurrences of alert sequences that match alert sequences in the sequence dataset and conform to the maximum predefined time windows of the respective alert sequences.

[0044] At a step 516, the sequence results are aggregated. The severity of each occurrence of a sequence increases by a proportional amount a priority score of a corresponding instructional category. After all sequences severity results are tabulated, the result is an aggregate priority score for each instructional category. In one embodiment, the severity scores for each sequence occurrence for each instructional category are simply summed together to provide the priority score for each instructional category. Alternatively, a weighted value is derived for the priority score of each instructional category, based on the severity of each sequence, as well as the user profile, as described further hereinbelow.

[0045] At a step 518, the system extracts from the text dataset, for each of the instructional categories having priority scores above a preset threshold, instructional text associated with the instructional category. The instructional text is provided to the driver to improve driver skill and driving behavior.

[0046] At a step 520, after repetition of the above steps, the system may also calculate “driver progress,” based on an aggregate score that takes into account an overall weighted measure of sequence severity. The progress may also indicate driver improvement with respect to a driver profile as described below.

[0047] It should be noted that if alerts with high levels of severity (e.g., “red” behavior) are detected in an alert vector, but not found in the predefined dataset, sequences included these alerts may be added to the sequence dataset, after its attributes are calculated. The category is selected as the category of the high severity level. This allows the system to learn new driver behavior in an on-the-fly manner.

[0048] After collecting driving data for a period, such as one month, the system may automatically prepare a driving report with the driving instructions, as described above. The report may also indicate driving habits that are characterized by the sequences that occurred during the period. As described above, the driving report includes textual instructions that explain how to improve driving errors. Fig. 6 shows an exemplary report, indicating three instructional categories that had a high priority score (i.e., higher than the preset threshold), based on the severity of the sequences that occurred. As shown, the three categories were improper intersection approaching, improper pedestrians handling, and dangerous bypassing. The report indicates details of the occurrences that indicated the need for instruction in these areas. The report also includes a sampling of the type of instruction that would be given (which may also include live coaching and other instructional methods).

[0049] As indicated in Fig. 6, the highest priority category is “Dangerous bypassing.” Fig. 7 shows an example of the sequence occurrences that were applied to generate the category summary of Fig. 6. As indicated, over the course of the driving period, the driver was involved in multiple recurring sequences that related to dangerous bypassing. The first row of the table shows one particular sequence that was repeated 11 times. The recording of specific sequences helps the driver understand exactly what behavior he displays on the road and what needs to be corrected, with a level of detail that is not available when the system only records alerts.

[0050] The system may also include a driver profiling module, determining a “driver profile” based on the number and/or aggregate priority of the categories, as calculated above. A driver profile is an additional tool that provides feedback for the driver. The profile may be divided into four profile categories:

• R - Reckless

I - Insecure S - Skilled

• C - Complacent

[0051] The model is referred to herein as the “RISC” Driver Profiling Model, or RISC Model. The RISC Model aggregates statistics of a driver’s performance, style, and risk.

[0052] Each of the four RISC profiles is derived from driver alert sequences and behaviors, and is correlated with specific driver traits.

[0053] The system automatically creates driver profiles based on the data collected by the telematics system. The system then accumulates new data on a regular basis (e.g., biweekly or monthly) and monitors specific driving patterns that characterize each profile. Each profile is characterized by specific driving patterns and the probability of the driver to be involved in a specific type of alert sequence. One of the key attributes for differentiating profiles is the tactical speed that accompanies certain sequences. For example, an R-Profile will be involved in high tactical speed, high aggressive driving patterns, while an I-Profile will be involved in low tactical speed, low-to-middle aggressive driving patterns. The profiles may be determined by a process that takes into account:

• Driving patterns: sequences

• Repetitiveness: the number of repetitions of a specific pattern during a period of time.

• Primary profile, Secondary profile and Weighted profile.

• Severity factor: weighted severity score obtained from all sequences over time.

• Risk factor: the risk is calculated by driving patterns/severity factor -> specific close-call events -> risk % (based on statistical research).

[0054] Primary and secondary profiles are determined based on the prevalence of different types of sequence occurrences. The total number of sequence occurrences under specific conditions during the relevant period (usually 1 month) are normalized (for example, per 100 km), and compared with a threshold. As indicated in the flow chart of Fig. 8, the different conditions are compared to thresholds in a specific order. If a driver fails any of the tests 810-812, meaning that the occurrence and/or priority level of any of the indicated categories is above a preset threshold, then the driver is assigned an R or C profile, i.e., the driver is risky or complacent. Failure of test 822 (SPD-R, B) indicates that the driver is an R profile. Failure of test 824 indicates that the driver is insecure. Finally, if the driver passes all of the tests, the driver gets the designation of a Skilled (S) profile.

[0055] In other words, there are four possible outputs for the flow chart: 1) R or C; 2) R; 3) I; 4) S. In cases 2-4 the process of primary profile detection ends at this stage. If the primary profile is either R or C, a weighted average as described below is used to calculate the weights of R and C, and the profile with the highest weight is the main profile. The secondary profile is determined by the same flow chart shown indicated in Fig. 8, but the threshold of each comparison is replaced with a different, higher threshold. The same procedure applies for the output “Secondary Profile R of C” as the one described for “Primary Profile R of C”. The two procedures described above provide both primary and secondary profiles. In order to determine the weighted profile, the relative weights of the primary and secondary profiles are calculated.

[0056] Fig. 9 shows additional scoring to determine a position of an aggregate profile on an RISC grid, determined by calculating a relative score of primary and secondary profiles.

[0057] Scoring of profile categories may also include factors such as:

1. Attributes Scoring Scheme: the top attributes are considered for the severity factor.

2. Profile Behavior Model: the numbers represent a score (weights) from 1-10 for each category (driving pattern) to describe the probability of the profile to be involved in a specific category or driving pattern.

3. Profile Patterning Calculator: calculated as the number of sequences x in a month y. This method is used in cases where a profile is either C or R, as described above.

4. Severity factor: is applied in % according to a Severity Index (from Very Low to Very High), calculated by aggregating severity factors of all sequences.

5. Weighted profile: an average between Primary Profile and Secondary Profile

6. RISC Grid: the profiles will be automatically placed on the grid as described below.

[0058] Driver profiling is typically performed periodically, e.g., once a month (once sufficient data is collected) to indicate a driver’s progress. An alternate procedure may be applied, as follows:

1. All sequences and speeding alerts from the relevant period are collected (standalone alerts, except for speeding, are excluded).

2. In each sequence the list of categories of the various alerts are collected.

3. A lookup table contains 4 weights (that stand for the 4 RISC attributes) related to each specific category at specific speeding.

4. The 4 weights are counted per each category that was found and are summed in the profile patterning calculator table (see below).

5. The counters of each profile in the patterning calculator table are summed to provide a total weight for each profile.

6. The profiles with the highest and the 2nd highest weight are selected as the primary and secondary profiles, respectively.

7. The weighted driver profile is a combination of the primary and secondary profiles given by the center of mass of the profile’s weights.

8. Risk factor - statistical risk analysis based on literature research.

[0059] Primary and secondary profiles are plotted on a RISC grid 1000, as shown in Fig. 10. The weighted profile is found by the center of mass of the two main profiles, where the mass of each profile is given by its relative weight (indicated by the legend 1010). For example, given the scores shown in the figure:

• R=23%

• S=77%

• W=(RR+SS)/(R+S)=((R A 2)R+(S A 2)S)/(R+S)=68% S

[0060] The driver profile is initially calculated after one month (depending on the number of trips driven) and will be subject to monitoring and shifting over time. The customer will be able to track the course of his drivers' profile location and intensity on a monthly basis and understand the insights behind it in a simplified manner. For example, if the initial driver profile is a Strong R and after one month it is a Mild S, it means that the driver is improving fast. If it takes a long time for the driver to move from any profile to a S-Profile, the customer could verify if the insights provided by the system are understandable to the driver, if the coaching is efficient or whether there are any other reasons why the recommendations are not applied. In short, the goal of every driver is to reach the Target Zone: high intensity S-Profile.

[0061] Calculating Risk F actors

[0062] The calculation of a driver risk factor is based upon contextual detection of every driving event. Every detected sequence is related to a specific driving category. For example, a sequence that includes a dangerous lane changing will be related to the Lane- Handling category. The total number of events in each category is summarized over the evaluation time period (e.g. 1 month). The sum of events in each category is multiplied by a factor that represents the risk associated with the particular type of event. The risk factor associated with each event is taken from scientific statistical study (e.g. https://www.pnas.org/doi/full/10.1073/pnas.1513271113). The driver risk factor is the sum of the risk factors associated with each category.

[0063] A “close call” event is considered as a sequence with medium, high or very high severity with a potential for an accident. The sequence must contain a yellow or red driving behavior alert such as hard braking or hard steering.

[0064] The risk factor is calculated on a monthly basis as an average of all Medium, High and Very High Severity sequences. A process for determining a risk score of a driver may be based on multiple sequences determined over the course of a given time period and includes the following stages:

1. Stage 1: the system constantly accumulates data on specific sequences, categories etc. with severity levels for close-call events.

2. Stage 2: the system counts the close-call sequences over time with their respective repetition rate, normalizes the data based on driven mileage and provides the probability of a sequence to repeat in a single trip or on a monthly basis.

3. Stage 3: in order to predict an accident, the system relies on formal research data.

4. Stage 4: the system performs a correlation between the general statistics and the individual historical performance of the driver in order to finetune the data, providing personalized statistic -based prediction.

5. Stage 5: the system performs a weighted calculation of the risk factor prediction based on all the information obtained in the previous stages.

[0065] Fig. 11 shows relationships that may be applied by the Al engine to identify new sequences. A layer refers to a group of datasets, for example, sequences in a Sequence Layer and alerts in an Alerts Layer. Each sequence contains two or more alerts. The algorithm performs a connectivity search of the alerts in every sequence, counting, for example, the number of times that an alert X appears in a sequence together with an alert Y, etc. Because each alert is also related to a category, the relations can be displayed on a level layer (relationship module 1), for example, the connection between distractions, forward collision and hard braking.

[0066] The algorithm also performs a connectivity search between one or more conditions/events (mechanical, weather and visibility, tires, etc.) and a specific sequence (relationship module 2), for example, a sequence #328, classified as dangerous bypassing, is related X times per month to a low-pressure tire condition.

[0067] Each sequence has multiple attributes, such as severity, aggressiveness and violation factors, thus the relations can be displayed on a conditions layer, as indicated in Fig. 11. Relations can connect, for example, high severity sequences and limited visibility conditions.

[0068] In the identification process the algorithm looks for connections in both internal and external connectivity and classifies them by patterning and severity factors as indicated in flowchart 1200 of Fig. 12.

[0069] A “connection” can refer to any alert in the same sequence, any sequence with any external condition (event), or any category or severity level. Typically, a connection is a given combination or ordered pattern of such factors in a sequence. The process of determining connectivity is based on the aforementioned rules, and has the following steps:

1. A “Relation” is defined as two or more factors (“vectors”) in module 1 or module 2 described above (alerts, sequences, and conditions) that happen as part of the same sequence. A relation can be a connectivity between two or more such factors, identifying “internal” events (i.e., alerts) at a step 1202, or external events (i.e., conditions) at a step 1204.

2. When the algorithm identifies a connection between vectors it classifies it, then counts the number of monthly repetitions at a step 1206.

3. The algorithm classifies the connection level as described in a Relationship Classification diagram. A connection level (%) may be calculated as follows: a number of times an alert or a sequence occurs alone, compared to the number of times it occurs as part of a relation (together with another alert or a condition).

4. The algorithm, at a step 1208, adds a severity factor to the sequence occurrence, based on the severity of the sequence in the dataset.

5. The system provides a final relationship classification at a step 1210.

[0070] The aforementioned processes refer to the driving data of a single driver. The system may also collect and process data for different groupings: drivers, profiles, fleets, and geographic areas. Big data processes may be applied to obtain broader insights for applications such as smart cities, autonomous driving etc. Steps of the process may include:

1. Each specific sequence enters an algorithm for counting occurrences for each of 4 types of groupings:

1.1. Driver Level: The algorithm determines prevalence of sequence connectivity for each set of driver level relationships, for example, sequence #305, 75% of involved drivers are under the age of 47, males, with less than 25 years of driving experience.

1.2. Profile Level: The algorithm determines prevalence of sequence connectivity for each RISC Profile.

1.3. Fleet Level: The algorithm determines prevalence of sequence connectivity for types of fleets, for example, taxis, school buses etc.

1.4. Geo Level: The algorithm determines prevalence of sequence connectivity for geographic level, data and time, for example, urban area, specific intersection, night, state, country etc.

2. The system provides Filtered Relationship Classification, considering all the available alerts in the funnel.

3. The system takes all sequences’ connectivity information and creates a Relationship Matrix that shows the extent of sequence connectivity to any level.

[0071] EXAMPLES

[0072] A first example of the system, providing automated generation of instructional text for driver safety, includes one or more processors and non-transient memory communicatively coupled to the one or more processors and including computer-readable instructions that when executed by the one or more processors cause the system to implement the following steps: 1) accessing predefined datasets including: an alert dataset of alerts that telematics and driver monitoring systems are configured to issue, a sequence dataset of alert sequences, each alert sequence indicating: a sequence of alerts from the alert dataset, a predefined timing window for a maximum duration of the alert sequence, and a severity of the alert sequence, a category dataset, wherein each instructional category corresponds to one or more alert sequences, and a text dataset of instructional text associated with each of the instructional categories;

2) acquiring from one or more vehicle telematics and/or driver monitoring systems, while a vehicle is driven by a driver, one or more alert vectors, each alert vector being a series of alerts, wherein each alert is associated with a time of occurrence;

3) scanning each of the one or more alert vectors, over multiple time windows across each alert vector, to identify a set of alert sequences occurrences that match alert sequences in the sequence dataset and conform to the predefined time windows of the respective alert sequences;

4) according to the predefined severity of each alert sequence occurrence, increasing by a proportional amount a priority score of a corresponding instructional category, to generate an aggregate priority score for each instructional category with respect to the identified set of alert sequences occurrences;

5) for each of the instructional categories having priority scores above a preset threshold, extracting instructional text associated with said instructional category from the text dataset and providing said instructional text to the driver.

[0073] An example 2 of the system includes some or all of the above features, and the instructional text is provided in an order determined by the aggregate priority score of the associated instructional category.

[0074] An example 3 of the system includes some or all of the above features, and the severity of each alert sequence is a value correlated with a risk of accident or with a risk of traffic violation.

[0075] An example 4 of the system includes some or all of the above features, and identifying the alert sequences in the one or more alert vectors further includes calculating driver progress parameters on a recurring basis to indicate driver progress. [0076] An example 5 of the system includes some or all of the above features, and the driver progress parameters include a driver profile with attributes of reckless (Profile R), insecure (Profile I), skilled (Profile S), and complacent (Profile C), wherein attributes of the driver profile are associated with each alert sequence in the predefined sequence dataset, and wherein calculating the driver progress parameters includes aggregating the attributes of all of the alert sequences in the identified set.

[0077] An example 6 of the system includes some or all of the above features, and a subset of the alert sequences in the sequence dataset are close-call events having a high correlation with accident risk and the steps further include providing the close-call events to the driver with the instructional text.

[0078] An example 7 of the system includes some or all of the above features, and each alert sequence is further associated with predefined, maximum time gaps between sequential alerts.

[0079] An example 8 of the system includes some or all of the above features, and the alerts include one or more of vehicle speed, a vehicle-to-vehicle distance, an intersection approach, a pedestrian distance, a severe steering alert, a severe braking alert, a severe bypassing alert, a traffic light or traffic sign violations, a forward collision, an accident, or an impact.

[0080] An example 9 of the system includes some or all of the above features, and the alerts include one or more driver distraction indicators including phone use, drowsiness, smoking, eating and a drinking.

[0081] An example 9 of the system includes some or all of the above features, and each alert of each alert vector is associated with a location of occurrence, wherein each alert sequence in the sequence dataset includes one or more road parameters, and wherein identifying each alert sequence further includes acquiring one or more road parameters associated with the location of occurrence.

[0082] An example 11 of the system includes some or all of the above features, and factors of an alert are applied to calculate severity of a sequence.

[0083] An example 12 of the system includes some or all of the above features, and providing the instructions further include selecting a driver for a driving assignment according to a driver profile calculated from the instructional category. [0084] An example 13 of the system includes some or all of the above features, and the alerts are acquired in real time.

[0085] An example 14 of the system includes some or all of the above features, and the alerts are acquired in post processing, with video analysis of a video log of a drive.

[0086] An example 15 of the system includes some or all of the above features, and wherein the alerts are acquired as a log history including multiple sequential alerts.

[0087] An example 16 of the system includes some or all of the above features, and the instructions further include a mapping of one or more driver profiles on a grid of reckless, insecure, skilled, and complacent (RISC) attributes.

[0088] An example 17 of the system includes some or all of the above features, and accessing predefined datasets further includes adding sequences to the dataset by determining that an alert sequence in an alert vector not stored in the sequence dataset is relevant as an indicator of driving behavior. This may include determining that the alert sequence includes combinations of alerts and external events similar to combinations in existing sequences.

[0089] It is to be understood that the scope of the present invention includes variations and modifications thereof which would occur to persons skilled in the art upon reading the foregoing description and which are not disclosed in the prior art. Although the invention has been described in detail, nevertheless, changes and modifications, which do not depart from the teachings of the present invention, will be evident to those skilled in the art. Such changes and modifications are deemed to come within the purview of the present invention and the appended claims. It will be readily apparent that the various methods and algorithms described herein may be implemented by, e.g., appropriately programmed general purpose computers and computing devices. Typically, a processor (e.g., one or more microprocessors) will receive instructions from a memory or like device, and execute those instructions, thereby performing one or more processes defined by those instructions. Further, programs that implement such methods and algorithms may be stored and transmitted using a variety of media in a number of manners. In some embodiments, hardwired circuitry or custom hardware may be used in place of, or in combination with, software instructions for implementation of the processes of various embodiments. Thus, embodiments are not limited to any specific combination of hardware and software. [0090] A processor as described herein may be any one or more microprocessors, central processing units (CPUs), computing devices, microcontrollers, digital signal processors, or like devices. Computer memory may be, but is not limited to, non-volatile media that may include, for example, optical or magnetic disks and other persistent memory. Transmission media may include coaxial cables, copper wire and fiber optics, including wires of a system bus coupled to the processor. Transmission media may include or convey acoustic waves, light waves and electromagnetic emissions, such as those generated during radio frequency (RF) and infrared (IR) data communications.

[0091] Sequences of instructions may be delivered from memory to the processor, may be carried over a wireless transmission medium, and/or may be formatted according to numerous formats, standards or protocols, such as Bluetooth, TDMA, CDMA, 3G.

[0092] Any illustrations or descriptions of arrangements for stored representations of information may be implemented by any number of arrangements, e.g., tables, files, or databases. Similarly, any illustrated entries of the stored data represent exemplary information only; one of ordinary skill in the art will understand that the number and content of the entries can be different from those described herein. Further, despite any depiction of stored data as databases or tables, other formats (including relational databases, objectbased models and/or distributed databases) could be used to store and manipulate the data types described herein. Likewise, object methods or behaviors of a database can be used to implement various processes, such as the described herein. In addition, the databases may, in a known manner, be stored locally or remotely from a device which accesses such data.

[0093] The present invention can be configured to work in a network environment including a computer that is in communication, via a communications network, with one or more devices. The computer may communicate with the devices directly or indirectly, via a wired or wireless medium such as the Internet, LAN, WAN, Wi-Fi or via any appropriate communications means or combination of communications means. CLAIMS

1. A system for automated generation of instructional text for driver safety, comprising one or more processors and non-transient memory communicatively coupled to the one or more processors having computer-readable instructions that when executed by the one or more processors cause the system to implement steps of:

1) accessing predefined datasets including: an alert dataset of alerts that telematics and driver monitoring systems are configured to issue, a sequence dataset of alert sequences, each alert sequence indicating: a sequence of alerts from the alert dataset, a predefined timing window for a maximum duration of the alert sequence, and a severity of the alert sequence, a category dataset, wherein each instructional category corresponds to one or more alert sequences, and a text dataset of instructional text associated with each of the instructional categories;

2) acquiring from one or more vehicle telematics and/or driver monitoring systems, while a vehicle is driven by a driver, one or more alert vectors, each alert vector being a series of alerts, wherein each alert is associated with a time of occurrence;

3) scanning each of the one or more alert vectors, over multiple time windows across each alert vector, to identify a set of alert sequences occurrences that match alert sequences in the sequence dataset and conform to the predefined time windows of the respective alert sequences;

4) according to the predefined severity of each alert sequence occurrence, increasing by a proportional amount a priority score of a corresponding instructional category, to