Patent Description:
The invention described herein generally relate to vehicles and telematics data, and in particular, to detecting and removing erroneous tire pressure values.

Vehicles can include tire-pressure monitoring systems (TPMS) that monitor the air pressure inside the tires of the vehicle. Through early detection of under-inflated or over-inflated tires, TPMS can reduce the likelihood of vehicle accidents, improve fuel economy, and reduce tire wear. TPMS have been widely adopted in many passenger cars and are mandatory in many jurisdictions for new passenger cars. TPMS can include direct TPMS (dTPMS) that directly measure tire pressure using physical pressure sensors and indirect TPMS (iTPMS) that infer tire pressure by performing signal processing on other types of sensor signals, such as acceleration, wheel speed, etc. In some cases, TPMS can generate erroneous tire pressure values that do not correctly represent the actual air pressure inside the tires. As a result, tire pressure values obtained from a vehicle may contain erroneous values. It is not always known why TPMS sometimes generate erroneous values. It would be desirable to detect and remove erroneous tire pressure values to improve tire pressure data accuracy. However, it can be difficult to distinguish erroneous tire pressure values from valid tire pressure values. Patent publications <CIT> and <CIT> discuss information that is useful for understanding the background of the invention.

The present invention discloses methods and telematics devices according to the appended claims. The following introduction is provided to introduce the reader to the more detailed discussion to follow. The introduction is not intended to limit or define any claimed invention.

In accordance with an aspect of the invention, there is provided a method for detecting and removing erroneous tire pressure values. The method involves operating at least one processor of a telematics device to: receive, from a vehicle, tire pressure data including a time series of tire pressure values; simplify the tire pressure data by removing at least some of the tire pressure values that satisfy a predetermined interpolation error threshold; detect, using a trained machine learning classifier, at least one erroneous tire pressure value in the tire pressure data, each erroneous tire pressure value being detected based on the erroneous tire pressure value and a plurality of lagging tire pressure values consecutively trailing the erroneous tire pressure value; clean the tire pressure data by removing the at least one erroneous tire pressure value; and transmit the tire pressure data to a fleet management system, whereby the at least one erroneous tire pressure value is not transmitted to the fleet management system.

In some embodiments, the machine learning classifier can detect each erroneous tire pressure value further based on a plurality of relative time values associated with the erroneous tire pressure value and the plurality of lagging tire pressure values.

In some embodiments, the machine learning classifier can be trained using a plurality of tire pressure value samples, each tire pressure value sample including a consecutive sequence of tire pressure values.

In some embodiments, the machine learning classifier can be trained further using a plurality of time value samples, each time value sample including a consecutive sequence of relative time values associated with the consecutive sequence of tire pressure values.

In some embodiments, the plurality of tire pressure value samples can include a plurality of erroneous tire pressure value samples, each erroneous tire pressure value sample including one or more erroneous tire pressure values.

In some embodiments, at least some of the plurality of erroneous tire pressure value samples can include one or more valid tire pressure values.

In some embodiments, the plurality of tire pressure value samples can include a plurality of valid tire pressure value samples, the plurality of valid tire pressure value samples including a plurality of valid tire pressure values.

In some embodiments, the plurality of tire pressure value samples can be collected from a plurality of different vehicle types.

In some embodiments, the machine learning classifier can be a binary classifier operable to classify a tire pressure value as valid or erroneous.

In some embodiments, the machine learning classifier can be a tree-based classifier.

In some embodiments, simplifying the tire pressure data can involve determining an interpolation error of removing the at least some of the tire pressure values based on a Ramer-Douglas-Peucker algorithm.

In accordance with another aspect of the invention, there is provided a telematics device. The telematics device includes at least one processor operable to: receive, from a vehicle, tire pressure data including a time series of tire pressure values; simplify the tire pressure data by removing at least some of the tire pressure values that satisfy a predetermined interpolation error threshold; detect, using a trained machine learning classifier, at least one erroneous tire pressure value in the tire pressure data, each erroneous tire pressure value being detected based on the erroneous tire pressure value and a plurality of lagging tire pressure values consecutively trailing the erroneous tire pressure value; clean the tire pressure data by removing the at least one erroneous tire pressure value; and transmit the tire pressure data to a fleet management system, whereby the at least one erroneous tire pressure value is not transmitted to the fleet management system.

In accordance with a broad aspect, there is provided a method for training a machine learning classifier to detect erroneous tire pressure values. The method involves operating at least one processor to: retrieve tire pressure data, the tire pressure data including a plurality of time series of tire pressure values originating from a plurality of vehicles; generate histogram representations of the tire pressure data, a histogram representation being generated for each vehicle type; identify, from tire pressure data, a plurality of erroneous tire pressure values based on logarithmic comparisons of adjacent tire pressure value count features in each histogram representation; identify, from the tire pressure data, a plurality of erroneous tire pressure value patterns based on the plurality of erroneous tire pressure values; generate a plurality of tire pressure value samples based on the plurality of erroneous tire pressure values and the plurality of erroneous tire pressure value patterns; and train the machine learning classifier using the plurality of tire pressure value samples.

In some embodiments, generating the plurality of tire pressure value samples can involve: receiving a second set of tire pressure data including a second plurality of time series of tire pressure values; labeling the tire pressure values in the second set of tire pressure data based on the plurality of erroneous tire pressure values and the plurality of erroneous tire pressure value patterns; and generating the tire pressure value samples from the labeled tire pressure values in the second set of tire pressure data.

In some embodiments, identifying the plurality of erroneous tire pressure value patterns can involve identifying consecutive sequences of tire pressure values containing one or more erroneous tire pressure values and satisfying a value change threshold.

In some embodiments, identifying the plurality of erroneous tire pressure value patterns can involve identifying consecutive sequences of tire pressure values containing one or more erroneous tire pressure values for a plurality of different vehicles.

In some embodiments, the logarithmic comparisons can include comparisons between adjacent histogram bin heights and between adjacent histogram bin percentage ranks.

In some embodiments, each tire pressure value sample can include a consecutive sequence of tire pressure values.

In some embodiments, the plurality of erroneous tire pressure value samples can include one or more valid tire pressure values.

In accordance with a broad aspect, there is provided a system for training a machine learning classifier to detect erroneous tire pressure values. The system includes: at least one data storage operable to store tire pressure data, the tire pressure data including a plurality of time series of tire pressure values originating from a plurality of vehicles; and at least one processor in communication with the at least one data storage, the at least one processor operable to: retrieve the tire pressure data; generate histogram representations of the tire pressure data, a histogram representation being generated for each vehicle type; identify, from tire pressure data, a plurality of erroneous tire pressure values based on logarithmic comparisons of adjacent tire pressure value count features in each histogram representation; identify, from the tire pressure data, a plurality of erroneous tire pressure value patterns based on the plurality of erroneous tire pressure values; generate a plurality of tire pressure value samples based on the plurality of erroneous tire pressure values and the plurality of erroneous tire pressure value patterns; and train the machine learning classifier using the plurality of tire pressure value samples.

In accordance with another aspect of the invention, there is provided a non-transitory computer readable medium having instructions stored thereon executable by at least one processor to implement any one of the methods herein.

Several embodiments will be described in detail with reference to the drawings, in which:.

The drawings, described below, are provided for purposes of illustration, and not of limitation, of the aspects and features of various examples of embodiments described herein. For simplicity and clarity of illustration, elements shown in the drawings have not necessarily been drawn to scale. The dimensions of some of the elements may be exaggerated relative to other elements for clarity. It will be appreciated that for simplicity and clarity of illustration, where considered appropriate, reference numerals may be repeated among the drawings to indicate corresponding or analogous elements or steps.

Various systems or methods will be described below to provide an example of an embodiment of the claimed subject matter. No embodiment described below limits any claimed subject matter and any claimed subject matter may cover methods or systems that differ from those described below. The claimed subject matter is not limited to systems or methods having all of the features of any one system or method described below or to features common to multiple or all of the apparatuses or methods described below.

Referring to <FIG>, there is shown an example fleet management system <NUM> for managing a plurality of assets equipped with a plurality of telematics devices <NUM>. In operation, the telematics devices <NUM> can gather various data associated with the assets (i.e., telematics data) and share the telematics data with the fleet management system <NUM>. The fleet management system <NUM> can be remotely located from the telematics devices <NUM> and the assets.

For ease of exposition, various examples will now be described in which the assets are vehicles <NUM>. However, it should be appreciated that the systems and methods described herein may be used to manage other forms of assets in some embodiments. Such assets can generally include any apparatuses, articles, machines, and/or equipment that can be equipped and monitored by the telematics devices <NUM>. For example, other assets may include shipping containers, trailers, construction equipment, generators, and the like. The nature and format of the telematics data may vary depending on the type of asset.

The vehicles <NUM> may include any machines for transporting goods or people. The vehicles <NUM> can include motor vehicles, such as, but not limited to, motorcycles, cars, trucks, and/or buses. The motor vehicles can be gas, diesel, electric, hybrid, and/or alternative fuel. In some cases, the vehicles <NUM> may include other kinds of vehicles, such as, but not limited to, railed vehicles (e.g., trains, trams), watercraft (e.g., ships, boats), aircraft (e.g., airplanes, helicopters), and/or spacecraft. Each vehicle <NUM> can be equipped with a telematics device <NUM>. Although only three vehicles <NUM> having three telematics devices <NUM> are shown in the illustrated example for ease of illustration, it should be appreciated that there can be any number of vehicles <NUM> and telematics devices <NUM>. In some cases, the fleet management system <NUM> may manage hundreds, thousands, or even millions of vehicles <NUM> and telematics devices <NUM>.

The telematics devices <NUM> can be standalone devices that are removably installed in the vehicles <NUM>. Alternatively, the telematics devices <NUM> can be integrated components that are integral with the vehicles <NUM>. The telematics devices <NUM> can gather various telematics data from the vehicles <NUM> and share the telematics data with the fleet management system <NUM>. The telematics data may include any information, parameters, attributes, characteristics, and/or features associated with the vehicles <NUM>. For example, the telematics data can include, but is not limited to, location data, speed data, acceleration data, engine data, brake data, transmission data, fluid data (e.g., oil, coolant, and/or washer fluid), energy data (e.g., battery and/or fuel level), odometer data, vehicle identifying data, error/diagnostic data, tire pressure data, seatbelt data, and/or airbag data. In some cases, the telematics data may include information related to the telematics devices <NUM> and/or other devices associated with the telematics devices <NUM>.

The fleet management system <NUM> can process the telematics data collected from the telematics devices <NUM> to provide various analysis, predictions, and reporting. For example, the fleet management system <NUM> can process the telematics data to gain additional information regarding the vehicles <NUM>, such as, but not limited to, trip distances/times, idling times, harsh braking/driving, usage rate, and/or fuel economy. Various data analytics and machine learning techniques may be used by the fleet management system <NUM> to process the telematics data. The telematics data can then be used to manage various aspects of the vehicles <NUM>, such as, but not limited to, route planning, vehicle maintenance, driver compliance, asset utilization, and/or fuel management. In this manner, the fleet management system <NUM> can improve the productivity, efficiency, safety, and/or sustainability of the vehicles <NUM>.

A plurality of computing devices <NUM> can provide access to the fleet management system <NUM> to a plurality of users <NUM>. This may allow the users <NUM> to manage and track the vehicles <NUM>, for example, using various telematics data collected and/or processed by the fleet management system <NUM>. The computing devices <NUM> can be any computers, such as, but not limited to, personal computers, portable computers, wearable computers, workstations, desktops, laptops, smartphones, tablets, smartwatches, PDAs (personal digital assistants), and/or mobile devices. The computing devices <NUM> can be remotely located from the fleet management system <NUM>, telematics devices <NUM>, and vehicles <NUM>. Although only three computing devices <NUM> operated by three users <NUM> are shown in the illustrated example for ease of illustration, it should be appreciated that there can be any number of computing devices <NUM> and users <NUM>. In some cases, the fleet management system <NUM> may service hundreds, thousands, or even millions of computing devices <NUM> and users <NUM>.

The fleet management system <NUM>, telematics devices <NUM>, and computing devices <NUM> can communicate through one or more networks <NUM>. The networks <NUM> may be wireless, wired, or a combination thereof. The networks <NUM> may employ any communication protocol and utilize any communication medium. For example, the networks <NUM> may include, but is not limited to, Wi-Fi™ networks, Ethernet networks, Bluetooth™ networks, NFC (near-field communication) networks, radio networks, cellular networks, and/or satellite networks. The networks <NUM> may be private, public, or a combination thereof. For example, the networks <NUM> may include, but is not limited to, LANs (local area networks), WANs (wide area networks), and/or the Internet. The networks <NUM> may also facilitate communication with other devices and systems that are not shown.

The fleet management system <NUM> can be implemented using one or more computers. For example, the fleet management system <NUM> may be implemented using one or more computer servers. The servers can be distributed across a wide geographical area. In some embodiments, the fleet management system <NUM> may be implemented using a cloud computing platform, such as Google Cloud Platform™ or Amazon Web Services™. In other embodiments, the fleet management system <NUM> may be implemented using one or more dedicated computer servers.

Reference will now be made to <FIG> to further explain the operation of the fleet management system <NUM>, telematics devices <NUM>, and vehicles <NUM>. In the illustrated example, the fleet management system <NUM> in communication with a telematics device <NUM> that is installed in a vehicle <NUM>.

As shown, the fleet management system <NUM> can include one or more processors <NUM>, one or more data stores <NUM>, and one or more communication interfaces <NUM>. Each of these components may communicate with each other. Each of these components may be combined into fewer components or divided into additional subcomponents. Two or more of these components and/or subcomponents may be distributed across a wide geographical area.

The processors <NUM> can control the operation of the fleet management system <NUM>. The processors <NUM> can be implemented using any suitable processing devices or systems, such as, but not limited to, CPUs (central processing units), GPUs (graphics processing units), FPGAs, (field programmable gate arrays), ASICs (application specific integrated circuits), DSPs (digital signal processors), NPUs (neural processing units), QPUs (quantum processing units), microprocessors, and/or controllers. The processors <NUM> can execute various computer instructions, programs, and/or software stored on the data stores <NUM> to implement various methods described herein. For example, the processors <NUM> may process various telematics data collected by the fleet management system <NUM> from the telematics device <NUM>.

The data stores <NUM> can store various data for the fleet management system <NUM>. The data stores <NUM> can be implemented using any suitable data storage devices or systems, such as, but not limited to, RAM (random access memory), ROM (read only memory), flash memory, HDD (hard disk drives), SSD (solid-state drives), magnetic tape drives, optical disc drives, and/or memory cards. The data stores <NUM> may include volatile memory, non-volatile memory, or a combination thereof. The data stores <NUM> may include non-transitory computer readable media. The data stores <NUM> can store various computer instructions, programs, and/or software that can be executed by the processors <NUM> to implement various methods described herein. The data stores <NUM> may store various telematics data collected from the telematics device <NUM> and/or processed by the processors <NUM>.

The communication interfaces <NUM> can enable communication between the fleet management system <NUM> and other devices or systems, such as the telematics device <NUM>. The communication interfaces <NUM> can be implemented using any suitable communication devices or systems. For example, the communication interfaces <NUM> may include various physical connectors, ports, or terminals, such as, but not limited to, USB (universal serial bus), Ethernet, Thunderbolt, Firewire, SATA (serial advanced technology attachment), PCI (peripheral component interconnect), HDMI (high-definition multimedia interface), and/or DisplayPort. The communication interfaces <NUM> can also include various wireless interface components to connect to wireless networks, such as, but not limited to, Wi-Fi™, Bluetooth™, NFC, cellular, and/or satellite. The communication interfaces <NUM> can enable various inputs and outputs to be received at and sent from the fleet management system <NUM>. For example, the communication interfaces <NUM> may be used to retrieve telematics data from the telematics device <NUM>.

As shown, the telematics device <NUM> also can include one or more processors <NUM>, one or more data stores <NUM>, and one or more communication interfaces <NUM>. Additionally, the telematics device <NUM> can include one or more sensors <NUM>. Each of these components may communicate with each other. Each of these components may be combined into fewer components or divided into additional subcomponents.

The processors <NUM> can control the operation of the telematics device <NUM>. Like the processors <NUM> of the fleet management system <NUM>, the processors <NUM> of the telematics device <NUM> can be implemented using any suitable processing devices or systems. The processors <NUM> can execute various computer instructions, programs, and/or software stored on the data stores <NUM>. For example, the processors <NUM> can process various telematics data gathered from the vehicle components <NUM> or the sensors <NUM>.

The data stores <NUM> can store various data for the telematics device <NUM>. Like the data stores <NUM> of the fleet management system <NUM>, the data stores <NUM> of the telematics device <NUM> can be implemented using any suitable data storage devices or systems. The data stores <NUM> can store various computer instructions, programs, and/or software that can be executed by the processors <NUM>. The data stores <NUM> can also store various telematics data gathered from the vehicle components <NUM> or the sensors <NUM>.

The communication interfaces <NUM> can enable communication between the telematics device <NUM> and other devices or systems, such as the fleet management system <NUM> and vehicle components <NUM>. Like the communication interfaces <NUM> of the fleet management system <NUM>, the communication interfaces <NUM> of the telematics device <NUM> can be implemented using any suitable communication devices or systems. The communication interfaces <NUM> can enable various inputs and outputs to be received at and sent from the telematics device <NUM>. For example, the communication interfaces <NUM> may be used collect telematics data from the vehicle components <NUM> and sensors <NUM> or to send telematics data to the fleet management system <NUM>. The communication interfaces <NUM> can also be used to connect the telematics device <NUM> with one or more accessory devices <NUM>.

The sensors <NUM> can detect and/or measure various environmental events and/or changes. The sensors <NUM> can include any suitable sensing devices or systems, including, but not limited to, location sensors, velocity sensors, acceleration sensors, orientation sensors, vibration sensors, proximity sensors, temperature sensors, humidity sensors, pressure sensors, optical sensors, and/or audio sensors. When the telematics device <NUM> is installed in the vehicle <NUM>, the sensor <NUM> can be used to gather telematics data that may not be obtainable from the vehicle components <NUM>. For example, the sensors <NUM> may include a satellite navigation device, such as, but not limited to, a GPS (global positioning system) receiver, which can measure the location of the vehicle <NUM>. As another example, the sensor <NUM> may include accelerometers, gyroscopes, magnetometers, and/or IMUs (inertial measurement units), which can measure the acceleration and/or orientation of the vehicle <NUM>.

In some cases, the telematics device <NUM> may operate in conjunction with one or more accessory devices <NUM> that are in communication with the telematics device <NUM>. The accessory devices <NUM> can include expansion devices that can provide additional functionality to the telematics device <NUM>. For example, the accessory devices <NUM> may provide additional processing, storage, communication, and/or sensing functionality through one or more additional processors, data storages, communication interfaces, and/or sensors (not shown). The accessory devices <NUM> can also include adapter devices that facilitate communication between the communication interface <NUM> and the vehicle interfaces <NUM>, such as a cable harness.

The telematics device <NUM> can be installed within the vehicle <NUM>, removably or integrally. One or more accessory devices <NUM> can also be installed in the vehicle <NUM> along with the telematics device <NUM>. As shown, the vehicle <NUM> can include one or more vehicle components <NUM> and one or more vehicle interfaces <NUM>. Each of these components may be combined into fewer components or divided into additional subcomponents.

The vehicle components <NUM> can include any subsystems, parts, and/or subcomponents of the vehicle <NUM>. The vehicle components <NUM> can be used to operate and/or control the vehicle <NUM>. For example, the vehicle components <NUM> can include, but are not limited to, powertrains, engines, transmissions, steering, braking, seating, batteries, doors, and/or suspensions. The telematics device <NUM> can gather various telematics data from the vehicle components <NUM>. For example, the telematics device <NUM> may communicate with one or more ECUs (electronic control units) that control the vehicle components <NUM> and/or one or more internal vehicle sensors.

The vehicle interfaces <NUM> can facilitate communication between the vehicle components <NUM> and other devices or systems. The vehicle interfaces <NUM> can include any suitable communication devices or systems. For example, the vehicle interfaces <NUM> may include, but is not limited to, ODB-II (on-board diagnostics) ports and/or CAN (controller area network) buses. The vehicle interfaces <NUM> can be used by the telematics device <NUM> to gather telematics data from the vehicle components <NUM>. For example, the communication interfaces <NUM> of the telematics device <NUM> can be connected to the vehicle interfaces <NUM> to communicate with the vehicle components <NUM>. In some cases, an accessory device <NUM>, such as a wire harness, can provide the connection between the communication interface <NUM> and the vehicle interface <NUM>.

Reference will now be made to <FIG> to further explain the operation of the fleet management system <NUM> and computing devices <NUM>. In the illustrated example, the fleet management system <NUM> in communication with a computing device <NUM>. As shown, the computing device <NUM> also can include one or more processors <NUM>, one or more data stores <NUM>, and one or more communication interfaces <NUM>. Additionally, the computing device <NUM> can include one or more displays <NUM>. Each of these components can communicate with each other. Each of these components may be combined into fewer components or divided into additional subcomponents.

The processors <NUM> can control the operation of the computing device <NUM>. Like the processors <NUM> of the fleet management system <NUM> and the processors <NUM> of the telematics device <NUM>, the processors <NUM> of the computing device <NUM> can be implemented using any suitable processing devices or systems. The processors <NUM> can execute various computer instructions, programs, and/or software stored on the data stores <NUM> to implement various methods described herein. For example, the processors <NUM> may process various telematics data received from the fleet management system <NUM> and/or the telematics device <NUM>.

The data stores <NUM> can store various data for the computing device <NUM>. Like the data stores <NUM> of the fleet management system <NUM> and the data stores <NUM> of the telematics device <NUM>, the data stores <NUM> of the computing device <NUM> can be implemented using any suitable data storage devices or systems. The data stores <NUM> can store various computer instructions, programs, and/or software that can be executed by the processor <NUM> to implement various methods described herein. The data stores <NUM> may store various telematics data received from the fleet management system <NUM> and/or the telematics device <NUM>.

The communication interfaces <NUM> can enable communication between the computing device <NUM> and other devices or systems, such as the fleet management system <NUM>. Like the communication interfaces <NUM> of the fleet management system <NUM> and the communication interfaces <NUM> of the telematics device <NUM>, the communication interfaces <NUM> of the computing device <NUM> can be implemented using any suitable communication devices or systems. The communication interfaces <NUM> can enable various inputs and outputs to be received at and sent from the computing device <NUM>. For example, the communication interfaces <NUM> may be used to retrieve telematics data from the fleet management system <NUM>.

The displays <NUM> can visually present various data for the computing device <NUM>. The displays <NUM> can be implemented using any suitable display devices or systems, such as, but not limited to, LED (light-emitting diode) displays, LCDs (liquid crystal displays), ELDs (electroluminescent displays), plasma displays, quantum dot displays, and/or cathode ray tube (CRT) displays. The displays <NUM> can be an integrated component that is integral with the computing device <NUM> or a standalone device that is removably connected to the computing device <NUM>. The displays <NUM> can present various user interfaces for various computer applications, programs, and/or software associated with various methods described herein. For example, the displays <NUM> may display various visual representations of the telematics data.

Reference will now be made to <FIG>, which illustrate example tire pressure data <NUM>. <FIG> illustrates tire pressure data <NUM> collected from a single vehicle <NUM>, whereas <FIG> illustrates tire pressure data <NUM> collected from a plurality of vehicles <NUM> of the same vehicle type (e.g., make, model, and/or year). The tire pressure data <NUM> can be collected from the vehicles <NUM> by telematics devices <NUM>. The tire pressure data <NUM> can originate from the TPMSs (tire pressure monitoring systems) of the vehicles <NUM>, for example, from one or more pressure or other sensors of the TPMSs. The tire pressure data <NUM> can be collected by the telematics devices <NUM> from the TPMSs though one or more vehicle interfaces <NUM>, such as an ODB-II port and/or CAN bus. The tire pressure data <NUM> may be stored at the telematics device <NUM>, fleet management system <NUM>, computing device <NUM>, or a combination thereof.

The tire pressure data <NUM> can include various time series of tire pressure values. In other words, the tire pressure data <NUM> can include a plurality of data points, with each data point representing a tire pressure value at a particular point in time. As shown, the tire pressure data <NUM> can include normal or valid tire pressure values <NUM>, as well as erroneous tire pressure values <NUM>.

Valid tire pressure values <NUM> can include tire pressure values that correctly represent the air pressure inside the tires of the vehicle <NUM>. In contrast, erroneous tire pressure values <NUM> can include tire pressure values that are invalid and do not correctly represent the air pressure inside the tires of the vehicle <NUM>. For example, erroneous tire pressure values <NUM> may include tire pressure values that are physically impossible, such as negative values, excessively large values, or excessively small values. However, in some cases, erroneous tire pressure values <NUM> may include tire pressure values that are physically possible, but nevertheless do not accurately represent the actual tire pressure of the vehicle <NUM>.

It can be difficult to detect erroneous tire pressure values <NUM> because it is not always known why erroneous tire values are generated by the TPMS. Additionally, the frequency and magnitude of erroneous tire pressure values <NUM> can vary across different vehicle types. For example, vehicles <NUM> of different makes and models may generate different erroneous tire pressure values <NUM>. In some cases, two vehicles <NUM> of the same make and model but different year may even generate different erroneous tire pressure values <NUM>.

The inventors recognized and realized that machine learning classifiers could be utilized to overcome these challenges. Various embodiments herein relate to training and using machine learning classifiers to detect erroneous tire pressure values <NUM> that were previously difficult to detect using other methods.

Referring now to <FIG>, there is shown an example method <NUM> for training a machine learning classifier to detect erroneous tire pressure values <NUM>. Preferably, the machine learning classifier is a tree-based classifier that is trained using a supervised learning approach. For example, the machine learning classifier may be a decision tree, boosted tree, bootstrap aggregated tree, random forest, rotational forest, etc. An advantage of a tree-based classifier is that the classifier can be relatively small in size (as compared to other types of machine learning models) while maintaining good accuracy when tuned (e.g., through hyper-parameter tuning) and can therefore be stored and implemented using a relatively small amount of resources. Furthermore, tree-based models may not require input data to be normalized or standardized (e.g., when the models are trained using raw tire pressure data <NUM>), further reducing computational requirements. Hence, a tree-based classifier may be more easily implemented on a telematics device <NUM>, which may have limited hardware resources.

However, it should be appreciated that the machine learning classifier can generally include any suitable machine learning models. The models may be trained using supervised, unsupervised, semi-supervised, reinforcement, or other types of learning. The models may include, but are not limited to, artificial neural networks, decision trees, support-vector machines, nearest neighbors, linear regressions, logistical regressions, Bayesian networks, random forests, genetic algorithms, ensemble models, and the like. In general, the models may include any machine learning models that are trained to classify whether a tire pressure value is valid or erroneous, without being explicitly programmed to do so.

Preferably, the training method <NUM> is implemented at the fleet management system <NUM> (e.g., by at least one processor <NUM> executing instructions stored on at least one data store <NUM>). An advantage of implementing at least a portion of the training method <NUM> at the fleet management system <NUM> (i.e., remote from telematics devices <NUM> and computing devices <NUM>) is that less processing may be executed at the telematics devices <NUM> and/or computing devices <NUM>. Hence, the hardware complexity and cost of the telematics devices <NUM> and/or computing devices <NUM> can be reduced. Furthermore, it may be easier to update and/or modify software running on the fleet management system <NUM> as compared to the telematics devices <NUM> and/or computing devices <NUM>. However, it should be appreciated that the training method <NUM> may also be implemented, at least in part, using one or more telematics devices <NUM>, one or more computing devices <NUM>, or a combination thereof in some embodiments. That is, the training method <NUM> may be implemented by any of the one or more processors <NUM>, <NUM>, <NUM> executing instructions stored on any of the one or more data stores <NUM>, <NUM>, <NUM>.

At <NUM>, tire pressure data <NUM> can be retrieved. For example, tire pressure data <NUM> may be retrieved from fleet management system <NUM>, telematics device <NUM>, and/or computing device <NUM> (e.g., data stores <NUM>, <NUM>, <NUM>). The tire pressure data <NUM> can originate from a plurality of vehicles <NUM>. For example, the tire pressure data <NUM> may be collected by a plurality of telematics devices <NUM> installed in a plurality of vehicles <NUM>. The tire pressure data <NUM> may originate from a relatively large number of vehicles. For example, the tire pressure data <NUM> may originate from hundreds, thousands, or even millions of vehicles <NUM>. The plurality of vehicles <NUM> may include a plurality of different vehicle types. For example, the plurality of vehicles <NUM> may include vehicles <NUM> having different makes, models, and/or years. It should be appreciated that the tire pressure data <NUM> is a form of electronic data that requires a computer to transmit, receive, interpret, process and/or store.

The tire pressure data <NUM> can include a plurality of time series of tire pressure values. As described herein, each time series can include a plurality of data points, with each data point representing a tire pressure value at a particular point in time. For example, referring to <FIG>, there is shown an example time series of tire pressure values <NUM> collected from a vehicle <NUM> that can form part of the tire pressure data <NUM>. As shown, the tire pressure data <NUM> can include normal or valid tire pressure values <NUM>, as well as erroneous tire pressure values <NUM>.

Referring back to <FIG>, at <NUM>, histogram representations of the tire pressure data <NUM> can be generated. A histogram representation can be generated for each vehicle type in the plurality of vehicle types in the plurality of vehicles <NUM> from which the tire pressure data <NUM> originates. For instance, a histogram representation may be generated for each vehicle <NUM> having a different make, model, and/or year. For example, referring now to <FIG>, there is shown an example histogram representation <NUM>. As shown, the histogram representation can include a plurality of bins <NUM>. Each bin <NUM> can be associated with a tire pressure value (or range of tire pressure values) and represent the number count of occurrences of that tire pressure value (or range of tire pressure values). Hence, the histogram representation <NUM> can represent a frequency distribution of tire pressure values for a given vehicle type.

Referring back to <FIG>, at <NUM>, erroneous tire pressure values <NUM> can be identified from the tire pressure data <NUM>. The erroneous tire pressure values <NUM> can be identified by detecting outliers in the histogram representations <NUM>. That is, the erroneous tire pressure values <NUM> can be identified as tire pressure values that differ significantly from other tire pressure values (i.e., valid tire pressure values <NUM>). Preferably, the erroneous tire pressure values <NUM> can be identified based on logarithmic comparisons of adjacent tire pressure value count features in each histogram representation <NUM>. For example, the logarithmic comparisons may include comparisons between adjacent histogram bin heights and/or between adjacent histogram bin percentage ranks.

In some embodiments, the logarithmic comparisons may involve determining a log of the ratio of adjacent histogram bin heights. For example, the logarithmic comparisons may include: <MAT> <MAT> <MAT> <MAT> <MAT> <MAT> where hx is histogram bin height of histogram bin x.

In some embodiments, the logarithmic comparisons may involve determining a log of the ratio of adjacent histogram bin percentage ranks. For example, the logarithmic comparisons may include: <MAT> <MAT> <MAT> <MAT> <MAT> <MAT> where rx is the cumulative percentage rank of histogram bin x.

In some embodiments, the logarithmic comparisons may involve a combination of comparisons. For example, the logarithmic comparisons may include: <MAT> <MAT> <MAT>.

In some embodiments, the logarithmic comparisons may involve determining whether a metric exceeds a predetermined threshold. For example, the logarithmic comparisons may involve determining whether m<NUM>, m<NUM>, and/or m<NUM> exceed a predetermined threshold. For instance, an erroneous tire pressure value <NUM> may be identified when the minimum of m<NUM>, m<NUM>, and m<NUM> exceeds the predetermined threshold.

It should be appreciated that although the above examples involve comparing the three closest bins (i.e., x-<NUM> to x+<NUM>), any number of adjacent bins may be considered. For example, in some cases, the logarithmic comparisons may involve bins x-<NUM> to x+<NUM>, x-<NUM> to x+<NUM>, etc. In general, the number of bins may be a parameter that can be adjusted based on the tire pressure data <NUM>.

At <NUM>, erroneous tire pressure value patterns can be identified from the tire pressure data <NUM>. Each erroneous tire pressure value pattern can include a consecutive sequence of tire pressure values that contains one or more erroneous tire pressure values <NUM>. For example, referring to <FIG>, there is shown an example erroneous tire pressure value pattern <NUM>. In the illustrated example, the erroneous tire pressure value pattern <NUM> includes two erroneous tire pressure values <NUM> followed by four valid tire pressure values <NUM>. This erroneous tire pressure value pattern <NUM> can be represented as <NUM>, <NUM>, NV, NV, NV, NV, where NV is a valid (or normal) tire pressure value. However, it should be appreciated that an erroneous tire pressure value pattern <NUM> may contain any number of valid tire pressure values <NUM> and erroneous tire pressure values <NUM>.

The erroneous tire pressure value patterns <NUM> can be identified based on one or more erroneous tire pressure values <NUM>. That is, the erroneous tire pressure value patterns <NUM> can be identified by identifying the tire pressure values adjacent to one or more erroneous tire pressure values <NUM>. Preferably, the erroneous tire pressure value patterns <NUM> can be identified by detecting significant changes in tire pressure values adjacent the erroneous tire pressure values <NUM>. This may reduce the false detection of erroneous tire pressure value patterns that are physically impossible or rare. For example, the erroneous tire pressure value patterns <NUM> may be identified by identifying consecutive sequences of tire pressure values containing one or more erroneous tire pressure values <NUM> and satisfying a value change threshold. The value change threshold can be any predetermined value that represents a significant change in the tire pressure values. In the example illustrated in <FIG>, the change in value between the second erroneous tire pressure value <NUM> and the first valid tire pressure value <NUM> satisfies the value change threshold. Preferably, the erroneous tire pressure value patterns <NUM> can also be identified by identifying tire pressure value patterns that are common among a plurality of different vehicles <NUM> of the same vehicle type. This may reduce the false detection of erroneous tire pressure value patterns caused by rapid deflation or inflation of tires. For example, the erroneous tire pressure value patterns <NUM> can be identified by identifying consecutive sequences of tire pressure values containing one or more erroneous tire pressure values for a plurality of different vehicles <NUM>.

Referring back to <FIG>, at <NUM>, tire pressure value samples can be generated. Each tire pressure value sample can include a consecutive sequence of tire pressure values. Preferably, the tire pressure value samples are collected from a plurality of different vehicle types. For example, referring to <FIG>, there is shown example tire pressure value samples <NUM>. As shown, each tire pressure value sample <NUM> can include a current tire pressure value <NUM> and a series of lagging tire pressure values <NUM> forming a consecutive sequence of tire pressure values.

The tire pressure value samples <NUM> can include both erroneous tire pressure value samples and valid tire pressure value samples. For instance, in the illustrated example, tire pressure sample 430b is an erroneous tire pressure value sample (i.e., having a current tire pressure value <NUM> that is invalid), whereas tire pressure samples 430a and 430c are valid tire pressure value samples (i.e., having current tire pressure values <NUM> that are valid). As shown, each erroneous tire pressure value sample can include one or more one or more erroneous tire pressure values <NUM>, and each valid tire pressure value sample can include a plurality of valid tire pressure values <NUM>. (It should be appreciated that an erroneous tire pressure value sample can also include one or more valid tire pressure values <NUM>. ) The tire pressure value samples can <NUM> be identified as either erroneous or valid based on the erroneous tire pressure values <NUM> and the erroneous tire pressure value patterns <NUM>. As shown each tire pressure value sample can be labeled to indicate whether that sample is valid or erroneous.

Preferably, a plurality of time value samples can also be generated. Each time value sample can be associated with a tire pressure value sample <NUM> and include a consecutive sequence of relative time values associated with the consecutive sequence of tire pressure values for the tire pressure value sample <NUM>. For instance, referring to <FIG>, there is shown example time value samples <NUM> corresponding to the tire pressure value samples <NUM> shown in <FIG>. As shown, each time value sample <NUM> can include a consecutive sequence of relative time values corresponding to the consecutive sequence of tire pressure values. Accordingly, each time value sample <NUM> can similarly include a current time value <NUM> and a series of lagging time values <NUM>.

The tire pressure value samples <NUM> (and time value samples <NUM>) may be generated from the original set of tire pressure data <NUM> or using a second set of tire pressure data <NUM>. For example, a second set of tire pressure data may be retrieved, labeled based on the erroneous tire pressure values <NUM> and erroneous tire pressure value patterns <NUM>, and tire pressure value samples <NUM> (and time value samples <NUM>) can be generated based on the labeled tire pressure values.

At <NUM>, the machine learning classifier can be trained. The machine learning classifier can be trained using the plurality of tire pressure value samples <NUM>. The machine learning classifier can also be trained using the plurality of time value samples <NUM>. The nature of the training can depend on the of type of machine learning classifier to be trained. Where the machine learning classifier is a decision tree, the training may involve using various entropy, information gain, and/or Gini impurity metrics, to determine the appropriate nodes and branching for the decision tree. For example, ID3 (Iterative Dichotomiser <NUM>), C4. <NUM>, CART (Classification And Regression Tree), or similar algorithms may be utilized.

Referring now to <FIG>, there is shown an example decision tree <NUM> that can be trained using training method <NUM> to determine whether a tire pressure value is erroneous (i.e., not valid) or valid. As shown, the decision tree <NUM> can have a hierarchical or tree-like structure made up of a plurality of nodes <NUM> and a plurality of branches <NUM> connecting the nodes <NUM>. Each internal or decision node <NUM> can represent a decision or test on an attribute, each branch <NUM> can represent the outcome of that decision or test, and each end or leaf node <NUM> can represent a classification. As shown, each path from the root node <NUM> to a leaf node <NUM> can represent a classification rule. As described herein, the structure of the decision tree <NUM> (e.g., the attributes evaluated at each node) can be established by a suitable training algorithm (e.g., ID3, C4. <NUM>, CART, etc.) using suitable training data (e.g., tire pressure value samples <NUM> and time value samples <NUM>).

Referring now to <FIG>, there is shown an example confusion matrix for a decision tree <NUM> trained using training method <NUM>. As shown, the training method <NUM> can produce a tire pressure value classifier having almost <NUM>% accuracy.

Referring now to <FIG>, there is shown an example method <NUM> for detecting and removing erroneous tire pressure values. Preferably, the erroneous value removal method <NUM> is implemented by a telematics device <NUM> (i.e., by at least one processor <NUM> executing instructions stored on at least one data store <NUM>). An advantage of executing at least a portion of the erroneous value removal method <NUM> at a telematics device <NUM> is that less tire pressure data <NUM> is transmitted to the fleet management system <NUM>. This may reduce bandwidth requirements for the network <NUM> and storage and processing requirements for the fleet management system <NUM> and/or computing devices <NUM>. However, it should be appreciated that in some embodiments, the erroneous value removal method <NUM> may be executed, at least in part, by the fleet management system <NUM>, one or more computing devices <NUM>, or a combination thereof. That is, the erroneous value removal method <NUM> may be implemented by any of the one or more processors <NUM>, <NUM>, <NUM> executing instructions stored on any of the one or more data stores <NUM>, <NUM>, <NUM>.

At <NUM>, tire pressure data <NUM> can be received. The tire pressure data <NUM> can be received from a vehicle <NUM> by the telematics device <NUM>. For example, the tire pressure data <NUM> can be collected by the telematics device <NUM> from a TPMS though one or more vehicle interfaces <NUM>, such as an ODB-II port and/or CAN bus. The tire pressure data <NUM> can include a time series of tire pressure values. The time series can include a plurality of data points, with each data point representing a tire pressure value at a particular point in time. The tire pressure data <NUM> can include normal or valid tire pressure values <NUM>, as well as erroneous tire pressure values <NUM>.

At <NUM>, the tire pressure data <NUM> can be simplified. The tire pressure data <NUM> can be simplified by removing at least some of the tire pressure values. Since the tire pressure data <NUM> may be sampled at a relatively high frequency, there may be tire pressure values that are unnecessary to provide an accurate representation of the tire pressure. For example, there may be many duplicate tire pressure values. These unnecessary tire pressure values can be removed to simplify the tire pressure data <NUM> to a fewer number of data points.

Preferably, the tire pressure data <NUM> can be simplified by removing at least some of the tire pressure values that satisfy a predetermined interpolation error threshold. The predetermined interpolation error threshold can represent a maximum distance between an original curve defined by the tire pressure values and a simplified curve defined by a subset of the tire pressure values. Determining the simplified curve can involve determining an interpolation error of removing the at least some of the tire pressure values based on a Ramer-Douglas-Peucker algorithm. This may involve recursively dividing the original curve into line segments, starting with the first and last data points, to determine the resulting interpolation error. The data points that exceed the predetermined interpolation error threshold can be used to generate further line segments and determine interpolation error until the remaining data points satisfy the predetermined interpolation error threshold.

At <NUM>, at least one erroneous tire pressure value in the tire pressure data <NUM> can be detected. The at least one erroneous tire pressure value can be detected using a trained machine learning classifier. The trained machine learning classifier can be a machine learning classifier trained using the training method <NUM>. For example, the machine learning classifier can be a binary classifier operable to classify a tire pressure value as valid or erroneous. Preferably, the machine learning classifier is a tree-based classifier. However, the machine learning classifier can generally include any suitable machine learning models and can be trained using any suitable method.

As described herein, the machine learning classifier can be trained using a plurality of tire pressure value samples <NUM>. Each tire pressure value sample <NUM> can include a consecutive sequence of tire pressure values. The tire pressure value samples <NUM> can be collected from a plurality of different vehicle types (e.g., make, model, and/or year). The tire pressure value samples <NUM> can include erroneous tire pressure value samples and valid tire pressure value samples. The erroneous tire pressure value samples can include one or more erroneous tire pressure values. The valid tire pressure value samples can include a plurality of valid tire pressure values. The machine learning classifier can also be trained using a plurality of time value samples <NUM>. Each time value sample <NUM> can include a consecutive sequence of relative time values associated with the consecutive sequence of tire pressure values.

The machine learning classifier can detect each erroneous tire pressure value based on the erroneous tire pressure value and a plurality of lagging tire pressure values consecutively trailing the erroneous tire pressure value. For example, similar to the tire pressure value samples <NUM> used to train the machine learning classifier, the erroneous tire pressure value can be a current tire pressure value <NUM> and the plurality of lagging tire pressure values can be a series of lagging tire pressure values <NUM>.

The machine learning classifier can also detect the erroneous tire pressure values based on a plurality of relative time values associated with the erroneous tire pressure value and the plurality of lagging tire pressure values. For example, similar to the time value samples <NUM> used to train the machine learning classifier, the relative time values can include a current time value <NUM> and a series of lagging time values <NUM>.

At <NUM>, the tire pressure data <NUM> can be cleaned. The tire pressure data <NUM> can be cleaned by removing the at least one erroneous tire pressure value. That is, the at least one erroneous tire pressure value detected by the trained machine learning classifier can be removed from the tire pressure data <NUM>.

At <NUM>, the tire pressure data <NUM> can be transmitted to a fleet management system <NUM>. The at least one erroneous tire pressure value is not transmitted to the fleet management system <NUM>. As a result, the amount of tire pressure data <NUM> transmitted to the fleet management system <NUM>, processed by the fleet management system <NUM>, and stored by the fleet management system <NUM> can be reduced. This may reduce bandwidth requirements for the network and storage and processing requirements for the fleet management system <NUM>. This may also improve the quality and accuracy of the tire pressure data <NUM>.

It will be appreciated that for simplicity and clarity of illustration, where considered appropriate, reference numerals may be repeated among the figures to indicate corresponding or analogous elements. In addition, numerous specific details are set forth in order to provide a thorough understanding of the embodiments described herein. However, it will be understood by those of ordinary skill in the art that the embodiments described herein may be practiced without these specific details. In other instances, well-known methods, procedures and components have not been described in detail so as not to obscure the embodiments described herein. Also, the description is not to be considered as limiting the scope of the embodiments described herein.

It should also be noted that the terms "coupled" or "coupling" as used herein can have several different meanings depending in the context in which these terms are used. For example, the terms coupled or coupling may be used to indicate that an element or device can electrically, optically, or wirelessly send data to another element or device as well as receive data from another element or device. Furthermore, the term "coupled" may indicate that two elements can be directly coupled to one another or coupled to one another through one or more intermediate elements.

It should be noted that terms of degree such as "substantially", "about" and "approximately" as used herein mean a reasonable amount of deviation of the modified term such that the end result is not significantly changed. These terms of degree may also be construed as including a deviation of the modified term if this deviation would not negate the meaning of the term it modifies.

In addition, as used herein, the wording "and/or" is intended to represent an inclusive-or. That is, "X and/or Y" is intended to mean X or Y or both, for example. As a further example, "X, Y, and/or Z" is intended to mean X or Y or Z or any combination thereof.

Furthermore, any recitation of numerical ranges by endpoints herein includes all numbers and fractions subsumed within that range (e.g., <NUM> to <NUM> includes <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, and <NUM>). It is also to be understood that all numbers and fractions thereof are presumed to be modified by the term "about" which means a variation of up to a certain amount of the number to which reference is being made if the end result is not significantly changed.

The example embodiments of the systems and methods described herein may be implemented as a combination of hardware or software. In some cases, the example embodiments described herein may be implemented, at least in part, by using one or more computer programs, executing on one or more programmable devices comprising at least one processing element, and a data storage element (including volatile memory, non-volatile memory, storage elements, or any combination thereof). Programmable hardware such as FPGA can also be used as standalone or in combination with other devices. These devices may also have at least one input device (e.g., a pushbutton keyboard, mouse, a touchscreen, and the like), and at least one output device (e.g., a display screen, a printer, a wireless radio, and the like) depending on the nature of the device. The devices may also have at least one communication device (e.g., a network interface).

It should also be noted that there may be some elements that are used to implement at least part of one of the embodiments described herein that may be implemented via software that is written in a high-level computer programming language such as object-oriented programming. Accordingly, the program code may be written in C, C++ or any other suitable programming language and may comprise modules or classes, as is known to those skilled in object-oriented programming. Alternatively, or in addition thereto, some of these elements implemented via software may be written in assembly language, machine language or firmware as needed. In either case, the language may be a compiled or interpreted language.

At least some of these software programs may be stored on a storage media (e.g., a computer readable medium such as, but not limited to, ROM, magnetic disk, optical disc) or a device that is readable by a general or special purpose programmable device. The software program code, when read by the programmable device, configures the programmable device to operate in a new, specific and predefined manner in order to perform at least one of the methods described herein.

Furthermore, at least some of the programs associated with the systems and methods of the embodiments described herein may be capable of being distributed in a computer program product comprising a computer readable medium that bears computer usable instructions for one or more processors. The medium may be provided in various forms, including non-transitory forms such as, but not limited to, one or more diskettes, compact disks, tapes, chips, and magnetic and electronic storage.

Claim 1:
A method for detecting and removing erroneous tire pressure values (<NUM>), the method comprising operating at least one processor (<NUM>) of a telematics device (<NUM>) to:
receive, from a vehicle (<NUM>), tire pressure data (<NUM>) comprising a time series of tire pressure values;
simplify the tire pressure data (<NUM>) by removing at least some of the tire pressure values that satisfy a predetermined interpolation error threshold;
detect, using a trained machine learning classifier, at least one erroneous tire pressure value (<NUM>) in the tire pressure data (<NUM>), each erroneous tire pressure value (<NUM>) being detected based on the erroneous tire pressure value (<NUM>) and a plurality of lagging tire pressure values (<NUM>) consecutively trailing the erroneous tire pressure value (<NUM>);
clean the tire pressure data (<NUM>) by removing the at least one erroneous tire pressure value (<NUM>); and
transmit the tire pressure data to a fleet management system (<NUM>), whereby the at least one erroneous tire pressure value (<NUM>) is not transmitted to the fleet management system (<NUM>).