Trajectory determination device

FR3146254B1Active Publication Date: 2025-02-21INTERSEC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
FR2023001708
Authority / Receiving Office
FR · FR
Patent Type
Patents
Current Assignee / Owner
Filing Date
2023-02-24
Publication Date
2025-02-21
Estimated Expiration
2043-02-24

Smart Images

  • Figure 00000027_0000
    Figure 00000027_0000
  • Figure 00000027_0001
    Figure 00000027_0001
  • Figure 00000028_0000
    Figure 00000028_0000
Patent Text Reader

Abstract

Trajectory Determination Device: A trajectory determination device receives signaling events from a mobile or wireless network, each including a mobile communication device identifier, a time marker, and a signaling identifier associated with a location and a location radius. It preprocesses the associated signaling events to identify one or more long-parking groups, trajectory segments, and long-parking segments. It smooths the events at the boundaries of the long-parking segments, processes them to associate each segment with a label belonging to a group comprising movement and stopping, and returns the long-parking segments and trajectory segments as trajectory data. Fig. 1
Need to check novelty before this filing date? Find Prior Art

Description

Title of the invention: Trajectory determination device

[0001] The invention relates to the field of trajectory detection, more particularly passively, from signaling events associated with a mobile device.

[0002] Determining the flow of people moving between various locations is complex. For a given location, it is possible to determine flows statistically, by humanly measuring the number of people entering and leaving. However, these methods are unreliable, expensive, and lacking in contextual information. Indeed, it is not possible to know the place of origin of the people counted, what means of transport are used, etc.

[0003] The Applicant has already invented several devices for determining trajectory data from signaling events associated with a mobile device. Thus, the European patent published under number EP 3 329 696 describes the definition of stop or movement type labels for pairs of signaling events consecutive in time, and the processing of these labels in order to establish trajectory data. The patent application published under number EP 3 586 319 describes an improvement of this patent for determining a mode of transport associated with trajectory data.

[0004] The Applicant also studied scientific articles. Among these, the article by Calabrese et al. “Estimating origin-destination flows using mobile phone location data”, IEEE Pervasive Computing (Volume: 10, Issue: 4, April 2011) describes the use of mobile telephone data and defines, among a series of locations, stops as consisting of sets of locations whose distances two by two are less than a given threshold, typically one kilometer. This approach is simplistic and does not allow the bagot problem to be addressed, i.e. the successive attachment to different antennas, potentially very far apart, while there is little or no real movement.

[0005] The article by Leontiadis et al., "From cells to streets: Estimating mobile paths with cellular-side data", CoNEXT 2014 - Proceedings of the 2014 Conference on Emerging Networking Experiments and Technologies, 121-132, uses a time threshold to classify stationarity, but in an approach where the distance threshold is “replaced” by considerations of intersection between the coverage of an antenna and a grid square dividing the territory, locations on antennas being considered “close” if their coverages overlap the same grid square. Here again, the bagot is not handled optimally.

[0006] The article by Ishizuka et al., “Traffic Analysis of Railway using Call Detail Records”, available at http: / / web.archive.Org / web / 20220125110421 / https: / / netmob.org / wwwl7 / assets / img / bo okofabstract_oral_2017.pdf, notes that the approaches described above have the drawback of having to define thresholds that are sometimes arbitrary, which strongly impacts the results. Thus, a very high distance threshold will correctly detect large movements (“wide vision”), but will miss small movements within the generated stops, while a low threshold (“precise vision”) will detect these movements but will create noise due to the telecom noise. To compensate, the authors imagine an approach combining the results of two distance thresholds applied, the precise vision adjusting the large journeys detected by the wide vision.This article, although more sophisticated than the two previous ones, does not offer satisfaction in practice, the inter-antenna distances linked to the telecom bagot being able to vary greatly.

[0007] Finally, the article by Xu et al. “Effects of Data Preprocessing Methods on Addressing Location Uncertainty in Mobile Signaling Data”, Annals of the American Association of Geographers, 111:2, 515-539, discusses methodologies for reducing the noise inherent in mobile data, particularly in the case of very short-time connection to distant antennas with rapid return to an antenna to which the mobile had previously connected. These methodologies are nevertheless dependent on the notion of reappearance on the same antenna, which is of course not always the case.

[0008] These devices and articles, although interesting, present significant possibilities for improvement, in particular to better take into account the relative durations separating the various events.

[0009] The invention improves the situation. To this end, it proposes a trajectory determination device comprising: - a memory (4) arranged to receive mobile or wireless telephone network signaling events each comprising a mobile communication device identifier, a time marker and a signaling identifier associated with a location and a location radius, - a pre-processing unit arranged, for a given mobile communication device identifier, to browse the associated signaling events, and to identify one or more long parking groups comprising signaling events such that, within a given long parking group, the time markers are consecutive and define a range whose duration is greater than a first threshold duration, and the locations have between them a distance less than a first threshold distance drawn from one or more of the location radii, the pre-processing unit being arranged to define a long parking segment from each long parking group, each segment of long parking comprising on the one hand terminals corresponding to the extreme time markers of the long parking group from which it originates and on the other hand a location determined from the locations of the signaling events of the long parking group from which it originates, and being associated with a stop type label, - a processing unit, arranged to process the signaling events whose time markers are located outside a long parking segment by pair of signaling events having immediately consecutive time markers which define the terminals of a trajectory segment, comprising a smoother arranged to scan the signaling events whose time markers are located outside a long parking group first by increasing or decreasing time markers, then by decreasing or increasing time markers, to define during these two journeys,for each current signaling event, a time window one end of which corresponds to said current signaling event, and the other end is a signaling event chosen in the direction of increasing or decreasing travel and the time marker of which defines with the time marker of the current signaling event a duration substantially equal to a second threshold duration, and to associate with each window a label belonging to a group comprising a movement and a stop, according to the distance between the locations of the signaling events defining its limits, a concentrator arranged, once the smoother has processed all the signaling events whose time markers are located outside a parking group have been traveled by increasing and decreasing time markers,to associate with each trajectory segment a label determined according to the labels of the time windows which cover the limits of this trajectory segment, and, - a post-processing unit designed for: * first browse the trajectory segments associated with a movement type label, and to change the label of at least some of these trajectory segments when the duration between its limits is less than a third threshold duration, * then browse the trajectory segments associated with a stop type label, and to change the label of at least some of these trajectory segments when the duration between its limits is less than a fourth threshold duration, * determine for each trajectory segment associated with a stop type label a location determined from the locations of the signaling events whose time markers are between the time markers of its terminals, and * return as trajectory data the long parking segments and trajectory segments.

[0010] This device is particularly advantageous because it makes it possible to determine trajectory data which are more relevant than by known methods. Indeed, thanks to the smoothing that it offers, the management of the telecom bagot is greatly improved, and the trajectory data is much more faithful to reality than in state-of-the-art solutions.

[0011] According to various embodiments, the invention may have one or more of the following characteristics: - the treatment unit is arranged, before applying the straightener, * to associate, with each trajectory segment whose locations of the signaling events that compose it have a distance between them that exceeds a second threshold distance and which, in relation to the duration between the time markers of said signaling events that compose it, is less than a first threshold speed, a stop-movement type label, * to associate, with each trajectory segment whose locations of the signaling events that compose it have a distance between them that is less than a third threshold distance, a stop type label, and * to exclude from processing by the smoother signaling events whose time marker is included in a trajectory segment associated with a stop-movement or stop-type label,

[0012] - the post-processing unit is arranged, after having traversed the tra segments jectory associated with a movement type label, and before traversing the trajectory segments associated with a stop type label, to traverse the trajectory segments associated with a stop-movement type label, and, for such a given trajectory segment, if the given trajectory segment is surrounded by two trajectory segments, one of which is associated with a stop type label and the other with a movement type label, to determine a distribution time marker among the time markers of the signaling events whose time markers are between the time markers of its terminals according to the speed observed on the events of the segment associated with a movement type label closest to the given trajectory segment,and to redefine on the one hand the trajectory segment associated with a stop type label so that it incorporates the events of the given trajectory segment whose time markers are closest to it up to the distribution time marker and on the other hand the trajectory segment associated with a movement type label so that it incorporates the events of the given trajectory segment whose time markers are closest to it up to the distribution time marker, , - the post-processing unit is arranged, after having traversed the trajectory segments associated with a stop-type label, to traverse the trajectory segments associated with a stop-movement type label, and to associate with them a stop-type label or a movement-type label, - the post-processing unit is arranged, during the traversal of the trajectory segments associated with a movement type label, to change the label of a trajectory segment whose duration between its limits is less than a third threshold duration into a stop type label when an immediately neighboring trajectory segment is associated with a stop type label, and into a presence type label otherwise, and - the post-processing unit is arranged, during the traversal of the trajectory segments associated with a stop type label, to change the label of a trajectory segment whose duration between its limits is less than a fifth threshold duration into a movement type label when an immediately neighboring trajectory segment is associated with a movement type label, and into a presence type label otherwise.

[0013] The invention also relates to a trajectory determination method comprising the following operations: (a) receiving mobile or wireless network signaling events each comprising a mobile communication device identifier, a timestamp and a signaling identifier associated with a location and a location radius, b) for a given mobile communication device identifier, browsing the associated signaling events, and identifying one or more long parking groups comprising signaling events such that, within a given long parking group, the time markers are consecutive and define a range whose duration is greater than a first threshold duration, and the locations have a distance between them less than a first threshold distance drawn from one or more of the location radii, (c) define a long parking segment from each long parking group, each long parking segment comprising on the one hand terminals corresponding to the extreme time markers of the long parking group from which it originates and on the other hand a location determined from the locations of the signaling events of the long parking group from which it originates, and being associated with a stop type label, (d) process signaling events whose time markers are located outside a long parking segment by pair of signaling events having immediately consecutive time markers which define the boundaries of a trajectory segment, e) browse the signaling events whose time markers are located outside a long parking group first by increasing or decreasing time markers, then by decreasing or increasing time markers, to define during these two journeys, for each current signaling event, a time window one end of which corresponds to said current signaling event, and the other end is a signaling event chosen in the direction of increasing or decreasing travel and whose time marker defines with the time marker of the current signaling event a duration substantially equal to a second threshold duration, and to associate with each window a label belonging to a group comprising a movement and a stop, according to the distance between the locations of the signaling events defining its limits, f) after operation e) has processed all the signaling events whose time markers are located outside a parking group have been traveled by increasing and decreasing time markers, to associate with each trajectory segment a label determined according to the labels of the time windows which cover the limits of this trajectory segment, and gl) first traverse the trajectory segments associated with a movement type label, and to change the label of at least some of these trajectory segments when the duration between its limits is less than a third threshold duration, g2) then traverse the trajectory segments associated with a stop type label, and to change the label of at least some of these trajectory segments when the duration between its limits is less than a fourth threshold duration, g3) determine for each trajectory segment associated with a stop type label a location determined from the locations of the signaling events whose time markers are between the time markers of its terminals, and g4) return as trajectory data the long parking segments and the trajectory segments.

[0014] According to various embodiments, the method may have one or more of the following characteristics: - operation e) includes the following preliminary operations: el) associate, with each trajectory segment whose locations of the signaling events that compose it have a distance between them that exceeds a second threshold distance and which, in relation to the duration between the time markers of said signaling events that compose it, is less than a first threshold speed, a stop-movement type label, e2) associate, with each trajectory segment whose locations of the signaling events that compose it have a distance between them that is less than a third threshold distance, a stop type label, and e3) exclude from processing operation e) signaling events whose time marker is included in a trajectory segment associated with a stop-movement or stop-type label, - after operation gl) and before operation g2), g la) browse the tra segments jectory associated with a stop-move type label, and, for such a given trajectory segment, if the given trajectory segment is surrounded by two trajectory segments, one of which is associated with a stop-type label and the other with a movement-type label, determine a distribution time marker among the time markers of the signaling events whose time markers are between the time markers of its terminals according to the speed observed on the events of the segment associated with a movement-type label closest to the given trajectory segment,and redefine on the one hand the trajectory segment associated with a stop type label so that it incorporates the events of the given trajectory segment whose time markers are closest to it up to the distribution time marker and on the other hand the trajectory segment associated with a movement type label so that it incorporates the events of the given trajectory segment whose time markers are closest to it up to the distribution time marker, , - after operation g2), g2a) browse the trajectory segments associated with a stop-movement type label, and associate a stop-type label or a movement type label with them, - operation gl) includes changing the label of a trajectory segment whose duration between its limits is less than a third threshold duration into a stop type label when an immediately neighboring trajectory segment is associated with a stop type label, and into a presence type label otherwise, and - which operation g2) comprises changing the label of a trajectory segment whose duration between its limits is less than a fifth threshold duration into a movement type label when an immediately neighboring trajectory segment is associated with a movement type label, and into a presence type label otherwise.

[0015] The invention also relates to a computer program comprising instructions for executing the method according to the invention, a data storage medium on which such a computer program is recorded and a computer system comprising a processor coupled to a memory, the memory having recorded such a computer program.

[0016] Other characteristics and advantages of the invention will appear more clearly on reading the following description, taken from examples given for illustrative and non-limiting purposes, taken from the drawings in which:

[0017] - [Fig.l] represents a schematic diagram of a device according to the invention, - [Fig.2] represents an example of implementation of an operating loop of the device of [Fig.l], - [Fig.3] represents an exemplary implementation of a function of an operation of [Fig.2], - [Fig.4] represents an exemplary implementation of a function of an operation of [Fig.2], - [Fig.5] represents an exemplary implementation of a function of an operation of [Fig.2], and - [Fig.6] represents an exemplary implementation of a function of an operation of [Fig.2],

[0018] The drawings and the description below contain, for the most part, elements of a certain character. They may therefore not only serve to better understand the present invention, but also contribute to its definition, if necessary.

[0019] This description is likely to involve elements that are subject to protection by copyright and / or copyright. The rights holder has no objection to the identical reproduction by anyone of this patent document or its description, as it appears in the official files. For the rest, he reserves his rights in full.

[0020] [Fig.l] represents a schematic diagram of a device 2 according to the invention. The device 2 comprises a memory 4, a pre-processing unit 6, a processing unit 8 and a post-processing unit 10. The processing unit comprises a smoother 12 and a compactor 14.

[0021] As mentioned in the introduction, the field of the invention relates to the determination of trajectory data from data passively generated by devices such as mobile phones. This includes in particular all data related to signaling and attachment to wireless communication antennas, whether radio telephone (cellular) or wifi type.

[0022] The sources of geolocation data, particularly in cellular networks, are such that the frequency of these locations can be very variable, with sometimes several locations in a few seconds, before a long period (several tens of minutes or even several hours) without any new location. The state of the art does not address this point or how the algorithms envisaged should be adapted to these different cases. In particular, none provides for the possibility of a division into periods of pause and movement which is done over an hour at which no location is provided.

[0023] The data used in the context of the invention are stored in the memory 4. This data mainly concerns what will be referred to hereinafter as signaling events. The signaling events each comprise a mobile communication device identifier, a time marker and a signaling identifier associated with a location and a location radius. Thus, the mobile communication device identifier is the identifier used on the network concerned (IMSI in cellular, Mac in Wi-Fi, etc.), the time marker is the time of the event concerned, and the signaling identifier is the cell or antenna affected by this event. Thus, the signaling identifier designates a location, namely the center of the cell or the known location of the antenna, and a location radius, which corresponds to the coverage area of ​​the cell or antenna. Although the term radius is used here, the coverage is generally not circular, but rather corresponds to an arc of a circle.

[0024] These locations potentially come from a mobile phone operator, which may have access to a “precise” location on its territory, and only know the roaming country in the event of one of its subscribers traveling abroad, i.e. without being able to locate them in the destination country. In this case, also referred to as “roaming” in English, the location chosen may be based on unique coordinates for the destination country, located at the barycenter of the country.

[0025] Optionally, the operator's antenna reference system - the list of antennas with their respective coordinates - can also be used if it is cellular data, or another source providing the distribution of the population of the country concerned. This type of source allows us to locally estimate a “characteristic inter-antenna distance” in a cellular network, either directly if the operator's information is available, or by estimating it by the population density, via the strong correlation that exists between the antenna density on the one hand and the population density on the other. It is this distance that will allow us to have in our determination of stationarity or displacement a precision that automatically adapts to the area considered.

[0026] From the signaling events, the device 2 performs various calculations and classifications in order to assign labels to time segments. Indeed, two signaling events define by their respective time markers a time segment. This time segment (hereinafter segment) can be used to qualify a trajectory state. For example, it is possible to add a label of the "stop" type, which means that a given mobile device is considered not to have moved from a location which is associated with the segment.

[0027] The purpose of the invention is to produce trajectory data comprising, for a given mobile communication device identifier, a series of segments, each having two time markers as time limits, a location when it is a stop, and a label that qualifies the trajectory associated with this segment. Within the scope of the invention, six types of labels are envisaged: absent, off, stop, movement, stop-movement and presence. As will be seen later, the last two types of label are optional.

[0028] The absent label and the extinguished label are quite close and mean absence of signaling events for a set duration. These labels are used to carry out a temporal pre-splitting of the signaling events associated with a mobile communication device as will appear below. The absent label and the movement label are known from the Applicant's patent FR 3 039 737 A1 and respectively designate a stop, i.e. a position considered to be stationary, or a movement, i.e. a displacement.

[0029] As will be seen later, their definition has nevertheless evolved. Indeed, in the Applicant's previous applications, the signaling events were scanned to predefine stop or movement segments, then the segments were processed by deletion or grouping or conversion according to a chosen order. In the context of the invention, it is the processing unit which associates these labels with each segment, according to a method which aims to reduce the clutter.

[0030] The stop-move label designates a case where the mobile communication device has clearly moved between two successive locations, but at an average speed too slow for the movement to be considered to have taken place over the entire period.

[0031] Finally, the presence label indicates that the mobile communication device is located in a given area, without it being possible to define whether it is moving or stationary, as when a single location is reported over the entire period considered.

[0032] These last two labels are optional, and can either be returned with the trajectory data to provide enriched trajectory data, or be reduced to a stop or movement label as will be seen later.

[0033] In the following, a segment may be identified by its label, i.e. a stop segment means a segment that has a label of the stop type. Similarly, segments may be grouped according to their respective labels, i.e. motion segments will designate all segments whose label is of the motion type.

[0034] The memory 4 can be any type of data storage suitable for receiving digital data: hard disk, hard disk with flash memory, flash memory in any form, RAM, magnetic disk, locally distributed storage or in the cloud, etc.

[0035] In the example described here, the memory 4 receives all the data which concerns the device 2, that is to say the programs and software instantiating the pre-processing unit 6, the processing unit 8 and the post-processing unit 10, the parameters and hyperparameters thereof, the weights of the neural networks, the outputs and intermediate data of the neural networks, the data of the signaling events received as input (if any), the intermediate values ​​generated, the data stored in buffer memory, as well as the output trajectory data. The data calculated by the device can be stored on any type of memory similar to memory 4, or on it. This data can be erased after the device has performed its tasks or retained.

[0036] The pre-processing unit 6, the processing unit 8 (including the smoother 12 and the compactor 14) and the post-processing unit 10 directly or indirectly access the memory 4. They can be implemented in the form of appropriate computer code executed on one or more processors. By processors, it is meant any processor suitable for the calculations described below. Such a processor can be implemented in any known manner, in the form of a microprocessor for a personal computer, laptop, tablet or smartphone, a dedicated chip of the FPGA or SoC type, a computing resource on a grid or in the cloud, a cluster of graphics processing units (GPUs), a microcontroller, or any other form suitable for providing the computing power necessary for the implementation described below. One or more of these elements can also be implemented in the form of specialized electronic circuits such as an ASIC.A combination of processor and electronic circuits can also be considered. Processors dedicated to machine learning may also be considered.

[0037] It will also appear that the division of the device 2 into three functional units reproduces the flow of processing of events by it. This division is nevertheless not fixed: the pre-processing unit 6, the processing unit 8 and the post-processing unit 10 could be partially or entirely merged, or even be separated into finer units as is shown with the smoother 12 and the compactor 14.

[0038] [Fig.2] represents an example of implementation of the device 2. This loop begins in an operation 200 by the execution of an Init() function by the pre-processing unit 6. In this operation, the pre-processing unit 6 receives the signaling events and prepares them for processing. For this purpose, if the signaling events are associated with distinct mobile communication device identifiers, they are separated and grouped according to the latter. In addition, since the signaling events are processed mainly on the basis of their temporality, the Init() function can assemble them by increasing or decreasing time markers, in order to accelerate subsequent processing. Once the signaling events are grouped by mobile communication device identifier and arranged temporally, the Init() function can scan them in order to determine the segments whose label is of the absent or off type.As explained above, these labels correspond respectively to the absence of a signaling event for a duration exceeding a given threshold, for example of the order of two hours or more, and to the presence of a . signaling event indicating a loss of the cellular signal (either because the device is turned off or because the cellular connection is intentionally cut), for a duration exceeding a threshold, for example more than 5 minutes.

[0039] These first segments are important because they define a first time division of the signaling events. Thus, in the following operations, it is not all the signaling events that are considered, but the signaling events whose time markers are included between two segments whose label is of the absent or off type. These segments thus define several sequences within the signaling events that are received as input, and these sequences are processed independently of each other. The device 2 can also process them sequentially, in parallel, or a mixture of the two.

[0040] When the signaling events received at input do not explicitly contain a location radius, the Init() function can also be arranged to generate this data when possible, or to provide a generic value otherwise. In the following, the location radius will be designated by the reference dmax. This radius is associated with the antenna density in each geographical area and makes it possible to define more relevant thresholds, since they are linked to the actual density.

[0041] Once the sequences have been determined by operation 200, the pre-processing unit is arranged to execute a PreT() function in an operation 210. The PreT() function has the role of pre-dividing each sequence into long stops, and of detecting the stop-movement segments optionally.

[0042] [Fig.3] represents an example of implementation of the PreT() function. In an operation 300, a LongS() function is executed. The role of the LongS() function is to identify in the signaling events stops which have a significant duration, i.e. greater than 30 minutes for example.

[0043] In order to account for bagot, this function does not require that the signaling events are all associated with the same location, but only that these locations remain sufficiently close to each other. For this, the locations associated with each signaling event are first smoothed by averaging them with the locations of a chosen number of temporally neighboring signaling events. This reduces noise on the locations. Once the locations have been smoothed in this way, the LongS() function detects phases of stationarity, by looking for periods of maximum duration during which the smoothed location of the mobile communication device remains within a certain radius - taken for example from the location radius or from an average of the location radii associated with the signaling events concerned, or taken from dmax - from a reference point.When the threshold is taken from dmax, this makes it possible to detect fairly close long stops in urban areas, without reducing the quality of detection of long stops in . rural area, where very distant antennas would be penalizing in the case of a fixed threshold. Alternatively, prior smoothing is not applied. In yet another variant, the LongS() function is applied with prior smoothing and without prior smoothing, and the longest stationary phase is retained.

[0044] The combination of the associated signaling events defines a long stop segment each time. In the following, these segments will be treated as stop segments, but their qualification as "long" is important for processing by the processing unit as will be seen below. Optionally, a final check can be carried out to test whether two successive long stop segments close in time can be merged or not, for example on the basis of their respective locations. Otherwise, it is possible to generate a movement segment between these two long stop segments, which will be labeled so that it cannot be modified by any of the subsequent processing operations.

[0045] Once the LongS() function is completed, the stop motion segments can be detected in an operation 310 by means of a StMv() function. The StMv() function is, as explained, optional, and searches for segments formed by two successive signaling events which are separated by a duration greater than a threshold (for example 15 minutes, or a threshold taken from dmax), and whose locations are sufficiently distant to be sure that there has been a movement (for example, the distance between their respective locations exceeds 1km, or a threshold taken from dmax), but such that the speed is too low for the entire period to correspond to a movement segment. In the case where these locations are too close, that is to say that their distance is less than another threshold, for example 100m or a threshold taken from dmax, the segment is labeled as stopped.Finally, the StMv() function marks the segments it has labeled as stop or stop-move so that they are not modified by the processing unit.

[0046] Once operation 210 is complete, the signaling events are preprocessed, that is to say they have been grouped, divided into sequences, and divided again into portions between long stops, with detection of stop-movements or stops where appropriate.

[0047] The processing unit 8 then operates in an operation 220 by executing a function T(). [Fig.4] represents an example of implementation of the function T(). From a high-level point of view, the function T() aims to browse the events not associated with a labeled segment between two long stops, each defining a boundary of a sliding window of fixed size, and by determining for each window a label of type stop or type movement according to the signaling events contained in this window. Alternatively, the size may not be perfectly fixed, and the function T() can search for the most relevant point, for example the closest to this fixed size. Once the events not associated with a labeled segment between two stops long traversed by ascending time markers and descending time markers, the window labels are projected onto each segment they contain, and each segment is assigned a label based on this projection. Optionally, the T() function can operate by not labeling any window since a given event of time marker t if no event is found in a range t+3 minutes and t+30 minutes. This avoids systematically retaining the first point after t+30 minutes, which generates noise.

[0048] Thus, in an operation 400, the smoother 12 executes a function EvtLst() which retrieves the list (or a table) of all the signaling events between two long stop segments (or an absent or extinguished segment and a long stop segment where applicable), and excludes the signaling events which belong to a segment already labeled, whether in motion by operation 300, or in stop-motion or stop by operation 310.

[0049] Then, two loops are performed, each starting from a temporal end of the list resulting from operation 400, in order to traverse it in the increasing and decreasing direction of the time markers.

[0050] For this, the smoother 12 unstacks the list in an operation 410 by executing a Pop+() function (respectively in an operation 430 by executing a Pop-() function) which recovers the immediately increasing (respectively decreasing) time marker signaling event from the list. If there is such a signaling event, then the smoother 12 executes a Wind() function in an operation 420 (respectively 440), by defining a window of duration approximately equal to 15 minutes which includes the events of the list whose time markers are between the time marker of the event of the operation 410 (respectively the operation 430) and 15 minutes after (respectively 15 minutes before), then compares the distance between the location of the event resulting from the operation 410 (respectively the operation 430) and the location of the signaling event which is the most distant in time in the window.If the distance between these two locations exceeds a chosen threshold distance (for example 8 times dmax, or less than 15 times dmax, or approximately 1 kilometer in an urban area and approximately ten kilometers in a rural area), then the window is associated with a movement label, and otherwise with a stop label.

[0051] When all the signaling events have been traversed, operation 410 and operation 430 return a negative value, and the compactor 14 is called to process the labeled windows and qualify the segments in an operation 450 by executing a Segm() function. In the example described here, the Segm() function traverses each segment defined by a pair of signaling events whose time markers are consecutive, selects the windows that temporally overlap this segment, and counts the number of stop labels and the number of movement labels. If the If the number of movement labels exceeds the number of stop labels, the segment is assigned a movement type label. Otherwise, it is assigned a stop type label.

[0052] At the output, all segments are therefore labeled, either absent, or off, or stop (long), or movement (not modifiable), or stop, or movement. In the above, the list of signaling events is traversed in both directions of time in parallel. Alternatively, it could be traversed first in one direction, then in the other. Still alternatively, it could be traversed, but only in one direction. In addition, the Segm() function could also take into account the time markers of adjacent segments, so that 15 signaling events in 5 minutes have the same weight as 5 signaling events in the same time.

[0053] Once operation 220 is completed, the post-processing unit 10 reduces the stop and motion segments according to several operations. The Applicant has discovered that the order presented here provides great precision to the trajectory data produced at the output, but that another order already provides great progress compared to known methods.

[0054] Thus, the post-processing unit 10 executes a PostT() function in an operation 230. [Fig.5] represents an example of implementation of the PostT() function.

[0055] From a high-level perspective, the PostT() function first processes short motion segments, then optionally converts stop-motion segments, then processes short stop segments, then optionally forces all segments to be of type stop or motion, before assigning each stop segment a location.

[0056] In an operation 500, the post-processing unit begins by executing a function ShMv(). The function ShMv() scans through all the motion segments and determines those that have a duration less than a threshold duration, for example 3 minutes, unless this segment was marked as non-modifiable in operation 300. All the resulting segments are assigned a stop type label if at least one segment adjacent to them has a stop type label. If this is not the case, and if the presence labels are used, then a presence label is assigned. If the presence labels are not used, a stop label is assigned in all cases.

[0057] Next, in an optional operation 510, the post-processing unit 10 executes a function StMpSplt(). This function iterates through all the stop-motion segments, and converts them if the stop-motion segment is surrounded by a stop segment and a motion segment, regardless of their order. In this case, the stop segment is considered to represent the true stop, and the motion segment represents the true motion, and the stop-motion segment is decomposed based on the speed observed over the 15 minutes of motion “stuck” to this stop-motion segment and merged accordingly. Thus, the stop segment and the segment of movement are extended proportionally by removing the stop-motion segment, and creating a common time boundary located within it.

[0058] Then, or when the stop-motion labels are not used, the short stop segments are processed by a function ShSt() executed by the post-processing unit 10 in an operation 520. In a similar manner to the operation 510, this function converts the short stop segments (for example less than 5 minutes), if they are neighbors of a motion segment, into a motion segment by merging with the latter, and into a presence-type segment otherwise when these are used. Otherwise, they are converted into a motion segment, with possible merging with a neighboring motion segment if necessary.

[0059] When it is desired that the trajectory data only contain segments of the stop or motion type, a function ForceSM() may be executed in an optional operation 530 by the post-processing unit 10. In this function, the stop-motion segments that were not converted by the operation 510 and the presence segments may be converted into a stop segment or a motion segment. For example, if a neighbor is a stop segment, then the segment is converted into a motion segment. Otherwise, it is converted into a stop segment.

[0060] After operation 520 or operation 530 as the case may be, the segments have been fully post-processed and are ready to be used to be returned as trajectory data. In order to refine their locations, each resulting stop segment is traversed in an operation 540 by a Loc() function which calculates the barycenter of all the signaling events which are included between the limits of these segments. Thus, the location which is associated with each stop segment is smoothed by all the signaling events which it contains. The location radius of these events can also be averaged to be associated with these segments. In order to determine an even more precise location, the Loc() function can execute one or more of the following processes:

[0061] - eliminate “extreme” points, detected by comparing the displacement of the ba rycenter if the points furthest from the current barycenter are deleted, and repeat this deletion iteratively, until the displacement is no longer significant, or a number of repetitions is reached, and

[0062] - estimate a “radius” of the stop zone, taking into consideration both the local dmax and the dispersion of the stop events (for example max (3*dmax, 80% quantile of the distances to the barycenter)), and discard the events which are not within this radius for the calculation of the barycenter.

[0063] The same operation can be performed on presence type segments.

[0064] Finally, optionally, segmentation of the stop segments can allow to retain, for stop segments whose locations are very close, and for example less than a threshold taken from their location radius, a single location.

[0065] The Applicant has discovered that operations 200 to 230 make it possible to produce trajectory data whose fidelity greatly exceeds that of prior solutions. By working on the bagot, it has also discovered that it is possible to carry out an additional operation called refining which makes it possible to reprocess the motion segments in the trajectory data, in order to make the trajectory even more faithful.

[0066] Thus, the Applicant started from the principle that the chatter is a noise of a fairly unpredictable nature which breaks the "logical" movement chain temporally. In other words, because of the chatter, the mobile communication device virtually makes a detour between two locations which are nevertheless close, without this being easily detectable. In order to circumvent the problem, the Applicant was interested in enriching the signaling data, in order to offer itself the possibility of reconstructing the trajectory which is the most probable. To do this, it therefore studied how to add information to the signaling events to recalculate a more probable trajectory.

[0067] To do this, she started from the idea that we can see the sequence of signaling events as a "poor" graph which links the signaling events in increasing temporal order two by two (i.e. a graph where each vertex has a single upstream and downstream neighbor at most). As this graph is undetectably noisy, she sought to enrich it by generating "probable" links between the temporally close signaling events.

[0068] Thus, the device 2 is arranged to execute a Ref() function in an operation 240 in order to carry out this enrichment. [Fig.6] represents an example of implementation of the Ref() function by the post-processing unit 10.

[0069] In an operation 600, a function SMSLst() is executed which scans the trajectory data and cuts them into sequences whose ends are stop segments and which have at least one movement segment between them. Each sequence initializes a graph in the form of a line which links the signaling events included in each segment of the sequence two by two, by increasing time markers. The sequences are then scanned separately, as after operation 200.

[0070] Each sequence is traversed in order to enrich step by step the graph representing the possible paths between signaling events in a loop. For this, the sequence is popped of a current signaling event in an operation 610, then a Graph() function is executed in an operation 620. The The Graph() function uses the current signaling event and enriches the graph by connecting all signaling events in the graph whose time marker is within a chosen duration window (for example, 5 minutes, or a value taken from the dmax value) centered on the current signaling event. Optionally, before connecting two signaling events in the graph, the Graph() function can check that their locations do not have a distance between them exceeding a chosen threshold. This avoids overloading the graph unnecessarily and prevents making too large "jumps" in the trajectory, especially for very high-speed movements.

[0071] Optionally, if operation 620 does not add any links to the graph, an Add() function can be executed in an operation 630. The Add() function can select the signaling events prior to the current signaling event by a chosen time threshold (for example 1 minute), as well as the signaling events subsequent to the signaling event immediately following the current signaling event by this same chosen time threshold, and link them all together. This advantageously makes it possible, when two consecutive events are separated by a time greater than the chosen threshold, to make it possible for the shortest path retained not to pass through these two points. The reason is that, without this processing, this pair of events becomes the only “bridge” in the graph linking the points before the first to the points after the second.Therefore, if one of the two events has a very noisy location, we would end up retaining a potentially “erroneous” point.

[0072] Then, the loop repeats with operation 610, until the sequence has been fully traversed. A function ShtRt() is then executed in an operation 640 to determine the shortest path within the enriched graph. This function determines the shortest path within the enriched graph, the weight function being defined by the distance between the respective locations of two linked signaling events in the graph. This results in trajectory data that smooths the journey geographically according to the shortest trajectory as probable by virtue of the signaling events that compose it.

[0073] Finally, a function RdfMSegQ is executed in an operation 650 in order to recompose the segments from the new sequence of signaling events which has been determined, then the function Ref() ends in an operation 699.

[0074] It should be noted that, in order to ensure the continuity of the locations of the trajectory data, if a movement segment to be simplified is adjacent to at least one stop segment, the starting and / or arrival point of the movement segment is constrained to be located at the location of the stop segment in question. In the case of a transition between a stop segment and a movement segment located at a time not corresponding to a signaling event, a signaling event Dummy lization is generated by taking the location of the stop segment and the time marker of the motion segment.

[0075] Operation 240 is optional, and operations 200 to 230 can be executed independently of it. Similarly, operation 240 is independent of operations 200 to 230, as long as the trajectory data and the corresponding signaling events are accessible. The Applicant has thus discovered to its great surprise that operation 240 is fully compatible with the trajectory data determined by means of the methods described in the European patent published under number EP 3 329 696 and the patent application published under number EP 3 586 319.

[0076] In the above, GNSS or GPS type data can also be used, as an alternative to mobile telephony data. The idea is as follows: if GNSS or GPS data are available, they are used as a priority. When these data are not available, the mobile telephony data processed by the invention are used. In this case, the GNSS or GPS data can be processed in accordance with the invention, with a distance dmax of approximately 10 meters for example, and with a duration of absence of events to result in a short “Absent” segment (for example 30 minutes).

Claims

1. Claims Trajectory determination device comprising: - a memory (4) arranged to receive mobile or wireless telephone network signaling events each comprising a mobile communication device identifier, a time marker and a signaling identifier associated with a location and a location radius, - a pre-processing unit (6) arranged, for a given mobile communication device identifier, to browse the associated signaling events, and to identify one or more long parking groups comprising signaling events such that, within a given long parking group, the time markers are consecutive and define a range whose duration is greater than a first threshold duration, and the locations have between them a distance less than a first threshold distance drawn from one or more of the location radii, the pre-processing unit being arranged to define a long parking segment from each long parking group,each long parking segment comprising on the one hand terminals corresponding to the extreme time markers of the long parking group from which it originates and on the other hand a location determined from the locations of the signaling events of the long parking group from which it originates, and being associated with a stop type label, - a processing unit (8), arranged to process the signaling events whose time markers are located outside a long parking segment by pair of signaling events having immediately consecutive time markers which define the limits of a trajectory segment, comprising a smoother (12) arranged to scan the signaling events whose time markers are located outside a long parking group first by increasing or decreasing time markers, then by decreasing or increasing time markers, to define during these two journeys, for each current signaling event, a time window one end of which corresponds to said current signaling event, and the other end is a signaling event chosen in the direction of increasing or decreasing travel

2. decreasing and whose time marker defines with the time marker of the current signaling event a duration substantially equal to a second threshold duration, and to associate with each window a label belonging to a group comprising a movement and a stop, according to the distance between the locations of the signaling events defining its limits, a concentrator (14) arranged, once the smoother (12) has processed all the signaling events whose time markers are located outside a parking group have been traversed by increasing and decreasing time markers, to associate with each trajectory segment a label determined according to the labels of the time windows which cover the terminals of this trajectory segment, and - a post-processing unit (10) arranged for * first browse the trajectory segments associated with a movement type label, and to change the label of at least some of these trajectory segments when the duration between its limits is less than a third threshold duration, * then browse the trajectory segments associated with a stop type label, and to change the label of at least some of these trajectory segments when the duration between its limits is less than a fourth threshold duration, * determine for each trajectory segment associated with a stop type label a location determined from the locations of the signaling events whose time markers are between the time markers of its terminals, and * return as trajectory data the long parking segments and trajectory segments. Device according to claim 1, wherein the treatment unit (8) is arranged, before applying the straightener (12), * to associate, with each trajectory segment whose locations of the signaling events that compose it have a distance between them that exceeds a second threshold distance and which, in relation to the duration between the time markers of said signaling events that compose it, is less than a first threshold speed, a stop-movement type label, * to associate, with each trajectory segment whose locations of the signaling events which compose it have between them a distance which is less than a third threshold distance, a label of stop type, and * to exclude from processing by the smoother (12) signaling events whose time marker is included in a trajectory segment associated with a stop-movement or stop type label.

3. Device according to claim 2, in which the post-processing unit (10) is arranged, after having traversed the trajectory segments associated with a movement type label, and before traversing the trajectory segments associated with a stop type label, to traverse the trajectory segments associated with a stop-movement type label, and, for such a given trajectory segment, if the given trajectory segment is surrounded by two trajectory segments, one of which is associated with a stop type label and the other with a movement type label, to determine a distribution time marker among the time markers of the signaling events whose time markers are between the time markers of its limits as a function of the speed observed on the events of the segment associated with a movement type label closest to the given trajectory segment,and to redefine on the one hand the trajectory segment associated with a stop type label so that it incorporates the events of the given trajectory segment whose time markers are closest to it up to the distribution time marker and on the other hand the trajectory segment associated with a movement type label so that it incorporates the events of the given trajectory segment whose time markers are closest to it up to the distribution time marker.,

4. Device according to claim 3, in which the post-processing unit (10) is arranged, after having traversed the trajectory segments associated with a stop-type label, to traverse the trajectory segments associated with a stop-movement type label, and to associate with them a stop-type label or a movement-type label.

5. Device according to one of the preceding claims, in which the post-processing unit (10) is arranged, during the traversal of the trajectory segments associated with a movement type label, to change the label of a trajectory segment whose duration between its limits is less than a third threshold duration into a stop type label when an immediately neighboring trajectory segment is associated with a stop type label, and into a presence type label in the opposite case.

6. Device according to one of the preceding claims, in which the unit

7. post-processing (10) is arranged, during the traversal of the trajectory segments associated with a stop type label, to change the label of a trajectory segment whose duration between its limits is less than a fifth threshold duration into a movement type label when an immediately neighboring trajectory segment is associated with a movement type label, and into a presence type label otherwise. Trajectory determination method comprising the following operations: a) receiving mobile or wireless network signaling events each comprising a mobile communication device identifier, a time stamp and a signaling identifier associated with a location and a location radius, b) for a given mobile communication device identifier, browsing the associated signaling events, and identifying one or more long parking groups comprising signaling events such that, within a given long parking group, the time stamps are consecutive and define a range whose duration is greater than a first threshold duration, and the locations have a distance between them less than a first threshold distance drawn from one or more of the location radii, (c) define a long parking segment from each long parking group, each long parking segment comprising on the one hand terminals corresponding to the extreme time markers of the long parking group from which it originates and on the other hand a location determined from the locations of the signaling events of the long parking group from which it originates, and being associated with a stop type label, (d) process signaling events whose time markers are located outside a long parking segment by pair of signaling events having immediately consecutive time markers which define the boundaries of a trajectory segment, e) browse the signaling events whose time markers are located outside a long parking group first by increasing or decreasing time markers, then by decreasing or increasing time markers, to define during these two journeys, for each current signaling event, a time window one end of which corresponds to said current signaling event,

8. and the other end is a signaling event chosen in the direction of increasing or decreasing travel and whose time marker defines with the time marker of the current signaling event a duration substantially equal to a second threshold duration, and to associate with each window a label belonging to a group comprising a movement and a stop, according to the distance between the locations of the signaling events defining its limits, f) after operation e) has processed all the signaling events whose time markers are located outside a parking group have been traversed by increasing and decreasing time markers, to associate with each trajectory segment a label determined according to the labels of the time windows which cover the terminals of this trajectory segment, and gl) first traverse the trajectory segments associated with a movement type label, and to change the label of at least some of these trajectory segments when the duration between its limits is less than a third threshold duration, g2) then browse the trajectory segments associated with a stop type label, and to change the label of at least some of these trajectory segments when the duration between its limits is less than a fourth threshold duration, g3) determine for each trajectory segment associated with a stop type label a location determined from the locations of the signaling events whose time markers are between the time markers of its terminals, and g4) return as trajectory data the long parking segments and the trajectory segments. Method according to claim 7, wherein operation e) comprises the following preliminary operations: el) associate, with each trajectory segment whose locations of the signaling events that compose it have a distance between them that exceeds a second threshold distance and which, in relation to the duration between the time markers of said signaling events that compose it, is less than a first threshold speed, a stop-movement type label, e2) associate, with each trajectory segment whose locations of the signaling events which compose it present between them a distance that is less than a third threshold distance, a stop type label, and e3) exclude from the processing of operation e) the signaling events whose time marker is included in a trajectory segment associated with a stop-movement or stop type label.

9. Method according to claim 8, comprising, after operation gl) and before operation g2), operation g la) traversing the trajectory segments associated with a stop-move type label, and, for such a given trajectory segment, if the given trajectory segment is surrounded by two trajectory segments, one of which is associated with a stop-type label and the other with a move-type label, determining a distribution time marker among the time markers of the signaling events whose time markers are between the time markers of its limits as a function of the speed observed on the events of the segment associated with a move-type label closest to the given trajectory segment,and redefine on the one hand the trajectory segment associated with a stop type label so that it incorporates the events of the given trajectory segment whose time markers are closest to it up to the distribution time marker and on the other hand the trajectory segment associated with a movement type label so that it incorporates the events of the given trajectory segment whose time markers are closest to it up to the distribution time marker.,

10. Method according to claim 9, comprising, after operation g2), operation g2a) traversing the trajectory segments associated with a stop-movement type label, and associating with them a stop-type label or a movement type label.

11. Method according to one of claims 7 to 10, in which the operation gl) comprises changing the label of a trajectory segment whose duration between its limits is less than a third threshold duration into a stop type label when an immediately neighboring trajectory segment is associated with a stop type label, and into a presence type label otherwise.

12. Method according to one of claims 7 to 11, in which operation g2) comprises changing the label of a trajectory segment whose duration between its limits is less than a fifth threshold duration into a movement type label when a trajectory segment immediately neighbor is associated with a movement type label, and a presence type label otherwise.

13. A computer program comprising instructions for performing the method according to one of claims 7 to 12 when executed by a computer.

14. Data storage medium on which the computer program according to claim 13 is recorded.