This invention relates to the field of complex signal analysis, in particular for the detection of certain particular patterns in signals of different types.
Thanks to the decrease in the manufacturing costs of sensors and thanks to the miniaturisation thereof, the latter are present everywhere today, whether for health data monitoring (e.g. smart watch that measures the heart rate, blood pressure, blood velocity, the temperature, the quality of sleep, etc.) or industrial data (temperature in a machine room, presence of CO2, aeration speed, etc.).
Analysing this data is a genuine challenge in order to be able to valorise the data coming from these sensors.
Analysing a single signal does not give rise to a problem per se, because this analysis most often reverts to processing the curve with known mathematic tools (e.g. calculating derivatives, variability analysis, etc.).
However, when an analysis seeks to apprehend multiple signals that do not have the same scales/magnitudes/etc., it can be difficult to combine these signals in order to detect certain patterns. For the purposes of information only, these patterns can be:
Indeed, analysing a single signal can give erroneous results:
Although particular solutions for analysing signals of different types can be found on a case-by-case basis (i.e. according to the types of signals in question), there is a need to have a generic method for detecting patterns in these complex signals.
This invention improves the situation.
To this effect, this invention proposes a generic method that allows for a simplified analysis of complex signals.
This invention then relates to a method for pattern recognition in a plurality of time signals of different types, the method comprises:
The distances can be distances in the mathematical sense. Thus, the distances can be Euclidean distances, Manhattan distances, Minkoswski distances, Tchebychev distances or any other distances.
In another embodiment, it is possible to take account of a hierarchical model for the standard contexts used.
This invention also alternatively relates to a method for pattern recognition in a plurality of time signals of different types, a hierarchical model of standard contexts being defined, each standard context being associated with a respective level of the hierarchical model, the method comprises:
In an embodiment, the comparison of the step /f/ can comprise the calculation of a Bhattacharyya distance.
Indeed, it has been observed experimentally that this distance allowed for better quality recognition.
Moreover, the comparison of the step /f/ can comprise the calculating of a standardised distance.
In another alternative or cumulative embodiment, the comparison of the step /f/ can be a comparison between a number of occurrences of determining standard contexts at the last occurrence of the step /d2/ with a base of standard signatures.
The decrease in the activity profile can be as a function of the level of the current hierarchical model.
This adaptation can make it possible to grant a slower decreasing speed for the higher hierarchical levels in order to have a reactivity for these lower levels. Inversely, the lower level hierarchical levels (i.e. the first used) can have a higher reactivity.
A computer program, implementing all or a portion of the method described hereinabove, installed on a pre-existing piece of equipment, is in itself advantageous, when it allows for pattern recognition in a plurality of signals.
Thus, this invention also relates to a computer program comprising instructions for implementing the method described hereinabove, when this program is executed by a processor.
This program can use any programming language (for example, an object-oriented language or other), and be in the form of source code that can be interpreted, a partially compiled code or a fully compiled code.
Other characteristics and advantages of the invention shall further appear when reading the following description. The latter is purely for the purposes of information and must be read along with the accompanying drawings wherein:
In this example, the curve 101 represents a heart rate. This curve can be received in the form of continuous data (e.g. analogue signal) or in the form of sampled data (e.g. digital signal).
During the receiving of the signal, it is possible to determine certain characteristics that are proper to the signal. These characteristics can be, in a non-limiting manner:
Of course, these characteristics can be representative of a function of the signal (e.g. of the derivative of the signal or of any mathematical transformation of the signal).
According to these characteristics of the signal, it is possible to generate a so-called “asynchronous” signal comprising markers or events (e.g. curve 102 or 103). These events are most often Diracs in the asynchronous signal, because the generation thereof is simple. However, these events can be any pattern (e.g. signal that is triangular, rectangular, sinusoidal portion, portion of an alternating signal, etc.). Each event of said asynchronous signal is advantageously the same pattern or a similar pattern (their amplitude or their polarity (i.e. their direction in relation to the value zero) can however change from one event to another).
For the purposes of information, the curve 102 is an asynchronous signal of which the events are generated during the appearance of a QRS complex in the electrocardiogram of the curve 101.
Also for the purposes of information, the curve 103 is an asynchronous signal of which the events are generated when the width of a QRS complex of the electrocardiogram of the curve 101 exceeds a target value (e.g. average over the x preceding minutes).
This example is substantially identical to the example of
For the purposes of information, the curve 105 is an asynchronous signal of which the events are generated when the respiratory rate exceeds a predetermined threshold (i.e. dotted horizontal line) in the curve 104.
Also for the purposes of information, the curve 106 is an asynchronous signal of which the events are generated when the derivative of the respiratory rate exceeds a target value in the curve 104.
Regardless of the characteristics used for the generating of events, this generating makes it possible to transform signals of different types (e.g. the curves 101 and 104 not being generated using the same type of sensors and/or same sources of information and/or representative of different physical concepts) into comparable asynchronous signals (e.g. 102 and 106). Then, the work of identifying the patterns is simplified.
In this example, and in the absence of events, the value of S(p1, t), S(p2, t) or S(p3, t) is zero.
However, during the occurrence of an event (for example, 210) in the signal p1, S(p1, t) takes a predetermined threshold value (here h, with this value h able to be unitary).
The value of the activity profile S(p1, t) then decreases progressively after this event to approach 0.
The same applies for the event 211 for the signal p1, for the event 212 for the signal p2, or for the event 213/214 for the signal p3.
Although the decrease in the signal/activity profile S is here linear, it is possible to provide any type of decrease such as an exponential decrease:
This exponential decrease can be shown in
Moreover, it is possible that, during the occurrence of an event for the signal in question (e.g. p4 here), the value of the function S is not negligible in relation to the value of h (e.g. the event 221 is temporally close to the event 222).
In an embodiment, during the occurrence of the later event 222, the value of the activity profile S can be set to the sum (optionally weighted) of the current value of S just before the event 222 (i.e. h0) and of h. Thus, the decrease of the curve S will start from the value h+h0 as shown in
In another embodiment, during the occurrence of the later event 222, the value of the curve S is set to the value h regardless of the value of h0 (i.e. the events prior to the last event (i.e. the later event) are ignored). In this other embodiment, it is possible to define a time referred to as “last event time” defined as follows:
T(p,i)=max(tj)|j<i
or
T(p,t)=max(tj)|tj<t
with tj the times of events occurring for a signal p.
Conceptually, p→T(p, t) defines a map of the times of the last events occurred temporally just before a reference time (i.e. t).
It is then possible to define, in this other embodiment, p→S(p, t) as being a function of this map p→T(p, t).
For example, p→S(p, t):
with τ and h a predetermined time constant (S can be any function that decreases over time t over an interval comprising as lower limit T(p, t)).
The function p→S(p, t) is called the “context” of the input signals for a given time t.
The creation of a context p→S(p, t) as described hereinabove, is advantageous, as it allows for a continuous and simple representation of discontinuous concepts (i.e. the events). This created profile makes it possible to transform the representation of the events in a domain that is simple to apprehend.
Then, the creation thereof simplifies the handling and the comparing of events.
The context of the input signals can be read simply in
This vector can be represented graphically in the form of a “spider” graph (e.g.
Although the order of the components of the vector can be arbitrary in a large number of situations, it is possible to establish an order among these components according to the spatial and/or temporal dynamics of the signals. Thus, two consecutive components in a given context can represent signals that have a close spatial and/or temporal dynamics.
In order to detect patterns in the signals, it is possible to define standard contexts which will be compared to the previously defined contexts S.
For example, the context of
Of course, as for contexts, the standard contexts can have multiple equivalent representations (graphics or not): the graphical representation used here is retained only for the visual simplicity that the latter procures.
These standard contexts can thus be compared with the determined contexts in the signals. The standard context that is the closest to the determined context is then retained. In order to measure the proximity between two contexts (seen as vectors), it is possible to use any distance (in the mathematical sense) between these two vectors.
Of course, each standard context can be associated with a given pattern: for example the standard context 402 can correspond to a mechanical failure of an engine while the standard context 401 corresponds to a normal operation of said engine.
In the embodiment where the components of the contexts have an order as a function of the spatial and/or temporal dynamics of the signals, the distance used for the minimisation of the distance between the context and the standard contexts can take this order into account.
As a complement or as an alternative, it is also possible (
In this example, four new asynchronous signals are thus generated and can be the object of the same analysis as before with a new base of standard contexts (often referred to as “standard contexts of a higher hierarchical level”). Each one of these new standard types will here have four dimensions (equal to the number of asynchronous signals to be analysed).
Thus, this method (i.e. analyse) can be recursive and be iterated as many times as the number of hierarchical levels defined for the standard contexts.
With regards to the decrease in the activity profiles of
Once all of the hierarchical levels have been used/passed through (with the hierarchical model able to comprise only a single level in a particular case), it is possible to define a signature.
In this example, the signature is defined as being the vector or the histogram 420 of the number of occurrence (respectively n401, n402, n403, n404) of each one of the determined standard contexts (respectively 401, 402, 403, 404) for the latest occurrence of the method described hereinabove.
It is then possible to find, in a base of standard signatures (421, 422, 423), the standard signature that is closest to the determined signature. This proximity can be established by using any distance whatsoever in the mathematical sense.
The distance between two histograms 1 and 2 (for example 420 and 421) can be calculated as a mathematical distance between two vectors having for coordinates the number of occurrences for each one of the standard contexts:
d(1;2)=∥1−2∥
It is also possible to calculate a standardised distance such as follows:
with card (1) the number of standard contexts (i.e. vertical bar) of the histogram j.
The Bhattacharyya distance can also be used as a replacement for the conventional distance:
with j(i) the number of occurrences of the ith standard context of the histogram j.
It has been observed experimentally that the Bhattacharyya distance or a standardised distance gave very good results. Any other mathematical distance can also be sued.
The signature can also be the general form of the asynchronous signals of the four event flows.
Each one of the standard signatures can be associated with a give pattern in the received signals: for example the standard signature 421 can correspond to a mechanical failure of an engine while the standard signature 422 corresponds to a normal operation of said engine.
Upon receiving signals 501, it is possible to create (step 502) asynchronous signals by generating events based on detections of characteristics of the signal, such as described in relation with the
Once these asynchronous signals are created, it is possible to create (step 503), from each asynchronous signal created, an activity profile as described in relation with
These activity profiles make it possible, for a given time, to determine (step 504) a context as described in relation with
Moreover, it is also possible to determine (step 506) a standard context from among a set of predetermined standard contexts (for example, pre-calculated and stored in a database 505) by minimising the distance between the context determined in step 504 and the standard contexts.
Based on the determined standard context, it is then possible to determine (step 508) a “pattern” 509 in the plurality of received signals. In this hypothesis, it is advantageous to associate a “pattern” with each one of the standard contexts. Then, when the standard context is identified, it is possible to carry out a query in an association database in order to retrieve the associated pattern.
Upon receiving signals 501, it is possible to create (step 502) asynchronous signals by generating events based on detections of characteristics of the signal, such as was described in relation with
Once these asynchronous signals are created, it is possible to create (step 503), from each asynchronous signal created, an activity profile as described in relation with
These activity profiles make it possible, for a given time, to determine (step 504) a context as described in relation with
Then, it is possible to use the events of each asynchronous signal which have just been created as current events.
Moreover, having a hierarchical model of standard contexts (e.g. stored in a database 511, having max_k levels), it is possible to take the standard contexts of the first level (k=1) as current standard contexts.
Once a context is determined, it is also possible to determine (step 506) a standard context among the current standard contexts by minimising the distance between the context determine in the step 504 and the current standard contexts.
Each recognition of a standard context can allow for the generating (step 512) of an event as described in relation with
Once these steps (506, 512) have been carried out for the plurality of times mentioned hereinabove, it is possible to change the level in the hierarchical model (step 513, e.g. k=k+1). If a level of the hierarchical model has not been used (i.e. k<=max_k, output OK from step 513), it is possible to reiterate the steps 506, 512 and 513 by using the new asynchronous signals created (i.e. by considering the events generated in the step 512 during the last iteration as current events) and by using the new standard contexts (i.e. those of the higher hierarchical level chosen in the step 513) as current standard contexts.
Moreover, it is also possible to use as an additional asynchronous signal (i.e. in addition to the new asynchronous signals created) an asynchronous signal coming from a step similar to step 502. Indeed, if a received signal is a fast signal (of which the variations are notable for a predetermined period of time), it is advantageous to process it using the first levels of the hierarchical model. However, if the received signal is slow (its variations are negligible over the predetermined period of time), it can be advantageous to not process it with the first levels of the hierarchical model and to wait for a later hierarchical level so as to integrate it into the asynchronous signals to be processed by step 504. This integrating of this asynchronous signal will be done in parallel with the asynchronous signals generated in step 512 for the “faster” signals that are already integrated. Thus, it is possible to carry out a pre-analysis of the received signals 501 in order to classify them as a function of their spatial and/or temporal dynamics: this classification can then know the level v of the hierarchical model from which each signal is integrated into the loop defined by the steps 506, 512 and 513.
If all of the levels of the hierarchical model have been used, it is then possible to determine a “pattern” via a comparison 507 of the standard contexts determined at the last occurrence of the step 506 with a base of standard signatures 510. This comparison can comprise for example the calculation of the number of occurrences of determining standard contexts at the last occurrence of the step 506 such as is described in relation with
In this hypothesis, it is advantageous to associate with each one of the signatures of the signature base a “pattern”. Then, when the signature is identified, it is possible to carry out a query in an association database in order to retrieve the associated pattern.
In this embodiment, the device comprises a computer 600, comprising a memory 605 for storing instructions allowing for the implementing of the method, the measurement data received, and temporary data for carrying out the various steps of the method such as described hereinabove.
The computer further comprises a circuit 604. This circuit can be, for example:
This computer comprises an input interface 603 for receiving the signals to be analysed, and an output interface 606 for supplying the recognised pattern. Finally, the computer can comprise, in order to allow for easy interaction with a user, a screen 601 and a keyboard 602. Of course, the keyboard is optional, in particular in the framework of a computer that has the form of a touch-sensitive tablet, for example.
Moreover, the block diagram shown in
Of course, this invention is not limited to the embodiments described hereinabove as examples; it extends to other alternatives.
Other embodiments are possible.
For example, although the examples given are of a particular field, the method proposed can make it possible to analyse any type of data/signals in any possible industrial field, without any particular limitation.
Number | Date | Country | Kind |
---|---|---|---|
16 58424 | Sep 2016 | FR | national |
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/FR2017/052393 | 9/8/2017 | WO | 00 |
Publishing Document | Publishing Date | Country | Kind |
---|---|---|---|
WO2018/046868 | 3/15/2018 | WO | A |
Number | Name | Date | Kind |
---|---|---|---|
3598110 | Edmark | Aug 1971 | A |
6684100 | Sweeney | Jan 2004 | B1 |
7151490 | Richards | Dec 2006 | B2 |
20100137728 | Govari | Jun 2010 | A1 |
20110004421 | Rosewell et al. | Jan 2011 | A1 |
20140039274 | Sarrafzadeh et al. | Feb 2014 | A1 |
20160058318 | Borjigin | Mar 2016 | A1 |
Number | Date | Country |
---|---|---|
WO-2007019498 | Feb 2007 | WO |
2016146937 | Sep 2016 | WO |
Entry |
---|
Alireza Vahdatpour et al: “Toward Unsupervised Activity Discovery Using Multi-Dimensional Motif Detection in Time Series”, Jul. 11, 2009 (Jul. 11, 2009), XP055375602, Retrieved from the Internet <URL:https://www.ijcai.org/Proceedings/09/Papers/212.pdf> [retrieved on 20170523] *. |
Joon Ahn et al: “RISA: Distributed Road Information Sharing Architecture”, INFOCOM, 2012 Proceedings IEEE, IEEE, Mar. 25, 2012 (Mar. 25, 2012), pp. 1494-1502, XP032178877, ISBN: 978-1-4673-0773-4, DOI: 10.1109/INFCOM.2012.6195516. |
Raffay Hamid et al: “Unsupervised Activity Discovery and Characterization From Event-Streams *”, Jul. 4, 2012 (Jul. 4, 2012), XP055375598, Retrieved from the Internet <URL:https://arxiv.org/ftp/arxiv/papers/1207/1207.1381.pdf> [retrieved on May 23, 2017]. |
International Search Report, dated Dec. 7, 2017, from corresponding PCT/FR2017/052393 application. |
Number | Date | Country | |
---|---|---|---|
20190370542 A1 | Dec 2019 | US |