Crowdsourced vehicle history

A system for interacting with data of a vehicle history database includes an interface and a processor. The interface is configured to receive sensor data associated with one or more nearby vehicles. The processor is configured to determine vehicle data associated with the one or more nearby vehicles based at least in part on the sensor data; provide the vehicle data to a vehicle history database; receive vehicle history data associated with the one or more nearby vehicles from the vehicle history database; and indicate a feedback action based at least in part on the vehicle history data.

BACKGROUND OF THE INVENTION

Modern vehicles (e.g., airplanes, boats, trains, cars, trucks, etc.) can include a vehicle event recorder in order to better understand the timeline of an anomalous event (e.g., an accident). A vehicle event recorder typically includes a set of sensors, e.g., video recorders, audio recorders, accelerometers, gyroscopes, vehicle state sensors, GPS (global positioning system), etc., that report data, which is used to determine the occurrence of an anomalous event. Sensor data can then be transmitted to an external reviewing system. This system can improve safety in the long run by identifying unsafe habits of the driver of the vehicle. However, accidents can be caused by other vehicle drivers as well. Safety would be further improved if the system were capable of identifying unsafe habits of other drivers on the road.

DETAILED DESCRIPTION

A system for interacting with data of a vehicle history database is disclosed. The system comprises an interface and a processor. The interface is configured to receive sensor data associated with one or more nearby vehicles. The processor is configured to determine vehicle data associated with the one or more nearby vehicles based at least in part on the sensor data, provide the vehicle data to a vehicle history database, receive vehicle history data associated with the one or more nearby vehicles from the vehicle history database, and indicate a feedback action based at least in part on the vehicle history data. The system for interacting with data of a vehicle history database additionally comprises a memory coupled to the processor and configured to provide the processor with instructions.

The system for interacting with data of a vehicle history database system uses crowdsourcing to acquire vehicle history data. The system comprises a vehicle event recorder that is mounted on or in a vehicle, which includes a set of sensors, a processor for processing sensor data, and communications interface for communicating with a networked vehicle history database. As the vehicle drives among other vehicles, the system adds information to the vehicle history database and receive information from the vehicle history database. The vehicle event recorder captures identifying information associated with nearby vehicles, including license plate number, vehicle make, vehicle model, vehicle color, vehicle options, vehicle damage, vehicle modifications, vehicle decorations, etc. The vehicle event recorder additionally captures safety information associated with the nearby vehicles including anomalous event information (e.g., an indication that the vehicle made contact with a stationary object or another moving vehicle, an indication of stopping quickly, following too close, running red lights, changing lanes without signaling, etc.) and driver quality information (e.g., an indication of a driver safety status—for example, a very dangerous driver indication, a slightly dangerous driver indication, a neutral driver indication, an above average driver indication, a very safe driver indication, an autonomous driver indication, etc.). The vehicle event recorder provides the safety information associated with the vehicle identifying information to the vehicle history database for storage. The vehicle history database stores the information and makes it accessible to future queries. The vehicle history database additionally determines previously stored safety information associated with the vehicle identifying information and provides it to the vehicle event recorder. In the event that the safety information indicates that a nearby vehicle has an unsafe driver or is prone to accidents or hazardous maneuvers, the vehicle event recorder indicates a feedback action (e.g., providing an audio or video warning, changing a vehicle control parameter, etc.).

Multiple vehicles of a vehicle fleet (or multiple vehicle fleets) can contribute to the vehicle history database and receive information from the vehicle history database in this way. Each vehicles can receive safety information collected and provided to the vehicle history database by other vehicles thus aggregating information that is observed on the road. In addition, since the information stored to the vehicle history database comprises only public information associated with vehicles observed in public (e.g., no private information associated with the vehicle performing the observation that is communicating with the vehicle history database), the vehicle history database can combine information from different vehicle fleets or organizations without risk of inappropriately mixing identifying information associated with the organizations or members of the organizations.

FIG. 1is a block diagram illustrating an embodiment of a system including a vehicle event recorder. In the example shown, when vehicle106travels on a public street, vehicle sensors108capture sensor data describing nearby vehicles (e.g., video data, audio data, radar data, lidar data, etc.). The sensor data is received by vehicle event recorder102. Vehicle data is determined based at least in part on the sensor data. Vehicle data is provided by vehicle event recorder102to vehicle data server104via network100, and vehicle history data is received by vehicle event recorder102in response. Vehicle event recorder102then indicates a feedback action, if appropriate, based at least in part on the vehicle history data. The feedback action comprises an indication to a driver (e.g., an audio indication, an indication on a display, etc.), putting vehicle106in a safe driving mode, adjusting an automatic driving control parameter, adjusting event trigger thresholds, etc. In some cases, vehicle event recorder102processes the sensor data prior to sending to vehicle data server104—for example, vehicle event recorder first determines whether the sensor data indicates that there is a nearby occurrence of an anomalous event (e.g., a collision, a tailgating event, a hard braking event, a lane departure event, a swerving event, etc.) and only in the event that there is an anomalous event does vehicle event recorder102provide data to vehicle data server104. In some cases, vehicle event recorder102makes an assessment based on collected data as to the quality of a driver associated with a vehicle is good or bad and provides that assessment to vehicle data server104for storage in a vehicle history database. Depending on the anomalous event type, vehicle event recorder102determines appropriate associated anomalous event data (e.g., video data, image data, etc.) and provides the anomalous event data to the vehicle data server for storage in the vehicle history database. When the received vehicle history database data associated with the nearby vehicles indicates a nearby driver quality or vehicle event recorder102independently determines the nearby driver quality, vehicle event recorder102indicates that the nearby vehicle has associated driver quality (e.g., a bad driver or a good driver indication).

Vehicle event recorder102comprises a vehicle event recorder mounted in a vehicle (e.g., a car or truck). Vehicle event recorder102includes sensors—for example, an accelerometer(s), video camera(s), imaging devices, an audio recorder, a position sensor system (e.g., a satellite position system such as a global position system (GPS)), etc. Vehicle event recorder102is in communication with vehicle sensors108. Vehicle sensors108comprises a set of sensors, for example, one or more video recorders, audio recorders, accelerometers, gyroscopes, vehicle state sensors, proximity sensors, a GPS, outdoor temperature sensors, moisture sensors, laser line tracker sensors, etc. Vehicle state sensors comprise internal vehicle state sensors, for example a speedometer, an accelerator pedal sensor, a brake pedal sensor, an engine revolutions per minute (e.g., RPM) sensor, an engine temperature sensor, a headlight sensor, an airbag deployment sensor, driver and passenger seat weight sensors, an anti-locking brake sensor, traction control system sensors, drive wheel speed sensors, shocks sensors, an engine exhaust sensor, a gear position sensor, a cabin equipment operation sensor, etc. Vehicle event recorder102comprises a system for receiving and processing sensor data. Processing sensor data comprises filtering data, identifying patterns in data, detecting events, etc. Vehicle event recorder102is mounted on vehicle106in any appropriate location, for example the chassis, the front grill, the dashboard, the rear-view mirror, the rear window or wall, the floor, etc. There are times when vehicle event recorder102comprises multiple units mounted in different locations within vehicle106instead of a single unit, particularly when there are space constraints for a given location (e.g., behind the rear view mirror) and more space is required to house electronic components. Vehicle event recorder102comprises a communications system for communicating with network100. Network100comprises a network for communications. Network100comprises one or more of a wireless network, a wired network, a cellular network, a Code Division Multiple Access (CDMA) network, a Global System for Mobile Communication (GSM) network, a Long-Term Evolution (LTE) network, a Universal Mobile Telecommunications System (UMTS) network, a Worldwide Interoperability for Microwave Access (WiMAX) network, a Dedicated Short-Range Communications (DSRC) network, a local area network, a wide area network, the Internet, etc. There are instances when network100comprises multiple networks, for instance, multiple interconnected networks spanning different regions, networks operating at different times, overlaid networks with different access permissions, bandwidth, etc. Different networks comprising network100typically comprise different bandwidth cost (e.g., a wired network has a very low cost, a wireless Ethernet connection has a moderate cost, a cellular data network has a high cost). In some embodiments, network100has a different cost at different times (e.g., a higher cost during the day and a lower cost at night). Vehicle event recorder102communicates with vehicle data server104via network100.

FIG. 2is a block diagram illustrating an embodiment of a vehicle event recorder. In some embodiments, vehicle event recorder200ofFIG. 2comprises vehicle event recorder102ofFIG. 1. In the example shown, vehicle event recorder200monitors sensor signals from internal sensors216(e.g., accelerometer218or global position sensor (GPS)220) or from vehicle sensors via vehicle interface208. Sensor data is processed using vehicle information determiner224to determine information about vehicles nearby. Sensor data is also processed using event detector228to determine events associated with vehicles nearby. Events and vehicle information are stored in data storage214via storage interface204along with relevant raw data from sensors. Events, vehicle information, and relevant raw data from sensors is transferred to a vehicle history database of a vehicle data server. The vehicle data server identifies data associated with the nearby vehicles and provides the data back to vehicle event recorder200. In the event that data associated with nearby vehicles warrants it, feedback action indicator226of processor222indicates to a driver of the vehicle via human interface206a warning associated with a nearby vehicle. Feedback action indicator226also indicates to event detector228or vehicle information determiner224changes in detection thresholds (e.g., more sensitive thresholds for vehicles with bad behavior indications, less sensitive thresholds for vehicles with good behavior indications, etc.).

Vehicle event recorder200communicates with a vehicle data server using network interface210(e.g., using a wired or wireless network such as a WiFi™ or cellular network). Vehicle event recorder200transmits sensor data, vehicle data, vehicle identification data, anomalous event data, driver quality data, etc. to the vehicle data server. Vehicle event recorder200receives vehicle history data from the vehicle data server in response to vehicle data. Feedback action indicator216determines and indicates a feedback action based at least in part on the vehicle history data. Vehicle event recorder200comprises interface202. Interface202comprises a set of interfaces to other systems. Human interface206comprises an interface to a human interaction system—for example, an audio output (e.g., a speaker), a display output, etc. Sensor interface212comprises an interface to one or more sensors for receiving sensor data. Sensor interface212comprises an interface to one or more vehicle event recorder sensors. In various embodiments, vehicle event recorder sensors comprise an exterior video camera, an exterior still camera, an interior video camera, an interior still camera, a microphone, an accelerometer, a gyroscope, an outdoor temperature sensor, a moisture sensor, a laser line tracker sensor, or any other appropriate sensors. Vehicle interface208interfaces with vehicle state sensors possibly including a speedometer, an accelerator pedal sensor, a brake pedal sensor, an engine revolutions per minute (RPM) sensor, an engine temperature sensor, a headlight sensor, an airbag deployment sensor, driver and passenger seat weight sensors, an anti-locking brake sensor, shocks sensors, an engine exhaust sensor, a gear position sensor, a turn signal sensor, a cabin equipment operation sensor, or any other appropriate vehicle state sensors. In some embodiments, vehicle interface208comprises a connection to a vehicle bus such as an on-board diagnostics (OBD) bus (e.g., society of automotive engineers (SAE) J1939, J1708/J1587, OBD-II, CAN BUS, etc.). In some embodiments, vehicle event recorder200communicates with vehicle state sensors via the OBD bus.

Vehicle interface208further comprises an interface to one or more vehicle systems (e.g., for adjusting vehicle control parameters, for putting the vehicle in a safe mode, for adjusting an automatic driving control parameter, etc.). Network interface210comprises a network interface for communicating with other systems via a network. Network interface210comprises one or more of a GSM interface, a CDMA interface, an LTE interface, a WiFi interface, an Ethernet interface, a Universal Serial Bus (USB) interface, a Bluetooth™ interface, an Internet interface, etc. Processor222comprises a processor for controlling the operations of vehicle event recorder200, for reading and writing information on data storage214, for reading and/or writing data via interface202, etc. Processor222comprises vehicle information determiner224for determining vehicle information from data. Vehicle information comprises vehicle identifying information, an anomalous event indication, a driver quality indication, etc. Feedback action indicator226comprises a feedback action indicator for determining and indicating a feedback action based on vehicle history information. Data storage214comprises a data storage (e.g., a random access memory (RAM), a read only memory (ROM), a nonvolatile memory, a flash memory, a hard disk, or any other appropriate data storage). Data storage214comprises a data storage for storing instructions for processor222, vehicle event recorder data, vehicle event data, sensor data, video data, driver scores, vehicle information, vehicle identifying information, anomalous event information, driver quality information, etc.

FIG. 3is a block diagram illustrating an embodiment of a vehicle data server. In some embodiments, vehicle data server300ofFIG. 3comprises vehicle data server104ofFIG. 1. In the example shown, vehicle data server300receives via a communications network using interface302vehicle data information including event data, vehicle information, and raw data associated with vehicles nearby a vehicle that has a mounted vehicle event recorder. The vehicle data information is added to vehicle history database306and indexed using vehicle identification data index308. Processor304is used to identify driver quality or anomalous events associated with each of the nearby vehicles and then return an indication or other relevant data back to the vehicle that sent the vehicle information data. Driver quality or anomalous events are also stored in vehicle history database306associated with vehicle identification data as well as vehicle data. The indication is used by the vehicle event recorder that sent the vehicle information data to adjust settings of the vehicle event recorder and to indicate to the driver of the vehicle warnings. Also, the vehicle event recorder can inform the associated vehicle that adjustments be made to vehicle systems (e.g., autonomous systems, braking systems, etc.) adjusting triggers or other systems based on the indication. For example, if a nearby vehicle is indicated to make sudden stops then the driver can be warned in the event that the vehicle is in front of the driver's vehicle, if a vehicle is indicated to make sudden lane changes then the driver can be warned in the event that the vehicle is beside or in front of the vehicle in a neighboring lane, etc.

Vehicle data server300comprises interface302for communicating with a network and processor304for processing data, determining vehicle identification data from sensor data, providing commands to interface302and vehicle history database306, etc.

Vehicle history database306comprises vehicle identification data index308and vehicle history data310. Vehicle identification data index308comprises an index for accessing data from vehicle history data310. Vehicle history data312comprises anomalous event data312and driver quality data314. Anomalous event data312comprises a set of anomalous event indications and/or anomalous event summary data. Anomalous event indications comprise indications of vehicle accident events, hazardous driving events, illegal driving events, near miss events, etc. Anomalous event summary data comprises indications derived from anomalous event indications—for example, a driver follows too close indication, a driver likely to shift lanes without signaling indication, driver stops suddenly indication, etc. Driver quality data comprises data indicating a driver quality level—for example, very dangerous driver indication, a slightly dangerous driver indication, a neutral driver indication, an above average driver indication, a very safe driver indication. The driver quality indication can additionally comprise an autonomous driver indication.

FIG. 4is a diagram illustrating an embodiment of a vehicle identification data determination. In some embodiments, a vehicle identification data determination is performed by a vehicle event recorder (e.g., vehicle event recorder102ofFIG. 1). In the example shown, vehicle402is driving on a freeway and identifies vehicle identification data describing three other vehicles on the same freeway. Identification of vehicle identification data is performed by analyzing data from one or more cameras mounted on vehicle402. In the example shown, video data of vehicle400is analyzed and used to determine that vehicle400comprises a red Toyota Corolla including a dent on its front right corner. When data processing, storage, and bandwidth constraints permit, data describing the dent size, shape and location is additionally determined and stored. Video data of vehicle404is analyzed and used to determine that the license plate number of vehicle404is California plate JIN602. If possible, the color, make, and model of vehicle404are also determined. Video data of vehicle406is analyzed and used to determine that vehicle406comprises a brown Buick Regal with22stickers on its rear bumper. When data processing, storage, and bandwidth constraints permit, image data of the stickers and data describing their location are additionally determined and stored. This vehicle identification data is stored by the vehicle event recorder and provided via a network to a vehicle data server comprising a vehicle history database. In the event vehicle history data associated with any of the vehicles (e.g., vehicle400, vehicle404, or vehicle406) is determined, the associated vehicle history data is provided to the vehicle event recorder via the network. In the event an anomalous event or a driver quality indication is observed associated with any of the vehicles, the anomalous event or a driver quality indication is provided associated with the vehicle identification data for storage in the vehicle history database.

FIG. 5is a diagram illustrating an embodiment of vehicle history data. In some embodiments, the vehicle history data shown inFIG. 5comprises vehicle history data received from a vehicle history database in response to vehicle identification data. In some embodiments, the diagram ofFIG. 5comprises a visual display of vehicle history data for presentation to a driver (e.g., a display on a vehicle mounted video display, a heads-up display, etc.). In the example shown, vehicle history data comprises vehicle history data provided to the driver of vehicle502describing the history of surrounding vehicles. Vehicle history data indicates that vehicle500has had three accidents in the last year, that vehicle504typically changes lanes without signaling, and that vehicle506comprises a vehicle with a safe driver.

FIG. 6is a flow diagram illustrating an embodiment of a process for interacting with data of a vehicle history database. In some embodiments, the process ofFIG. 6is executed by a vehicle event recorder (e.g., vehicle event recorder102ofFIG. 1). In the example shown, in600, sensor data associated with one or more nearby vehicles is received. In602, vehicle data based at least in part on the sensor data is determined. For example, vehicle data associated with the one or more nearby vehicles is determined based at least in part on the sensor data. In604, the vehicle data is provided to a vehicle history database. In606, vehicle history data is received. For example, vehicle history data associated with the one or more nearby vehicles is received from the vehicle history database. In608, a feedback action is indicated based at least in part on the vehicle history data.

In some embodiments, data collection information is additionally received. For example, data collection information indicates a frequency of data collection, a type of data to collect, a location for data collection, or one or more of vehicles for data collection.

FIG. 7is a flow diagram illustrating an embodiment of a process for adding data to a vehicle history database. In some embodiments, the process ofFIG. 7is executed by a vehicle event recorder (e.g., vehicle event recorder102ofFIG. 1). In the example shown, sensor data associated with one or more nearby vehicles is received. In702, it is determined whether sensor data indicates an anomalous event (e.g., an accident, a hazardous maneuver, an illegal maneuver, an event indicating driver distraction, etc.). In the event it is determined that sensor data does not indicate an anomalous event, control passes to708. In the event it is determined that sensor data indicates an anomalous event, control passes to704. In704, anomalous event data is determined based at least in part on the sensor data. For example, anomalous event data comprises data indicating a vehicle tailgating, data indicating a vehicle running a red light, data indicating a vehicle changing lanes without signaling, data indicating a vehicle causing an accident, data indicating a vehicle speeding, data indicating a vehicle hard cornering, data indicating a vehicle abruptly braking, data indicating a vehicle cutting off other vehicles, data indicating a vehicle at an unusual location, data indicating a vehicle weaving, etc. In706, the anomalous event data is provided to the vehicle history database. In708, driver quality data is determined based at least in part on the sensor information. For example, the driver quality data comprises a very dangerous driver indication, a slightly dangerous driver indication, a neutral driver indication, an above average driver indication, a very safe driver indication, or an autonomous driver indication. In710, the driver quality data is provided to the vehicle history database.

FIG. 8is a flow diagram illustrating an embodiment of a process for determining vehicle data based at least in part on sensor data. In some embodiments, the process ofFIG. 8implements602ofFIG. 6. In the example shown, in800, it is determined whether to provide sensor data or vehicle identification data to a vehicle history database. Vehicle identification data is provided when data processing constraints allow vehicle information to be determined from sensor data by the vehicle event recorder (e.g., when the vehicle event recorder is powerful enough). In the event it is determined to provide sensor data to the vehicle history database, control passes to802. In802, the process indicates that the vehicle data comprises the sensor data, and the process ends. In800, in the event it is determined to provide vehicle identification data to the vehicle history database, control passes to804. In804, vehicle identification data based at least in part on the sensor data is determined. For example, vehicle identification data comprises vehicle make data, vehicle model data, vehicle color data, license plate data, vehicle damage data, vehicle decoration data, vehicle option data, or vehicle modification data. In806, the process indicates that vehicle data comprises the vehicle identification data, and the process ends.

In some embodiments, vehicle identification data and sensor data are both provided to a vehicle data server.

FIG. 9is a flow diagram illustrating an embodiment of a process for indicating a feedback action based at least in part on history data. In some embodiments, the process ofFIG. 9implements608ofFIG. 6. In the example shown, in900, an audio indication of history data is provided. In902, history data is indicated on a display. For example, history data is indicated on a dash mounted display, on a heads-up display, etc. In904, a vehicle is put in safe driving mode. In906, an automated driving control parameter is adjusted. In some embodiments, a subset of the steps ofFIG. 9are executed. For example, one of the steps ofFIG. 9is executed, two of the steps ofFIG. 9are executed, etc.

FIG. 10is a flow diagram illustrating an embodiment of a process for providing vehicle history information. In some embodiments, the process ofFIG. 10is executed by a vehicle data server (e.g., vehicle data server104ofFIG. 1). In the example shown, in1000, vehicle data is received. For example, sensor data regarding nearby vehicles is received from internal and vehicle associated sensors. In1002, vehicle identification data is determined, if appropriate. For example, vehicle identification data is determined in the event that a vehicle event recorder has sufficient processing power and the vehicle data comprises sensor data. In1004, vehicle identification data is provided to the vehicle history database. For example, a vehicle event recorder sends data to a vehicle data server. In1006, vehicle history data is received from the vehicle history database. For example, vehicle history data comprises previously observed anomalous event data or driver quality data (e.g., previously observed by a vehicle event recorder and transmitted to the vehicle data server). Vehicle history information additionally comprises derived vehicle history information. For example, derived vehicle history information comprises an indication of a vehicle likely to drive recklessly, a vehicle likely to tailgate, a vehicle likely to speed, a vehicle likely to change lanes without signaling, a vehicle likely to cause an accident, etc. In1008, vehicle history data is provided. For example, a driver is provided with vehicle history data via a human interface (e.g., a display, an audio interface, etc.).

FIG. 11is a flow diagram illustrating an embodiment of a process for adding vehicle history information to a vehicle history database. In some embodiments, the process ofFIG. 11is executed by a vehicle data server (e.g., vehicle data server104ofFIG. 1). In the example shown, in1100, vehicle data is received. For example vehicle data comprises vehicle identification data, anomalous event data, driver quality data, etc. In1102, vehicle data is stored in a vehicle history database. In1104, derived vehicle history data is determined. For example, derived vehicle history data comprises data derived from vehicle data stored in the vehicle history database (e.g., by combining multiple stored anomalous events to determine a driver tendency, by averaging driver quality data to determine an average driver quality, etc.). In1106, the derived vehicle history data is stored in the vehicle history database.

In some embodiments, a collection of data associated with an identified nearby vehicle is determined and located in the vehicle history database and provided back to a vehicle. In some embodiments, data associated with a plurality of nearby vehicles is identified and provided back to the vehicles.