METHOD FOR CREATING A MODEL FOR POSITIONING, AND A METHOD FOR POSITIONING
20230075165 · 2023-03-09
Assignee
Inventors
Cpc classification
G01S5/0264
PHYSICS
G06F18/214
PHYSICS
G01S5/0244
PHYSICS
International classification
Abstract
A method (100) for creating a model for positioning, the method (100) comprising: receiving (S150) a training dataset (1) comprising samples (10) of an estimation labeled type, each sample (10) of the estimation labeled type being associated with a measurement position, each sample (10) of the estimation labeled type comprising sensor data (12), measured at the measurement position associated with the sample (10), the sensor data (12) being characteristic of the measurement position associated with the sample (10); an estimated measurement position (14), being an estimate of the measurement position associated with the sample (10); an estimated accuracy (16), being an estimate of an accuracy of the estimated measurement position (14); training (S160) a machine learning model (20) to convert sensor data (12) to a position, wherein the training is based on the samples (10) of the estimation labeled type in the training dataset (1), whereby the model for positioning is created.
Claims
1. A method for creating a machine learning model for positioning within an environment, the method comprising: receiving a training dataset comprising samples of an estimation labeled type, each sample of the estimation labeled type being associated with a measurement position in the environment, each sample of the estimation labeled type comprising: first sensor data measured at the measurement position associated with the sample, the first sensor data being characteristic of the measurement position associated with the sample; an estimated measurement position, being an estimate of the measurement position associated with the sample; and an estimated accuracy being-an estimate of an accuracy of the estimated measurement position; and training the machine learning model to convert the first sensor data to a position in the environment, wherein the training is based on the samples of the estimation labeled type in the training dataset, whereby the machine learning model for positioning within the environment is created.
2. The method of claim 1, wherein the first sensor data of one or more samples comprises distance dependent data, the distance dependent data comprising an indication of a distance between the measurement position associated with the one or more samples and a radio transmitter.
3. The method of claim 1, wherein the first sensor data comprises received signal strength (RSS) data from one or more radio transmitters in the environment.
4. The method of claim 1, further comprising setting the estimated measurement position and the estimated accuracy of a sample of the estimation labeled type in the training dataset by: receiving a model of estimated radio transmitter positions in the environment; and calculating the estimated measurement position and the estimated accuracy to be set for the sample of the estimation labeled type based on distance dependent measurements to the transmitters and the model of estimated radio transmitter positions.
5. The method of claim 4, further comprising generating the model of estimated radio transmitter positions by: receiving radio transmitter modelling samples, each radio transmitter modelling sample being associated with a measurement position in the environment or in the vicinity of the environment, each radio transmitter modelling sample comprising: distance dependent data, the distance dependent data measured at the measurement position associated with the radio transmitter modelling sample, the distance dependent data comprising an indication of a distance between the measurement position of the radio transmitter modelling sample and a radio transmitter; forming a candidate model of estimated radio transmitter positions and the estimated measurement positions of the radio transmitter modelling samples based on the received radio transmitter modelling samples and a plurality of defined positions for samples or for radio transmitters; iteratively reducing a sum of residuals for the candidate model, wherein one or more residuals are based on, for one or more samples of the received radio transmitter modelling samples, a difference between: an estimated distance between the measurement position of the one or more samples and a radio transmitter as represented by the model, and a measured distance between the measurement position of the one or more samples and the radio transmitter as represented by the distance dependent data of the one or more samples, for generating a model of estimated radio transmitter positions.
6. The method of claim 1, further comprising setting the estimated measurement position and the estimated accuracy of a sample of the estimation labeled type in the training dataset by: receiving a known position and relative movement data, the relative movement data indicating movement between the known position and the measurement position associated with the sample of the estimation labeled type; and calculating the estimated measurement position and the estimated accuracy to be set for the sample of the estimation labeled type based on the known position and the relative movement data.
7. The method of claim 1, wherein the training of the machine learning model is configured to modify the machine learning model more strongly for samples of the estimation labeled type that have high estimated accuracy than for samples of the estimation labeled type that have low estimated accuracy.
8. The method of claim 7, wherein the training of the machine learning model comprises: calculating, by a loss function, a loss, the loss being based on, for one or more samples of the estimation labeled type in the training dataset, a representation of a difference between: the position converted by the machine learning model from the first sensor data of the one or more samples; and the estimated measurement position of the one or more samples; and modifying the machine learning model based on the loss; wherein the loss function is configured to weigh the impact of the representation of the difference on the loss based on the estimated accuracy of the one or more samples, whereby the training modifies the machine learning model more strongly for a high estimated accuracy than for a low estimated accuracy.
9. The method of claim 1, further comprising: receiving a candidate training dataset comprising samples of the estimation labeled type; and selecting samples from the candidate training dataset to be included in the training dataset, wherein, in one or more sub-environments of the environment, a sample with a high estimated accuracy is selected to be included in the training dataset and a sample with a low estimated accuracy is rejected from being included in the training dataset.
10. The method of claim 1, further comprising: receiving a candidate training dataset comprising samples of the estimation labeled type; comparing estimated accuracy of samples of the candidate training dataset to a threshold accuracy; and rejecting samples from the candidate training dataset having worse estimated accuracy than the threshold accuracy from being included in the training dataset, wherein the threshold accuracy has a value between 0 and 30 meters.
11. The method of claim 1, wherein the environment for the positioning is a building and the estimated measurement position includes a height or a floor indicator.
12. The method of claim 1, the method further comprising: augmenting one or more samples of the estimation labeled type, wherein the augmenting comprises: introducing noise to the first sensor data of the one or more samples; removing a part of the first sensor data of the one or more samples; or introducing an RSS offset to the first sensor data of the one or more samples; and including one or more augmented samples in the training dataset before training the machine learning model.
13. The method of claim 1, wherein the training dataset further comprises samples of an unlabeled type, each sample of the unlabeled type being associated with an unknown measurement position in the environment, each sample of the unlabeled type comprising: second sensor data, measured at the unknown measurement position associated with the sample, the second sensor data being characteristic of the unknown measurement position associated with the sample; wherein the training of the machine learning model is further based on the second sensor data of samples of the unlabeled type in the training dataset.
14. A method for positioning a device within an environment, the method comprising: acquiring third sensor data, measured at the position of the device, the third sensor data being characteristic of the position of the device; accessing a model for positioning within the environment, wherein the model has been created according to the method of claim 1; and determining the position of the device based on the acquired third sensor data and the accessed model.
15. The method according to claim 14, the method comprising determining a plurality of positions, of the device, along a track, wherein the third sensor data is acquired for each of the positions along the track, the method further comprising: determining a first estimate for each position along the track based on the acquired third sensor data for each position and the accessed model; determining estimated relative positions of the positions along the track based on relative movement data, the relative movement data indicating movement between at least two positions along the track; and improving the first estimate for each position along the track using the estimated relative positions.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0129] The above, as well as additional objects, features and advantages of the present inventive concept, will be better understood through the following illustrative and non-limiting detailed description, with reference to the appended drawings. In the drawings like reference numerals will be used for like elements unless stated otherwise.
[0130]
[0131]
[0132]
[0133]
[0134]
[0135]
[0136]
[0137]
[0138]
[0139]
[0140]
DETAILED DESCRIPTION
[0141] In cooperation with attached drawings, the technical contents and detailed description of the present invention are described hereinafter according to preferable embodiments, being not used to limit the claimed scope. This invention may be embodied in many different forms and should not be construed as limited to the embodiments set forth herein; rather, these embodiments are provided for thoroughness and completeness, and fully convey the scope of the invention to the skilled person.
[0142] As an example of a possible implementation of our invention, we here describe an artificial neural network based positioning solution being trained by estimated positions in a building with corresponding estimated accuracies and received signal strength (RSS) as sensor values. It should be clear that there are a number of different implementation alternatives; different neural network architectures, many different sensor types that can be combined in multiple ways, many positioning estimation techniques and many ways of estimating positioning accuracy that are all covered in the intention and scope of this patent.
[0143] Assume a delimited 3D environment (or 2D in the case of single floor/ground environments), where the first two dimensions correspond to latitude and longitude, and the third dimension is the altitude or floor. The environment here is assumed to be mostly indoor, but could be outdoor or a combination of the two. From this environment, sensor data 12, in this example received signal strength (RSS) data from radio receivers, are measured by one or multiple devices at different locations within the environment. The signal, whose signal strength is measured, may for example originate from Wi-Fi and Bluetooth beacons, iBeacons, etc. By use of these measurements alone, or in combination with other sensor data such as inertial sensors, the measurement positions may be estimated.
[0144]
[0145] The illustrated dataset is divided into subsets for training and validation and/or testing, i.e. into a training dataset 1, a validation dataset 2 and/or a test dataset 3. The training dataset 1 is used to train a machine learning model 20, whereby the model for positioning within the environment is created. In the following the machine learning model 20 will be exemplified by a neural network 20. The validation dataset 2 can be used to determine when the model is of sufficient quality, and tune parameters of the neural network 20, and the test dataset 3 can be used to get a measure of the final performance of the model. When training a neural network 20 and using the validation dataset 2 to determine when to terminate the training, the evaluation can for consistency use the corresponding estimated accuracies 16 as weights as well. Another approach may be to choose a few samples 10 with high estimated accuracy 16 to use for evaluation. While the model may be created using only the training dataset 1, a validation dataset 2 and/or a test dataset 3 may be important for evaluating the resulting model and training progress.
[0146]
[0147] In the following, the steps of receiving S150 the training dataset 10 and training S160 the neural network 20 will be described. The other optional steps will be described later.
[0148] The received S150 training dataset 10 may be a training dataset 10 as described in conjunction with
[0149] The neural network 20 is trained S160 to convert sensor data 12 to a position in the environment, wherein the training S160 is based on the samples 10 of the estimation labeled type in the training dataset 1. There are multiple architectures possible for use in this neural network 20, for example autoencoders, long short-term memory (LSTM)-units, or multi-layer perceptrons.
[0150] The training S160 of the neural network 20 may be configured to modify the neural network 20 more strongly for samples 10 of the estimation labeled type that have high estimated accuracy (accuracy figure in meters is low) 16 than for samples 10 of the estimation labeled type that have low estimated accuracy 16 (accuracy figure in meters is high). Accordingly, the neural network 20 may be trained using batches of R as input, wherein the loss function in the training S160 is a measure of the positioning error, weighted by the accuracy. This means that measurements with a high accuracy may have a higher impact on the model training than low-accuracy measurements. Accordingly, the training S160 may e.g. comprise, as illustrated in
[0151] One possible neural network architecture that deals with the situation of having continuous estimates of latitude [x] and longitude [y], but discrete values for the altitude, i.e. floor [f], is presented here. This network consists of two multi-layer perceptrons (MLPs) that are trained simultaneously. Let the positioning MLP be called E.sub.p, the floor classification MLP E.sub.f. An input matrix R of sensor data 12 to the neural network 20 results in two outputs
E(R)=[{circumflex over (x)},ŷ] and E.sub.f(R)={circumflex over (f)},
where [{circumflex over (x)},ŷ,{circumflex over (f)}] is the 3D position output of the neural network 20. The loss function used to train the neural network 20 for one sample 10 may then be given by
L({circumflex over (x)},ŷ,{circumflex over (f)};x,y,f)=a.sub.x(x−{circumflex over (x)}).sup.2+a.sub.y(y−ŷ).sup.2−a.sub.fC log(f|{circumflex over (f)})),
where C is a constant, a=[a.sub.x, a.sub.y, a.sub.f] is the estimated accuracy 16 of this estimated measurement position 14 [x, y, f]. The estimated accuracy may herein be the inverse of the standard deviation, or variance, of errors of estimated measurement positions 14.
P(f|{circumflex over (f)})=σ(q.sub.0−{circumflex over (f)}), if f=0,
σ(q.sub.k−{circumflex over (f)})−σ(q.sub.k-1−{circumflex over (f)}), if 0<f<n.sub.f,
1−σ(q.sub.n.sub.
[0152] where n.sub.f is the number of floors, a is the sigmoid function, and q.sub.k=k/n.sub.f. The neural network 20 may be trained using common neural network techniques such as augmentations, dropout, batch-normalization, etc. A few possible augmentations useful for measurements of RSS are dropping beacons, adding an offset, and adding noise to the measurements. This can be likened to introducing additional data into the dataset, without collecting any new measurements, and it therefore helps the network to generalize better to new measurements.
[0153] If the altitude is a continuous value [z] the loss function can instead be for example
L({circumflex over (x)},ŷ,{circumflex over (z)};x,y,z)=a.sub.x(x−{circumflex over (x)}).sup.2+a.sub.y(y−ŷ).sup.2+a.sub.z(z−{circumflex over (z)}).sup.2,
and if the accuracy is estimated for the complete position estimate, rather than for each component separately, the weighting of the loss function may be
L({circumflex over (x)},ŷ,{circumflex over (z)};x,y,z)=a((x−{circumflex over (x)}).sup.2+(y−ŷ).sup.2+(z−{circumflex over (z)}).sup.2),
where a is a measure of the accuracy for all components of the position estimate.
[0154] In the above examples (x−{circumflex over (x)}) represents a difference (in the one of the three dimensions) between the position ({circumflex over (x)} for said one dimension) converted by the neural network 20 from sensor data 12 (in this case R); and the estimated measurement position (x for said one dimension). When the loss is calculated S162 in the above examples the loss function is configured to weigh the impact of said difference on the loss based on the estimated accuracy 16. The weighing is herein done by multiplying said difference with the corresponding estimated accuracy 16. In the above examples the loss is calculated for one sample 10 alone. It should be understood that the training S160 may be performed as batch training, wherein a number of samples may be processed in one batch before the neural network 20 is modified S164, i.e. before the neural network 20 is updated. The loss may be calculated S162 for the entire batch, e.g. by summing the losses associated with the individual samples 10.
[0155] After calculating S162 the loss, the neural network 20 may be modified S164. Weights and/or biases of the neural network 20 may be modified S164. Weights may herein be values associated with connections of the neural network 20. Biases may herein be values associated with nodes of the neural network 20. Weights and biases may be randomized before training S160 begins.
[0156] In the above examples the neural network 20 has been configured to output a position. The neural network 20 may additionally be configured to output a measure of the accuracy. This may be useful during online positioning. The above neural network can for this purpose be altered to estimate a probability distribution of the position instead of just the actual position. Since the floor-estimate above results in a probability for each floor, this variable already has an estimate of the accuracy. The output of the positioning neural network may, on the other hand, be altered to be [{circumflex over (μ)}.sub.x,{circumflex over (σ)}.sub.x,{circumflex over (μ)}.sub.y,{circumflex over (σ)}.sub.y] instead of [{circumflex over (x)},ŷ]. It is assumed that
which results in the loss function
L({circumflex over (μ)}.sub.x,{circumflex over (σ)}.sub.x,{circumflex over (μ)}.sub.y,{circumflex over (σ)}.sub.y,{circumflex over (f)};x,y,f)=−√{square root over (a.sub.x.sup.2+a.sub.y.sup.2)} log(P(x,y|{circumflex over (μ)}.sub.x,{circumflex over (σ)}.sub.x,{circumflex over (μ)}.sub.y,{circumflex over (σ)}.sub.y))−a.sub.fC log(P(f|{circumflex over (f)})),
for the original problem formulation. It can be shown that this neural network architecture can produce estimates of the magnitude of positioning errors for new measurements that are correlated to the true errors.
[0157]
[0158] In
[0159] receiving S121 a model of estimated radio transmitter positions in the environment; and
[0160] calculating S122 the estimated measurement position 14 and the estimated accuracy 16 to be set for said sample 10 of the estimation labeled type based on distance dependent measurements to the transmitters and the model of estimated radio transmitter positions.
[0161] For example, RSS measurements of the sample may indicate distances to a number of radio transmitters whose estimated positions can be found in the model. By trilateration, the estimated measurement position of the sample and the estimated accuracy may be found. Alternatively, an estimated measurement position may be guessed and then iteratively improved by iterative reduction of residuals.
[0162] As further illustrated in
[0163] receiving S112 radio transmitter modelling samples comprising distance dependent data;
[0164] forming S114 a candidate model of estimated radio transmitter positions and estimated measurement positions 14 of the radio transmitter modelling samples based on the received radio transmitter modelling samples and a plurality of defined positions for samples and/or for radio transmitters; and
[0165] iteratively reducing S116 a sum of residuals for said candidate model.
[0166] The received S112 radio transmitter modelling samples may comprise RSS data. The received S112 radio transmitter modelling samples may be a matrix similar to R, described in conjunction with
[0167] The candidate model may be formed S114 by e.g. guessing estimated radio transmitter positions and estimated measurement positions 14 of the radio transmitter modelling samples. Alternatively, the candidate model may be based on an old model.
[0168] In addition to the received radio transmitter modelling samples there may be a plurality of defined positions for samples and/or for radio transmitters. For example, some of the radio transmitter modelling samples may be samples of a labeled type and thereby be associated with a geographic position. In another example, the position of some of the radio transmitters may be known. Such defined positions may be included in the candidate model. The candidate model may then comprise e.g. a number of estimated measurement positions 14 of the radio transmitter modelling samples, a number of estimated radio transmitter positions, and a number of known radio transmitter positions (and/or a number of known measurement positions).
[0169] For each radio transmitter modelling sample, a difference may be calculated, the difference may be a difference between [0170] an estimated distance between the measurement position of said sample and a radio transmitter as represented by the model; and [0171] a measured distance between the measurement position of said at least one sample and the radio transmitter as represented by the distance dependent data. Said difference may represent a residual. This may be repeated for all samples and all radio transmitters such that a sum of residuals may be formed. When a position is known, e.g. a measurement position or a radio transmitter position is known, the known position is used instead of an estimated one. The sum of residuals may then represent how far off the model is from the truth, as represented by the measured distance dependent data. The model of estimated radio transmitter positions may then be updated and a new sum of residuals may be calculated, and so forth. This may be repeated for a fixed number of repetitions or until the sum of residuals goes below a threshold value.
[0172] Once the model of estimated radio transmitter positions is finished it may be used to set estimated measurement position 14 and the estimated accuracy 16 of a sample 1 of the estimation labeled type in the training dataset 1. The radio transmitter modelling samples may e.g. together with estimated measurement positions 14 and the estimated accuracies 16 of the last iteration of the model of estimated radio transmitter positions form part of the training dataset 1 for training S160 the neural network 20. Alternatively, or additionally, when the model of estimated radio transmitter positions is finished, new distance dependent data may be inputted into the model such that new estimated measurement positions 14 and new estimated accuracies 16 are received. The new distance dependent data and the new estimated measurement positions 14 and the new estimated accuracies 16 may then form new samples 10 for training S160 the neural network 20. Forming such new samples may be done for one sample 10 at a time or for a plurality of samples 10 at a time. Alternatively, or additionally, when the model of estimated radio transmitter positions is finished, new distance dependent data may be used together with the model to find new estimated measurement positions 14 and the estimated accuracies 16 through triangulation.
[0173] As seen in
[0174] receiving S126 a known position and relative movement data, the relative movement data indicating movement between the known position and the measurement position associated with said sample 10 of the estimation labeled type; and [0175] calculating S127 the estimated measurement position 14 and the estimated accuracy 16 to be set for said sample 10 of the estimation labeled type based on the known position and the relative movement data.
[0176] The known position may be a manually set position or a GPS position measured at an earlier time and the relative movement data may e.g. be data from an inertial measurement unit that has recorded data along a path from the known position to the measurement position. Thus, the measurement position may be estimated from the known position and the relative movement data. The estimated measurement position may e.g. be calculated through dead reckoning.
[0177] As described in conjunction with step S120′ and S120′″ the estimated measurement position 14 and the estimated accuracy 16 of a sample 10 may be calculated. Additionally, or alternatively, the estimated measurement position 14 and the estimated accuracy 16 of a sample 10 may be received.
[0178] As seen in
[0179] Before receiving S150 the training dataset 1 some preprocessing may be done. Preprocessing may be done at the same computing unit that receives S150 the training dataset 1 and performs the training S160 of the neural network 20. Alternatively, preprocessing may be performed on a separate computing unit.
[0180] A candidate training dataset comprising samples 10 of the estimation labeled type may be received S130.
[0181] Samples 10 from the candidate dataset to be included in the training dataset 1 may be selected S132. A sample 10 with a high estimated accuracy 16 may be selected to be included in the training dataset 1 and a sample 10 with a low estimated accuracy 16 may be rejected from being included in the training dataset 1.
[0182] The estimated accuracy 16 of samples 10 of the candidate training dataset may be compared S134 to a threshold accuracy. Samples 10 from the candidate training dataset having worse estimated accuracy 16 than the threshold accuracy may be rejected S136 from being included in the training dataset 1. The threshold accuracy may have a value between 0 and 30 meters.
[0183] Some samples, e.g. samples from a candidate training dataset may be augmented S140 before including S148 the augmented sample 10 in the training dataset 1. Augmenting S140 may be done by e.g.:
[0184] introducing noise to sensor data 12 of a sample 10; and/or
[0185] removing part of the sensor data 12 of a sample 10, reflecting changes in the environment or missed RSS sensor data due to timing of a scan; and/or
[0186] introducing a RSS offset to the sensor data 12 of a sample 10, reflecting differences in RSS calibration and/or antenna performance.
[0187] Preprocessing may additionally, or alternatively, comprise normalizing, e.g. normalizing RSS data. RSS data may be normalized into the range [0,1].
[0188] Alternatively, RSS data may be normalized by subtracting the mean and dividing by the estimated standard deviation. Normalizing may provide better training performance and high training stability, depending on the properties of the original signal. In the case of WiFi AP RSS, the common situation may be to normalize measurements from the interval [−100,0] to [0,1]. Missing values may in this case be assigned the value 0. Each of the N beacons may give rise to a unique input to the neural network 20, which means that if for example 200 such beacons have been detected in the training phase, the input dimension may be 200 for all measurements.
[0189] The created model for positioning within an environment may after training be used for real-time positioning. For example, RSS measurements of WiFi APs and/or BLE beacons may be used to directly receive a most likely position. It has been seen that the computational effort for creating a position may be much lower than for doing a corresponding position calculation using kNN fingerprinting algorithms. Thus, the created model may be better suited for high volume low latency positioning at the expense of the non-time-critical training effort.
[0190] Depending on the device that is being positioned, there may be access to additional sensor measurements during online positioning, in addition to the sensors that were used for generating the above positioning model. This can for example be inertial sensors that measure how the device is moving in some frame of reference. If the same measurements are also available during the above collection of a dataset these can be included in the model, for example in a recurrent neural network. Such measurements can also be combined with the above model independently. One way to do this is to use methods based on the Kalman filter and/or Kalman smoother equations.
[0191]
[0192] The method 200 comprises acquiring S202 sensor data 12, measured at the position of the device, the sensor data 12 being characteristic of the position of the device. The sensor data may be the same type of sensor data 12 that has been used for training the neural network 20.
[0193] The method 200 further comprises accessing S204 the model, for positioning within the environment, that is described above.
[0194] The method 200 further comprises determining S206 the position 30 of the device based on the acquired sensor data 12 and the accessed model.
[0195] As an example, the method may be performed by a device, e.g. a mobile phone, acquiring S202 sensor data 12 such as RSS data at the position of the device. The model may then be accessed S204 e.g. by the device sending the sensor data 12 to a server comprising a neural network 20 that has been trained on that type of data. In this case the neural network 20 may have been trained on RSS data (it may additionally have been trained to handle also other types of sensor data). Alternatively, the neural network 20 may be situated on the device itself. The neural network 20 may e.g. have been trained on a server and then transferred to the device after training. The sensor data 12 may be inputted to the neural network 20 and the neural network 20 may then output the position 30 of the device as [{circumflex over (x)},ŷ,{circumflex over (f)}]. This is illustrated in
[0196] A plurality of positions 30 of the device may be determined along a track 40. This may be done by for each separate position determining S206 the position 30 of the device directly from the output from the neural network 20, as illustrated in
[0197] Alternatively, the output from the neural network 20 may be combined with relative movement data 44 for better positioning, as illustrated in
[0198] Estimated relative positions of the positions 30 along the track 40 may be determined S208 based on the relative movement data 44. Estimated relative positions of the positions 30 along the track 40 may be determined S208 e.g. using a neural network (such as a neural network model separate from the neural network 20 that herein is described to generate the first estimate 42) or using a conventional computer program. The first estimates 42 for each position 30 of the device may then be improved S212 using the estimated relative positions.
[0199] One way to improve S212 the first estimates 42 for each position 30 of the device using the estimated relative positions may be to use optimization based on the Kalman smoother, as shown in the following example. The example is in 2D. As understood by the skilled person, the example is also applicable in 3D. Consider a number of first estimates 42 {circumflex over (p)}.sub.i and estimated relative positions {circumflex over (Δ)}.sub.pi. The positions based on the first estimates 42 may differ slightly from positions based on relative movement data 44, as seen in
[0200] In this example, the optimization problem that is solved to improve estimates of positions may be given by
[0201] where there are K subsequent estimated points {circumflex over (p)} to be improved by use of K−1 estimated movements between these points . Herein, p.sub.i=[x.sub.i,y.sub.i] and {circumflex over (p)}.sub.i=[{circumflex over (x)}.sub.i, ŷ.sub.i]. Further, {circumflex over (Δ)}.sub.pi represents the relative movement, according to the relative movement data 44, between {circumflex over (p)}.sub.i and {circumflex over (p)}.sub.i+1. Further, this exemplified optimization problem is weighted by s.sub.1 and s.sub.2 which are the estimated standard deviations (in 2D) of the mod& errors, which could be estimated based on model performance on validation and/or test sets. s.sub.1 relates to the errors in position estimates {circumflex over (p)} and s.sub.2 relates to the errors in relative movement estimates
.
[0202] In the above the inventive concept has mainly been described with reference to a limited number of examples. However, as is readily appreciated by a person skilled in the art, other examples than the ones disclosed above are equally possible within the scope of the inventive concept, as defined by the appended claims.