MOTION SENSOR DATA ENCODING METHOD, ASSOCIATED DEVICE AND SYSTEM
The method encodes motion sensor data into a data tensor format, addressing the autonomy and energy consumption issues of existing systems by reducing energy use and maintaining detailed real-time analysis of movement data.
Patent Information
- Application Number
- FR2021003876
- Authority / Receiving Office
- FR · FR
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2021-04-14
- Publication Date
- 2024-12-20
- Estimated Expiration
- Not applicable · inactive patent
AI Technical Summary
Existing motion sensor systems face challenges in maintaining long-term autonomy due to high energy consumption from real-time data transmission and limited data processing capabilities, which restricts their ability to provide detailed and real-time analysis of movement data.
A method of encoding motion sensor data using a process that calculates and transforms descriptors into a data tensor format, allowing for reduced energy consumption and efficient data storage and transmission, while retaining essential movement information.
The method enables motion sensor systems to operate for extended periods without battery recharge, providing detailed and real-time analysis of movement data with minimal energy consumption and data loss.
Smart Images

Figure 00000042_0000 
Figure 00000043_0000 
Figure 00000044_0000
Abstract
Description
Title of the invention: METHOD FOR ENCODING MOTION SENSOR DATA, ASSOCIATED DEVICE AND SYSTEM
[0001] The invention relates to the field of motion studies and, more particularly, to the processing of raw data from motion sensors to facilitate the real-time study of the movements, position, or, more broadly, the activity of a moving entity. The invention concerns a method for encoding data generated by one or more motion sensors, preferably coupled to a moving entity. The invention further relates to an encoding device and a data encoding system for data generated by one or more motion sensors, capable of implementing such a method. Previous technique
[0002] The study of displacement has applications in a wide variety of fields. In particular, the study of displacement can aim to understand how the movements performed by an entity are broken down when it moves. For example, it finds application in the analysis of human gait, a complex and cyclical process primarily aimed at maintaining an upright position and balance under static or dynamic conditions. Such a process requires the synergy of muscles, bones, and the nervous system. Furthermore, the study of movement or displacement has other applications, for example in robotics, to enable the coordination of a robot's limbs, or more generally to enable the analysis and representation of the movements of an entity (e.g., an object, an individual) over time.
[0003] Numerous systems have been developed over the years to study the movements / displacements of an entity. These systems include, for example, the use of pressure sensors or inertial sensors positioned at strategic points. In particular, several teams have focused on the use and processing of inertial sensor data for the analysis of human motion or, more broadly, the analysis of mobile entities such as drones.
[0004] These systems most often rely on pressure sensors or inertial sensors coupled to remote computing units housed in external devices with high computing power. Thus, current motion analysis systems generally involve high-frequency data transmission from the onboard sensors to the computing units. These systems must be able to operate continuously without frequent battery changes or recharges. by offering a detailed analysis of movement. However, in conventional systems, the real-time transmission of raw data results in high energy consumption, while these systems must be able to operate autonomously for extended periods. Alternatively, transmitting only pre-processed data limits the possibilities for evolving interpretations of the data measured by the motion sensors.
[0005] A 2018 study shows that, of the 14 systems evaluated, the median battery life of the proposed systems is less than 6 hours. This is clearly insufficient for consumer applications where motion tracking for at least a day is desired ("A survey on smart shoe insole systems". Salma Saidani et al. 2018 10.1109 / SMARTNETS.2018.8707391; ©2018 IEEE).
[0006] One solution for increasing the autonomy of motion tracking systems is to increase the battery size. However, such a solution cannot be applied in all situations, particularly when miniaturization of tracking devices is desired. For example, inertial measurement units (IMUs) capable of operating for approximately 35 hours by sending raw data to an external device capable of analyzing it have been proposed ("Bluetooth Embedded Inertial Measurement Unit for Real-Time Data Collection for Gait Analysis." Nimsiri Abhayasinghe et al. October 2013; Conference: Indoor Positioning and Indoor Navigation. Montbéliard, France). However, such an IMU has dimensions on the order of 50 cm³ and a weight on the order of 50 grams.Such dimensions are notably imposed by the use of a battery with sufficient capacity to continuously transmit data to an external processing device.
[0007] Other solutions, already proposed by the applicant (WO2019193301, WO2019077266, WO2020217037), involve enabling at least partial calculation at the motion measurement device level so as not to transfer all the measured data and thus reduce the energy consumption associated with data storage and / or transfer. However, such a solution assumes that all the algorithms are already integrated into the measurement device. Yet, in some cases, only some of the data processing algorithms have been integrated into the measurement device. There may also be a need to modify the data processing methods.
[0008] Thus, there is a need for a method of encoding motion sensor data allowing data storage and transfer that is less energy-intensive at the level of the measuring device while minimizing data loss as much as possible. [Technical problem]
[0009] The invention aims to overcome the drawbacks of the prior art. In particular Specifically, the invention aims to provide a method for encoding data generated by one or more motion sensors, preferably coupled to a moving entity, capable of generating and transmitting accurate information about the measured data, sufficient for studying the movement of the moving entity equipped with said motion sensors. Such a method allows systems to operate for longer periods without needing to change or recharge the battery, while still providing a detailed analysis of the movement. Furthermore, this method enables the real-time determination of the movement of a moving entity.
[0010] The invention further aims to provide a data encoding device and a system for determining the movement of a mobile entity incorporating such a device, said system having improved autonomy while being capable of studying the movement of the mobile entity in real time. [Brief description of the invention]
[0011] To this end, the invention relates to a method for encoding data generated by one or more motion sensors coupled to a moving entity, for the identification of a position or movement of the moving entity over a time sequence,
[0012] said method, executed by one or more processors, comprising:
[0013] - A step of acquiring data generated by the motion sensor(s) coupled to the moving entity, said data comprising variable values in the form of time series, preferably said variable values comprising acceleration and angular velocity values - A calculation step, based on data acquired over a time window, of a plurality of descriptors, said calculation step being repeated for several consecutive time windows, the consecutive time windows forming the time sequence; and - A transformation step of the plurality of descriptors of each of the consecutive time windows forming the time sequence, said transformation step comprising a generation for each of the descriptors of a data coded on at most eight bits, preferably on at most four bits;
[0014] said data coded on at most eight bits associated with the time sequence being representative of a position or movement of the mobile entity on said time sequence.
[0015] The applicant has developed an embeddable method capable of processing almost instantaneously (e.g., in less than 1 ms with a processor speed of 64 MHz), preferably using processors coupled to the motion sensors, the raw data generated by the motion sensors. This allows them to be encoded in a format that can either be processed at the level of a processor coupled to the motion sensor, for example in an embedded device such as a bracelet or a phone, or transmitted on an ad hoc basis to an external terminal with reduced energy consumption and / or reduced storage memory.
[0016] The applicant has developed, in particular, a data encoding method that allows for improved interpretation of movements through machine learning. While not bound by theory, this encoding can be considered a phonemic representation of the time series data from motion sensors. Thus, the method generates, from a time series of motion sensor data, a set of "phonemes" capable of describing consecutive intervals of the time series. The specific combination or arrangement of these phonemes will define particular positions or movements of the moving entity.
[0017] In addition, such encoding also gives an algorithm the possibility of processing the encoded data in real time to translate it into predictions of the movements of a mobile entity (e.g. movement and / or position).
[0018] The data thus encoded can then be processed or transmitted in the form of a data tensor. The method thus includes a step of generating a data tensor comprising the data encoded on at most eight bits obtained for several of the time windows, such that the data tensor comprises an encoding representative of a position or movement of the moving entity. Furthermore, the data tensor can comprise an encoding representative of a plurality of positions or movements of the moving entity.
[0019] According to other optional features of the process, the latter may optionally include one or more of the following features, alone or in combination:
[0020] - One or more motion sensors and one or more processors are integrated into an encoding device, preferably positioned in an accessory worn by a user, such as a watch or bracelet. When the moving entity is an object, the encoding device may, for example, be integrated into the electronic circuits controlling the object's movement or into a dedicated electronic device. Such a device, incorporating motion sensors and processors, allows part of the processing to be performed as close as possible to the generation of raw motion data, thus accelerating processing and reducing energy consumption. More preferably, the encoding device is positioned in a watch or bracelet. The presence of the encoding device in a watch or bracelet is possible thanks to the low power consumption of the process and allows the process to be used on several accessories.
[0021] - The calculation stage involves preprocessing the acquired data. It can be advantageous to modify the data, for example through filtering, in order to accelerate subsequent processing and, in some cases, reduce the associated energy consumption. It further includes a step of generating a data tensor comprising the data coded on at most eight bits obtained for several of the time windows, so that the data tensor has an encoding representative of a position or movement of the moving entity, the descriptors are calculated from mathematical functions applied to the data, preprocessed or not, generated by the motion sensor(s) coupled to the moving entity, and said applied mathematical functions including for example a calculation of mean, statistical skewness, kurtosis coefficient, comparisons of extremum or quartile values, positions of extremums in a time series, comparisons of boundary values of subsets of the movement and / or a calculation of a data topology. It includes a step for extracting a time sequence that can correspond to a unit of motion, said extraction step implementing a learning model, preferably an unsupervised learning model. Prior extraction of a unit of motion can improve the prediction accuracy of the process while reducing the associated energy consumption. It includes a step of analyzing data encoded on at most eight bits, preferably the data tensor, based on an activity data point of the mobile entity. This analysis step involves comparing the data encoded on at most eight bits, or preferably the data tensor, with a database containing reference data for the given activity. This advantageously allows for determining which data are associated with movements related to an activity and which data correspond to risky or unintentional movements. The given activity could, for example, correspond to a movement protocol, an operational protocol, a sporting activity, but also a leisure or professional activity. The time windows of two consecutive time sequences have different durations. Thus, the analysis can adapt to different types of movement, different movement cycle temporalities, and does not require lengthy data segmentation. During the transformation step, at least four descriptors are used. for each one generate a data coded on at least one bit, preferably on at least two bits. - During the transformation step, several descriptors are transformed into a single data item of at most eight bits, preferably at most three bits. In some cases, "composite" descriptors, formed from several descriptors, may be the only ones required. In particular, during the transformation step, at least eight descriptors are used, each generating a data item encoded on at least one bit, more preferably at least two bits. - One or more data encoded on at most eight bits, preferably at most three bits, are calculated from descriptor values calculated from data acquired over consecutive time windows. In some cases, a "composite" descriptor, formed from several descriptors from different time windows, can improve performance. - During the transformation stage, between four and twenty descriptors are used, each generating data coded on a number of bits selected from: one, two, or three. Such values allow for better performance in terms of data retention, storage volume, and power consumption.
[0022] According to a second object, the invention relates to a method for determining the displacement of a moving entity, from data that may have been encoded according to an encoding method according to the invention, said determination method, executed by one or more processors, comprising:
[0023] - A step of loading one or more data tensors comprising an encoding representative of a position or movement of the moving entity; and - A step of processing the data tensor(s) by a machine learning model trained to identify a position or movement of the moving entity.
[0024] According to other optional features of the process, the latter may optionally include one or more of the following features, alone or in combination:
[0025] - the movement of the mobile entity involves one or more movements and / or positions of the mobile entity. - the step of processing the data tensor(s) by a machine learning model involves the identification of classes of events from one or more data tensors, preferably a class of movement per time sequence. - it includes a selection step, preferably by the trained machine learning model, of a position or movement from a comparison of positions or movements identified from contiguous time windows or contiguous time sequences. - It involves the identification, by the trained learning model, of a position or movement for each of several contiguous time sequences. The process then includes selecting the most frequently observed position or movement within these contiguous time sequences. This step reduces the risk of false positives by leveraging real-time time series recognition and multiple validation of the same position or movement. For example, a movement can be selected from an analysis of at least three, preferably at least four, and even more preferably at least five contiguous time sequences. It also includes a step comparing positions and / or movements identified for a given time window or time sequence from different sensor data in order to identify a position or movement of the moving entity.In particular, it may include, for a unit of movement, a comparison of the movement identified for each of the arms, or a comparison with respect to a reference frame, in order to determine a position or movement of a user coupled to the motion sensors.
[0026] The invention further relates to a device for encoding data generated by one or more motion sensors coupled to a moving entity, for identifying a position or movement of the moving entity over a time sequence, said encoding device comprising one or more processors, said one or more processors being configured to:
[0027] - Acquire the data generated by one or more motion sensors coupled to the mobile entity, said data comprising variable values in the form of time series, preferably acceleration and angular velocity values; - Calculate, from the data acquired over a time window, a plurality of descriptors, the calculation being repeated for several consecutive time windows, the consecutive time windows forming a time sequence; - Transform the plurality of descriptors of each of the consecutive time windows forming the time sequence, said transformation comprising generating for each of the descriptors a data coded on at most eight bits, preferably at most three bits, said data coded on at most eight bits associated with a time window being representative of a movement or position of the moving entity on said time sequence.
[0028] Furthermore, the encoding device may include one or more motion sensors. In addition, the processor(s) may be configured to generate a data tensor comprising the data encoded on at most eight bits obtained for several of the time windows, such that the data tensor comprises an encoding representative of a position or movement of the moving entity.
[0029] The invention further relates to a system for determining the position or movement of a moving entity, said determination system comprising at least one encoding device according to the invention and an external terminal configured to receive the generated data tensor and then to determine the displacement of a moving entity from the generated data tensor.
[0030] Other advantages and features of the invention will become apparent from the following description, given by way of illustrative and non-limiting example, with reference to the accompanying Figures:
[0031] [Fig.1], [Fig.1] represents a diagram of a process according to an embodiment of the invention. The steps in dotted lines are optional.
[0032] [Fig.2], Fig.2 represents a diagram of a process according to another embodiment of the invention. The steps in dotted lines are optional.
[0033] [Fig.3A] and [Fig.3B and 3C], Figures 3A and 3B each represent a graph showing data generated, divided into a time sequence subdivided into time windows, by a motion sensor along the x-axis. Figure 3C corresponds to second-order data tensors and tensors from time window data and time sequence data, respectively.
[0034] [Fig. 4], Fig. 4 represents a diagram of a method for determining the displacement of a user according to an embodiment of the invention. The steps in dotted lines are optional.
[0035] [Fig.5], Fig.5 represents a diagram of an open encoding device seen from above comprising in particular an electronic board, a power source, a connector and a means of communication.
[0036] [Fig.6], Fig.6 represents a diagram of a system for determining the displacement of a moving entity according to the invention.
[0037] Aspects of the present invention are described with reference to flowcharts and / or functional diagrams of processes, devices (systems) and computer program products according to embodiments of the invention.
[0038] In the figures, flowcharts and functional diagrams illustrate the architecture, functionality and operation of possible implementations of computer program systems, processes, and products according to various embodiments of the present invention. In this regard, each block in the flowcharts or block diagrams can represent a system, device, module, or code, which comprises one or more executable instructions for implementing the specified logical function(s). In some implementations, the functions associated with the blocks may appear in a different order than that shown in the figures. For example, two blocks shown successively may, in fact, be executed substantially simultaneously, or the blocks may sometimes be executed in reverse order, depending on the functionality involved.Each block in the schematic diagrams and / or flowchart, and combinations of blocks in the schematic diagrams and / or flowchart, can be implemented by special hardware systems that perform the specified functions or actions, or carry out combinations of special hardware and computer instructions. [Description of the invention]
[0039] In the following description, "displacement" as defined in the invention refers to the position, movements, locomotion, and equilibrium of the moving entity. Equilibrium refers in particular to the stability of the entity with respect to its center of gravity. However, it can encompass both static and dynamic equilibrium.
[0040] The "determination of a displacement" corresponds, within the meaning of the invention, to the assignment of one or more values, for example a score, a ranking, or a rating, to a trajectory or the movement of the mobile entity, and, as presented in relation to one embodiment, to a user's arm. This determination of the displacement can also make it possible to obtain one or more numerical or alphanumeric values of biomechanical parameters representative of the displacement as a function of the mobile entity considered.
[0041] The term "activity" in the context of the invention may refer to an action performed by the mobile entity over a prolonged period. This may, for example, refer to a particular type of movement, related, by way of non-limiting example, to a sporting activity such as football, cycling or basketball, but also to a sedentary activity such as office work or any other activity such as a recreational walk or a hike.
[0042] The term "mobile entity" means any entity capable of, or configured to, move autonomously or not. A mobile entity may, for example, be a living being, a vehicle, a robotic device, or a drone.
[0043] The term "Descriptor" in the context of the invention may preferably correspond to a value obtained via a mathematical transformation of the data acquired from the motion sensors. A mathematical transformation may, for example This corresponds to the calculation of a mean, median, variance, statistical skewness, kurtosis, extremum values, quartile values, comparisons of extremum or quartile values, positions of extrema in a time series, and comparisons of boundary values of subsets of the movement. For example, for a window, a boundary value corresponds to the initial and final values of the window.
[0044] The term "motion phoneme" in the context of the invention can refer to a set of data calculated from several descriptors generated over a given time window. Advantageously, within the framework of the invention, this data takes the form of data encoded on at most eight bits. Thus, the motion phoneme corresponds to several values encoded on at most eight bits, describing at least partially a movement over the time window under consideration. These motion phonemes can therefore correspond to data calculated from several descriptors describing a sub-part of a movement called a micromovement, that is to say, a movement that can, for example, take place over less than 500 ms.
[0045] The term "data tensor" in the context of the invention can refer to an object or data structure, such as a one-dimensional array, a two-dimensional matrix, or a cube containing data relating to descriptor values transformed into values coded in at most eight bits, preferably at most two bits. The tensor representation is a data representation that allows, for example, the use of matrix calculations, optimized in terms of computational complexity and memory. Furthermore, data tensors, when they correspond to the values of a sensor for a time window, can form a third-order data tensor and can be processed together with data tensors for other sensors and data tensors for other time windows to form a list of third-order data tensors.
[0046] By "bio-mechanical parameter", in the context of the invention, we mean a characteristic of the gait of a mobile entity when that entity corresponds to a human being or a robot whose movements require particular coordination.
[0047] The term "accessory" refers to any article intended to be worn by a mobile entity. An accessory according to the invention may take the form of a textile article or, more generally, an article of clothing. The accessory may also be adapted to be attached to or integrated into a garment or take the form of a bracelet. The accessory may also be a removable modular element adaptable to skis, walking poles, a shoe (for example, a cleat for cycling), a prosthesis, etc.
[0048] The term "removable" means the ability to be easily detached, removed, or disassembled without having to destroy any means of attachment, either because there is no The fastening means are either easily and quickly removable (e.g., notch, screw, tab, lug, clips). For example, "removable" means that the object is not fixed by welding or any other means not designed to allow detachment.
[0049] For the purposes of this invention, "model," "rule," or "algorithm" means a finite sequence of operations or instructions that calculates a value by sorting or partitioning data into predefined groups Y and assigning a score or ranking one or more data points within a sort. Implementing this finite sequence of operations allows, for example, assigning a label Y to an observation described by a set of characteristics or parameters X, for instance, by implementing a function f capable of reproducing Y after observing X.
[0050] Y = f (X) + e
[0051] where e symbolizes noise or measurement error.
[0052] By "supervised learning method", in the sense of the invention, a process for defining a function f from a basis of n labeled observations (Xi...n, Yi...n) where Y = f (X) + e.
[0053] By "unsupervised learning method" is meant a method aimed at ranking data or dividing a dataset into different homogeneous groups, the homogeneous data groups sharing common characteristics and this without the observations being labeled.
[0054] The term "substantially constant" means a value varying by less than 15% from the compared value, preferably by less than 10%, and even more preferably by less than 5%.
[0055] For the purposes of this invention, "process," "calculate," "determine," "display," "transform," "extract," "compare," or more broadly, "executable operation" means an action performed by a device or processor, unless the context indicates otherwise. In this regard, operations refer to actions and / or processes of a data processing system, for example, a computer system or an electronic computing device, that manipulates and transforms data represented as physical (electronic) quantities in the computer system's memory or other information storage, transmission, or display devices. These operations may be based on applications or software.
[0056] The terms or expressions "application", "software", "program code", and "executable code" mean any expression, code, or notation of a set of instructions intended to trigger data processing to perform a particular function directly or indirectly (e.g., after an operation of conversion to another code). Program code examples may include, but are not limited to, a subroutine, a function, an executable application, source code, object code, a library, and / or any other sequence of instructions designed for execution on a computer system.
[0057] For the purposes of this invention, "processor" means at least one hardware circuit configured to execute operations according to instructions contained in a code. The hardware circuit may be an integrated circuit. Examples of a processor include, but are not limited to, a central processing unit, a graphics processing unit, an application-specific integrated circuit (ASIC), and a programmable logic circuit.
[0058] The term "computer device" means any device comprising a processing unit or a processor, for example in the form of a microcontroller cooperating with a data memory, optionally a program memory, said memories being able to be decoupled. The processing unit cooperates with said memories by means of an internal communication bus.
[0059] For the purposes of this invention, "IT infrastructure" means a set of IT structures (i.e., IT devices) capable of running an application or an application chain. The IT structure may be a server and may, for example, be composed of a presentation server, a business server, and a data server. Preferably, the IT structure is a server.
[0060] For the purposes of this invention, "coupled" means connected, directly or indirectly, with one or more intermediate elements. Two elements may be coupled mechanically, electrically, or linked by a communication channel.
[0061] In this description and even before, the same references are used to designate the same elements.
[0062] The inventors tested several methods and systems to study the displacement of a moving entity (e.g., position and / or movement). They favored systems integrating motion sensors, preferably inertial measurement units, as these systems were best suited to providing a rapid response at a cost that was bearable for industrialization.
[0063] However, as mentioned previously, the vast majority of systems for studying the movement of a mobile entity suffer from limited battery life, primarily due to the real-time transmission of raw data generated by motion sensors, particularly inertial measurement units (IMUs). The alternative—designing a battery capable of lasting several tens of hours—then involves systems that could no longer be considered portable or for general use.
[0064] Faced with these shortcomings, the applicant has developed an embeddable process capable of processing the raw data generated by quasi-invisible motion sensors tantanally and encode them in a format allowing transmission with reduced energy consumption and / or reduced storage memory. Furthermore, the process enables encoding such that the transmitted data, while requiring only a small amount of energy, retains a maximum of information and subsequently allows for detailed analysis of the mobile entity's movement by motion sensors.
[0065] In particular, the applicant has developed a solution for encoding data generated by one or more motion sensors. As mentioned, this encoding could be considered as based on a phonemic representation of the motion related to the displacement of a moving entity (e.g., position and / or movement).
[0066] Such a solution can be applied to any type of mobile entity and is not limited to the examples presented in the following description, which are for illustrative purposes only. As already mentioned, the encoding solution can be applied to a mobile entity when it corresponds to a vehicle, an aircraft, or a robot, particularly an automated industrial robot (for example, a robotic arm). Preferably, the encoding solution is particularly well-suited to battery-powered embedded systems.
[0067] According to a first aspect, the invention relates to a method 1 for encoding data generated by one or more motion sensors. In particular, such a method can be implemented for one or more motion sensors 21 coupled to a moving entity. It can notably be implemented by one or more processors 22.
[0068] Thus, in order to illustrate the solution proposed by the applicant, in the various examples or embodiments presented in the following description, the mobile entity in question may correspond to a living being such as a human being (hereinafter referred to as the "user") and the encoding device will be presented as coupled to, or integrated with, an object worn by the mobile entity such as clothing, a watch, a bracelet, or a mobile phone. The mobile entity may also correspond to a motorized object capable of moving autonomously or by command.
[0069] In particular, such a method is implemented using data generated by one or more motion sensors 21 of an object such as a watch 11. Subsequently, the invention will be described in an implementation that may involve a watch or a bracelet, but the invention can be implemented for any mobile entity comprising one or more motion sensors or for any object worn by a mobile entity.
[0070] Some of the motion sensors 21 can be distributed within the watch 11 so as to track the movements of the user's arm. The motion sensors can also all be integrated into a first encoding device 20 associated with the watch 11 or with a first wristband and a second encoding device 20 associated with a second bracelet positioned on the user's other arm. The invention can also be applied to data generated by inertial measurement units coupled with clothing or connected textiles, arranged to detect the movements of a wearer of said clothing.
[0071] An encoding method 1 according to the invention will advantageously allow identification of a position or movement of a mobile entity coupled to one or more motion sensors 21 over a time sequence ST, and in particular of the user's arm when the watch 11 and / or the bracelet 12 is (are) worn by the user.
[0072] As illustrated in [Fig. 1], the encoding method 1 comprises: an acquisition step 200 of data generated by the motion sensor(s) 21, a calculation step 300 of a plurality of descriptors from the data acquired over a time window 31, a transformation step 400 of the plurality of descriptors and a generation step 500 of a data tensor comprising the bits obtained for each of the time windows 31, such that the data tensor comprises an encoding of a combination of several motion phonemes which is representative of a position or movement of the user's arm or of a position or movement of the watch 11 or the bracelet 12 worn by the user.
[0073] In addition, a method according to the invention may include advantageous steps such as: a learning 100, a calibration 210 of a user's movement, a preprocessing 220 of the data generated by the motion sensors and / or of the values calculated within the framework of the method, an extraction 230 of a time sequence corresponding to a unit of movement, a transmission 600 of a data tensor, a determination 700 of a user's movement or even a storage 900 of the data.
[0074] In the remainder of this description, the solution proposed by the applicant will be described in an embodiment in which the motion sensor(s) 21 comprise at least one inertial measurement unit of at least six axes and this or these motion sensor(s) 21 are integrated into a watch 11 and / or a bracelet 12.
[0075] Nevertheless, the present invention in these various embodiments, preferred or not, could be applied in cases where the motion sensors are not integrated into a watch or bracelet. In particular, it could be applied when the motion sensors are positioned on a user's body, for example, integrated into clothing worn by the user. Indeed, the motion data generated by one or more motion sensors positioned on a user's body, for example, on the lower limbs or spine, could be encoded by an encoding method according to the invention and / or used to determine the user's movement.
[0076] Motion sensors could also be piezoelectric sensors, textile fibers or pressure sensors which, if positioned appropriately, can provide information on movements, particularly those of the user.
[0077] In the following description, preferably, one or more processors are positioned in a watch and / or a bracelet. Alternatively, one or more processors could be positioned in a case designed to be attached to a user.
[0078] In particular, the one or more motion sensors and the one or more processors are integrated into an electronic housing, such as an encoding device 20, preferably positioned in a user accessory such as clothing, a watch or a bracelet.
[0079] As illustrated in [Fig.2], a method according to the invention may include a learning step 100.
[0080] A training step 100 may include a step of collecting training data followed by aggregation and storage of this target data in a database. This training data may or may not be annotated and may be used to generate data tensors usable in a training step, preferably distributed and parallelized.
[0081] Preferably, step 100 of the learning process may include the generation and selection of multiple learning models by cross-validation and selection of optimized hyperparameters. Finally, step 100 of the learning process may include the selection of the learning model providing the best classification performance, that is, optimal and consistent performance across classes.
[0082] Such a step may include, in particular, defining a plurality of reference values for a user's activity. For example, when a user repeats movements, positions, and displacements over a specified period, reference values for activity may be recorded and classified according to a plurality of values, including patterns such as static or dynamic.
[0083] A method according to the invention comprises a step 200 for acquiring data generated by the motion sensor(s) 21, preferably coupled to a moving entity, in particular to a watch 11 and / or a bracelet 12 worn by a user. The acquisition, as can be understood from reading this description, is preferably performed for each of the accessories worn by the user and, where applicable, for the watch 11 and / or the bracelet. This step may correspond, in particular within the scope of the invention, to the acquisition of data generated by one or more motion sensors of an encoding device 20 or of several encoding devices 20, for example, each integrated into a watch 11 and / or a bracelet 12. This acquisition may, for example, correspond to a storage of The preference is to store the data generated by the sensors in RAM. This acquisition could also correspond to loading it into the memory of one or more processors intended to process it.
[0084] In particular, the acquired data are raw data generated by the motion sensor(s) 21. Alternatively, the acquired data may also be preprocessed data. As will be described later, the preprocessed acquired data may, for example, be data that has been normalized, filtered, augmented, or even fused, for example, by Kalman filtering. Preferably, the acquired data include variable values in the form of time series. These variable values may preferably be acceleration and angular velocity values, but they may also, for example, be values generated by pressure sensors. They may optionally include magnetic field data or a fusion of such data. Thus, the data generated by the motion sensor(s) may also include magnetic field data.
[0085] This acquisition step may also include the acquisition of other data such as geolocation data, temperature data, or pressure data.
[0086] In particular, when the acquired data has been generated by motion sensors coupled to a moving entity, in particular positioned in a watch or bracelet, this data will preferably correspond to acceleration and angular velocity values of the moving entity, in particular of the watch or bracelet.
[0087] In particular, a method according to the invention may include a calibration step 210. As will be described later, the motion sensors 21 can be associated with the mobile entity, more particularly with an accessory such as a watch or a bracelet, and can be integrated into an encoding device 20.
[0088] A method according to the invention may also include a preprocessing 220 of the data generated by the motion sensors before or after their acquisition.
[0089] In particular, this preprocessing step 220 may correspond to the preprocessing of the acceleration, angular velocity and / or orientation values of a watch or bracelet, or even pressure values. For example, it may include at least one processing step selected from: frequency filtering, gravity suppression on acceleration values, gravity suppression, noise suppression on acceleration values, and drift suppression on the angular velocity and / or orientation values of the watch or bracelet.
[0090] As mentioned and illustrated in [Fig. 2], a process according to the invention may include an extraction step 230 of a temporal sequence that may correspond to a unit of movement.
[0091] The unit of movement within the meaning of the invention may correspond to a sequence of one or more identical or different movements, such as, by way of non-limiting example, flexion, rotation, translation, or extension. These movements may be defined as the period of time from the initiation of a movement, for example, of the arm of the user wearing the watch 11 or the bracelet 12, to the next occurrence of the same event or the same movement with the same arm.
[0092] Within the framework of the invention, numerous partitioning methods can be used. Thus, this step may, for example, include the implementation of classic motion analysis steps, such as the Pan-Tompkins method or the detection of thresholds, maxima and / or minima.
[0093] Extraction 230 may advantageously implement a machine learning model, preferably an unsupervised machine learning model.
[0094] A method according to the invention also includes a calculation step 300 of a plurality of descriptors from the data acquired over a time window 31.
[0095] Advantageously, this calculation step can be repeated for several consecutive time windows 31. As will be described later, the consecutive time windows 31 form a time sequence 32. This is illustrated in particular in Figures 3A and 3B.
[0096] Figures 3A and 3B represent data generated by a motion sensor, for example acceleration data along the x-axis, preprocessed or unprocessed. This data can be divided into a time sequence 32, two at [Fig. 3A], and then subdivided into time windows 31.
[0097] As previously stated, a method according to the invention may include an extraction step 230 of a time sequence 32 that may correspond to a unit of motion. Alternatively, a time sequence 32 may correspond to a sliding window as illustrated in Figure 3B. Furthermore, as illustrated in Figure 3B, preferably, the time sequences 32 may overlap.
[0098] The time window 31 does not necessarily correspond to a predetermined duration. Moreover, preferably, it does not correspond to a predetermined duration. For example, the duration of the time window 31 can be defined once a unit of motion, or a type of motion, has been identified.
[0099] As illustrated in Figure 3B, all the time windows 31 of a time sequence 32 can have the same duration. Furthermore, the time windows 31 of two consecutive time sequences 32 can have different durations.
[0100] Thus, the duration of a time window can be adapted to the duration of a unit of movement. This makes it possible to consider movements independently of their execution time.
[0101] For example, the duration of each of the time windows 31 of a time sequence 32 may correspond to a predetermined fraction of the duration of the time sequence 32.
[0102] The duration of a time window 31 may, for example, be between 25 and 1000 ms, while the duration of a time sequence 32 may, for example, be between 100 and 5000 ms. A time window 31 may, for example, represent between 1 / 20 and 1 / 4 of a time sequence 32, preferably between 1 / 10 and 1 / 5 of a time sequence 32.
[0103] Advantageously, the descriptors are calculated from mathematical functions applied to the data generated by the motion sensor(s) 21, whether pre-processed or not. The mathematical functions preferably include calculations of statistical skewness, kurtosis coefficient, extremum values, comparisons of boundary values of motion subsets and / or a data topology calculation.
[0104] In addition, the implemented mathematical functions can allow the calculation of so-called "topological" descriptors enabling the extraction, measurement and comparison of structural information hidden within complex data. In this case, mathematical functions can be adapted to allow the calculation of data topology, notably through the determination of a one- or multidimensional persistence diagram (as presented in H. Edelsbrunner and J. Harer, *Computational Topology: An Introduction*, American Mathematical Society, 2009, or in H. Edelsbrunner, D. Letscher, and A. Zomorodian, *Topological persistence and simplification*, Disc. Compu. Geom., 2002), the Reeb graph (J. Tiemy, A. Gyulassy, E. Simon, and V. Pascucci, *Loop surgery for volumetric meshes: Reeb graphs reduced to contour trees*, IEEE Transactions on Visualization and Computer Graphics (Proc. of IEEE VIS), 2009), or the Morse-Smale complex (A. Gyulassy, PT).Bremer, B. Hamann, and V. Pascucci. A practical approach to morse-smale complex computation: Scalability and generality. IEEE Transactions on Visualization and Computer Graphics (Proc. Of IEEE VIS), 2008). Of course, the computation of these topological descriptors is not limited to the use of the mathematical functions described only as indicative examples; other mathematical functions can be used to determine other types of topological descriptors.
[0105] Preferably, the applied mathematical functions incorporate data data from multiple motion sensors can be generated, resulting in a coded value of at most eight bits, preferably at most three bits, and more preferably at most two bits. For example, in the case of an inertial measurement unit (IMU) generating acceleration data on three axes, a coded descriptor of at most three bits, preferably at most two bits, could have been generated from the values of the three axes.
[0106] Furthermore, the applied mathematical functions can advantageously incorporate data from a previous time window to calculate a descriptor for a given window. Thus, the values of the descriptors can reflect an evolution of the values generated by the motion sensors.
[0107] Preferably, the applied mathematical functions may also incorporate variables not originating from the motion sensors.
[0108] Preferably, the calculation step 300 of a plurality of descriptors will include the calculation of at least 4 descriptors, preferably at least six descriptors for each of the time windows 31.
[0109] A method according to the invention includes a transformation step 400 of the plurality of descriptors.
[0110] This transformation step 400 of the plurality of descriptors advantageously includes encoding the descriptors, each on at most eight bits, preferably at most five bits, more preferably at most four bits, and even more preferably at most three bits, for example, each on at most two bits. Preferably, during the transformation step 400, the descriptors of the plurality of descriptors are each transformed into a two-bit encoded data item.
[0111] Generally, all calculated descriptors will be encoded. However, it is possible that not all calculated descriptors will be encoded. For example, the method according to the invention may include a step of selecting which descriptors will be encoded and which will not.
[0112] Generally, this encoding will be exclusively associated with a single descriptor. However, it is possible for several descriptors to contribute to the definition of a value encoded on at most eight bits that will be complementary to values encoded specific to a single descriptor. Furthermore, it is possible for a single descriptor to be involved in the definition of several values encoded on at most eight bits. In one embodiment, during transformation step 400, several descriptors could be used to generate complementary two-bit encoded data.
[0113] The inventors tested several methods for processing the data generated by the motion sensors. Furthermore, they tested several methods for reducing the dimensionality of the data produced by these motion sensors. However, it was the method according to the present invention that achieved the best results in terms of energy consumption and compression of the data while retaining useful information from the transmitted data to accurately represent the user's movement.
[0114] Table 1 below represents normalized system performance data as a function of the processing of data acquired from the data sensors before transmission.
[0115] Table 1: Battery consumption Retention of useful data information Data storage required No encoding 100 1 100 One-bit encoding; 4 descriptors 1 38.2 1 Two-bit encoding; 4 descriptors 5.5 23.7 3.7 Three-bit encoding; 4 descriptors 15.1 14.2 5.2 Four-bit encoding; 4 descriptors 21.9 9 16 One-bit encoding; 8 descriptors 3.1 24.1 3.2 Two-bit encoding; 8 descriptors 10.8 11.9 7.3 Three-bit encoding; 8 descriptors 26.5 8 16.5 Four-bit encoding; 8 descriptors 34 4.9 29.1 Eight-bit encoding; 8 descriptors 59 2.4 42.6
[0116] Thus, the battery consumption values correspond to normalized battery consumption values based on the highest consumption (100) and lowest consumption (1). The useful data information retention values correspond to normalized values based on a maximum information retention capacity (1) and a minimum retention capacity (100). In particular, data information retention is estimated through the accuracy of movement predictions by a set of supervised machine learning models based on the encoded data. Finally, the required data storage values correspond to the volume in terms of normalized memory space, from the highest value (100) to the lowest value (1).
[0117] Preferably, during transformation step 400, at least eight descriptors are used, each coded on at least one bit, more preferably on at least two bits. Generally, during transformation step 400, descriptors are each coded on at most eight bits, preferably at most six bits and even more preferably at most four bits.
[0118] For example, among the preferred embodiments, during transformation step 400, the coding is performed on:
[0119] - one bit for between 4 and 20 descriptors, for example four descriptors or eight descriptors; - two bits for between 4 and 20 descriptors, for example four descriptors or eight descriptors; - three bits for between 4 and 20 descriptors, for example, four descriptors.
[0120] The encoding will preferably be performed for each of the time windows 31.
[0121] Thus, the data encoded on at most two bits and associated with a time window 31 will preferably be representative of what could be considered a motion phoneme of the moving entity or of the arm of the user equipped with a watch or bracelet. Alternatively, this data encoded on at most two bits and associated with a time window 31 can be considered a phoneme if a phonemization of the movements associated with the displacement is considered.
[0122] Advantageously, several encoded data (e.g., a plurality of descriptors each encoded on at most two bits) characterize a motion phoneme and several motion phonemes characterize a motion.
[0123] Thus, the data encoded as a series of values encoded on at most two bits associated with a time window 31 are representative of a micromovement of the user, in particular of an object such as a watch or a bracelet worn by the user.
[0124] Table 2 below illustrates an example of data obtained following a transformation step according to the invention. FT1 FT2 FT3 Calculated Encoded Calculated Encoded Calculated Encoded Descriptor 1 12.45989 -1 70.8759 1 49.3476 0 Descriptor 2 9.7228 -1 23.7459 0 93.8016 2 Descriptor 3 69.7904 1 69.0302 1 1.6486 -1 Descriptor 4 17.9573 -1 24.2259 0 38.1186 0 Descriptor 5 24.2259 0 147.2232 2 72.8551 1
[0125] The coding of the descriptors, and therefore of the values obtained, can be carried out on the basis of predetermined intervals. For example, in the case of descriptor 1, which can correspond to a maximum acceleration value on the Y-axis, the method according to The invention can employ predetermined rules whereby a value less than 20 will be transformed into a value of "-1", a value from 20 to 50 (inclusive) will be transformed into a value of "0", a value between 50 (exclusive of 50) and 80 (exclusive of 80) will be transformed into a value of "1", and a value greater than or equal to 80 will be transformed into a value of "2". Thus, descriptor 1 is transformed into data coded on at most eight bits, in this case 2 bits.
[0126] The predetermined intervals can be modified over time either automatically based on the values obtained or through updates.
[0127] The coding of the descriptors can also correspond to comparisons of values of different descriptors or of the same descriptor over several time windows 31. For example, if descriptor 3, which can correspond to the average acceleration on the x-axis, does not vary by more than 10% between windows FT0 and FT1, then its value will be transformed into a value of "1". Similarly, if descriptor 3 does not vary by more than 10% between windows FT1 and FT2, then its value will be transformed into a value of "1". On the other hand, if descriptor 3 varies by more than 80% downwards between windows FT2 and FT3, then its value will be transformed into a value of "-1".
[0128] Thus, the encoding of the descriptors, that is, the generation for each descriptor of data encoded on at most eight bits, can advantageously be based on predetermined rules. Furthermore, it can advantageously take into account predetermined intervals, changes in values over time, and / or the results of mathematical operations between the descriptors.
[0129] A method according to the invention may lead, as will be described later, to the generation of a data tensor which, according to the example above, could be represented in the following form:
[0130] VI = {-1,-1,1,-1,0;1,0,1,0,2;0;2,-1,0,1}
[0131] Such a data tensor comprises several sets of data encoded in at most two bits. For example, it comprises a set of five values encoded in at most two bits corresponding to the encoding of descriptors for the time window denoted "FT1"; a set of five values encoded in at most two bits corresponding to the encoding of descriptors for the time window denoted "FT2"; and a set of five values encoded in at most two bits corresponding to the encoding of descriptors for the time window denoted "FT3".
[0132] Thus, if the time windows FT1, FT2, and FT3 (Table 2) correspond to a 32-second time sequence and therefore to a unit of motion, then said one-second motion can be described by fifteen values encoded on two bits, or, in the case illustrated, by 30 bits. Furthermore, in the case of using a sliding 32-second time sequence, such a motion could be represented by five time windows. 32 pores, or 150 bits.
[0133] This is to be compared with the 14400 bits of data from motion sensors such as 9-axis inertial measurement units sampling a one-second motion at 100 Hz.
[0134] The present invention therefore allows, with a minimal reduction of information, a reduction in the necessary data flows of about one hundred times, resulting in a reduction in energy consumption and the storage capacities required.
[0135] Thus, a method according to the invention may also include a generation step 500 of a data tensor comprising the coded data obtained for each of the time windows 31.
[0136] The data tensor comprising the coded data obtained for each of the time windows 31 denoted "FT" in Table 2 can correspond to a plurality of data tensors each comprising the coded data obtained for a time window 31.
[0137] Thus, the data tensor preferably comprises an encoding of a combination of several motion phonemes of the moving entity, and in particular of the user, preferably of a watch or bracelet. The data tensor advantageously comprises an encoding that is representative of a position or movement of the watch or bracelet worn by the user.
[0138] The inventors have further shown that the use of such a data tensor, comprising data encoded on at most eight bits, preferably at most three bits, and more preferably at most two bits, improves the performance of a machine learning model based on such a data tensor. Indeed, a machine learning model based on an encoding according to the invention will, where applicable, exhibit a reduced neural network size and / or reduced computation time while being tolerant of the statistical variability of representative populations of the datasets and flexible to the mechanical sensitivity of inertial sensors.
[0139] Advantageously, the data tensor comprises a series coded on at most four bits, preferably at most three bits, and more preferably at most two bits. However, it may include other data that are not necessarily coded on at most two bits. For example, the data tensor may include uncoded data that could correspond to attributes calculated at the level of, for example, the watch or the bracelet and describing an aspect of a user's movement.
[0140] Alternatively, the data tensor 34 corresponds to a series coded on eight bits at most, preferably at most three bits, preferably at most two bits.
[0141] The generation step 500 may include the generation of several data tensors for a time window 31. This is the case, for example, if a tensor of Data is generated for each axis of an inertial platform. Alternatively, a data tensor can contain coded data concerning several axes of an inertial platform.
[0142] A method according to the invention may also include a data tensor transmission step 600.
[0143] Advantageously, since the data is encoded on at most eight bits, the transmission can advantageously be concatenated within data frames, allowing the transfer of data frames of, for example, 8 bits, 16 bits, or 32 bits. Thus, the number of messages is reduced by optimizing frame occupancy. The transmission frames are therefore optimized, reducing energy costs and packet verification costs (e.g., ACK). This is particularly significant in the context of low-energy transmissions such as BLE (Bluetooth Low Energy) or Zigbee.
[0144] Although a step of determining a movement or more generally a displacement of a user can be carried out at the level of the device carrying out the step of acquiring 200 data generated by the motion sensor(s), it is also possible to divide the processing and interpret the data tensor in an electronic device different from the electronic device that generated the data tensor.
[0145] The transmission could, for example, be carried out by wireless means such as radio communications. The data tensor would then preferably be transmitted to an external mobile device. The data tensor could also be transmitted to a remote computing device such as a data processing server.
[0146] The transmission of the data tensor can also be carried out directly to a data processing device from one motion sensor to another. For example, from a watch to a wristband or from one wristband to another wristband. The data tensor transmission can be continuous, with one data tensor being transmitted at a time. It can also correspond to the transmission of several data tensors. For example, a transmission can include several data tensors, each corresponding to a different time window, or even data tensors generated from variables of different motion sensors.
[0147] According to another aspect, the present invention relates to a method 2 for determining the displacement of a moving entity. Preferably, the method 2 for determining the displacement of a moving entity corresponds to a method for determining the gait of a living being, preferably a human being, using the encoding device 20.
[0148] Preferably, the determination of the displacement of the mobile entity or the determination of the gait corresponds to the determination of a position, a movement, or an activity of the mobile entity, or in particular to a position, a movement, or an activity of the user.
[0149] The determination method 2 will preferably be executed by one or more processors. Advantageously, the determination method 2 of a user's movement is implemented at least in part at the level of an encoding device 20 coupled to the user, preferably positioned on the user's arm, for example in a watch or in a bracelet worn by the user. Alternatively, the determination method 2 of a user's movement is implemented at least in part at the level of an external terminal 30 such as a mobile device, or of a computer infrastructure.
[0150] Such a determination will preferably be made from data encoded, or capable of being encoded, according to an encoding process 1 according to the present invention.
[0151] In particular, the method 2 for determining the displacement of a moving entity according to the invention will be based, at least in part, on encoded data. In particular, the encoded data will take the form of a time series in which each time window 31 contains at least four data points encoded on at most eight bits, preferably at most three bits, and more preferably at most two bits. Preferably, each time window 31 contains between 4 and 50 data points encoded on at most eight bits, preferably at most three bits, and more preferably at most two bits. The time series may correspond, for example, to one or more units of motion, each unit of motion being formed by several time windows 31.
[0152] In particular, the method 2 for determining the displacement of a moving entity according to the invention will be based, at least in part, on encoded data in the form of one or more data tensors comprising, for each time window 31, at least four data encoded on at most eight bits, preferably at most three bits, and more preferably at most two bits. Preferably, each time window 31 is represented by 4 to 50 data encoded on at most three bits, preferably at most two bits. The one or more data tensors correspond, for example, to one or more movements, and each of the movements is represented by several time windows.
[0153] As illustrated in [Fig.4], the method for determining 2 the displacement of a moving entity comprises: a loading step 710 of one, preferably several data tensors; and a processing step 720 of the data tensors preferably by a machine learning model trained to identify a position or a movement.
[0154] The method for determining the displacement of a moving entity 2 preferably corresponds to a real-time determination of one or more constituent elements of the displacement of a moving entity, e.g., a user. That is to say, after the generation of data by one or more motion sensors, preferably in less than 60 seconds, more preferably in less than 30 seconds, even more preferably in less than 10 seconds, the method according to the invention is able to determine an element of the user's displacement such as a position, a step, a jump, or any other movement constituting the displacement of the moving entity.
[0155] As illustrated in [Fig.4], the determination method 2 according to the invention may also include the following steps: a selection step 730 of a position or movement for a time interval from the positions or movements identified for contiguous time sequences, a comparison step 740 of the position and / or movement identified from data from different sensors and a data transmission step 750 to an external terminal 30.
[0156] As mentioned, the method for determining 2 the displacement of a moving entity includes a step of loading 710 one or more data tensors.
[0157] Loading the data tensor may involve loading several data tensors. In the context of this invention, this step may specifically involve storing one or more data tensors in memory, preferably in RAM. This acquisition may also involve loading them into the memory of one or more processors designed to process them.
[0158] As mentioned, the method for determining 2 the displacement of a moving entity includes a processing step 720 of the data tensor(s) by a machine learning model.
[0159] In particular, the processing step 720 of the data tensor by a machine learning model will include the identification of event classes from the data tensor(s). Specifically, the processing step 720 allows, from several data tensors, preferably each corresponding to a motion phoneme, the identification of an event class. Preferably, the processing step 720 is performed on third-order data tensors comprising several data tensors.
[0160] Figure 3C illustrates, for example, three data tensors 34 in the form of three second-order tensors, each comprising five data tensors. Each data tensor here corresponds to data calculated from a time window 31, and a data tensor 34 can thus correspond to a time sequence 32. A second-order tensor illustrated in Figure 3C comprises data encoded on one bit (0 or 1) for seven descriptors and over five time windows 31.
[0161] In Figure 3C, the tensors 34 correspond to sliding and overlapping temporal windows 32. A temporal sequence 32 could also correspond to a window whose size varies as position, motion, or more broadly, event class calculations are performed. For example, a first temporal sequence 32 has three temporal windows 31, a second temporal sequence 32 has four temporal windows 31, and so on until a predetermined maximum dimension value of the temporal sequence 32 is reached. The temporal sequence 32 could then have its size reduced to a predetermined minimum dimension value.
[0162] Thus, the data encoded as bits associated with one or more time windows 31, preferably representing a motion phoneme, will be processed by a machine learning model to infer an event class such as a motion or position class. A motion class can correspond, in the sense of the invention, to a movement occurring over a very short duration, for example, less than 500 ms, and can also correspond to longer portions of movement. For example, it will be possible, within the scope of the invention, from the bits associated with a time window 31 or a time sequence 32, to determine whether there is, for example, a kneeling motion in progress, a step forward, a step backward, etc.
[0163] Advantageously, the solution according to the invention uses one or more machine learning algorithms, preferably pre-calibrated, for processing the data tensor(s). These algorithms may have been built from different learning models, supervised, unsupervised, or reinforcement learning. An unsupervised learning algorithm may, for example, be selected from an unsupervised Gaussian mixture model, a hierarchical clustering agglomerative (HCA), or a hierarchical clustering divisive (HCD). Alternatively, the algorithm is based on a supervised statistical learning model configured to minimize a risk in the scheduling rule, thus enabling more efficient prediction rules.In this case, the calculation steps for determination and estimation can be based on a model, trained on a dataset and configured to predict a label (e.g., displacement similar or different to the recorded displacement). For example, for calibration purposes, it is possible to use a dataset representative of a situation whose label is known. The dataset can also include multiple labels. The algorithm can be derived from the use of a supervised statistical learning model selected, for example, from kernel methods (e.g., Large Margin Separators - Support Vector Machines (SVMs), Regression). Ridge-type kernel), set methods (e.g. decision trees, random forests), hierarchical partitioning, k-means partitioning, logical regression, or neural networks.
[0164] Preferably, the trained machine learning model is preferably selected from a neural network, for example a deep learning model, a recurrent neural network (e.g. an LSTM, for "Long Short-Term Memory" in Anglo-Saxon terminology), a multilayer perceptron or other machine learning methods such as decision tree-based methods (e.g. random forest) or clustering methods (e.g. Partitioning Method or Hierarchical Methods).
[0165] Furthermore, advantageously, the method according to the invention may include a step 730 of selecting a position or movement from among the positions or movements identified for contiguous time sequences 32. This selected position or movement may, in particular, correspond to the position or movement of a user during a specific time interval 33 that has been the subject of several contiguous time sequences 32, as illustrated in Figure 3B. The time interval 33 may correspond to a unit of movement.
[0166] Thus, the selection step 730 of a position or movement can be considered as a validation of a movement or position from the processing of several classes of movement or position inferred during the processing step 720 of the data tensor by a machine learning model.
[0167] The selection step 730 could include a comparison of the identified position or movement for contiguous time sequences 32. Indeed, particularly when a sliding window is used, or more generally when a movement is represented by several contiguous time sequences, as in Figure 3B, the method according to the invention may include identifying a position or movement for each of the several contiguous time sequences 32. Then, the method includes selecting the most frequently represented position or movement among the contiguous time sequences 32 under consideration. This reduces the risk of false positives by taking advantage of real-time position or movement recognition within time series and multiple validation of the same position or movement.For example, a position or movement can be selected from an analysis of at least 3, preferably at least 4, and even more preferably at least five contiguous time sequences.
[0168] Preferably, the selection step 730 is performed on 3rd order data tensors comprising several data tensors.
[0169] Furthermore, advantageously, the method according to the invention may also include a comparison step of 740 positions and / or movements identified, for example for a given instant, from data from different sensors.
[0170] Such a comparison of 740 identified positions and / or movements can be used to determine the displacement of the moving entity, e.g. the user, by combining information from several sensors.
[0171] This comparison 740 is preferably performed for synchronized time intervals so that the measured and interpreted data correspond precisely to the same moment in the movement of the mobile entity, e.g., the user. Such synchronization is possible, for example, through the use of a synchronized clock or through inter-device communication.
[0172] In particular, the method 2 for determining the displacement of a moving entity, e.g., the user, can be implemented using data tensors from several sources. For example, from several motion sensors positioned at different points on a moving entity, which also generate data tensors according to the present invention.
[0173] Under these conditions, the method for determining the displacement of a moving entity may advantageously include, for a given time interval, a comparison 740 of the position and / or movement identified from the data of a first sensor with the position or movement identified from a second sensor. For example, the step of comparing the identified position and / or movement may include a comparison of the position or movement identified from a sensor positioned on the right arm of a user with the position or movement identified from a sensor positioned on the user's left arm.
[0174] The comparison step 740 of positions and / or movements identified for a given instant for different sensors may implement positions or movements identified from data from different sensors that do not implement the data tensor according to the invention. For example, the position, or movement, identified from data encoded according to the invention may be compared with the position, or movement, identified using other methods.
[0175] In particular, the method for determining the displacement of a moving entity may advantageously include a comparison of the position or movement identified for each of a user's arms with a reference frame. Such a comparison will enhance the specificity of the determination performance and, in some cases, determine a complex type of movement or position. Indeed, certain movements or positions can only be accurately determined by taking into account the results from several motion sensors. The reference frame may consist of a database, an algorithm transcribing expert rules, or a machine learning model.
[0176] Preferably, the method may also include a step 750 of data transmission to an external terminal 30. This transmission is preferably carried out on an ad hoc basis. In particular, it may correspond to the transmission of all the generated and / or calculated data to an external terminal 30.
[0177] In addition, the method may include the transmission of the data received by the external terminal 30 to one or more other external terminals which could be involved in calculating other displacement parameters or in displaying them.
[0178] The transmitted data can, for example, be raw data as generated by the motion sensors, pre-processed data, transformed data or displacement data.
[0179] In addition, a determination method 2 according to the invention may also include an identification step 800 of an activity associated with one or more identified movements and / or positions.
[0180] This identification of an activity preferably includes the comparison of reference values of activity to the values of one or more data tensors or to the values of one or more identified movements or positions.
[0181] It is then possible, preferably from several identified movements and / or positions, to determine, firstly, the type of mobile entity whose movements / positions have been identified and, secondly, the activity carried out by the mobile entity. Indeed, a person skilled in the art will understand that, depending on the type of mobile entity considered, the identified movements and positions will be radically different and will allow the mobile entity to be characterized. Furthermore, when the mobile entity is, for example, a user, it will be possible to determine the type of activity carried out by the latter based on the identified movements / positions.
[0182] The following are presented the various mandatory or non-mandatory steps of a method for determining 2 the displacement of a moving entity in order to summarize and put the present invention into perspective.
[0183] During the processing 720 of the data tensor by a machine learning model, the present invention may, for example, study a plurality of time windows 31 so as to identify a class of movement for each of the time windows 31. More preferably, during the processing 720 of the data tensor, in particular of a data tensor of order 3 by a machine learning model, the present invention may study a plurality of time windows 31 so as to identify a class of movement for each of the time sequences 32 comprising several time windows 31.
[0184] An optional additional step 730 of selecting a position or movement can be implemented so as to confirm, by analyzing the movement classes identified for several contiguous time windows 31 or for Several time sequences 32 indicate the presence of a particular movement such as flexion, translation, rotation, or extension. For example, one time sequence 32 may indicate rotation while the following three indicate translation. In this case, at the end of the additional selection step 730 of a position or movement, the present invention can indicate the occurrence of a translation.
[0185] Furthermore, more generally, the analysis of the movement classes identified for several contiguous time windows 31 or for several time sequences 32 can indicate the occurrence of a “risky” movement. Indeed, when the identified movement is not associated with any inferred movement or position class, it may be the result of an involuntary movement of the moving entity.
[0186] In an optional additional step 740 of comparing identified positions and / or movements, the present invention will study data generated by other sensors, preferably also in the form of data tensors (e.g., a third-order data tensor), for example, a data tensor generated from the movements of the user's left arm. Following the example above, the analysis of the data tensor(s) from the left arm may indicate elbow flexion. In this case, the movement identified at the end of step 740 could, for example, be representative of a running movement by the user or a protective movement in boxing. Thus, the movement or position identified at the end of step 740 can be considered a more complex movement.Indeed, data tensors, more specifically level 3 tensors, can advantageously be associated with a particular displacement pattern describing one or more specific movements.
[0187] Finally, in an activity identification step 800, the present invention will be able to determine several movements from generated data which will lead, for example, to identifying that the activity carried out is a sporting activity of the judo, running or boxing type.
[0188] Preferably, the method may also include a data storage step 900. This storage is preferably continuous. In particular, it may correspond to the storage of all the data generated and / or calculated within the framework of a method according to the invention. The stored data may, for example, be raw data as generated by the motion sensors, pre-processed data, transformed data, or displacement data. Preferably, the stored data corresponds to transformed data or displacement data.
[0189] Advantageously, as opposed to raw and / or pre-processed data which are saved for a short period (e.g. less than 5 minutes) for example on a cache memory, a data tensor value or displacement is stored for longer term, for example in memory.
[0190] Advantageously, the calculation of a data tensor and / or a determined displacement is done in real time, i.e. less than 1 hour after the generation of the data by one or more of the motion sensors coupled to the mobile entity, preferably less than 10 minutes, more preferably less than one minute, even more preferably less than 10 seconds.
[0191] According to another aspect, the invention relates to a device for encoding data 20 generated by one or more motion sensors 21, preferably coupled to a mobile entity, for example to a watch or bracelet worn by a user.
[0192] Such a data encoding device 20 can, in particular, be used to identify the position or movement of a moving entity, e.g., a user, over a time sequence 32. More broadly, if applied to motion sensors 21 positioned on a user's body, it can be used to identify the user's position or movement. More specifically, such an encoding device 20 is particularly advantageous when used to identify a user's movement while wearing a watch 11 or a wristband 12.
[0193] Weighing only a few grams and being small in size, this encoding device 20 can be discreetly housed in any accessory. This small volume limits the impact on user comfort and has the advantage of optimizing production costs by making the integration of this technology into any type of accessory worn by the user or directly into the mobile unit during the industrial process less expensive and simpler.
[0194] An encoding device 20 according to the invention is detailed in [Fig. 5]. The various components of the encoding device 20 are preferably arranged on an electronic board 27 (or printed circuit board), but the invention may provide for various types of arrangement, for example, a single module combining all the functions described herein. Similarly, these means may be divided into several electronic boards or assembled on a single electronic board. Furthermore, when an action is attributed to a device, a means, or a module, this action is generally performed by a microprocessor of the device or module controlled by instruction codes stored in memory. Likewise, if an action is attributed to an application, this action is actually performed by a microprocessor of the device in whose memory the instruction codes corresponding to the application are stored.When a device or module sends or receives a message, that message is sent or received through a communication interface.
[0195] Such an encoding device 20 according to the invention may include a sensor of A motion 21 such as an inertial platform configured to generate data on the displacement of a moving entity. During the use of the encoding device 20 by a user (the encoding device is advantageously positioned on the user), the inertial platform acquires signals representative of a motion parameter (acceleration and / or velocity, for example, angular velocity) of the user, preferably of the user's arm, along the X, Y, and Z axes. Furthermore, this data can then be processed to generate at least one acceleration signal. The inertial platform, for example, consists of at least one accelerometer and one gyroscope. Preferably, it includes several accelerometers and gyroscopes. The encoding device 20 can also include one or more magnetometers so as to acquire three additional raw signals corresponding to the magnetic field values in three dimensions.
[0196] Each encoding device 20 may also include other sensors, including an inclinometer, a barometer, a temperature sensor and an altimeter to benefit from increased accuracy.
[0197] Preferably, an encoding device 20 comprises one or more processors 22 configured to execute one of the processes according to the invention, preferably the encoding process, and their various embodiments, preferred, advantageous or not.
[0198] In particular, one or more processors 22 are configured to acquire data generated by the motion sensor(s) 21, said data including acceleration and angular velocity values.
[0199] The one or more processors 22 can also be configured to calculate a plurality of descriptors from the data acquired over a time window 31, the calculation step being repeated for several consecutive time windows 31, the consecutive time windows 31 forming a time sequence 32;
[0200] In addition, the one or more processors 22 can also be configured to transform the plurality of computed descriptors, said step comprising encoding the descriptors each on at most two bits, said bits associated with a time window 31 being representative of a motion phoneme.
[0201] Also, one or more processors 22 can be configured to generate a data tensor comprising the bits obtained for each of the time windows 31, so that the data tensor includes an encoding of a combination of several motion phonemes that is representative of a position or movement of the user.
[0202] Preferably, one or more processors 22 will be configured to:
[0203] - acquire data generated by the motion sensor(s) 21, - calculate a plurality of descriptors from the data acquired on a time window 31, the calculation step being repeated for several consecutive time windows 31; and - transform the plurality of calculated descriptors, said step comprising an encoding of the descriptors each on at most two bits, said bits associated with a time window 31 being representative of a motion phoneme
[0204] In addition, the one or more processors 22 shall be configured so as to generate a data tensor comprising the bits obtained for each of the time windows 31, so that the data tensor comprises an encoding, preferably of a combination of several motion phonemes, which is representative of a position or a motion of the moving entity.
[0205] In particular, one or more processors 22 can be configured to perform the following actions:
[0206] - Loading data encoded on at most eight bits associated with the time sequence 32, being representative of the movement of a moving entity on said time sequence 32, for example in the form of one or more data tensors; and - Process the data tensor(s) by a machine learning model trained to identify a position or movement of the moving entity.
[0207] Alternatively, the processor(s) can be configured to generate the data tensor and then send it to an external terminal 30 so that the displacement of the moving entity can be determined.
[0208] Thus, the encoding device 20 according to the invention advantageously comprises one or more communication means 25. The one or more communication means 25 are capable of receiving and transmitting data over at least one communication network. Preferably, the communication is carried out via a wireless protocol such as Wi-Fi, 3G, 4G, 5G, and / or Bluetooth. Preferably, the communication protocol is a BLE or ANT+ protocol. These communication protocols allow for low energy consumption.
[0209] Preferably, the encoding device 20 according to the invention comprises a first communication means 25 configured such that the encoding device 20 is capable of transmitting at least a portion of the data tensor to an external terminal 30. This data can be transmitted in real time or with a delay to an external terminal 30. The external terminal 30 can, for example, be a remote system such as a tablet, a mobile phone (or "smartphone"), a computer, or a server. As mentioned, the encoding device 20 according to the invention can also implement a step for determining the movement of a user or, more generally, of a mobile entity; thus, it can be configured to send identified position or movement data for a user. This data can be transmitted in real time or with a delay to an external terminal 30.
[0210] Advantageously, an encoding device 20 according to the invention further comprises a second means of communication configured so that a first encoding device 20 is able to communicate with a second encoding device 20.
[0211] In particular, the encoding devices 20 can be configured to communicate with each other and to initiate the generation of data on the movement of a user only after receiving a message from the other encoding device 20. This contributes to the synchronization of the encoding devices 20. For example, the encoding devices 20 can be configured to associate and / or match timestamps of samples from inertial platforms.
[0212] Advantageously, if an encoding device 20 were to disconnect or lose synchronization in time with the other encoding device 20, a method according to the invention could include a step of synchronizing the encoding devices 20. Thus, a search signal is sent by the connected encoding device 20, the disconnected encoding device 20 receives the search signal and synchronizes with the connected encoding device 20.
[0213] The encoding device 20 according to the invention also includes a data memory 23, configured to store at least a portion of the acquired data and / or data tensors. The encoding device 20 according to the invention is such that it can operate with a low-capacity data memory 23. It can be configured to store the raw data generated by the inertial platform. Advantageously, the data memory 23 is configured to store at least a portion of the transformed data, but not the generated raw data. Thus, its capacity is not reduced by generated raw data. The transformed data can correspond to data preprocessed by the processor(s) or to data tensors.
[0214] Furthermore, the encoding device 20 according to the invention may include a power source 26. The power source is preferably a battery, rechargeable or non-rechargeable. Preferably, the power source is a rechargeable battery. In addition, it may be associated with a charging system powered by movement or by an external energy source. The external energy charging system may, in particular, be a wired charging system, an inductive charging system, or a photovoltaic system.
[0215] The energy source 26 is preferably a battery, rechargeable or non-rechargeable. Preferably, the energy source is a rechargeable battery. Recharging can be carried out using various technologies such as:
[0216] - by charger, with a connector flush with the watch or the bracelet ; - with a mechanical charging device integrated into the watch or bracelet, for example a piezoelectric device capable of providing electrical energy from walking; - with a contactless device, for example by induction; and / or - with a photovoltaic system.
[0217] Furthermore, the encoding device according to the invention may include a port for a wired connection 28, preferably protected by a removable tab. This port for a wired connection may be, for example, a USB or FireWire port. Advantageously, the USB port is also water-resistant or moisture-resistant. In addition, the USB port is advantageously surmounted by a polymer beam to provide it with greater resistance under operating conditions. This port for a wired connection 28 can be used, as mentioned above, to recharge the battery, but also to exchange data and, for example, to update the firmware of the electronic board carrying the various components of the encoding device.
[0218] Preferably, the removable tab or USB cover protects the USB port from foreign objects. For example, the removable tab protects the USB port from water or dust. Such a tab can preferably be made of an elastomer or polyurethane polymer.
[0219] Furthermore, according to another aspect, the present invention relates to a system for determining the displacement of a moving entity.
[0220] Such a system for determining the displacement of a moving entity, described in connection with [Fig. 6], will advantageously comprise one or more encoding devices 20 according to the present invention. In particular, the system for determining the displacement of a moving entity according to the invention comprises at least two encoding devices 20 according to the present invention.
[0221] In particular, each of the encoding devices 20 is designed so as to be able to communicate independently with the other and / or directly with an external terminal 30 in order to be able to exchange its own information on the position / movement / activity of the mobile entity and in particular of the arm of a user.
[0222] In particular, the system 5 according to the invention may comprise a watch 11 and a bracelet 12, or two bracelets 12, each comprising an encoding device 20 according to the invention. Conventionally, the watch 11 and bracelet 12 each comprise an encoding device 20 according to the invention.
[0223] As mentioned, the system 5 according to the invention may include an external terminal 30 configured to receive data from the encoding device(s) 20.
[0224] Advantageously, a dedicated application is installed on this external terminal in order to to process the information transmitted by the encoding device(s) 20 and allow the user to interact with the invention. For example, it is then possible to access this remote server via a web interface. All communications with the remote server can be secured, for example, by HTTPS (HyperText Transfer Protocol Secure) and AES (Advanced Encryption Standard) 512. Thus, this can allow, via a client, access to the data by medical personnel responsible for monitoring the user.
[0225] The external terminal 30 is generally a tablet, a mobile phone (a "smartphone" in Anglo-Saxon terminology), a gateway, a router, a computer, or a server. It may be capable of transferring this data to a remote server. It is then possible, for example, to access this remote server via a web interface. It may, for example, be configured to implement inference solutions specific to given applications from coded data, or from coded data tensors, or in particular from order data tensors generated by the encoding device 20. It may also be configured to generate displacement data from data obtained from the determination step 700 of a user's displacement.
[0226] Thus, the user can access data related to his movement such as data relating to his daily physical activities and relating to several biomechanical parameters, such as position, pronation / supination, impact force, step length, contact time, limping, balance and several other parameters relating to the user and describing his movements, his gait, his positions and his movements and thus follow their evolution.
Claims
Claims
1. Method (1) for encoding data generated by one or more motion sensors (21) coupled to a mobile entity, for identifying a position or movement of the mobile entity over a time sequence (32), said method (1), executed by one or more processors (22), comprising: - A step of acquiring (200) data generated by the motion sensor(s) (21) coupled to the mobile entity, said data comprising variable values in the form of time series, preferably said variable values comprising acceleration and angular velocity values; - A step of calculating (300), from the data acquired over a time window (31), a plurality of descriptors, the calculation step (300) being repeated for several consecutive time windows (31), consecutive time windows (31) forming the time sequence (32);and - A transformation step (400) of the plurality of descriptors of each of the consecutive time windows (31) forming the time sequence (32), said transformation step (400) comprising a generation for each of the descriptors of data coded on at most eight bits, said data coded on at most eight bits associated with the time sequence (32) being representative of a position or a movement of the mobile entity on said time sequence (32).;
2. Method (1) for encoding data according to claim 1, characterized in that it further comprises a step of generating (500) a data tensor (34) comprising the data coded on at most eight bits obtained for several of the time windows (31), so that the data tensor (34) comprises an encoding representative of a position or a movement of the mobile entity.
3. Method (1) for encoding data according to any one of claims 1 or 2, characterized in that the descriptors are calculated from mathematical functions applied to the data, preprocessed or not, generated by the motion sensor(s) (21) coupled to the mobile entity, and said applied mathematical functions comprising for example a calculation of average, statistical asymmetry, flattening coefficient, comparisons of values of extremums or quartiles, positions of extremums in a time series, comparisons of edge values of subsets of the motion and / or a calculation of a data topology.
4. Method (1) for encoding data according to any one of claims 1 to 3, characterized in that the time windows (31) of two consecutive time sequences (32) have different durations.
5. Method (1) for encoding data according to any one of claims 1 to 4, characterized in that, during the transformation step (400), at least four descriptors are used to each generate data coded on at least one bit, more preferably on at least two bits.
6. Method (1) for encoding data according to any one of claims 1 to 5, characterized in that, during the transformation step (400), between four and twenty descriptors are used, each generating data coded on a number of bits selected from: one, two or three.
7. Method (1) for encoding data according to any one of claims 2 to 6, characterized in that it comprises a step of analyzing the data coded on at most eight bits, preferably the data tensor (34), as a function of activity data of the mobile entity, said analysis step comprising a comparison between the data coded on at most eight bits or preferably the data tensor (34) and a database comprising reference data for the given activity.
8. Method (1) for encoding data according to any one of claims 1 to 7, characterized in that, during the transformation step (400), one or more data coded on at most three bits are calculated from values of descriptors calculated from data acquired over consecutive time windows (31).
9. Method for determining (2) a movement of a mobile entity, from data encoded according to an encoding method according to any one of claims 2 to 8, characterized in that said determination method (2), executed by one or more processors (22), comprises: - A step of loading (710) one or more data tensors (34) comprising an encoding representative of a position or a movement of the mobile entity; and - A step of processing (720) the data tensor(s) (34) by a machine learning model trained so as to identify a position or a movement of the mobile entity.
10. Method for determining (2) a movement of a mobile entity according to claim 9, characterized in that the step of processing (720) the data tensor(s) by a machine learning model comprises the identification of event classes from the data tensor(s) (34), preferably a movement class per time sequence (32).
11. Method for determining (2) a movement of a mobile entity according to any one of claims 9 or 10, characterized in that it comprises a step of selecting (730), preferably by the trained machine learning model, a position and / or a movement from a comparison of the positions and / or movements identified from contiguous time windows (31) or contiguous time sequences (32).
12. Method for determining (2) a movement of a mobile entity according to any one of claims 10 to 11, characterized in that it comprises a step of comparing (740) the positions and / or movements identified for a given time window (31) or time sequence (32) from data from different sensors so as to identify a position and / or a movement of the mobile entity.
13. Device (20) for encoding data generated by one or more motion sensors (21) coupled to a mobile entity, for identifying a position or movement of the mobile entity over a time sequence (32), said encoding device (20) comprising one or more processors (22), said one or more processors (22) being configured to: - Acquire the data generated by the motion sensor(s) (21) coupled to the mobile entity, said data comprising variable values in the form of time series, preferably said variable values comprise acceleration and angular velocity values; - Calculating, from the data acquired over a time window (31), a plurality of descriptors, the calculation being repeated for several consecutive time windows (31), the consecutive time windows (31) forming a time sequence (32); - Transforming the plurality of descriptors of each of the consecutive time windows (31) forming the time sequence (32), said transformation comprising a generation for each of the descriptors of data coded on at most eight bits, said data coded on at most eight bits associated with the time sequence (32) being representative of a position or a movement of the mobile entity on said time sequence (32).
14. Device (20) for encoding data generated by one or more motion sensors (21) according to the preceding claim, characterized in that said one or more processors (22) are configured to generate a data tensor (34) comprising the data coded on at most eight bits obtained for several of the time windows (31), so that the data tensor (34) comprises an encoding representative of a position or a movement of the mobile entity.
15. System (5) for determining a movement of a mobile entity, said determination system comprising at least one encoding device (20) according to claim 14 and an external terminal (30) configured to receive the generated data tensor (34) and then to determine the movement of a mobile entity from the generated data tensor (34).
