Positioning method and apparatus, device, and storage medium

CN115876189BActive Publication Date: 2026-11-03CHINA MOBILE CHENGDU INFORMATION & TELECOMM TECH CO LTD +1
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202111154827.4
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2021-09-29
Publication Date
2026-11-03
Estimated Expiration
2041-09-29

AI Technical Summary

Technical Problem

Existing indoor positioning technologies have low positioning accuracy in complex environments, Bluetooth signals have poor stability, infrared positioning requires a line of sight, and PDR positioning suffers from drift error accumulation, resulting in inaccurate positioning results.

Method used

By acquiring the historical measurement position and inertial navigation data of the device to be located, the measurement noise R is dynamically adjusted using Kalman filter fusion technology. Combined with the inertial navigation data and the historical estimated position, the second estimated position at the current moment is determined.

Benefits of technology

The accuracy of indoor positioning has been improved by dynamically adjusting the measurement noise R, which reduces the accumulation of inertial navigation errors and enhances positioning accuracy.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115876189B_ABST
    Figure CN115876189B_ABST
Patent Text Reader

Abstract

The application discloses a positioning method and device, equipment and a storage medium. The method comprises the following steps: obtaining a first measured position of a to-be-positioned device at a historical moment; obtaining inertial navigation data of the to-be-positioned device at a current moment and a first estimated position of the to-be-positioned device at the historical moment; determining a measurement noise according to the first estimated position and the first measured position, wherein the measurement noise is used to represent the positioning accuracy of the first estimated position; and determining a second estimated position of the to-be-positioned device at the current moment according to the measurement noise, the inertial navigation data, the first measured position and the first estimated position. In the application, when the second estimated position of the to-be-positioned device at the current moment is estimated, not only the inertial navigation data collected by the to-be-positioned device at the current moment is considered, but also the inertial navigation data at the historical moment is indirectly considered, so that the accumulated inertial navigation error can be gradually adjusted, and the positioning accuracy is improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to communication technology, and to, but is not limited to, a positioning method, apparatus, device, and storage medium. Background Technology

[0002] In recent years, with the popularization of mobile smart devices and the innovation of Internet technology, location services have become an essential function of mobile terminals and are increasingly widely used in indoor environments, making indoor positioning technology a hot topic. However, due to the complexity of indoor environments and the inability of satellite signals to penetrate building walls, there is currently a lack of widely applicable, mature, and highly accurate positioning technologies. For example, Bluetooth technology, despite requiring small devices, suffers from poor stability in complex environments and has a short signal transmission distance, resulting in low positioning accuracy. Infrared technology requires visual communication between detectors and between the target being located, which is impossible in complex indoor environments, leading to low positioning accuracy. Pedestrian dead reckoning (PDR) positioning has consistent positioning characteristics, but over long periods, only relative positioning data is obtained. Over time, drift and cumulative errors occur, resulting in significant positioning drift. Therefore, improving positioning accuracy is a pressing technical problem that needs to be solved. Summary of the Invention

[0003] In view of this, the positioning method, apparatus, equipment, and storage medium provided in this application can further improve positioning accuracy.

[0004] According to one aspect of the embodiments of this application, a positioning method is provided, comprising: acquiring a first measured position of a device to be positioned at a historical time; wherein the first measured position is obtained based on first wireless signal data received by the device to be positioned at the historical time; acquiring inertial navigation data of the device to be positioned at a current time and a first estimated position at the historical time; determining measurement noise based on the first estimated position and the first measured position; wherein the measurement noise is used to characterize the positioning accuracy of the first estimated position; and determining a second estimated position of the device to be positioned at the current time based on the measurement noise, the inertial navigation data, the first measured position, and the first estimated position.

[0005] According to one aspect of the embodiments of this application, a positioning device is provided, comprising: an acquisition module, configured to acquire a first measured position of a device to be positioned at a historical time; wherein the first measured position is obtained based on first wireless signal data received by the device to be positioned at the historical time; the acquisition module is further configured to acquire inertial navigation data of the device to be positioned at a current time and a first estimated position at the historical time; a determination module, configured to determine measurement noise based on the first estimated position and the first measured position; wherein the measurement noise is used to characterize the positioning accuracy of the first estimated position; the determination module is further configured to determine a second estimated position of the device to be positioned at the current time based on the measurement noise, the inertial navigation data, the first measured position, and the first estimated position.

[0006] According to one aspect of the present application, an electronic device is provided, including a memory and a processor, wherein the memory stores a computer program executable on the processor, and the processor executes the program to implement the method described in the embodiments of the present application.

[0007] According to one aspect of the embodiments of this application, a computer-readable storage medium is provided, on which a computer program is stored, which, when executed by a processor, implements the methods provided in the embodiments of this application.

[0008] In this embodiment, a first measurement position of the device to be located, determined at a historical time, is obtained; and inertial navigation data of the device to be located at the current time and a first estimated position obtained by Kalman filtering fusion at a historical time are obtained. Measurement noise is determined based on the first measurement position and the first estimated position obtained at a historical time. A second estimated position of the device to be located at the current time is determined based on the measurement noise, inertial navigation data, the first measurement position, and the first estimated position. This approach better reflects the actual situation when correcting for accumulated errors in inertial navigation data, thereby improving positioning accuracy. This is because, in related technologies, when fusing the first measurement position obtained by the fingerprint positioning method and inertial navigation data using Kalman filtering to determine the second estimated position of the device to be located at the current time, the measurement noise R used is pre-set and constant. It is not dynamically adjusted based on the error between the measured position and the estimated position. However, as time progresses, inertial navigation errors gradually accumulate, leading to a gradual decrease in positioning accuracy. In this embodiment, however, R is not constant; the determination of the measurement noise R is related to the first measurement position and the estimated first estimated position of the device to be located at a historical time. In other words, the determination of R is related to the inertial navigation data collected by the device to be positioned at historical moments. Thus, when estimating the second estimated position of the device to be positioned at the current moment, it is not only related to the inertial navigation data collected by the device to be positioned at the current moment, but also indirectly takes into account the inertial navigation data at historical moments, thereby gradually adjusting the accumulated inertial navigation error and improving the positioning accuracy.

[0009] It should be understood that the above general description and the following detailed description are exemplary and explanatory only, and do not limit this application. Attached Figure Description

[0010] The accompanying drawings, which are incorporated in and form part of this specification, illustrate embodiments consistent with this application and, together with the specification, serve to explain the technical solutions of this application. Obviously, the drawings described below are merely some embodiments of this application, and those skilled in the art can obtain other drawings based on these drawings without any inventive effort.

[0011] The flowcharts shown in the accompanying drawings are merely illustrative and do not necessarily include all content and operations / steps, nor do they necessarily have to be performed in the described order. For example, some operations / steps can be broken down, while others can be combined or partially combined; therefore, the actual execution order may change depending on the specific circumstances.

[0012] Figure 1 A schematic diagram illustrating the implementation process of a positioning method provided in an embodiment of this application;

[0013] Figure 2 A schematic diagram illustrating the implementation process of another positioning method provided in this application embodiment;

[0014] Figure 3 A schematic diagram illustrating the process of determining a sub-fingerprint database as provided in an embodiment of this application;

[0015] Figure 4 A schematic diagram of a pruning method provided in an embodiment of this application;

[0016] Figure 5 A schematic diagram illustrating the training process of a model provided in an embodiment of this application;

[0017] Figure 6 An improved fusion clustering flowchart is provided for embodiments of this application;

[0018] Figure 7 A flowchart illustrating an improved fingerprint localization method provided in this application embodiment;

[0019] Figure 8 A flowchart illustrating a method for fusing fingerprint localization and inertial navigation algorithm based on fuzzy Kalman filtering, provided in this application embodiment;

[0020] Figure 9 This is a schematic diagram of the positioning device according to an embodiment of this application;

[0021] Figure 10 This is a schematic diagram of the structure of an electronic device provided in an embodiment of this application. Detailed Implementation

[0022] To make the objectives, technical solutions, and advantages of the embodiments of this application clearer, the specific technical solutions of this application will be further described in detail below with reference to the accompanying drawings of the embodiments of this application. The following embodiments are used to illustrate this application, but are not intended to limit the scope of this application.

[0023] Unless otherwise defined, all technical and scientific terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this application belongs. The terminology used herein is for the purpose of describing embodiments of this application only and is not intended to limit this application.

[0024] In the following description, references are made to “some embodiments,” which describe a subset of all possible embodiments. However, it is understood that “some embodiments” may be the same subset or different subsets of all possible embodiments and may be combined with each other without conflict.

[0025] It should be noted that the terms "first, second, third" used in the embodiments of this application do not represent a specific order of objects. It is understood that "first, second, third" can be interchanged in a specific order or sequence where permitted, so that the embodiments of this application described herein can be implemented in an order other than that illustrated or described herein.

[0026] This application provides a positioning method applied to an electronic device. This electronic device can be of various types with positioning capabilities, such as personal computers (e.g., desktop computers, laptops, mini-laptops, tablets), mobile phones, personal digital assistants (PDAs), smart bracelets, smartwatches, and in-vehicle devices. The function implemented by this method can be achieved by a processor in the electronic device calling program code. The program code can be stored in a computer storage medium. Therefore, the electronic device includes at least a processor and a storage medium.

[0027] Figure 1 This is a schematic diagram illustrating the implementation process of the positioning method provided in the embodiments of this application, as shown below. Figure 1 As shown, the method may include the following steps 101 to 104:

[0028] Step 101: Obtain the first measurement position of the device to be located at a historical moment.

[0029] In this embodiment, the type of device to be located is not limited. For example, the device to be located can be a mobile electronic device with positioning function, such as a mobile phone, laptop, PDA, smart bracelet, smartwatch, or in-vehicle device. The electronic device and the device to be located can be the same device; alternatively, they can be different devices, such as a mobile phone as the device to be located and a server as the electronic device, where the server obtains the first measured location of the mobile phone at a historical moment.

[0030] The first measurement location is obtained based on the first wireless signal data received by the device to be located at a historical time. In some embodiments, the first measurement location of the device to be located at a historical time can be determined by fingerprint positioning, for example, by performing steps 201 to 204 in the following embodiments.

[0031] Step 102: Obtain the inertial navigation data of the device to be located at the current moment and the first estimated position at a historical moment.

[0032] In some embodiments, inertial navigation data may include at least one of the following: acceleration information collected by an accelerometer in the device to be positioned, information collected by a gyroscope, and information collected by a magnetometer. Specifically, step monitoring and step length estimation can be performed in real time based on the acceleration information, and heading information for each step can be calculated based on the information collected by the gyroscope and magnetometer.

[0033] In some embodiments, the historical moment is the moment before the current moment. Obtaining the first estimated position of the device to be located at the historical moment involves determining the measured position of the previous moment using a fingerprint positioning method, then obtaining the inertial navigation data of the device to be located at the historical moment, and subsequently fusing the measured position of the previous moment and the inertial navigation data of the historical moment using a fuzzy Kalman filter algorithm to obtain the first estimated position.

[0034] Step 103: Determine the measurement noise based on the first estimated position and the first measured position; wherein the measurement noise is used to characterize the positioning accuracy of the first estimated position.

[0035] In related technologies, when using Kalman filtering to fuse the first measured position obtained by the fingerprint positioning method and the inertial navigation data to determine the second estimated position of the device to be positioned at the current moment, the measurement noise R used is preset and constant. It does not dynamically adjust the measurement noise R according to the error between the measured position and the estimated position. However, as time goes by, the inertial navigation error gradually accumulates, which will lead to a gradual decrease in positioning accuracy.

[0036] In this embodiment, R is not constant. The determination of the measurement noise R is related to the first measured position and the first estimated position obtained by the device to be located at a historical time. That is, the determination of R is related to the inertial navigation data collected by the device to be located at a historical time. Thus, when estimating the second estimated position of the device to be located at the current time, it is not only related to the inertial navigation data collected by the device to be located at the current time, but also indirectly takes into account the inertial navigation data at historical time. This allows for the gradual adjustment of accumulated inertial navigation errors, thereby improving positioning accuracy.

[0037] Step 104: Determine the second estimated position of the device to be positioned at the current moment based on the measurement noise, inertial navigation data, first measurement position, and first estimated position.

[0038] Figure 2 This is a schematic diagram illustrating the implementation process of the positioning method provided in the embodiments of this application, as shown below. Figure 2 As shown, the method may include the following steps 201 to 208:

[0039] Step 201: Input the first wireless signal data into the trained first model to obtain the first reference position of the device to be located, and input the first wireless signal data into the trained second model to obtain the second reference position of the device to be located.

[0040] Understandably, fingerprint localization methods are divided into offline and online phases. In the offline phase, steps 301 to 303 in the following embodiments are used to cluster the constructed fingerprint database to obtain at least one sub-fingerprint database; steps 501 to 508 in the following embodiments are used to train the sub-fingerprint database to obtain a model corresponding to the sub-fingerprint database. In the online phase, the first wireless signal data received by the device to be located at the test point is input into each model trained in the offline phase to obtain each reference position corresponding to the device to be located.

[0041] In this embodiment, for each trained model, any one of the models is referred to as the first model, and the remaining models are referred to as the second models. Taking two second models as an example, the first wireless signal data is input into the first model to obtain the first reference position; the first wireless signal data is then input into the first second model to obtain the first second reference position; and the first wireless signal data is then input into the second second model to obtain the second second reference position.

[0042] Step 202: Obtain second wireless signal data collected at the first reference location from the first sub-fingerprint database used for training the first model, and obtain third wireless signal data collected at the second reference location from the second sub-fingerprint database used for training the second model.

[0043] It should be noted that if there is at least one second model, then there is also at least one second sub-fingerprint database used to train the second model. Taking two second models as an example, the first second model is applied to the first second sub-fingerprint database used for training, and the second second model is applied to the second second sub-fingerprint database used for training.

[0044] Step 203: Based on the second wireless signal data and the first wireless signal data, estimate in advance the first probability that the first reference position is the first measurement position to be determined, and based on the third wireless signal data and the first wireless signal data, estimate in advance the second probability that the second reference position is the first measurement position to be determined.

[0045] In some embodiments, after obtaining the second wireless signal data collected at the first reference location and the third wireless signal data collected at each of the other second reference locations, the probability of the device to be located being at each reference location can be determined by Bayesian estimation.

[0046] It should be noted that there is at least one second reference position, and therefore at least one second probability. Taking an example where there are two second reference positions, the first second reference position corresponds to the first second probability, and the second second reference position corresponds to the second second probability. Thus, the determination of the first measurement position is based on multiple probabilities.

[0047] In this embodiment of the application, when determining the first measurement position of the device to be located, the first measurement position is selected from various reference positions, rather than directly from various sampling points in the fingerprint database, thereby greatly reducing the estimation range and improving the calculation efficiency.

[0048] Step 204: Determine the first measurement position from the first reference position and the second reference position based on the first probability and the second probability.

[0049] In some embodiments, the reference position with the highest probability is determined from the first reference position and the second reference position as the first measurement position.

[0050] Step 205: Obtain the inertial navigation data of the device to be located at the current moment and the first estimated position at a historical moment;

[0051] Step 206: Determine the posterior estimation error based on the first estimated position and the first measured position; wherein the posterior estimation error is used to pre-measure the accuracy of the second estimated position at the current time.

[0052] In some embodiments, the posterior estimation error is the difference between the first estimated position and the first measured position.

[0053] Step 207: Determine the measurement noise based on the posterior estimation error.

[0054] In some embodiments, when the posterior estimation error E k When the value of is within the first interval, the corresponding measurement noise value is R1; when the posterior estimation error E k When the value of is within the second interval, the corresponding measurement noise value is R2; when the posterior estimation error E k When the value of is within the third interval, the corresponding measurement noise value is R3.

[0055] In some embodiments, the first interval is 0 ≤ |E k | < 1 indicates that the first estimated position is close to the first measured position, therefore, R1 is very small; the second interval is 1 ≤ |E k | < 2, in this case, both values ​​are equally likely, therefore, R2 is slightly larger than R1; the third interval is 2 ≤ |E kThe first measured position is less reliable than the first estimated position. Therefore, R3 is large, which causes the second estimated position to shift towards the first estimated position when determining the second estimated position of the device to be located at the current time.

[0056] Step 208: Determine the second estimated position of the device to be positioned at the current moment based on the measurement noise, inertial navigation data, first measurement position, and first estimated position.

[0057] In some embodiments, the sub-fingerprint database is a first sub-fingerprint database or a second sub-fingerprint database; correspondingly, such as Figure 3 As shown, the process of determining the sub-fingerprint database includes the following steps 301 to 303:

[0058] Step 301: Construct a fingerprint database based on the locations of multiple sampling points and the sample wireless signal data collected at each location.

[0059] In the fingerprint positioning method, multiple sampling points are arranged in the positioning scene, and the received sample wireless signal data is collected at each sampling point. The location of each sampling point and the corresponding multiple sample wireless signal data are grouped together. In this way, there are as many combinations as there are sampling points. A fingerprint database is constructed based on the multiple combinations obtained.

[0060] Step 302: Based on the first clustering algorithm and a specific number, perform the first clustering process on the sample wireless signal data in the fingerprint database to obtain an initial cluster center greater than or equal to the specific number; wherein, the specific number is greater than 0, and the specific number is used to indicate that the number of categories obtained after the first clustering process is greater than or equal to the specific number.

[0061] In some embodiments, step 302 is implemented through the following steps 3021 to 3025:

[0062] Step 3021: The sample wireless signal data from different sampling points in the fingerprint database are classified into different categories, and the sample wireless signal data from each sampling point are merged to obtain the first clustering tree.

[0063] It should be noted that the sample wireless signal data at the sampling point refers to all sample wireless signal data received at that sampling point.

[0064] In some embodiments, the first clustering algorithm is a hierarchical agglomerative clustering algorithm. When merging the sample wireless signal data of each sampling point, the sample wireless signal data collected at each sampling point is treated as a group, and the groups are merged.

[0065] In some embodiments, a first clustering tree can be obtained by calculating the similarity matrix between the sample wireless signal data of each sampling point and performing a merging process step by step according to the similarity matrix until the sample wireless signal data of all sampling points are merged.

[0066] Step 3022: Prune the first clustering tree to obtain at least one second clustering tree;

[0067] Step 3023: Determine whether the number of second cluster trees is less than a specific number; if the number of second cluster trees is less than the specific number, proceed to step 3024; otherwise, proceed to step 3025.

[0068] For example, such as Figure 4 As shown, the first cluster tree 401 is pruned. After the first processing, only the second cluster trees A and B are obtained, and the number of the second clusters is 2, which is less than a certain number. At this time, step 3024 is executed to continue pruning the second cluster trees A and B. After pruning the second cluster tree A, the fourth clusters C and M are obtained. After pruning the second cluster tree B, the fourth cluster trees D and K are obtained. The number of the fourth cluster trees obtained after repeated pruning is 4. If the number of the fourth cluster trees is still less than the certain number, the pruning process can continue to be performed on each fourth cluster tree to obtain the third cluster trees E, F, G, H, I, J and K. The number of the third cluster trees is 7. If the number of the third cluster trees is greater than the certain number, the pruning process is completed, and step 3025 is executed.

[0069] In some embodiments, the process of determining a specific number is as follows: The first clustering tree is pruned beforehand to obtain a second clustering tree; the silhouette coefficient S of the second clustering tree is calculated, which characterizes the rationality of clustering in the second clustering tree; if S is close to 1, it indicates that the clustering of the sample wireless signal data is reasonable; if S is close to -1, it indicates that the sample wireless signal data i should be classified into another clustering tree; if S is approximately 0, it indicates that the sample wireless signal data i is on the boundary between two clustering trees; the second clustering tree is then pruned further to obtain multiple... The third cluster tree is generated, and its silhouette coefficient is determined. If the silhouette coefficient of the third cluster tree is less than that of the second cluster tree, the number of second cluster trees is determined to be a specific number. If the silhouette coefficient of the third cluster tree is less than that of the second cluster tree, it means that the most reasonable number of clusters has not yet been reached. The third cluster tree is then pruned until the silhouette coefficient of the current cluster tree is less than that of the cluster tree obtained after the previous pruning process. The number of cluster trees obtained after the previous pruning process is then determined to be a specific number.

[0070] Step 3024: Continue to prune each second cluster tree until the number of cluster trees obtained after pruning is greater than or equal to a specific number, and obtain a third cluster tree greater than or equal to a specific number. Output the number of the third cluster trees.

[0071] Step 3025: Based on the sample wireless signal data corresponding to the third clustering tree, determine an initial clustering center for a number of third clustering trees that is greater than or equal to a specific number.

[0072] In some embodiments, after pruning the first clustering tree to obtain at least a specific number of third clustering trees, the mean of the sample wireless signal data contained in each third cluster can be determined as the initial cluster center corresponding to that third clustering tree. That is, the number of third clustering trees is the same as the number of initial cluster centers.

[0073] Step 303: Take a specific number of initial cluster centers (or more than or equal to a specific number) as input to the second clustering algorithm. According to the second clustering algorithm, perform second clustering processing on the sample wireless signal data in the fingerprint database to obtain a sub-fingerprint database.

[0074] In some embodiments, the second clustering algorithm is the K-means clustering algorithm.

[0075] In this embodiment of the application, after obtaining the number of clusters and the initial cluster centers that are the same as the number of clusters through the first clustering algorithm, the number of clusters and the initial cluster centers are used as inputs to the K-means clustering algorithm to perform clustering processing on the sample wireless signal data in the fingerprint database, thereby obtaining at least one sub-fingerprint database.

[0076] In this embodiment, on the one hand, by clustering the fingerprint database, multiple sub-fingerprint databases can be obtained. This allows for the training of corresponding models based on each sub-fingerprint database. Since the wireless signal data of each sample group in each sub-fingerprint database is different, the corresponding trained models are also different, thus increasing model diversity. On the other hand, the initial cluster centers and number of clusters are predetermined by the first clustering algorithm, enabling the second clustering algorithm to perform clustering based on the predetermined initial cluster centers and number of clusters. This effectively avoids the inaccuracy that might result from randomly selecting initial cluster centers and number of clusters, ensuring stable and accurate clustering results. This guarantees the stability and accuracy of the sub-fingerprint databases obtained through clustering. Therefore, when determining the reference positions of the device to be located based on the sub-fingerprint databases, the determined reference positions are also stable and accurate, resulting in stable and accurate positioning results for the device to be located.

[0077] In some embodiments, the model is a first model or a second model, correspondingly, such as Figure 5As shown, the model training process includes the following steps 501 to 508:

[0078] Step 501: Determine the second weight of the first weak classifier based on the wireless signal data of each group of samples in the sub-fingerprint database and their corresponding first weights and labels.

[0079] In some embodiments, the model is trained using the Adaptive Boosting (AdaBoost) algorithm. AdaBoost is an iterative algorithm whose core idea is to train different classifiers (weak classifiers) on the same training set (sub-fingerprint database), and then combine these weak classifiers to form a stronger final classifier (strong classifier).

[0080] In some embodiments, the first weight is an initial weight, and step 501 is implemented through the following steps 5011 to 5014:

[0081] Step 5011: Input the wireless signal data of each group of samples in the sub-fingerprint database and their corresponding initial weights into the first weak classifier to obtain the first category of the wireless signal data of each group of samples.

[0082] In some embodiments, the initial weights of the sample wireless signal data in each group of sub-fingerprint databases are the same. That is, if there are N groups of sample wireless signal data, where N is an integer greater than 0, then the initial weight of each group of sample wireless signal data is 1 / N.

[0083] In some embodiments, after classifying the wireless signal data of each group of samples using a first weak classifier, a first category corresponding to the data is obtained, and the first category is represented by 0 or 1.

[0084] Step 5012: Determine the correctness of the first category based on the first category of the sample wireless signal data and the corresponding label.

[0085] Here, the label refers to the correct category of the corresponding sample wireless signal data. When the category of the sample wireless signal data is represented by 0 or 1, the label is also represented by 0 or 1. By comparing whether the first category of the sample wireless signal data matches (whether they are the same), it can be determined whether the weak classifier has correctly classified the group of sample wireless signal data.

[0086] For example, if the classification category of the first group of wireless signal data is 0, but its corresponding label is 1, it means that the wireless signal data of this group of samples is classified incorrectly; if the classification category of the first group of wireless signal data is 0, and its corresponding label is also 0, it means that the wireless signal data of this group of samples is classified correctly.

[0087] Step 5013: Determine the first classification error rate of the first weak classifier based on the correct and incorrect results of each first category;

[0088] Step 5014: Determine the second weight of the first weak classifier based on the first classification error rate.

[0089] It should be noted that the first classification error rate is inversely proportional to the second weight. That is, the higher the classification error rate of the first weak classifier for each group of wireless signal data, the worse the classification ability of the weak classifier, and the smaller its corresponding second weight, which means a smaller proportion in the final strong classifier; conversely, the lower the classification error rate of the first weak classifier for each group of wireless signal data, the better the classification ability of the weak classifier, and the larger its corresponding second weight, which means a larger proportion in the final strong classifier.

[0090] Step 502: Adjust the first weight of the corresponding sample wireless signal data to obtain the third weight.

[0091] Understandably, after obtaining the correct and incorrect classification results of various sample wireless signal data, when using the next weak classifier (second weak classifier) ​​to continue classification, we should focus on the sample wireless signal data that were not classified correctly. Accordingly, their corresponding first weight needs to be increased to obtain the third weight; for the sample wireless signal data that have been classified correctly, their corresponding first weight is reduced to obtain the third weight.

[0092] Step 503: Determine the fourth weight of the second weak classifier based on the wireless signal data of each group of samples in the sub-fingerprint database and their corresponding third weights and labels.

[0093] In some embodiments, step 503 is implemented through the following steps 5031 to 5034:

[0094] Step 5031: Input the wireless signal data of each group of samples in the sub-fingerprint database and their corresponding third weights into the second weak classifier to obtain the second category of the wireless signal data of each group of samples.

[0095] It should be noted that the third weights corresponding to the wireless signal data of each group of samples in the sub-fingerprint database are different.

[0096] Step 5032: Determine the correctness of the second category based on the second category of the sample wireless signal data and the corresponding label;

[0097] Step 5033: Determine the second classification error rate of the second weak classifier based on the correct and incorrect results of each second category;

[0098] Step 5034: Determine the fourth weight of the second weak classifier based on the second classification error rate.

[0099] Step 504: Determine the wireless signal data whose third weight satisfies the first condition in each group of sample wireless signal data in the sub-fingerprint database.

[0100] Step 505: Adjust the third weight of the sample wireless signal data that meets the first condition to obtain the corresponding fifth weight.

[0101] Understandably, the AdaBoost algorithm is prone to overtraining, which can lead to a decrease in algorithm performance. To address this issue, in this embodiment, the updating of the weights of the sample wireless signal data is restricted, and step 505 can be achieved through the following steps 5051 to 5054:

[0102] Step 5051: Determine whether the third weight of each sample wireless signal data is less than the first threshold; wherein the first threshold is obtained based on the third weight of each sample wireless signal data.

[0103] In this application embodiment, the method for determining the first threshold is not limited. In some embodiments, the first threshold is obtained based on the mean of the third weights of each sample of wireless signal data.

[0104] Step 5052: If the third weight of the sample wireless signal data is less than the first threshold, proceed to step 5053; otherwise, proceed to step 5054.

[0105] The third weight of the wireless signal data of the i-th group of samples is compared with the first threshold. If the third weight of the wireless signal data of the i-th group of samples is less than the first threshold, then step 5053 is executed to adjust the third weight of the wireless signal data i to obtain the fifth weight. If the third weight of the wireless signal data of the i-th group of samples is greater than the first threshold, then step 5054 is executed to leave the third weight of the wireless signal data of the i-th group of samples unchanged and still use the third weight as its weight value to input into the next classifier.

[0106] In related technologies, if multiple weak classifiers misclassify certain groups of wireless signal data, the weights of these groups of wireless signal data will be increased in each weak classifier compared to the previous one. As the number of classifications of these groups of wireless signal data increases (i.e., the number of weak classifiers increases), the weights of these groups of wireless signal data will continue to increase. During the training of weak classifiers, there will be an excessive bias towards these wireless signal data with larger weights, making the training process susceptible to noise and thus causing a decrease in algorithm performance.

[0107] In this embodiment, by determining the wireless signal data whose weights meet the conditions in each group of sample wireless signal data in the sub-fingerprint database, the weights of the sample wireless signal data that meet the conditions are updated, while the weights of various sample wireless signal data that do not meet the conditions are not changed. In this way, when some groups of sample wireless signal data are consistently misclassified by various weak classifiers, the weights corresponding to these groups of sample wireless signal data will not be increased indefinitely. Therefore, during the training process of the weak classifier, it will not be overly biased towards certain groups of wireless signal data, the noise impact is small, and the algorithm performance is good.

[0108] Step 5053: Adjust the third weight of the sample wireless signal data to obtain the corresponding fifth weight;

[0109] Step 5054: Use the third weight as the fifth weight;

[0110] Step 506: Continue to determine the sixth weight of the third weak classifier based on the wireless signal data of each group of samples with the third weight and the corresponding third weight, the wireless signal data of each group of samples with the fifth weight and the corresponding fifth weight, and the label.

[0111] Understandably, the weights of the wireless signal data of each group of samples input into the third weak classifier may be the adjusted fifth weights or the unadjusted third weights.

[0112] Step 507: Determine whether the weights of each weak classifier have been obtained; if yes, proceed to step 508; otherwise, return to step 506.

[0113] Step 508: Combine each weak classifier according to its weight to obtain the model.

[0114] With the popularization of mobile smart devices and the innovation of Internet technology, location services have become an essential function of mobile terminals and are increasingly widely used in indoor environments, making indoor positioning technology a hot topic. Related positioning technologies can be broadly categorized into Bluetooth positioning, Radio Frequency Identification (RFID) positioning, ZigBee indoor positioning, Ultra Wide Band (UWB) positioning, Wireless Fidelity (WiFi) positioning, magnetic positioning, ultrasonic positioning, laser positioning, and computer vision positioning. Among these, Bluetooth and ZigBee positioning technologies can be integrated into mobile phones and personal computers (PCs), offering advantages such as low cost, low power consumption, and long battery life, but their transmission distance is limited and accuracy needs improvement. RFID positioning technology boasts advantages such as non-contact and non-line-of-sight operation, but it is difficult to integrate into other systems and is challenging to operate. UWB positioning technology, employing broadband pulse communication technology, represents high-precision positioning and has very strong anti-interference capabilities, but its positioning cost is more than 10 times that of other positioning technologies, limiting its versatility. Unlike other wireless technologies, WiFi positioning technology is an indoor positioning technology based on WLAN. It does not require additional equipment installation. WiFi infrastructure is widely distributed in various indoor public places, and using WiFi for indoor positioning has become a hot topic.

[0115] Indoor positioning methods are mainly divided into two types: ranging and non-ranging. Ranging methods include Time of Arrival (TOA), Time Difference of Arrival (TDOA), Angle of Arrival (AoA), and received signal strength methods. Non-ranging methods include fingerprinting and frequency modulation (FM) methods. WiFi positioning methods can be broadly categorized into triangulation and location fingerprinting. Because WiFi signal strength is significantly affected by the environment, triangulation methods suffer from large errors, while fingerprinting using machine learning can effectively address the impact of signal fluctuations.

[0116] Fingerprint-based localization technology can be divided into two stages: offline and online. The offline stage primarily collects signal strength and location information to build a fingerprint database. The online stage matches the reference point with the highest similarity to the fingerprint of the target point within the database. Introducing machine learning and deep learning methods into fingerprint localization treats the offline stage as training a localization prediction model, while the online stage uses the received fingerprint information as input to the prediction model, and the model output as the coordinates of the device to be located, thus achieving the localization function. Fingerprint localization has no error accumulation, but it suffers from drawbacks such as low single-point positioning accuracy, susceptibility to jumps, poor stability, and inability to perform continuous localization. Inertial sensor-based localization methods, such as PDR, are susceptible to environmental influences; the placement and location of motion monitoring devices also affect the monitoring of step length and step count.

[0117] Common localization algorithms include the k-Nearest Neighbor (KNN) algorithm, Bayesian probability estimation, support vector machines, and neural networks. The KNN algorithm's localization process involves: offline, sampling the average of the Received Signal Strength (RSS) values ​​from multiple access points as a fingerprint; online, calculating the Euclidean distance between the Received Signal Strength Indication (RSSI) value of the test point and the fingerprint's RSSI value; and using the average of the locations corresponding to the K fingerprints with the smallest Euclidean distance as the estimated location. However, due to the complexity of indoor environments, relying solely on the Euclidean distance between the test point's signal and the fingerprint database's RSSI values ​​can easily lead to indoor localization failing to meet the needs of everyday applications.

[0118] Neural networks have high computational efficiency and are robust to noise. However, using neural network data structures requires converting data in the fingerprint database into a large number of "images," that is, normalizing one-dimensional RSS data values ​​into identifiable image pixel values. In real-world scenarios, however, there are drawbacks such as long model training time, and complex samples and network structures can also have a significant impact on neural networks, greatly reducing the localization accuracy of the algorithm.

[0119] The problems with the above-mentioned technical solutions are as follows: 1. Fingerprint positioning does not fully utilize the RSSI value information of the fingerprint database, resulting in significant variations in accuracy in the initial stage. Furthermore, changes in fingerprint acquisition quality, fingerprint database size, and wireless access points (APs) all have a substantial impact on fingerprint positioning. 2. Some related technologies use the K-means algorithm to divide the fingerprint database, which can improve indoor positioning accuracy to some extent. However, the initial random selection of cluster centers and the number of clusters cannot be determined, affecting positioning accuracy and performance. 3. In deep learning-based positioning methods, due to the complex network structure and long model training time, positioning delays exist in practical applications. 4. While PDR positioning has the characteristic of positioning continuity, over long periods, only relative positioning data is obtained. As time progresses, drift and cumulative errors occur, resulting in significant drift in the positioning results.

[0120] Based on this, the exemplary application of the embodiments of this application in a practical application scenario will be described below.

[0121] In this application embodiment, a fusion indoor positioning method is proposed, which comprehensively considers the application scenarios and complementarity of fingerprint positioning method and PDR method. By using an improved machine learning training model, fingerprint signal strength information is fully utilized to overcome the defects of low accuracy and insufficient utilization of signal strength information in fingerprint positioning technology in related technologies. By using an improved Kalman filter algorithm to fuse fingerprint positioning data and PDR positioning data, the cumulative error of inertial navigation can be eliminated, the influence of environmental factors can be effectively reduced, and the positioning accuracy can be improved.

[0122] The steps are explained below. First, the raw collected data is processed to establish a fingerprint database. A fusion clustering algorithm is used to divide the positioning space into regions, forming sub-fingerprint databases. Then, an improved AdaBoost algorithm is used to train fingerprint positioning prediction models for these sub-fingerprint databases, enabling the discrimination of positioning sub-regions and generating an RSS fingerprint-to-location coordinate mapping model. After the target point is input into each sub-mapping model, the output of the sub-model is used as a pre-reference point for the target point. Bayesian estimation of the likelihood of the reference point is used to maximize the posterior probability to predict the target location. Finally, the fingerprint positioning results are used as observation data, and PDR data is used to build a model of user motion behavior. An improved Kalman filter is used to fuse the fingerprint positioning data and PDR data. This scheme eliminates accumulated inertial navigation errors, improves the stability and continuity of fingerprint positioning, and enhances positioning accuracy.

[0123] The technical solutions of the embodiments of this application are described in detail below:

[0124] (1) Collect initial AP data, establish a fingerprint database, and use an improved fusion clustering algorithm to divide the fingerprint database into K sub-fingerprint databases:

[0125] In a positioning scenario, several wireless access points (APs) are deployed, and reference points (RPs) are selected. At each RP, the signal strength RSS (i.e., sample wireless signal data) received from each access point is collected to form the location fingerprint of that RP. Finally, the location coordinates and location fingerprints of each RP are used to build a fingerprint database. As shown in Formula 1, where m is the number of sampling points, n is the number of signal strengths collected by each sampling point, and the coordinates x and y represent the location coordinates of the sampling points.

[0126]

[0127] Figure 6 An improved fusion clustering flowchart is presented, such as... Figure 6 As shown, each fingerprint point (i.e., sampling point) is first considered as an initial cluster. A similarity matrix is ​​obtained using Formula 2. The closest clusters are merged, and the similarity matrix is ​​recalculated. This process is repeated until all clusters are merged into one. Then, a clustering feature tree (i.e., the first clustering tree) is built, pruned, and merged into k clusters (i.e., the second clustering tree). The sum of squared errors and silhouette coefficients of these k clusters are calculated using Formulas 3 and 4. The pruning and evaluation criteria calculations are repeated until a predetermined number of K clusters is reached. The sum of squared errors and silhouette coefficients of all K clusters are evaluated to determine the optimal number of clusters e. The average value of these K clusters is calculated to obtain the initial cluster centers, resulting in the number of clusters K and the cluster centers. Finally, the K-means algorithm (i.e., the second clustering algorithm) is used to divide the fingerprint database into K sub-fingerprint databases.

[0128]

[0129]

[0130] In the formula, K represents the number of clusters, and C k Represents the i-th class, This represents the cluster center in the s-th dimension of the k-th class. This represents the signal strength collected by the i-th sampling point at the j-th access point.

[0131] Formula 4 represents the calculation of the average distance from sample o to other samples of the same class, representing intra-class dissimilarity; Formula 5 represents the calculation of the average distance from sample o to all samples of other classes, representing inter-class dissimilarity; the silhouette coefficient s(o) of the sample is calculated according to Formula 6.

[0132]

[0133]

[0134]

[0135] (2) Train the sub-model using the improved AdaBoost algorithm for each sub-fingerprint database:

[0136] The localization prediction model is trained for each sub-fingerprint database. An improved AdaBoost algorithm is used to discriminate the localized sub-regions, generating a mapping model between RSS fingerprints and location coordinates. The AdaBoost algorithm for multi-class classification can be described as follows: Assuming G(x) is a weighted sum of a family of basis functions, then the following formula (7) holds:

[0137]

[0138] Among them G m (x) represents the m-th base classifier (i.e., a weak classifier), with weight coefficient a. m (i.e., the weights of the weak classifier) ​​represent the simple classifier G. m The weight of (x) in the final classifier, in the AdaBoost boosting tree model, mainly involves the training of the base classifiers and the determination of their weight coefficients. Each simple classifier G... m (x) The classification error rate of the training set, which is calculated as shown in Formula 8:

[0139]

[0140] Each simple classifier G m The weight coefficient of (x) in the final classification is expressed as:

[0141]

[0142] However, the AdaBoost algorithm is prone to overtraining, leading to performance degradation. Limiting the updates of the weight coefficients can effectively address this issue. Therefore, this application proposes an improved AdaBoost algorithm that sets a threshold W for the weight coefficients in each round of updates. m (i.e., the first threshold).

[0143]

[0144] In formula 10: w m,i This refers to the weight values ​​during the m-th iteration of the algorithm, with the weight threshold W. m It is the mean of the weights of all samples in this round.

[0145] The weight distribution of the training set is updated iteratively, as shown in Equation 11:

[0146]

[0147] Z m Known as the normalization factor,

[0148] As can be seen from the above formula, when the weight coefficient obtained by the iterative calculation is less than the threshold set in this round, the weight of the next iteration will increase; otherwise, the iterative weight of this round will be maintained. This can, to a certain extent, avoid the degradation of algorithm performance caused by the continuous increase of sample weight.

[0149] As shown in Equation 12, these simple base classifiers are then linearly combined to obtain the final classifiers for each sub-fingerprint database using the AdaBoost algorithm.

[0150]

[0151] (3) Estimate the likelihood of each reference point obtained from the AdaBoost training model using Bayesian estimation:

[0152] To reduce the computational cost of Bayesian estimation and improve localization accuracy, it is proposed to use the position coordinates (i.e., reference positions) obtained from each sub-training model as the current reference point, calculate the probability of the test point being at the reference point, and select the point with the highest probability as the estimated position of the test point (i.e., the first measurement position).

[0153] The basic principle of Bayesian posterior estimation is:

[0154]

[0155] Among them, RSSI j P(X) represents the signal strength obtained by the test point from the j-th access point during the online phase of fingerprint positioning. i |RSSI j () represents the position coordinates obtained by each sub-trained model within a given RSSI. j The conditional probability under which RSSI is measured, i.e. j In the case of vectors, the position of the point to be measured appears in X. i The probability of P(RSSI); j |X i ) indicates position X i Measured to a given RSSI j The conditional probability; P(X) i ) indicates position X i The probability of fingerprints is usually determined without considering the differences between fingerprint points, meaning that the position coordinates obtained from the sub-model are equally probable.

[0156] Formula 13 can be transformed into Formula 14:

[0157]

[0158] RSSI j The distribution can be considered as a Gaussian distribution, and P(RSSI) can be calculated using the Gaussian distribution. j |X i ):

[0159]

[0160] Applying the minimum mean square error to the conditional density probability obtained using Bayes' theorem to determine the predicted location of the point to be measured can be expressed as:

[0161] X = E[X] i |RSSI j ]=∫X i P(X i |RSSI j )d(X i ) (Formula 16);

[0162] The algorithm utilizes the training results obtained from the sub-model to limit the number of reference points, which greatly improves the accuracy of estimating the location of the test point and further reduces the impact of RSSI fluctuations on positioning accuracy.

[0163] Figure 7 A flowchart describing the improved fingerprint localization process is presented, including offline and online stages. The offline stage includes: multiple signal data acquisitions at various reference point locations; processing outliers to obtain a fingerprint database; partitioning the fingerprint database using an improved fusion clustering algorithm; dividing the fingerprint database into K sub-fingerprint databases based on the clustering results; and training each of the K sub-fingerprint databases using an improved Adaboost algorithm. The online stage includes: inputting the signal data of the test point into the Adaboost localization models of the K sub-fingerprint databases to obtain the corresponding predicted coordinates of the K localization models; estimating the likelihood of each reference point using Bayesian estimation; and selecting the reference point with the highest probability as the estimated location of the test point.

[0164] (4) Fusion of fingerprint localization and PDR using fuzzy Kalman filtering:

[0165] The Kalman filter estimation model is used to estimate the state and measurement of a dynamic system. The state transition equation and measurement equation are described as follows:

[0166] X t =AL t-1 +Bu t +w (Formula 17);

[0167] Z t =CX t +v (Formula 18);

[0168] Where A, B, and C represent the identity matrix, and variables w and v represent the process noise and measurement noise of the normal probability distribution, respectively. The state estimation process of Kalman filtering can be achieved through the following five steps:

[0169] 1) Prediction stage: Based on the estimated state at the previous time t-1, the predicted value at time t is calculated through the state equation, and the state vector covariance prediction matrix at time t is updated.

[0170] X t =AX t-1 +Bu t (Formula 19);

[0171] P t|t-1 =AP t|t-1 A T +Q (Formula 20);

[0172] 2) Update phase: The estimation results are corrected using the observation vectors and the error covariance is updated.

[0173] K t =P t|t-1 C T (CP t|t-1 C T +R) -1 (Formula 21);

[0174] X t|t =X t|t-1 +K t (Z t -CX t|t-1 ) (Formula 22);

[0175] P t|t =(IK t C)P t|t-1 (Formula 23);

[0176] The measurement noise matrix R and the processing noise matrix Q are used to adjust the filter gain. When R increases, K... t The decrease indicates that if the observation error increases, the filter gain should be reduced to weaken the impact of the observation error on the gain value.

[0177] Because signals are affected by various factors such as signal reflection and noise interference in indoor positioning applications, precise positioning is not possible. Therefore, a fuzzy Kalman filter is proposed, based on the posterior estimation error E... k This is used to change the system measurement noise matrix R. Therefore, matrix R is defined as:

[0178]

[0179] The values ​​of y are as follows:

[0180]

[0181] When 0≤|E k | < 1 indicates that the estimated value is close to the measured value, therefore, R is very small; when 1 ≤ |E k | < 2, in this case, both values ​​are equally likely, therefore, R is slightly larger than in the previous case; when 2 ≤ |E k The fact that the measured value is less reliable than the estimated value indicates that R is very large, causing the system state to shift towards the estimated value.

[0182] The following is a flowchart of an indoor positioning method that integrates improved fingerprint positioning and PDR:

[0183] The method flow for fusing fingerprint localization and inertial navigation algorithms based on fuzzy Kalman filtering is as follows: Figure 8 As shown, the specific steps are as follows:

[0184] Fingerprint positioning module:

[0185] (1) Collect data, preprocess the data, and establish a fingerprint database;

[0186] (2) The fingerprint database is divided into K sub-fingerprint databases using an improved fusion clustering method;

[0187] (3) Train localization prediction models for sub-fingerprint databases respectively, use the improved AdaBoost algorithm to distinguish localization sub-regions, and generate a mapping model between RSS fingerprints and location coordinates.

[0188] (4) Input the fingerprint information collected from the test point into each of the sub-training models obtained in step 3, and output K pre-estimated positions as reference points;

[0189] (5) Use Bayesian estimation to estimate the likelihood of the K reference points in step 4, and take the position with the highest probability as the measurement position of the point to be measured.

[0190] PDR module:

[0191] (1) Accelerometers collect acceleration information to perform step monitoring and step length estimation in real time;

[0192] (2) Calculate the heading information for each step using information collected by the gyroscope and magnetometer;

[0193] (3) Obtain relative motion information.

[0194] Fusion using fuzzy Kalman filters:

[0195] Based on the outputs of the fingerprint module and the PDR module, the data from both are fused using a fuzzy Kalman filter algorithm to obtain the positioning result of the fused system.

[0196] In this application embodiment, a fusion localization method is provided, wherein:

[0197] (1) The improved fusion clustering algorithm divides the fingerprint database into sub-fingerprint databases. The fusion clustering algorithm includes a two-layer structure: agglomerated hierarchical clustering generates a cluster feature tree, and based on the cluster evaluation criteria SSE and silhouette coefficient, it determines the initial cluster centers and number of clusters for K-means clustering. The two methods complement each other, and their combination can quickly divide the fingerprint database into K sub-fingerprint databases. By dividing the fingerprint database into sub-fingerprint databases through fusion clustering, on the one hand, the diversity of data and models is increased, improving the positioning accuracy; on the other hand, it avoids the phenomenon that different initial cluster centers may lead to completely different clustering results due to random selection of initial cluster centers and number of clusters, thus improving the clustering accuracy and further improving the positioning accuracy.

[0198] (2) The improved AdaBoost algorithm is used to train the sub-fingerprint database model, and Bayesian estimation is performed on the output results of the sub-model. The result with the highest probability is selected as the estimated position of the test point.

[0199] The sub-fingerprint database model is trained based on the improved AdaBoost algorithm. The new weight update rule can effectively avoid the degradation of algorithm performance and improve classification accuracy. The collected test point information is input into each sub-fingerprint database model for training. The output result of the sub-model is regarded as the new reference point. The probability of the signal fingerprint being located at the reference point is calculated according to the Bayesian estimation principle. The reference point corresponding to the highest probability is selected as the location estimation result, which greatly reduces the estimation range, improves the computational efficiency, and can improve the positioning accuracy of fingerprint-based localization to a certain extent.

[0200] (3) The fingerprint localization data is fused with the PDR algorithm data based on the improved Kalman filter to obtain the localization result of the fused system. This method can take advantage of the advantages of fingerprint localization (no error accumulation) and PDR localization (high accuracy over short distances) to improve localization accuracy.

[0201] Among related technical solutions, the most commonly used fingerprint positioning algorithm is the KNN classification algorithm. Its main principle is to estimate the distance between the node to be located and the known nodes in the data fingerprint based on the RSSI distance calculation method. The algorithm has relatively low complexity. However, in real-world environments, due to the complexity of indoor environments and the influence of signal fluctuations, it does not fully utilize RSSI fingerprint information. PDR is a method that uses a pre-determined location to track the current position of a pedestrian. In PDR, the initial position can be obtained through fingerprint positioning. Generally, these two positioning data are fused using methods such as Kalman filtering and particle filtering. However, a problem is that it cannot dynamically adjust according to the error between the actual value and the predicted value, which reduces the positioning accuracy.

[0202] To address the aforementioned issues, this application proposes a method for fusion positioning based on improved fingerprint localization and PDR, which offers the following advantages:

[0203] (1) The embodiments of this application use improved fusion clustering to divide the fingerprint database into multiple sub-fingerprint databases, which can comprehensively search the feature space and data structure of training samples and increase sample diversity.

[0204] (2) In this embodiment of the application, the overtraining problem that the AdaBoost algorithm is prone to is addressed by restricting the update of the weight coefficients and training the sub-fingerprint database to obtain the sub-model. The model does not overfit and has excellent generalization ability and strong adaptability to new data samples.

[0205] (3) In this embodiment of the application, the output result with the highest probability is selected as the pre-estimated position of the point to be measured by combining Bayesian estimation, thereby improving the positioning accuracy.

[0206] (4) In this embodiment, PDR positioning data and fingerprint positioning data are fused using an improved Kalman filter to obtain the final target position of the point to be measured. This can eliminate the cumulative error of inertial navigation, improve the stability and continuity of fingerprint positioning, and enhance positioning accuracy.

[0207] It should be noted that although the steps of the method in this application are described in a specific order in the accompanying drawings, this does not require or imply that the steps must be performed in that specific order, or that all the steps shown must be performed to achieve the desired result. Additional or alternative steps may be omitted, multiple steps may be combined into one step, and / or one step may be broken down into multiple steps.

[0208] Based on the foregoing embodiments, this application provides a positioning device, which includes various modules and units included in each module, and can be implemented by a processor; of course, it can also be implemented by specific logic circuits; in the implementation process, the processor can be a central processing unit (CPU), microprocessor (MPU), digital signal processor (DSP) or field programmable gate array (FPGA), etc.

[0209] Figure 9 This is a schematic diagram of the positioning device according to an embodiment of this application, as shown below. Figure 9 As shown, the device 900 includes an acquisition module 901 and a determination module 902, wherein:

[0210] The acquisition module 901 is used to acquire a first measured position of the device to be located at a historical time; wherein the first measured position is obtained based on first wireless signal data received by the device to be located at the historical time; the acquisition module 901 is also used to acquire the inertial navigation data of the device to be located at the current time and the first estimated position at the historical time; the determination module 902 is used to determine measurement noise based on the first estimated position and the first measured position; wherein the measurement noise is used to characterize the positioning accuracy of the first estimated position; the determination module 902 is also used to determine a second estimated position of the device to be located at the current time based on the measurement noise, the inertial navigation data, the first measured position, and the first estimated position.

[0211] In some embodiments, the determining module 902 is configured to determine a posterior estimation error based on the first estimated position and the first measured position; wherein the posterior estimation error is used to pre-measure the accuracy of the second estimated position at the current time; and to determine the measurement noise based on the posterior estimation error.

[0212] In some embodiments, the apparatus further includes an input module and an estimation module. The input module is configured to input the first wireless signal data into a trained first model to obtain a first reference position of the device to be located, and to input the first wireless signal data into a trained second model to obtain a second reference position of the device to be located. An acquisition module 901 is configured to acquire second wireless signal data collected at the first reference position from a first sub-fingerprint database used for training the first model, and to acquire third wireless signal data collected at the second reference position from a second sub-fingerprint database used for training the second model. The estimation module is configured to, based on the second wireless signal data and the first wireless signal data, pre-estimate a first probability that the first reference position is the first measurement position to be determined, and pre-estimate a second probability that the second reference position is the first measurement position to be determined, based on the third wireless signal data and the first wireless signal data. A determination module 902 is configured to determine the first measurement position from the first reference position and the second reference position based on the first probability and the second probability.

[0213] In some embodiments, the apparatus further includes a construction module and a clustering module. The construction module is used to construct a fingerprint database based on the locations of multiple sampling points and the sample wireless signal data collected at each location. The clustering module is used to perform clustering processing on the sample wireless signal data in the fingerprint database to obtain the sub-fingerprint database.

[0214] In some embodiments, the clustering module is configured to perform a first clustering process on the sample wireless signal data in the fingerprint database according to a first clustering algorithm and a specific number, to obtain a specific number of initial cluster centers; wherein, the specific number is greater than 0, and the specific number is used to indicate that the number of categories obtained after the first clustering process is greater than or equal to the specific number; the clustering module is further configured to use the specific number and the specific number of initial cluster centers as input to a second clustering algorithm, and perform a second clustering process on the sample wireless signal data in the fingerprint database according to the second clustering algorithm to obtain the sub-fingerprint database.

[0215] In some embodiments, the apparatus further includes a merging module and a pruning module. The merging module is used to merge the sample wireless signal data from different sampling points in the fingerprint database as different categories to obtain a first clustering tree. The pruning module is used to prune the first clustering tree to obtain at least one second clustering tree. A determining module 902 is used to determine whether the number of second clustering trees is less than a specific number. The pruning module is also used to continue pruning each second clustering tree if the number of second clustering trees is less than the specific number, until the number of clustering trees obtained after pruning is greater than or equal to the specific number, to obtain a third clustering tree greater than or equal to the specific number. The determining module 902 is used to determine the initial cluster center of the third clustering tree based on the sample wireless signal data corresponding to the third clustering tree.

[0216] In some embodiments, the apparatus further includes an adjustment module and a determination module 902, configured to determine a second weight of a first weak classifier based on each group of sample wireless signal data in the sub-fingerprint database and their corresponding first weights and labels; the adjustment module is configured to adjust the first weights of the corresponding sample wireless signal data to obtain a third weight; the determination module 902 is further configured to determine a fourth weight of a second weak classifier based on each group of sample wireless signal data in the sub-fingerprint database and their corresponding third weights and labels; the determination module 902 is further configured to determine sample wireless signal data in each group of sample wireless signal data in the sub-fingerprint database whose third weights satisfy a first condition; the adjustment module is further configured to adjust the third weights of the sample wireless signal data that satisfy the first condition to obtain a corresponding fifth weight; and to continue to determine a sixth weight of a third weak classifier based on each group of sample wireless signal data with a third weight and their corresponding third weights, each group of sample wireless signal data with a fifth weight and their corresponding fifth weights and labels, until the weight of each weak classifier is obtained; and to perform combined processing on each weak classifier based on the weight of each weak classifier to obtain the model.

[0217] In some embodiments, the input module is used to input the wireless signal data of each group of samples in the sub-fingerprint database and their respective initial weights into the first weak classifier to obtain the first category of each group of wireless signal data; the determination module 902 is used to determine the correctness or incorrectness result of the first category based on the first category of the wireless signal data and the corresponding label; and to determine the second weight of the first weak classifier based on the correctness or incorrectness result of each first category.

[0218] In some embodiments, the input module is used to input the wireless signal data of each group of samples in the sub-fingerprint database and their respective third weights into the second weak classifier to obtain the second category of each group of samples; the determination module 902 is used to determine the correctness or incorrectness result of the second category based on the second category of the samples and the corresponding label; and to determine the fourth weight of the second weak classifier based on the correctness or incorrectness result of each second category.

[0219] In some embodiments, the determining module 902 is configured to determine whether the third weight of each sample wireless signal data is less than a first threshold; wherein the first threshold is obtained based on the third weight of each sample wireless signal data; the adjusting module is configured to adjust the third weight of the sample wireless signal data to obtain a corresponding fifth weight if the third weight of the sample wireless signal data is less than the first threshold; and to use the third weight as the fifth weight if the third weight of the sample wireless signal data is greater than or equal to the first threshold.

[0220] The descriptions of the above device embodiments are similar to those of the above method embodiments, and have similar beneficial effects. For technical details not disclosed in the device embodiments of this application, please refer to the descriptions of the method embodiments of this application for understanding.

[0221] It should be noted that, in the embodiments of this application... Figure 9 The module division shown in the positioning device is illustrative and represents only one logical functional division; in actual implementation, other division methods may be used. Furthermore, the functional units in the various embodiments of this application can be integrated into one processing unit, exist as separate physical units, or be integrated into one unit with two or more units. The integrated units can be implemented in hardware, as software functional units, or a combination of both.

[0222] It should be noted that, in the embodiments of this application, if the above-described methods are implemented as software functional modules and sold or used as independent products, they can also be stored in a computer-readable storage medium. Based on this understanding, the technical solutions of the embodiments of this application, or the parts that contribute to related technologies, can be embodied in the form of a software product. This computer software product is stored in a storage medium and includes several instructions to cause an electronic device to execute all or part of the methods described in the various embodiments of this application. The aforementioned storage medium includes various media capable of storing program code, such as USB flash drives, portable hard drives, read-only memory (ROM), magnetic disks, or optical disks. Thus, the embodiments of this application are not limited to any specific hardware and software combination.

[0223] This application provides an electronic device. Figure 10 This is a schematic diagram of the hardware entity of the electronic device according to an embodiment of this application, such as... Figure 10 As shown, the electronic device 100 includes a memory 101 and a processor 102. The memory 101 stores a computer program that can run on the processor 102. When the processor 102 executes the program, it implements the steps in the method provided in the above embodiments.

[0224] It should be noted that the memory 101 is configured to store instructions and applications executable by the processor 102, and can also cache data to be processed or already processed (e.g., image data, audio data, voice communication data and video communication data) in the processor 102 and various modules in the electronic device 100, which can be implemented by flash memory or random access memory (RAM).

[0225] This application provides a computer-readable storage medium storing a computer program thereon, which, when executed by a processor, implements the steps of the method provided in the above embodiments.

[0226] This application provides a computer program product containing instructions that, when run on a computer, cause the computer to perform the steps in the method provided in the above-described method embodiments.

[0227] It should be noted that the descriptions of the storage medium and device embodiments above are similar to the descriptions of the method embodiments above, and have similar beneficial effects. For technical details not disclosed in the storage medium, storage medium, and device embodiments of this application, please refer to the descriptions of the method embodiments of this application for understanding.

[0228] It should be understood that the phrases "one embodiment," "an embodiment," or "some embodiments" mentioned throughout the specification mean that a specific feature, structure, or characteristic related to an embodiment is included in at least one embodiment of this application. Therefore, "in one embodiment," "in one embodiment," or "in some embodiments" appearing throughout the specification do not necessarily refer to the same embodiment. Furthermore, these specific features, structures, or characteristics can be combined in any suitable manner in one or more embodiments. It should be understood that in the various embodiments of this application, the sequence numbers of the above-described processes do not imply a sequential order of execution; the execution order of each process should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of the embodiments of this application. The sequence numbers of the above-described embodiments are merely for descriptive purposes and do not represent the superiority or inferiority of the embodiments. The descriptions of the various embodiments above tend to emphasize the differences between the various embodiments; their similarities or commonalities can be referred to mutually, and for the sake of brevity, they will not be repeated here.

[0229] In this article, the term "and / or" is merely a description of the relationship between related objects, indicating that there can be three kinds of relationships. For example, object A and / or object B can represent three situations: object A exists alone, object A and object B exist simultaneously, and object B exists alone.

[0230] It should be noted that, in this document, the terms "comprising," "including," or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements includes not only those elements but also other elements not expressly listed, or elements inherent to such a process, method, article, or apparatus. Unless otherwise specified, an element defined by the phrase "comprising one..." does not exclude the presence of other identical elements in the process, method, article, or apparatus that includes that element.

[0231] In the several embodiments provided in this application, it should be understood that the disclosed devices and methods can be implemented in other ways. The embodiments described above are merely illustrative. For example, the division of modules is only a logical functional division, and in actual implementation, there may be other division methods, such as: multiple modules or components can be combined, or integrated into another system, or some features can be ignored or not executed. In addition, the coupling, direct coupling, or communication connection between the various components shown or discussed can be through some interfaces, and the indirect coupling or communication connection between devices or modules can be electrical, mechanical, or other forms.

[0232] The modules described above as separate components may or may not be physically separate. The components shown as modules may or may not be physical modules. They may be located in one place or distributed across multiple network units. Some or all of the modules may be selected to achieve the purpose of this embodiment according to actual needs.

[0233] In addition, each functional module in the various embodiments of this application can be integrated into one processing unit, or each module can be a separate unit, or two or more modules can be integrated into one unit; the integrated modules can be implemented in hardware or in the form of hardware plus software functional units.

[0234] Those skilled in the art will understand that all or part of the steps of the above method embodiments can be implemented by hardware related to program instructions. The aforementioned program can be stored in a computer-readable storage medium. When the program is executed, it performs the steps of the above method embodiments. The aforementioned storage medium includes various media that can store program code, such as mobile storage devices, read-only memory (ROM), magnetic disks, or optical disks.

[0235] Alternatively, if the integrated units described above are implemented as software functional modules and sold or used as independent products, they can also be stored in a computer-readable storage medium. Based on this understanding, the technical solutions of the embodiments of this application, or the parts that contribute to related technologies, can be embodied in the form of a software product. This computer software product is stored in a storage medium and includes several instructions to cause an electronic device to execute all or part of the methods described in the various embodiments of this application. The aforementioned storage medium includes various media capable of storing program code, such as mobile storage devices, ROMs, magnetic disks, or optical disks.

[0236] The methods disclosed in the several method embodiments provided in this application can be arbitrarily combined without conflict to obtain new method embodiments.

[0237] The features disclosed in the several product embodiments provided in this application can be arbitrarily combined without conflict to obtain new product embodiments.

[0238] The features disclosed in the several method or device embodiments provided in this application can be arbitrarily combined without conflict to obtain new method or device embodiments.

[0239] The above description is merely an embodiment of this application, but the scope of protection of this application is not limited thereto. Any variations or substitutions that can be easily conceived by those skilled in the art within the scope of the technology disclosed in this application should be included within the scope of protection of this application. Therefore, the scope of protection of this application should be determined by the scope of the claims.

Claims

1. A positioning method, characterized in that, The method includes: Obtain the first measured position of the device to be located at a historical time; wherein the first measured position is obtained based on the first wireless signal data received by the device to be located at the historical time; Obtain the inertial navigation data of the device to be located at the current moment and the first estimated position at the historical moment; Based on the first estimated position and the first measured position, determine the posterior estimation error. Wherein, the posterior estimation error Used to pre-measure the accuracy of the second estimated position at the current moment; Based on the posterior estimation error Determine the measurement noise matrix R; wherein, the measurement noise matrix R is used to characterize the positioning accuracy of the first estimated position; when the posterior estimation error When the value of is within the first interval, the corresponding measurement noise value is When the posterior estimation error When the value of is within the second interval, the corresponding measurement noise value is . When the posterior estimation error When the value of is within the third interval, the corresponding measurement noise value is . Wherein, the posterior estimation error The values ​​increase sequentially within the first interval, the second interval, and the third interval. ; Based on the measurement noise matrix R, the inertial navigation data, the first measurement position, and the first estimated position, determine the second estimated position of the device to be located at the current time; The process of determining the first measurement location includes: The first wireless signal data is input into a trained first model to obtain a first reference position of the device to be located, and the first wireless signal data is input into a trained second model to obtain a second reference position of the device to be located. Obtain second wireless signal data collected at the first reference location from a first sub-fingerprint database used for training the first model, and obtain third wireless signal data collected at the second reference location from a second sub-fingerprint database used for training the second model; Based on the second wireless signal data and the first wireless signal data, a first probability is estimated in advance that the first reference position is the first measurement position to be determined; and based on the third wireless signal data and the first wireless signal data, a second probability is estimated in advance that the second reference position is the first measurement position to be determined. The first measurement position is determined from the first reference position and the second reference position based on the first probability and the second probability.

2. The method according to claim 1, characterized in that, The sub-fingerprint database includes either the first sub-fingerprint database or the second sub-fingerprint database; correspondingly, the process of determining the sub-fingerprint database includes: A fingerprint database is constructed based on the locations of multiple sampling points and the corresponding sample wireless signal data collected at each location; The sample wireless signal data in the fingerprint database are clustered to obtain the sub-fingerprint database.

3. The method according to claim 2, characterized in that, The step of clustering the sample wireless signal data in the fingerprint database to obtain a sub-fingerprint database includes: Based on the first clustering algorithm and a specific number, the sample wireless signal data in the fingerprint database are subjected to the first clustering process to obtain more than or equal to the specific number of initial cluster centers; wherein, the specific number is greater than 0, and the specific number is used to indicate that the number of categories obtained after the first clustering process is greater than or equal to the specific number; The specific number and greater than or equal to the specific number of initial cluster centers are used as input to the second clustering algorithm. According to the second clustering algorithm, the sample wireless signal data in the fingerprint database are subjected to second clustering processing to obtain the sub-fingerprint database.

4. The method according to claim 3, characterized in that, The step of performing a first clustering process on the sample wireless signal data in the fingerprint database according to a first clustering algorithm and a specific number to obtain an initial cluster center of greater than or equal to a specific number includes: The sample wireless signal data from different sampling points in the fingerprint database are classified into different categories, and the sample wireless signal data from each sampling point are merged to obtain the first clustering tree. The first clustering tree is pruned to obtain at least one second clustering tree; Determine whether the number of the second clustering trees is less than a specific number; If the number of second cluster trees is less than a certain number, continue to prune each second cluster tree until the number of cluster trees obtained after pruning is greater than or equal to a certain number, and obtain a third cluster tree greater than or equal to a certain number. Based on the sample wireless signal data corresponding to the third clustering tree, determine an initial clustering center for the third clustering tree that is greater than or equal to a specific number.

5. The method according to claim 1, characterized in that, The model includes either the first model or the second model, and correspondingly, the training process of the model includes: Based on the wireless signal data of each group of samples in the sub-fingerprint database and their corresponding first weights and labels, the second weights of the first weak classifier are determined. The first weight of the corresponding sample wireless signal data is adjusted to obtain the third weight; Based on the wireless signal data of each group of samples in the sub-fingerprint database and their corresponding third weights and labels, the fourth weight of the second weak classifier is determined. Identify the wireless signal data whose third weight satisfies the first condition in each group of sample wireless signal data in the sub-fingerprint database; Adjust the third weight of the sample wireless signal data that meets the first condition to obtain the corresponding fifth weight; and Continue to determine the sixth weight of the third weak classifier based on the wireless signal data of each group of samples with the third weight and the corresponding third weight, the wireless signal data of each group of samples with the fifth weight and the corresponding fifth weight, and the label, until the weight of each weak classifier is obtained. Based on the weight of each weak classifier, perform combination processing on each weak classifier to obtain the model.

6. The method according to claim 5, characterized in that, The first weight is the initial weight. The step of determining the second weight of the first weak classifier based on the wireless signal data of each group of samples in the sub-fingerprint database and their corresponding first weights and labels includes: The wireless signal data of each group of samples in the sub-fingerprint database and their corresponding initial weights are input into the first weak classifier to obtain the first category of each group of wireless signal data. Based on the first category and corresponding label of the sample wireless signal data, determine the correctness or incorrectness of the first category; The second weight of the first weak classifier is determined based on the correct and incorrect results of each of the first categories.

7. The method according to claim 5, characterized in that, The step of determining the fourth weight of the second weak classifier based on the wireless signal data of each group of samples in the sub-fingerprint database and their corresponding third weights and labels includes: The wireless signal data of each group of samples in the sub-fingerprint database and their respective third weights are input into the second weak classifier to obtain the second category of each group of wireless signal data. Based on the second category and the corresponding label of the sample wireless signal data, determine the correctness or incorrectness of the second category; The fourth weight of the second weak classifier is determined based on the correct and incorrect results of each of the second categories.

8. The method according to claim 6, characterized in that, The adjustment of the third weight of the sample wireless signal data that satisfies the first condition to obtain the corresponding fifth weight includes: Determine whether the third weight of each of the sample wireless signal data is less than a first threshold; wherein the first threshold is obtained based on the third weight of each of the sample wireless signal data. If the third weight of the sample wireless signal data is less than the first threshold, the third weight of the sample wireless signal data is adjusted to obtain the corresponding fifth weight; If the third weight of the sample wireless signal data is greater than or equal to the first threshold, the third weight is used as the fifth weight.

9. A positioning device, characterized in that, include: An acquisition module is used to acquire the first measured position of the device to be located at a historical time; wherein the first measured position is obtained based on the first wireless signal data received by the device to be located at the historical time. The acquisition module is further configured to acquire the inertial navigation data of the device to be located at the current moment and the first estimated position at the historical moment; The determination module is used to determine the posterior estimation error based on the first estimated position and the first measured position. Wherein, the posterior estimation error The accuracy of the second estimated position at the current moment is used to pre-measure the accuracy; based on the posterior estimation error. Determine the measurement noise matrix R; wherein, the measurement noise matrix R is used to characterize the positioning accuracy of the first estimated position; when the posterior estimation error When the value of is within the first interval, the corresponding measurement noise value is When the posterior estimation error When the value of is within the second interval, the corresponding measurement noise value is . When the posterior estimation error When the value of is within the third interval, the corresponding measurement noise value is . Wherein, the posterior estimation error The values ​​increase sequentially within the first interval, the second interval, and the third interval. ; The determining module is further configured to determine a second estimated position of the device to be located at the current time based on the measurement noise matrix R, the inertial navigation data, the first measurement position, and the first estimated position; The input module is used to input the first wireless signal data into a trained first model to obtain a first reference position of the device to be located, and to input the first wireless signal data into a trained second model to obtain a second reference position of the device to be located. The acquisition module is used to acquire second wireless signal data collected at the first reference location from a first sub-fingerprint database used for training the first model, and to acquire third wireless signal data collected at the second reference location from a second sub-fingerprint database used for training the second model. The estimation module is configured to, based on the second wireless signal data and the first wireless signal data, pre-estimate a first probability that the first reference position is the first measurement position to be determined, and based on the third wireless signal data and the first wireless signal data, pre-estimate a second probability that the second reference position is the first measurement position to be determined; The determining module is configured to determine the first measurement position from the first reference position and the second reference position based on the first probability and the second probability.

10. An electronic device comprising a memory and a processor, the memory storing a computer program executable on the processor, characterized in that, When the processor executes the program, it implements the method according to any one of claims 1 to 8.

11. A computer-readable storage medium having a computer program stored thereon, characterized in that, When the computer program is executed by a processor, it implements the method as described in any one of claims 1 to 8.

Citation Information

Patent Citations

  • Indoor positioning method based on adaptive non-trace Kalman filtering

    CN109323695A

  • Dynamic fuzzy matching indoor positioning method for overcoming equipment difference

    CN111757257A