Patent Description:
To ensure efficient use and safe operation of equipment (e.g. machines, vehicles, sensors, broadcast devices, computing devices, etc.) in various operating environments (e.g. construction sites, factories, etc.), it is important to monitor the operating environment of and/or an operating state or condition of the equipment. For example, physical vibrations may provide an indication of conditions of the equipment or in the environment of the equipment. In some instances, operators or control systems may perform actions (e.g. rerouting, disabling, or otherwise altering an operating state of the equipment) to avoid damage to the equipment itself or to an environment in a vicinity of the equipment.

In some instances, physical vibrations that are considered normal for an environment may not yet be known and it may be difficult or impossible to pre-train a single model to be able to differentiate between what physical vibrations are normal for the environment and what physical vibrations are considered anomalous. For example, in a construction site environment, a compactor equipment operating on gravel may be considered normal in some situations (e.g. where the ground of the environment is exclusively covered in gravel) and anomalous in other situations (e.g. when the compactor is operating on asphalt in the immediate environment and the surrounding environment is gravel). Accordingly, there is a need for a system that is able to learn on its own when deployed in a new environment. Also, in dynamic environments, environmental conditions change over time and it is important, in such environments, not to mistake evolving environmental conditions for anomalous environmental conditions.

Conventional supervised learning clustering models may be used to categorize a set of input data into clusters and assign new data to an existing cluster or determine that the new data is anomalous and not assignable to an existing cluster. However, conventional supervised clustering models and anomaly detection models are either not configured to be retrained or have long retraining periods and are, thus, often unable to provide accurate predictions (<NUM>) when redeployed from one environment to another and (<NUM>) in dynamic environments that experience evolving environmental conditions, resulting in hyper-classification of environmental data as anomalous. Further, the necessary retraining periods of certain conventional supervised clustering and anomaly detection models may be longer than a time period of a desired application of the model and therefore these conventional models may unsuitable for training on the fly in applications of short duration and/or may not, due to greater consumption of computing resources, be economically effective in applications of short duration. Prior art documents relevant to the invention are the following non patent-literature documents:.

None of these documents is concerned with solutions in reaction to environmental changes which trigger a self-retraining functionality.

Certain embodiments involve detecting anomalies in vibration samples in an operating environment of an equipment, according to certain embodiments described in the present disclosure. A sampling computing device receives, from a transducer computing device located within a predefined proximity to an equipment in an operating environment, a vibration sample from the operating environment and increments a retrain counter in response to receiving the vibration sample. In response to determining that the incremented retrain counter does not meet or exceed a retrain threshold, the sampling computing device predicts, using a model, (<NUM>) an anomalous or non-anomalous designation for the vibration sample and (<NUM>) a cluster assignment, to a particular cluster of a set of clusters, for the vibration sample when the model predicts the non-anomalous designation for the vibration sample. The sampling computing device receives, from the transducer computing device, a subsequent vibration sample from the operating environment and further increments the retrain counter in response to receiving the subsequent vibration sample. In response to determining that the further incremented retrain counter exceeds a retrain threshold, the sampling computing device receives from the transducer computing device, a subsequent set of vibration samples from the operating environment and retrains, using the subsequent vibration sample and the subsequent set of vibration samples, the model.

These illustrative embodiments are mentioned not to limit or define the disclosure, but to provide examples to aid understanding thereof. Additional embodiments are discussed in the Detailed Description, and further description is provided there.

Features, embodiments, and advantages of the present disclosure are better understood when the following Detailed Description is read with reference to the accompanying drawings.

The present disclosure involves classifying vibration samples in an operating environment of an equipment. For instance, as explained above, conventional systems designed for clustering data do not employ periodic retraining of clustering and anomaly detection models. Therefore, conventional supervised clustering systems and anomaly detection systems are not able to perform well in environments with changing environmental conditions, thereby increasing a likelihood of misidentification of input data as being anomalous. Certain embodiments described herein can avoid one or more of these problems by, for example, periodically retraining a clustering model and an anomaly detection model. The periodic retraining, using short retraining periods (e.g. a few seconds) that use less computational resources, of the machine learning clustering and anomaly detection models described in certain embodiments herein allows for adaptability to a dynamic environment and for effective use in applications of short duration, which is either not possible or not cost effective using conventional machine learning models.

The following non-limiting example is provided to introduce certain embodiments. A sampling device detects initial vibration samples from an operating environment via a transducer that is placed on or near an equipment (e.g. a construction vehicle such as a compactor). In some embodiments, the equipment interacts with an environment (e.g. a layer of asphalt under the compactor, air around the compactor, etc.), producing physical vibrations in the environment (e.g. the compactor produces a vibration by rolling over the asphalt) that the transducer detects and communicates to the sampling device. The transducer converts physical vibrations from the environment into electrical signals and the sampling device, in some embodiments, generates the vibration samples by converting the electrical signals outputted via the transducer to a digital signal format, rendering the digital signal format into a one-dimensional array, and then converting the one-dimensional array data into two-dimensional spectrogram data. In some embodiments, the sampling device detects vibration samples periodically using the transducer. For example, at every predefined period of time (e.g. at every one second), the sampling device detects, via the transducer, a new vibration sample of a predefined amount of time (e.g. a one second vibration sample).

In response to detecting a set of vibration samples of a predefined amount, the sampling device may determine clusters for the initial set of vibration samples. For example, the predefined amount comprises <NUM>, <NUM>, <NUM>, <NUM>, or other predefined number of vibration samples. In another example, the predefined amount of vibration samples comprises vibration samples detected for a predefined period (e.g. a number of vibration samples detected over a five minute period). In some embodiments, the sampling device clusters the set of vibration samples by performing a principal component analysis on the set of the predefined amount of vibration samples to reduce the vibration samples to principal components or dimensions and applying a clustering algorithm to group the set of the predefined amount of vibration samples into clusters based on the principal components analysis data. In some embodiments, the sampling device performs the principal component analysis on training data including the two-dimensional spectrogram data representing the set of vibration samples. The sampling device uses an affinity propagation algorithm to cluster the set of vibration samples based on the principal component analysis data. For example, clustering the set of vibration samples includes assigning each of set of vibration samples to a cluster of a set of clusters.

The sampling device may train a multiple class logistic regression ("MCLR") model using the set of vibration samples. In some embodiments, for each particular vibration sample of the set of initial vibration samples, particular spectrogram data corresponding to the particular vibration sample is used as training features and a particular cluster to which the particular vibration sample is assigned is used as a training target. In some embodiments, the MCLR model is an unsupervised algorithm because clusters determined based on the initial set of vibration samples do not have a ground truth to which to compare. For example, the identified clusters are not labeled with a ground truth label but merely with cluster identifiers (e.g. clusters identified as 'cluster <NUM>,' 'cluster <NUM>,' 'cluster <NUM>,' 'cluster <NUM>'). However, in some embodiments, an operator of the sampling device may provide a ground truth label (e.g. clusters labeled as 'compactor moving forward over asphalt,' 'idle compactor,' 'compactor moving in reverse over asphalt,' 'compactor moving over gravel,' etc.) to each identified cluster of vibration samples. In other embodiments, instead of training a MCLR model on the initial set of vibration samples, the sampling device trains another type of model, for example, a K-Nearest-Neighbor approach.

The sampling device may train an anomaly detection model on the set of samples. In some embodiments, the sampling computing device trains a one class support vector machine ("OCSVM") to detect anomalous vibration samples. The sampling computing device trains the OCSVM using the principal component analysis data determined from the set of initial vibration samples or using data that is determined by reducing a number of dimensions in the principal component analysis data. In some embodiments, the sampling device trains the OCSVM to predict if subsequent vibration samples correspond to an identified cluster or do not correspond to an identified cluster (an anomalous vibration sample). In the embodiments described herein, the identified clusters may or may not have ground truth labels and the OCSVM can determine if a vibration sample is anomalous (corresponds to a known cluster) whether or not the known clusters have ground truth labels.

The sampling device may collect a next vibration sample from the operating site environment. In some examples, the sampling device continues to collect vibration samples at a predefined rate (e.g. a one second vibration sample collected every one second) after (<NUM>) collecting the set of initial vibration samples, (<NUM>) clustering the set of initial vibration samples, and (<NUM>) training the anomaly detection (OVSCM) model and the cluster assignment (MCLR) model. For example, the sampling device, for the set of initial vibration samples, collected <NUM> subsequent one-second (<NUM>) vibration samples over a <NUM>-second period and the <NUM>st one-second (<NUM>) vibration sample collected by the sampling device is the next vibration sample.

The sampling device may collect a next vibration sample and determines, using the trained anomaly detection model, whether the next vibration sample is anomalous. In some embodiments, the sampling device, when collecting a next vibration sample, determines whether a retrain counter has been exceeded before determining whether the next vibration sample is anomalous. For example, the retrain counter is exceeded if a number of collected samples exceeds the retrain counter. The number of vibration samples considered by the retrain counter may include the set of initial vibration samples plus a predetermined number of next vibration samples. If the number of detected samples exceeds the retrain counter, the sampling device collects a new set of vibration samples, clusters the set of samples, and retrains the anomaly detection model and cluster assignment model. For example, the collected next vibration sample becomes a first sample in a new initial set of samples used to retrain the models. For example, the sampling device collects a new initial set of samples, clusters the new initial set of samples, retrains the anomaly detection and cluster assignment models based on the new initial set of samples, collects a subsequent next vibration sample, and determines, using the trained anomaly detection model, whether the subsequent next vibration sample is anomalous.

If the sampling device, using the anomaly detection model, determines that the next vibration sample is an anomalous vibration sample, the sampling device may increment an alarm counter. If an alarm threshold is not exceeded after incrementing the alarm counter, the sampling device collects a subsequent next vibration sample and determines, using the anomaly detection model, whether the subsequent next vibration sample is an anomalous vibration sample. If an alarm threshold is exceeded after incrementing the alarm counter, however, the sampling device reports an alarm for the next vibration sample before collecting the subsequent next vibration sample. In some embodiments, the sampling device does not determine a cluster assignment for the anomalous vibration sample. In other embodiments, the sampling device determines a cluster assignment for the anomalous vibration sample using the trained cluster assignment model.

If the sampling device, using the anomaly detection model, determines that the next vibration sample is not an anomalous vibration sample, the sampling device may determine a cluster assignment for the next vibration sample using the trained MCLR model, report the cluster assignment for the next vibration sample, and then collect a subsequent next vibration sample. For example, the sampling device determined clusters for the set of vibration samples including cluster <NUM>, cluster <NUM>, cluster <NUM>, cluster <NUM>, and cluster <NUM> and then, using the trained MCLR model, determines that the next vibration sample belongs to cluster <NUM> and assigns the next vibration sample to cluster <NUM>.

The sampling device continues to detect vibration samples and, for each detected vibration sample, may increment a retrain counter and also (<NUM>) determine a cluster assignment or (<NUM>) classify the vibration samples as anomalous and increments an alarm counter. When the alarm counter exceeds a threshold, the sampling device may report an alarm for the vibration sample to a management system via a network. In some embodiments, the sampling device displays the alarm via a user interface of the sampling device. In certain embodiments, the sampling device or the management system communicates instructions to an equipment associated with the anomalous samples (e.g. instructions to shut off, perform another operation), or otherwise alerts an operator of the equipment that anomalous samples have been detected. In some embodiments, as the sampling device continues to collect vibration samples, and the retrain counter exceeds a threshold, the sampling device collects a new initial set of samples, clusters the new initial set of samples, retrains the OVSCM and MCLR based on the new initial set of samples, and continues to collect subsequent next vibration samples, classify the collected samples as anomalous or as belonging to a defined cluster and/or report alarm states. In some embodiments, when the retrain counter is exceeded, the sampling device retrains the OVSCM and MCLR models using a completely new set of vibration samples. In other embodiments, the sampling device retrains the OVSCM and MCLR models using a set of previously collected samples (e.g. <NUM> most recently collected vibration samples) and a new set of subsequently collected vibration samples (e.g. <NUM> newly collected vibration samples).

In certain embodiments, as the sampling device continues to collect samples and is periodically retrained according to the retraining counter, the environment of the equipment changes. For example, as a compactor equipment compacts asphalt, physical vibrations produced in the environment by the interaction of the compactor equipment with the asphalt changes over time as the asphalt is compacted and dries. In this example, vibrations produced by the compactor equipment as it initially encounters fresh asphalt are characteristically different than vibrations produced as the compactor continues to interact with the asphalt until the asphalt is fully compacted. For example, the compactor equipment may make several passes over the asphalt to compact the asphalt. Since the sampling device periodically retrains the anomaly detection and clustering models, a baseline for the environment adapts to these changing environmental conditions and vibration samples that could otherwise be classified as anomalous (if the models were not periodically retrained) are assigned to clusters. In these examples, in the environment with changing conditions, decreasing the threshold for the retraining counter (decreasing the retraining period) results in greater number of vibration samples that are assigned to clusters and a lesser number of vibration samples that are reported as anomalous. In these examples, increasing the threshold for the retraining counter (increasing the retraining period) results in a lesser number of vibration samples that are assigned to clusters and a greater number of vibration samples that are reported as anomalous.

Referring now to the drawings, <FIG> depicts an example of a computing environment <NUM> for classifying vibration samples in an operating environment of an equipment, according to certain embodiments described in the present disclosure. In some embodiments, the computing environment <NUM> includes an equipment <NUM>, a transducer device <NUM>, a sampling computing device <NUM>, and a management computing system <NUM>.

In the example depicted in <FIG>, an operating site environment <NUM> includes an equipment <NUM>, a transducer device <NUM>, and a sampling computing device <NUM> that communicates via a data network <NUM> with a management computing system <NUM>. In some embodiments, the operating site environment <NUM> includes multiple equipment <NUM>. For example, the operating site environment could be a construction site including excavator equipment 111a, bulldozer equipment 111b, and compactor equipment 111c. In examples described herein, each equipment <NUM> is associated with a corresponding transducer device <NUM>. The transducer device <NUM> is affixed to the equipment <NUM>, is a component of the equipment <NUM>, or is otherwise within a predefined physical proximity to an equipment <NUM>. The transducer device <NUM> is communicatively coupled with the sampling computing device <NUM> via a local wired or wireless communication network. In an example, the transducer device <NUM> and the sampling computing device <NUM> communicate via a Bluetooth network, a Bluetooth low energy ("BLE") network, a Wi-Fi network, a near field communication ("NFC") network, or other wireless communication network. In other embodiments, the sampling computing device <NUM> comprises the transducer device <NUM> or the sampling computing device <NUM> and the transducer device <NUM> are both components of another device (e.g. the equipment <NUM> is a vehicle system and the sampling computing device <NUM> and the transducer device <NUM> are components of the equipment <NUM>).

The transducer device <NUM> includes a transducer <NUM>, a processor <NUM>, and a communication module <NUM>. The transducer device <NUM>, (<NUM>) detects, via the transducer <NUM>, physical vibrations from the operating site environment <NUM> and converts the physical vibrations to electrical signals, (<NUM>) generates, via the processor <NUM>, an input sample <NUM> based on the electrical signals generated by the transducer <NUM>, and (<NUM>) communicates, via the communication module <NUM>, the input sample <NUM> to the sampling computing device <NUM>. The input sample <NUM> generated by the transducer device <NUM> could be a waveform ("WAV") audio file, a MPEG-<NUM> Audio Layer III ("MP3") file, a Windows media audio ("WMA") file, or other audio file format. The transducer device <NUM> could comprise or could be a component of a microphone device in some embodiments. In some examples, the transducer device <NUM> could include a musical pickup device, for example, a banjo pickup device or a guitar pickup device.

The sampling computing device <NUM> receives the input sample <NUM> from the transducer device <NUM>. For example, the input sample <NUM> is in the form of an audio file. In the example depicted in <FIG>, the sampling computing device <NUM> includes an equipment management module <NUM> and a data storage unit <NUM>. In some examples, the sampling computing device <NUM> comprises a mobile computing device.

The equipment management module <NUM> communicates with one or more transducer devices <NUM> in the operating site environment <NUM>, where each respective transducer device <NUM> is associated with a respective equipment <NUM>. In certain examples, one or more functions described as being performed by the equipment management module <NUM> may instead be performed via management computing system <NUM>, which communicates with the sampling computing device <NUM> via the network <NUM>. In certain embodiments, the equipment management module <NUM> comprises an application that enables a user (e.g. an operating site manager or an operator of one or more equipment <NUM>) to monitor status information of one or more equipment <NUM> in the operating site environment <NUM>. The user may access the application via a user interface of the sampling computing device <NUM>. In certain examples, the application is a web browser application that communicates with the management computing system <NUM>. In some examples, the sampling computing device <NUM> may execute one or more of the edge processing <NUM> operations or the site processing operations <NUM> depicted in <FIG> in response to receiving an input via the equipment management application from a user of the sampling computing device <NUM>.

The data storage unit <NUM> includes a local or remote data storage structure accessible to the sampling computing device <NUM> suitable for storing information. A data storage unit can store relevant data as one or more databases, one or more matrices, computer code, etc. The data storage unit <NUM> may store certain training data and hyperparameters information used to train the model <NUM> used in the edge processing <NUM> operations described herein. The training data could comprise a threshold number of input samples <NUM> received by the sample computing device <NUM> from the transducer device <NUM>. The data storage unit <NUM> could store anomalies <NUM> and classified samples <NUM> outputted via the model <NUM> (including the anomaly detection model and the clustering module). In certain examples, the sampling computing device stores raw input samples <NUM> received from the transducer device <NUM> and the sampling computing device <NUM> accesses a set of the stored raw input samples <NUM> and trains the model <NUM> using the set during edge processing <NUM>.

In the embodiment depicted in <FIG>, the sampling computing device <NUM> performs edge processing <NUM> operations for each equipment <NUM>. In edge processing <NUM>, the sampling computing device <NUM> receives input samples <NUM> (e.g. vibration samples) from the transducer device <NUM> and, for each received input sample <NUM>, the sampling computing device <NUM> generates a sample representation <NUM> based on the received input sample <NUM>, inputs the sample representation to the model <NUM>, which either categorizes the input sample <NUM> as an anomaly <NUM> or outputs a classified sample <NUM>. For example, the sampling computing device <NUM> performs one or more pre-processing operations on the input sample <NUM> audio refile received from the transducer device <NUM> to generate the input sample representation <NUM> that is then used by the model <NUM> to either output a classified sample <NUM> or detect an anomaly <NUM>. In certain embodiments described herein, the model <NUM> includes an anomaly prediction model and a cluster assignment model. The classified sample <NUM> could be an assignment of the input sample representation <NUM> to a cluster of input sample representations <NUM> associated with previously collected input samples <NUM> using the cluster assignment model. As indicated in <FIG>, edge processing <NUM> may be continuous. For example, the sampling computing device <NUM>, after either determining that the previous input sample representation <NUM> is an anomaly <NUM> or generating a classified sample <NUM> by assigning the previous input sample representation <NUM> to a cluster, receives a subsequent input sample <NUM>, preprocesses the subsequent input sample <NUM> to generate a subsequent input sample representation <NUM>, and either (A) determines, using the anomaly detection model, that the subsequent input sample representation <NUM> is an anomaly <NUM> or (B) determines, using the clustering model, that the subsequent input sample representation <NUM> is a classified sample <NUM>. Though not depicted in <FIG>, edge processing <NUM> further includes retraining the model <NUM> (including the anomaly detection model and the cluster assignment model) when the number of input samples <NUM> received exceeds a threshold number (e.g. thirty, sixty, one hundred, or other predefined threshold number). Also, edge processing <NUM> could include determining that a number of detected anomalies <NUM> has exceeded an alarm threshold. For example, the alarm threshold comprises five, ten, twenty, or other predefined number of detected anomalies <NUM>. In certain examples, the alarm threshold comprises a predefined number of successive detected anomalies <NUM> or a predefined number of detected anomalies <NUM> within a time period. Certain aspects of edge processing <NUM> operations are described in <FIG> at blocks <NUM>-<NUM>.

In the embodiment depicted in <FIG>, the sampling computing device <NUM> performs site processing <NUM> operations for each equipment <NUM>. In site processing <NUM>, the sampling computing device <NUM> generates an alert report <NUM>. In some embodiments, site processing <NUM> includes performing equipment management <NUM> in accordance with the alert report <NUM>. The sampling computing device <NUM> could generate the alert report <NUM> in response to determining that the number of anomalies <NUM> detected exceeds an alarm threshold. The alarm report <NUM> could include the anomalous input samples <NUM> (or anomalous input sample representations <NUM>) for which the anomalies <NUM> were detected. The sampling computing device <NUM> could transmit the report to the management computing system <NUM>. Equipment management <NUM> operations could include communicating instructions to the equipment <NUM> associated with the transducer device <NUM> which collected the input samples <NUM> corresponding to input sample representations <NUM> categorized by the sampling computing device <NUM> as anomalies <NUM>. In some examples, the instructions could include an instruction to shut off or disable the equipment <NUM>, disable one or more functions of the equipment <NUM>, perform one or more operations of the equipment <NUM>, or other appropriate instructions to address the alert report <NUM> generated in response to the exceeded alarm threshold. In other examples, the equipment management <NUM> operations could include communicating instructions to a computing device associated with an operator of the equipment <NUM> (e.g. a mobile device of the equipment <NUM> operator) with instructions for the operator of the equipment. In some examples, equipment management <NUM> can include communicating instructions to the equipment <NUM> or to an operator of the equipment <NUM> in accordance with classification of the input sample <NUM> to a known cluster from the edge processing <NUM> operations. Certain aspects of site processing <NUM> operations are described in <FIG> at blocks <NUM>-<NUM>.

In the embodiment depicted in <FIG>, the edge processing <NUM> operations and site processing <NUM> operations are performed by the sampling computing device <NUM>. However, in some embodiments, the edge processing <NUM> operations and the site processing <NUM> operations, or one or more sub-operations of these operations, could be performed by the management computing system <NUM>, which communicates with the sampling computing device <NUM> via the network <NUM>.

The management computing system <NUM> executes one or more software modules that implement one or more online services for the sampling computing device <NUM> at the operating site environment <NUM> via the network <NUM>. In certain embodiments, the management computing system <NUM> communicates with sampling computing devices <NUM> at various operating site environments <NUM> via the network <NUM>. An example management computing system <NUM> includes a multi-operating-site analytics module <NUM>, a data storage unit <NUM>, and a communication module <NUM>.

The management computing system <NUM> may be associated with the equipment management module <NUM> of the sampling computing device <NUM>. In an example, the equipment management module <NUM> comprises an equipment management application resident on the sampling computing device <NUM> and communicates with the management computing system <NUM> to access one or more online services provided by the management computing system <NUM>. Example online services could include edge processing <NUM> operations, site processing <NUM> operations, and/or cloud processing <NUM> operations described herein. In an example, the user of the sampling computing device <NUM> accesses an online service of the management computing system <NUM> via the network <NUM> and downloads the equipment management module <NUM> or equipment management application onto the sampling computing device <NUM>. The multi-operating-site analytics module <NUM> may perform one or more operations described herein as being performed by the sampling computing device <NUM> or by the equipment management module <NUM>.

An example of a data storage unit <NUM> includes a local or remote data storage structure accessible to the management computing system <NUM> suitable for storing information. A data storage unit can store relevant data as one or more databases, one or more matrices, computer code, etc. In some examples, one or more functions described herein as performed by the data storage unit <NUM> may be performed by a data storage unit <NUM> of the sampling computing device <NUM>. In some examples, one or more functions described herein as performed by the data storage unit <NUM> of the sampling computing device <NUM> may be performed by a data storage unit <NUM>.

One or more of the sampling computing device <NUM> and the management computing system <NUM> could include a device having a communication module capable of transmitting and receiving data over a data network <NUM>. For instance, one or more of the sampling computing device <NUM> and the management computing system <NUM> could include a server, a desktop computer, a laptop computer, a tablet computer, a television with one or more processors embedded therein and/or coupled thereto, a smart phone, a handheld computer, or any other wired or wireless, processor-driven device.

Examples of the data network <NUM> include, but are not limited to, internet, local area network ("LAN"), wireless area network, wired area network, wide area network, and the like. For example, the data network <NUM> includes a wired or wireless telecommunication means by which network systems can communicate and exchange data. For example, each data network <NUM> can be implemented as, or may be a part of, a storage area network ("SAN"), a personal area network ("PAN"), a metropolitan area network ("MAN"), a LAN, a wide area network ("WAN"), a wireless LAN ("WLAN"), a virtual private network ("VPN"), an intranet, an Internet, a mobile telephone network, a card network, a Bluetooth network, a Bluetooth low energy ("BLE") network, a Wi-Fi network, a near field communication ("NFC") network, any form of standardized radio frequency, or any combination thereof, or any other appropriate architecture or system that facilitates communication of signals, data, and/or messages (generally referred to as data). It should be understood that the terms "data" and "information" are used interchangeably herein to refer to text, images, audio, video, or any other form of information that can exist in a computer-based environment.

<FIG> depicts an example of a method <NUM> for classifying vibration samples in an operating environment of an equipment, according to certain embodiments. For illustrative purposes, the method <NUM> is described with reference to the components illustrated in <FIG>, though other implementations are possible. For example, the program code for the equipment management module <NUM>, which is stored in a non-transitory computer-readable medium, is executed by one or more processing devices to cause the sampling computing device <NUM> to perform one or more operations described herein. For example, the program code for the multi-operating-site analytics module <NUM> and/or one or more online services provided by the management computing system <NUM>, which is stored in a non-transitory computer-readable medium, is executed by one or more processing devices to cause the management computing system <NUM> to perform one or more operations described herein. The operations described herein are described as being performed by the sampling computing device <NUM>. However, one or more of these operations described in <FIG> may be performed by the management computing system <NUM> instead of or in addition to being performed by the sampling computing device <NUM>.

At block <NUM>, the method <NUM> involves the sampling computing device <NUM> detecting initial vibration input samples <NUM> from an operating site environment <NUM>. The sampling computing device <NUM> communicates with a transducer device <NUM> that is affixed to an equipment <NUM>, that is a component of the equipment <NUM>, or that is otherwise within a predefined proximity (e.g. within one meter, two meters, or other predefined distance) to the equipment <NUM> such that the transducer device <NUM> is able to detect physical vibrations in the operating site environment <NUM>. An operating site environment <NUM> personnel may place the transducer device <NUM> in the desired location on the equipment <NUM> or within the predefined proximity to the equipment <NUM>. In certain embodiments, the transducer device <NUM> may be attached to the equipment <NUM> at a particular location, for example, near an engine of the equipment <NUM>, onto a wheelhouse or wheel well of the equipment <NUM>, near or onto a tool of the equipment <NUM> with which the equipment <NUM> interacts with the operating site environment, or other desired location.

The transducer device <NUM> converts physical vibrations detected in the operating site environment <NUM> into electrical signals (e.g. analog voltages). In some embodiments, the sampling computing device <NUM> converts the electrical signals output by the transducer device <NUM> to digital amplitude measurements and, using a discrete Fourier transform, converts the amplitude measurements to frequency measurements. Physical vibrations can be present and detected in the operating site environment <NUM> in response to an interaction of the equipment <NUM> with the operating site environment <NUM>, an interaction of the equipment <NUM> with other equipment <NUM>, based on one or more conditions of the operating site environment <NUM>, or other situations in which physical vibrations are detected in the operating site environment <NUM>. For example, a specific equipment <NUM> (an excavator equipment 111a, a bulldozer equipment 111b, a compactor equipment 111c, or other equipment) may generate physical vibrations of specific characteristics when compared to characteristics of physical vibrations generated by another equipment <NUM>. Also, an equipment <NUM> may generate vibrations with varying characteristics corresponding to an operation or state of the equipment <NUM> (a compactor equipment 111c could idle, drive, reverse, drive while compacting, drive without compacting, or perform some other operation or combination of operations). Also, an equipment <NUM> may generate vibrations with varying characteristics corresponding to an interaction of the equipment <NUM> with the operating environment <NUM>, for example, with one or more substances (e.g. compacting a substance, moving over a substance, digging into a substance, etc.). Also, an equipment <NUM> may generate vibrations with varying characteristics corresponding to a condition, state, or other property of a substance with which the equipment <NUM> is interacting (e.g. a consistency of asphalt being compacted). Also, the operating environment <NUM> itself may generate vibrations.

Following are specific examples of types of physical vibrations that could be generated in the operating site environment <NUM>. However, these examples are not exclusive and other situations in the operating site environment <NUM> not listed herein may result in detectable physical vibrations. In each of these examples, the respective physical vibration is detected by the transducer device <NUM> of the equipment <NUM>. Each of the example vibrations generated in each of these examples has different characteristics from the vibrations generated in the other examples. The following examples.

For example, a physical vibration in the operating site environment <NUM> is generated in response to a compactor equipment 111c compacting a substance in the operating site environment <NUM>. In this example, the compactor equipment 111c compacting one surface may produce a vibration with different characteristics than vibrations generated responsive to compacting other surfaces. Accordingly, characteristics of physical vibrations generated by the compactor equipment 111c may change if the compactor equipment 111c transitions from one surface to another different surface. Further, in this example, the physical vibration produced by the compactor varies, even operating over the same substance, based on a hardness, a degree or level of compaction, or another physical property of the substance that is being compacted. Accordingly, characteristics of the physical vibrations generated by the compactor equipment 111c operating on one surface may change as the physical characteristics of the surface change in response to operation of the compactor equipment 111c. In another example, a physical vibration is detected in the operating site environment <NUM> in response to the compactor equipment 111c coming into proximity to (e.g. passing or being passed by, colliding with, etc.) another equipment (e.g. the excavator equipment 111a) in a proximity to the compactor equipment 111c such that vibrations generated by the other equipment or generated as a result of the coming into proximity with the other equipment can be detected. In yet another example, a physical vibration is generated in the operating site environment <NUM> corresponding to a measure of an operating state of an engine or other component of the compactor equipment 111c and characteristics of the physical vibration may change as the operating state of the engine or other component of the compactor equipment 111c changes. In another example, a physical vibration is generated in the operating site environment <NUM> in response to an environmental sound. In another example, a physical vibration generated in response to a physical vibration output of or caused by the equipment 111b. In another example, a physical vibration is generated by or caused by operating site personnel in the operating site environment <NUM>. In yet another example, a physical vibration is generated in response to an environmental condition in the operating site environment <NUM>. In another example, a physical vibration having first characteristics is generated in response to a flow of a substance through a conveyance mechanism (e.g. a tube, a pipe, a conduit, etc.) of an equipment and a physical vibration having second characteristics is generated in response to a blockage in the flow of the substance through conveyance mechanism of the equipment. In this other example, characteristics of physical vibrations can vary based on a flow rate of the substance through the conveyance mechanism, a type of substance flowing through the conveyance mechanism, or other physical property of the substance flowing through the conveyance mechanism.

In some embodiments, the transducer device <NUM> detects vibration samples periodically. For example, at every predefined period of time (e.g. at every one second), the transducer device <NUM> detects a new vibration input sample <NUM> of a predefined amount of time (e.g. a one second vibration sample). In certain examples, the transducer device <NUM>, based on the electrical signals output by the transducer device <NUM>, generates an audio file that represents each vibration input sample <NUM>. In other examples, the transducer <NUM> device transmits a combined audio file that represents multiple vibration input samples <NUM> to the sampling computing device <NUM> and the sampling computing device <NUM> generates an audio file for each vibration input sample <NUM> from the combined audio file. An example audio file includes a sample rate (e.g. a number of samples per second. The sample rate can be configured. An example of an audio file representing a vibration input sample <NUM> is described in <FIG>.

At block <NUM>, the method <NUM> involves the sampling computing device <NUM> determining whether an initial sample quantity threshold is met by the detected initial vibration input samples <NUM>. In an example, the initial sample quantity threshold is a predefined number of initial vibration input samples <NUM>. For example, the predefined amount comprises <NUM>, <NUM>, <NUM>, <NUM>, or other predefined number of vibration samples. In another example, the predefined amount of vibration samples comprises vibration samples detected for a predefined period (e.g. a number of vibration samples detected over a five minute period). In some instances, when configuring the predefined amount, as the predefined amount is increased, an accuracy of one or more outputs generated using the anomaly detection and cluster assignment models increases but a time of a training phase is increased. In some instances, when configuring the predefined amount, as the predefined amount is decreased, an accuracy of one or more outputs generated using the anomaly detection and cluster assignment models decreases but the time of the training phase is decreased. The sampling computing device <NUM> could configure a training set counter to increment as the sampling computing device <NUM> receives each initial vibration input sample <NUM>.

If the sampling computing device <NUM> determines that a number of initial vibration input samples <NUM> collected does not meet the initial sample quantity threshold, the method <NUM> returns to block <NUM>. For example, the sampling computing device <NUM> receives an initial vibration input sample <NUM>, increments the training set counter, and determines that the current value of the training set counter is less than the initial sample quantity threshold. In this example, the sampling computing device <NUM> proceeds to collect a subsequent initial vibration input sample <NUM> from the transducer computing device <NUM>.

Returning to block <NUM>, if the sampling computing device <NUM> determines that the number of initial vibration input samples <NUM> collected meets the initial sample quantity threshold, the method <NUM> proceeds to block <NUM>. For example, the sampling computing device <NUM> receives an initial vibration input sample <NUM>, increments the training set counter, and determines that the current value of the training set counter is equal to or exceeds the initial sample quantity threshold.

At block <NUM>, the method <NUM> involves the sampling computing device <NUM> determining clusters for the initial vibration input samples <NUM>. The sampling computing device <NUM> generates a training set of initial vibration input samples <NUM> using the initial vibration input samples <NUM> received from the transducer computing device <NUM> associated with the equipment <NUM>. For example, in response to determining that the current value of the training set counter is equal to or exceeds the initial sample quantity threshold, the sampling computing device <NUM> generates a training set of initial vibration input samples <NUM> comprising the received initial vibration input samples <NUM>. In some instances, in response to detecting that the current value of the training set counter is equal to or exceeds the initial sample quantity threshold, the sampling computing device <NUM> resets the training set counter to zero.

In certain embodiments, the sampling computing device <NUM> pre-processes the initial vibration input samples <NUM> in the training set to generate an input sample representation <NUM> corresponding to each input sample <NUM>. In some instances, each input sample <NUM> received by the sampling computing device <NUM> comprises a one-dimensional array in the time amplitude domain. An example of a vibration input sample <NUM> represented by a one-dimensional array is depicted in <FIG>. In some instances, the sampling computing device <NUM> converts input samples <NUM> represented by a one-dimensional array into a 2D array which is represented as time frequency (e.g. an audio spectrogram). For example, an audio spectrogram is a two-dimensional array that represents intensities of various frequencies present in a vibration input sample <NUM>. An example of an audio spectrogram is depicted in <FIG>. In some instances, the sampling computing device <NUM> converts the spectrogram for each vibration input sample <NUM> back into a one-dimensional array to generate the respective input sample representation <NUM>. The input sample representations <NUM> comprising one-dimensional arrays are used as input for clustering the input samples <NUM> as well as model <NUM> training (including training an anomaly detection model and a cluster assignment model).

From the training set of input sample representations <NUM>, the sampling computing device <NUM> determines a ground truth for model <NUM> training. In some instances, the sampling computing device <NUM> performs a principal component analysis ("PCA") on the training set of input sample representations <NUM>. PCA identifies the principal aspects or dimensions of the data. Once the training set has been reduced to these principal dimensions, the sampling computing device <NUM> uses a cluster algorithm (e.g. an affinity propagation algorithm) to cluster the input sample representations <NUM> (representing initial vibration input samples <NUM>) into a set of clusters and assign each input sample representation <NUM> of the training set to a respective cluster of the set of clusters. In some examples, the sampling computing device <NUM> uses a k-nearest-neighbors ("KNN") clustering algorithm to cluster the input sample representations <NUM>. In some instances, the number of dimensions determined via PCA is large and the sampling computing device <NUM> reduces the dimensions determined via PCA to a lower number of dimensions (e.g. to a smaller dimensional space). In some examples, the PCA reduces the number of dimensions to a predefined number of dimensions (e.g. three dimensions, five dimensions, ten dimensions). In some instances, the affinity propagation algorithm used to cluster the PCA reduced dimensional data determined from the training set of input sample representations <NUM> is an unsupervised algorithm. Accordingly, the clusters that are discovered in the PCA do not have a ground truth. However, in some instances, the sources of different input samples <NUM> could be controlled. An example clustering of input sample representations <NUM> (corresponding to a training set of initial vibration input samples <NUM>) via PCA and an affinity propagation algorithm is depicted in <FIG>.

At block <NUM>, the method <NUM> involves the sampling computing device <NUM> training a multiple class logistic regression ("MCLR") model. The MCLR model is a cluster assignment model and is trained to assign a vibration input sample <NUM> that is not part of the training set to a cluster of the set of clusters that were determined via the PCA. In an example, the two-dimensional spectrogram derived from the received vibration input sample <NUM> for each vibration input sample <NUM> of the set of training data is used as training features for training the MCLR model and the respective cluster to which the input sample representation <NUM> corresponding to the initial vibration input sample <NUM> belongs (as determined by the affinity propagation algorithm based on the PCA dimensional data) is used as a training target. In some instances, the dimensional data from the PCA analysis of the training set of input sample representations <NUM> is used to train the MCLR model. In some instances, the sample computing device <NUM> clusters the input sample representations <NUM> of the training set to form a ground truth based on the reduced-dimension PCA dimensional data and then trains the model using the full (non-reduced) PCA dimension data to train the MCLR model. In some embodiments, instead of a MCLR model, the cluster assignment model is another type of clustering model, for example a K Nearest Neighbor model, and the sampling computing device <NUM> trains the clustering assignment model.

At block <NUM>, the method <NUM> involves the sampling computing device <NUM> training an anomaly detection model. In an example embodiment, the anomaly detection model comprises a one class support vector machine ("OCSVM"). The sampling computing device <NUM> trains the anomaly detection model using the reduced dimensional data discovered via the PCA from training set of input sample representations <NUM>. However, in some instances, the sampling computing device <NUM> could train the anomaly detection model using the complete dimensional data discovered via the PCA of the training set. In certain embodiments, once trained, the anomaly detection model is able to output a confidence score or probability that represents a likelihood that an input sample representation <NUM> is anomalous or non-anomalous and a classification of the input sample representation <NUM> as anomalous or non-anomalous based on comparing the confidence score or probability to a threshold.

At block <NUM>, the method <NUM> involves the sampling computing device <NUM> collecting a next vibration input sample <NUM> from the operating site environment <NUM>. The sampling computing device <NUM> receives a next vibration input sample <NUM> from the transducer computing device <NUM> as described previously in block <NUM> with respect to each of the received initial vibration input samples <NUM> that were used to generate the training set. For example, the transducer computing device <NUM> detects physical vibrations in the operating site environment <NUM>, generates the next input sample <NUM> based on the detected physical vibrations, and transmits the next input sample <NUM> to the sampling computing device <NUM>. In this example, the sampling computing device <NUM> receives the next input sample <NUM> from the transducer computing device <NUM>.

At block <NUM>, the method <NUM> involves the sampling computing device <NUM> determining if a retrain counter is exceeded. In some instances, after performing model <NUM> training operations, each time the sampling computing device <NUM> receives an input sample <NUM> from the transducer computing device <NUM>, the sampling computing device <NUM> increments a retrain counter. The retrain counter corresponds to a retrain threshold and, when the retrain counter meets or exceeds the retrain threshold, the sampling computing device <NUM> begins to collect a new training set of initial vibration input samples <NUM>. In some instances, the retrain counter begins at zero when the model is trained and is incremented after each subsequent new input sample <NUM> is received. The sampling computing device <NUM> could configure a training set counter to increment as the sampling computing device <NUM> receives each initial vibration input sample <NUM>. In some instances, when configuring the retrain threshold, as the retrain threshold is increased, a probability of a misidentification of a next input sample <NUM> as an anomaly <NUM> (when it otherwise would be identified as a non-anomaly) increases, particularly in a dynamic operating site environment <NUM>. In some instances, when configuring the retrain threshold, as the retrain threshold is decreased, a probability of a misidentification of a next input sample <NUM> as an anomaly <NUM> decreases, particularly in a dynamic operating site environment <NUM>.

If the sampling computing device <NUM> determines that the retrain threshold is exceeded, the method <NUM> returns to block <NUM>. For example, the retrain threshold is <NUM> samples and, in response to receiving a current input sample <NUM>, the sampling computing device <NUM> increments the retrain counter from <NUM> to <NUM>, meeting the retrain threshold.

In some embodiments, if the sampling computing device <NUM> determines that the retrain threshold is met or exceeded, the sampling computing device <NUM> resets the retrain counter and substantially repeats operations described in blocks <NUM>-<NUM> to retrain the anomaly detection and clustering models. For example, the sampling computing device <NUM> continues to receive subsequent input samples <NUM> from the transducer computing device <NUM>, incrementing a training set counter at the receipt of each subsequent input sample <NUM> until the training set counter meets or exceeds an initial sample quantity threshold to generate a new training set of initial vibration input samples <NUM>. The sampling computing device performs a PCA of the new training set, an initial clustering of the new training set using a clustering algorithm and to re-train the anomaly detection and cluster assignment models. In some instances, the sampling computing device <NUM> resets the retrain counter to zero in response to determining that the retrain threshold is exceeded and begins to increment the retrain counter upon receiving input samples <NUM> subsequent to retraining the anomaly detection and clustering models.

In other embodiments, instead of using a completely new set of input vibration samples <NUM> to retrain the models, the sampling computing device <NUM> periodically retrains the models using overlapping training sets. For example, when the sampling computing device <NUM> determines that the retrain threshold is met or exceeded, the sampling computing device <NUM> resets the retrain counter and retrains the anomaly detection and clustering models as described in blocks <NUM>-<NUM>, except the training set of vibration samples for retraining the anomaly detection model and the cluster assignment model overlaps with the training set that was used to previously train these models. For example, the sampling computing device <NUM> initially trains the models on a set of thirty (<NUM>) input vibration samples <NUM>. In this example, the sampling computing device <NUM> receives ten (<NUM>) subsequent input vibration samples <NUM> from the transducer computing device <NUM>, incrementing the retrain counter upon receipt of each of the subsequent input vibration samples <NUM> until it meets a retrain threshold of ten (<NUM>) vibration samples. In this example, the sampling computing device <NUM> retrains the models using the last (chronologically) twenty (<NUM>) of the input vibration samples <NUM> from the initial set of input vibration samples <NUM> plus the ten (<NUM>) subsequently received input vibration samples <NUM> to re-train the models.

Returning to block <NUM>, if the sampling computing device <NUM> determines that the retrain threshold is not exceeded, the method <NUM> proceeds to block <NUM>. For example, the retrain threshold is <NUM> samples and, in response to receiving a current input sample <NUM>, the sampling computing device <NUM> increments the retrain counter from <NUM> to <NUM>, which is less than the retrain threshold.

At block <NUM>, the method <NUM> involves the sampling computing device <NUM> applying the trained anomaly detection model to the next vibration input sample <NUM>. In an example, the sampling computing device <NUM> inputs the next vibration input sample <NUM> to the trained anomaly detection model. In some instances, the sampling computing device <NUM> performs one or more preprocessing operations on the next vibration input sample <NUM> to generate an input sample representation <NUM>. For example, the next vibration input sample <NUM> comprises a one-dimensional array and the sampling computing device <NUM> generates an input sample representation <NUM> from the next vibration input sample <NUM> comprising a two-dimensional spectrogram and inputs the two-dimensional spectrogram to the trained anomaly detection model. The trained anomaly detection model either outputs an anomaly <NUM> designation or a non-anomaly designation for the next vibration input sample <NUM> based on the input data corresponding to the next vibration input sample <NUM>.

At block <NUM>, the method <NUM> involves the sampling computing device <NUM> determining if the output of the trained anomaly detection model for the next vibration input sample <NUM> is an anomaly <NUM>. In an example, the sampling computing device <NUM> inputs the input data corresponding to the next vibration input sample <NUM> to the anomaly detection model (e.g. the OCSVM), which either outputs an anomalous designation or a non-anomalous designation for the next vibration input sample <NUM>. In some instances, the trained anomaly detection model outputs one of a first output value or a second output value, the first output value corresponding to an anomaly <NUM> designation and the second output value corresponding to a non-anomaly designation. <FIG> provides an example illustration of an anomalous next vibration input sample <NUM> and a non-anomalous next vibration input sample <NUM> comprising a cluster assignment.

If the sampling computing device <NUM> determines that the output of the trained anomaly detection model for the next vibration input sample <NUM> is not an anomaly <NUM>, the method <NUM> proceeds to block <NUM>. For example, the anomaly detection model (e.g. the OCSVM) outputs a non-anomaly designation for the next vibration input sample <NUM>.

At block <NUM>, the method <NUM> involves the sampling computing device <NUM> reporting a cluster assignment the next vibration input sample <NUM> identified via the trained MCLR model. The sampling computing device <NUM> inputs the next vibration input sample <NUM> to the trained cluster assignment model (MCLR model). In some embodiments, the sampling computing device <NUM> performs one or more preprocessing operations on the next vibration input sample <NUM> to generate an input sample representation <NUM>. For example, the next vibration input sample <NUM> comprises a one-dimensional array and the sampling computing device <NUM> generates an input sample representation <NUM> from the next vibration input sample <NUM> comprising a two-dimensional spectrogram and inputs the two-dimensional spectrogram to the trained cluster assignment model. The trained cluster assignment model outputs, for the input data corresponding to the next vibration input sample <NUM>, a cluster assignment for the next vibration sample <NUM> corresponding to a cluster of a set of clusters. For example, during a training phase, the set of clusters was determined on the training set of initial input samples <NUM> collected prior to the collection of the next input sample <NUM> by (<NUM>) performing a PCA on the training set to determine dimensional data, and (<NUM>) using the dimensional data, generating the set of clusters and assigning each of the training set of initial input samples <NUM> to a cluster of the set of clusters using an affinity propagation algorithm. The cluster assignment for the next vibration sample <NUM> corresponds to a cluster of the set of clusters determined during the training phase. In certain examples, the cluster assignment model determines a probability, for the next vibration input sample <NUM>, that the next vibration input sample <NUM> should be assigned to each cluster of the set of clusters. <FIG> depicts an illustration of probabilities that a next vibration input sample belongs to each cluster of a set of clusters.

Reporting the determined cluster assignment for the next vibration input sample <NUM> could include one or more of saving the determined cluster assignment in a data storage unit <NUM> of the sampling computing device <NUM> and communicating the determined cluster assignment for the next vibration input sample <NUM> to the management computing system <NUM> via the network <NUM>.

From block <NUM>, the method <NUM> returns to block <NUM>. For example, after determining a cluster assignment for a next vibration input sample <NUM>, the sampling computing device <NUM> substantially repeats operations described in one or more of blocks <NUM>, <NUM>, <NUM>, <NUM>, and <NUM>, as appropriate. For example, the sampling computing device <NUM> receives a subsequent next vibration input sample <NUM>, inputs input data determined from the subsequent next vibration input sample <NUM> to the trained anomaly detection model and/or the trained cluster assignment model, as appropriate.

Returning to block <NUM>, if the sampling computing device <NUM> determines that the output of the trained anomaly detection model for the next vibration input sample <NUM> is an anomaly <NUM>, the method <NUM> proceeds to block <NUM>. For example, the anomaly detection model (e.g. the OCSVM) outputs an anomaly designation for the next vibration input sample <NUM>.

At block <NUM>, the method <NUM> involves the sampling computing device <NUM> incrementing an alarm counter. The alarm counter is configured to trigger an alarm report when the sampling computing device <NUM> determines that the alarm counter meets or exceeds an alarm threshold. In some instances, the sampling computing device <NUM> increments the alarm counter each time the trained anomaly detection model outputs an anomaly <NUM> designation for a next vibration input sample <NUM>. In some instances, the sampling computing device <NUM> resets the alarm counter to zero if, after incrementing the alarm counter, the trained anomaly detection model outputs a non-anomaly designation for the following next vibration input sample <NUM>. In some instances, the sampling computing device <NUM> increments, for a threshold amount of time (e.g. ten seconds), the alarm counter each time the trained anomaly detection model outputs a non-anomaly designation during the threshold length of time and then resets the alarm counter after the threshold amount of time passes. In some instances, the sampling computing device resets the alarm counter to zero when the alarm counter meets or exceeds the alarm threshold.

In some instances, when configuring the alarm threshold, as the alarm threshold is increased, a speed at which an the sampling computing device <NUM> reports an alarm will be decreased as the sampling computing device <NUM> detects a series of anomalies <NUM> using the trained anomaly detection model. In some instances, when configuring the alarm threshold, as the alarm threshold is decreased, a speed at which an the sampling computing device <NUM> reports an alarm will be increased as the sampling computing device <NUM> detects a series of anomalies <NUM> using the trained anomaly detection model. Accordingly, decreasing the alarm threshold results in an alarm that is more sensitive for anomalous sample detection while increasing the alarm threshold results in an alarm that is less sensitive for anomalous sample detection. Further, determining when and how the alarm counter is reset, as described previously, can also effect a sensitivity of the alarm.

At block <NUM>, the method <NUM> involves the sampling computing device <NUM> determining if an alarm threshold is exceeded. For example, after incrementing the alarm counter in response to determining an anomaly <NUM> designation for the next vibration input sample <NUM>, the sampling computing device <NUM> compares the incremented alarm counter value to the alarm threshold value.

If the sampling computing device <NUM> determines that the alarm threshold is not exceeded, the method <NUM> returns to block <NUM>. For example, an alarm threshold is ten anomaly <NUM> designations, the sampling computing device <NUM> increments the alarm counter from eight to nine, and determines that the current alarm counter value (nine) is less than the alarm threshold (ten). In this example, after determining that the alarm threshold is not exceeded in response to incrementing the alarm counter, the sampling computing device <NUM> substantially repeats operations described in one or more of blocks <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, and <NUM> as appropriate. For example, the sampling computing device <NUM> receives a subsequent next vibration input sample <NUM>, inputs input data determined from the subsequent next vibration input sample <NUM> to the trained anomaly detection model and/or the trained cluster assignment model, as appropriate.

Returning to block <NUM>, if the sampling computing device <NUM> determines that the alarm threshold is exceeded, the method <NUM> proceeds to block <NUM>. For example, an alarm threshold is ten anomaly <NUM> designations, the sampling computing device <NUM> increments the alarm counter from nine to ten, and determines that the current alarm counter value meets the alarm threshold.

At block <NUM>, the method <NUM> involves the sampling computing device <NUM> reporting an alarm for the next input vibration sample <NUM>. Reporting the alarm for the next vibration input sample <NUM> could include one or more of generating an alarm report <NUM>, saving the alarm report <NUM> in a data storage unit <NUM> of the sampling computing device <NUM> and communicating the alarm report <NUM> to the management computing system <NUM> via the network <NUM>. The alarm report <NUM> could include the next vibration input sample <NUM> as well as one or more previous vibration input samples <NUM> for which the sampling computing device <NUM> detected an anomaly <NUM> and incremented the alarm counter. In certain examples, an operator of the sampling computing device <NUM> or an operator of the management computing system <NUM> could review the vibration input samples <NUM> associated with the reported alarm report <NUM> and take one or more actions with respect to the equipment <NUM> or the operating site environment <NUM> to address the alarm report <NUM>.

In an example, the equipment <NUM> is a compactor that is compacting an asphalt surface and then begins to run over gravel, producing an anomalous physical vibration when compared to previous physical vibrations detected while compacting the asphalt service. In another example, the compactor equipment <NUM> is compacting an asphalt surface and another vehicle begins operating within a proximity to the compactor equipment <NUM> detectible by the transducer device <NUM>, producing an anomalous physical vibration when compared to previous physical vibrations produced while compacting the asphalt service without the other vehicle operating in the proximity. In these examples, after successive anomaly <NUM> designations are determined for next vibration input samples <NUM> received from the transducer <NUM> detecting the anomalous physical vibrations in the operating site environment <NUM>, the sampling computing device <NUM> reports an alarm for the anomalous vibration input samples <NUM>.

From block <NUM>, the method <NUM> returns to block <NUM>. In some examples, after reporting the alarm, the sampling computing device <NUM> resets the alarm counter to zero and substantially repeats operations described in one or more of blocks <NUM>, <NUM>, <NUM>, <NUM>, and <NUM>, as appropriate. For example, the sampling computing device <NUM> receives a subsequent next vibration input sample <NUM>, inputs input data determined from the subsequent next vibration input sample <NUM> to the trained anomaly detection model and/or the trained cluster assignment model, as appropriate. In other examples, from block <NUM>, the method <NUM> returns to block <NUM> and the sampling computing device <NUM> substantially repeats operations described in blocks <NUM>-<NUM> to retrain the anomaly detection and clustering models before proceeding to substantially repeat operations described in one or more of blocks <NUM>, <NUM>, <NUM>, <NUM>, and <NUM>, as appropriate, for example, inputting input data determined from the subsequent next vibration input sample <NUM> to the retrained anomaly detection model and/or the retrained cluster assignment model, as appropriate.

In certain examples, responsive to determining an anomaly <NUM> designation for a next vibration input sample <NUM>, responsive to determining a cluster assignment for a next vibration input sample <NUM>, or responsive to reporting an alarm (e.g. generating an alarm report <NUM>), the sampling computing device <NUM> performs one or more equipment management <NUM> operations, as depicted in <FIG>. For example, performing equipment management <NUM> operations could include communicating with the equipment <NUM> or one or more devices associated with the equipment <NUM> to transmit instructions to disable the equipment <NUM> (e.g. disable an engine of the equipment <NUM>), disable one or more operations of the equipment <NUM>, perform one or more operations of the equipment <NUM> (e.g. direct compactor equipment <NUM> to stop, turn, go in reverse, etc.). For example, the equipment <NUM> is a compactor that is compacting an asphalt surface and then begins to run over gravel, producing an anomalous physical vibration when compared to previous physical vibrations detected while compacting the asphalt service, which results in the sampling computing device <NUM> reporting an alarm. In this example, performing equipment management <NUM> operations could include directing the compactor to apply the brakes, disabling the compactor, or directing the compactor to turn or go in reverse to avoid the gravel and/or return to the asphalt surface.

In certain embodiments, the sampling computing device <NUM> logs geolocation data (e.g. location coordinates) and/or logs a timestamp and transmits the geolocation data and/or timestamp along with each determined cluster assignment and/or determined anomalous (or non-anomalous) designation for each next vibration sample to the management computing system <NUM>. In these embodiments, the management computing system <NUM> may map or otherwise correlate the location and/or time information with cluster assignment information (or anomalous/non-anomalous designation) of the next vibration sample. In certain embodiments, the management computing system <NUM> may provide the correlated location, time, and/or cluster/anomaly information for display in a user interface, for example, on a user interface of the sampling computing device <NUM>.

<FIG> depicts an illustration of example audio file <NUM> representing a vibration input sample <NUM>, according to certain embodiments described in the present disclosure. This illustration of the example audio file <NUM> includes a one-dimensional array represented by a horizontal axis representing a time dimension and a vertical axis representing an intensity of a signal at a moment. The signal is discretely measured at each sampling interval.

<FIG> depicts an illustration of an example audio spectrogram , according to certain embodiments described in the present disclosure. In certain embodiments, signals that are captured by the sampling computing system via the transducer computing device <NUM> are converted from the one-dimensional array format depicted in <FIG> to the audio spectrogram <NUM> format as depicted in <FIG>. The spectrogram <NUM> is a two-dimensional array that represents an intensity of various frequencies present in the audio signal across a time range. The spectrogram <NUM> illustrated in <FIG> is a spectrogram for a one-second vibration input sample <NUM>. Once the spectrogram <NUM> is rendered from a sample waveform (e.g. the audio file, the one-dimensional array), the spectrogram could be converted back into a one-dimensional array, which can be used as input for dimensional reduction and model <NUM> training.

<FIG> depicts an illustration of example PCA clustering <NUM> of vibration input samples. The PCA clustering is conducted by performing a PCA to determine dimensional data and then using an affinity propagation algorithm to cluster the samples using the dimensional data, according to certain embodiments described in the present disclosure. The PCA clustering <NUM> represents a clustering of sample spectrograms. Each dot on the graph in <FIG> represents a sample. In some instances, the samples take the form of a flatted <NUM> x <NUM> matrix, and therefore, have a dimensionality of <NUM>. In some instances, this highly dimensional data is reduced to a much smaller dimensional space, as shown in the PCA clustering <NUM>, which shows a three-dimensional space. However, the number of dimensions in the reduced dimensional data is configurable and a larger number of dimensions than three could be used. In some instances, increasing the number of dimensions for the reduced dimensional data increases an accuracy of the clustering but also increases an amount of processing required to apply the clustering algorithm. In some instances, decreasing the number of dimensions for the reduced dimensional data decreases the accuracy of the clustering but also decreases the amount of processing required to apply the clustering algorithm.

<FIG> depicts an illustration of cluster assignment probabilities <NUM> predicted for a next vibration input sample, according to certain embodiments described in the present disclosure. In an example, the sampling computing device <NUM> inputs a next vibration input sample <NUM> (or an input sample representation <NUM> determined from the next vibration input sample <NUM>, for example, a spectrogram) to the cluster assignment model (MCLR model). In this example, the cluster assignment model is trained to assign the next vibration input sample <NUM> or input sample representation <NUM> to a cluster of a set of clusters. In the example depicted in <FIG>, the trained cluster assignment module is trained to assign a next vibration input sample <NUM> to one of six unlabeled clusters identified simply as "<NUM>," "<NUM>," "<NUM>," "<NUM>," "<NUM>," and "<NUM>. " In this example, the cluster assignment model determines a cluster affinity for each of the six clusters, as depicted in <FIG>. In this example, as shown in <FIG>, cluster <NUM> has the highest affinity value, followed by cluster <NUM> with the second highest affinity value, followed by cluster <NUM> with the third highest affinity value, followed by cluster <NUM> with the fourth highest affinity value, followed by clusters <NUM> and <NUM>, which each have the fifth highest affinity value. In this example, the sampling computing device <NUM> assigns the next vibration input sample <NUM> to cluster <NUM>, because cluster <NUM> has the greatest affinity value of the six clusters as determined by the trained cluster assignment model.

<FIG> depicts an illustration of an anomalous next vibration input sample and a non-anomalous next vibration input sample comprising a cluster assignment, according to certain embodiments described in the present disclosure. In this example, an anomaly <NUM> and a classified sample <NUM> are illustrated in a three-dimensional space. In this example, the sampling computing device <NUM> inputs a next vibration input sample <NUM> (or an input sample representation <NUM> determined from the next vibration input sample <NUM>, for example, a spectrogram) into the anomaly detection module and the anomaly detection module outputs an anomaly <NUM> designation for the next vibration input sample <NUM>. In some instances, the sampling computing device <NUM> does not input the next vibration input sample <NUM>, now classified as an anomaly <NUM>, into the cluster assignment model. However, the sampling computing device <NUM> could input the next vibration input sample <NUM> into the cluster assignment model and determine a cluster for the anomaly <NUM> in some instances. In this example, the sampling computing device <NUM> inputs a subsequent next vibration input sample <NUM> (or a subsequent input sample representation <NUM> determined from the subsequent next vibration input sample <NUM>, for example, a spectrogram) into the anomaly detection module and the anomaly detection module outputs a non-anomaly designation for the subsequent next vibration input sample <NUM>. In response to determining the non-anomaly designation, the sampling computing device <NUM> inputs the subsequent next vibration input sample <NUM> (or the subsequent input sample representation <NUM> determined from the subsequent next vibration input sample <NUM>, for example, a spectrogram) into the cluster assignment model, which determines a cluster assignment for the subsequent next vibration input sample <NUM>. <FIG> illustrates a location within a three-dimensional space (determined via PCA) of the subsequent next vibration input sample <NUM>, now the classified sample <NUM> in comparison to other input samples <NUM> that have already been clustered, which are represented by the other dots in the three-dimensional space.

Any suitable computing system or group of computing systems can be used for performing the operations described herein. For example, <FIG> depicts an example of a computing system <NUM>. The computing system <NUM> includes the management computing system <NUM>.

The depicted examples of a computing system <NUM> includes a processor <NUM> communicatively coupled to one or more memory devices <NUM>. The processor <NUM> executes computer-executable program code stored in a memory device <NUM>, accesses information stored in the memory device <NUM>, or both. Examples of the processor <NUM> include a microprocessor, an application-specific integrated circuit ("ASIC"), a field-programmable gate array ("FPGA"), or any other suitable processing device. The processor <NUM> can include any number of processing devices, including a single processing device.

The memory device <NUM> includes any suitable non-transitory computer-readable medium for storing data, program code, or both. A computer-readable medium can include any electronic, optical, magnetic, or other storage device capable of providing a processor with computer-readable instructions or other program code. Non-limiting examples of a computer-readable medium include a magnetic disk, a memory chip, a ROM, a RAM, an ASIC, optical storage, magnetic tape or other magnetic storage, or any other medium from which a processing device can read instructions.

The computing system <NUM> executes program code <NUM> that configures the processor <NUM> to perform one or more of the operations described herein. The program code <NUM> includes, for example, the equipment management module <NUM> and the multi-operating-site analytics module <NUM>, or other suitable applications that perform one or more operations described herein. The program code <NUM> may be resident in the memory device <NUM> or any suitable computer-readable medium and may be executed by the processor <NUM> or any other suitable processor. The program code could include processor-specific instructions generated by a compiler or an interpreter from code written in any suitable computer-programming language, including, for example, C, C++, C#, Visual Basic, Java, Python, Perl, JavaScript, and ActionScript.

In some embodiments, program code <NUM> for implementing both the equipment management module <NUM> and the multi-operating-site analytics module <NUM> are stored in the memory device <NUM>, as depicted in <FIG>. In additional or alternative embodiments, program code <NUM> for implementing one or more of the equipment management module <NUM> and the multi-operating-site analytics module <NUM> are stored in different memory devices of different computing systems. In additional or alternative embodiments, the program code <NUM> described above is stored in one or more other memory devices accessible via a data network.

The computing system <NUM> can access program data <NUM>, which includes one or more of the datasets described herein (e.g., training set data. cluster assignments, anomaly <NUM> or non-anomaly designations), in any suitable manner. In some embodiments, some or all of one or more of these data sets, models, and functions are stored as the program data <NUM> in the memory device <NUM>, as in the example depicted in <FIG>. In additional or alternative embodiments, one or more of these data sets, models, and functions are stored in the same memory device (e.g., one of the memory device <NUM>). For example, a common computing system, such as the management computing system <NUM> depicted in <FIG>, can hardware, software, or both that implements the equipment management module <NUM> and the multi-operating-site analytics module <NUM>. In additional or alternative embodiments, one or more of the programs, data sets, models, and functions described herein are stored in one or more other memory devices accessible via a data network.

The computing system <NUM> also includes a network interface device <NUM>. The network interface device <NUM> includes any device or group of devices suitable for establishing a wired or wireless data connection to one or more data networks. Non-limiting examples of the network interface device <NUM> include an Ethernet network adapter, a modem, and the like. The computing system <NUM> is able to communicate with one or more other computing devices (e.g., sampling computing device <NUM>) via a data network using the network interface device <NUM>.

The computing system <NUM> may also include a number of external or internal devices, such as input or output devices. For example, the computing system <NUM> is shown with one or more input/output ("I/O") interfaces <NUM>. An I/O interface <NUM> can receive input from input devices or provide output to output devices. One or more buses <NUM> are also included in the computing system <NUM>. The bus <NUM> communicatively couples one or more components of a respective one of the computing system <NUM>.

In some embodiments, the computing system <NUM> also includes the input device <NUM> and the presentation device <NUM> depicted in <FIG>. An input device <NUM> can include any device or group of devices suitable for receiving visual, auditory, or other suitable input that controls or affects the operations of the processor <NUM>. Non-limiting examples of the input device <NUM> include a touchscreen, a mouse, a keyboard, a microphone, a separate mobile computing device, etc. A presentation device <NUM> can include any device or group of devices suitable for providing visual, auditory, or other suitable sensory output. Non-limiting examples of the presentation device <NUM> include a touchscreen, a monitor, a speaker, a separate mobile computing device, etc..

Although <FIG> depicts the input device <NUM> and the presentation device <NUM> as being local to the computing device that executes the program code <NUM>, other implementations are possible. For instance, in some embodiments, one or more of the input device <NUM> and the presentation device <NUM> can include a remote client-computing device that communicates with the computing system <NUM> via the network interface device <NUM> using one or more data networks described herein.

Embodiments may comprise a computer program that embodies the functions described and illustrated herein, wherein the computer program is implemented in a computer system that comprises instructions stored in a machine-readable medium and a processor that executes the instructions. However, it should be apparent that there could be many different ways of implementing embodiments in computer programming, and the embodiments should not be construed as limited to any one set of computer program instructions. Further, a skilled programmer would be able to write such a computer program to implement an embodiment of the disclosed embodiments based on the appended flow charts and associated description in the application text. Therefore, disclosure of a particular set of program code instructions is not considered necessary for an adequate understanding of how to make and use embodiments. Further, those skilled in the art will appreciate that one or more aspects of embodiments described herein may be performed by hardware, software, or a combination thereof, as may be embodied in one or more computer systems. Moreover, any reference to an act being performed by a computer should not be construed as being performed by a single computer as more than one computer may perform the act.

The example embodiments described herein can be used with computer hardware and software that perform the methods and processing functions described previously. The systems, methods, and procedures described herein can be embodied in a programmable computer, computer-executable software, or digital circuitry. The software can be stored on computer-readable media. For example, computer-readable media can include a floppy disk, RAM, ROM, hard disk, removable media, flash memory, memory stick, optical media, magneto-optical media, CD-ROM, etc. Digital circuitry can include integrated circuits, gate arrays, building block logic, field programmable gate arrays (FPGA), etc..

In some embodiments, the functionality provided by computer system <NUM> may be offered as cloud services by a cloud service provider. For example, <FIG> depicts an example of a cloud computer system <NUM> offering an equipment management module <NUM> and a multi-operating-site analytics module <NUM> that can be used by a number of user subscribers using user devices 904A, 904B, and 904C across a data network <NUM>. In the example, the equipment management module <NUM> and the multi-operating-site analytics module <NUM> may be offered under a Software as a Service (SaaS) model. One or more users may subscribe to the next event prediction and dynamic clustering service , and the cloud computer system <NUM> performs the equipment management module <NUM> and the multi-operating-site analytics module <NUM> to subscribers. For example, the cloud computer system <NUM> performs services comprising one or more of steps or functions illustrated in <FIG> and <FIG> and described herein. The cloud computer system <NUM> may include one or more remote server computers <NUM>.

The remote server computers <NUM> include any suitable non-transitory computer-readable medium for storing program code <NUM> (e.g. the equipment management module <NUM> and the multi-operating-site analytics module <NUM>) and program data <NUM>, or both, which is used by the cloud computer system <NUM> for providing the cloud services. A computer-readable medium can include any electronic, optical, magnetic, or other storage device capable of providing a processor with computer-readable instructions or other program code. Non-limiting examples of a computer-readable medium include a magnetic disk, a memory chip, a ROM, a RAM, an ASIC, optical storage, magnetic tape or other magnetic storage, or any other medium from which a processing device can read instructions. The instructions may include processor-specific instructions generated by a compiler or an interpreter from code written in any suitable computer-programming language, including, for example, C, C++, C#, Visual Basic, Java, Python, Perl, JavaScript, and ActionScript. In various examples, the server computers <NUM> can include volatile memory, non-volatile memory, or a combination thereof.

One or more of the server computers <NUM> execute the program code <NUM> that configures one or more processors of the server computers <NUM> to perform one or more of the operations that provide one or more methods described herein (e.g. the methods of <FIG> and <FIG> described herein). As depicted in the embodiment in <FIG>, the one or more servers may implement the equipment management module <NUM> and the multi-operating-site analytics module <NUM>. Any other suitable systems or subsystems that perform one or more operations described herein (e.g., one or more development systems for configuring an interactive user interface) can also be implemented by the cloud computer system <NUM>.

In certain embodiments, the cloud computer system <NUM> may implement the services by executing program code and/or using program data <NUM>, which may be resident in a memory device of the server computers <NUM> or any suitable computer-readable medium and may be executed by the processors of the server computers <NUM> or any other suitable processor.

In some embodiments, the program data <NUM> includes one or more datasets and models described herein. Examples of these datasets include training data. In some embodiments, one or more of data sets, models, and functions are stored in the same memory device. In additional or alternative embodiments, one or more of the programs, data sets, models, and functions described herein are stored in different memory devices accessible via the data network <NUM>.

The cloud computer system <NUM> also includes a network interface device <NUM> that enables communications to and from cloud computer system <NUM>. In certain embodiments, the network interface device <NUM> includes any device or group of devices suitable for establishing a wired or wireless data connection to the data networks <NUM>. Non-limiting examples of the network interface device <NUM> include an Ethernet network adapter, a modem, and/or the like. The next event prediction and dynamic clustering service is able to communicate with the user devices 904A, 904B, and 904C via the data network <NUM> using the network interface device <NUM>.

The example systems, methods, and acts described in the embodiments presented previously are illustrative, and, in alternative embodiments, certain acts can be performed in a different order, in parallel with one another, omitted entirely, and/or combined between different example embodiments, and/or certain additional acts can be performed, without departing from the scope and spirit of various embodiments. Accordingly, such alternative embodiments are included within the scope of claimed embodiments.

Although specific embodiments have been described above in detail, the description is merely for purposes of illustration. Modifications of, and equivalent components or acts corresponding to, the disclosed aspects of the example embodiments, in addition to those described above, can be made by a person of ordinary skill in the art, having the benefit of the present disclosure, without departing from the spirit and scope of embodiments defined in the following claims, the scope of which is to be accorded the broadest interpretation so as to encompass such modifications and equivalent structures.

Unless specifically stated otherwise, it is appreciated that throughout this specification discussions utilizing terms such as "processing," "computing," "calculating," "determining," and "identifying" or the like refer to actions or processes of a computing device, such as one or more computers or a similar electronic computing device or devices, that manipulate or transform data represented as physical electronic or magnetic quantities within memories, registers, or other information storage devices, transmission devices, or display devices of the computing platform.

The system or systems discussed herein are not limited to any particular hardware architecture or configuration. A computing device can include any suitable arrangement of components that provide a result conditioned on one or more inputs. Suitable computing devices include multi-purpose microprocessor-based computer systems accessing stored software that programs or configures the computing system from a general purpose computing apparatus to a specialized computing apparatus implementing one or more embodiments of the present subject matter. Any suitable programming, scripting, or other type of language or combinations of languages may be used to implement the teachings contained herein in software to be used in programming or configuring a computing device.

Embodiments of the methods disclosed herein may be performed in the operation of such computing devices. The order of the blocks presented in the examples above can be varied-for example, blocks can be re-ordered, combined, and/or broken into sub-blocks. Certain blocks or processes can be performed in parallel.

The use of "adapted to" or "configured to" herein is meant as open and inclusive language that does not foreclose devices adapted to or configured to perform additional tasks or steps. Additionally, the use of "based on" is meant to be open and inclusive, in that a process, step, calculation, or other action "based on" one or more recited conditions or values may, in practice, be based on additional conditions or values beyond those recited. Headings, lists, and numbering included herein are for ease of explanation only and are not meant to be limiting.

Claim 1:
A non-transitory computer-readable storage medium comprising computer-executable instructions that when executed by a processor cause the processor to:
receive, from a transducer computing device located within a predefined proximity to an equipment in an operating environment, a vibration sample from the operating environment;
incrementing a retrain counter in response to receiving the vibration sample;
in response to determining that the incremented retrain counter does not meet or exceed a retrain threshold, predict, using a model, (<NUM>) an anomalous or non-anomalous designation for the vibration sample and (<NUM>) a cluster assignment, to a particular cluster of a set of clusters, for the vibration sample when the model predicts the non-anomalous designation for the vibration sample;
receive, from the transducer computing device, a subsequent vibration sample from the operating environment;
further increment the retrain counter in response to receiving the subsequent vibration sample; and
in response to determining that the further incremented retrain counter exceeds a retrain threshold:
receive, from the transducer computing device, a subsequent set of vibration samples from the operating environment; and
retrain, using the subsequent vibration sample and the subsequent set of vibration samples, the model.