Trajectory determination device

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

Patent Information

Application Number
FR2023001710
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 00000020_0000
    Figure 00000020_0000
  • Figure 00000020_0001
    Figure 00000020_0001
  • Figure 00000021_0000
    Figure 00000021_0000
Patent Text Reader

Abstract

Trajectory Determination Device The invention relates to a trajectory determination device arranged to receive signaling events from a mobile or wireless telephone network, each comprising a mobile communication device identifier, a time marker, and a signaling identifier associated with a location and a location radius, and to return trajectory data comprising trajectory segments, each segment comprising two time markers forming boundary markers derived from the time markers of the signaling events, each segment being associated with a movement or stop type label. 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 in a passive manner, from signaling events associated with a mobile device.

[0002] Determining the flow of people moving between different locations is complex. For a given location, it is possible to determine flows statistically by manually counting the number of people entering and leaving. However, these methods are unreliable, costly, and provide little contextual information. Indeed, it is not possible to know the place of origin of the people counted, the means of transport used, etc.

[0003] The Applicant has already invented several devices for determining trajectory data from signaling events associated with a moving device. For example, European patent EP 3,329,696 describes the definition of stop or move type labels for pairs of consecutive signaling events, and the processing of these labels to establish trajectory data. Patent application EP 3,586,319 describes an improvement to 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 phone data and defines, within a sequence of locations, stops as consisting of sets of locations whose pairwise distances are less than a given threshold, typically one kilometer. This approach is simplistic and does not address the problem of bagot, that is, successive attachment to different, potentially very distant, antennas when there is little or no actual 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 the intersection between the coverage of an antenna and a cell of a grid dividing the territory, locations on antennas being considered "near" if their coverages overlap the same cell of this grid. 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 / bookofabstract_oral_2017.pdf, observes that the approaches described above have the drawback of requiring the definition of thresholds that are sometimes arbitrary, significantly impacting the results. For example, a very high distance threshold will correctly detect large movements (“broad view”), but will miss small movements within the generated stops, while a low threshold (“precise view”) will detect these movements but will create noise due to telecommunications interference. To compensate, the authors propose an approach combining the results of two applied distance thresholds, with the precise view adjusting for the large journeys detected by the broad view.This article, although more sophisticated than the previous two, does not offer satisfactory results in practice, as the inter-antenna distances related to telecom signaling can 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 cases of very short-term connections to distant antennas followed by rapid returns to an antenna to which the mobile device had previously connected. These methodologies, however, depend 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] Furthermore, the Applicant's research revealed that the trajectories resulting from these articles can still be improved. They remain sensitive to bagot, particularly in urban areas. Indeed, processing bagot can lead to the exclusion of events that contribute to a more realistic trajectory.

[0010] The invention improves the situation. To this end, it provides a trajectory determination device arranged to receive signaling events from a mobile or wireless telephone network, each comprising a mobile communication device identifier, a time marker, and a signaling identifier associated with a location and a location radius, and to return trajectory data comprising trajectory segments, each comprising two time markers forming endpoints derived from the time markers of the signaling events. Each segment is associated with a movement or stop type label. The device is arranged to refine the trajectory segments associated with a movement type label by grouping the signaling events corresponding to trajectory segments associated with a movement type label between two trajectory segments associated with a stop type label in movement groups, generating a graph for each movement group in which each signaling event is linked to the signaling event whose time marker is immediately temporally successive to it and to any signaling event such that the duration between their respective time markers is less than a neighborhood threshold duration, calculating the shortest path within each graph from the distances between the locations associated with each signaling event, and returning modified trajectory data in which the trajectory segments associated with a movement type label are redefined by pairs of consecutive time markers from the signaling events retained for the shortest path calculated for each graph.

[0011] This device is particularly advantageous because it allows for the refinement of trajectory data by enriching signaling data, thus enabling the reconstruction of the most probable trajectory. This allows for the refinement of the initial trajectory data and the return of trajectory data that is much more faithful to reality than in state-of-the-art solutions.

[0012] According to various embodiments, the invention may have one or more of the following features: - the device is arranged to exclude from each graph the links for which the distance between the locations of the signaling events exceeds a neighborhood threshold distance, except when this exclusion results in a signaling event that is not an endpoint of a graph having no link to a signaling event whose time marker is later, or no link to a signaling event whose time marker is earlier, and - when an operation results in a signaling event that is not an endpoint of a graph having only one link to a signaling event whose time marker is later, the device is arranged to select signaling events with a time marker earlier than that of the signaling event, the signaling event that is immediately following it and signaling events with a time marker later than the extension threshold of the signaling event that is immediately following it, and to link together all the signaling events thus selected in the graph concerned.

[0013] The invention also relates to a trajectory determination method comprising the following operations: a) receive 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) return trajectory data comprising trajectory segments, each comprising two time markers forming boundary markers derived from the time markers of the signaling events, each segment being associated with a label of type movement or type stop, c) group the signaling events corresponding to trajectory segments associated with a movement-type label between two trajectory segments associated with a stop-type label into movement groups, d) generate a graph for each movement group in which each signaling event is linked to the signaling event whose time marker is immediately temporally successive to it and to any signaling event such that the duration between their respective time markers is less than a neighborhood threshold duration, e) calculate the shortest path within each graph from the distances between the locations associated with each signaling event, and f) return modified trajectory data in which trajectory segments associated with a motion type label are redefined by pairs of consecutive time markers from signaling events retained for the shortest path calculated for each graph.

[0014] According to various embodiments, the process may have one or more of the following characteristics: - operation d) includes excluding from each graph the links for which the distance between the locations of the signaling events exceeds a threshold neighborhood distance, except where this exclusion results in a signaling event that is not an endpoint of a graph having no link to a signaling event whose time marker is later, or no link to a signaling event whose time marker is earlier, and - when operation d) results in a signaling event that is not an endpoint of a graph having only one link to a signaling event whose time marker is later, the signaling events having a time marker earlier than that of this signaling event, the signaling event that is immediately following it and the signaling events having a time marker later than that of the signaling event that is immediately following it are selected and linked together in the graph concerned.

[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 stored such a computer program.

[0016] Other features and advantages of the invention will become more apparent upon reading the following description, taken from illustrative and non-limiting examples shown in the drawings:

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

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

[0019] This description may contain elements protected by copyright. The rights holder has no objection to the reproduction by any person of this patent document or its description, as it appears in the official files. Otherwise, the rights holder reserves all rights.

[0020] Figure 1 shows a schematic diagram of a device 2 according to the invention. The device 2 comprises a memory 4, a pre-treatment unit 6, a treatment unit 8, and a post-treatment unit 10. The treatment 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 they are cellular radio or Wi-Fi type.

[0022] Geolocation data sources, particularly in cellular networks, are such that the frequency of these locations can be highly variable, sometimes with several locations in a few seconds, followed by a long period (several tens of minutes or even several hours) without any new locations. The state of the art does not address this point, nor how the algorithms The proposed solutions should be adapted to these different scenarios. In particular, none of them provide for the possibility of dividing the time into break and travel periods within an hour, without specifying the location.

[0023] The data used in the context of the invention are stored in memory 4. This data mainly concerns what will be referred to hereafter as signaling events. Each signaling event comprises 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 in question (IMSI in cellular, MAC address in Wi-Fi, etc.), the time marker is the time of the event in question, and the signaling identifier is the cell or antenna involved in this event. Therefore, 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 originate from a mobile phone operator, which may have access to a “precise” location within its territory, but only know the roaming country when one of its subscribers travels abroad, meaning it cannot locate them in the destination country. In this case, also referred to as “roaming” in English, the location used may be based on unique coordinates for the destination country, located at the country's center of gravity.

[0025] Optionally, the operator's antenna database—the list of antennas with their respective coordinates—can also be used if the data is cellular, or another source providing the population distribution of the country in question. 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 based on population density, via the strong correlation that exists between antenna density and population density. It is this distance that will allow us to have, in our stationarity or displacement determination, an accuracy that automatically adapts to the area under consideration.

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

[0027] The object of the invention is to produce trajectory data comprising, for a given mobile communication device identifier, a sequence of segments, each segment having two time markers as time limits, a location when it is a stop, and a label that qualifies the trajectory associated with that 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 "off" label are quite similar and signify the absence of signaling events for a specified duration. These labels serve to perform a pre-segmentation of the time-based signaling events associated with a mobile communication device, as will be shown below. The "absent" label and the "movement" label are known from the Applicant's French patent FR 3 039 737 A1 and respectively designate a stop, i.e., a position considered 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, signaling events were processed to predefine stop or movement segments, and then the segments were processed by deletion, grouping, or conversion according to a chosen order. In the context of the invention, it is the processing unit that associates these labels with each segment, according to a method that aims to reduce clutter.

[0030] The stop-movement label designates a case where the mobile communication device has clearly moved between two successive locations, but at an average speed too slow for it to be considered that the movement took place over the whole 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 only one location is recorded 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 stop or move labels as will be seen later.

[0033] In what follows, a segment may be identified by its label; that is, a stop segment means a segment that has a stop label. Similarly, segments may be grouped according to their respective labels; that is, motion segments will designate all segments whose motion label is.

[0034] 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, memory 4 receives all the data relating to device 2, that is, the programs and software instantiating the preprocessing unit 6, the processing unit 8, and the postprocessing unit 10, their parameters and hyperparameters, the weights of the neural networks, the outputs and intermediate data of the neural networks, the input signaling event data (if any), the generated intermediate values, the buffered data, and the output trajectory data. The data calculated by the device can be stored on any type of memory similar to memory 4, or on memory 4 itself. This data can be erased after the device has completed 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 access memory 4 directly or indirectly. They can be implemented as suitable computer code running on one or more processors. The term "processors" is understood to mean any processor suitable for the calculations described below. Such a processor can be implemented in any known form, such as a microprocessor for a personal computer, laptop, tablet, or smartphone; a dedicated chip such as an FPGA or SoC; a computing resource on a grid or in the cloud; a graphics processing unit (GPU) array; 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 as specialized electronic circuits such as an ASIC.A combination of processor and electronic circuits can also be considered. Processors dedicated to machine learning could also be considered.

[0037] It will also become apparent that dividing device 2 into three functional units reproduces the event processing flow of the device. This division is not, however, fixed: the pre-processing unit 6, the processing unit 8, and the post-processing unit 10 could be partially or completely merged, or even separated into a finer unit, as is shown with the smoother 12 and the compactor 14.

[0038] Figure 2 shows an example of the implementation of device 2. This loop begins in operation 200 with the execution of an Init() function by the preprocessing unit 6. In this operation, the preprocessing unit 6 receives the signaling events and prepares them for processing. To do this, if the signaling events Signaling events are associated with distinct mobile communication device identifiers; they are separated and grouped accordingly. Furthermore, since signaling events are primarily processed based on their timing, the Init() function can assemble them using ascending or descending time markers to accelerate subsequent processing. Once the signaling events are grouped by mobile communication device identifier and arranged temporally, the Init() function can iterate through them to determine which segments have a label of type "absent" or "off".As explained above, these labels correspond respectively to the absence of a signaling event for a period exceeding a given threshold, for example on the order of two hours or more, and to the presence of a signaling event indicating a cellular signal extinction (either because the device is switched off, or because the cellular connection is intentionally cut off), for a period exceeding a threshold, for example more than 5 minutes.

[0039] These initial segments are important because they define a first temporal segmentation of the signaling events. Thus, in subsequent operations, not all signaling events are considered, but only those signaling events whose time markers fall between two segments labeled as absent or off. These segments therefore define several sequences within the signaling events received as input, and these sequences are processed independently of one another. Device 2 can also process them sequentially, in parallel, or a combination of both.

[0040] When the received signaling events do not explicitly contain a location radius, the Init() function can also be configured to generate this data when possible, or to provide a generic value otherwise. In the following, the location radius will be referred to by the dmax reference. This radius is associated with the antenna density in each geographic area and allows for the definition of 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-slicing each sequence into long stops, and of detecting stop-movement segments optionally.

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

[0043] In order to take bagot into account, this function does not require that all signaling events be associated with the same location, but only that these locations remain sufficiently close to each other. For this purpose, the em The locations associated with each signaling event are first smoothed by averaging them with the locations of a chosen number of temporally close signaling events. This reduces noise at the locations. Once the locations are smoothed in this way, the LongS() function detects periods of stationarity by searching for the maximum duration during which the smoothed location of the mobile communication device remains within a certain radius—derived, for example, from the location radius or an average of the location radii associated with the relevant signaling events, or from dmax—from a reference point. When the threshold is derived from dmax, this allows for the detection of relatively short, long stops in urban areas without reducing the detection quality of long stops in rural areas, where very distant antennas would be a disadvantage with a fixed threshold. Alternatively, the initial smoothing is not applied.In yet another variant, the LongS() function is applied with and without prior smoothing, and the longest stationary phase is retained.

[0044] The combination of associated signaling events defines a long stop segment each time. These segments will be treated as stop segments hereafter, but their "long" designation is important for processing by the processing unit, as will be seen below. Optionally, a final check can be performed to test whether two successive and temporally close long stop segments can be merged, for example, based on their respective locations. If not, a movement segment can be generated between these two long stop segments, which will be labeled so that it cannot be modified by any subsequent processing.

[0045] Once the LongS() function has completed, motion stop segments can be detected in a 310 operation using a StMv() function. The StMv() function is, as explained, optional, and searches for segments formed by two successive signaling events separated by a duration greater than a threshold (e.g., 15 minutes, or a threshold derived from dmax), and whose locations are sufficiently far apart to ensure that movement has occurred (e.g., the distance between their respective locations exceeds 1 km, or a threshold derived from dmax), but such that the speed is too low for the entire period to correspond to a motion segment. If these locations are too close, i.e., their distance is less than another threshold, for example, 100 m or a threshold derived from dmax, the segment is labeled as stopped.Finally, the StMv() function marks the segments it has labeled as stopped or stopped-moving so that they are not modified by the processing unit.

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

[0047] The processing unit 8 then operates in an operation 220 by executing a function T(). Figure 4 shows an example of an implementation of the function T(). From a high-level perspective, the purpose of the function T() is to iterate through events not associated with a labeled segment between two long stops, each defining a boundary of a sliding window of fixed size, and determining for each window a label of type stop or type movement depending on the signaling events contained within that window. Alternatively, the size may not be perfectly fixed, and the function T() may search for the most relevant point, for example, the one closest to this fixed size.Once events not associated with a labeled segment between two long stops traversed by increasing and decreasing time markers have been identified, 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 from a given event with time marker t if no event is found within a range of t+3 minutes to t+30 minutes. This avoids systematically retaining the first point after t+30 minutes, which generates noise.

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

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

[0050] For this, the smoother 12 pops the list in a 410 operation by executing a Pop+() function (respectively in a 430 operation by executing a Pop-() function) which retrieves the immediately increasing (respectively decreasing) time marker signaling event of the list. If such a signalling event exists, then smoother 12 executes a Wind() function in a 420 operation (respectively 440), defining a window of approximately 15 minutes that includes the events in the list whose time markers are between the time marker of the event in operation 410 (respectively operation 430) and 15 minutes after (respectively 15 minutes before), then compares the distance between the location of the event from operation 410 (respectively operation 430) and the location of the temporally furthest signalling event in the window.If the distance between these two locations exceeds one. If the threshold distance is chosen (for example, 8 times dmax, or less than 15 times dmax, i.e. about 1 kilometer in urban areas and about ten kilometers in rural areas), then the window is associated with a movement label, and otherwise with a stop label.

[0051] When all signaling events have been processed, operations 410 and 430 return a negative value, and compactor 14 is called to process the labeled windows and qualify the segments in operation 450 by executing a function Segm(). In the example described here, the function Segm() iterates through 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 number of movement labels exceeds the number of stop labels, then the segment is assigned a movement label. Otherwise, it is assigned a stop label.

[0052] In the output, all segments are labeled as either absent, off, stopped (long), moving (non-modifiable), stopped, or moving. In the preceding code, 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. Also alternatively, it could be traversed, but only in one direction. Furthermore, 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 amount of time.

[0053] Once operation 220 is complete, the post-processing unit 10 reduces the stop and motion segments using several operations. The Applicant has discovered that the order presented here provides high accuracy to the output trajectory data, but that another order already offers a significant improvement over known methods.

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

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

[0056] In operation 500, the post-processing unit begins by executing a function ShMv(). The ShMv() function iterates through all motion segments and determines those with a duration less than a threshold duration, for example, 3 minutes, unless that segment was marked as unmodifiable in operation 300. All resulting segments are assigned a stop label if at least one adjacent segment has a stop label. If this is not the case, and if If the presence label is used, then a presence label is assigned. If the presence label is 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-movement segments and converts them if the stop-movement segment is surrounded by a stop segment and a move segment, regardless of their order. In this case, the stop segment is considered to represent the actual stop, and the move segment represents the actual movement. The stop-movement segment is decomposed according to the observed speed over the 15 minutes of movement "attached" to this stop-movement segment and merged accordingly. Thus, the stop segment and the move segment are extended proportionally by removing the stop-movement segment and creating a common time boundary within it.

[0058] Next, or when stop-movement labels are not used, short stop segments are processed by a ShSt() function executed by the post-processing unit 10 in operation 520. Similar to operation 510, this function converts short stop segments (e.g., less than 5 minutes), if they are adjacent to a movement segment, into movement segments by merging them, and into presence-type segments otherwise when these are used. If they are not adjacent, they are converted into movement segments, possibly merging them with an adjacent movement segment.

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

[0060] After operation 520 or operation 530, as appropriate, the segments have been fully post-processed and are ready to be used and returned as trajectory data. To refine their locations, each resulting stop segment is traversed in operation 540 by a Loc() function, which calculates the centroid of all signaling events that fall between the endpoints of these segments. Thus, the location associated with each stop segment is smoothed by all the signaling events it contains. The location radius of these events can also be averaged to be associated with these segments. To determine an even more precise location, the Loc() function can perform one or more of the following operations: - eliminate "extreme" points, detected by comparing the displacement of the centroid if the points furthest from the current centroid are removed, and repeat this removal iteratively until the displacement is no longer significant, or a certain number of repetitions is reached, and - 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, quantile at 80% of distances to the centroid)), and discard events that are not in this radius for the calculation of the centroid.

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

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

[0063] The Applicant discovered that operations 200 to 230 produce trajectory data with a much higher accuracy than previous solutions. By working on the bagot, it also discovered that an additional refinement operation can be performed to reprocess the motion segments in the trajectory data, making the trajectory even more accurate.

[0064] Thus, the Applicant started from the premise that the "bagot" is a rather unpredictable noise that disrupts the temporally "logical" movement chain. In other words, because of the "bagot," the mobile communication device virtually makes a detour between two locations that are nevertheless close, without this being easily detectable. In order to circumvent the problem, the Applicant focused on enriching the signaling data to enable the reconstruction of the most probable trajectory. To this end, it studied how to add information to the signaling events to recalculate a more probable trajectory.

[0065] To this end, she started from the idea that the sequence of signaling events can be viewed as a "poor" graph that links signaling events in pairs in an increasing temporal order (i.e., a graph where each vertex has at most a single upstream and downstream neighbor). Since this graph is undetectably noisy, she sought to enrich it by generating "probable" links between temporally close signaling events.

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

[0067] In a 600 operation, a function SMSLst() is executed which iterates through the The process takes trajectory data and divides it into sequences whose endpoints are stopping segments and which contain at least one movement segment between them. Each sequence initializes a graph in the form of a line that links the signaling events within each segment of the sequence two by two, using increasing time markers. The sequences are then traversed separately, as after operation 200.

[0068] Each sequence is traversed to progressively enrich the graph representing the possible paths between signaling events in a loop. To do this, the sequence is extracted from the current signaling event in operation 610, and then a Graph() function is executed in operation 620. The Graph() function uses the current signaling event and enriches the graph by linking together all signaling events whose time marker is within a chosen duration window (for example, 5 minutes, or a value derived from the dmax value) centered on the current signaling event. Optionally, before linking two signaling events in the graph, the Graph() function can check that the distance between them does not exceed a chosen threshold.This prevents unnecessarily overloading the graph and prohibits excessively large "jumps" in the trajectory, particularly for very high-speed movements.

[0069] Optionally, if operation 620 does not add any links to the graph, an Add() function can be executed in operation 630. The Add() function can select signaling events prior to the current signaling event of a chosen time threshold (e.g., 1 minute), as well as signaling events subsequent to the signaling event immediately following the current signaling event of that same chosen time threshold, and link them all together. This advantageously allows, when two consecutive events are separated by a time greater than the chosen threshold, for the shortest path to be determined without passing through both points. The reason is that, without this processing, this pair of events becomes the only "bridge" in the graph connecting 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.

[0070] Next, the loop repeats with operation 610 until the sequence has been fully traversed. A function ShtRt() is then executed in 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 connected signaling events in the graph. This results in path data that smooths the path geographically along the shortest path as probable in by virtue of the signaling events that compose it.

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

[0072] It should be noted that, in order to ensure the continuity of trajectory data locations, if a movement segment to be simplified is adjacent to at least one stop segment, the starting and / or ending 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 occurring at a time not corresponding to a signaling event, a dummy signaling event is generated by taking the location of the stop segment and the time marker of the movement segment.

[0073] Operation 240 is optional, and operations 200 to 230 can be performed independently of it. Similarly, operation 240 is independent of operations 200 to 230, provided that the trajectory data and corresponding signaling events are accessible. The Applicant thus discovered, to its great surprise, that operation 240 is fully compatible with the trajectory data determined using the methods described in European patent EP 3,329,696 and patent application EP 3,586,319.

[0074] In the foregoing, GNSS or GPS data can also be used as an alternative to mobile phone data. The idea is as follows: if GNSS or GPS data is available, it is used first. When this data is not available, the mobile phone data processed by the invention is used. In this case, the GNSS or GPS data can be processed according to the invention, with a maximum distance dmax of approximately 10 meters, for example, and with a short period of no events to result in a short "Absent" segment (for example, 30 minutes).

Claims

Claims

1. Trajectory determination device 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, and to return trajectory data comprising trajectory segments each comprising two time markers forming boundaries taken from the time markers of the signaling events, each segment being associated with a movement type label or a stop type label, the device being arranged to refine the trajectory segments associated with a movement type label by grouping the signaling events corresponding to trajectory segments associated with a movement type label between two trajectory segments associated with a stop type label in movement groups,by generating a graph for each movement group within which each signaling event is linked to the signaling event whose time marker is immediately successive to it in time and to any signaling event such that the duration between their respective time markers is less than a neighborhood threshold duration, by calculating the shortest path within each graph from the distances between the locations associated with each signaling event, and by returning modified trajectory data in which the trajectory segments associated with a movement type label are redefined by pairs of consecutive time markers from the signaling events retained for the shortest path calculated for each graph.,

2. A device according to claim 1, wherein the device is arranged to exclude from each graph links for which the distance between the locations of the signaling events exceeds a neighborhood threshold distance, except when this exclusion results in a signaling event which is not an end of a graph having no link to a signaling event whose time marker is later, or no link

3.

4. to a signaling event whose time marker is earlier. Device according to claim 1 or 2, wherein; when an operation results in a signaling event which is not an end of a graph having only a link to a signaling event whose time marker is later, the device is arranged to select the signaling events having a time marker an extension threshold duration earlier than that of this signaling event, the signaling event immediately following it and the signaling events having a time marker later than the extension threshold duration of the signaling event immediately following it, and to link together all the signaling events thus selected in the graph concerned. Method for determining a trajectory comprising the following operations: a) receiving mobile or wireless 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, b) returning trajectory data comprising trajectory segments each comprising two time markers forming boundaries taken from the time markers of the signaling events, each segment being associated with a movement type label or a stop type label, c) grouping the signaling events corresponding to trajectory segments associated with a movement type label between two trajectory segments associated with a stop type label into movement groups, d) generating a graph (620) for each movement group within which each signaling event is linked to the signaling event whose time marker is immediately successive to it in time and to any signaling event such that the duration between their respective time markers is less than a neighborhood threshold duration, e) calculating the shortest path (640) within each graph from the distances between the locations associated with each signaling event, and f) returning modified trajectory data (650) in which the trajectory segments associated with a movement type label are redefined by pairs of consecutive time markers from the signaling events retained for the shortest path calculated for each graph.

5. The method of claim 4, wherein step d) comprises excluding from each graph links for which the distance between signaling event locations exceeds a neighborhood threshold distance, except when such exclusion results in a signaling event that is not an endpoint of a graph having no links to a signaling event with a later time marker, or no links to a signaling event with an earlier time marker.

6. A method according to claim 4 or 5, wherein when operation d) results in a signaling event which is not an end of a graph having only a link to a signaling event whose time marker is later, the signaling events having a time marker an extension threshold duration earlier than that of that signaling event, the signaling event immediately following it and the signaling events having a time marker by the extension threshold duration later than the signaling event immediately following it are selected and linked together in the graph concerned.

7. A computer program comprising instructions for executing the method according to one of claims 4 to 6 when executed by computer.

8. Data storage medium on which the computer program according to claim 7 is recorded.