SYSTEM, SERVER, DEVICE AND METHOD FOR TRAINING AND USING NEURAL NETWORKS FOR PREDICTION OF VEHICLE BRAKING DISTANCE
20230242129 · 2023-08-03
Inventors
Cpc classification
B60W50/14
PERFORMING OPERATIONS; TRANSPORTING
B60T2210/36
PERFORMING OPERATIONS; TRANSPORTING
G08G1/096758
PHYSICS
B60W2555/20
PERFORMING OPERATIONS; TRANSPORTING
B60W2554/804
PERFORMING OPERATIONS; TRANSPORTING
G08G1/096775
PHYSICS
B60W50/0097
PERFORMING OPERATIONS; TRANSPORTING
B60W30/0956
PERFORMING OPERATIONS; TRANSPORTING
B60T8/18
PERFORMING OPERATIONS; TRANSPORTING
B60W30/0953
PERFORMING OPERATIONS; TRANSPORTING
G08G1/096725
PHYSICS
G08G1/166
PHYSICS
G08G1/0129
PHYSICS
International classification
B60W50/00
PERFORMING OPERATIONS; TRANSPORTING
B60W50/14
PERFORMING OPERATIONS; TRANSPORTING
Abstract
A method and system for training a neural network for predicting braking distance of a vehicle. The method comprises performing one or more training stages for the neural network in the vehicle, a first set of weights and biases received from a server is used as an initial set of weights and biases for the neural network during a first training stage; updating the set of weights and biases of the neural network after every training stage and sending the updated set of weights and biases of the neural network to the server after a certain number of training stages have been performed.
Claims
1. A method performed in a device comprised in a vehicle for training a neural network for predicting braking distance of the vehicle, wherein the vehicle is an ith vehicle of a group of vehicles in which a neural network for predicting braking distance is under training, the method comprising: performing one or more training stages for the neural network in the ith vehicle, wherein during a first training stage, a first set of weights and biases received from a server is used as an initial set of weights and biases for the neural network in the ith vehicle; updating the set of weights and biases of the neural network in the ith vehicle after every training stage; and sending the updated set of weights and biases of the neural network in the ith vehicle to the server after a certain number of training stages have been performed.
2. The method of claim 1, wherein performing one or more training stages for the neural network and updating the set of weights and biases of the neural network in the ith vehicle after every training stage comprises: during the first training stage: receiving from the server a first set of weights and biases for the neural network; collecting a first set of values related to status of the vehicle for a first braking occasion; calculating an actual braking distance based on the first set of values for the first braking occasion; predicting a braking distance by the neural network using the first set of weights and biases received from the server as an initial set of weights and biases of the neural network in the ith vehicle and a selected set of the first set of values as training input data to the neural network; and updating the initial set of weights and biases of the neural network in the ith vehicle to a first set of weights and biases of the neural network in the ith vehicle after the first training stage based on comparing the predicted braking distance by the neural network with the calculated actual braking distance for the first braking occasion; and during a second training stage: collecting a second set of values related to status of the vehicle for a second braking occasion; calculating an actual braking distance based on the second set of values for the second braking occasion; predicting a braking distance by the neural network using the first set of weights and biases of the neural network in the ith vehicle and a selected set of the second set of values as training input data to the neural network; and updating the first set of weights and biases of the neural network in the ith vehicle to a second set of weights and biases of the neural network in the ith vehicle after the second training stage based on comparing the predicted braking distance by the neural network with the calculated actual braking distance for the second braking occasion.
3. The method of claim 1, further comprising: performing further trainings for the neural network using a second set of weights and biases received from the server as an initial set of weights and biases of the neural network in the ith vehicle, wherein the second set of weights and biases received from the server are generated by the server based on a number of updated sets of weights and biases received from the group of vehicles in which a neural network for predicting braking distance is under training.
4. The method of claim 2, wherein the first and second sets of values related to status of the vehicle comprise any combinations of the following parameters: vehicle weight and load; vehicle relative velocity to a preceding vehicle; vehicle relative acceleration to a preceding vehicle; distance to a preceding vehicle; the time points when the first braking occasion starts and finishes; the velocities of the vehicle at the time points of the first braking occasion starts and finishes; tire pressure; road and weather conditions e.g. the roughness of the road and temperature etc.; positions of the vehicle when the first braking occasion starts and finishes; tire rotational speed; and wherein the selected set of the first and second sets of values comprises the following parameters: vehicle weight and load; vehicle relative velocity to a preceding vehicle; vehicle relative acceleration to a preceding vehicle; and distance to a preceding vehicle.
5. A device comprising a processor comprising a neural network for predicting braking distance, one or more sensors for collecting a set of values related to status of the vehicle and a transceiver module for communicating with a server, wherein the device is configured to perform the method of claim 1.
6. A method performed in a server for training a neural network for predicting braking distance for a group of vehicles, the method comprising: sending a first set of weights and biases to a group of vehicles in which a neural network for predicting braking distance is under training; receiving a number of updated sets of weights and biases from the group of vehicles after each vehicle has performed a certain number of training stages; generating a second set of weights and biases based on the number of updated sets of weights and biases received from the group of vehicles; and sending the second set of weights and biases to the group of vehicles for performing further trainings of the neural network in each vehicle.
7. The method of claim 6, wherein generating a second set of weights and biases based on the number of updated sets of weights and biases received from the group of vehicles comprises: aggregating the number of updated sets of weights and biases received from the group of vehicles and calculating the second set of weights and biases by using Federated Averaging, FedAvg, algorithm, or Federated Proximal, FedProx, algorithm.
8. A server configured to perform the method of claim 6.
9. A method for training a neural network for predicting braking distance for a group of vehicles, the method comprising: sending by a server a first set of weights and biases to the group of vehicles in which a neural network for predicting braking distance is under training; receiving by each vehicle the first set of weights and biases for the neural network; performing in each vehicle one or more training stages for the neural network for predicting braking distance, wherein during a first training stage, the first set of weights and biases is used as an initial set of weights and biases of the neural network; updating in each vehicle a set of weights and biases of the neural network after every training stage; sending by each vehicle the updated set of weights and biases to the server after a certain number of training stages have been performed; receiving by the sever a number of updated sets of weights and biases from the group of vehicles; generating by the server a second set of weights and biases based on the number of updated sets of weights and biases received from the group of vehicles; sending by the server the second set of weights and biases to the group of vehicles; receiving by each vehicle the second set of weights and biases; and performing in each vehicle further trainings for the neural network using the second set of weights and biases as an initial set of weights and biases for the neural network.
10. A system for training a neural network for predicting braking distance for vehicles, wherein the system comprises a server and a number of vehicles, and wherein each vehicle comprises a processor comprising a neural network for predicting braking distance, one or more sensors for collecting a set of values related to status of the vehicle and a transceiver module for communicating with the server, and wherein: the server is configured to send a first set of weights and biases to a group of vehicles in which a neural network for predicting braking distance is under training; each vehicle is configured to: receive the first set of weights and biases for the neural network from the server; perform one or more training stages for the neural network for predicting braking distance, wherein during a first training stage, the first set of weights and biases is used as an initial set of weights and biases for the neural network; update a set of weights and biases for the neural network after every training stage; and send the updated set of weights and biases to the server after a certain number of training stages have been performed; and the server is further configured to: receive a number of updated sets of weights and biases from the group of vehicles; generate a second set of weights and biases based on the number of updated sets of weights and biases received from the group of vehicles; and send the second set of weights and biases to the group of vehicle; and each vehicle is further configured to: receive the second set of weights and biases; and perform further trainings for the neural network using the second set of weights and biases as an initial set of weights and biases for the neural network.
11. A method performed in a device comprised in a vehicle for predicting braking distance of the vehicle, wherein the vehicle is an ith vehicle of a group of vehicles in which a neural network for predicting braking distance is under training, the method comprising: performing one or more training stages for a neural network comprised in the vehicle for predicting braking distance, wherein during a first training stage, a first set of weights and biases received from a server is used as an initial set of weights and biases for the neural network; updating a set of weights and biases for the neural network after every training stage; sending the updated set of weights and biases to the server after a certain number of training stages have been performed; receiving a second set of weights and biases from the server, wherein the second set of weights and biases is generated by the server based on a number of updated sets of weights and biases received from the group of vehicles in which a neural network for predicting braking distance is under training; performing further trainings for the neural network using the second set of weights and biases as an initial set of weights and biases for the neural network; and predicting a braking distance of the vehicle using the trained neural network when a predefined condition is fulfilled or a certain situation is occurred.
12. The method of claim 11, wherein the predefined condition or certain situation comprises: when a braking pedal of the vehicle is pushed or moved; when a gas pedal of the vehicle is released; when a velocity of the vehicle is larger than a velocity of a proceeding vehicle; when a relative velocity of the vehicle to a proceeding vehicle is larger than a relative velocity threshold; when a relative acceleration of the vehicle to a proceeding vehicle is larger than a relative acceleration threshold; when an acceleration of the vehicle is larger than an acceleration threshold; when a distance to a preceding vehicle is below a separation distance threshold; when a predefined timer expired; and/or when the weather situation fulfils a predefined condition.
13. The method of claim 12, further comprising providing a signal or an alert to a driver for potential collision warning or to a control system of the vehicle based on the predicted braking distance and the distance to the preceding vehicle.
14. A vehicle comprising the device of claim 5.
15. A computer program comprising program code means for performing the steps of claim 1 when the program is run on a computer.
16. A computer readable medium carrying a computer program comprising program code means for performing the steps of claim 1 when the program product is run on a computer.
17. A computer program comprising program code means for performing the steps of claim 6 when the program is run on a computer.
18. A computer readable medium carrying a computer program comprising program code means for performing the steps of claim 6 when the program product is run on a computer.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0029] Examples of embodiments herein are described in more detail with reference to attached drawings in which:
[0030]
[0031]
[0032]
[0033]
DETAILED DESCRIPTION
[0034]
[0035] A centralized cloud service is running in the server/cloud 110, e.g. a Telematics server or cloud. The service is responsible for distributing, receiving, aggregating and calculating parameters for the NN used in every connected vehicle. Some well-known algorithms such as Federated Averaging (FedAvg) algorithm or Federated Proximal (FedProx) algorithm can be used for parameters aggregation and calculation of new parameters.
[0036] Vehicles may be connected with each other and to the server/cloud 110. A telematics system includes a vehicle tracking device may be installed in a vehicle that allows sending, receiving and storing of data. The telematics system connects via the vehicle's own onboard diagnostics (ODB) or a Controller Area Network Bus (CAN-BUS) port with a subscriber identification module (SIM) card, and an onboard modem enables communication through a wireless network, e.g. 4G, 5G or New Radio (NR) mobile data and cellular network or satellite communication to the centralized server/cloud 110.
[0037] According to embodiments herein, each vehicle receives a set of weights and biases W, B, i.e. the training parameters for the neural network NN from the server/cloud 110 and uses the set of weights and biases W, B as an initial set of weights and biases for training the neural network, which may be expressed as:
Y=Σ(W*Input)+B
[0038] Where, Y represents the output of the neural network, i.e. the predicted braking distance, Input represents training data.
[0039] When the relative speed of a vehicle to a preceding vehicle is larger than 0 and the vehicle starts to brake, a braking occasion is occurred. A set of training data related to status of the vehicle is sampled for the braking occasion with the actual braking distance as the label. That is the actual brake distance is used as a reference to train the NN. An actual brake distance may be calculated or recorded for each braking occasion.
[0040] Each vehicle continuously performs predicting a braking distance using its NN for each braking occasion, computing the loss or difference between the predicted and actual braking distance, training its NN by updating the set of weights and biases W, B to decrease the loss. After a number of trainings, each vehicle uploads its updated set of weights and biases W.sub.1, B.sub.1, W.sub.2, B.sub.2, . . . W.sub.i, B.sub.i . . . to the server/cloud 110, where W.sub.i, B.sub.i represents the updated set of weights and biases of the NN in the ith vehicle Vi.
[0041] The server/cloud 110 aggregates the number of updated sets of weights and biases W.sub.1, B.sub.1, W.sub.2, B.sub.2, . . . W.sub.i, B.sub.i . . . received from a number of vehicles V1, V2, . . . Vi, . . . and generates a new set of weights and biases. The new set of weights and biases are distributed to the number of vehicles V1, V2, . . . Vi, . . . for further training the NN or for prediction of braking distance using the trained neural network.
[0042] A method performed in the system 100 for training neural networks for predicting braking distance for a group of vehicles V1, V2, . . . Vi, . . . will be described in detail with reference to
[0043] Action 210
[0044] The server/cloud 110 sends a first set of weights and biases W.sup.1, B.sup.1 to a number of vehicles V1, V2, . . . Vi, . . . in which a neural network NN for predicting braking distance is under training. The number of vehicles V1, V2, . . . Vi, . . . may be any type of vehicles, e.g. trucks, buses, motorcycles, cars etc. Different types of vehicles, braking performances may be different. For training the NNs in different types of vehicles, similar type of vehicles may be grouped together to a group. For example, all types of heavy trucks may be grouped to a group of vehicles V1, V2, . . . Vi, . . . in which neural networks NN for predicting braking distance are under training or all type of light trucks may be grouped to a group of vehicles V1, V2, . . . Vi, . . . in which neural networks NN for predicting braking distance are under training.
[0045] Action 220
[0046] Each vehicle, e.g. the ith vehicle Vi, receives the first set of weights and biases W.sup.1, B.sup.1 for the neural network.
[0047] Action 222
[0048] Each vehicle performs one or more training stages for the neural network for predicting braking distance. During a first training stage, a set of weights and biases, e.g. the first set of weights and biases W.sup.1, B.sup.1 received from the server/cloud 110 is used as an initial set of weights and biases W.sub.i.sup.0, B.sub.i.sup.0 for the neural network in e.g. the ith vehicle Vi.
[0049] Action 224
[0050] Each vehicle updates a set of weights and biases, e.g. the set of weights and biases W.sub.i, B.sub.i of the neural network in the ith vehicle Vi, after every training stage.
[0051] Action 226
[0052] Each vehicle sends the updated set of weights and biases W.sub.i.sup.n, B.sub.i.sup.n to the server 110 after a certain number n of training stages have been performed, where W.sub.i.sup.n, B.sub.i.sup.n represents the nth updated set of weights and biases of the NN in the ith vehicle Vi.
[0053] Action 230
[0054] The server/cloud 110 receives a number of updated sets of weights and biases W.sub.1.sup.n, B.sub.1.sup.n, W.sub.2.sup.n, B.sub.2.sup.n, . . . W.sub.i.sup.n, B.sub.i.sup.n . . . received from the number of vehicles V1, V2, . . . Vi, . . . .
[0055] Action 232
[0056] The server/cloud 110 generates a second set of weights and biases W.sup.2, B.sup.2, i.e. the new training parameters, based on the number of updated sets of weights and biases W.sub.1.sup.n, B.sub.1.sup.n, W.sub.2.sup.n, B.sub.2.sup.n, . . . W.sub.i.sup.n, B.sub.i.sup.n . . . received from the number of vehicles V1, V2, . . . Vi, . . . .
[0057] The server/cloud 110 may generate the second set of weights and biases W.sup.2, B.sup.2 by aggregation, summation, averaging of the number of updated sets of weights and biases W.sub.1.sup.n, B.sub.1.sup.n, W.sub.2.sup.n, B.sub.2.sup.n, . . . W.sub.i.sup.n, B.sub.i.sup.n . . . received from the number of vehicles V1, V2, . . . Vi, . . . . For example, the server/cloud 110 may generate the second set of weights and biases for a group of trucks by averaging of the number of updated sets of weights and biases W.sub.1.sup.n, B.sub.1.sup.n, W.sub.2.sup.n, B.sub.2.sup.n, . . . W.sub.i.sup.n, B.sub.i.sup.n . . . received from the number of vehicles V1, V2, . . . Vi, . . . grouped in the group of trucks in which the neural networks NN for predicting braking distance are under training. In this way, the NN can be trained more accurately and specifically for a type of vehicles.
[0058] Action 234
[0059] The server/cloud 110 sends the second set of weights and biases W.sup.2, B.sup.2 to the number of vehicles V1, V2, . . . Vi, . . . .
[0060] Action 240
[0061] Each vehicle receives the second set of weights and biases W.sup.2, B.sup.2 from the server/cloud 110.
[0062] Action 242
[0063] Each vehicle performs further trainings for the neural network using the second set of weights and biases W.sup.2, B.sup.2 received from the server/cloud 110 as an initial set of weights and biases W.sub.i.sup.0, B.sub.i.sup.0 for the neural network in the ith vehicle Vi.
[0064] The system 100 continually performs Actions 222-242 until the neural network has been trained, i.e. the loss or difference between the predicted and actual braking distance is below a predefined threshold. The training of the neural network finishes.
[0065] Action 244
[0066] Each vehicle may use the trained neural network to predict braking distance of the vehicle when a predefined condition is fulfilled or a certain situation is occurred.
[0067]
[0068] The one or more sensors 320 is configured to sample or collect training data during actual driving. The one or more sensors 320 may be distributed at different locations in the vehicle Vi and communicate with the device 300 via the transceiver module 330 or the CAN-BUS. The one or more sensors 320 may comprise motion-based sensors to collect motion-based sensor data. The motion-based sensor data may include any data representing physical motion of a vehicle or a component of the vehicle that can be captured by a motion sensor. Motion sensors may include devices such as an accelerometer, gyroscope sensor, compass, barometer, light-emitting diode (LED) motion sensor, ultrasonic motion sensor, infrared motion sensor, or other motion-sensing devices. Motion-based sensor data may include vehicle velocity, vehicle acceleration, vehicle impulse, wheel slippage, and the like. For example, motion-based sensor data can include a motion profile such as an acceleration profile that includes a set of acceleration readings made by an accelerometer over a time period.
[0069] The one or more sensors 320 may sense various other types of information such as locations, vehicle condition or status, distances to objects in the vehicle's environment. The one or more sensors 320 may comprise Light Detection and Ranging (LIDAR), radar, or ultrasonic sensors. In addition, or alternatively, some embodiments may include one or more types of optical cameras, wherein optical cameras may include stereoscopic arrays of cameras or other spatially arrayed arrangements of cameras. The LIDAR, radar, ultrasonic sensors or optical cameras may provide sensor data for the processor 310 to determine e.g. a separate distance to a proceeding vehicle.
[0070] The one or more sensors 320 may comprise one or more temperature sensors e.g., for outdoors temperature, air intake and exhaust, wind speed sensors, road roughness sensors, light intensity sensors, inertia sensors, and the like. Examples further include sensors informing OBD diagnostic state etc.
[0071] The device 300 is configured to perform the method actions 220-226 and 240-244 described above for training and using a neural network for predicting braking distance in a vehicle.
[0072] The device 300 is configured to receive a first set of weights and biases W.sup.1, B.sup.1 for the neural network from the server/cloud 110.
[0073] The device 300 is configured to perform one or more training stages for the neural network for predicting braking distance. During a first training stage, the first set of weights and biases W.sup.1, B.sup.1 received from the server/cloud 110 is used as an initial set of weights and biases W.sub.i.sup.0, B.sub.i.sup.0 of the neural network in the ith vehicle Vi.
[0074] The device 300 is configured to update a set of weights and biases W.sub.i, B.sub.i of the neural network after every training stage and send the updated set of weights and biases W.sub.in, B.sub.i.sup.n to the server/cloud 110 after a certain number n of training stages have been performed.
[0075] The device 300 is further configured to receive a second set of weights and biases W.sup.2, B.sup.2 and perform further trainings for the neural network using the second set of weights and biases W.sup.2, B.sup.2 as an initial set of weights and biases W.sub.i.sup.0, B.sub.i.sup.0 for the neural network.
[0076] The device 300 is further configured to predict a braking distance of the vehicle using the trained neural network when a predefined condition is fulfilled or a certain situation is occurred.
[0077] The embodiments herein may be implemented through one or more processors, such as the processor 310 in the device 300 together with computer program code 350 for performing the functions and actions of the embodiments herein. The program code 350 may also be provided as a computer program product 360, for instance in the form of a computer readable medium or a data carrier carrying computer program code for performing the embodiments herein when being loaded into the electronic device 300. The computer program code may furthermore be provided as pure program code on a server or cloud and downloaded to the device 300.
[0078]
[0079] The device 300 in each vehicle performs one or more training stages for the neural network for predicting braking distance using the training process. The training process comprises the following steps or actions:
[0080] Step 400
[0081] The neural network is in an initial state, i.e., a first set of weights and biases W.sup.1, B.sup.1 is or has been received from the server/cloud 110 and is ready for a first training stage when a first braking occasion is occurred. When a vehicle for the first time joins a fleet, i.e. a group of vehicles V1, V2, . . . Vi, . . . , it may send a request to the server/cloud 110 to provide a set of weights and bias as an initial set of values for its neural network. Upon receiving the request from the vehicle, the server/cloud 110 may reply to the vehicle with its most recent weights and bias values. A braking occasion may be defined as a period from the time point when the relative velocity of a vehicle to a preceding vehicle is larger than 0 and a user starts braking or a braking pedal of the vehicle is pushed until the time point when the relative velocity of the vehicle to the preceding vehicle is 0.
[0082] Step 402
[0083] When the driver pushes a braking pedal of the vehicle or the braking pedal of the vehicle starts to move controlled by a control system of the vehicle, e.g. Forward Collision Warning (FCW) or Forward Collision Avoidance (FCA) system, the one or more sensors 320 e.g. a motion sensor on the braking pedal, senses the push or movement of the braking pedal of the vehicle and a first braking occasion starts. A data sampling or collecting procedure is initiated in the device 300.
[0084] Step 404
[0085] The device 300 starts sampling or collecting a set of values related to status of the vehicle for a first braking occasion by the one or more sensors 320 comprised in the vehicle. The device 300 samples or collects data related to status of the vehicle at the time point when the first braking occasion starts, e.g. the time when the braking starts, the velocity of the vehicle, the relative velocity to a preceding vehicle, the relative acceleration to a preceding vehicle, the distance to a preceding vehicle etc.
[0086] The other data such as the vehicle weight and load, tire pressure, the road and weather conditions e.g. the roughness of the road and temperature etc. may also be collected.
[0087] Step 406
[0088] When the relative velocity of the vehicle Vi to a preceding vehicle is 0, the first braking occasion is considered finished. The device 300 samples or collects data related to status of the vehicle at the time point when the first braking occasion is finished e.g., the time when the braking finishes, the velocity of the vehicle etc.
[0089] A first set of values related to status of the vehicle for the first braking occasion is then collected and provided to the processor 310. The first set of values related to status of the vehicle may comprise any one or any combinations of the following parameters: [0090] a) Vehicle weight and load, i.e. gross vehicle combination weight or the total weight of the vehicle combination; [0091] b) Vehicle relative velocity or speed to a preceding vehicle; [0092] c) Vehicle relative acceleration to a preceding vehicle, i.e. longitudinal relative acceleration to a preceding vehicle; [0093] d) Distance to a preceding vehicle; [0094] e) The time points when the first braking occasion starts and finishes; [0095] f) The velocities of the vehicle at the time points of the first braking occasion starts and finishes; [0096] g) Tire pressure; [0097] h) Road and weather conditions e.g. the roughness of the road and temperature etc.; [0098] i) Positions of the vehicle when the first braking occasion starts and finishes; [0099] j) Tire rotational speed.
[0100] Step 408
[0101] The device 300 calculates in the processor 310, an actual braking distance based on the first set of values for the first braking occasion. A braking distance is the distance a vehicle travels from the point when a driver starts braking or a braking pedal of the vehicle is pushed until the relative velocity of the vehicle to a preceding vehicle is 0.
[0102] The actual braking distance may be calculated based on the velocities of the vehicle at the time points of the first braking occasion starts and finishes and the time duration between the first braking occasion starts and finishes.
[0103] The actual braking distance may also be calculated based on the positions of the vehicle when the first braking occasion starts and finishes, e.g. recorded by a Global Positioning System (GPS) comprised in the vehicle.
[0104] The actual braking distance may also be calculated based on the tire diameter and average rotational speed during the braking occasion.
[0105] Step 410
[0106] The device 300 predicts a braking distance by the neural network using the first set of weights and biases W.sup.1, B.sup.1 as the initial set of weights and biases W.sub.i.sup.0, B.sub.i.sup.0 of the neural network and a selected set of the first set of values as training input data to the neural network.
[0107] The selected set of the first set of values comprises the following parameters: [0108] a) Vehicle weight and load; [0109] b) Vehicle relative velocity to a preceding vehicle; [0110] c) Vehicle relative acceleration to a preceding vehicle; [0111] d) Distance to a preceding vehicle.
[0112] Step 412
[0113] The device 300 trains the neural network through comparing the predicted braking distance by the neural network with the calculated actual braking distance for the first braking occasion.
[0114] Step 414
[0115] The device 300 updates the initial set of weights and biases W.sub.i.sup.0, B.sub.i.sup.0 of the NN to a first set of weights and biases W.sub.i.sup.1, B.sub.i.sup.1 of the neural network in the ith vehicle Vi after the first training stage. The first training stage is completed and the first set of weights and biases W.sub.i.sup.1, B.sub.i.sup.1 of the neural network in the vehicle Vi is used for next training, e.g. a second training stage.
[0116] The device 300 in each vehicle continually performs the training process starting from Step 400 until Step 414 for a certain number of times.
[0117] For example, for the second training stage, the first set of weights and biases W.sub.i.sup.1, B.sub.i.sup.1 of the neural network in the vehicle Vi is used as the initial set of weights and biases W.sub.i.sup.0, B.sub.i.sup.0 for the neural network, and the device 300 performs the following steps:
[0118] Collecting a second set of values related to status of the vehicle for a second braking occasion;
[0119] Calculating an actual braking distance based on the second set of values for the second braking occasion;
[0120] Predicting a braking distance by the neural network using the first set of weights and biases W.sub.i.sup.1, B.sub.i.sup.1 for the neural network in the vehicle Vi and a selected set of the second set of values as training input data to the neural network; and
[0121] Updating the first set of weights and biases W.sub.i.sup.1, B.sub.i.sup.1 to a second set of weights and biases W.sub.1.sup.2, B.sub.i.sup.2 of the neural network in the vehicle Vi after the second training stage based on comparing the predicted braking distance by the neural network with the calculated actual braking distance for the second braking occasion.
[0122] The second set of values related to status of the vehicle comprises the same parameters as the first set of values related to status of the vehicle and the selected set of the second set of values comprises the same parameters as the selected set of the first set of values.
[0123] According to embodiments herein, after the neural network has been trained, the vehicle can use it for predicting a braking distance during actual driving situations to increase safety. When the neural network has been trained, the output from the neural network can be considered to be the safe distance for this type of vehicle during actual driving situations since it reflects the minimum separation distance needed for keeping a safe distance to the preceding vehicle.
[0124] The predicting of a braking distance during driving may be triggered by various ways so that a signal or an alert to a driver or a control system of the vehicle for potential collision warning can be provided.
[0125] The predicting of a braking distance of the vehicle using the trained neural network may be started when a predefined condition is fulfilled, or a certain situation is occurred.
[0126] The following are some example situations: [0127] when a braking pedal of the vehicle is pushed or moved, [0128] when a gas pedal of the vehicle is released, [0129] when a velocity of the vehicle is larger than a velocity of a proceeding vehicle or when a relative velocity of the vehicle to a proceeding vehicle is larger than a relative velocity threshold, e.g. the relative velocity of the vehicle to a proceeding vehicle is larger 0, [0130] when an acceleration of the vehicle is larger than an acceleration threshold or when a relative acceleration of the vehicle to a proceeding vehicle is larger than a relative acceleration threshold, e.g. the relative acceleration of the vehicle to a proceeding vehicle is larger 0, [0131] when a distance to a preceding vehicle is below a separation distance threshold, e.g. a safe distance.
[0132] These situations may imply potential hazard and it may be better to check if the vehicle is keeping a safe distance to a proceeding vehicle by using the trained neural network to predict a braking distance.
[0133] Alternatively, the predicting of a braking distance of the vehicle using the trained neural network may be started regularly, e.g. every half hour, every one hour or every two hours, defined by a predefined timer. When the predefined timer expired, the predicting of a braking distance is started.
[0134] The predicting of a braking distance of the vehicle using the trained neural network may also be started when the weather situation fulfils a predefined condition e.g. when the outdoor temperature is below zero, when it is snowing or raining, or when the windspeed is larger than a threshold and the wind direction is the same as the vehicle's heading direction etc.
[0135] According to embodiments herein, a signal or an alert for potential collision warning may be provided to a driver or a control system, e.g. Forward Collision Warning (FCW) or Forward Collision Avoidance (FCA) system of the vehicle based on the predicted braking distance and the distance to the preceding vehicle, e.g. when the predicted braking distance is smaller than the separation distance to a preceding vehicle.
[0136] To summarize, embodiments herein introduce a server/cloud 110 that process the learnt parameters from many vehicles and then share updated training parameters with many vehicles. Embodiments herein improve the availability of training data in real world since each vehicle may not experience sufficient braking occasions to collect sufficient training data for training its neural network. Deploying a sampling procedure that collects training data during actual driving by a number of vehicles, training data reflecting different braking situations can be collected. Each vehicle can then share its learnt parameters with the server/cloud 110. This distributed and collaborative learning ensures the availability of training data and the centralized cloud service that distributes, aggregates and updates training parameters for all connected vehicles improves training efficiency. The latest well-trained parameters are distributed to vehicles so time of training can be shorter. The neural network trained in this way approximates the actual braking behaviour of vehicles
[0137] The training of neural network takes place locally within a single vehicle, so overloading the server/cloud 110 is avoided.
[0138] Furthermore, by sharing only the learnt parameters, the data privacy of vehicle users can be protected and respected.
[0139] It is to be understood that the present invention is not limited to the embodiments described above and illustrated in the drawings; rather, the skilled person will recognize that many changes and modifications may be made within the scope of the appended claims.
[0140] Embodiments herein can be applied in any type of vehicles, such as cars, trucks, buses heavy-duty vehicles etc.