Inertial navigation
The use of a neural network with rotational symmetry operations addresses the inefficiencies in pedestrian navigation by reducing redundant calculations and improving accuracy, leading to faster and more resource-efficient inertial navigation systems.
Patent Information
- Application Number
- GB2023010644
- Authority / Receiving Office
- GB · GB
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2023-07-11
- Publication Date
- 2025-01-15
AI Technical Summary
Conventional inertial navigation systems face challenges with system drift and accuracy due to errors and biases in inexpensive inertial sensors, particularly in pedestrian navigation, where distinguishing device orientation changes from actual pedestrian motion is difficult, leading to inefficient models that require large amounts of training data and computational resources.
A computer-implemented method using a trained neural network with neurons that apply rotational symmetry operations to maximize neuron activation, reducing redundant calculations and allowing navigation or tracking metrics to be calculated without needing to interpret all device orientations, resulting in a more efficient and smaller model.
This approach improves the speed and efficiency of both training and inference, reduces memory requirements, and enhances pedestrian motion modeling by eliminating the need to account for irrelevant device orientations, thereby constraining error accumulation in inertial navigation calculations.
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
FIELD OF THE INVENTION The present invention relates to methods and systems for performing navigation and tracking based on data from inertial sensors. The invention has particular application to pedestrian navigation. BACKGROUND A traditional inertial navigation system uses standard mechanics equations to convert measurements from inertial sensors (for example accelerometers and gyroscopes) into navigation and tracking metrics, such as velocity, position and direction of motion. Even with the increasing prevalence of GNSS positioning, inertial navigation techniques such as pedestrian dead reckoning remain of utmost importance, for example in scenarios where GNSS signals are not available or unreliable (e.g. indoor environments, urban canyons) or on devices which do not include native GNSS receivers, such as small wearable devices. Data based on inertial sensor measurements may also be used to supplement or augment GNSS data in order to improve the overall navigation solution. A known problem with conventional inertial navigation techniques is that of system drift over time. Nowadays, many smartphones and other wearable devices contain relatively cheap inertial sensors which typically carry relatively large errors and biases, exacerbating the problem of drift when using inertial techniques. One way in which this problem is being addressed is by using a data-driven approach, in which a model is trained using inertial data obtained from a device, together with the corresponding “ground truth” of the motion. Such training is typically performed “offline”, rather than the model relying on continuous feedback from another source such as a live GNSS signal. Although data-driven approaches are providing advances in the field of inertial navigation, problems still persist, in particular with regard to pedestrian motion modelling. The motion of a pedestrian being analysed is typically unaffected by changes in the orientation or pose of the device being carried, and it is often difficult to discriminate between changes in device orientation or pose and actual changes in the trajectory of the body carrying the device, such as a change in a pedestrian’s direction of travel. For example, a change in the orientation of a smartphone from portrait to landscape, or moving the phone from a pocket to the ear to take a call, may not affect the trajectory of the pedestrian. Modem machine learning methods such as neural networks demonstrate great promise in recognising the diverse behaviours and carry locations particular to devices used by a pedestrian. However, as in general the orientation of the device with respect to the user is not known in advance, the standard approach is to consider all the possible orientations and poses of the device during training. This requires a large amount of training data and results in a correspondingly large model which must be capable of interpreting the many possible orientations and poses of the device. This leads to an undesirable trade-off between accuracy and the compute resources required (memory and floating-point operations) to train and perform inferences using the model. Consequently, there is a need for further improvements in pedestrian navigation and tracking based on inertial data. SUMMARY OF INVENTION In accordance with a first aspect of the present invention, there is provided a computer implemented method comprising: obtaining motion data representing motion of a mobile device in a two-dimensional plane, wherein the mobile device is carried by a body; inputting the motion data to a trained neural network; and using the trained neural network to calculate a navigation or tracking metric of the mobile device or of the body; wherein the trained neural network comprises a plurality of neurons arranged as an input layer configured to receive the motion data, an output layer configured to output the navigation or training metric, and one or more hidden layers, wherein within each of the hidden layer(s): each neuron is configured to perform a non-linear activation function on a neuron activation to generate a neuron output, said neuron activation comprising a set of inputs and weights to the respective neuron; and each neuron is configured to apply a rotational symmetry operation to the respective neuron activation that maximises the respective neuron activation, whereby the neuron activation is invariant with respect to a rotation of the set of inputs within the two-dimensional plane. The present invention uses a trained neural network in order to calculate a navigation or tracking metric of a mobile device or of a body (e.g. a pedestrian) carrying the mobile device. Herein, the term “carried by” encompasses all ways in which a mobile device can be carried or otherwise located (e.g. worn, mounted) on the body. The neural network of the present invention advantageously uses a modified neuron in its hidden layer(s), in which the computations of the neuron are constrained to obey a particular symmetry (e.g. within the two-dimensional plane). This ensures that there are no symmetry-redundant calculations in the model. In this way, the efficiency of the neural network - both in terms of speed (of both training and inference) and compute resources - is improved as compared to conventional trained models. Through the use of neurons that are constrained to obey a particular symmetry, the neural network may be termed a “symmetric” neural network. In particular, each neuron is configured to apply (e.g. applies in use) a rotational symmetry operation to its respective neuron activation that maximises the respective neuron activation, whereby the neuron activation is invariant with respect to a rotation of the set of inputs within the two-dimensional plane. In this way, the method of the present invention is advantageously capable of modelling the motion of the mobile device or the body without requiring the model to be trained using data that includes every possible orientation of the device. In other words, the model of the present invention advantageously does not need to be trained to interpret multiple orientations of the device which are irrelevant to the motion of the device or the body. The resulting trained neural network (or trained “model”) is therefore smaller (e.g. with respect to the number of required neurons and its size in computer memory) and accordingly requires fewer computations to perform each inference when compared to conventional models that attempt to interpret orientation information of the device from the input data. This has particular benefits for pedestrian motion modelling (e.g. where the body is a pedestrian), as such use cases typically involve context changes (e.g. changes of device pose or orientation relative to the body, such as the device being moved from being carried in a pocket to being held by the ear to receive a call). The method of the present invention may be used to infer a navigation or tracking metric irrespective of device context or a change in context, unlike, for example, traditional pedestrian dead-reckoning (PDR) methods that are often tuned for a particular use case or context, or must be recalibrated following a context change (e.g. determination of a new heading offset following an arbitrary device rotation). In embodiments, the output navigation or tracking metrics from the trained neural network may be used to reduce or constrain error accumulation in PDR or inertial navigation calculations. Typically, the body is a human user, i.e. a pedestrian, but the invention is applicable to other use cases, for example where the body is a vehicle such as an automobile, train or bicycle. In embodiments, the motion data comprise (e.g. only) measurements from which position or movement may be inferred. In other words, the motion data typically comprise measurements that do not provide positioning, tracking or navigation solutions directly. For example, the motion data may comprise measurements of the linear acceleration of the device obtained from one or more accelerometers, and measurements of the angular velocity of the device, obtained from one or more gyroscopes located on the device. The motion data may also be obtained from other measurement devices from which position or movement may be inferred, such as magnetometer(s) and barometer(s). Typically, the motion data are obtained from one or more inertial sensors located on the mobile device. The one or more inertial sensors may be part of an inertial measurement unit (IMU) located on the mobile device. In embodiments, the motion data are in the form of temporal data. In other words, the motion data may be in the form of a plurality of measurements indicative of the motion of the mobile device at each of a corresponding plurality of (e.g. sequential) time instances. The output of the trained neural network may be a navigation or tracking metric for a time period (time “window”) of input data. Typical time periods may be between 1 second and 20 seconds in duration, and may be fixed in duration. The neural network may in general be any type of (artificial) neural network that utilises a network of connected neurons. Examples of neural network architectures that are particularly suited for modelling motion based on time-series data include recurrent neural networks (RNNs), convolutional neural networks (CNNs), long short-term memory (LSTM) neural networks (including bi-directional LSTMs), and Gated Recurrent Units (GRUs). The motion data represent the motion of the mobile device in a two-dimensional plane. This advantageously reduces the complexity of the symmetry calculations performed by the neural network without significant adverse effects on the applicability of the calculated navigation or tracking metric. For example, in use cases where the body is a pedestrian, a velocity in a two-dimensional plane is acceptable for navigation and tracking applications, as the motion of a pedestrian can typically be approximated to a two-dimensional plane. Typically, the two-dimensional plane is orthogonal to the direction of gravity. This may be described as a “horizontal” plane. The horizontal plane is a particularly preferred space for calculating the navigation or tracking metric. The motion data may be resolved (e.g. “projected”) into the horizontal plane using known techniques for estimating the direction of gravity, for example using a Madgwick filter or an attitude and heading reference system (AHRS) filter. Thus, in some embodiments, the step of obtaining motion data representing motion of the mobile device in the two-dimensional plane may comprise resolving the motion data (which may typically initially be motion data in three dimensions) into the two-dimensional plane. As has been described above, the neurons within the hidden layer(s) of the symmetric neural network apply a rotational symmetry operation to the neuron activation such that the neuron activation is invariant with respect to a rotation of the set of inputs of the neuron within the two-dimensional plane. In other words, the activation is invariant with respect to a change in basis, and the non-linear activation function performed by the neuron is consistently applied to the same activation value. Preferably, the rotational symmetry operation is an operation from the Special Orthogonal (2), SO(2), symmetry group (e.g. in the two-dimensional plane). Typically, the rotational symmetry operation is a rotation in the two-dimensional plane. In embodiments, the invariant neuron activation, ainv, of each neuron is calculated by applying the rotation that maximises the symmetric activation: ^symm b+Yk XkR&Wk’ where b is a constant, xk are the inputs to the neuron, wk are the weights, and R(0) is a rotation by angle 0 in the two-dimensional plane. The weights and inputs to each neuron are typically vector quantities. When asymm is maximised, we find that if x -> Rx, R -> RR , where R is any operation within the chosen symmetry group (e.g. an SO(2) rotation) and therefore asymm is unchanged under a rotation of the inputs. In this way, ainv = asymm\dasymm_ is invariant under a rotation of the inputs. ae “° In some embodiments, at least one of the hidden layer(s) of the neural network is an invariant layer, where the output, yinv, of each neuron in the invariant layer is calculated by: Vinv factS-P-inv)- This satisfies the conditions for an invariant layer, since if x -> Rx, R -> RR , and yinv -» yinv In other words, the output of an invariant layer, yinv , is invariant under a rotation of the inputs within the two-dimensional plane. In some embodiments, at least one of the hidden layer(s) of the neural network is an equivariant layer, where the output, yequ, of each neuron in the equivariant layer is calculated by: yequ fact(.^inv)^L’ Where R is the rotational symmetry operation that maximises asymm, and i is a unit vector aligned along a first dimension. This satisfies the condition for an equivariant layer, since if % -> Rx, yequ -> Ryequ. In other words, the output of an equivariant layer, yequ , is equivariant under a rotation of the inputs within the two-dimensional plane. The unit vector maps the rotational symmetry operation, R, and the (scalar) neuron activation into the desired vector space. In general, the unit vector may be aligned along any direction with respect to the rotation (e.g. SO(2)) coordinate frame, as long as this remains consistent across all the equivariant neurons. Typically, the unit vector is a unit vector aligned along the first dimension, e.g. a unit vector (1,0) aligned along the x-axis. In the embodiments described thus far in which asymm = b + xlR(0)wk, the signals on the input can only contribute positively to the output. If an input signal to a neuron increases in magnitude then the output is constrained to also increase in magnitude since the activation function typically has a positive gradient. Therefore, in embodiments, at least one of the hidden layer(s) of the neural network is a discriminator layer, wherein the invariant neuron activation of each neuron in the discriminator layer is configured such that the response of the outputs with respect to the inputs of the neuron may be negative. In this way, the neurons of the discriminator layer(s) may advantageously cause suppression or elimination of signals (e.g. particular motion characteristics) to further enhance performance of the neural network. In embodiments, the invariant neuron activation of each neuron in the discriminator layer(s), a°nv, is calculated by applying the rotation that maximises the activation: ^symm b+ where b is a constant, xk are the inputs to the neuron, wk are a first set of weights, R(0) is a rotation by angle 0 in the two-dimensional plane, and wk are a second set of weights. Typically, the second set of weights wk are scalar weights. In embodiments in which discriminator layer(s) are used, typically each hidden layer of the neural network is a discriminator layer. Neurons of the discriminator layer(s) (“discriminator neurons”) may be either invariant or equivariant with respect to the inputs using the same constructions described above. In other words, the output of an invariant discriminator neuron, yfnv, may be given by yfnv = fad(.ainvf and the output of an equivariant discriminator neuron, y°qu = fad In some embodiments, each of the hidden layer(s) of the neural network is an invariant layer. In other words, each neuron of the hidden layer(s) is an invariant neuron, and the neural network may be described as an invariant neural network. In such embodiments, the output of the neural network is invariant with respect to the device yaw, as a different yaw manifests itself as a rotation of the inputs. In embodiments, each of the hidden layer(s) of the neural network is an equivariant layer. In other words, each neuron of the hidden layer(s) is an equivariant neuron, and the neural network may be described as an equivariant neural network. Thus, the neural network may be is equivariant with respect to the yaw of the device, as a different yaw manifests as a rotation of the inputs and an equivalent rotation of the outputs. In some embodiments, the neural network may comprise both equivariant and invariant layers. Thus, by using neurons that are invariant or equivariant under a rotation of their inputs, embodiments of the present invention utilise the rotational symmetry of the input motion data within the two-dimensional plane (e.g. the motion a pedestrian is typically the same whether he / she is walking along a North direction or a South direction). In this way, the neural network may be described as being “agnostic” to the yaw of the device; that is, the neural network does not need to interpret symmetry-redundant information related to device yaw from the input motion data in order to function. For example, the model does not need to know or interpret the yaw of the device or direction of movement relative to the East / North / Up frame in order to output the navigation or tracking metric. In this way, the computation of the navigation or tracking metric by the trained symmetric neural network is faster than conventional approaches in which the trained model typically comprises multiple additional neurons to interpret the numerous possible orientations of the device from the input data. In this way, the trained neural network of the present invention requires a relatively small amount of memory to store (e.g. of the order of ~40Kb), compared to a “full” model without the yaw agnostic capability of the invention which may require of the order of ~ 50Mb of memory. Furthermore, training of the present model is faster than conventional approaches because there is no need for the training data to cover all possible orientations of the device (e.g., observing the device in portrait / landscape, how a device is placed in a belt / pocket). In embodiments in which the neural network is an equivariant neural network, rotations of the input (i.e. a change in yaw) provide an equivalent rotation of the outputs. Therefore, the rotation of the device may be “tracked” from the inputs to the outputs. Thus, in embodiments in which the neural network is an equivariant neural network, the navigation or tracking metric may be a velocity or a direction of motion in the two-dimensional plane. Typically, the velocity or direction of motion (or other directional output) is a velocity or direction of motion of the mobile device in the device frame of reference projected on to the two-dimensional plane. Such a navigation or tracking metric regressed by the neural network may be used to constrain an inertial navigation solution, for example. In embodiments, the motion data may comprise an initial rotation value of the mobile device (e.g. an initial estimate of the device yaw). This may be derived from a gyroscope measurement for example. Consequently, the rotation of the device may be “tracked” through the neural network relative to the initial rotation value (e.g. relative to the initial yaw). In embodiments, the method may further comprise transforming the regressed metric from the device frame to a different reference frame such as the East / North / Up frame. This may be used to provide an inertial navigation solution for the pedestrian, for example. Such a transformation may be performed using an orientation filter tracking the device orientation in the desired reference frame (e.g. ENU), using techniques known in the art. In some embodiments, at least one of the hidden layer(s) of the neural network may be an invariant layer. Combining the outputs of the neurons of an invariant layer means that the outputs of any subsequent layer in the network have an undefined rotation frame and therefore the outputs of invariant layers are not used to output a velocity or direction of motion directly. In embodiments (e.g. in which one or more invariant layers are used), the navigation or tracking metric may be a speed (e.g. of the mobile device) or a motion classification (e.g. of the body). In embodiments (e.g. in which one or more invariant layers are used), the neural network may predict a pose classification of the mobile device. In embodiments, a motion classification is indicative of a motion context of the mobile device, for example: pedestrian walking, pedestrian jogging, cycling, in a car, on a train etc. In embodiments, a pose classification is indicative of how the mobile device is being carried by a pedestrian, for example: in hand, in pocket, on foot etc.). In some embodiments, mixed models may be used in which the hidden layers of the neural network are comprised of a mixture of both equivariant and invariant layers. The use of mixed models comprising both invariant and equivariant layers may advantageously reduce compute resources as well as improve accuracy of the predictions. For example, the speed and direction of motion can combine shared processing in equivariant layers, which further reduces the compute resources required for inference and training. Additionally, motion or pose classification constraints (e.g. derived from invariant layers) such as walking or running may improve direction of motion predictions, and so in the standard backpropagation step in training this provides additional constraints on, and therefore also improved performance of, the equivariant compute layers and outputs. In embodiments, the trained neural network is trained by: obtaining training data comprising (i) training motion data representing motion of the mobile device in the two-dimensional plane, and (ii) ground truth data representing the ground truth of the motion of the mobile device or of the body; and training the neural network using the training data, wherein each neuron of the hidden layer(s) applies a rotational symmetry operation (e.g. within the two-dimensional plane) to the respective neuron activation that maximises the respective neuron activation during the training of the network. By training the neural network using the training data, the neural network may be trained to learn a relationship between (e.g. one or more features of) the training motion data and the ground truth data. Typically, the ground truth data represents the motion of the mobile device or of the body in the two-dimensional plane. Thus, the particular symmetry constraints of the neurons are applied during training of the neural network, as well as at prediction (inference) time. The maximisation of the respective neuron activation is typically performed during both the forward and backward passes during training. Advantageously, the time taken to train the neural network is reduced compared to conventional approaches, since there is no requirement for the training data to coverall possible orientations of the mobile device. In embodiments, the ground truth data of the training data are obtained using a GNSS or visual odometry navigation device. The training motion data are typically obtained for a plurality of roll, pitch and yaw configurations of the mobile device. In embodiments, the weights are unconstrained during training of the neural network. This contrasts with many conventional approaches to symmetrical neural networks which introduce constraints on the weights of the network. On the other hand, in the present invention the computation operations of the neurons are constrained to obey a particular symmetry, leaving the weights unconstrained. The inventors have found that this approach advantageously reduced training time. In accordance with a second aspect of the invention there is provided a method of training a neural network that is configured to calculate a navigation or tracking metric, the neural network comprising a plurality of neurons arranged as an input layer configured to receive motion data, an output layer configured to output the navigation or tracking metric, and one or more hidden layers, wherein within each of the hidden layer(s): each neuron is configured to perform a non-linear activation function on a neuron activation to generate a neuron output, said neuron activation comprising a set of inputs and weights to the respective neuron; and each neuron is configured to apply a rotational symmetry operation to the respective neuron activation that maximises the respective neuron activation, whereby the neuron activation is invariant with respect to a rotation of the set of inputs within the two-dimensional plane; wherein the method comprises: obtaining training data comprising (i) training motion data representing motion of a mobile device in the two-dimensional plane, wherein the mobile device is carried by the body, and (ii) ground truth data representing the ground truth of the motion of the mobile device or of the body; and training the neural network using the training data, wherein each neuron applies a rotational symmetry operation to the respective neuron activation that maximises the respective neuron activation during the training of the network. By training the neural network using the training data, the neural network may be trained to learn a relationship between (e.g. one or more features of) the training motion data and the ground truth data. In embodiments, the ground truth data may represent the motion of the mobile device or of the body in the two-dimensional plane. As described above, the method of training the neural network in which the neurons are constrained to obey a particular symmetry provides significant reductions in training time and the amount of training data required compared to conventional models which are required to be trained on data covering all possible orientations of the device. The invention further provides a neural network trained using a method of the second aspect of the invention. The invention further provides use of a neural network trained using a method of the second aspect of the invention. In accordance with a third aspect of the invention there is provided a computer program product comprising executable instructions which, when executed by one or more processors, cause the processor(s) to perform the method according to any of the examples set out above in relation to the first or second aspects of the invention. The invention also provides a non-transitory computer-readable medium comprising instructions which, when executed by one or more processors, cause the processor(s) to perform the method according to any of the examples set out above. In accordance with a fourth aspect of the invention there is provided a system comprising: a motion module configured to obtain motion data of a mobile device in a two-dimensional plane; and a navigation module configured to perform the steps of: inputting the motion data to a trained neural network; and using the trained neural network to calculate a navigation or tracking metric of the mobile device or of a body carrying the mobile device; wherein the trained neural network comprises a plurality of neurons arranged as an input layer configured to receive the motion data, an output layer configured to output the navigation or tracking metric, and one or more hidden layers, wherein within each of the hidden layer(s): each neuron is configured to perform a non-linear activation function on a neuron activation to generate a neuron output, said neuron activation comprising a set of inputs and weights to the respective neuron; and each neuron is configured to apply a rotational symmetry operation to the respective neuron activation that maximises the respective neuron activation, whereby the neuron activation is invariant with respect to a rotation of the set of inputs within the two-dimensional plane. In this way, the system of the fourth aspect of the invention provides all of the advantages discussed above. In embodiments, the motion module comprises one or more inertial sensors located on the mobile device. The one or more inertial sensors typically comprise at least one (e.g. three-axis) accelerometer and at least one (e.g. three-axis) gyroscope. Typically the motion module may comprise an inertial measurement unit. In embodiments, the system is implemented on a single mobile device. Alternatively, various modules in the system could be provided separately so that the system is distributed. For example, calculations performed by the neural network may be undertaken by processors in a network in the interest of efficiency. The system may advantageously be adapted to perform the examples of any of the first or second aspects of the invention. In embodiments of the present invention, the mobile device may be a mobile communications device (e.g. such as a smartphone) or a wearable device (e.g. such as a fitness tracker, smart watch, headset or the like). BRIEF DESCRIPTION OF DRAWINGS Example embodiments of the invention will now be described with reference to the appended drawings, in which:- Figure 1 is a flowchart outlining the principal steps of a method according to an embodiment of the invention; Figure 2 is a diagram schematically illustrating the pertinent components of a system according an embodiment of the invention; Figures 3 and 4 schematically illustrate the relationship between the device frame of reference and the pedestrian navigation frame of reference; Figure 5 schematically illustrates the configuration of a neural network according to an embodiment of the invention; and Figures 6(a) to 6(g) are plots showing the inputs and the outputs of a symmetric neural network according to an embodiment of the invention. DETAILED DESCRIPTION The following description relates to modelling pedestrian motion; in other words, embodiments in which the mobile device is carried by a pedestrian in any pose, and wherein the motion data obtained from the device may be used to infer the motion of the pedestrian. However, the present invention also relates to scenarios in which the mobile device is carried on a body other than a pedestrian, such as a vehicle. Figure 1 is a flowchart outlining the principal steps of a method according to an embodiment of the invention. Figure 2 is a diagram schematically illustrating the pertinent components of a system according an embodiment of the invention. Here, the system is implemented on a single mobile device 1 in the form of a smart phone. However, it will be appreciated that in alternative embodiments the mobile device may in general be any device that is carried or worn by a pedestrian, such as a smart watch, fitness tracker, headset or the like. At step S101, motion data representing motion of the mobile device 1 are obtained. The motion data are obtained from a motion module 10 of the device, which in this embodiment comprises an accelerometer 12, gyroscope 14 and an orientation filter 16. In some embodiments, the motion module 10 may comprise further sensors that may be used to infer the motion / position of the device, such as magnetometer(s) and / or barometer(s), although this is not essential. The motion data obtained by the accelerometer 12 and gyroscope 14 are resolved into the horizontal plane, as schematically illustrated in Figure 3. Figure 3 illustrates a pedestrian P carrying mobile device 1. In the pedestrian navigation frame (represented by UP (“U”), North (“N”) and East (“E”)), gravity acts along the negative U axis, therefore defining the horizonal plane 50 as the plane perpendicular to the direction of gravity. The data obtained from the accelerometer 12 and the gyroscope 14 in the device frame (xyz) are resolved into motion data representing the motion of the device 1 in the horizontal plane by orientation filter 16 that employs techniques known in the art. Any suitable orientation filter (for example a Madgwick filter) may be used to provide an estimate of the device’s attitude with respect to gravity, thereby isolating the two horizontal directions defining the horizontal plane. In some examples, the motion module 10 may comprise a magnetometer in addition to the accelerometer and gyroscope. Although the presence of a magnetometer may assist in the initial attitude estimation of the device - for example using a magnetic angular rate and gravity (“MARG”) filter - this is not essential. Each of the above-described units of the device 1 is in logical communication with a processor 30, which is operable to control the operation of the various units in accordance with executed software or firmware. At step S102, the motion data, resolved into the 2D horizontal plane 50, are input into a trained symmetric neural network 22 which forms part of a navigation module 20. More specifically, the input to the neural network is a time-series component of de-rolled, de-pitched and gryo-unwrapped accelerometer and gyroscope measurements in the device frame resolved onto the horizontal plane, put onto a regularized time (e.g. 4x for each time stamp). The trained neural network 22 utilises the rotational symmetry of the motion data within the 2D horizontal plane 50 to operate in a manner that is “agnostic” to the yaw of the device 1. Figure 4 schematically illustrates the 2D device frame (defined by the x and y axes) with respect to the 2D ENU frame. At a first time t1, the device 1 is oriented in a substantially portrait orientation in the 2D plane, thereby defining a first yaw angle with respect to the 2D N-E plane. At a time t2, the device is oriented in a substantially landscape orientation, defining a second yaw angle with respect to the 2D N-E plane. At both time instances t1 and t2, the pedestrian P moves with a constant velocity v along the E direction. However, due to the change in rotation (“yaw”) of the device 1, although the pedestrian motion remains identical, the accelerometer and gyroscope sensor measurements from the motion module 10 will differ at the two times t1 and t2. Indeed, the pedestrian motion in ENU is largely unchanged by variations in the orientation of the device. As will be further explained herein, the present invention provides a neural network that is agnostic to such rotations of the device 1. In other words, the neural network uses a plurality of symmetric neurons such that it does not need to interpret the changes in the yaw of the device (e.g. relative to the ENU frame) in order to calculate the device velocity; instead the changes in device yaw (or “rotation”) are tracked through the model without influencing its operation. In this way, the model provides a relatively faster regression of the velocity in the horizontal plane, as well as requiring reduced memory requirements as compared to “full” models that interpret changes in yaw of the device from the input motion data. Referring back to Figure 1, at Step S103, the trained neural network 22 is used to calculate a navigation or tracking metric. In general, the navigation or tracking metric may be a metric of the device or of the body, dependent on the training data used. In preferred embodiments, the neural network regresses an instantaneous velocity of the mobile device, in the device frame projected onto the 2D plane 50. This output is a horizontal velocity of the device (perpendicular to the provided estimate of the direction of gravity). Although a velocity of the mobile device is a preferred metric, other navigation or tracking metrics may be output by the trained model, dependent on the training data used and the configuration of the neural network. Other example metrics that may be derived by the trained neural network based on the present invention include a speed, a direction of motion, a motion classification, and a pose classification of the mobile device. As schematically shown in Figure 2, in embodiments, the output from the trained neural network may be input into Pedestrian Motion Unit 4, which is configured to output a navigation or tracking solution of the Pedestrian. In some cases, the direct output from the trained NN 22 may be the final output from the Pedestrian Motion Unit. For example, an estimate of the device speed output from the NN may be the final output from the Pedestrian Motion Unit. In other embodiments, the output from the NN may be used in a further motion model or operation performed by the Pedestrian Motion Unit 24 in order to calculate the desired solution relating to the motion of the pedestrian (e.g. a full inertial navigation solution). Take, for example, the embodiment described above in which the output of the trained NN is the 2D velocity of the mobile device within the device frame. In one example, this 2D velocity may be used to constrain an inertial navigation solution calculated by the Pedestrian Motion Unit 24. Similarly, a motion context of the body (e.g. walking or running) may be used to constrain a navigation solution calculated by the Pedestrian Motion Unit 24. I n another example, the device velocity may be transformed from the device frame to the ENU pedestrian navigation frame. This can be achieved if the Pedestrian Motion Unit 24 comprises an orientation filter tracking the device orientation in ENU. The velocity output from the NN 22 can then be combined with the orientation filter of the Pedestrian Motion Unit 24 in order to calculate a pedestrian velocity in the ENU frame. Typically, the output of the NN 22 and the device orientation estimate from the Pedestrian Motion Unit 24 will be input into a Kalman filter to generate the final pedestrian velocity in the ENU frame, using techniques know in the art. In another example, the Pedestrian Motion Unit 24 may calculate the yaw of the device 1 in the ENU frame by comparing the predicted velocity in the device frame from the neural network 22 with a velocity obtained using a GNSS unit 50 of the device. We now move on to discuss the configuration of the neural network in more detail. Figure 5 schematically illustrates the configuration of a trained neural network 22 according to an embodiment of the invention for determining a pedestrian velocity. The neural network comprises a plurality of neurons (“nodes”) 90, arranged generally as an input layer (I), an output layer (O), and a plurality of hidden layers (Hi, H2, ..., Hn) stacked between the input layer and the output layer (0). The neurons of different layers are connected via weights, as schematically illustrated by (vector) weights w1, w2, w3 and w4 between node 90-a of layer Hi and the nodes of layer H2. For clarity, only some of the connections between the neurons are illustrated in Figure 5. The layers of the neural network are typically fully connected layers. The inputs to the neural network are time-series components of de-rolled, depitched and gryo-unwrapped accelerometer and gyroscope measurements in the device frame resolved onto the horizontal plane, put onto a regularized time (e.g. 4x for each time stamp). The inputs are arranged in 2D pairs; in this example accelerometer measurements in the device frame (Acc x / y) and gyroscope measurements in the device frame (Gyrx / y). The inputs being in pairs make clear the space that the rotations of the symmetric neurons 90 (discussed below) act on. The accelerometer and gyroscope measurements are vector quantities and thus the inputs to the neural network are a time series of vectors. A typical time window for the input data (e.g. for dense / convolutional networks) for which a 2D velocity may be inferred by the neural network may be between 1 and 20 steps (e.g. between approximately 1 second and approximately 20 seconds) for pedestrian motion. Additional or alternative input entries (e.g. dot products or cross products of accelerometer and gyroscope measurements or derivatives thereof) may be used in some cases, dependent on a motion context or pose. For example, in cases where both gyroscope and accelerometer measurements exhibit useful structure (e.g. arm swinging) then extracting correlates and other filters that take them both as an input can have great utility. During an arm swing the horizontal acceleration has peaks and troughs at the front and back of the swing, at the same times that the gyroscope measurements are changing the fastest. This can be used to provide a relatively stable directional input. This information can help to distinguish both arm-swing motions (e.g. as opposed to pocket) and also inform the direction of travel of the user. The output layer O comprises one or more neurons that output the desired metric(s). In this example, the output layer contains a single node that outputs a 2D estimate of the velocity of the mobile device. The neurons of the hidden layers each take a set of inputs, x, and use them to compute an output, y. y is defined as a nonlinear transformation of the activation a, using y = fact (a) (1) where a = b+ Yk xTkwk (2) where x are the inputs to the neuron (typically vector inputs), w are the weights (typically vector weights), and b is a bias. The nonlinear function fact may be a sigmoid, ReLu or other suitable nonlinear function. The present invention utilises a modified neuron in which the summation term in Equation (2) is an SO(2) symmetric operation between two vector sets. An invariant neuron activation, ainv, may be achieved by finding the rotation R that maximises the symmetric neuron activation asymm, where R(0) is a rotation by angle 0 in the horizontal plane 50: In other words, ainv ^symm b+ Xk xfR(0)wk. (3) ^symm de “° This ensures that the activations of the neurons are invariant with respect to a rotation of the inputs, since under the transformation xk -> Rxk, we find R -> RR, where R is any operation in the SO(2) symmetry group, and asymm remains unchanged (i.e. invariant). The neural network in Figure 5 is a fully equivariant neural network, where all of the neurons in the hidden layers are equivariant. In order to achieve this condition, the output of each neuron is given by yequ factC.^inv (4) where R is the rotation that maximises the symmetric neuron activation asymm, and i is a unit vector aligned completely along a first dimension (e.g. a unit vector (1,0) aligned along the x axis) such that the output of an equivariant neuron is a 2D vector output. This can be used as an output, since under a rotation of the inputs x -> Rx, we find yequ -> Ryequ> thereby satisfying the condition for an equivariant neuron. This method also has the advantage that the output of each neuron is a vector, which can be used as the input to a subsequent layer. As discussed, the neurons of the network utilize a modified activation term that finds the rotation R that maximises the SO(2) symmetric neuron activation function asymm, such that asymm remains invariant under a rotation of the inputs. Complex numbers provide a natural way to decompose this SO(2) space. If we compose Equation (3) using complex numbers, R becomes r, a complex number with magnitude 1. We can use the commutativity of complex number multiplication to obtain which is maximised when r = Z (xkWk) |S (xkw*)|' Training of the network is performed using a training data set comprising ground truth data of the desired metric (e.g. a velocity, speed, motion context, pose etc.), together with the corresponding motion data in the 2D horizontal plane from the motion module of a device carried by the pedestrian. For training a neural network to regress a velocity of the device, the ground truth data are obtained from a highly accurate GNSS or visual odometry device. A relationship between the ground truth and the device needs to be established. In some cases (e.g. visual odometry) the ground truth is already provided in the device frame as the camera is comounted with the device. In other cases (e.g. GNSS measurements), the ground truth is only known by reference to the East / North / Up frames, and so an absolute yaw of the device (i.e. relative to ENU) is also required to provide the relative orientation between the truth and the sensors on the device. The ground truth data are projected onto the horizontal plane. The training data set comprises data covering a plurality of poses of the device (e.g. substantially all possibilities of the roll, pitch and yaw of the device), and the impact on the horizontal velocity of the device. During training of the model, the maximisation of asymm is performed at each neuron during both the forward and backward passes, with the weights being unconstrained. Figures 6(a) to 6(g) are plots showing the inputs and the outputs of the symmetric neural network, plotted in the ENU frame for convenience. The I MU data were obtained from a device worn on the wrist of a pedestrian (IMU frequency at 50Hz down sampled from 400Hz). The motion context of the pedestrian was walking, with a cadence of approximately 120 steps per minute. The inputs to the model are measurements from the motion unit of the device, here accelerometer readings in m / s2 with the gravity contribution removed. (It is noted that gyroscope measurements were used to project the motion data onto the 2D plane, although in this example were not used as direct inputs to the neural network). The outputs, shown in Figures 6(a) to 6(c), are the device velocity with respect to the ground (vel pred), which is compared to velocity measured by an accompanying GNSS device (shown as vel true). During a first time window (shown at Ti), the velocity is approximately 1,5m / s in an approximate south-westerly direction. At the end of time window T1, the pedestrian maintains substantially the same speed (see Figure 6(g)) and turns a corner to move substantially due south. The rotational behaviour as the pedestrian turns the corner can be seen as the input signal from the I MU rotates around Up (seen by the decreasing E amplitude in Figure 6(d) and the increasing N amplitude in Figure 6(e)). The symmetric neural network correctly accounts for this and predicts a corresponding change in direction, as shown by the (vel pred) and (vel true) plots in N / E illustrated in Figures 6(a) and 6(b). In the above-described embodiments, the symmetric neural network is a fully equivariant neural network. The present invention is also capable of handling invariant models. In such examples, at least one of the layers of the neural network is an invariant layer, where instead of the output of each neuron, y, being defined as in equation (4) above, we use the output Vinv fa.ct(^inv)- Due to the invariance of ainv, we find that under a rotation of the inputs x -> Rx, yinv -» yinv, satisfying the condition for an invariant layer. Invariant layers may be used to regress metrics such as speed, a motion classification or a pose classification. However, only a fully equivariant model will regress a velocity or direction of motion of the pedestrian, since following an invariant layer, the rotation frame is undefined. We now consider a further type of neuron that may be utilised in embodiments of the invention. In the neurons described thus far, the signals on the input to a neuron can only contribute positively to the output. In other words, if the input signal increases in magnitude, then the output is constrained to also increase in magnitude, since the activation function has a positive gradient. For example, let us assume that there is an important pattern but only as long as the magnitude of the input |%01 is small. For example, if the magnitude of the input is above a certain threshold, it may be noisy and of little utility. As ainv = asymm\dasymm_ , ^y>0, and therefore the input will contribute positively to the output even if this is undesirable for a particular pattern. In order to improve the performance of the neural network, we therefore introduce a modified neuron, termed a “discriminator neuron” in which the response of the outputs with respect to the inputs can be negative. Negative responses can be useful in capturing relationships where certain input features have an inhibitory effect on the output. For example, a particular feature specific to walking may cause a reduction of the speed when compared to running and a negative response will be useful to capture this relationship. Negative responses allow the neuron to assign higher importance to certain input features while actively downweighting others. Thus, the neuron's ability to emphasize critical features and suppress irrelevant ones is improved. The use of discriminator neurons also advantageously reduce bias towards positive features that may be present if a neuron can only have a positive response with respect to an input. For example, the presence of a high dynamic range might be indicative of running motion context, and a discriminator neuron may be able to better capture and discriminate between input signals from different mount locations if it is not known where on the body the device is. Furthermore, negative responses play a role in adjusting the model's parameters during training using gradient descent. Negative responses can improve the learning process by reducing biases towards specific patterns or feature combinations, potentially leading to faster convergence or improved solutions. The ability to provide a negative response is achieved by using the activation: ^symm b+ where b is a constant, xk are the inputs to the neuron, wk are a first set of weights, R(0) is a rotation by angle 0 in the two-dimensional plane, and wk are a second set of weights. Thus, a°ymm differs from asymm through the addition of a second set of weights wk which are typically scalar weights. The invariant neuron activation of a discriminator neuron, a°nv, is achieved by finding the rotation R that maximises a°ymm. Thus, a discriminator neuron may be invariant or equivariant with respect to rotations of the inputs in the same manner as described above. In other words, the output of an invariant discriminator neuron, y^, may be given by y?nv = fact(a?nv), and the output of an equivariant discriminator neuron, y°qu = fact(a?nv)Ri. Typically, where discriminator neurons are used, each neuron in the neural network will be a discriminator neuron using the a°ymm construction described above. However, it is envisaged that in some embodiments only a subset of the 5 hidden layers of the neural network are discriminator layers.
Claims
1. A computer implemented method comprising:obtaining motion data representing motion of a mobile device in a two-dimensional plane, wherein the mobile device is carried by a body;inputting the motion data to a trained neural network; andusing the trained neural network to calculate a navigation or tracking metric of the mobile device or of the body; whereinthe trained neural network comprises a plurality of neurons arranged as an input layer configured to receive the motion data, an output layer configured to output the navigation or training metric, and one or more hidden layers, wherein within each of the hidden layer(s):each neuron is configured to perform a non-linear activation function on a neuron activation to generate a neuron output, said neuron activation comprising a set of inputs and weights to the respective neuron; andeach neuron is configured to apply a rotational symmetry operation to the respective neuron activation that maximises the respective neuron activation, whereby the neuron activation is invariant with respect to a rotation of the set of inputs within the two-dimensional plane.
2. The method of claim 1, wherein the motion data comprise measurements from which position or movement may be inferred.
3. The method of any claim 1 or claim 2, wherein the motion data are obtained from one or more inertial sensors located on the mobile device.
4. The method of any of the preceding claims, wherein the two-dimensional plane is orthogonal to the direction of gravity.
5. The method of any of the preceding claims, wherein the motion data are in the form of temporal data.
6. The method of any of the preceding claims, wherein the rotational symmetry operation is an operation from the Special Orthogonal (2), SO(2), symmetry group.
7. The method of any of the preceding claims, wherein the rotational symmetry operation is a rotation in the two-dimensional plane.
8. The method of any of the preceding claims, wherein the invariant neuron activation, ainv, of each neuron is calculated by applying the rotation that maximises the symmetric activation:^symm b+l.k xlR(0)wk, whereb is a constant, xk are the inputs to the neuron, wk are the weights, and R(0) is a rotation by angle 0 in the two-dimensional plane.
9. The method of claim 8, wherein at least one of the hidden layer(s) of the neural network is an invariant layer, where the output, yinv, of each neuron in the invariant layer is calculated by:Vinv factS-P-inv)-10. The method of claim 8 or claim 9, wherein at least one of the hidden layer(s) of the neural network is an equivariant layer, where the output, yequ, of each neuron in the equivariant layer is calculated by:yequ fact^^inv)^h WhereR is the rotational symmetry operation that maximises asymm, and i is a unit vector aligned along a first dimension.
11. The method of any of the preceding claims, wherein at least one of the hidden layer(s) of the neural network is a discriminator layer, wherein the invariant neuron activation of each neuron of the discriminator layer is configured such that the response of the outputs with respect to the inputs of the neuron may be negative.
12. The method of claim 11, wherein the invariant neuron activation of each neuron in the discriminator layer(s), a°nv, is calculated by applying the rotation that maximises the activation:Q-symm b+ l.k wkxkR(fT)wk,where b is a constant, xk are the inputs to the neuron, wk are a first set of weights, R(0) is a rotation by angle 0 in the two-dimensional plane, and wk are a second set of weights.
13. The method of any of claims claim 10 to 12 when dependent on claim 10, wherein each of the hidden layer(s) of the neural network is an equivariant layer.
14. The method of claim 13, wherein the navigation or tracking metric is a velocity or a direction of motion in the two-dimensional plane.
15. The method of any of the preceding claims wherein the navigation or tracking metric is a speed or a motion classification.
16. The method of any of the preceding claims, wherein the trained neural network is trained by:obtaining training data comprising (i) training motion data representing motion of the mobile device in the two-dimensional plane, and (ii) ground truth data representing the ground truth of the motion of the mobile device or of the body; andtraining the neural network using the training data, wherein each neuron of the hidden layer(s) applies a rotational symmetry operation to the respective neuron activation that maximises the respective neuron activation during the training of the network.
17. A method of training a neural network that is configured to calculate a navigation or tracking metric, the neural network comprising a plurality of neurons arranged as an input layer configured to receive motion data, an output layer configured to output the navigation or tracking metric, and one or more hidden layers, wherein within each of the hidden layer(s):each neuron is configured to perform a non-linear activation function on a neuron activation to generate a neuron output, said neuron activation comprising a set of inputs and weights to the respective neuron; andeach neuron is configured to apply a rotational symmetry operation to the respective neuron activation that maximises the respective neuron activation, whereby the neuron activation is invariant with respect to a rotation of the set of inputs within the two-dimensional plane;wherein the method comprises:obtaining training data comprising (i) training motion data representing motion of a mobile device in the two-dimensional plane, wherein the mobile device is carried by the body, and (ii) ground truth data representing the ground truth of the motion of the mobile device or of the body; andtraining the neural network using the training data, wherein each neuron applies a rotational symmetry operation to the respective neuron activation that maximises the respective neuron activation during the training of the network.
18. The method of claim 16 or claim 17, wherein the weights are unconstrained during training.
19. A computer program product comprising executable instructions which, when executed by one or more processors, cause the processor(s) to perform the method according to any of the preceding claims.
20. A neural network trained using the method of any of claims 17 to 19.
21. Use of a neural network trained using the method of any of claims 17 to19.
22. A system comprising:a motion module configured to obtain motion data of a mobile device in a two-dimensional plane; anda navigation module configured to perform the steps of:inputting the motion data to a trained neural network; andusing the trained neural network to calculate a navigation or tracking metric of the mobile device or of a body carrying the mobile device; whereinthe trained neural network comprises a plurality of neurons arranged as an input layer configured to receive the motion data, an output layer configured to output the navigation or tracking metric, and one or more hidden layers, wherein within each of the hidden layer(s):each neuron is configured to perform a non-linear activation function on a neuron activation to generate a neuron output, said neuron activation comprising a set of inputs and weights to the respective neuron; andeach neuron is configured to apply a rotational symmetry operation to the respective neuron activation that maximises the respective neuron activation, whereby the neuron activation is invariant with respect to a rotation of the set of inputs within the two-dimensional plane.
23. The system of claim 22, wherein the motion module comprises one or more inertial sensors located on the mobile device.
24. The system of claim 22 or claim 23, wherein the system is implemented on a single mobile device.
25. The system of any of claims 22 to 24, adapted to perform the method of any of claims 1 to 15.
26. The method, computer program product or system of any of the preceding 5 claims, wherein the mobile device is a mobile communications device or a wearable device.
27. The method, computer program product or system of any of the preceding claims, wherein the body is a pedestrian.10
Citation Information
Patent Citations
Inertial navigation method based on multi-head attention mechanism
CN114719860A
Indoor pedestrian inertial navigation method based on deep neural network
CN115615432A
Adaptive localization and incremental deployment of infrastructure with crowd-sourced feedback
US10145962B1
Enhanced localization method and apparatus
US20180293756A1
Method of estimating a metric of interest related to the motion of a body
US20210254979A1
Cited By
Inertial navigation positioning method and system based on attitude dynamics and neural network
CN121655509A