MEANS FOR IDENTIFYING STOP PERIODS OF A DEVICE IN A LOCATION
20170347243 · 2017-11-30
Inventors
Cpc classification
G01S5/0294
PHYSICS
International classification
Abstract
Provided are means for identifying stop periods of a device in a location. A method for identifying the stop periods may be performed by a mobile device and involve during a first step, determining a predicted position of the mobile device, according to a new filtered position obtained using a discrete-time Kalman Filter. The method may also involve during a second step, determining a normalized prediction error according to the difference between the new predicted position and the first position. If the normalized prediction error is smaller than a prediction error threshold, generating a stop message to indicate that the stop period is starting. The method may further involve during a third step, triggering an action on the mobile device, according to the stop message.
Claims
1. A method for determining a stop period of a mobile device in geographical locations, according to geolocation data related to said mobile device, and for triggering an action accordingly, the method being executed by said mobile device and comprising: during a first step, determining a predicted position of the mobile device, according to a new filtered position obtained using a discrete-time Kalman Filter with the geolocation data and a first position related to the mobile device, the first position being: either a current position of the mobile device if it is possible to obtain said current position from the geolocation data; or, if the current position of the mobile device is not available from the geolocation data, an artificial position of the mobile device corresponding to a last received new position of the mobile device available from the geolocation data; during a second step, determining a normalized prediction error according to the difference between the new predicted position and the first position; if the normalized prediction error is smaller than a prediction error threshold, generating a stop message to indicate that the stop period is starting; during a third step, triggering an action on the mobile device, according to the stop message.
2. The method according to claim 1, wherein, during the second step, the normalized prediction error is stored in a prediction error registry and wherein a smoothed prediction error is determined by smoothing the normalized prediction error, over a predefined smoothing time period, according to prediction errors stored in the prediction error registry; the stop message to indicate that the stop period is starting being generated if the smoothed prediction error is smaller than the prediction error threshold.
3. The method according to claim 2, wherein the smoothed prediction error is determined by smoothing the normalized prediction error, over a predefined smoothing time period, according to prediction errors stored in the prediction error registry using an exponential smoothing process.
4. The method claim 1, wherein during the second step, if the normalized prediction error is greater than the prediction error threshold, a move message is generated to indicate that the stop period is no longer on-going; and the action triggered during the third step is then interrupted or modified.
5. The method according to claim 1, wherein, the first step, the second step and the third step are executed every time the difference between the current position of the mobile device and one of previously known current positions of the mobile device over a predefined period, is greater than a minimum distance.
6. The method according to claim 1, wherein the first step, the second step and the third step are executed according to a predefined schedule, and/or upon detection of specific events.
7. The method according to claim 1, wherein, during the first step, an associated level of uncertainty is determined according to the new filtered position, and wherein if the associated level of uncertainty is greater than a loss of signal threshold, a loss of signal message is generated to indicate that information are insufficient to determine if the mobile device is in a stop period; the action triggered during the third step being interrupted or modified.
8. The method according to claim 1, wherein, if the current position of the mobile device is not available from the geolocation data, a null-speed model assuming that the mobile device is motionless is used as process parameters of the discrete-time Kalman Filter.
9. A non-transitory computer program product comprising instructions for causing implementation of the method according to claim 1, when said program is run by the processor.
10. A mobile device comprising means for determining a stop period of a mobile device in geographical locations, according to geolocation data related to said mobile device, and for triggering an action accordingly, the mobile device comprising: means for determining a new predicted position of the mobile device, according to a new filtered position obtained using a discrete-time Kalman Filter with the geolocation data and a first position related to the mobile device; the first position being: either a current position of the mobile device if it is possible to obtain said current position from the geolocation data; or, if the current position of the mobile device is not available from the geolocation data, an artificial position of the mobile device corresponding to a last received new position of the mobile device available from the geolocation data; means for, determining a normalized prediction error according to the difference between the predicted position and the first position; if the normalized prediction error is smaller than a prediction error threshold, generating a stop message to indicate that the stop period is starting; means for triggering an action on the mobile device, according to the stop message.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0026] Aspects of the described technology will emerge more clearly from the following description of an example of an embodiment of the described technology, said description being made with reference to the accompanying drawings, among which:
[0027]
[0028]
[0029]
[0030]
DETAILED DESCRIPTION
[0031]
[0032] We refer now to
[0033] The geolocation data m1 . . . m6 are noisy: the actual locations p1 . . . p6 of the mobile device differ of various amounts from the corresponding geolocation data m1 . . . m6. The geolocation data m1 . . . m6 are not available for each period of time corresponding to the move of the mobile device from the location p1 to the location p6. For example, the geolocation data m2 is missing.
[0034] According to the described technology, a stop period relates to a time segment where the mobile device 10 stays inside a specific point of interest, as opposed to a move period where the mobile device moves from a point of interest to another point of interest. It should be understood that, during a stop period, the location of the mobile device 10 may vary if the mobile device moves inside the specific point of interest. In the example of the
[0035] Any and all steps of the method described hereafter with regard to
[0036]
[0037] The method is executed every time a new location y.sub.k of the mobile device 10 is identified in the geolocation data stream provided by the geolocation module 20. The new location y.sub.k of the mobile device 10 can be identified by using a distance filter on the geolocation data. The new location y.sub.k can be obtained by filtering geolocation data, so as that the current location of the mobile device 10 is considered as the new location y.sub.k, only if the mobile device has moved from the previously determined new location by a minimum distance over a predefined period. Advantageously, the method can also be performed according to a schedule—for instance every 15 seconds, and/or upon detection of specific events and/or at specific periods—for example, when no new location y.sub.k of the mobile device has been detected for a predefined period. The method can also be performed when a user launches a specific app. The method comprises a prediction step S100, a classification step S200 and an action step S300.
[0038] During the prediction step S100, a new predicted position m.sub.k.sup.− of the mobile device is determined. A prediction filtering process is used on the available geolocation data. The prediction filtering process may use of general filters, like particle filters.
[0039] In an exemplary embodiment, the prediction filtering process uses a Kalman Filter, which is well suited to this task since mean and variance information (i.e. a Gaussian observation) of the available geolocation data of an observation can be used. More particularly, a discrete-time Kalman filter may be used. A suitable discrete-time Kalman filter for the prediction filtering process is described, for example, in the thesis document [1] Särkkä, S. (2006). RECURSIVE BAYESIAN INFERENCE ON STOCHASTIC DIFFERENTIAL EQUATIONS, Helsinki University of Technology Laboratory of Computational Engineering Publications (available online http://lib.tkk.fi/Diss/2006/isbn9512281279/isbn9512281279.pdf), in particular on page 54 and following. In the present description, if not stated otherwise, the notation used to described the use of a discrete-time Kalman Filter relates to the notation commonly used in this domain by the man skilled in the art, as detailed for example in the thesis document [1] in particular in the Notation section pages viii-xii. In the present description, the general background for the implementation of the discrete-time Kalman Filter filtering process can be found in the technical developments disclosed in the thesis document [1].
[0040] The process equations of the Kalman Filter are derived from a null-speed model assuming that the mobile device is motionless—i.e. has no speed. The process equations of the Kalman filter are used to determine a new predicted position x.sub.k|k−1.
[0041] The State Space Model of the discrete-time Kalman filter can be described by the following mathematical expressions:
x.sub.kA.sub.k−1x.sub.k−1+q.sub.k−1
y.sub.k=H.sub.kx.sub.k
[0042] where
[0043] x.sub.kε.sup.n is the state of the Kalman Filter on time step k;
[0044] y.sub.kε.sup.m is the measurement at time step k, i.e. the observed position of the mobile device at time step k;
[0045] q.sub.k−1˜N(0,Q.sub.k−1) is the process noise, equivalent to the normal distribution of the covariance of discrete-time process noise at jump from step k−1 to step k
[0046] r.sub.k˜N(0, R.sub.k) is the measurement noise, equivalent to the normal distribution of the covariance matrix of measurement at step k;
[0047] the prior distribution is Gaussian x.sub.0˜N(m.sub.0,P.sub.0), equivalent to the normal distribution of m.sub.0 mean of discrete-time Gaussian process on time step 0 and P.sub.0 covariance of discrete-time Gaussian process on time step 0.
[0048] A.sub.k−1 is the transition matrix of the dynamic model of jump from step k−1 and k;
[0049] H.sub.k is the measurement model matrix on time step k in linear Gaussian model.
[0050] According to the described technology, a null-speed model is implemented. Accordingly, the transition matrix A.sub.k−1 is set to the identity matrix Id, and the measurement model matrix H.sub.k is set to the identity matrix Id. The process parameters of the discrete-time Kalman filter can be described by the following mathematical expressions:
Q.sub.k=diag(σ.sup.2t)
R.sub.k=diag(a.sup.2)
[0051] where
[0052] Q.sub.k is the covariance of the discrete-time process noise at jump from step k to k+1;
[0053] σ.sup.2 the variance;
[0054] R.sub.k being the covariance matrix of measurement at step k;
[0055] a accuracy of the location estimate.
[0056] The prediction step of the discrete-time Kalman filter can be described by the following mathematical expressions:
m.sub.k.sup.−=A.sub.k−1m.sub.k−1
P.sub.k.sup.−=A.sub.k−1P.sub.k−1A.sub.k−1.sup.T+Q.sub.k−1
[0057] where
[0058] mk is the mean of discrete-time Gaussian process on time step k, i.e. the last filtered position of the mobile device;
[0059] m.sub.k.sup.− is the predicted mean just before measurement y.sub.k, i.e. the predicted position of the mobile device according to the last filtered position mk;
[0060] Pk is the covariance of the discrete-time Gaussian process on time step k;
[0061] P.sub.k.sup.− is the predicted covariance just before measurement y.sub.k.
[0062] The update step of the discrete-time Kalman filter can be described by the following mathematical expressions:
v.sub.k=y.sub.k−H.sub.k−1m.sub.k.sup.−
Sk=H.sub.kP.sub.k.sup.−H.sub.k.sup.T+R.sub.km.sub.k.sup.−
K.sub.k=P.sub.k.sup.−H.sub.k.sup.TS.sub.k.sup.−1
m.sub.k=m.sub.k.sup.−+K.sub.kv.sub.k
P.sub.k=P.sub.k.sup.−−K.sub.kS.sub.kK.sub.k.sup.T
[0063] where
[0064] v.sub.k is the innovation vector in optimal filter;
[0065] S.sub.k is the innovation covariance in optimal filter;
[0066] K.sub.k is the Kalman gain matrix in optimal filter.
[0067] If a new observed position y.sub.k is available on the geolocation module 20 at step time k, the process equations of the Kalman filter are solved to determine a new predicted position m.sub.k.sup.− according to the last filtered position mk−1 and the new observed position y.sub.k of the mobile device.
[0068] If the new observed position y.sub.k is not provided by geolocation module 20, the process equations of the Kallman filter are solved to determine a new predicted position m.sub.k.sup.− according to the last filtered position ink and an artificial position for the new observed position y.sub.k of the mobile device. The artificial position for the new observed position y.sub.k is determined according to the last new observed position y.sub.p received from the geolocation module 20, p being the time step where said last new observed position y.sub.k was received. In this situation, the artificial position for the new observed position y.sub.k corresponds to the position the user would be in, if he would not have moved since the last new observed position y.sub.p has been received from the geolocation module 20. It can be described with the following mathematical expression
y.sub.k=y.sub.p
[0069] The prediction error is determined between the last predicted position m.sub.k.sup.− and the last obtained position y.sub.p from the geolocation module 20, if no new location has been received. The covariance matrix Rk of measurement at time step k is determined according to the following mathematical expression:
Rk=diag(α.sub.k.sup.2k2)
[0070] The accuracy α.sub.k.sup.2 at time step k is determined according to the following mathematical expression:
[0071] According to the described technology, by using a null speed model, and in particular the artificial position for the new observed position y.sub.k, the filtered covariance Pk of the filtered position ink converges towards the last observed covariance R.sub.p.
[0072] At the end of the prediction step S100, the Kalman Filter's state includes the predicted position m.sub.k.sup.− of the corresponding stop period and the covariance Pk related to an associated level of uncertainty.
[0073] The sub-steps of the classification step S200 are illustrated in
[0074] In a first sub-step S210, the covariance Pk associated to the filtered position m.sub.k is compared to a loss of signal threshold TSU. If the covariance Pk is superior to the loss of signal threshold TSU, then a message LS related to a loss of signal is generated, to indicate that information are insufficient to determine if the mobile device is in a stop period or not.
[0075] In a second sub-step S220, a normalized prediction error nPrERR.sub.k is determined, according to the predicted position m.sub.k.sup.−. The normalized prediction error nPrERR.sub.k is stored in a prediction error registry.
[0076] If a new observed location y.sub.k of the mobile device 10 can be determined according to the geolocation data stream provided by the geolocation module 20, a prediction error PrERR.sub.k is determined by computing the difference between the predicted position m.sub.k.sup.− and said new location y.sub.k of the mobile device 10. During the second sub-step S220, the normalized prediction error nPrERR.sub.k is determined according to the prediction error PrERR.sub.k and an innovation covariance S.sub.k, as expressed in the following mathematical expression:
[0077] In a third sub-step S230, a smoothed prediction error sPrERR is determined, according to the normalized prediction error nPrERR.sub.k and previous normalized prediction errors stored in the prediction error registry. An exponential smoothing process—as described for example in the Wikipedia page https://en.wikipedia.org/wiki/Exponential_smoothing as retrieved on Mar. 7 2016—can be used to smooth, over a predefined smoothing time period STP, the prediction error PrERR, according to the previous prediction errors included in the prediction error registry. The predefined smoothing time period STP allows to define a level of certainty that needs to be reached to determine whether the mobile device is still in a stop period or not. The smaller the predefined smoothing time period STP the greater the sensibility of noise in the geolocation data. Consequently, the exponential smoothing process allows improving the assessment of predictions errors over time by verifying that the prediction errors are small enough over the predefined smoothing time period STP.
[0078] In a fourth sub-step S240, the smoothed prediction error sPrERR is compared to a prediction error threshold TPrE. The prediction error threshold TPrE relates to the geographical scale under which stop periods have to be identified. The prediction error threshold is unitless, since normalized values are used. For example, if it is suitable to detect stop in large points of interest like the third point of interest PoI3, the prediction error threshold TPrE should be greater than 0.25. By contrast, if it is suitable to detect stop in smaller points of interest like the first or second point of interest, the prediction error threshold TPrE should be typically smaller than 0.25.
[0079] If the smoothed prediction error sPrERR is smaller than the prediction error threshold TPrE, then, in a fifth sub-step S250, a STOP message related to a stop period of the mobile device 10 is generated, to indicate that a stop period of the mobile device is starting. The STOP message may also comprise the filtered position mk of the mobile device.
[0080] If the smoothed prediction error sPrERR is greater than the prediction error threshold TPrE, then, in a sixth sub-step S260, a MOVE message related to a move period of the mobile device 10 is generated, to indicate that a stop period of the mobile device is not on-going.
[0081] Based on STOP and MOVE messages received, during the action step S300, one or more actions are triggered and executed by the mobile device 10 and optionally by other devices coupled to the mobile device 10 and accessible through the communication network 12, such as a remote server or a local connected object.
[0082] The one or more actions may relate to actions in which determining a place where a user of the mobile device is currently located, according to current and past geolocation information, is useful. The patent document EP 15200364.6 [2] describes in particular means for determining a place where a user of the mobile device is currently located, and can advantageously used the STOP and MOVE messages to improve the services provided to the user of the mobile device. For example, when a STOP message has been received, the place where the user currently stands may be determined, using means described in the patent document [2], and, based on this knowledge, adapted features, such as initialize a transaction by credit card, or tips on the place, may be triggered.
[0083] While there have been shown and described and pointed out the fundamental novel features of the invention as applied to certain inventive embodiments, it will be understood that the foregoing is considered as illustrative only of the principles of the invention and not intended to be exhaustive or to limit the invention to the precise forms disclosed. Modifications or variations are possible in light of the above teachings. The embodiments discussed were chosen and described to provide the best illustration of the principles of the invention and its practical application to enable one of ordinary skill in the art to utilize the invention in various embodiments and with various modifications as are suited to the particular use contemplate. All such modifications and variations are within the scope of the invention as determined by the appended claims when interpreted in accordance with the breadth to which they are entitled.