Inertial navigation
Patent Information
- Authority / Receiving Office
- EP · EP
- Patent Type
- Applications
- Current Assignee / Owner
- FOCAL POINT POSITIONING LTD
- Filing Date
- 2024-07-11
- Publication Date
- 2026-05-20
AI Technical Summary
Conventional inertial navigation systems face challenges with system drift due to errors and biases in inexpensive inertial sensors, particularly in pedestrian navigation, where distinguishing device orientation changes from actual trajectory changes is difficult, leading to inefficient computing resources and accuracy trade-offs.
A trained neural network with modified neurons that apply rotational symmetry operations within the two-dimensional plane to reduce redundant calculations, allowing for efficient navigation and tracking metrics calculation without needing to interpret all device orientations, thereby improving speed and resource efficiency.
The approach enhances the accuracy and efficiency of pedestrian navigation by reducing error accumulation and computing resources required, allowing for faster training and inference while maintaining effective navigation metrics without recalibration for context changes.
Smart Images

Figure GB2024051813_16012025_PF_FP_ABST
Abstract
Description
INERTIAL NAVIGATION FIELD OF THE INVENTION
[0001] The present principles relate to navigation and tracking systems and more particularly to methods and systems for performing navigation and tracking based on data from inertial sensors. BACKGROUND
[0002] 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 Global Navigation Satellite System (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. In some instanced, data based on inertial sensor measurements may also be used to supplement or augment GNSS data in order to improve the overall navigation solution.
[0003] A known problem with conventional inertial navigation techniques is that of system drift over time. Currently, 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 has been 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.
[0004] 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 thebody 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.
[0005] Currently, modern 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 the orientation of the device with respect to the user is not generally 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 computing resources (memory and floating-point operations) required to train and perform inferences using the model.
[0006] Consequently, there is a need for further improvements in pedestrian navigation and tracking based on inertial data. SUMMARY
[0007] Embodiments of the present principles implement a trained neural network to calculate a navigation or tracking metric of a mobile device or of a body (e.g. a pedestrian) carrying the mobile device. The neural network of the present principles advantageously uses a modified neuron in a hidden layer(s), in which the computations of the neuron are constrained to obey a particular symmetry (e.g. within the a-dimensional plane). Such restriction of the computation(s), in accordance with the present principles, ensures that there are no symmetry-redundant calculations in the model. As such, the efficiency of the neural network – both in terms of speed (of both training and inference) and computing resources – is improved as compared to conventionally trained models. BRIEF DESCRIPTION OF THE DRAWINGS
[0008] So that the manner in which the above recited features of the present principles can be understood in detail, a more particular description of the principles, brieflysummarized above, may be had by reference to embodiments, some of which are illustrated in the appended drawings. It is to be noted, however, that the appended drawings illustrate only typical embodiments in accordance with the present principles and are therefore not to be considered limiting of its scope, for the principles may admit to other equally effective embodiments.
[0009] Figure 1 depicts a flow diagram of a method for navigation and tracking using inertial navigation in accordance with at least one embodiment of the present principles.
[0010] Figure 2 depicts a high-level block diagram of a system for navigation and tracking using inertial navigation in accordance with at least one embodiment of the present principles.
[0011] Figure 3 depicts a graphical representation of a relationship between a device frame of reference and a pedestrian navigation frame of reference in accordance with an embodiment of the present principles.
[0012] Figure 4 depicts a schematic representation of a relationship between a device frame of reference and a pedestrian navigation frame of reference in accordance with an alternate embodiment of the present principles.
[0013] Figure 5 depicts a schematic representation of a configuration of a neural network in accordance with at least one embodiment of the present principles.
[0014] Figure 6(a) depicts a plot of a first input and a first output of a symmetric neural network in accordance with at least one embodiment of the present principles.
[0015] Figure 6(b) depicts a plot of a second input and a second output of a symmetric neural network in accordance with at least one embodiment of the present principles.
[0016] Figure 6(c) depicts a plot of a second input and a second output of a symmetric neural network in accordance with at least one embodiment of the present principles.
[0017] Figure 6(d) depicts a plot of a fourth input and a fourth output of a symmetric neural network in accordance with at least one embodiment of the present principles.
[0018] Figure 6(e) depicts a plot of a fifth input and a fifth output of a symmetric neural network in accordance with at least one embodiment of the present principles.
[0019] Figure 6(f) depicts a plot of a sixth input and a sixth output of a symmetric neural network in accordance with at least one embodiment of the present principles.
[0020] Figure 6(g) depicts a plot of a seventh input and a seventh output of a symmetric neural network in accordance with at least one embodiment of the present principles.
[0021] To facilitate understanding, identical reference numerals have been used, where possible, to designate identical elements that are common to the figures. The figures are not drawn to scale and may be simplified for clarity. It is contemplated that elements and features of one embodiment may be beneficially incorporated in other embodiments without further recitation. DETAILED DESCRIPTION
[0022] Embodiments of the present principles generally relate to methods, apparatuses and systems for performing navigation and tracking based on data from inertial sensors. While the concepts of the present principles are susceptible to various modifications and alternative forms, specific embodiments thereof are shown by way of example in the drawings and are described in detail below. It should be understood that there is no intent to limit the concepts of the present principles to the particular forms disclosed. On the contrary, the intent is to cover all modifications, equivalents, and alternatives consistent with the present principles and the appended claims. For example, although embodiments of the present principles are described with respect to specific machine learning models, such as neural networks and specifically for tracking pedestrians, embodiments of the present principles can be implemented in substantially any machine learning model and for tracking other objects in accordance with the present principles.
[0023] Embodiments of the present principles implement a trained neural network to calculate a navigation and / or tracking metric of a mobile device and / or of a body (e.g. apedestrian) carrying the mobile device. In the disclosure herein, the phrase “carried by” is intended to describe / define all ways in which a mobile device can be carried or otherwise located (e.g. worn, mounted), for example, on a body. In some embodiments, a neural network of the present principles advantageously implements a hidden layer(s) of a modified neuron, in which the computations of the neuron are constrained to obey a particular symmetry (e.g. within the two-dimensional plane). Such configuration of the present principles ensures that there are no symmetry-redundant calculations in the model. As such, 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 in accordance with the present principles, the neural network can be termed a “symmetric” neural network.
[0024] In particular, in some embodiments each neuron is configured to apply (e.g. applies in use) a rotational symmetry operation to a respective neuron activation that maximizes the respective neuron activation, whereby the neuron activation is invariant with respect to a rotation of a set of inputs within the two-dimensional plane. In this way, methods of the present principles are advantageously capable of modelling the motion of a mobile device and / or a body carrying the mobile device without requiring the model to be trained using data that includes every possible orientation of the device. That is, a model of the present principles 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”) can therefore be 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.
[0025] Embodiments of the present principles have particular benefits for pedestrian motion modelling (e.g. where the body carrying a mobile device is a pedestrian and / or a vehicle), 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). Embodiments of the presentprinciples can 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 some embodiments of the present principles, the output navigation or tracking metrics from the trained neural network can be used to reduce or constrain error accumulation in PDR or inertial navigation calculations.
[0026] In some embodiments, the motion data comprises (e.g. only) measurements from which position or movement can be inferred. In other words, the motion data typically comprises 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 can also be obtained from other measurement devices from which position or movement can be inferred, such as magnetometer(s) and barometer(s). Typically, the motion data is obtained from one or more inertial sensors located on the mobile device. In some embodiments, the one or more inertial sensors can be part of an inertial measurement unit (IMU) located on the mobile device.
[0027] In some embodiments, the motion data comprises the form of temporal data. In other words, the motion data can 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 a trained neural network of the present principles can include a navigation or tracking metric for a time period (time “window”) of input data. Typical time periods can be between 1 second and 20 seconds in duration, and can be fixed in duration. In some embodiments, the neural network can 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).
[0028] The motion data represents 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 instances in which 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 can be described as a “horizontal” plane. The horizontal plane is a particularly preferred space for calculating the navigation or tracking metric. In some embodiments, the motion data can 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 can comprise resolving the motion data (which can initially be motion data in three dimensions) into the two-dimensional plane.
[0029] As described above, in some embodiments the neurons within the hidden layer(s) of a 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. That is, 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. In some embodiments, the rotational symmetry operation can be an operation from the Special Orthogonal (2), SO(2), symmetry group (e.g. in the two-dimensional plane) and can include a rotation in the two-dimensional plane. In some embodiments, the invariant neuron activation, ^^^^, of each neuron is calculated by applying the rotation that maximizes the symmetric activation according to equation one (1), which follows:
[0030] in which,^is a constant,^^are the inputs to the neuron,^^are the weights, and ^(^) is a rotation by angle θ in the two-dimensional plane. In the embodiment of the equation one (1), the weights and inputs to each neuron are vector quantities.
[0031] When ^^^^^is maximised, we find that if ^ → ^^^, ^ → ^^^ , where ^^is any operation within the chosen symmetry group (e.g. an SO(2) rotation) and therefore ^^^^^is unchanged under a rotation of the inputs. In this way,^^^^ = ^^^^^^^^^^^^is ^^ ^^ invariant under a rotation of the inputs. As such, in some embodiments, at least one of the hidden layer(s) of the neural network is an invariant layer, where the output, ^^^^, of each neuron in the invariant layer is calculated according to equation two (2), which follows: ^^^^ = ^^^^(^^^^). (2)
[0032] The above satisfies the conditions for an invariant layer, since if ^ → ^^^, ^ →^^^, and^^^^ → ^^^^. That is, the output of an invariant layer,^^^^, 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,^^^^, of each neuron in the equivariant layer is calculated according to equation three (3), which follows: ^^^^= ^^^^(^^^^)^^, (3)
[0033] in which^is the rotational symmetry operation that maximizes^^^^^, and^is a unit vector aligned along a first dimension. The above satisfies the condition for an equivariant layer, since if ^ → ^^^, ^^^^→ ^^^^^^. That is, the output of an equivariant layer, ^^^^, is equivariant under a rotation of the inputs within the two-dimensional plane.
[0034] In the above, the unit vector maps the rotational symmetry operation, R, and the (scalar) neuron activation into the desired vector space. In general, the unit vector can 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. The unit vector is typically a unit vector aligned along the first dimension (i.e., a unit vector (1,0) aligned along the x-axis).
[0035] In some embodiments described above in which ^^^^^= ^ + ^^ ^^(^)^^, 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 some 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 can be negative. As such, the neurons of the discriminator layer(s) can advantageously cause suppression or elimination of signals (i.e., particular motion characteristics) to further enhance performance of the neural network.
[0036] In some embodiments, the invariant neuron activation of each neuron in the discriminator layer(s),^^ ^^^, can be calculated by applying the rotation that maximizes the activation according to equation four (4), which follows:
[0037] In which ^ represents a constant, ^^represents the inputs to the neuron, ^^represents a first set of weights,^(^)is a rotation by angle θ in the two-dimensional plane, and ^^ ^ represents a second set of weights. In some embodiments, the second set of weights ^^ ^ are scalar weights.
[0038] In some embodiments in which discriminator layer(s) are used, each hidden layer of the neural network can be a discriminator layer. Neurons of the discriminator layer(s) (“discriminator neurons”) can be either invariant or equivariant with respect to the inputs using the same constructions described above. That is, in some embodiments the output of an invariant discriminator neuron,^^ ^^^, can be characterized by^^ ^^^= ^^^ ^ ^^(^^^^), and the output of an equivariant discriminator neuron,
[0039] In some embodiments, each of the hidden layer(s) of the neural network can be an invariant layer. That is, in some embodiments, each neuron of the hidden layer(s) can be an invariant neuron, and the neural network can be described as an invariantneural network. In such embodiments, the output of the neural network can be invariant with respect to the device yaw, as a different yaw manifests itself as a rotation of the inputs.
[0040] In some embodiments, each of the hidden layer(s) of the neural network can be an equivariant layer. That is, in some embodiments each neuron of the hidden layer(s) can be an equivariant neuron, and the neural network can be described as an equivariant neural network. Thus, the neural network can be 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.
[0041] Alternatively, in some embodiments, the neural network can comprise both equivariant and invariant layers.
[0042] As such, by using neurons that are invariant or equivariant under a rotation of their inputs, embodiments of the present principles can utilize the rotational symmetry of the input motion data within the two-dimensional plane (i.e., 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 can 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, a model of the present principles 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 accordance with the present principles.
[0043] 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. As such, the trained neural network of the present principles 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 present principles, which can require of the order of ~ 50Mb of memory. Furthermore, training of a model of the present principles is faster than conventional approaches because there isno need for the training data to cover all possible orientations of the device (e.g., observing the device in portrait / landscape, how a device can be placed in a belt / pocket).
[0044] 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 can 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 can be a velocity or a direction of motion in the two- dimensional plane. As such, 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 can be used, for example, to constrain an inertial navigation solution.
[0045] In some embodiments, the motion data can comprise an initial rotation value of the mobile device (e.g., an initial estimate of the device yaw). Such information can be derived from a gyroscope measurement for example. Consequently, the rotation of the device can be “tracked” through the neural network relative to the initial rotation value (i.e., relative to the initial yaw).
[0046] In some embodiments, a method of the present principles can further comprise transforming the regressed metric from the device frame to a different reference frame, such as the East / North / Up frame. Such process can be used to provide an inertial navigation solution for a pedestrian, for example. Such a transformation can be performed using an orientation filter tracking the device orientation in the desired reference frame (e.g. ENU), using techniques known in the art.
[0047] In some embodiments, at least one of the hidden layer(s) of the neural network can 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 some embodiments (i.e., in which one or more invariant layers are used), the navigation or tracking metric can include a speed (e.g. of the mobile device) or a motion classification (e.g. of the body). In some embodiments (e.g. in whichone or more invariant layers are used), the neural network can predict a pose classification of the mobile device.
[0048] In some embodiments, a motion classification is indicative of a motion context of the mobile device, for example a pedestrian walking, a pedestrian jogging, a pedestrian cycling, a person in a car, a person on a train, etc. In some such embodiments, a pose classification is indicative of how the mobile device is being carried by a pedestrian, for example, in hand, in a pocket, on a foot etc.
[0049] In some embodiments, mixed models of the present principles can 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 of the present principles ca 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 can improve direction of motion predictions, and so in a standard backpropagation step in training of the present principles provides additional constraints on, and therefore also improved performance of, the equivariant compute layers and outputs.
[0050] 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.
[0051] Figure 1 depicts a flow diagram of a method for navigation and tracking using inertial navigation in accordance with at least one embodiment of the present principles. The method is being described herein with reference to Figure 2, which depicts a high- level block diagram of a system for navigation and tracking using inertial navigation in accordance with at least one embodiment of the present principles. The method of Figure 1 can begin at S101 during which motion data representing motion of the mobile device 1 is obtained. In some embodiments, the motion data can be obtained from a motion module10 of the device, which in the embodiment of Figure 2 comprises an accelerometer 12, gyroscope 14 and an orientation filter 16. In some embodiments, the motion module 10 can further comprise additional optional sensors that can be used to infer the motion / position of the device, such as magnetometer(s) and / or barometer(s).
[0052] In the embodiments of Figures 1 and 2, the motion data obtained by the accelerometer 12 and gyroscope 14 are resolved into the horizontal plane, as schematically illustrated in Figure 3. That is, 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. Any suitable orientation filter (e.g., a Madgwick filter) can 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 embodiments, the motion module 10 can comprise an optional magnetometer in addition to the accelerometer and gyroscope. Although the presence of a magnetometer can assist in the initial attitude estimation of the device – for example using a magnetic angular rate and gravity (“MARG”) filter. In the embodiment of Figure 2, 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.
[0053] In the method of Figure 1, at S102, the motion data, resolved into the 2D horizontal plane 50, is 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 utilizes 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.
[0054] Figure 4 depicts a schematic representation of a relationship between a device frame of reference and a pedestrian navigation frame of reference in accordance with an alternate embodiment of the present principles. In Figure 4, the 2D device frame (defined by the x and y axes) with respect to the 2D ENU frame is displayed. In Figure 4, 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. In the embodiment of Figure 4, the pedestrian motion in ENU is largely unchanged by variations in the orientation of the device. As will be further described below, embodiments of the present principles provide a neural network that is agnostic to such rotations of the device 1. That is, the neural network uses a plurality of symmetric neurons such that there is no 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 the operation. As such, the model provides a relatively faster regression of the velocity in the horizontal plane, as well as reduced memory requirements as compared to “full” models that interpret changes in yaw of the device from the input motion data.
[0055] Referring back to Figure 1, at S103, the trained neural network 22 is used to calculate a navigation or tracking metric. That is, in some embodiments the navigation or tracking metric can be a metric of the device or of the body, dependent on the training data used. In some 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 can be output by the trained model, dependent on the training data used and the configuration of the neural network. Other example metrics that can be derived by the trained neural network in accordance with embodiments of the present principlesinclude, but are not limited to, a speed, a direction of motion, a motion classification, and a pose classification of the mobile device.
[0056] As schematically depicted in Figure 2, in some embodiments the output from the trained neural network can be input into Pedestrian Motion Unit 4, which is configured to output a navigation or tracking solution of the Pedestrian. In some embodiments, the direct output from the trained NN 22 can be the final output from the Pedestrian Motion Unit. For example, an estimate of the device speed output from the NN 22 can be the final output from the Pedestrian Motion Unit. Alternatively or in addition, in some embodiments the output from the NN 22 can 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).
[0057] For example, in the embodiment described above in which the output of the trained NN 22 is the 2D velocity of the mobile device within the device frame, the 2D velocity can 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) can be used to constrain a navigation solution calculated by the Pedestrian Motion Unit 24.
[0058] In another exemplary embodiments, the device velocity can 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. In such embodiments, the output of the NN 22 and the device orientation estimate from the Pedestrian Motion Unit 24 can be input into a Kalman filter to generate the final pedestrian velocity in the ENU frame, using techniques know in the art. In another exemplary embodiment, the Pedestrian Motion Unit 24 can calculate the yaw of the device 1 in the ENU frame by comparing the predicted velocity in the device frame from the neural network (NN) 22 with a velocity obtained using a GNSS unit 50 of the device.
[0059] Figure 5 depicts a schematic representation of a configuration of a neural network in accordance with at least one embodiment of the present principles. That is, Figure 5 schematically illustrates the configuration of a trained neural network (NN) 22, according to an embodiment of the present principles, for determining a pedestrian velocity. The NN of Figure 5 illustratively comprises a plurality of neurons (“nodes”) 90, arranged generally as an input layer (I), an output layer (O), and a plurality of hidden layers (H1, H2, …, Hn) stacked between the input layer and the output layer (O). In the embodiment of Figure 5, 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 H1 and the nodes of layer H2. For clarity, only some of the connections between the neurons are illustrated in Figure 5. In the embodiment of Figure 5, 6he layers of the neural network are fully connected layers.
[0060] In the embodiment of Figure 5, the inputs to the neural network are time-series components 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). In the embodiment of Figure 5, the inputs are arranged in 2D pairs; illustratively accelerometer measurements in the device frame (Acc x / y) and gyroscope measurements in the device frame (Gyr x / y). The inputs being in pairs make clear the space that the rotations of the symmetric neurons 90 (discussed below) act on. In the embodiment of Figure 5, the accelerometer and gyroscope measurements are vector quantities and thus the inputs to the NN 22 are a time series of vectors. A time window for the input data (e.g., for dense / convolutional networks) for which a 2D velocity can be inferred by the neural network can, in some embodiments, be between 1 and 20 steps (e.g., between approximately 1 second and approximately 20 seconds) for pedestrian motion.
[0061] In some embodiments, additional or alternative input entries (e.g., dot products or cross products of accelerometer and gyroscope measurements or derivatives thereof) can be used, dependent on a motion context or pose. For example, in instances in which both gyroscope and accelerometer measurements exhibit useful structure (i.e., arm swinging) then extracting correlates and other filters that take them both as an input can have great utility. For example, during an arm swing the horizontal acceleration has peaksand troughs at the front and back of the swing, at the same times that the gyroscope measurements are changing the fastest. Such information 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 can also assist in determining the direction of travel of the user.
[0062] In the embodiment of Figure 5, 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 can each take a set of inputs, ^, and use them to compute an output, ^. ^ can be defined as a nonlinear transformation of the activation ^, according to equation five (5), which follows: ^ = ^^^^(^) (5)
[0063] in which ^ can be defined according to equation six (6), which follows: ^ = ^ +∑^ ^ ^^ ^^^(6)
[0064] In which ^ represents the inputs to the neuron (typically vector inputs), ^ represents the weights (typically vector weights), and ^ is a bias. In some embodiments, the nonlinear function,^^^^, can be a sigmoid, rectified linear unit (ReLu), and / or other suitable nonlinear function.
[0065] Embodiments of the present principles implement a modified neuron in which the summation term in Equation (6) is an SO(2) symmetry operation between two vector sets. An invariant neuron activation, ^^^^, can be achieved by finding the rotation, ^, that maximizes the symmetric neuron activation, ^^^^^, in which ^(^) is a rotation by angle θ in the horizontal plane 50 and can be represented according to equation seven (7), which follows:
[0066] in which^^^^can be defined according to equation eight (8), which follows:
[0067] The above ensures that the activations of the neurons are invariant with respect to a rotation of the inputs, since under the transformation ^^^^^^, we find ^ → ^^^,in which ^^is any operation in the SO(2) symmetry group, and ^^^^^remains unchanged (i.e., invariant). The neural network of the embodiment of Figure 5 is a fully equivariant neural network, in which all of the neurons in the hidden layers are equivariant. In order to achieve this condition, the output of each neuron is given according to equation nine (9), which follows:
[0068] in which ^ represents the rotation that maximizes the symmetric neuron activation, ^^^^^, and ^ represents 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. The above can be used as an output, since under a rotation of the inputs ^ → ^^^, we find ^^^^→ ^^^^^^, 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.
[0069] As previously discussed, the neurons of the network can implement a modified activation term that finds the rotation, ^, that maximizes the SO(2) symmetric neuron activation function,such that ^^^^^remains invariant under a rotation of the inputs.
[0070] In some embodiments, complex numbers can provide a natural way to decompose the SO(2) space. For example, if Equation (9) was composed using complex numbers, ^ becomes ^, a complex number with magnitude 1. In such embodiments, thecommutativity of complex number multiplication can be used to obtain equation ten (10), which follows:
[0071] which can be maximized according to equation eleven (11), which follows: (11)
[0072] In some embodiments, training of the network can be 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 can be 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 embodiments (e.g., visual odometry), the ground truth can be already provided in the device frame as the camera can be co- mounted with the device. In other embodiments (e.g., GNSS measurements), the ground truth can be 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 is projected onto the horizontal plane.
[0073] In some embodiments, the training data set can comprise data covering a plurality of poses of the device (i.e., substantially all possibilities of the roll, pitch and yaw of the device), and the impact on the horizontal velocity of the device. In such embodiments, during training of the model, the maximisation of ^^^^^can be performed at each neuron during both the forward and backward passes, with the weights being unconstrained.
[0074] Figures 6(a) to 6(g) depict plots showing the inputs and the outputs of a symmetric neural network of the present principles, plotted in an East-North-UP (ENU)frames for convenience. In the embodiment of Figures 6(a) to 6(g), the IMU data was obtained from a device worn on the wrist of a pedestrian having an IMU frequency at 50Hz down sampled from 400Hz. In the embodiment of Figures 6(a) to 6(g), the motion context of the pedestrian was walking, with a cadence of approximately 120 steps per minute. The inputs to the model of the present principles are measurements from the motion unit of the device, illustratively accelerometer readings in m / s2with the gravity contribution removed. In the embodiment of Figures 6(a) to 6(g), gyroscope measurements were used to project the motion data onto the 2D plane, although in these embodiments the measurements were not used as direct inputs to the neural network model.
[0075] The outputs shown in Figures 6(a) to 6(c) are the device velocity with respect to the ground (depicted as vel pred - the second-starting of the lower lines on graphs 6(a) to 6(c)), which is compared to velocity measured by an accompanying GNSS device (depicted as vel true – the first-starting of the lower lines on graphs 6(a) to 6(c)) in the orthogonal directions of North, East, and Up, respectively. In Figures 6(a) to 6(c), a vel loss sqrt is also depicted (the top, most wavy line on graphs 6(a) to 6(c)).
[0076] The outputs shown in Figures 6(d) to 6(f) are the device linear acceleration as predicted (depicted as IMU pred - the second-starting and most wavy line on graphs 6(d) to 6(f)), which is compared to acceleration measured by an accompanying IMU device (depicted as IMU true – the first-starting and similarly most wavy line on graphs 6(d) to 6(f)) in the orthogonal directions of North, East, and Up, respectively. In Figures 6(d) to 6(f), an IMU loss sqrt is also depicted (the center, least wavy line on graphs 6(d) to 6(f)).
[0077] Figure 6(g) depicts the output of speed regularization. In Figure 6(g) a predicted speed regularizer / regularization is depicted as speed pred - the upper-most wavy line on graph 6(g), which is compared to speed regularizer / regularization target, depicted as speed reg_target - the upper-most flatter line on graph 6(g). In Figure 6(g), a speed regularizer / regularization loss is also depicted (depicted as speed reg_loss and the lower- most line on graph 6(g)).
[0078] In Figures 6(a) to 6(g), during a first, time window (depicted at T1), 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)) andturns 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 IMU 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).
[0079] In the embodiment of Figures 6(a) to 6(g), the symmetric neural network is a fully equivariant neural network. Alternatively or in addition, some embodiments are also capable of handling invariant models. In such embodiments, at least one of the layers of a neural network of the present principles is an invariant layer. In such embodiments, the output of each neuron, ^, can be defined according to equation twelve (12), which follows: ^^^^= ^^^^(^^^^). (12)
[0080] Due to the invariance of ^^^^, we find that under a rotation of the inputs ^ → ^^^, ^^^^^^^^, satisfying the condition for an invariant layer. Invariant layers can 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.
[0081] In the embodiments described above, the signals on the input to a neuron only contributed positively to the output. That is, if the input signal increased in magnitude, then the output was constrained to also increase in magnitude, since the activation function has a positive gradient. To improve the performance of a neural network of the present principles, a modified neuron, termed a “discriminator neuron” is considered, in which the response of the outputs with respect to the inputs can be negative. Negative responses can be useful in capturing relationships in which certain input features have an inhibitory effect on the output. For example, a particular feature specific to walking can cause a reduction of the speed when compared to running and a negative response will be useful to capture this relationship. Negative responses enable a neuron to assign higher importance to certain input features while actively down-weighting others. As such, the neuron's ability to emphasize critical features and suppress irrelevant ones is improved.
[0082] The use of discriminator neurons in embodiments of a neural network (model) of the present principles also advantageously reduce bias towards positive features that can 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 can 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.
[0083] In some embodiments, the ability to provide a negative response can be achieved by using the activation that can be characterized according to equation thirteen (13) as follows:
[0084] in which ^ is a constant, ^^represents the inputs to the neuron, ^^represents a first set of weights,^(^)is a rotation by angle θ in the two-dimensional plane, and^^ ^ represents a second set of weights. Thus, ^^^ ^^^differs from ^^^^^through the addition of a second set of weights ^^ ^ which are typically scalar weights.
[0085] In some embodiments, the invariant neuron activation of a discriminator neuron, , can be achieved by finding the rotation, R, that maximizes. Thus, a discriminator neuron can be invariant or equivariant with respect to rotations of the inputs in the same manner as described above. That is, the output of an invariant discriminator neuron, ^ ^ ^^^, can be given bythe output of an equivariant discriminator neuron can be characterized according to equation fourteen (14), as follows:
[0086] In some embodiments in which discriminator neurons are used, each neuron in the neural network can be a discriminator neuron using the^^^ ^^^construction described above. However, in some embodiments only a subset of the hidden layers of the neural network will be discriminator layers.
[0087] In some embodiments, a computer implemented method for performing navigation and tracking based on data from inertial sensors includes 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, the 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 a respective neuron activation that maximizes the respective neuron activation, wherein the neuron activation is invariant with respect to a rotation of the set of inputs within the two-dimensional plane.
[0088] In some 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 accordance with embodiments of the present principles, 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 reduces training time.
[0089] In some embodiments, a computer implemented method includes 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. In some embodiments the trained neural networkcomprises 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. In 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 maximizes the respective neuron activation, wherein the neuron activation is invariant with respect to a rotation of the set of inputs within the two- dimensional plane.
[0090] In some embodiments, in the method motion data comprises measurements from which position and / or movement is inferred.
[0091] In some embodiments, in the method the motion data is obtained from one or more inertial sensors located on the mobile device.
[0092] In some embodiments, in the method the two-dimensional plane is orthogonal to the direction of gravity.
[0093] In some embodiments, in the method the motion data is in the form of temporal data.
[0094] In some embodiments, in the method the rotational symmetry operation is an operation from the Special Orthogonal (2) symmetry group.
[0095] In some embodiments, in the method the rotational symmetry operation is a rotation in the two-dimensional plane.
[0096] In some embodiments, in the method the invariant neuron activation of each neuron is calculated by applying a rotation that maximizes the symmetry activation.
[0097] In some embodiments, in the method at least one of the hidden layer(s) of the neural network is an invariant layer, and wherein the output of each neuron in the invariant layer is calculated according to equation ^^^^= ^^^^(^^^^).
[0098] In some embodiments, in the method, at least one of the hidden layer(s) of the neural network is an equivariant layer, and wherein the output of each neuron in the equivariant layer is calculated according to equation ^^^^= ^^^^(^^^^)^^, wherein ^ is the rotational symmetry operation that maximizes ^^^^^, and ^ is a unit vector aligned along a first dimension.
[0099] In some embodiments, in the method at least one of the hidden layer(s) of the neural network is a discriminator layer and 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 is negative. [000100] In some embodiments, in the method the invariant neuron activation of each neuron in the discriminator layer(s) is calculated by applying a rotation that maximizes the activation. [000101] In some embodiments, in the method each of the hidden layer(s) of the neural network is an equivariant layer and wherein the navigation or tracking metric is a velocity or a direction of motion in the two-dimensional plane. [000102] In some embodiments, in the method the navigation or tracking metric is a speed or a motion classification. [000103] In some embodiments, in the method 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 to the respective neuron activation that maximizes a 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.[000104] In some 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. [000105] In some embodiments, 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 cover all possible orientations of the mobile device. [000106] In some embodiments, a method of training a neural network that is configured to calculate a navigation or tracking metric, the neural network including 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 maximizes 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, where the method includes 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 maximizes the respective neuron activation during the training of the network. [000107] By training the neural network using the training data, the neural network can 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 can represent the motion of the mobile device or of the body in the two-dimensional plane. As describedabove, 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. [000108] In some embodiments, in the method the weights are unconstrained during training. [000109] In some embodiments, a non-transitory computer readable medium has stored thereon at least one program, the at least one program including instructions which, when executed by a processor, cause the processor to perform a method including obtaining motion data representing motion of a mobile device in a two-dimensional plane, where 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. The trained neural network can include 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 maximizes the respective neuron activation, wherein the neuron activation is invariant with respect to a rotation of the set of inputs within the two-dimensional plane. [000110] In some embodiments, a system includes 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. The trained neural network includes 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, the 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 maximizes 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. [000111] In some embodiments, in the system the motion module includes one or more inertial sensors located on the mobile device. The one or more inertial sensors can include at least one (e.g. three-axis) accelerometer and at least one (e.g. three-axis) gyroscope and can further include an inertial measurement unit. [000112] In some embodiments, in the system the system is implemented on a single mobile device. Alternatively or in addition, various modules in a system of the present principles can be provided separately so that the system is distributed. For example, calculations performed by the neural network of the present principles can be implemented by processors in a network in the interest of efficiency. [000113] In some embodiments, in the system the mobile device is a mobile communications device or a wearable device. That is, in some embodiments, the mobile device can 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). [000114] In some embodiments, in the system the body is a pedestrian. [000115] Those skilled in the art will also appreciate that, while various items are illustrated as being stored in memory or on storage while being used, these items or portions of them can be transferred between memory and other storage devices for purposes of memory management and data integrity. Alternatively, in other embodiments some or all of the software components can execute in memory on another device and communicate with the illustrated computer system via inter-computer communication. Some or all of the system components or data structures can also be stored (e.g., as instructions or structured data) on a computer-accessible medium or a portable article to be read by an appropriate drive, various examples of which are described above. In some embodiments, instructions stored on a computer-accessible medium separate from a computing device on which embodiments of the present principles can be implementedcan be transmitted to the computing device via transmission media or signals such as electrical, electromagnetic, or digital signals, conveyed via a communication medium such as a network and / or a wireless link. Various embodiments can further include receiving, sending or storing instructions and / or data implemented in accordance with the foregoing description upon a computer-accessible medium or via a communication medium. In general, a computer-accessible medium can include a storage medium or memory medium such as magnetic or optical media, e.g., disk or DVD / CD-ROM, volatile or non- volatile media such as RAM (e.g., SDRAM, DDR, RDRAM, SRAM, and the like), ROM, and the like. [000116] The methods and processes described herein may be implemented in software, hardware, or a combination thereof, in different embodiments. In addition, the order of methods can be changed, and various elements can be added, reordered, combined, omitted or otherwise modified. All examples described herein are presented in a non- limiting manner. Various modifications and changes can be made as would be obvious to a person skilled in the art having benefit of this disclosure. Realizations in accordance with embodiments have been described in the context of particular embodiments. These embodiments are meant to be illustrative and not limiting. Many variations, modifications, additions, and improvements are possible. Accordingly, plural instances can be provided for components described herein as a single instance. Boundaries between various components, operations and data stores are somewhat arbitrary, and particular operations are illustrated in the context of specific illustrative configurations. Other allocations of functionality are envisioned and can fall within the scope of claims that follow. Structures and functionality presented as discrete components in the example configurations can be implemented as a combined structure or component. These and other variations, modifications, additions, and improvements can fall within the scope of embodiments as defined in the claims that follow. [000117] In the foregoing description, numerous specific details, examples, and scenarios are set forth in order to provide a more thorough understanding of the present disclosure. It will be appreciated, however, that embodiments of the disclosure can be practiced without such specific details. Further, such examples and scenarios are provided for illustration, and are not intended to limit the disclosure in any way. Those ofordinary skill in the art, with the included descriptions, should be able to implement appropriate functionality without undue experimentation. [000118] References in the specification to “an embodiment,” etc., indicate that the embodiment described can include a particular feature, structure, or characteristic, but every embodiment may not necessarily include the particular feature, structure, or characteristic. Such phrases are not necessarily referring to the same embodiment. Further, when a particular feature, structure, or characteristic is described in connection with an embodiment, it is believed to be within the knowledge of one skilled in the art to affect such feature, structure, or characteristic in connection with other embodiments whether or not explicitly indicated. [000119] Embodiments in accordance with the disclosure can be implemented in hardware, firmware, software, or any combination thereof. Embodiments can also be implemented as instructions stored using one or more machine-readable media, which may be read and executed by one or more processors. A machine-readable medium can include any mechanism for storing or transmitting information in a form readable by a machine (e.g., a computing device or a “virtual machine” running on one or more computing devices). For example, a machine-readable medium can include any suitable form of volatile or non-volatile memory. [000120] In addition, the various operations, processes, and methods disclosed herein can be embodied in a machine-readable medium and / or a machine accessible medium / storage device compatible with a data processing system (e.g., a computer system), and can be performed in any order (e.g., including using means for achieving the various operations). Accordingly, the specification and drawings are to be regarded in an illustrative rather than a restrictive sense. In some embodiments, the machine- readable medium can be a non-transitory form of machine-readable medium / storage device. [000121] Modules, data structures, and the like defined herein are defined as such for ease of discussion and are not intended to imply that any specific implementation details are required. For example, any of the described modules and / or data structures can becombined or divided into sub-modules, sub-processes or other units of computer code or data as can be required by a particular design or implementation. [000122] In the drawings, specific arrangements or orderings of schematic elements can be shown for ease of description. However, the specific ordering or arrangement of such elements is not meant to imply that a particular order or sequence of processing, or separation of processes, is required in all embodiments. In general, schematic elements used to represent instruction blocks or modules can be implemented using any suitable form of machine-readable instruction, and each such instruction can be implemented using any suitable programming language, library, application-programming interface (API), and / or other software development tools or frameworks. Similarly, schematic elements used to represent data or information can be implemented using any suitable electronic arrangement or data structure. Further, some connections, relationships or associations between elements can be simplified or not shown in the drawings so as not to obscure the disclosure. [000123] This disclosure is to be considered as exemplary and not restrictive in character, and all changes and modifications that come within the guidelines of the disclosure are desired to be protected.
Claims
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; 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, the neuron activation comprising a set of inputs and weights associated with a respective neuron; and each neuron is configured to apply a rotational symmetry operation to a respective neuron activation that maximizes the respective neuron activation, wherein the respective 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 comprises measurements from which position and / or movement is inferred. 3 The method of claim 1 or claim 2, wherein the motion data is obtained from one or more inertial sensors located on the mobile device. 4 The method of claim 1, wherein the two-dimensional plane is orthogonal to the direction of gravity. 5 The method of claim 1, wherein the motion data is in the form of temporal data. 6 The method of claim 1, wherein the rotational symmetry operation is an operation from the Special Orthogonal (2) symmetry group.
7. The method of claim 1, wherein the rotational symmetry operation is a rotation in the two-dimensional plane.
8. The method of claim 1, wherein the invariant, respective neuron activation of each neuron is calculated by applying a rotation that maximizes the rotational symmetry activation. 9 The method of claim 8, wherein at least one of the one or more hidden layer(s) of the neural network is an invariant layer, and wherein the output of each neuron in the invariant layer is calculated according to equation ^^^^= ^^^^(^^^^). 10 The method of claim 8 or claim 9, wherein at least one of the one or more hidden layer(s) of the neural network is an equivariant layer, and wherein the output of each neuron in the equivariant layer is calculated according to equation ^^^^= ^^^^(^^^^)^^, wherein ^ is the rotational symmetry operation that maximizes ^^^^^, and ^ is a unit vector aligned along a first dimension. 11 The method of claim 1, wherein at least one of the one or more hidden layer(s) of the neural network is a discriminator layer and wherein the invariant, respective 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 is negative. 12 The method of claim 11, wherein the invariant, respective neuron activation of each neuron in the discriminator layer(s) is calculated by applying a rotation that maximizes the activation. 13 The method of claim 1, wherein each of the one or more hidden layer(s) of the neural network is an equivariant layer and wherein the navigation or tracking metric is a velocity or a direction of motion in the two-dimensional plane. 14 The method of claim 1, wherein the navigation or tracking metric is a speed or a motion classification.
15. The method of claim 1, 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; and training 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 maximizes a respective neuron activation during the training of the network.
16. 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 one or more hidden layer(s): each neuron is configured to perform a non-linear activation function on a neuron activation to generate a neuron output, the neuron activation comprising a set of inputs and weights associated with a respective neuron; and each neuron is configured to apply a rotational symmetry operation to a respective neuron activation that maximizes the respective neuron activation, wherein the respective neuron activation is invariant with respect to a rotation of the set of inputs within a 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.
17. The method of claim 16, wherein the weights are unconstrained during training.
18. A non-transitory computer readable medium having stored thereon at least one program, the at least one program including instructions which, when executed by a processor, cause the processor to perform a 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, the neuron activation comprising a set of inputs and weights associated with a respective neuron; and each neuron is configured to apply a rotational symmetry operation to a respective neuron activation that maximizes the respective neuron activation, wherein the respective neuron activation is invariant with respect to a rotation of the set of inputs within the two- dimensional plane.
19. 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, the neuron activation comprising a set of inputs and weights associated with a respective neuron; and each neuron is configured to apply a rotational symmetry operation to a respective neuron activation that maximizes the respective neuron activation, wherein the respective neuron activation is invariant with respect to a rotation of the set of inputs within the two- dimensional plane.
20. The system of claim 19, wherein the motion module comprises one or more inertial sensors located on the mobile device.
21. The system of claim 19 or claim 20, wherein the system is implemented on a single mobile device.
22. The system of claim 21, wherein the mobile device is a mobile communications device or a wearable device.
23. The system of claim 19, wherein the body is a pedestrian.