EP4670149A1 - SYSTEMS AND METHODS FOR PROVIDING PERSONALIZED, OPTIMIZED AND PREDICTIVE DRIVER ACTION ADVICE - Google Patents
SYSTEMS AND METHODS FOR PROVIDING PERSONALIZED, OPTIMIZED AND PREDICTIVE DRIVER ACTION ADVICEInfo
- Publication number
- EP4670149A1 EP4670149A1 EP24759402.1A EP24759402A EP4670149A1 EP 4670149 A1 EP4670149 A1 EP 4670149A1 EP 24759402 A EP24759402 A EP 24759402A EP 4670149 A1 EP4670149 A1 EP 4670149A1
- Authority
- EP
- European Patent Office
- Prior art keywords
- driver
- model
- generative
- action
- optimized
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09B—EDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
- G09B19/00—Teaching not covered by other main groups of this subclass
- G09B19/16—Control of vehicles or other craft
- G09B19/167—Control of land vehicles
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
- B60W40/00—Estimation or calculation of non-directly measurable driving parameters for road vehicle drive control systems not related to the control of a particular sub unit, e.g. by using mathematical models
- B60W40/08—Estimation or calculation of non-directly measurable driving parameters for road vehicle drive control systems not related to the control of a particular sub unit, e.g. by using mathematical models related to drivers or passengers
- B60W40/09—Driving style or behaviour
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
- B60W50/00—Details of control systems for road vehicle drive control not related to the control of a particular sub-unit, e.g. process diagnostic or vehicle driver interfaces
- B60W50/0097—Predicting future conditions
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
- B60W50/00—Details of control systems for road vehicle drive control not related to the control of a particular sub-unit, e.g. process diagnostic or vehicle driver interfaces
- B60W50/08—Interaction between the driver and the control system
- B60W50/14—Means for informing the driver, warning the driver or prompting a driver intervention
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
- B60W50/00—Details of control systems for road vehicle drive control not related to the control of a particular sub-unit, e.g. process diagnostic or vehicle driver interfaces
- B60W2050/0001—Details of the control system
- B60W2050/0019—Control system elements or transfer functions
- B60W2050/0028—Mathematical models, e.g. for simulation
- B60W2050/0029—Mathematical model of the driver
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
- B60W50/00—Details of control systems for road vehicle drive control not related to the control of a particular sub-unit, e.g. process diagnostic or vehicle driver interfaces
- B60W50/08—Interaction between the driver and the control system
- B60W50/14—Means for informing the driver, warning the driver or prompting a driver intervention
- B60W2050/146—Display means
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
- B60W2540/00—Input parameters relating to occupants
- B60W2540/10—Accelerator pedal position
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
- B60W2540/00—Input parameters relating to occupants
- B60W2540/12—Brake pedal position
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
- B60W2540/00—Input parameters relating to occupants
- B60W2540/16—Ratio selector position
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
- B60W2540/00—Input parameters relating to occupants
- B60W2540/18—Steering angle
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
- B60W2556/00—Input parameters relating to data
- B60W2556/10—Historical data
Definitions
- the described embodiments relate to providing driver action advice to a driver, and specifically to providing personalized, optimized, and predictive driver action advice to a driver.
- Vehicles are used for a variety of applications including transportation of passengers and/or cargo. Vehicles may be driven by different types of drivers including commercial drivers, non-commercial drivers, expert drivers, novice drivers etc. For any given driving scenario, different drivers may take different driver actions. Some driver actions may be less optimal than others - for example, with reference to factors like safety, greenhouse gas emissions, vehicle wear, operational efficiency, etc. Effective driver coaching may provide improvements in safety (e.g., reduced driver fatalities/injuries), reduce greenhouse gas emissions, reduce vehicle wear and/or improve operational efficiency by coaching drivers to perform better driver actions in response to various driving scenarios.
- improvements in safety e.g., reduced driver fatalities/injuries
- reduce greenhouse gas emissions reduce vehicle wear and/or improve operational efficiency by coaching drivers to perform better driver actions in response to various driving scenarios.
- a computer-implemented method of providing a driver action advice to a driver of a vehicle comprises: receiving, by a processor, a driving optimization objective; parameterizing, by the processor, an optimized driver model in response to the received driving optimization objective; receiving, by the processor, world state data; determining, by the processor, a predicted optimal driver action in response to the received world state data based on the optimized driver model personalized for the driver; generating, by the processor, the driver action advice based on the predicted optimal driver action; providing, by the processor, the driver action advice to the driver via a human machine interface (HMI); and updating, by the processor, the optimized driver model based on an actual driver action taken by the driver in response to the driver action advice.
- the optimized driver model is personalized for a given driver to generate optimal driver action outputs most suitable to a driving behavior of the given driver compared with other candidate optimal driver actions. At least a portion of the world state data is received from one or more vehicle sensors.
- the method further comprises determining, by the processor, a predicted driver action in response to the received world state data based on a current driver model; and updating, by the processor, the current driver model based on the actual driver action, wherein generating the driver action advice includes comparing the predicted optimal driver action with the predicted driver action.
- the method further comprises generating, by the processor, a driver score based on a comparison of the driver action advice with the actual driver action.
- the method further comprises displaying the driver score on the HMI.
- the method further comprises receiving, by the processor, a driver training strategy input specifying one or more driver training criteria, wherein the driver action advice is provided to the driver based on the one or more driver training criteria.
- the world state data includes data indicating a state of the vehicle or an environment of the vehicle.
- the driving optimization objective includes a key performance indicator indicating one or more of an operational efficiency, an energy efficiency, a safety risk, a fuel efficiency or a vehicle wear.
- the processor updates the optimized driver model based on a comparison of the actual driver action with the predicted optimal driver action.
- the processor updates the current driver model based on a comparison of the actual driver action with the predicted driver action.
- the optimized driver model includes a neural network model, a regression tree, a Gaussian process model, a hand-crafted logic model, and/or a generative Al model.
- the optimized driver model is trained using reinforcement learning and/or imitation learning.
- the optimized driver model is trained and personalized for the given driver using driving logs of the given driver.
- the optimized driver model is trained using driving logs of drivers other than the given driver.
- the current driver model includes a neural network model, a regression tree, a Gaussian process model, a hand-crafted logic model, and/or a generative Al model.
- the current driver model is trained using inverse reinforcement learning and/or imitation learning.
- the current driver model is trained for the given driver using driving logs of the given driver.
- the current driver model is trained using driving logs of drivers other than the given driver.
- the current driver model for the given driver is used as an initial model for training the optimized driver model.
- the driver score is generated by a generative Al model.
- input data to the generative Al model includes any combination of text, image and audio data.
- output data of the generative Al model includes any combination of text, image and audio data.
- the generative Al model is trained using first training data related to driving scenarios and non-driving scenarios, the first training data including any combination of text, image and audio data.
- the generative Al model is further trained using second training data that includes any combination of text, image and audio data, at least a substantial portion of the second training data related to driving scenarios.
- the optimized driver model includes the generative Al model and the optimized driver model is personalized for the given driver using an input prompt to the generative Al model, the input prompt including a text summary of the driving behavior of the given driver.
- the text summary is generated by a second generative Al model based on the driving logs of the given driver.
- the current driver model includes the generative Al model and the current driver model is personalized for the given driver using an input prompt to the generative Al model, the input prompt including a text summary of the driving behavior of the given driver.
- the text summary is generated by a second generative Al model based on the driving logs of the given driver.
- a system for providing a driver action advice to a driver of a vehicle comprises: a memory configured to store an optimized driver model; and a processor in communication with the memory.
- the optimized driver model is personalized for a given driver to generate optimal driver action outputs most suitable to a driving behavior of the given driver compared with other candidate optimal driver actions.
- the processor is configured to: receive a driving optimization objective; parameterize the optimized driver model in response to the received driving optimization objective; receive world state data, wherein at least a portion of the world state data is received from one or more vehicle sensors; determine a predicted optimal driver action in response to the received world state data based on the optimized driver model personalized for the driver; generate the driver action advice based on the predicted optimal driver action; provide the driver action advice to the driver via a human machine interface (HMI); and update the optimized driver model based on an actual driver action taken by the driver in response to the driver action advice.
- HMI human machine interface
- the memory is further configured to store a current driver model and the processor is further configured to: determine a predicted driver action in response to the received world state data based on the current driver model; and update the current driver model based on the actual driver action, wherein the processor is configured to generate the driver action advice by comparing the predicted optimal driver action with the predicted driver action.
- the world state data includes data indicating a state of the vehicle or an environment of the vehicle.
- the processor is configured to update the current driver model based on a comparison of the actual driver action with the predicted driver action.
- the optimized driver model is trained and personalized for the given driver using driving logs of the given driver.
- the current driver model includes a neural network model, a regression tree, a Gaussian process model, a hand-crafted logic model, and/or a generative Al model.
- the current driver model for the given driver is used as an initial model for training the optimized driver model.
- the processor is configured to generate the driver action advice and the driver score using a single generative Al model.
- input data to the generative Al model includes any combination of text, image and audio data.
- output data of the generative Al model includes any combination of text, image and audio data.
- the generative Al model includes a large language model (LLM), a large language and vision model (LLVM) or a large language, audio and vision model (LLAVM).
- LLM large language model
- LLVM large language and vision model
- LAVM large language, audio and vision model
- the generative Al model is trained using first training data related to driving scenarios and non-driving scenarios, the first training data including any combination of text, image and audio data.
- the generative Al model is further trained using second training data that includes any combination of text, image and audio data, at least a substantial portion of the second training data related to driving scenarios.
- second training data that includes any combination of text, image and audio data, at least a substantial portion of the second training data related to driving scenarios.
- one or both of the driving optimization objective and the driver training strategy input are received in an input prompt to the generative Al model.
- the optimized driver model includes the generative Al model and the optimized driver model is personalized for the given driver using an input prompt to the generative Al model, the input prompt including a text summary of the driving behavior of the given driver.
- the text summary is generated by a second generative Al model based on the driving logs of the given driver.
- the current driver model includes the generative Al model and the current driver model is personalized for the given driver using an input prompt to the generative Al model, the input prompt including a text summary of the driving behavior of the given driver.
- the text summary is generated by a second generative Al model based on the driving logs of the given driver.
- FIG. 1 is a schematic diagram that shows an example system for providing driver action advice to a driver of a vehicle, in accordance with one or more embodiments.
- FIG. 2 is a block diagram of the example system of FIG. 1 .
- FIG. 3 is a flowchart showing an example computer-implemented method of providing a driver action advice to a driver of a vehicle, in accordance with one or more embodiments.
- FIG. 4 is a dataflow diagram corresponding to an example implementation of the method of FIG. 3.
- FIG. 5 is a dataflow diagram corresponding to another example implementation of the method of FIG. 3.
- FIG. 6 is a flowchart showing another example computer-implemented method of providing a driver action advice to a driver of a vehicle, in accordance with one or more embodiments.
- FIG. 7 is a dataflow diagram corresponding to an example implementation of the method of FIG. 6.
- FIG. 8 is a dataflow diagram corresponding to another example implementation of the method of FIG. 6.
- the wording “and/or” is intended to represent an inclusive-or. That is, “X and/or Y” is intended to mean X or Y or both, for example. As a further example, “X, Y, and/or Z” is intended to mean X or Y or Z or any combination thereof.
- the embodiments of the systems and methods described herein may be implemented in hardware or software, or a combination of both. These embodiments may be implemented in computer programs executing on programmable computers, each computer including at least one processor, a data storage system (including volatile memory or non-volatile memory or other data storage elements or a combination thereof), and at least one communication interface.
- the programmable computers (referred to below as computing devices) may be a server, network appliance, embedded device, computer expansion module, personal computer, laptop, personal data assistant, cellular telephone, smart-phone device, tablet computer, wireless device or any other computing device capable of being configured to carry out the methods described herein.
- the communication interface may be a network communication interface.
- the communication interface may be a software communication interface, such as those for inter-process communication (IPC).
- IPC inter-process communication
- Program code may be applied to input data to perform the functions described herein and to generate output information.
- the output information is applied to one or more output devices, in known fashion.
- Each program may be implemented in a high-level procedural or object-oriented programming and/or scripting language, or both, to communicate with a computer system.
- the programs may be implemented in assembly or machine language, if desired. In any case, the language may be a compiled or interpreted language.
- Each such computer program may be stored on a storage media or a device (e.g. ROM, magnetic disk, optical disc) readable by a general or special purpose programmable computer, for configuring and operating the computer when the storage media or device is read by the computer to perform the procedures described herein.
- Embodiments of the system may also be considered to be implemented as a non-transitory computer-readable storage medium, configured with a computer program, where the storage medium so configured causes a computer to operate in a specific and predefined manner to perform the functions described herein.
- the systems, processes and methods of the described embodiments are capable of being distributed in a computer program product comprising a computer readable medium that bears computer usable instructions for one or more processors.
- the medium may be provided in various forms, including one or more diskettes, compact disks, tapes, chips, wireline transmissions, satellite transmissions, internet transmission or downloads, magnetic and electronic storage media, digital and analog signals, and the like.
- the computer useable instructions may also be in various forms, including compiled and non-compiled code.
- the disclosed systems and methods may provide higher driver coaching performance and efficiency compared with systems and methods that provide retrospective driver coaching based on historical driver actions taken by a driver.
- the disclosed systems and methods can use predictive models (e.g., an optimized driver model and/or a current driver model) to determine a predicted driver action and provide driver action advice to the driver based on the predicted driver action.
- the driver action advice provided based on predicted driver actions may provide greater driver engagement and increase the efficiency of the driver coaching system compared with systems providing retrospective feedback (where driver action advice is provided regrading historical driver actions).
- the disclosed systems and methods may provide higher vehicle performance and/or efficiency by providing optimized driver action advice compared with systems and methods that provide non-optimized driver action advice. For example, if the generated driver action advice is optimized for a specific driving optimization objective and a driver follows the driver action advice to perform a corresponding driver action, the performance of the vehicle may be improved with respect to the driving optimization objective.
- the disclosed systems and methods may also provide higher performance and efficiency by providing personalized driver action advice compared with systems and methods that provide driver action advice based on a generic set of rules (nonpersonalized). Different drivers may react differently to different driving scenarios. In some cases, a given driver’s predicted response to a specific driving scenario may already be optimal. In some embodiments, the disclosed systems and methods may not provide a specific driver action advice in such scenarios to avoid driver coaching fatigue that may be caused by excessive driver action advice. However, when there is a large difference between a driver’s predicted response to a specific driving scenario and an optimal response to that driving scenario, the disclosed systems and methods may provide a personalized driver action advice. For example, there may be multiple candidate optimal driver action responses.
- the disclosed systems and methods may generate an optimal driver action advice that is most suitable to a driving behavior of the driver. Accordingly, the personalized driver action advice provided by the disclosed systems and methods may improve effectiveness of driver coaching and provide improved driver action advice that is tailored to the driving style of a given driver.
- systems and methods that provide non-personalized driver action advice may use a generic set of rules to generate the same non-personalized driver action advice for all drivers for any given driving scenario. This may cause driver coaching fatigue in cases where the driver action advice provided to the driver matches the action the driver would have performed regardless of the driver action advice. Additionally, the non-personalized driver action advice may not be suited to the specific driving behavior of the given driver.
- FIG. 1 shown therein is a schematic diagram that includes an example system 100 for providing driver action advice to a driver 20 of a vehicle 10. Also shown in FIG. 1 are a human machine interface (HMI) 30, vehicle sensors 40a, 40b (also collectively referred to herein as vehicle sensor 40), and a network 50.
- HMI human machine interface
- Vehicle 10 can be any vehicle suitable for transporting passengers and/or cargo. Vehicle 10 may have any suitable design for traveling over land (e.g., cars, vans, trucks), water (e.g., ships), air (e.g., aircrafts) and/or any combination of land, sea and air (e.g., hovercrafts).
- land e.g., cars, vans, trucks
- water e.g., ships
- air e.g., aircrafts
- hovercrafts any combination of land, sea and air
- Vehicle 10 may be used for commercial (e.g., transporting freight, commuters etc.) or non-commercial purposes (e.g., private trips for recreation etc.).
- Vehicle 10 may be a non-autonomous vehicle that is controlled by driver 20.
- vehicle 10 may be a semi-autonomous vehicle where one or more functions of vehicle 10 are autonomously controlled, and one or more functions are controlled by driver 20.
- vehicle 10 may be a fully autonomous vehicle where all the driving-related functions of vehicle 10 are autonomously controlled.
- Driver 20 can be any human operator of vehicle 10.
- Driver 20 may be located at vehicle 10 or driver 20 may operate vehicle 10 from a remote location.
- driver 20 may be a professional driver that drives vehicle 10 for commercial purposes.
- Driver 20 can also be a driver using vehicle 10 for non-commercial purposes.
- Driver 20 may have any level of expertise for operating vehicle 10.
- driver 20 may be a novice driver learning to drive vehicle 10 or driver 20 may be an expert driver with many years of experience in driving vehicle 10.
- driver 20 can be a “virtual driver” (e.g., a computing system and/or an algorithm configured to autonomously control driving-related functions of vehicle 10).
- Driver 20 may control the operation of vehicle 10 using multiple control devices that control motion of vehicle 10, e.g., throttle, brake, steering wheel, gear shift, etc. Driver 20 may also control operation of vehicle 10 by controlling other aspects of vehicle 10, e.g., tire pressure, A/C setting, window position, windshield wiper setting etc.
- Vehicle sensors 40 may have any suitable design to generate world state data including data indicating a state of the vehicle 10 or an environment of the vehicle 10. Vehicle sensors 40 may provide the generated world state data to system 100. Vehicle sensors 40 may be in direct communication with system 100 (e.g., via network 50) and provide the generated world state data directly to system 100. In some embodiments, vehicle sensors 40 may provide generated world state data to a vehicle control unit of vehicle 10 and the vehicle control unit may provide the world state data to system 100.
- Vehicle 10 may have any suitable number of vehicle sensors 40 (e.g., 1 to 10, 5 to 20 etc.).
- a larger number of vehicle sensors may provide a larger amount of world state data to system 100 but may increase cost and/or complexity.
- a smaller number of vehicle sensors may reduce cost and/or complexity buy provide a smaller amount of world state data to system 100.
- Vehicle sensors 40 may include one or more sensors configured to generate world state data indicating state of vehicle 10.
- vehicle sensors 40 may include sensors configured to generate world state data indicating position, orientation, velocity, acceleration, weight, and/or fuel consumption of vehicle 10.
- vehicle sensors 40 may include sensors configured to generate world state data indicating tire pressure and/or tire temperature of tires of vehicle 10.
- Vehicle sensors 40 may include one or more sensors configured to generate world state data providing information about an environment of vehicle 10.
- vehicle sensors 40 may include sensors configured to generate world state data indicating temperature, humidity, wind speed, wind direction etc. of the environment of vehicle 10.
- vehicle sensors 40 may include a camera, radar and/or lidar sensors configured to generate world state data indicating objects located in environment of vehicle 10.
- Vehicle sensors 40 may include one or more sensors (e.g., cameras, microphones etc.) that provide world state data related to the driver and/or passengers within vehicle 10.
- the data provided by vehicle sensors 40 may be processed by perception algorithms to generate world state data.
- the perception algorithms may process the camera and/or lidar sensor data to generate world state data indicating objects located in environment of vehicle 10.
- the perception algorithms may process the data indicating position, orientation, velocity and acceleration of vehicle 10 to generate world state data indicating state of vehicle 10.
- the perception algorithms may be included in system 100 or in an external computing device that is in network communication with system 100.
- the system 100 may provide the driver action advice to the driver 20 using the human machine interface (HMI) 30.
- System 100 may communicate with HMI 30 using a communication network (e.g., network 50).
- HMI 30 may have any suitable design to provide the driver action advice to driver 20.
- HMI 30 may include a built-in device of vehicle 10 (e.g., a touchscreen display, audio speakers), an auxiliary device associated with system 100 and/or a user device associated with driver 20 (e.g., a smartphone device).
- HMI 30 may provide the driver action advice to driver 20 using visual, audio and/or haptic signals.
- the driver action advice may be provided using a display provided on a screen/display device, indicator lights, audio output from speakers, vibrations provided by a haptic device etc.
- HMI 30 may provide the driver action advice to a different person (other than driver 20) associated with vehicle 10.
- vehicle 10 may be operated by a trainee driver 20 and HMI 30 may provide the driver action advice to a driving instructor.
- the driving instructor may use the driver action advice to provide driving instructions to the trainee driver 20.
- Network 50 may include a communication network such as the Internet, a Wide- Area Network (WAN), a Local-Area Network (LAN), or another type of network.
- Network 50 may include a point-to-point connection, or another communications connection between two nodes.
- FIG. 2 shows a block diagram of system 100.
- system 100 includes a communication unit 205, a display 210, a processor unit 215, a memory unit 220, an I/O unit 225, a user interface engine 230 and a power unit 235.
- One or more components of system 100 may be located at vehicle 10. In some embodiments, one or more components of system 100 may be located at a remote location and communicate with vehicle 10 using a communication network.
- Communication unit 205 can include wired or wireless connection capabilities. Communication unit 205 can be used by system 100 to communicate with other devices or computers. For example, system 100 may use communication unit 205 to receive, via network 50, world state data from vehicle sensors 40. System 100 may also use communication unit 205 to provide, via network 50, driver action advice to HMI 30.
- Processor unit 215 can control the operation of system 100.
- Processor unit 215 can be any suitable processor, controller or digital signal processor that can provide sufficient processing power depending on the configuration, purposes and requirements of system 100 as is known by those skilled in the art.
- processor unit 215 may be a high-performance general processor.
- processor unit 215 may include a standard processor, such as an Intel® processor, or an AMD® processor.
- processor unit 215 can include more than one processor with each processor being configured to perform different dedicated tasks.
- specialized hardware e.g., graphical processing units (GPUs) can be used provide some of the functions provided by processor unit 215.
- GPUs graphical processing units
- Processor unit 215 can execute a user interface engine 230 that may be used to generate various user interfaces.
- User interface engine 230 may be configured to provide a user interface on display 210.
- system 100 may be in communication with external displays via network 50.
- User interface engine 230 may also generate user interface data for the external displays that are in communication with system 100.
- User interface engine 230 can be configured to provide a user interface to enable set-up and initialization of system 100. User interface engine 230 can also be configured to provide a user interface to receive various input parameters, e.g., an input parameter specifying a driving optimization objective, an input driver parameter specifying the driver of the vehicle.
- various input parameters e.g., an input parameter specifying a driving optimization objective, an input driver parameter specifying the driver of the vehicle.
- Display 210 may be a LED or LCD based display and may be a touch sensitive user input device that supports gestures. Display 210 may be integrated into system 100. Alternatively, display 210 may be located physically remote from system 100 and communicate with system 100 using a communication network, for example, network 50. In some embodiments, system 100 may not include a dedicated display 210 and may provide output displays using HMI 30.
- I/O unit 225 can include at least one of a mouse, a keyboard, a touch screen, a thumbwheel, a trackpad, a trackball, a card-reader, voice recognition software and the like, depending on the particular implementation of system 100. In some cases, some of these components can be integrated with one another. I/O unit 225 may enable a user, an operator and/or an administrator of system 100 to interact with the user interfaces provided by user interface engine 230.
- Power unit 235 can be any suitable power source that provides power to system 100 such as a power adaptor or a rechargeable battery pack depending on the implementation of system 100 as is known by those skilled in the art.
- Memory unit 220 can include software code for implementing an operating system 240, programs 245, database 250, model generation engine 255, model training engine 260, and model update controller 265.
- Memory unit 220 can include RAM, ROM, one or more hard drives, one or more flash drives or some other suitable data storage elements such as disk drives, etc.
- Memory unit 220 can be used to store an operating system 240 and programs 245 as is commonly known by those skilled in the art.
- operating system 240 provides various basic operational processes for system 100.
- the operating system 240 may be an operating system such as Windows® Server operating system, or Red Hat® Enterprise Linux (RHEL) operating system, or another operating system.
- RHEL Red Hat® Enterprise Linux
- Database 250 may include a Structured Query Language (SQL) database such as PostgreSQL or MySQL or a not only SQL (NoSQL) database such as MongoDB, or Graph Databases, etc.
- SQL Structured Query Language
- NoSQL not only SQL
- Database 250 may be integrated with system 100.
- database 250 may run independently on a database server in network communication with system 100.
- Database 250 may store the received driving optimization objective and/or the received world state data.
- Database 350 may also store the optimized driver model and/or the current driver model.
- database 350 may store multiple sets of models, with each set of models corresponding to a specific driver. For example, database 350 may store a first set of models including a first optimized driver model and a first current driver model for a first driver; and store a second set of models including a second optimized driver model and a second current driver model for a second driver.
- database 350 may also store the generated driver action advice.
- Programs 245 can include various programs so that system 100 can perform various functions such as, but not limited to, receiving world state data, determining predicted optimal driver action, generating driver action advice and/or updating one or more models (e.g., optimized driver model, current driver model).
- models e.g., optimized driver model, current driver model.
- Model generation engine 255 can generate one or more machine learning models. For example, model generation engine 255 may generate an optimized driver model. In some embodiments, system 100 may not include a model generation engine 255 and system 100 may receive the optimized driver model from an external device. The generated and/or received models may be stored in database 250. In some embodiments, the generated models may be stored in an external storage device that is in network communication with system 100.
- the optimized driver model can be any suitable model that is configured to receive world state data as input and generate a corresponding predicted optimal driver action as output.
- the optimized driver model can include any suitable machine learning model.
- the optimized driver model can include a neural network model, a regression tree, or a Gaussian process model.
- the optimized driver model can include any suitable deep learning model.
- the optimized driver model may also include any suitable hand-crafted models.
- the optimized driver model can be based in part or fully on hand-crafted logic models, for example, using heuristics and/or physics-based models.
- hand-crafted features may be used in combination with a machine learning model.
- a fully handcrafted model including one or more optimization parameters may be used (e.g., a fully hand-crafted model including optimization parameters to balance driving optimization objectives versus driving behavior of a given driver).
- the world state data input can describe a driving scenario and system 100 can use the predicted optimal driver action to provide driver action advice regarding the driving scenario to a driver.
- the world state data input can include, for example, world state data received from vehicle sensors 40.
- the world state data input can also include data received from external devices.
- the world state data input may include data specifying location of vehicle 10 (e.g., GPS location data from an external system).
- the world state data input may also include data received from an engine control unit, for example, data including engine parameters like engine speed (RPM), engine power, engine torque, engine temperature, engine air flow, engine fuel flow etc.
- vehicle 10 can be a semi-autonomous vehicle or a fully autonomous vehicle including a vehicle control unit that provides world state data input for the optimized driver model.
- the vehicle control unit may provide world state data indicating objects located in the environment of vehicle 10.
- the optimized driver model can also receive an input parameter specifying a driving optimization objective.
- the driving optimization objective may include a key performance indicator indicating one or more of an operational efficiency, an energy efficiency, a safety risk, a fuel efficiency or a vehicle wear.
- the input parameter may specify a driving optimization objective corresponding to a fuel mileage indicator that indicates energy efficiency.
- an improvement in energy efficiency may also reduce the greenhouse gas emissions of the vehicle.
- the input parameter may specify a driving optimization objective corresponding to a safety score with a high safety score indicating higher safety performance, a vehicle wear score with a high vehicle wear score indicating higher vehicle wear, a trip duration time with shorter trip durations indicating higher operational efficiency etc.
- the optimized driver model can generate a predicted optimal driver action output in response to the received world state data for the specified driving optimization objective.
- the driver actions can include any actions of the driver that are related to operation of the vehicle.
- the driver actions can include control of throttle, brake, steering, gear position, window position, A/C, heating, tire pressure, etc.
- the optimized driver model may generate a predicted optimal driver action to reduce speed of the vehicle.
- the optimized driver model may be personalized for a given driver to generate optimal driver action outputs most suitable to a driving behavior of the given driver compared with other candidate optimal driver actions.
- there may be two candidate optimal driver actions - i) control throttle and/or brake to reduce speed of the vehicle and ii) control steering of the vehicle to increase a turning radius.
- the optimized driver model personalized for a first driver may generate a predicted optimal driver action to control throttle and/or brake to reduce speed of the vehicle based on the driving behavior of the first driver.
- the optimized driver model personalized for a second driver may generate a predicted optimal driver action to control steering of the vehicle to increase a turning radius based on the driving behavior of the second driver.
- the optimized driver model may generate different predicted optimal driver action outputs for the same world state data based on different driving optimization objectives. For an example world state data describing a vehicle being driven along a highway at a first speed, the optimized driver model may generate a predicted optimal driver action to increase vehicle speed based on a driving optimization objective to reduce trip duration. For the same example of a vehicle being driven along a highway at a first speed, the optimized driver model may generate a predicted optimal driver action to decrease vehicle speed based on a driving optimization objective to improve fuel mileage.
- Model generation engine 255 may also generate a current driver model.
- system 100 may not include a model generation engine 255 and system 100 may receive a current driver model from an external device.
- the generated and/or received models may be stored in database 250.
- the generated models may be stored in an external storage device that is in network communication with system 100.
- the current driver model can be any suitable model that is configured to receive world state data as input and generate a corresponding predicted driver action of a current driver as output.
- the current driver model can include any suitable machine learning model.
- the current driver model can include a neural network model, a regression tree, or a Gaussian process model.
- the current driver model can include any suitable deep learning model.
- the current driver model may also include any suitable hand-crafted models.
- the current driver model can be based in part or fully on hand-crafted logic models, for example, using heuristics and/or physics-based models.
- hand-crafted features may be used in combination with a machine learning model.
- a fully hand-crafted model including one or more optimization parameters may be used (e.g., a fully handcrafted model including optimization parameters to accurately predict a current driver’s actions in response to a specific world state).
- the world state data input can describe a driving scenario and system 100 can use the current driver model to determine a predicted driver action of the current driver for that driving scenario.
- the world state data input can include, for example, world state data received from vehicle sensors 40, external devices, engine control units, and/or vehicle control units.
- the current driver model can generate a predicted driver action output of the current driver in response to the received world state data.
- the driver actions can include any actions of the current driver that are related to operation of the vehicle.
- the driver actions can include control of throttle, brake, steering, gear position, window position, A/C, heating, tire pressure, etc.
- the current driver model may generate a predicted current driver action output indicating whether the current driver is predicted to keep the engine of the vehicle idling during loading of the cargo or whether the current driver is predicted to turn off the engine during loading of the cargo.
- Model training engine 260 can train one or more machine learning models.
- the models may include models generated by model generation engine 255 and/or models received from external devices.
- model training engine 260 may train the optimized driver model and/or the current driver model.
- Model training engine 260 may be configured to perform training of models at various times. For example, model training engine 260 may be configured to train models when they are initially generated by model generation engine 255. Model training engine 260 may also be configured to train models based on a time-based schedule. For example, based on a training period parameter stored in database 250. In some embodiments, model training engine 260 may train a model in response to a training request. The training request may be generated, for example, by model update controller 265 or by an external device that is in network communication with model training engine 260.
- Model training engine 260 may use any suitable training method to train the models based on factors including the type of model, available training data, available computational resources, and/or the requirements of system 100. Model training engine 260 may use any suitable method to train the optimized driver model to generate predicted optimal driver actions for a specified driving optimization objective and most suitable to a driving behavior of a given driver. For example, model training engine 260 may use off-policy reinforcement learning and/or imitation learning for training the optimized driver model.
- Model training engine 260 may use any suitable method to train the current driver model to generate predicted driver actions of a given current driver in response to a specific world state. Model training engine 260 may use imitation learning and/or inverse reinforcement learning for training the current driver model.
- Model training engine 260 can enable the optimized driver model to be personalized for a given driver by training the optimized driver model using training data that includes driving logs of the given driver.
- the driving logs may correspond to the given driver driving vehicle 10 and/or other vehicles.
- the driving logs may include multiple driving log data items. Each driving log data item may include a date and timestamp, world state data, driving optimization objective and a driver action performed by the given driver.
- the training data may also include additional data indicating whether the driver action performed by the given driver was an optimal driver action.
- new driving log data items may be generated based on a time-based schedule (e.g., 2Hz frequency) while vehicle 10 is being operated. In some embodiments, new driving log data items may be generated based on a threshold change in one or more of the input data included in the world state data.
- a time-based schedule e.g., 2Hz frequency
- new driving log data items may be generated based on a threshold change in one or more of the input data included in the world state data.
- the model training engine 260 may train the optimized driver model using driving logs of drivers other than the given driver.
- the size of the training data can be increased, and the training of the optimized driver model may be improved by using driving logs of drivers other than the given driver. For example, a comparison between key performance indicator values corresponding to driver actions taken by different drivers may be used to determine an optimal driver action.
- the driving logs of a given driver may not include any optimal driver actions for certain driving scenarios. In such examples, the optimized driver model can be trained to predict optimal driver actions by training the model using driving logs of drivers other than the given driver.
- model training engine 260 can enable the current driver model to be personalized for a given current driver by training the current driver model using training data that includes driving logs of the given driver.
- the driving logs may correspond to the given driver driving vehicle 10 and/or other vehicles.
- the driving logs may include multiple driving log data items. Each driving log data item may include a date and timestamp, world state data, driving optimization objective and a driver action performed by the given driver.
- model training engine 260 may train the current driver model using driver logs of drivers other than the given driver.
- the size of the available training data can be increased by using driving logs of drivers other than the given driver.
- model training engine 260 may use the current driver model for a given driver as an initial model for training the optimized driver model for the given driver. This may reduce the resources required for training the optimized driver model because the current driver model may already be personalized for the given driver.
- Model update controller 265 can control updates of one or more models of system 100.
- model update controller 265 can control updates of the optimized driver model.
- Model update controller 265 may receive input describing actual driver action taken by a driver in response to driver action advice provided to the driver. The actual driver action taken by the driver may be determined by system 100 based on world state data received after the driver action advice is provided to the driver.
- model update controller 265 may also receive one or more key performance indicators indicating performance of vehicle 10, in relation to a driving optimization objective, based on the actual driver action taken by the driver.
- vehicle 10 may be travelling along a highway and the optimized driver model may generate a predicted optimal driver action of reducing speed by 10mph to improve a fuel mileage performance indicator by 9%.
- Model update controller 265 may receive input describing an actual driver action of an 8mph speed reduction and a 5% improvement in the fuel mileage performance indicator. Model update controller 265 may compare the actual driver action with the predicted optimal driver action to determine whether the optimized driver model should be updated. In some embodiments, model update controller 265 may determine that the optimized driver model should be updated based on a predictive accuracy (e.g., percentage discrepancy between predicted optimal values and actual values) of the optimized driver model.
- a predictive accuracy e.g., percentage discrepancy between predicted optimal values and actual values
- model update controller 265 may provide a control signal to model training engine 260 to update the optimized driver model.
- a full retraining of the optimized driver model may require significant time and/or computing resources.
- a full retraining of the optimized driver model may be performed at an external computing device (e.g., a cloud-based computing system) that is in network communication with system 100.
- the external computing device may have higher computational resources, compared with model training engine 260, to perform the full retraining of the optimized driver model.
- model update controller 265 may provide a control signal to model training engine 260 to perform model patching instead of a full retraining of the model.
- model update controller 265 may determine whether a full retraining or a model patching is to be performed based on the predictive accuracy of the optimized driver model.
- a full retraining may be performed if the predictive accuracy of the optimized driver model falls below a threshold accuracy value.
- model update controller 265 may also control updates of the current driver model.
- Model update controller 265 may receive input describing a predicted driver action of a current driver generated by the current driver model.
- Model update controller 265 may also receive input describing actual driver action taken by the current driver. The actual driver action taken by the current driver may be determined by system 100 based on received world state data.
- the world state data may include data describing a speed of vehicle 10 and environmental conditions including rain, lighting and road conditions.
- the current driver model may generate a predicted driver action of the current driver in relation to a reduction in speed, windshield wiper setting and headlight setting of vehicle 10.
- Model update controller 265 may receive input describing actual driver action of the current driver in relation to reduction in speed, windshield wiper setting and headlight setting of vehicle 10.
- Model update controller 265 may compare the actual driver action with the predicted driver action of the current driver to determine whether the current driver model should be updated. In some embodiments, model update controller 265 may determine that the current driver model should be updated based on a predictive accuracy (e.g., mismatch between predicted and actual state or percentage discrepancy between predicted optimal values and actual values) of the current driver model.
- a predictive accuracy e.g., mismatch between predicted and actual state or percentage discrepancy between predicted optimal values and actual values
- model update controller 265 may provide a control signal to model training engine 260 to update the current driver model.
- a full retraining of the current driver model may require significant time and/or computing resources.
- a full retraining of the current driver model may be performed at an external computing device (e.g., a cloud-based computing system) that is in network communication with system 100.
- the external computing device may have higher computational resources, compared with model training engine 260, to perform the full retraining of the current driver model.
- model update controller 265 may provide a control signal to model training engine 260 to perform model patching instead of a full retraining of the model.
- model update controller 265 may determine whether a full retraining or a model patching is to be performed based on the predictive accuracy of the current driver model. A full retraining may be performed if the predictive accuracy of the current driver model falls below a threshold accuracy value.
- FIG. 3 is a flowchart showing an example computer-implemented method 300 of providing a driver action advice to a driver of a vehicle.
- FIG. 4 shows a dataflow diagram 400 corresponding to an example implementation of method 300.
- FIG. 5 shows a dataflow diagram 500 corresponding to another example implementation of method 300.
- Method 300 may be implemented using any suitable system.
- method 300 may be implemented using system 100 and reference is also made concurrently to FIGS. 1 and 2 showing system 100 and its components.
- Method 300 may be performed at various times. For example, method 300 may be performed in response to input received from an administrator or operator of system 100, an operator of vehicle 10 and/or a fleet owner of a fleet including vehicle 10. Method 300 may also be performed automatically, for example, according to time-based conditions (e.g., regular time intervals, after specified driving duration, a stored driver coaching schedule etc.).
- time-based conditions e.g., regular time intervals, after specified driving duration, a stored driver coaching schedule etc.
- method 300 may also be performed in response to receiving input world state data meeting specified driver coaching conditions.
- the driver coaching conditions may be stored, for example, in database 250.
- the specified driver coaching conditions may include location of vehicle 10 in specified geographical areas, speed of vehicle 10 exceeding a threshold speed, environmental conditions corresponding to a high safety risk, a high priority status of an operation using vehicle 10, a historical driving performance of driver 20 etc.
- method 300 may include receiving a driving optimization objective 405.
- the driving optimization objective may include a key performance indicator indicating one or more of an operational efficiency, an energy efficiency, a safety risk, a fuel efficiency or a vehicle wear.
- method 300 may include parameterizing an optimized driver model (410) in response to the received driving optimization objective (e.g., procedure 415 shown in FIGS. 4 and 5).
- the optimized driver model can generate a predicted optimal driver action output in response to a received world state data for the driving optimization objective received at 305.
- the optimized driver model may generate different predicted optimal driver action outputs for the same world state data based on different driving optimization objectives.
- the optimized driver model may also be personalized for a given driver to generate optimal driver action outputs most suitable to a driving behavior of the given driver compared with other candidate optimal driver actions.
- method 300 may include receiving world state data (420).
- the world state data may be received, for example, from vehicle sensors, engine control unit, vehicle control unit and/or external devices.
- method 300 may include determining a predicted optimal driver action (425) in response to the received world state data based on the optimized driver model parameterized for the received driving optimization objective.
- the optimized driver model may be personalized for a specific driver (e.g., driver 20) and may generate a predicted optimal driver action that is most suitable to the driving behavior of the specific driver.
- method 300 may include generating driver action advice (430) based on the predicted optimal driver action.
- the world state data for vehicle 10 may indicate busy traffic conditions and frequent stops of other vehicles located in environment of vehicle 10.
- a driver action advice to increase a following distance may be generated based on the predicted optimal driver action provided by the optimized driver model parameterized for a driving optimization objective of reducing vehicle wear.
- method 300 may include providing the generated driver action advice (435) to the driver via a HMI (440).
- the driver action advice may be provided to the driver using visual, audio and/or haptic signals.
- the generated driver action advice to increase a following distance may be provided to the driver using a combination of text and graphic symbols displayed on a built-in display of vehicle 10.
- method 300 may include receiving a driver training strategy input specifying one or more driver training criteria.
- the generated driver action advice may be provided to the driver based on the driver training criteria.
- the driver training strategy input may be provided by an administrator or operator of system 100. In some examples, the driver training strategy input may be provided by an employer of driver 20 or a fleet manager of a fleet that includes vehicle 10. In some embodiments, the received driver training strategy input may be stored locally by system 100 (e.g., in database 250).
- the driver training criteria may be based on pedagogical criteria.
- the driver training criteria may specify a ratio of positive to negative feedback provided to a driver.
- the driver training criteria may also specify a minimum time duration between two successive driver action advice provided to a driver. The minimum time duration may be selected to avoid coaching fatigue for the driver.
- the driver training criteria may be customized for each driver.
- the generated driver action advice may be provided to a driver based on historical data of actual driver action taken by the driver in response to the provided driver action advice.
- method 300 may include updating the optimized driver model (415) based on an actual driver action (445) taken by the driver in response to the driver action advice.
- model update controller 265 may control (450) update of the optimized driver model based on actual driver action taken by the driver.
- method 300 may include generating (505) a driver score (510) based on a comparison of the driver action advice with the actual driver action. For example, a high driver score may indicate high compliance of a driver’s actual actions with the driver action advice provided to the driver. In contrast, a low driver score may indicate low compliance of a driver’s actual actions with the driver action advice provided to the driver.
- historical data of driver scores may be stored, for example, in database 250 or an external storage device in network communication with system 100.
- the historical data of driver scores may be used, for example, by an employer of the driver to track progress in driving performance of the driver, effectiveness of different driver training criteria in coaching drivers, performance in meeting driving optimization objectives etc.
- historical data of predicted optimal driver actions, predicted current driver actions, actual driver actions and/or key performance indicators may also be stored, for example, in database 250 or an external storage device in network communication with system 100.
- the historical data may be used, for example, by a fleet manager to provide feedback to a driver regarding their driver actions and the corresponding optimal driver actions after the completion of a trip.
- method 300 may also include displaying the generated driver score on HMI.
- the generated driver score may be displayed to driver 20 using HMI 30.
- the generated driver score may be displayed to an employer of driver 20 and/or a fleet owner of a fleet including vehicle 10 using a corresponding HMI.
- FIG. 6 is a flowchart showing an example computer-implemented method 600 of providing a driver action advice to a driver of a vehicle.
- FIG. 7 shows a dataflow diagram 700 corresponding to an example implementation of method 600.
- FIG. 8 shows a dataflow diagram 800 corresponding to another example implementation of method 600.
- Method 600 may be implemented using any suitable system.
- method 600 may be implemented using system 100 and reference is also made concurrently to FIGS. 1 and 2 showing system 100 and its components.
- Method 600 may be performed at various times. For example, method 600 may be performed in response to input received from an administrator or operator of system 100, an operator of vehicle 10 and/or a fleet owner of a fleet including vehicle 10. Method 600 may also be performed automatically, for example, according to time-based conditions (e.g., regular time intervals, after specified driving duration, a stored driver coaching schedule etc.).
- time-based conditions e.g., regular time intervals, after specified driving duration, a stored driver coaching schedule etc.
- method 600 may also be performed in response to receiving input world state data meeting specified driver coaching conditions.
- the driver coaching conditions may be stored, for example, in database 250.
- the specified driver coaching conditions may include location of vehicle 10 in specified geographical areas, speed of vehicle 10 exceeding a threshold speed, environmental conditions corresponding to a high safety risk, a high priority status of an operation using vehicle 10, a historical driving performance of driver 20 etc.
- method 600 may be identical to method 300 described herein above.
- method 600 may include determining a predicted driver action (705) in response to the received world state data based on a current driver model (710).
- the current driver model may be personalized for the current driver (e.g., driver 20) and may generate a predicted driver action of the current driver.
- method 600 may include generating driver action advice (715) based on comparing the predicted optimal driver action with the predicted driver action.
- the predicted optimal driver action may be a reduction in speed and execution of the turn with a wide turning radius. If the predicted driver action is a reduction in speed and execution of the turn with a sharp turning radius, method 600 may generate driver advice related to steering control to execute the turn with a wider turning radius. If the predicted driver action is an insufficient reduction in speed and execution of the turn with a wide turning radius, method 600 may generate driver advice related to throttle control to execute the turn with a sufficient reduction in speed.
- method 600 may include receiving a driver training strategy input (720) specifying one or more driver training criteria.
- the generated driver action advice may be provided to the driver based on the driver training criteria, as described herein above.
- method 600 may include providing the generated driver action advice (725) to the driver via a HMI (730).
- the driver action advice may be provided to the driver using visual, audio and/or haptic signals.
- method 600 may include updating the optimized driver model (415) and updating the current driver model (745) based on an actual driver action (735) taken by the driver in response to the driver action advice.
- model update controller 265 may control update (740) of the optimized driver model and the current driver model based on actual driver action taken by the driver.
- method 600 may include generating (805) a driver score (810) based on a comparison of the driver action advice with the actual driver action. For example, a high driver score may indicate high compliance of a driver’s actual actions with the driver action advice provided to the driver. In contrast, a low driver score may indicate low compliance of a driver’s actual actions with the driver action advice provided to the driver.
- method 600 may also include displaying the generated driver score on HMI.
- the generated driver score may be displayed to driver 20 using HMI 30.
- the generated driver score may be displayed to an employer of driver 20 and/or a fleet owner of a fleet including vehicle 10 using a corresponding HMI.
- one or more embodiments of the disclosed systems and methods may include a generative Al model.
- the disclosed systems and methods may include multiple generative Al models.
- the generative Al model may include any suitable Al model that is capable of generating one or more of text, audio or image data according to a probability distribution.
- the image data may include individual images and/or videos.
- the generative Al model may include, for example, a large language model (LLM), a large language and vision model (LLVM), a large language, audio and vision model (LLAVM) etc.
- the generative Al model may be trained for a specific application domain, for example, a driver training or driver assistance application domain. In other embodiments, the generative Al model may not be trained for any specific application domain.
- the input data to the generative Al model may include any combination of text, audio, or image data, for example - text only; audio and image; text and audio; text, audio and image etc.
- the input data to the generative Al model may include world state data received from vehicle sensors 40 (FIG. 1 ).
- the input world state data may include any combination of text, audio, or image data.
- the input world state data may include text data encoding a sequence of vehicle states (e.g., time- stamped vehicle velocity data) and/or a sequence of driver inputs (e.g., time-stamped vehicle steering wheel angular position data).
- the input world state data may include audio data representing vehicle sounds (e.g., vehicle sounds associated with the engine, transmission and/or brakes), human conversations (e.g., driver/passenger commands, feedback etc.) and/or environmental sounds (e.g., emergency vehicle sirens, horn sounds from other vehicles etc.).
- vehicle sounds e.g., vehicle sounds associated with the engine, transmission and/or brakes
- human conversations e.g., driver/passenger commands, feedback etc.
- environmental sounds e.g., emergency vehicle sirens, horn sounds from other vehicles etc.
- the generative Al model may use one or more audio properties (e.g. , tone of voice) to make one or more detections (e.g., a stress level of the speaker).
- the input world state data may include image data from camera, radar and/or lidar sensors indicating objects located in environment of the vehicle.
- the generative Al model may generate output data that includes any combination of text, audio or image data, for example - audio only; audio and image; text and image; text, audio and image etc.
- the generative Al model may generate driver action advice in natural language text and/or audio.
- the generative Al model may provide a video output to the driver via the HMI advising the driver that the vehicle brakes must be applied.
- the generative Al model may be used to implement an individual functionality.
- optimized driver model 410 (FIG. 4) may include a generative Al model.
- the generative Al model can generate a predicted optimal driver action output in response to received world state data input.
- an LLVM generative Al model may generate predicted optimal driver action outputs in response to input image data (e.g., image data from cameras), input text data (e.g., time-stamped vehicle state data) etc.
- An input prompt may be used to provide the driving optimization objective to the generative Al model.
- the generative Al model may be personalized for a given driver to generate optimal driver action outputs most suitable to a driving behavior of the given driver by tuning the model on driving logs of the given driver.
- the generative Al model may be personalized for the given driver by generating text that summarizes the driving behavior of the given driver and providing the generated text to the generative Al model using input prompts.
- the text summarizing the driving behavior may be generated by inputting the driving logs of the given driver into a generative Al model (e.g., an LLM).
- current driver model 710 may include a generative Al model.
- the generative Al model can generate a predicted driver action of a current driver as output in response to received world state data input.
- an LLVM generative Al model may generate predicted driver action of a current driver in response to input image data (e.g., image data from cameras, lidar, radar sensors), input text data (e.g., time-stamped vehicle state data) etc.
- An input prompt may be used to provide driving behaviors or preferences of a current driver to the generative Al model.
- the generative Al model may be personalized for the current driver by tuning the model on driving logs of the current driver.
- the generative Al model may be personalized for the current driver by generating text that summarizes the driving behavior of the current driver and providing the generated text to the generative Al model using input prompts.
- the text summarizing the driving behavior may be generated by inputting the driving logs of the current driver into a generative Al model (e.g., an LLM).
- driver action advice may be generated by a generative Al model.
- a LLM may receive a predicted optimal driver action as input and generate an output driver action advice based on the predicted optimal driver action.
- a LLM may receive a predicted optimal driver action and a predicted current driver action as input and generate an output driver action advice based on comparing the predicted optimal driver action with the predicted current driver action.
- an input prompt may be used to provide a driver training strategy input specifying one or more driver training criteria to the generative Al model.
- the generative Al model may use the received driver training criteria to generate the driver action advice.
- a driver score may be generated by a generative Al model.
- a LLM may receive as inputs a driver action advice provided to a driver and an actual driver action of the driver. The LLM may generate a driver score based on a comparison of the driver action advice with the actual driver action.
- the generative Al model may be used to implement a combination of multiple functionalities.
- the generative Al model may be used to implement any combination of the optimized driver model, the current driver model, driver action advice generation and driver score generation.
- a single generative Al model e.g., an LLVM, LLAVM etc.
- the generative Al model may receive a world state data input and provide a generated driver action advice as output.
- the generative Al model may also output a predicted optimal driver action.
- a single generative Al model (e.g., an LLVM, LLAVM etc.) may be used to implement a combination of the optimized driver model, the current driver model, driver action advice generation and driver score generation functionalities.
- the generative Al model may receive as inputs world state data, a driving optimization objective, a driver training strategy and an actual driver action.
- the generative Al model may output a generated driver action advice and a driver score.
- the generative Al model may also output a predicted optimal driver action and a predicted current driver action.
- the generative Al models may be pre-trained or may be trained by model training engine 260 (FIG. 2).
- the generative Al models may be trained using first training data related to driving scenarios and non-driving scenarios.
- the first training data may include any combination of text, image and audio data.
- the generative Al model may be an LLM model and the first training data may include a large corpora of text to train the model to understand language.
- the generative Al model may be an LLVM model and the first training data may include a large dataset of images and associated text to train the model to understand language and video inputs.
- the generative Al model may be an LLAVM model and the first training data may include a large dataset of images, audio and associated text to train the model to understand language, audio and video inputs.
- the generative Al models training using the first training data may be further trained using second training data where at least a substantial portion of the second training data is related to driving scenarios.
- all of the second training data may be related to driving scenarios.
- the second training data may include any combination of text, image and audio data.
- the second training data may include driving logs associated with one or more drivers.
- the driving logs may include multiple driving log data items. Each driving log data item may include a date and timestamp, world state data, driving optimization objective and a driver action performed by the given driver.
- the training data may also include additional data indicating whether the driver action performed by the given driver was an optimal driver action.
- the generative Al models may be further trained using reinforcement learning from human feedback (RLHF).
- the human feedback used during the RLHF may be received from drivers or any other suitable person (e.g., a driving instructor).
Landscapes
- Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Transportation (AREA)
- Mechanical Engineering (AREA)
- Business, Economics & Management (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Entrepreneurship & Innovation (AREA)
- Educational Administration (AREA)
- Educational Technology (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Traffic Control Systems (AREA)
Abstract
A system and a computer-implemented method of providing a driver action advice to a driver of a vehicle are provided. The method comprises: receiving, by a processor, a driving optimization objective; parameterizing, by the processor, an optimized driver model in response to the received driving optimization objective; receiving, by the processor, world state data; determining, by the processor, a predicted optimal driver action in response to the received world state data based on the optimized driver model personalized for the driver; generating, by the processor, the driver action advice based on the predicted optimal driver action; providing, by the processor, the driver action advice to the driver via a human machine interface (HMI); and updating, by the processor, the optimized driver model based on an actual driver action taken by the driver in response to the driver action advice.
Description
Title: SYSTEMS AND METHODS FOR PROVIDING PERSONALIZED, OPTIMIZED AND PREDICTIVE DRIVER ACTION ADVICE
Cross-Reference to Related Application
[1] This application claims the benefit of United States Provisional Patent Application No. 63/447,229 filed February 21 , 2023, and the entire contents of United States Provisional Patent Application No. 63/447,229 are hereby incorporated herein in its entirety.
Field
[2] The described embodiments relate to providing driver action advice to a driver, and specifically to providing personalized, optimized, and predictive driver action advice to a driver.
Background
[3] Vehicles are used for a variety of applications including transportation of passengers and/or cargo. Vehicles may be driven by different types of drivers including commercial drivers, non-commercial drivers, expert drivers, novice drivers etc. For any given driving scenario, different drivers may take different driver actions. Some driver actions may be less optimal than others - for example, with reference to factors like safety, greenhouse gas emissions, vehicle wear, operational efficiency, etc. Effective driver coaching may provide improvements in safety (e.g., reduced driver fatalities/injuries), reduce greenhouse gas emissions, reduce vehicle wear and/or improve operational efficiency by coaching drivers to perform better driver actions in response to various driving scenarios.
Summary
[4] In a first aspect, there is provided a computer-implemented method of providing a driver action advice to a driver of a vehicle. The method comprises: receiving, by a processor, a driving optimization objective; parameterizing, by the processor, an
optimized driver model in response to the received driving optimization objective; receiving, by the processor, world state data; determining, by the processor, a predicted optimal driver action in response to the received world state data based on the optimized driver model personalized for the driver; generating, by the processor, the driver action advice based on the predicted optimal driver action; providing, by the processor, the driver action advice to the driver via a human machine interface (HMI); and updating, by the processor, the optimized driver model based on an actual driver action taken by the driver in response to the driver action advice. The optimized driver model is personalized for a given driver to generate optimal driver action outputs most suitable to a driving behavior of the given driver compared with other candidate optimal driver actions. At least a portion of the world state data is received from one or more vehicle sensors.
[5] In one or more embodiments, the method further comprises determining, by the processor, a predicted driver action in response to the received world state data based on a current driver model; and updating, by the processor, the current driver model based on the actual driver action, wherein generating the driver action advice includes comparing the predicted optimal driver action with the predicted driver action.
[6] In one or more embodiments, the method further comprises generating, by the processor, a driver score based on a comparison of the driver action advice with the actual driver action.
[7] In one or more embodiments, the method further comprises displaying the driver score on the HMI.
[8] In one or more embodiments, the method further comprises receiving, by the processor, a driver training strategy input specifying one or more driver training criteria, wherein the driver action advice is provided to the driver based on the one or more driver training criteria.
[9] In one or more embodiments, the world state data includes data indicating a state of the vehicle or an environment of the vehicle.
[10] In one or more embodiments, the driving optimization objective includes a key performance indicator indicating one or more of an operational efficiency, an energy efficiency, a safety risk, a fuel efficiency or a vehicle wear.
[11] In one or more embodiments, the processor updates the optimized driver model based on a comparison of the actual driver action with the predicted optimal driver action.
[12] In one or more embodiments, the processor updates the current driver model based on a comparison of the actual driver action with the predicted driver action.
[13] In one or more embodiments, the optimized driver model includes a neural network model, a regression tree, a Gaussian process model, a hand-crafted logic model, and/or a generative Al model.
[14] In one or more embodiments, the optimized driver model is trained using reinforcement learning and/or imitation learning.
[15] In one or more embodiments, the optimized driver model is trained and personalized for the given driver using driving logs of the given driver.
[16] In one or more embodiments, the optimized driver model is trained using driving logs of drivers other than the given driver.
[17] In one or more embodiments, the current driver model includes a neural network model, a regression tree, a Gaussian process model, a hand-crafted logic model, and/or a generative Al model.
[18] In one or more embodiments, the current driver model is trained using inverse reinforcement learning and/or imitation learning.
[19] In one or more embodiments, the current driver model is trained for the given driver using driving logs of the given driver.
[20] In one or more embodiments, the current driver model is trained using driving logs of drivers other than the given driver.
[21] In one or more embodiments, the current driver model for the given driver is used as an initial model for training the optimized driver model.
[22] In one or more embodiments, the driver action advice is generated by a generative Al model.
[23] In one or more embodiments, the driver score is generated by a generative Al model.
[24] In one or more embodiments, the driver action advice and the driver score is generated by a single generative Al model.
[25] In one or more embodiments, a single generative Al model includes the optimized driver model and the current driver model.
[26] In one or more embodiments, at least one of the driver action advice and the driver score is generated by a generative Al model, and the generative Al model includes at least one of the optimized driver model and the current driver model.
[27] In one or more embodiments, input data to the generative Al model includes any combination of text, image and audio data.
[28] In one or more embodiments, output data of the generative Al model includes any combination of text, image and audio data.
[29] In one or more embodiments, the generative Al model includes a large language model (LLM), a large language and vision model (LLVM) or a large language, audio and vision model (LLAVM).
[30] In one or more embodiments, the generative Al model is trained using first training data related to driving scenarios and non-driving scenarios, the first training data including any combination of text, image and audio data.
[31] In one or more embodiments, the generative Al model is further trained using second training data that includes any combination of text, image and audio data, at least a substantial portion of the second training data related to driving scenarios.
[32] In one or more embodiments, one or both of the driving optimization objective and the driver training strategy input are received in an input prompt to the generative Al model.
[33] In one or more embodiments, the optimized driver model includes the generative Al model and the optimized driver model is personalized for the given driver using an input prompt to the generative Al model, the input prompt including a text summary of the driving behavior of the given driver.
[34] In one or more embodiments, the text summary is generated by a second generative Al model based on the driving logs of the given driver.
[35] In one or more embodiments, the current driver model includes the generative Al model and the current driver model is personalized for the given driver using an input
prompt to the generative Al model, the input prompt including a text summary of the driving behavior of the given driver.
[36] In one or more embodiments, the text summary is generated by a second generative Al model based on the driving logs of the given driver.
[37] In a second aspect, there is provided a system for providing a driver action advice to a driver of a vehicle. The system comprises: a memory configured to store an optimized driver model; and a processor in communication with the memory. The optimized driver model is personalized for a given driver to generate optimal driver action outputs most suitable to a driving behavior of the given driver compared with other candidate optimal driver actions. The processor is configured to: receive a driving optimization objective; parameterize the optimized driver model in response to the received driving optimization objective; receive world state data, wherein at least a portion of the world state data is received from one or more vehicle sensors; determine a predicted optimal driver action in response to the received world state data based on the optimized driver model personalized for the driver; generate the driver action advice based on the predicted optimal driver action; provide the driver action advice to the driver via a human machine interface (HMI); and update the optimized driver model based on an actual driver action taken by the driver in response to the driver action advice.
[38] In one or more embodiments, the memory is further configured to store a current driver model and the processor is further configured to: determine a predicted driver action in response to the received world state data based on the current driver model; and update the current driver model based on the actual driver action, wherein the processor is configured to generate the driver action advice by comparing the predicted optimal driver action with the predicted driver action.
[39] In one or more embodiments, the processor is further configured to generate a driver score based on a comparison of the driver action advice with the actual driver action.
[40] In one or more embodiments, the processor is further configured to provide a display of the driver score via the HMI.
[41] In one or more embodiments, the processor is further configured to receive a driver training strategy input specifying one or more driver training criteria, wherein the driver action advice is provided to the driver based on the one or more driver training criteria.
[42] In one or more embodiments, the world state data includes data indicating a state of the vehicle or an environment of the vehicle.
[43] In one or more embodiments, the driving optimization objective includes a key performance indicator indicating one or more of an operational efficiency, an energy efficiency, a safety risk, a fuel efficiency or a vehicle wear.
[44] In one or more embodiments, the processor is configured to update the optimized driver model based on a comparison of the actual driver action with the predicted optimal driver action.
[45] In one or more embodiments, the processor is configured to update the current driver model based on a comparison of the actual driver action with the predicted driver action.
[46] In one or more embodiments, the optimized driver model includes a neural network model, a regression tree, a Gaussian process model, a hand-crafted logic model, and/or a generative Al model.
[47] In one or more embodiments, the optimized driver model is trained using reinforcement learning and/or imitation learning.
[48] In one or more embodiments, the optimized driver model is trained and personalized for the given driver using driving logs of the given driver.
[49] In one or more embodiments, the optimized driver model is trained using driving logs of drivers other than the given driver.
[50] In one or more embodiments, the current driver model includes a neural network model, a regression tree, a Gaussian process model, a hand-crafted logic model, and/or a generative Al model.
[51] In one or more embodiments, the current driver model is trained using inverse reinforcement learning and/or imitation learning.
[52] In one or more embodiments, the current driver model is trained for the given driver using driving logs of the given driver.
[53] In one or more embodiments, the current driver model is trained using driving logs of drivers other than the given driver.
[54] In one or more embodiments, the current driver model for the given driver is used as an initial model for training the optimized driver model.
[55] In one or more embodiments, the processor is configured to generate the driver action advice using a generative Al model.
[56] In one or more embodiments, the processor is configured to generate the driver score using a generative Al model.
[57] In one or more embodiments, the processor is configured to generate the driver action advice and the driver score using a single generative Al model.
[58] In one or more embodiments, a single generative Al model includes the optimized driver model and the current driver model.
[59] In one or more embodiments, the processor is configured to generate at least one of the driver action advice and the driver score using a generative Al model, and the generative Al model includes at least one of the optimized driver model and the current driver model.
[60] In one or more embodiments, input data to the generative Al model includes any combination of text, image and audio data.
[61] In one or more embodiments, output data of the generative Al model includes any combination of text, image and audio data.
[62] In one or more embodiments, the generative Al model includes a large language model (LLM), a large language and vision model (LLVM) or a large language, audio and vision model (LLAVM).
[63] In one or more embodiments, the generative Al model is trained using first training data related to driving scenarios and non-driving scenarios, the first training data including any combination of text, image and audio data.
[64] In one or more embodiments, the generative Al model is further trained using second training data that includes any combination of text, image and audio data, at least a substantial portion of the second training data related to driving scenarios.
[65] In one or more embodiments, one or both of the driving optimization objective and the driver training strategy input are received in an input prompt to the generative Al model.
[66] In one or more embodiments, the optimized driver model includes the generative Al model and the optimized driver model is personalized for the given driver using an input prompt to the generative Al model, the input prompt including a text summary of the driving behavior of the given driver.
[67] In one or more embodiments, the text summary is generated by a second generative Al model based on the driving logs of the given driver.
[68] In one or more embodiments, the current driver model includes the generative Al model and the current driver model is personalized for the given driver using an input prompt to the generative Al model, the input prompt including a text summary of the driving behavior of the given driver.
[69] In one or more embodiments, the text summary is generated by a second generative Al model based on the driving logs of the given driver.
Brief Description of the Drawings
[70] The drawings included herewith are for illustrating various examples of systems, methods, and devices of the teaching of the present specification and are not intended to limit the scope of what is taught in any way.
[71] FIG. 1 is a schematic diagram that shows an example system for providing driver action advice to a driver of a vehicle, in accordance with one or more embodiments.
[72] FIG. 2 is a block diagram of the example system of FIG. 1 .
[73] FIG. 3 is a flowchart showing an example computer-implemented method of providing a driver action advice to a driver of a vehicle, in accordance with one or more embodiments.
[74] FIG. 4 is a dataflow diagram corresponding to an example implementation of the method of FIG. 3.
[75] FIG. 5 is a dataflow diagram corresponding to another example implementation of the method of FIG. 3.
[76] FIG. 6 is a flowchart showing another example computer-implemented method of providing a driver action advice to a driver of a vehicle, in accordance with one or more embodiments.
[77] FIG. 7 is a dataflow diagram corresponding to an example implementation of the method of FIG. 6.
[78] FIG. 8 is a dataflow diagram corresponding to another example implementation of the method of FIG. 6.
Detailed Description
[79] Several example embodiments are described herein. It will be appreciated that numerous specific details are set forth in order to provide a thorough understanding of the example embodiments described herein. However, it will be understood by those of ordinary skill in the art that the embodiments described herein may be practiced without these specific details. In other instances, well-known methods, procedures and components have not been described in detail so as not to obscure the embodiments described herein. Furthermore, this description and the drawings are not to be considered as limiting the scope of the embodiments described herein in any way, but rather as merely describing the implementation of the various embodiments described herein.
[80] It should be noted that terms of degree such as "substantially", "about" and "approximately" when used herein mean a reasonable amount of deviation of the modified term such that the end result is not significantly changed. These terms of degree should be construed as including a deviation of the modified term if this deviation would not negate the meaning of the term it modifies.
[81] In addition, as used herein, the wording “and/or” is intended to represent an inclusive-or. That is, “X and/or Y” is intended to mean X or Y or both, for example. As a further example, “X, Y, and/or Z” is intended to mean X or Y or Z or any combination thereof.
[82] The embodiments of the systems and methods described herein may be implemented in hardware or software, or a combination of both. These embodiments may be implemented in computer programs executing on programmable computers, each
computer including at least one processor, a data storage system (including volatile memory or non-volatile memory or other data storage elements or a combination thereof), and at least one communication interface. For example and without limitation, the programmable computers (referred to below as computing devices) may be a server, network appliance, embedded device, computer expansion module, personal computer, laptop, personal data assistant, cellular telephone, smart-phone device, tablet computer, wireless device or any other computing device capable of being configured to carry out the methods described herein.
[83] In some embodiments, the communication interface may be a network communication interface. In embodiments in which elements are combined, the communication interface may be a software communication interface, such as those for inter-process communication (IPC). In still other embodiments, there may be a combination of communication interfaces implemented as hardware, software, and a combination thereof.
[84] Program code may be applied to input data to perform the functions described herein and to generate output information. The output information is applied to one or more output devices, in known fashion.
[85] Each program may be implemented in a high-level procedural or object-oriented programming and/or scripting language, or both, to communicate with a computer system. However, the programs may be implemented in assembly or machine language, if desired. In any case, the language may be a compiled or interpreted language. Each such computer program may be stored on a storage media or a device (e.g. ROM, magnetic disk, optical disc) readable by a general or special purpose programmable computer, for configuring and operating the computer when the storage media or device is read by the computer to perform the procedures described herein. Embodiments of the system may also be considered to be implemented as a non-transitory computer-readable storage medium, configured with a computer program, where the storage medium so configured causes a computer to operate in a specific and predefined manner to perform the functions described herein.
[86] Furthermore, the systems, processes and methods of the described embodiments are capable of being distributed in a computer program product comprising a computer readable medium that bears computer usable instructions for one or more processors. The medium may be provided in various forms, including one or more diskettes, compact disks, tapes, chips, wireline transmissions, satellite transmissions, internet transmission or downloads, magnetic and electronic storage media, digital and analog signals, and the like. The computer useable instructions may also be in various forms, including compiled and non-compiled code.
[87] Various embodiments have been described herein by way of example only. Various modifications and variations may be made to these example embodiments without departing from the spirit and scope of the invention, which is limited only by the appended claims. Also, in the various user interfaces illustrated in the figures, it will be understood that the illustrated user interface text and controls are provided as examples only and are not meant to be limiting. Other suitable user interface elements may be possible.
[88] The disclosed systems and methods may provide higher driver coaching performance and efficiency compared with systems and methods that provide retrospective driver coaching based on historical driver actions taken by a driver. The disclosed systems and methods can use predictive models (e.g., an optimized driver model and/or a current driver model) to determine a predicted driver action and provide driver action advice to the driver based on the predicted driver action. The driver action advice provided based on predicted driver actions may provide greater driver engagement and increase the efficiency of the driver coaching system compared with systems providing retrospective feedback (where driver action advice is provided regrading historical driver actions).
[89] The disclosed systems and methods may provide higher vehicle performance and/or efficiency by providing optimized driver action advice compared with systems and methods that provide non-optimized driver action advice. For example, if the generated driver action advice is optimized for a specific driving optimization objective and a driver
follows the driver action advice to perform a corresponding driver action, the performance of the vehicle may be improved with respect to the driving optimization objective.
[90] The disclosed systems and methods may also provide higher performance and efficiency by providing personalized driver action advice compared with systems and methods that provide driver action advice based on a generic set of rules (nonpersonalized). Different drivers may react differently to different driving scenarios. In some cases, a given driver’s predicted response to a specific driving scenario may already be optimal. In some embodiments, the disclosed systems and methods may not provide a specific driver action advice in such scenarios to avoid driver coaching fatigue that may be caused by excessive driver action advice. However, when there is a large difference between a driver’s predicted response to a specific driving scenario and an optimal response to that driving scenario, the disclosed systems and methods may provide a personalized driver action advice. For example, there may be multiple candidate optimal driver action responses. The disclosed systems and methods may generate an optimal driver action advice that is most suitable to a driving behavior of the driver. Accordingly, the personalized driver action advice provided by the disclosed systems and methods may improve effectiveness of driver coaching and provide improved driver action advice that is tailored to the driving style of a given driver.
[91] In contrast, systems and methods that provide non-personalized driver action advice may use a generic set of rules to generate the same non-personalized driver action advice for all drivers for any given driving scenario. This may cause driver coaching fatigue in cases where the driver action advice provided to the driver matches the action the driver would have performed regardless of the driver action advice. Additionally, the non-personalized driver action advice may not be suited to the specific driving behavior of the given driver.
[92] Referring first to FIG. 1 , shown therein is a schematic diagram that includes an example system 100 for providing driver action advice to a driver 20 of a vehicle 10. Also shown in FIG. 1 are a human machine interface (HMI) 30, vehicle sensors 40a, 40b (also collectively referred to herein as vehicle sensor 40), and a network 50.
[93] Vehicle 10 can be any vehicle suitable for transporting passengers and/or cargo. Vehicle 10 may have any suitable design for traveling over land (e.g., cars, vans, trucks), water (e.g., ships), air (e.g., aircrafts) and/or any combination of land, sea and air (e.g., hovercrafts). Vehicle 10 may be used for commercial (e.g., transporting freight, commuters etc.) or non-commercial purposes (e.g., private trips for recreation etc.). Vehicle 10 may be a non-autonomous vehicle that is controlled by driver 20. In some embodiments, vehicle 10 may be a semi-autonomous vehicle where one or more functions of vehicle 10 are autonomously controlled, and one or more functions are controlled by driver 20. In some embodiments, vehicle 10 may be a fully autonomous vehicle where all the driving-related functions of vehicle 10 are autonomously controlled.
[94] Driver 20 can be any human operator of vehicle 10. Driver 20 may be located at vehicle 10 or driver 20 may operate vehicle 10 from a remote location. In some embodiments, driver 20 may be a professional driver that drives vehicle 10 for commercial purposes. Driver 20 can also be a driver using vehicle 10 for non-commercial purposes. Driver 20 may have any level of expertise for operating vehicle 10. For example, driver 20 may be a novice driver learning to drive vehicle 10 or driver 20 may be an expert driver with many years of experience in driving vehicle 10. In embodiments where vehicle 10 is a semi-autonomous vehicle or a fully autonomous vehicle, driver 20 can be a “virtual driver” (e.g., a computing system and/or an algorithm configured to autonomously control driving-related functions of vehicle 10).
[95] Driver 20 may control the operation of vehicle 10 using multiple control devices that control motion of vehicle 10, e.g., throttle, brake, steering wheel, gear shift, etc. Driver 20 may also control operation of vehicle 10 by controlling other aspects of vehicle 10, e.g., tire pressure, A/C setting, window position, windshield wiper setting etc.
[96] Vehicle sensors 40 may have any suitable design to generate world state data including data indicating a state of the vehicle 10 or an environment of the vehicle 10. Vehicle sensors 40 may provide the generated world state data to system 100. Vehicle sensors 40 may be in direct communication with system 100 (e.g., via network 50) and provide the generated world state data directly to system 100. In some embodiments,
vehicle sensors 40 may provide generated world state data to a vehicle control unit of vehicle 10 and the vehicle control unit may provide the world state data to system 100.
[97] Vehicle 10 may have any suitable number of vehicle sensors 40 (e.g., 1 to 10, 5 to 20 etc.). A larger number of vehicle sensors may provide a larger amount of world state data to system 100 but may increase cost and/or complexity. A smaller number of vehicle sensors may reduce cost and/or complexity buy provide a smaller amount of world state data to system 100.
[98] Vehicle sensors 40 may include one or more sensors configured to generate world state data indicating state of vehicle 10. For example, vehicle sensors 40 may include sensors configured to generate world state data indicating position, orientation, velocity, acceleration, weight, and/or fuel consumption of vehicle 10. In some embodiments, vehicle sensors 40 may include sensors configured to generate world state data indicating tire pressure and/or tire temperature of tires of vehicle 10.
[99] Vehicle sensors 40 may include one or more sensors configured to generate world state data providing information about an environment of vehicle 10. For example, vehicle sensors 40 may include sensors configured to generate world state data indicating temperature, humidity, wind speed, wind direction etc. of the environment of vehicle 10. In some embodiments, vehicle sensors 40 may include a camera, radar and/or lidar sensors configured to generate world state data indicating objects located in environment of vehicle 10. Vehicle sensors 40 may include one or more sensors (e.g., cameras, microphones etc.) that provide world state data related to the driver and/or passengers within vehicle 10. The data provided by vehicle sensors 40 may be processed by perception algorithms to generate world state data. For example, the perception algorithms may process the camera and/or lidar sensor data to generate world state data indicating objects located in environment of vehicle 10. As another example, the perception algorithms may process the data indicating position, orientation, velocity and acceleration of vehicle 10 to generate world state data indicating state of vehicle 10. The perception algorithms may be included in system 100 or in an external computing device that is in network communication with system 100.
[100] The system 100 may provide the driver action advice to the driver 20 using the human machine interface (HMI) 30. System 100 may communicate with HMI 30 using a communication network (e.g., network 50). HMI 30 may have any suitable design to provide the driver action advice to driver 20. HMI 30 may include a built-in device of vehicle 10 (e.g., a touchscreen display, audio speakers), an auxiliary device associated with system 100 and/or a user device associated with driver 20 (e.g., a smartphone device).
[101] HMI 30 may provide the driver action advice to driver 20 using visual, audio and/or haptic signals. For example, the driver action advice may be provided using a display provided on a screen/display device, indicator lights, audio output from speakers, vibrations provided by a haptic device etc. In some embodiments, HMI 30 may provide the driver action advice to a different person (other than driver 20) associated with vehicle 10. For example, vehicle 10 may be operated by a trainee driver 20 and HMI 30 may provide the driver action advice to a driving instructor. The driving instructor may use the driver action advice to provide driving instructions to the trainee driver 20.
[102] Network 50 may include a communication network such as the Internet, a Wide- Area Network (WAN), a Local-Area Network (LAN), or another type of network. Network 50 may include a point-to-point connection, or another communications connection between two nodes.
[103] Reference is now made to FIGS. 1 and 2. FIG. 2 shows a block diagram of system 100. For the embodiment shown in FIG. 2, system 100 includes a communication unit 205, a display 210, a processor unit 215, a memory unit 220, an I/O unit 225, a user interface engine 230 and a power unit 235. One or more components of system 100 may be located at vehicle 10. In some embodiments, one or more components of system 100 may be located at a remote location and communicate with vehicle 10 using a communication network.
[104] Communication unit 205 can include wired or wireless connection capabilities. Communication unit 205 can be used by system 100 to communicate with other devices or computers. For example, system 100 may use communication unit 205 to receive, via
network 50, world state data from vehicle sensors 40. System 100 may also use communication unit 205 to provide, via network 50, driver action advice to HMI 30.
[105] Processor unit 215 can control the operation of system 100. Processor unit 215 can be any suitable processor, controller or digital signal processor that can provide sufficient processing power depending on the configuration, purposes and requirements of system 100 as is known by those skilled in the art. For example, processor unit 215 may be a high-performance general processor. For example, processor unit 215 may include a standard processor, such as an Intel® processor, or an AMD® processor. Alternatively, processor unit 215 can include more than one processor with each processor being configured to perform different dedicated tasks. Alternatively, specialized hardware (e.g., graphical processing units (GPUs)) can be used provide some of the functions provided by processor unit 215.
[106] Processor unit 215 can execute a user interface engine 230 that may be used to generate various user interfaces. User interface engine 230 may be configured to provide a user interface on display 210. Optionally, system 100 may be in communication with external displays via network 50. User interface engine 230 may also generate user interface data for the external displays that are in communication with system 100.
[107] User interface engine 230 can be configured to provide a user interface to enable set-up and initialization of system 100. User interface engine 230 can also be configured to provide a user interface to receive various input parameters, e.g., an input parameter specifying a driving optimization objective, an input driver parameter specifying the driver of the vehicle.
[108] Display 210 may be a LED or LCD based display and may be a touch sensitive user input device that supports gestures. Display 210 may be integrated into system 100. Alternatively, display 210 may be located physically remote from system 100 and communicate with system 100 using a communication network, for example, network 50. In some embodiments, system 100 may not include a dedicated display 210 and may provide output displays using HMI 30.
[109] I/O unit 225 can include at least one of a mouse, a keyboard, a touch screen, a thumbwheel, a trackpad, a trackball, a card-reader, voice recognition software and the
like, depending on the particular implementation of system 100. In some cases, some of these components can be integrated with one another. I/O unit 225 may enable a user, an operator and/or an administrator of system 100 to interact with the user interfaces provided by user interface engine 230.
[110] Power unit 235 can be any suitable power source that provides power to system 100 such as a power adaptor or a rechargeable battery pack depending on the implementation of system 100 as is known by those skilled in the art.
[111] Memory unit 220 can include software code for implementing an operating system 240, programs 245, database 250, model generation engine 255, model training engine 260, and model update controller 265.
[112] Memory unit 220 can include RAM, ROM, one or more hard drives, one or more flash drives or some other suitable data storage elements such as disk drives, etc. Memory unit 220 can be used to store an operating system 240 and programs 245 as is commonly known by those skilled in the art. For instance, operating system 240 provides various basic operational processes for system 100. For example, the operating system 240 may be an operating system such as Windows® Server operating system, or Red Hat® Enterprise Linux (RHEL) operating system, or another operating system.
[113] Database 250 may include a Structured Query Language (SQL) database such as PostgreSQL or MySQL or a not only SQL (NoSQL) database such as MongoDB, or Graph Databases, etc. Database 250 may be integrated with system 100. Alternatively, database 250 may run independently on a database server in network communication with system 100.
[114] Database 250 may store the received driving optimization objective and/or the received world state data. Database 350 may also store the optimized driver model and/or the current driver model. In some embodiments, database 350 may store multiple sets of models, with each set of models corresponding to a specific driver. For example, database 350 may store a first set of models including a first optimized driver model and a first current driver model for a first driver; and store a second set of models including a second optimized driver model and a second current driver model for a second driver. In some embodiments, database 350 may also store the generated driver action advice.
[115] Programs 245 can include various programs so that system 100 can perform various functions such as, but not limited to, receiving world state data, determining predicted optimal driver action, generating driver action advice and/or updating one or more models (e.g., optimized driver model, current driver model).
[116] Model generation engine 255 can generate one or more machine learning models. For example, model generation engine 255 may generate an optimized driver model. In some embodiments, system 100 may not include a model generation engine 255 and system 100 may receive the optimized driver model from an external device. The generated and/or received models may be stored in database 250. In some embodiments, the generated models may be stored in an external storage device that is in network communication with system 100.
[117] The optimized driver model can be any suitable model that is configured to receive world state data as input and generate a corresponding predicted optimal driver action as output. The optimized driver model can include any suitable machine learning model. For example, the optimized driver model can include a neural network model, a regression tree, or a Gaussian process model. In some embodiments, the optimized driver model can include any suitable deep learning model. The optimized driver model may also include any suitable hand-crafted models. In some embodiments, the optimized driver model can be based in part or fully on hand-crafted logic models, for example, using heuristics and/or physics-based models. In some examples, hand-crafted features may be used in combination with a machine learning model. In some examples, a fully handcrafted model including one or more optimization parameters may be used (e.g., a fully hand-crafted model including optimization parameters to balance driving optimization objectives versus driving behavior of a given driver).
[118] The world state data input can describe a driving scenario and system 100 can use the predicted optimal driver action to provide driver action advice regarding the driving scenario to a driver. The world state data input can include, for example, world state data received from vehicle sensors 40. The world state data input can also include data received from external devices. For example, the world state data input may include data specifying location of vehicle 10 (e.g., GPS location data from an external system). The
world state data input may also include data received from an engine control unit, for example, data including engine parameters like engine speed (RPM), engine power, engine torque, engine temperature, engine air flow, engine fuel flow etc. In some embodiments, vehicle 10 can be a semi-autonomous vehicle or a fully autonomous vehicle including a vehicle control unit that provides world state data input for the optimized driver model. The vehicle control unit may provide world state data indicating objects located in the environment of vehicle 10.
[119] The optimized driver model can also receive an input parameter specifying a driving optimization objective. The driving optimization objective may include a key performance indicator indicating one or more of an operational efficiency, an energy efficiency, a safety risk, a fuel efficiency or a vehicle wear. For example, the input parameter may specify a driving optimization objective corresponding to a fuel mileage indicator that indicates energy efficiency. For a vehicle using fossil fuels as an energy source, an improvement in energy efficiency may also reduce the greenhouse gas emissions of the vehicle. As other examples, the input parameter may specify a driving optimization objective corresponding to a safety score with a high safety score indicating higher safety performance, a vehicle wear score with a high vehicle wear score indicating higher vehicle wear, a trip duration time with shorter trip durations indicating higher operational efficiency etc.
[120] The optimized driver model can generate a predicted optimal driver action output in response to the received world state data for the specified driving optimization objective. The driver actions can include any actions of the driver that are related to operation of the vehicle. For example, the driver actions can include control of throttle, brake, steering, gear position, window position, A/C, heating, tire pressure, etc. For an example world state data for a vehicle approaching a sharp turn, the optimized driver model may generate a predicted optimal driver action to reduce speed of the vehicle.
[121] The optimized driver model may be personalized for a given driver to generate optimal driver action outputs most suitable to a driving behavior of the given driver compared with other candidate optimal driver actions. For the above-described example driving scenario of a vehicle approaching a sharp turn, there may be two candidate
optimal driver actions - i) control throttle and/or brake to reduce speed of the vehicle and ii) control steering of the vehicle to increase a turning radius. For this example scenario, the optimized driver model personalized for a first driver may generate a predicted optimal driver action to control throttle and/or brake to reduce speed of the vehicle based on the driving behavior of the first driver. In contrast, the optimized driver model personalized for a second driver may generate a predicted optimal driver action to control steering of the vehicle to increase a turning radius based on the driving behavior of the second driver.
[122] In some cases, the optimized driver model may generate different predicted optimal driver action outputs for the same world state data based on different driving optimization objectives. For an example world state data describing a vehicle being driven along a highway at a first speed, the optimized driver model may generate a predicted optimal driver action to increase vehicle speed based on a driving optimization objective to reduce trip duration. For the same example of a vehicle being driven along a highway at a first speed, the optimized driver model may generate a predicted optimal driver action to decrease vehicle speed based on a driving optimization objective to improve fuel mileage.
[123] Model generation engine 255 may also generate a current driver model. In some embodiments, system 100 may not include a model generation engine 255 and system 100 may receive a current driver model from an external device. The generated and/or received models may be stored in database 250. In some embodiments, the generated models may be stored in an external storage device that is in network communication with system 100.
[124] The current driver model can be any suitable model that is configured to receive world state data as input and generate a corresponding predicted driver action of a current driver as output. The current driver model can include any suitable machine learning model. For example, the current driver model can include a neural network model, a regression tree, or a Gaussian process model. In some embodiments, the current driver model can include any suitable deep learning model. The current driver model may also include any suitable hand-crafted models. In some embodiments, the current driver model can be based in part or fully on hand-crafted logic models, for example, using heuristics
and/or physics-based models. In some examples, hand-crafted features may be used in combination with a machine learning model. In some examples, a fully hand-crafted model including one or more optimization parameters may be used (e.g., a fully handcrafted model including optimization parameters to accurately predict a current driver’s actions in response to a specific world state).
[125] The world state data input can describe a driving scenario and system 100 can use the current driver model to determine a predicted driver action of the current driver for that driving scenario. As described herein above, the world state data input can include, for example, world state data received from vehicle sensors 40, external devices, engine control units, and/or vehicle control units.
[126] The current driver model can generate a predicted driver action output of the current driver in response to the received world state data. The driver actions can include any actions of the current driver that are related to operation of the vehicle. For example, the driver actions can include control of throttle, brake, steering, gear position, window position, A/C, heating, tire pressure, etc. For an example world state data of a vehicle waiting to be loaded with cargo, the current driver model may generate a predicted current driver action output indicating whether the current driver is predicted to keep the engine of the vehicle idling during loading of the cargo or whether the current driver is predicted to turn off the engine during loading of the cargo.
[127] Model training engine 260 can train one or more machine learning models. The models may include models generated by model generation engine 255 and/or models received from external devices. For example, model training engine 260 may train the optimized driver model and/or the current driver model.
[128] Model training engine 260 may be configured to perform training of models at various times. For example, model training engine 260 may be configured to train models when they are initially generated by model generation engine 255. Model training engine 260 may also be configured to train models based on a time-based schedule. For example, based on a training period parameter stored in database 250. In some embodiments, model training engine 260 may train a model in response to a training request. The training request may be generated, for example, by model update controller
265 or by an external device that is in network communication with model training engine 260.
[129] Model training engine 260 may use any suitable training method to train the models based on factors including the type of model, available training data, available computational resources, and/or the requirements of system 100. Model training engine 260 may use any suitable method to train the optimized driver model to generate predicted optimal driver actions for a specified driving optimization objective and most suitable to a driving behavior of a given driver. For example, model training engine 260 may use off-policy reinforcement learning and/or imitation learning for training the optimized driver model.
[130] Model training engine 260 may use any suitable method to train the current driver model to generate predicted driver actions of a given current driver in response to a specific world state. Model training engine 260 may use imitation learning and/or inverse reinforcement learning for training the current driver model.
[131] Model training engine 260 can enable the optimized driver model to be personalized for a given driver by training the optimized driver model using training data that includes driving logs of the given driver. The driving logs may correspond to the given driver driving vehicle 10 and/or other vehicles. The driving logs may include multiple driving log data items. Each driving log data item may include a date and timestamp, world state data, driving optimization objective and a driver action performed by the given driver. For supervised learning, the training data may also include additional data indicating whether the driver action performed by the given driver was an optimal driver action.
[132] In some embodiments, new driving log data items may be generated based on a time-based schedule (e.g., 2Hz frequency) while vehicle 10 is being operated. In some embodiments, new driving log data items may be generated based on a threshold change in one or more of the input data included in the world state data.
[133] In some embodiments, the model training engine 260 may train the optimized driver model using driving logs of drivers other than the given driver. The size of the training data can be increased, and the training of the optimized driver model may be
improved by using driving logs of drivers other than the given driver. For example, a comparison between key performance indicator values corresponding to driver actions taken by different drivers may be used to determine an optimal driver action. In some examples, the driving logs of a given driver may not include any optimal driver actions for certain driving scenarios. In such examples, the optimized driver model can be trained to predict optimal driver actions by training the model using driving logs of drivers other than the given driver.
[134] In embodiments that include a current driver model, model training engine 260 can enable the current driver model to be personalized for a given current driver by training the current driver model using training data that includes driving logs of the given driver. The driving logs may correspond to the given driver driving vehicle 10 and/or other vehicles. The driving logs may include multiple driving log data items. Each driving log data item may include a date and timestamp, world state data, driving optimization objective and a driver action performed by the given driver.
[135] In some embodiments, model training engine 260 may train the current driver model using driver logs of drivers other than the given driver. The size of the available training data can be increased by using driving logs of drivers other than the given driver.
[136] In some embodiments, model training engine 260 may use the current driver model for a given driver as an initial model for training the optimized driver model for the given driver. This may reduce the resources required for training the optimized driver model because the current driver model may already be personalized for the given driver.
[137] Model update controller 265 can control updates of one or more models of system 100. For example, model update controller 265 can control updates of the optimized driver model. Model update controller 265 may receive input describing actual driver action taken by a driver in response to driver action advice provided to the driver. The actual driver action taken by the driver may be determined by system 100 based on world state data received after the driver action advice is provided to the driver. In some embodiments, model update controller 265 may also receive one or more key performance indicators indicating performance of vehicle 10, in relation to a driving optimization objective, based on the actual driver action taken by the driver.
[138] For example, vehicle 10 may be travelling along a highway and the optimized driver model may generate a predicted optimal driver action of reducing speed by 10mph to improve a fuel mileage performance indicator by 9%. Model update controller 265 may receive input describing an actual driver action of an 8mph speed reduction and a 5% improvement in the fuel mileage performance indicator. Model update controller 265 may compare the actual driver action with the predicted optimal driver action to determine whether the optimized driver model should be updated. In some embodiments, model update controller 265 may determine that the optimized driver model should be updated based on a predictive accuracy (e.g., percentage discrepancy between predicted optimal values and actual values) of the optimized driver model.
[139] If model update controller 265 determines that the optimized driver model should be updated, then model update controller 265 may provide a control signal to model training engine 260 to update the optimized driver model. A full retraining of the optimized driver model may require significant time and/or computing resources. In some embodiments, a full retraining of the optimized driver model may be performed at an external computing device (e.g., a cloud-based computing system) that is in network communication with system 100. The external computing device may have higher computational resources, compared with model training engine 260, to perform the full retraining of the optimized driver model. In some embodiments, model update controller 265 may provide a control signal to model training engine 260 to perform model patching instead of a full retraining of the model. For example, model update controller 265 may determine whether a full retraining or a model patching is to be performed based on the predictive accuracy of the optimized driver model. A full retraining may be performed if the predictive accuracy of the optimized driver model falls below a threshold accuracy value.
[140] In embodiments that include a current driver model, model update controller 265 may also control updates of the current driver model. Model update controller 265 may receive input describing a predicted driver action of a current driver generated by the current driver model. Model update controller 265 may also receive input describing
actual driver action taken by the current driver. The actual driver action taken by the current driver may be determined by system 100 based on received world state data.
[141] For example, the world state data may include data describing a speed of vehicle 10 and environmental conditions including rain, lighting and road conditions. The current driver model may generate a predicted driver action of the current driver in relation to a reduction in speed, windshield wiper setting and headlight setting of vehicle 10. Model update controller 265 may receive input describing actual driver action of the current driver in relation to reduction in speed, windshield wiper setting and headlight setting of vehicle 10.
[142] Model update controller 265 may compare the actual driver action with the predicted driver action of the current driver to determine whether the current driver model should be updated. In some embodiments, model update controller 265 may determine that the current driver model should be updated based on a predictive accuracy (e.g., mismatch between predicted and actual state or percentage discrepancy between predicted optimal values and actual values) of the current driver model.
[143] If model update controller 265 determines that the current driver model should be updated, then model update controller 265 may provide a control signal to model training engine 260 to update the current driver model. A full retraining of the current driver model may require significant time and/or computing resources. In some embodiments, a full retraining of the current driver model may be performed at an external computing device (e.g., a cloud-based computing system) that is in network communication with system 100. The external computing device may have higher computational resources, compared with model training engine 260, to perform the full retraining of the current driver model. In some embodiments, model update controller 265 may provide a control signal to model training engine 260 to perform model patching instead of a full retraining of the model. For example, model update controller 265 may determine whether a full retraining or a model patching is to be performed based on the predictive accuracy of the current driver model. A full retraining may be performed if the predictive accuracy of the current driver model falls below a threshold accuracy value.
[144] Reference is now made to FIGS. 3 to 5. FIG. 3 is a flowchart showing an example computer-implemented method 300 of providing a driver action advice to a driver of a vehicle. FIG. 4 shows a dataflow diagram 400 corresponding to an example implementation of method 300. FIG. 5 shows a dataflow diagram 500 corresponding to another example implementation of method 300.
[145] Method 300 may be implemented using any suitable system. For example, method 300 may be implemented using system 100 and reference is also made concurrently to FIGS. 1 and 2 showing system 100 and its components.
[146] Method 300 may be performed at various times. For example, method 300 may be performed in response to input received from an administrator or operator of system 100, an operator of vehicle 10 and/or a fleet owner of a fleet including vehicle 10. Method 300 may also be performed automatically, for example, according to time-based conditions (e.g., regular time intervals, after specified driving duration, a stored driver coaching schedule etc.).
[147] In some embodiments, method 300 may also be performed in response to receiving input world state data meeting specified driver coaching conditions. The driver coaching conditions may be stored, for example, in database 250. For example, the specified driver coaching conditions may include location of vehicle 10 in specified geographical areas, speed of vehicle 10 exceeding a threshold speed, environmental conditions corresponding to a high safety risk, a high priority status of an operation using vehicle 10, a historical driving performance of driver 20 etc.
[148] At 305, method 300 may include receiving a driving optimization objective 405. As described herein above, the driving optimization objective may include a key performance indicator indicating one or more of an operational efficiency, an energy efficiency, a safety risk, a fuel efficiency or a vehicle wear.
[149] At 310, method 300 may include parameterizing an optimized driver model (410) in response to the received driving optimization objective (e.g., procedure 415 shown in FIGS. 4 and 5). As described herein above, the optimized driver model can generate a predicted optimal driver action output in response to a received world state data for the driving optimization objective received at 305. The optimized driver model may generate
different predicted optimal driver action outputs for the same world state data based on different driving optimization objectives. The optimized driver model may also be personalized for a given driver to generate optimal driver action outputs most suitable to a driving behavior of the given driver compared with other candidate optimal driver actions.
[150] At 315, method 300 may include receiving world state data (420). As described herein above, the world state data may be received, for example, from vehicle sensors, engine control unit, vehicle control unit and/or external devices.
[151] At 320, method 300 may include determining a predicted optimal driver action (425) in response to the received world state data based on the optimized driver model parameterized for the received driving optimization objective. As described herein above, the optimized driver model may be personalized for a specific driver (e.g., driver 20) and may generate a predicted optimal driver action that is most suitable to the driving behavior of the specific driver.
[152] At 325, method 300 may include generating driver action advice (430) based on the predicted optimal driver action. For example, the world state data for vehicle 10 may indicate busy traffic conditions and frequent stops of other vehicles located in environment of vehicle 10. At 325, a driver action advice to increase a following distance may be generated based on the predicted optimal driver action provided by the optimized driver model parameterized for a driving optimization objective of reducing vehicle wear.
[153] At 330, method 300 may include providing the generated driver action advice (435) to the driver via a HMI (440). As described herein above, the driver action advice may be provided to the driver using visual, audio and/or haptic signals. For example, the generated driver action advice to increase a following distance may be provided to the driver using a combination of text and graphic symbols displayed on a built-in display of vehicle 10.
[154] In some embodiments, method 300 may include receiving a driver training strategy input specifying one or more driver training criteria. The generated driver action advice may be provided to the driver based on the driver training criteria.
[155] The driver training strategy input may be provided by an administrator or operator of system 100. In some examples, the driver training strategy input may be provided by an employer of driver 20 or a fleet manager of a fleet that includes vehicle 10. In some embodiments, the received driver training strategy input may be stored locally by system 100 (e.g., in database 250).
[156] The driver training criteria may be based on pedagogical criteria. For example, the driver training criteria may specify a ratio of positive to negative feedback provided to a driver. The driver training criteria may also specify a minimum time duration between two successive driver action advice provided to a driver. The minimum time duration may be selected to avoid coaching fatigue for the driver. In some embodiments, the driver training criteria may be customized for each driver. For example, the generated driver action advice may be provided to a driver based on historical data of actual driver action taken by the driver in response to the provided driver action advice.
[157] At 335, method 300 may include updating the optimized driver model (415) based on an actual driver action (445) taken by the driver in response to the driver action advice. For example, as described herein above, model update controller 265 may control (450) update of the optimized driver model based on actual driver action taken by the driver.
[158] Optionally, at 340, method 300 may include generating (505) a driver score (510) based on a comparison of the driver action advice with the actual driver action. For example, a high driver score may indicate high compliance of a driver’s actual actions with the driver action advice provided to the driver. In contrast, a low driver score may indicate low compliance of a driver’s actual actions with the driver action advice provided to the driver.
[159] In some embodiments, historical data of driver scores may be stored, for example, in database 250 or an external storage device in network communication with system 100. The historical data of driver scores may be used, for example, by an employer of the driver to track progress in driving performance of the driver, effectiveness of different driver training criteria in coaching drivers, performance in meeting driving optimization objectives etc.
[160] In some embodiments, historical data of predicted optimal driver actions, predicted current driver actions, actual driver actions and/or key performance indicators may also be stored, for example, in database 250 or an external storage device in network communication with system 100. The historical data may be used, for example, by a fleet manager to provide feedback to a driver regarding their driver actions and the corresponding optimal driver actions after the completion of a trip.
[161] In some embodiments, method 300 may also include displaying the generated driver score on HMI. For example, the generated driver score may be displayed to driver 20 using HMI 30. In some examples, the generated driver score may be displayed to an employer of driver 20 and/or a fleet owner of a fleet including vehicle 10 using a corresponding HMI.
[162] Reference is now made to FIGS. 6 to 8. FIG. 6 is a flowchart showing an example computer-implemented method 600 of providing a driver action advice to a driver of a vehicle. FIG. 7 shows a dataflow diagram 700 corresponding to an example implementation of method 600. FIG. 8 shows a dataflow diagram 800 corresponding to another example implementation of method 600.
[163] Method 600 may be implemented using any suitable system. For example, method 600 may be implemented using system 100 and reference is also made concurrently to FIGS. 1 and 2 showing system 100 and its components.
[164] Method 600 may be performed at various times. For example, method 600 may be performed in response to input received from an administrator or operator of system 100, an operator of vehicle 10 and/or a fleet owner of a fleet including vehicle 10. Method 600 may also be performed automatically, for example, according to time-based conditions (e.g., regular time intervals, after specified driving duration, a stored driver coaching schedule etc.).
[165] In some embodiments, method 600 may also be performed in response to receiving input world state data meeting specified driver coaching conditions. The driver coaching conditions may be stored, for example, in database 250. For example, the specified driver coaching conditions may include location of vehicle 10 in specified geographical areas, speed of vehicle 10 exceeding a threshold speed, environmental
conditions corresponding to a high safety risk, a high priority status of an operation using vehicle 10, a historical driving performance of driver 20 etc.
[166] At 305-320, method 600 may be identical to method 300 described herein above.
[167] At 605, method 600 may include determining a predicted driver action (705) in response to the received world state data based on a current driver model (710). As described herein above, the current driver model may be personalized for the current driver (e.g., driver 20) and may generate a predicted driver action of the current driver.
[168] At 610, method 600 may include generating driver action advice (715) based on comparing the predicted optimal driver action with the predicted driver action. For an example driving scenario of a vehicle approaching a sharp corner, the predicted optimal driver action may be a reduction in speed and execution of the turn with a wide turning radius. If the predicted driver action is a reduction in speed and execution of the turn with a sharp turning radius, method 600 may generate driver advice related to steering control to execute the turn with a wider turning radius. If the predicted driver action is an insufficient reduction in speed and execution of the turn with a wide turning radius, method 600 may generate driver advice related to throttle control to execute the turn with a sufficient reduction in speed.
[169] In some embodiments, method 600 may include receiving a driver training strategy input (720) specifying one or more driver training criteria. The generated driver action advice may be provided to the driver based on the driver training criteria, as described herein above.
[170] At 615, method 600 may include providing the generated driver action advice (725) to the driver via a HMI (730). As described herein above, the driver action advice may be provided to the driver using visual, audio and/or haptic signals.
[171] At 620, method 600 may include updating the optimized driver model (415) and updating the current driver model (745) based on an actual driver action (735) taken by the driver in response to the driver action advice. For example, as described herein above, model update controller 265 may control update (740) of the optimized driver model and the current driver model based on actual driver action taken by the driver.
[172] Optionally, at 625, method 600 may include generating (805) a driver score (810) based on a comparison of the driver action advice with the actual driver action. For example, a high driver score may indicate high compliance of a driver’s actual actions with the driver action advice provided to the driver. In contrast, a low driver score may indicate low compliance of a driver’s actual actions with the driver action advice provided to the driver.
[173] In some embodiments, method 600 may also include displaying the generated driver score on HMI. For example, the generated driver score may be displayed to driver 20 using HMI 30. In some examples, the generated driver score may be displayed to an employer of driver 20 and/or a fleet owner of a fleet including vehicle 10 using a corresponding HMI.
[174] Referring now to FIGS. 1 to 7, one or more embodiments of the disclosed systems and methods may include a generative Al model. In some embodiments, the disclosed systems and methods may include multiple generative Al models. The generative Al model may include any suitable Al model that is capable of generating one or more of text, audio or image data according to a probability distribution. The image data may include individual images and/or videos. The generative Al model may include, for example, a large language model (LLM), a large language and vision model (LLVM), a large language, audio and vision model (LLAVM) etc.
[175] In some embodiments, the generative Al model may be trained for a specific application domain, for example, a driver training or driver assistance application domain. In other embodiments, the generative Al model may not be trained for any specific application domain.
[176] The input data to the generative Al model may include any combination of text, audio, or image data, for example - text only; audio and image; text and audio; text, audio and image etc. In some embodiments, the input data to the generative Al model may include world state data received from vehicle sensors 40 (FIG. 1 ). The input world state data may include any combination of text, audio, or image data. For example, the input world state data may include text data encoding a sequence of vehicle states (e.g., time- stamped vehicle velocity data) and/or a sequence of driver inputs (e.g., time-stamped
vehicle steering wheel angular position data). As another example, the input world state data may include audio data representing vehicle sounds (e.g., vehicle sounds associated with the engine, transmission and/or brakes), human conversations (e.g., driver/passenger commands, feedback etc.) and/or environmental sounds (e.g., emergency vehicle sirens, horn sounds from other vehicles etc.). For input world state data including audio data representing human conversations, the generative Al model may use one or more audio properties (e.g. , tone of voice) to make one or more detections (e.g., a stress level of the speaker). As another example, the input world state data may include image data from camera, radar and/or lidar sensors indicating objects located in environment of the vehicle.
[177] The generative Al model may generate output data that includes any combination of text, audio or image data, for example - audio only; audio and image; text and image; text, audio and image etc. For example, the generative Al model may generate driver action advice in natural language text and/or audio. As another example, the generative Al model may provide a video output to the driver via the HMI advising the driver that the vehicle brakes must be applied.
[178] In some embodiments, the generative Al model may be used to implement an individual functionality. For example, optimized driver model 410 (FIG. 4) may include a generative Al model. The generative Al model can generate a predicted optimal driver action output in response to received world state data input. For example, an LLVM generative Al model may generate predicted optimal driver action outputs in response to input image data (e.g., image data from cameras), input text data (e.g., time-stamped vehicle state data) etc. An input prompt may be used to provide the driving optimization objective to the generative Al model. In some embodiments, the generative Al model may be personalized for a given driver to generate optimal driver action outputs most suitable to a driving behavior of the given driver by tuning the model on driving logs of the given driver. In some embodiments, the generative Al model may be personalized for the given driver by generating text that summarizes the driving behavior of the given driver and providing the generated text to the generative Al model using input prompts. The text
summarizing the driving behavior may be generated by inputting the driving logs of the given driver into a generative Al model (e.g., an LLM).
[179] As another example of the generative Al model being used to implement an individual functionality, current driver model 710 (FIG. 7) may include a generative Al model. The generative Al model can generate a predicted driver action of a current driver as output in response to received world state data input. For example, an LLVM generative Al model may generate predicted driver action of a current driver in response to input image data (e.g., image data from cameras, lidar, radar sensors), input text data (e.g., time-stamped vehicle state data) etc. An input prompt may be used to provide driving behaviors or preferences of a current driver to the generative Al model. In some embodiments, the generative Al model may be personalized for the current driver by tuning the model on driving logs of the current driver. In some embodiments, the generative Al model may be personalized for the current driver by generating text that summarizes the driving behavior of the current driver and providing the generated text to the generative Al model using input prompts. The text summarizing the driving behavior may be generated by inputting the driving logs of the current driver into a generative Al model (e.g., an LLM).
[180] As another example of the generative Al model being used to implement an individual functionality, driver action advice may be generated by a generative Al model. In some embodiments, at 325 of method 300, a LLM may receive a predicted optimal driver action as input and generate an output driver action advice based on the predicted optimal driver action. In some embodiments, at 610 of method 600, a LLM may receive a predicted optimal driver action and a predicted current driver action as input and generate an output driver action advice based on comparing the predicted optimal driver action with the predicted current driver action. In some embodiments, an input prompt may be used to provide a driver training strategy input specifying one or more driver training criteria to the generative Al model. The generative Al model may use the received driver training criteria to generate the driver action advice.
[181] As another example of the generative Al model being used to implement an individual functionality, a driver score may be generated by a generative Al model. In
some embodiments, at 340 of method 300 or at 625 of method 600, a LLM may receive as inputs a driver action advice provided to a driver and an actual driver action of the driver. The LLM may generate a driver score based on a comparison of the driver action advice with the actual driver action.
[182] In some embodiments, the generative Al model may be used to implement a combination of multiple functionalities. The generative Al model may be used to implement any combination of the optimized driver model, the current driver model, driver action advice generation and driver score generation. For example, a single generative Al model (e.g., an LLVM, LLAVM etc.) may be used to implement a combination of the optimized driver model and driver action advice generation functionalities. The generative Al model may receive a world state data input and provide a generated driver action advice as output. Optionally, the generative Al model may also output a predicted optimal driver action. As another example, a single generative Al model (e.g., an LLVM, LLAVM etc.) may be used to implement a combination of the optimized driver model, the current driver model, driver action advice generation and driver score generation functionalities. The generative Al model may receive as inputs world state data, a driving optimization objective, a driver training strategy and an actual driver action. In response, the generative Al model may output a generated driver action advice and a driver score. Optionally, the generative Al model may also output a predicted optimal driver action and a predicted current driver action.
[183] The generative Al models may be pre-trained or may be trained by model training engine 260 (FIG. 2). In various embodiments, the generative Al models may be trained using first training data related to driving scenarios and non-driving scenarios. The first training data may include any combination of text, image and audio data. For example, the generative Al model may be an LLM model and the first training data may include a large corpora of text to train the model to understand language. As another example, the generative Al model may be an LLVM model and the first training data may include a large dataset of images and associated text to train the model to understand language and video inputs. As another example, the generative Al model may be an LLAVM model
and the first training data may include a large dataset of images, audio and associated text to train the model to understand language, audio and video inputs.
[184] The generative Al models training using the first training data may be further trained using second training data where at least a substantial portion of the second training data is related to driving scenarios. In some embodiments, all of the second training data may be related to driving scenarios. The second training data may include any combination of text, image and audio data. The second training data may include driving logs associated with one or more drivers. The driving logs may include multiple driving log data items. Each driving log data item may include a date and timestamp, world state data, driving optimization objective and a driver action performed by the given driver. Optionally, the training data may also include additional data indicating whether the driver action performed by the given driver was an optimal driver action. In some embodiments, the generative Al models may be further trained using reinforcement learning from human feedback (RLHF). The human feedback used during the RLHF may be received from drivers or any other suitable person (e.g., a driving instructor).
[185] The present invention has been described here by way of example only. Various modification and variations may be made to these exemplary embodiments without departing from the spirit and scope of the invention, which is limited only by the appended claims.
Claims
1 . A computer-implemented method of providing a driver action advice to a driver of a vehicle, the method comprising: receiving, by a processor, a driving optimization objective; parameterizing, by the processor, an optimized driver model in response to the received driving optimization objective, wherein the optimized driver model is personalized for a given driver to generate optimal driver action outputs most suitable to a driving behavior of the given driver compared with other candidate optimal driver actions; receiving, by the processor, world state data, wherein at least a portion of the world state data is received from one or more vehicle sensors; determining, by the processor, a predicted optimal driver action in response to the received world state data based on the optimized driver model personalized for the driver; generating, by the processor, the driver action advice based on the predicted optimal driver action; providing, by the processor, the driver action advice to the driver via a human machine interface (HMI); and updating, by the processor, the optimized driver model based on an actual driver action taken by the driver in response to the driver action advice.
2. The method of claim 1 further comprising: determining, by the processor, a predicted driver action in response to the received world state data based on a current driver model; and
updating, by the processor, the current driver model based on the actual driver action, wherein generating the driver action advice includes comparing the predicted optimal driver action with the predicted driver action.
3. The method of claim 1 or claim 2 further comprising, generating, by the processor, a driver score based on a comparison of the driver action advice with the actual driver action.
4. The method of claim 3 further comprising, displaying the driver score on the HMI.
5. The method of any one of claims 1 to 4 further comprising, receiving, by the processor, a driver training strategy input specifying one or more driver training criteria, wherein the driver action advice is provided to the driver based on the one or more driver training criteria.
6. The method of any one of claims 1 to 5, wherein the world state data includes data indicating a state of the vehicle or an environment of the vehicle.
7. The method of any one of claims 1 to 6, wherein the driving optimization objective includes a key performance indicator indicating one or more of an operational efficiency, an energy efficiency, a safety risk, a fuel efficiency or a vehicle wear.
8. The method of any one of claims 1 to 7, wherein the processor updates the optimized driver model based on a comparison of the actual driver action with the predicted optimal driver action.
9. The method of any one of claims 2 to 8, wherein the processor updates the current driver model based on a comparison of the actual driver action with the predicted driver action.
10. The method of any one of claims 1 to 9, wherein the optimized driver model includes a neural network model, a regression tree, a Gaussian process model, a handcrafted logic model, and/or a generative Al model.
11. The method of claim 10, wherein the optimized driver model is trained using reinforcement learning and/or imitation learning.
12. The method of claim 10 or claim 11 , wherein the optimized driver model is trained and personalized for the given driver using driving logs of the given driver.
13. The method of any one of claims 10 to 12, wherein the optimized driver model is trained using driving logs of drivers other than the given driver.
14. The method of any one of claims 2 to 13, wherein the current driver model includes a neural network model, a regression tree, a Gaussian process model, a hand-crafted logic model, and/or a generative Al model.
15. The method of claim 14, wherein the current driver model is trained using inverse reinforcement learning and/or imitation learning.
16. The method of claim 14 or claim 15, wherein the current driver model is trained for the given driver using driving logs of the given driver.
17. The method of any one of claims 14 to 16, wherein the current driver model is trained using driving logs of drivers other than the given driver.
18. The method of any one of claims 14 to 17, wherein the current driver model for the given driver is used as an initial model for training the optimized driver model.
19. The method of any one of claims 1 to 9, wherein the driver action advice is generated by a generative Al model.
20. The method of any one of claims 3 to 9, wherein the driver score is generated by a generative Al model.
21 . The method of any one of claims 3 to 9, wherein the driver action advice and the driver score is generated by a single generative Al model.
22. The method of any one of claims 2 to 9, wherein a single generative Al model includes the optimized driver model and the current driver model.
23. The method of any one of claims 3 to 9, wherein at least one of the driver action advice and the driver score is generated by a generative Al model, and the generative Al model includes at least one of the optimized driver model and the current driver model.
24. The method of any one of claims 10 to 23, wherein input data to the generative Al model includes any combination of text, image and audio data.
25. The method of any one of claims 10 to 24, wherein output data of the generative Al model includes any combination of text, image and audio data.
26. The method of any one of claims 10 to 25, wherein the generative Al model includes a large language model (LLM), a large language and vision model (LLVM) or a large language, audio and vision model (LLAVM).
27. The method of any one of claims 10 to 26, wherein the generative Al model is trained using first training data related to driving scenarios and non-driving scenarios, the first training data including any combination of text, image and audio data.
28. The method of claim 27, wherein the generative Al model is further trained using second training data that includes any combination of text, image and audio data, at least a substantial portion of the second training data related to driving scenarios.
29. The method of any one of claims 10 to 28, wherein one or both of the driving optimization objective and the driver training strategy input are received in an input prompt to the generative Al model.
30. The method of claim 12, wherein the optimized driver model includes the generative Al model and the optimized driver model is personalized for the given driver
using an input prompt to the generative Al model, the input prompt including a text summary of the driving behavior of the given driver.
31 . The method of claim 30, wherein the text summary is generated by a second generative Al model based on the driving logs of the given driver.
32. The method of claim 16, wherein the current driver model includes the generative Al model and the current driver model is personalized for the given driver using an input prompt to the generative Al model, the input prompt including a text summary of the driving behavior of the given driver.
33. The method of claim 32, wherein the text summary is generated by a second generative Al model based on the driving logs of the given driver.
34. A system for providing a driver action advice to a driver of a vehicle, the system comprising: a memory configured to store an optimized driver model, wherein the optimized driver model is personalized for a given driver to generate optimal driver action outputs most suitable to a driving behavior of the given driver compared with other candidate optimal driver actions; and a processor in communication with the memory, the processor being configured to: receive a driving optimization objective; parameterize the optimized driver model in response to the received driving optimization objective; receive world state data, wherein at least a portion of the world state data is received from one or more vehicle sensors;
determine a predicted optimal driver action in response to the received world state data based on the optimized driver model personalized for the driver; generate the driver action advice based on the predicted optimal driver action; provide the driver action advice to the driver via a human machine interface (HMI); and update the optimized driver model based on an actual driver action taken by the driver in response to the driver action advice.
35. The system of claim 34, wherein the memory is further configured to store a current driver model and the processor is further configured to: determine a predicted driver action in response to the received world state data based on the current driver model; and update the current driver model based on the actual driver action, wherein the processor is configured to generate the driver action advice by comparing the predicted optimal driver action with the predicted driver action.
36. The system of claim 34 or claim 35, wherein the processor is further configured to generate a driver score based on a comparison of the driver action advice with the actual driver action.
37. The system of claim 36 wherein the processor is further configured to provide a display of the driver score via the HMI.
38. The system of any one of claims 34 to 37, wherein the processor is further configured to receive a driver training strategy input specifying one or more driver training criteria, wherein the driver action advice is provided to the driver based on the one or more driver training criteria.
39. The system of any one of claims 34 to 38, wherein the world state data includes data indicating a state of the vehicle or an environment of the vehicle.
40. The system of any one of claims 34 to 39, wherein the driving optimization objective includes a key performance indicator indicating one or more of an operational efficiency, an energy efficiency, a safety risk, a fuel efficiency or a vehicle wear.
41 . The system of any one of claims 34 to 40, wherein the processor is configured to update the optimized driver model based on a comparison of the actual driver action with the predicted optimal driver action.
42. The system of any one of claims 35 to 41 , wherein the processor is configured to update the current driver model based on a comparison of the actual driver action with the predicted driver action.
43. The system of any one of claims 34 to 42, wherein the optimized driver model includes a neural network model, a regression tree, a Gaussian process model, a handcrafted logic model, and/or a generative Al model.
44. The system of claim 43, wherein the optimized driver model is trained using reinforcement learning and/or imitation learning.
45. The system of claim 43 or claim 44, wherein the optimized driver model is trained and personalized for the given driver using driving logs of the given driver.
46. The system of any one of claims 43 to 45, wherein the optimized driver model is trained using driving logs of drivers other than the given driver.
47. The system of any one of claims 35 to 46, wherein the current driver model includes a neural network model, a regression tree, a Gaussian process model, a handcrafted logic model, and/or a generative Al model.
48. The system of claim 47, wherein the current driver model is trained using inverse reinforcement learning and/or imitation learning.
49. The system of claim 47 or claim 48, wherein the current driver model is trained for the given driver using driving logs of the given driver.
50. The system of any one of claims 47 to 49, wherein the current driver model is trained using driving logs of drivers other than the given driver.
51 . The system of any one of claims 47 to 50, wherein the current driver model for the given driver is used as an initial model for training the optimized driver model.
52. The system of any one of claims 34 to 42, wherein the processor is configured to generate the driver action advice using a generative Al model.
53. The system of any one of claims 36 to 42, wherein the processor is configured to generate the driver score using a generative Al model.
54. The system of any one of claims 36 to 42, wherein the processor is configured to generate the driver action advice and the driver score using a single generative Al model.
55. The system of any one of claims 35 to 42, wherein a single generative Al model includes the optimized driver model and the current driver model.
56. The system of any one of claims 36 to 42, wherein the processor is configured to generate at least one of the driver action advice and the driver score using a generative Al model, and the generative Al model includes at least one of the optimized driver model and the current driver model.
57. The system of any one of claims 43 to 56, wherein input data to the generative Al model includes any combination of text, image and audio data.
58. The system of any one of claims 43 to 57, wherein output data of the generative Al model includes any combination of text, image and audio data.
59. The system of any one of claims 43 to 58, wherein the generative Al model includes a large language model (LLM), a large language and vision model (LLVM) or a large language, audio and vision model (LLAVM).
60. The system of any one of claims 43 to 59, wherein the generative Al model is trained using first training data related to driving scenarios and non-driving scenarios, the first training data including any combination of text, image and audio data.
61 . The system of claim 60, wherein the generative Al model is further trained using second training data that includes any combination of text, image and audio data, at least a substantial portion of the second training data related to driving scenarios.
62. The system of any one of claims 43 to 61 , wherein one or both of the driving optimization objective and the driver training strategy input are received in an input prompt to the generative Al model.
63. The system of claim 45, wherein the optimized driver model includes the generative Al model and the optimized driver model is personalized for the given driver using an input prompt to the generative Al model, the input prompt including a text summary of the driving behavior of the given driver.
64. The system of claim 63, wherein the text summary is generated by a second generative Al model based on the driving logs of the given driver.
65. The system of claim 49, wherein the current driver model includes the generative Al model and the current driver model is personalized for the given driver using an input prompt to the generative Al model, the input prompt including a text summary of the driving behavior of the given driver.
66. The system of claim 65, wherein the text summary is generated by a second generative Al model based on the driving logs of the given driver.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US202363447229P | 2023-02-21 | 2023-02-21 | |
| PCT/CA2024/050209 WO2024174028A1 (en) | 2023-02-21 | 2024-02-21 | Systems and methods for providing personalized, optimized and predictive driver action advice |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| EP4670149A1 true EP4670149A1 (en) | 2025-12-31 |
Family
ID=92499999
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| EP24759402.1A Pending EP4670149A1 (en) | 2023-02-21 | 2024-02-21 | SYSTEMS AND METHODS FOR PROVIDING PERSONALIZED, OPTIMIZED AND PREDICTIVE DRIVER ACTION ADVICE |
Country Status (2)
| Country | Link |
|---|---|
| EP (1) | EP4670149A1 (en) |
| WO (1) | WO2024174028A1 (en) |
Family Cites Families (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN108688675B (en) * | 2017-03-29 | 2021-06-29 | 马自达汽车株式会社 | Vehicle driving support system |
| KR102370079B1 (en) * | 2020-09-01 | 2022-03-07 | 주식회사 인포카 | Driving support method and apparatus |
-
2024
- 2024-02-21 WO PCT/CA2024/050209 patent/WO2024174028A1/en not_active Ceased
- 2024-02-21 EP EP24759402.1A patent/EP4670149A1/en active Pending
Also Published As
| Publication number | Publication date |
|---|---|
| WO2024174028A1 (en) | 2024-08-29 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US12221101B2 (en) | Automated cruise control system | |
| JP7222868B2 (en) | Real-time prediction of object behavior | |
| US20240419905A1 (en) | Training machine learning models using captured human reasoning | |
| EP3802256B1 (en) | Automated cruise control system to automatically decrease an overall ground vehicle energy consumption | |
| CN115053237B (en) | Method, system, and computer-readable storage medium for predicting vehicle intention | |
| CN110406530B (en) | An automatic driving method, apparatus, apparatus and vehicle | |
| CN111252061A (en) | Real-time decision making for autonomous vehicles | |
| US12499298B2 (en) | Automated generation and refinement of variation parameters for simulation scenarios | |
| US20240202577A1 (en) | Modifying driving logs for training models | |
| US20230222267A1 (en) | Uncertainty Based Scenario Simulation Prioritization and Selection | |
| KR20190106915A (en) | Apparatus and method for providing game service for managing vehicle | |
| CN113665593A (en) | Longitudinal control method and system for intelligent driving of vehicle and storage medium | |
| US11921504B1 (en) | Vehicle controller validation | |
| US20230242153A1 (en) | Customization and safety verification of autonomous vehicle driving behavior | |
| Gusikhin et al. | Intelligent vehicle systems: applications and new trends | |
| JPWO2018173933A1 (en) | Information processing apparatus, traveling data processing method, vehicle, and program | |
| US12280727B2 (en) | Vehicle system and method for adjusting interior control settings based on driver emotion and environmental context | |
| CN117227752A (en) | Vehicle autonomous driving operation control using planning model and cognitive learning model | |
| US11604959B2 (en) | Artificial intelligence-based apparatus and method for providing wake-up time and bed time information | |
| US12552396B1 (en) | Object controller validation | |
| CN119348647B (en) | Autonomous driving control methods, devices, electronic equipment and computer storage media | |
| US20250201247A1 (en) | Method and System to Personalize User Experience in a Vehicle | |
| WO2024174028A1 (en) | Systems and methods for providing personalized, optimized and predictive driver action advice | |
| Neumann | Automated Car Woes---Whoa There! | |
| CN119513401A (en) | Intelligent driving service mode recommendation method, device and electronic equipment |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE INTERNATIONAL PUBLICATION HAS BEEN MADE |
|
| PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: REQUEST FOR EXAMINATION WAS MADE |
|
| 17P | Request for examination filed |
Effective date: 20250922 |
|
| AK | Designated contracting states |
Kind code of ref document: A1 Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC ME MK MT NL NO PL PT RO RS SE SI SK SM TR |