An aspect of the disclosure relates to a method of detecting overspeeding for a vehicle of a fleet. Another aspect of the disclosure relates to an electronic device for detecting overspeeding for a vehicle of a fleet. Another aspect of the disclosure relates to a system for detecting overspeeding for a vehicle of a fleet.
For some countries, the road systems do not adequately provide legal speed limits which can be used to determine whether drivers of a fleet are over speeding. There may be variations between countries, for example, some countries may have well defined legal speed limits, whereas other countries may lack speed limits, even for highways. Existing solutions work for countries or geographical areas where the map data is enriched with speed limits for highways, local roads and even alleys. However, existing techniques for enriching map data are resource intensive and required manual input. Thus, there is a need to provide for more efficient methods of detecting speeding.
An aspect of the disclosure relates to a method of detecting overspeeding for a vehicle of a fleet. The method may include obtaining historical trajectory data of the fleet of each geographical area of a plurality of geographical areas from an electronic database. The method may include determining, by a microprocessor of a server, a distribution of speed of the historical trajectory data for each geographical area. The method may include, based on the distribution of speed, determining, by a microprocessor of an electronic device associated with the vehicle, that a current speed of the vehicle is above a threshold speed corresponding to a pre-determined percentile of the distribution of speed in a current geographical area in which the current speed may be recorded, which current geographical area corresponds to at least one of said cach geographical area. The server and the electronic database may be communication coupled to each other via a communication interface. Obtaining may include communicating, by the server, an electronic request to the electronic database for the historical trajectory data, and may further include communicating the historical trajectory data from the electronic database to the server via the communication interface.
An aspect of the disclosure relates to a system including a fleet, a server, and a plurality of electronic devices, wherein each device of the plurality of electronic devices may be associated with a vehicle of a fleet, and may include:
An aspect of the disclosure relates to a method of detecting overspeeding for a vehicle of a fleet. The method may include obtaining historical trajectory data of the fleet of cach geographical area of a plurality of geographical areas from an electronic database. The method may include determining, by a microprocessor of a server, a distribution of speed of the historical trajectory data for each geographical area. The method may include training an electronic classifier into a trained classifier based on the distribution of speed, e.g., based on one or more percentiles of the distribution of speed. The server and the electronic database may be communication coupled to each other via a communication interface. Obtaining may include communicating, by the server, an electronic request to the electronic database for the historical trajectory data, and communicating the historical trajectory data from the electronic database to the server via the communication interface. The method may include, calculating, on an electronic device associated with the vehicle a determined probability of future overspeeding, and may further include determining that the determined probability of future overspeeding is higher than a pre-determined threshold.
An aspect of the disclosure relates to an electronic device. The electronic device may include a trajectory data acquisition circuit configured to acquire current trajectory data. The electronic device may include a communication circuit configured to receive pre-trained weights for a trained classifier, for example, from a server. The electronic device may include a processor configured to use the trained classifier configured with the pre-trained weights to calculate, based on the trajectory data, a probability of future overspeeding. The electronic device may further determine if the probability of future overspeeding is higher than a pre-determined threshold.
An aspect of the disclosure relates to a system including a server and a plurality of electronic devices. Each device of the plurality of electronic devices may be associated with a vehicle of a fleet and may be configured according to various embodiments. The server may be configured to obtain historical trajectory data of the fleet of each geographical area of a plurality of geographical areas from an electronic database. The server may be configured to generate pre-trained weights as a result of training the classifier, and may further be configured to upload the pre-trained weights to the electronic device thereby providing the trained classifier on the electronic device.
Aspects of the disclosure relate to a computer program product for each of the methods disclosed herein in accordance with various embodiments, the computer program product including computer executable code including instructions which, when the program may be executed by a computer, cause the computer to carry out the method.
An aspect of the disclosure relates to a non-transitory computer-readable medium storing computer executable code including instructions to obtain current trajectory data from a trajectory data acquisition circuit. The executable code may include instructions to receive pre-trained weights for a trained classifier, e.g., from a server, via a communication circuit configured. The executable code may include instructions to configure a classifier with the pre-trained weights into a trained classifier. The executable code may include instructions to calculate, using the trained classifier and based on the trajectory data, a probability of future overspeeding.
The invention will be better understood with reference to the detailed description when considered in conjunction with the non-limiting examples and the accompanying drawings, in which:
The following detailed description refers to the accompanying drawings that show, by way of illustration, specific details and embodiments in which the disclosure may be practiced. These embodiments are described in sufficient detail to enable those skilled in the art to practice the disclosure. Other embodiments may be utilized and structural, and logical changes may be made without departing from the scope of the disclosure. The various embodiments are not necessarily mutually exclusive, as some embodiments can be combined with one or more other embodiments to form new embodiments.
Embodiments described in the context of one of the methods, devices, or systems are analogously valid for the other methods, devices, or systems. Similarly, embodiments described in the context of a method are analogously valid for a device or a system and vice-versa.
Features that are described in the context of an embodiment may correspondingly be applicable to the same or similar features in the other embodiments. Features that are described in the context of an embodiment may correspondingly be applicable to the other embodiments, even if not explicitly described in these other embodiments. Furthermore, additions and/or combinations and/or alternatives as described for a feature in the context of an embodiment may correspondingly be applicable to the same or similar feature in the other embodiments.
In the context of various embodiments, the articles “a”, “an” and “the” as used with regard to a feature or element include a reference to one or more of the features or elements.
As used herein, the term “and/or” includes any and all combinations of one or more of the associated listed items.
According to various embodiments, the method of detecting overspeeding for a vehicle of a fleet may include obtaining historical trajectory data of the fleet of cach geographical area of a plurality of geographical areas from an electronic database. As used herein and in accordance with various embodiments, the expression “trajectory data” or “historical trajectory data” may include geographical data, such as geospatial coordinate and may further include time, for example, as provided by the global positioning system GPS. Alternatively to time or in addition to time, trajectory data or historical trajectory data may include speed associated with a trajectory data point, the speed may be calculated based on one or more adjacent points, from an average, a fitting, etc. Trajectory data may be obtained from the recording of positions of one or more moving vehicles. For example, latitude, longitude and time, the trajectory data may further include elevation. The GPS coordinates may be according to the World Geodetic System, WGS 84, for example, version G1762, however it is not limited thereto. According to various embodiments, the trajectory data may include a plurality of trajectory data points, wherein each data point may include latitude, longitude, and speed, and may further include bearing. A trajectory trace, e.g., a GPS trace, may be defined to be a sequence of records associated with timestamps. Each record (also named as trajectory data point) includes location and timestamp. Historical trajectory data may include a collection of a plurality of trajectory traces from one or more vehicles of the fleet stored over time. The trajectory data may be real world data, for example real world GPS data.
According to various embodiments, the geographical area represents an area on earth's surface. For example, a city may be represented by the plurality of geographical areas, which may be defined by applying a grid onto a city's map. In one example, the grid divides a map into geographical areas (also named as grid cells) of pre-determined sizes, such as 250 meters×250 meters. As used herein and in accordance with various embodiments, the terms ‘geographical’ and ‘geospatial’ may be used interchangeably.
According to various embodiments, the method of detecting overspeeding for a vehicle of a fleet may further include determining, by a microprocessor of a server, a distribution of speed, of the historical trajectory data for each geographical area. According to various embodiments, a distribution of speed may be a cumulative distribution function, and may further be normalized.
According to some embodiments, the historical trajectory data may be pre-processed before determining the distribution of speed, alternatively, trajectory data may be pre-processed before being added to the historical data. Such pre-processing may reduce the amount of noise, e.g., as caused by GPS positioning errors.
According to various embodiments, current trajectory data may be pre-processed, for example do avoid inaccuracies in position and/or speed calculations. Thus, trajectory data which is added to the historical trajectory data may be pre-processed current trajectory data.
According to various embodiments, historical trajectory data may be obtained by storing trajectory data in a database. The trajectory data, e.g. GPS data, from the electronic device of vehicles and drivers of the fleet may be collected, stored in a database. As an electronic device (e.g. smartphone or tablet) is associated with a driver, data from drivers may be leveraged to infer speed limits in different cities and countries.
According to various embodiments, driver profile data of a driver associated with the electronic device may include driver feature data, for example, indicating past overspeeding incidents. The driver profile may further include respective vehicle characteristics data of the vehicle associated with the driver, for example, that the vehicle is a four wheel vehicle or a 2 wheel vehicle, motor power, etc.
According to some embodiments, the historical trajectory data may be de-skewed before determining the distribution of speed, alternatively, trajectory data may be de-skewed before being added to the historical data. Such de-skewing may be used, e.g., when GPS data is captured at a fixed rate (e.g. 1 trajectory data point/second), which would produce a much higher data amount per distance when the vehicle is traveling at a lower speed as compared to a higher speed.
According to some embodiments, the method of detecting overspeeding for a vehicle of a fleet may further include de-skewing the distribution of speed based on inverse proportional relation to the speed. Since a rate of trajectory data point acquisition is based on an inverse proportional relation to the speed. For example, the de-skewing may be linear and implemented on the distribution of speeds. De-skewing of the distribution may consume less computational resources than de-skewing trajectory data.
The method of detecting overspeeding for a vehicle of a fleet may include determining, based on the distribution of speed, that a current speed of the vehicle may be above a threshold speed. According to some embodiments, this determination is statistical based on a statistical model. According to some embodiments, this determination is based on a machine learning model, and may be carried out by machine learning, for example, a trained classifier.
According to some embodiments, the method of detecting overspeeding for a vehicle of a fleet may include determining, based on the distribution of speed, that a current speed of the vehicle may be above a threshold speed corresponding to a pre-determined percentile of the distribution of speed in a current geographical area in which the current speed is recorded. Alternatively or in addition, the method of detecting overspeeding for a vehicle of a fleet may include determining, based on the distribution of speed, a probability of future overspeeding.
According to various embodiments, the current geographical area may correspond to at least one of said each geographical area for which historical trajectory data is available in the server. The determining may be carried out by a microprocessor of the electronic device associated with the vehicle. The server and the electronic database may be communication coupled to each other via a communication interface.
According to various embodiments, an overspeeding or a risk (or a probability) of future overspeeding may be indicated to the driver by via of an alert, for example, using one or more of an audible alert, a voice alert, a message on a display, a push notification to the electronic device. Alternatively or in addition, an overspeeding or a probability of future overspeeding may be communicated from the electronic device to the server with metadata which may be aggregated over time (e.g, on a daily basis) and reported as a speeding report. The issuing alerts during driving may be turned off, for example, if distracting the driver is a concern.
A future overspeeding which is an anticipation of overspeeding can potentially thwart an incident since the driver is notified in advance and thus made aware that he is monitoring. According to various embodiments, prediction of future overspeeding (also named herein as imminent overspeeding) may be provided for the future, for example, the next minute, for example, from 20 to 30 seconds in advance.
In the method of detecting overspeeding for a vehicle of a fleet, obtaining historical trajectory data of the fleet may include communicating, by the server an electronic request to the electronic database for the historical trajectory data, and may further include communicating the historical trajectory data from the electronic database to the server via the communication interface.
According to some embodiments, the method of detecting overspeeding for a vehicle of a fleet may include calculating the threshold speed on the server based on the distribution of speed for each geographical area; and uploading the threshold speed of cach geographical arca of the plurality of geographical areas to the electronic device. Alternatively or in addition, the method may include uploading the respective percentiles or the respective threshold speed for all of the plurality of geographical areas to the electronic device. Uploading may be performed automatically via a respective communication interface between the server and the device, for example, on demand or regularly such once a week. Having a regular update, for example for a whole city or a whole country, reduces any time lag or the risk of not having the information available when needed due to a bad communication connection. Also a regular upload of the threshold, percentiles, or distribution, does not occupy much memory in the device or communication bandwidth as compared to uploading the complete historical data. Further, since the server does not expose the historical data to the device, an enhanced data protection is provided. According to various embodiments, the pre-determined threshold is a threshold speed or is determined based on the threshold speed.
According to some embodiments, the method may further include calculating, based on the distribution of speed, that a determined probability of future overspeeding may be higher than a pre-determined threshold. The calculation may be performed on the electronic device associated with the vehicle. If the determination runs on the device, it reduces the dependence on network connectivity and querying the backend.
According to various embodiments, the determined probability may be calculated by a trained classifier. The method may further include training an electronic classifier into the trained classifier based on the distribution of speed. The electronic device may store the trained classifier. The electronic device may include tensorflow, and the classifier may be based on tensor flow.
According to various embodiments, training may be further based on training contextual data including contextual information. Calculating the determined probability of future overspeeding may be further based on current contextual data including current contextual information. According to various embodiments, training contextual data may include training weather data, and, current contextual data may include current weather data. Alternatively or in addition, training contextual data may include training driver profiles and current contextual data may include a driver profile of an driver associated with the electronic device, wherein each of the training driver profiles and the driver profile may include driver feature data, for example, indicating past overspeeding incidents. Each of the training driver profiles and the driver profile may further include respective vehicle characteristics data of the vehicle associated with the driver, for example, that the vehicle is a four-wheel vehicle or a 2-wheel vehicle, motor power, etc. Alternatively or in addition, training contextual data and current contextual data may include one or more of respective: time of the day, day of the week, public holiday data.
According to various embodiments, contextual data and current contextual data may include one or more of respective: road condition data, road characteristics data, current traffic pattern, neighborhood type.
According to various embodiments, contextual data, such as training contextual data and current contextual data, may be selected from one or more of: weather data, driver profile data, time of the day, day of the week, public holiday data, day or night, road condition data, road segment condition, road segment type, road characteristics data, current traffic pattern, neighborhood type. Each driver profile may include vehicle characteristics data of a vehicle associated with a corresponding driver.
According to various embodiments, contextual data, such as training contextual data and current contextual data, may include a number of speeding incidents which have occurred in a given grid cell.
According to various embodiments, contextual data, and corresponding training contextual data and current contextual data, may include a speeding risk score of a given geographical arca.
A speed pattern on a road segment that may lead to accident or crash is deemed as unsafe. It may be unsafe because of rain, storm, or other bad weather condition. A particular speed maybe safe during the day but not as safe at night. There may be specific traffic patterns that alters otherwise safe speed to unsafe. Road condition itself can pose some danger to traffic, e.g. potholes, turns, obstacles. Speed that is safe for cars may not be safe for a two-wheeler. Due to this reasoning, the definition of overspeeding as used in accordance with various embodiments is expanded beyond legal speed limits and is based on safety context. In the context of the present disclosure overspeeding may also mean unsafe speed.
A type of a road segment may be contextual information useful in determining safe or unsafe speeds. A map, for example, the map of a city, is divided with a grid into geographical areas, and a current position is snapped (mapped) to a grid cell that contains current position, i.c., the current geographical area. However, grid cells can have many different road types, some maybe highway, while others could be narrow local roads. Interestingly, it was found that traffic speed data analysis shows that vehicle speed distributions have the characteristics of a Gaussian Mixture Model. Each grid cell may have multiple road types within its boundary. For example, cach grid cell may contain segments of highways, and local roads. The Gaussians may be determined before inputting into the classifier. For example, by an automated Gaussian deconvolution of the distribution. According to various embodiments, the system may include an automated Gaussian component determiner configured to determine the Gaussian components from the distribution of speed of the historical trajectory data for cach geographical area. According to various embodiments, the classifier may be configured to, based on the Gaussian components, to determine the road type of one or more of the Gaussian components.
Additional characteristics of the vehicles movement patterns may be used in identifying the specific model/class the vehicle likely belongs to. This evaluation is fast, and requires small memory footprint. Once the road segment type is known, the related trained model for “unsafe high speed” prediction may be evaluated. In accordance with various embodiments, the system may include a pre-trained vehicle identifier, which may be a trained classifier, the identifier being configured to output a vehicle type based on vehicle movements patterns. The vehicle types may include one or more of: a four wheel vehicle, a 2 wheel vehicle, a motor power vehicle, a human power vehicle, a vehicle model.
It is noted that the specific road segment in the geographical area does not need to be determined, as the road segment type is sufficient. Therefore, the electronic device does not need to make use of a map indicating the road segment in which the driver is on, thus, utilizing less memory and computational resources for determining the context from the current position, than systems using comprehensive maps. This way to snap to context from position also works well given constraints of running on a mobile device.
According to various embodiments, the electronic classifier may be trained on the server. The pre-trained weights of the trained classifier may be uploaded from the server to the electronic device thereby providing the trained classifier on the electronic device. Upload of the pre-trained weights consumes little bandwidth and may be performed at regular intervals, e.g., once a week, or once a month.
An electronic device, in accordance with various embodiments, may include a trajectory data acquisition circuit configured to acquire current trajectory data. On device identification of proper context includes reading trajectory data (e.g. GPS sensor data) such as latitude, longitude, and speed. Speed may be determined from the time stamp, c.g, by a GSP module. The electronic device may include a communication circuit configured to receive pre-trained weights for a trained classifier from a server. The electronic device may include a processor. The processor may be configured to use a classifier configured with the pre-trained weights (i.e. the trained classifier) to calculate, based on the trajectory data, a probability of future overspeeding being higher than a pre-determined threshold. A trained classifier in this context may include the trained set of instructions and weights which may be processed (used) by the processor. The electronic device may include the classifier. The electronic device may include the trained classifier.
A system, in accordance with various embodiments may include a fleet, a server, and a plurality of electronic devices. Each electronic device is associated with a vehicle of the server. The system may include a trajectory data acquisition circuit configured to acquire current trajectory data. The system may include a communication circuit configured to receive the pre-trained weights for the trained classifier from a server. The system may include a processor configured to use a trained classifier configured with the pre-trained weights (i.e. the trained classifier) to calculate, based on the current trajectory data, a probability of future overspeeding being higher than a pre-determined threshold. A trained classifier in this context may mean the trained set of instructions and weights which may be processed (used) by the processor. The system may include the classifier. The system may include the trained classifier.
A non-transitory computer-readable medium, in accordance with various embodiments, may store computer executable code. The code may include instructions to make a computer (e.g., a processor of the electronic device) carry out the method of detecting overspeeding for a vehicle of a fleet in accordance with various embodiments. The code may include instructions to make a computer (e.g., a processor of the electronic device) to obtain current trajectory data from a trajectory data acquisition circuit. The code may include instructions to receive pre-trained weights for a trained classifier from a server via a communication circuit. The code may include instructions to configure a classifier with the pre-trained weights into a trained classifier. The code may include instructions to calculate, a probability of future overspeeding being higher than a pre-determined threshold. The calculation may use the trained classifier and may be based on a current speed and/or on the trajectory data. Trajectory data include at least two trajectory data points, optionally at least 3 trajectory data points. 3 trajectory data points or more may allow for averaging of speed thereby reducing or avoiding wrongly calculated speeds due to GPS acquisition errors.
The server 100A has at least one processor 110 a memory 109 for storing the electronic database 111. The memory 109 and the processor 110 may be implemented in a single unit or may be placed in different locations, e.g., a cloud. It should be noted while the server 100A is described as a single server, its functionality will in practical applications, typically be provided by an arrangement of multiple server computers (e.g. implementing a cloud service). Accordingly, the functionality described herein provided by the server may be understood to be provided by an arrangement of servers or server computers. In one example the database may be implemented with DynamoDB, or another NoSQL database, since NoSQL databases don't impose on strict schema, which offers the flexibility of data structure thereby allowing for future data change as improvements are implemented. DynamoDB is reliable and can work on a massive scale and most of the operation may be performed on a cloud thus allowing for casy autoscaling.
The electronic device 100B may include a trajectory data acquisition circuit configured to acquire current trajectory data, for example, calculated from satellite signals (such as GPS). The electronic device 100B has a screen showing the graphical driver interface (GUI) of an e-hailing app that the electronic device's driver (e.g. a taxi driver) has previously installed on his electronic device and has opened (e.g., started) to carry out a transportation order. The electronic device 100B has a processor (not shown).
The GUI 101 includes a map 102 of the vicinity of the driver's position. The app may determine the position based on a location service, e.g. a GPS-based location service. The map 102 may also show the trajectory to be travelled, thus aiding the driver in driving. The GUI may include other features, for example, the GUI 101 may include a box for point of departure 103 and a box for destination 104 which may be received from the order. There may also be a menu (not shown) allowing the driver to select various options, e.g. information about passengers, whether payment is performed automatically or by cash, etc.
The GUI may include an alert box, which may appear or change appearance (e.g., flash) to indicate when the driver is overspeeding or when there is a risk of imminent overspeeding. In accordance with various embodiments, the electronic device 100B is configured to issue an alert when over speeding is detected and/or configured to issue an alert when imminent overspeeding is predicted. Imminent overspeeding may be defined as the probability of future overspeeding being higher than the pre-determined threshold.
The method may include determining 354, by a microprocessor of a server 100A, a distribution of speed of the historical trajectory data for each geographical area.
The method may include, based on the distribution of speed, determining, by a microprocessor of an electronic device 100B associated with the vehicle, that a current speed of the vehicle may be above a threshold speed corresponding to a pre-determined percentile of the distribution of speed 354 in a current geographical area in which the current speed may be recorded, which current geographical area corresponds to at least one of said cach geographical area. For example, as illustrated in
According to various embodiments, determining whether a driver is over speeding or over speeding is imminent may be based on Gaussian components of the distribution of speed which may be previously determined by the automated Gaussian component determiner. The use of the Gaussian components may allow a classifier to identify a road type.
The method for training may include determining 504, by a microprocessor of a server 100A, a distribution of speed of the historical trajectory data for each geographical arca for a training dataset, classifying the distribution of speed, and comparing the result of the classification with a ground truth and iterating until a sufficient convergence has been achieved between the classification result of the classifier and the ground truth. Alternativeley or in addition, the dataset includes the percentiles of speed distribution, which may be determined in a step 506 and be part of the training dataset, so that training may be carried out considering the percentiles of speed distribution. Accuracy can be statistically determined with a test dataset including respective ground truth.
According to various embodiments, training may further be based on Gaussian components of the distribution of speed which may be previously determined by the automated Gaussian component determiner. The use of the Gaussian components may allow a classifier to identify a road type.
According to various embodiments, the training dataset may include contextual data at 509. Correspondingly, the test data set may include test contextual data. Contextual data may such as training (or test) contextual data and current contextual data, may be selected from one or more of: weather data, driver profiles, time of the day, day of the week, public holiday data, day or night, road condition data, road segment condition, road segment type, road characteristics data, current traffic pattern, neighborhood type. Each driver profile may include vehicle characteristics data of a vehicle associated with a corresponding driver. Processing includes training a classifier to be able to determine whether a driver is over speeding, further, optionally, if over speeding is imminent at 508.
According to various embodiments, the electronic classifier may be trained on the server 100A as illustrated in step 602 of the flowchart 600 of
In the following, it will be demonstrated how the distribution of speed may be determined for an exemplary set of data.
In the example of
The graph (c) on the bottom left shows the cumulative distribution function before (cdf) and after deskewing (deskewed cdf) for speed. From the deskewed edf, the percenticles of the speed distribution may be determined, for example, the 85th, 95th, 99th percentiles of speed distribution may be determined.
According to various embodiments, a file (e.g. a JavaScript® Object Notation (json) file) with the grid coordinates for the entire city, and their respective percentiles may be pushed down (e.g., uploaded) on the electronic device. During a trip, the grid position of the incoming GPS pings may be determined, and current speed may be compared to a threshold(s). The threshold(s) may be determined based on the percentiles, e.g., the 85th, 95th, 99th percentile data. For example, an initial approach similar to 85th percentile+8 km/h rule can be set as a threshold. Since the electronic device can work with the grid coordinates, it is not necessary to upload the whole map to the electronic device.
According to various embodiments, determining overspeeding may be carried out by comparing a current speed of the vehicle with a threshold speed. The threshold speed may correspond to the pre-determined percentile of the distribution of speed in a current geographical area, for example, 85th percentile, 85th percentile+8 km/h, 95th percentile or 99th percentile.
According to various embodiments, to determine if a driver is overspeeding, the method may consider sustainable overspeeding, over two or more speed determinations. Thus, in some embodiments, at least two pings (i.e. trajectory data points) including speed need to cross the set threshold and these at least two pings cannot be identical. In some embodiments, a single GPS ping breaking the threshold rule, will not be deemed as overspeeding. This allows for less error from instantaneous speed detection from GPS speed, since there is some time lag and at the best case the data rate is 1 Hz for phone GPS sensors. This also compensates for possible low accuracy caused by poor reception or multipath which can sometimes impact Doppler based speed measurement. In accordance with some embodiments, the accuracy of the trajectory data points must be better than 30 meters if they are to be considered for over-speeding detection.
Violations may be shown to the driver during the trip or at the end of trip via push notifications or audible alerts. Alternatively or in addition, the violations can be sent back to the backend with metadata which could be aggregated on a daily basis and reported as a speeding report. The issuing alerts during driving may turned off, for example, if distracting the driver is a concern.
According to various embodiments, the trained classifier may be configured to calculate, based on the trajectory data, a probability of future overspeeding at 940. The electronic device may be configured to determine whether the probability of overspeeding is higher than a pre-determined threshold. For example, if the calculated probability is 0.739 and the threshold is 0.75, then future of overspeeding is not determined and, e.g., the electronic device may not issue an alert of future overspeeding. In another example, if the calculated probability is 0.85 and the threshold is 0.75, then future of overspeeding is determined and, e.g., the electronic device may issue an alert of future overspeeding. Alternatively or in addition, the classifier may be trained to determine that a current speed is unsafe, for example by having an output class representing the probability of current unsafe speed. The electronic device may compare the probability of current unsafe speed with a threshold and thereby determine whether the vehicle's current speed is safe or unsafe.
According to various embodiments, the calculation of the probability of future overspeeding and the determination whether the probability of overspeeding is higher than a pre-determined threshold may be carried out in real-time, therefore, while the driver is driving, he may receive alerts in real time to warn him about future overspeeding. Alternatively or in addition, the determination whether a current speed is unsafe may be carried out in real-time, therefore, while the driver is driving, he may receive alerts in real time to warn him about current unsafe speeding. According to various embodiments, trajectory data in which the driver is alerted may be kept out of training data when training an electronic classifier, for example trajectory data in which the driver is alerted may be kept out of the historical trajectory data, or filtered from the historical trajectory data before training.
In one example, an API to obtain the map data, speed distribution, and other contextual data includes an exposed endpoint, an internal endpoint, and a method GET. This API may be called from the electronic device and will return map data, speed distribution (e.g. speed distribution data and/or percentiles of the speed distribution), and may return other contextual data, which may then be used for doing speed detection on the electronic device. In one example, the method GET may include latitude and longitude fields, for example as shown in Table 1.
In one example, a response from the API may include the features (e.g., map data, speed distribution, and other contextual) and may further include a pass indicator, for example, as shown in Table 2.
In one example, an API to obtain the driver profile data includes an exposed endpoint, an internal endpoint, and a method GET. This API may be called from the electronic device and will return driver features such as age, history, etc., which may then be used for doing speed detection on the electronic device. In one example, the method GET does not include any parameter. In one example, the response from the API may include the driver profile (also named as driver features) and may further include a pass indicator, as shown in Table 3 below.
In one example, an API to obtain the other contextual data which requires frequent update (for example, could be real-time data), includes an exposed endpoint, an internal endpoint, and a method GET. This API may be called from the electronic device and will return contextual data which requires to be up-to-date such as weather data, real-time traffic data, etc., which may then be used for doing speed detection on the electronic device. In one example, the method GET may include latitude and longitude fields, and may further include a timestamp, for example as shown in Table 4.
In one example, a response from the API may include the other contextual data and may further include a pass indicator, for example, as shown in Table 5.
The features obtained from the server, e.g., map data, speed distribution, and other contextual, driver profile data, contextual data which requires frequent update, may be deserialized then inserted into the trained classifier, e.g., tensorflow based infrastructure, of the electronic device.
In one example, a schema of the map data may be as shown in Table 6.
While the disclosure has been particularly shown and described with reference to specific embodiments, it should be understood by those skilled in the art that various changes in form and detail may be made therein without departing from the spirit and scope of the invention as defined by the appended claims. The scope of the invention is thus indicated by the appended claims and all changes which come within the meaning and range of equivalency of the claims are therefore intended to be embraced.
Number | Date | Country | Kind |
---|---|---|---|
10202010286X | Oct 2020 | SG | national |
The present application is a non-provisional continuation claiming priority to non-provisional application Ser. No. 18/031,509, which was filed on Apr. 12, 2023, and which claims priority under 35 U.S.C. 371, to PCT patent application PCT/SG2021/050561, which was filed on Sep. 15, 2021, which claims priority to Singapore patent application 10202010286X which was filed on Oct. 16, 2020, the contents of which are incorporated by reference herein in their entirety.
Number | Date | Country | |
---|---|---|---|
Parent | 18031509 | Apr 2023 | US |
Child | 18590128 | US |