An indoor positioning method, apparatus, device and storage medium

By collecting and classifying echo fingerprint information, combining deep learning and particle filtering algorithms, and fusing echo positioning and PDR information, the problem of PDR error accumulation was solved, and high-precision indoor positioning was achieved.

CN116106912BActive Publication Date: 2026-03-17WUHAN UNIV
View PDF 2 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2023-03-22
Publication Date
2026-03-17

AI Technical Summary

Technical Problem

In existing technologies, pedestrian dead reckoning (PDR) algorithms suffer from error accumulation in indoor positioning, leading to a gradual decrease in positioning accuracy and an inability to provide precise location information.

Method used

By collecting echo fingerprint information within the positioning area, a deep learning-trained echo fingerprint classifier is used. Combined with particle filtering and PDR algorithms, echo positioning information and location calculation information are fused to correct the positioning coordinates, achieving sub-meter level indoor positioning accuracy.

Benefits of technology

Without requiring additional hardware, the problem of PDR error accumulation was solved at low cost, achieving sub-meter level indoor positioning accuracy.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116106912B_ABST
    Figure CN116106912B_ABST
Patent Text Reader

Abstract

The application discloses an indoor positioning method, device and equipment and a storage medium. The method comprises the following steps: collecting echo fingerprint information of a chirp audio signal emitted by a transmission source in a positioning area; training echo fingerprint features of different positions learned after learning to obtain an echo fingerprint classifier; classifying the echo fingerprint classifier to obtain position label information, and mapping the position label information to obtain geographical position information of the transmission source as echo positioning information of the transmission source; collecting information of a sensor in a process of the transmission source, and obtaining position solution information of the transmission source by using a PDR algorithm; and fusing the echo positioning information and the position solution information to obtain positioning coordinates of an area where the transmission source is located. The application can better solve the error accumulation problem of PDR, and realizes sub-meter indoor positioning accuracy at a low cost.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention relates to the field of computer technology, and in particular to an indoor positioning method, apparatus, device, and storage medium. Background Technology

[0002] With the advancement of urban modernization, the demand for location-based services is growing stronger, such as intelligent route planning, targeted advertising, and nearby restaurant recommendations in large indoor environments. However, due to interference from urban canyon effects and multipath effects, satellite navigation systems experience severe signal attenuation in indoor scenarios, rendering GPS unable to provide accurate location information. Therefore, designing a low-cost, robust indoor positioning method is of great significance.

[0003] Among existing technologies, the Pedestrian Dead Reconciliation (PDR) algorithm is considered an excellent positioning algorithm. It can locate without relying on external measurement sources such as satellites or radio frequency signals, resulting in extremely low positioning costs. However, over time, the PDR algorithm suffers from error accumulation, and its positioning accuracy gradually decreases, leading to unsatisfactory performance.

[0004] Therefore, improving indoor positioning accuracy is a technical problem that urgently needs to be solved. Summary of the Invention

[0005] The main objective of this invention is to provide an indoor positioning method, device, equipment, and storage medium. It completes the feature extraction of echo fingerprints through a data-driven approach and performs echo classification using deep learning. The PDR position calculation information is corrected by using echo positioning information. This not only eliminates the need to deploy any additional hardware facilities but also effectively solves the error accumulation problem of PDR, achieving sub-meter-level indoor positioning accuracy at a low cost.

[0006] In a first aspect, this application provides an indoor positioning method, which includes the steps of: collecting echo fingerprint information of chirp audio signals emitted by a source within the positioning area;

[0007] An echo fingerprint classifier is obtained by training on echo fingerprint information and learning echo fingerprint features at different locations.

[0008] The echo fingerprint classifier is used to classify the location tag information, and the location tag information is mapped to obtain the geographical location information of the transmitting source, which is used as the echo positioning information of the transmitting source;

[0009] Information from sensors during the transmission source's movement is collected, and the position calculation information of the transmission source is obtained using the PDR algorithm;

[0010] By fusing the echo positioning information and the location calculation information, the positioning coordinates of the area where the transmitting source is located are obtained.

[0011] In conjunction with the first aspect mentioned above, as an optional implementation method, based on the particle filtering algorithm, a large number of particles are initialized in the positioning area, and the distance between each particle and the observation value is calculated and different weights are assigned to the particles;

[0012] The weights of all particles are normalized, and low-weight particles are filtered out. New particles are formed by resampling using high-weight particles.

[0013] The location coordinates of the emission source region are obtained by weighted summation of the coordinates of all new particles.

[0014] In conjunction with the first aspect mentioned above, as an optional implementation method, according to the formula... Calculate the weight of each particle, where (x0, y0) represents the position of the actual observation, (x1, y1) represents the position of the particle, δ represents the variance, and pi represents the i-th particle.

[0015] According to the formula Calculate the positioning coordinates of the positioning area, where, This indicates the final positioning coordinates. U represents the weight of the i-th particle. i This represents the coordinates of the i-th particle.

[0016] In conjunction with the first aspect mentioned above, as an optional implementation method, the Euclidean distance between the coordinates of the echo location and the position coordinates of the transmitting source calculated by PDR is calculated.

[0017] When the Euclidean distance is greater than the first set threshold, it is determined that the classification result of the echo fingerprint classifier is incorrect, and the particle is updated using the step size and direction information of the emission source calculated by PDR.

[0018] When the Euclidean distance is less than the second set threshold, it is determined that the error of the position coordinates of the emission source calculated by the PDR is within a controllable range, and the particle is updated using the step size and direction information of the emission source calculated by the PDR.

[0019] When the Euclidean distance is between the first set threshold and the second set threshold, the error in the calculated position coordinates of the emission source by the PDR begins to accumulate gradually. The result of the echo positioning is used to correct the error and is used as the observation value for particle update.

[0020] In conjunction with the first aspect mentioned above, as an optional implementation method, the positioning area is divided into grids of a preset size. After a chirp audio signal of a preset frequency is emitted through the mobile phone speaker, the response echo in each grid is collected using the mobile phone microphone.

[0021] In conjunction with the first aspect mentioned above, as an optional implementation method, the collected echo fingerprint information is filtered, and the filtered response echoes are used to generate an echo dataset. The filtering includes: blank frame filtering, noise filtering, and echo extraction.

[0022] The echo audio files in WAV format in the dataset are divided into frames and Hamming windows are added. The frequency domain information of each frame is obtained by Fourier transform.

[0023] The frequency domain information of each frame is fused to obtain a spectrogram, and the spectrogram is input into a convolutional neural network for training until the model converges and learns the echo fingerprint features at different locations to obtain an echo fingerprint classifier.

[0024] In conjunction with the first aspect mentioned above, as an optional implementation method, accelerometer information, magnetometer information, and gyroscope information are collected during the movement of the transmitter source;

[0025] Based on the acceleration sensor information, a zero-crossing detection method is used for step detection, and the Weinberg algorithm is used for step size estimation to determine the number of steps and step size of the emission source.

[0026] Based on the information from the accelerometer, magnetometer, and gyroscope, the azimuth angle of the transmitter is determined. The azimuth angle is the angle between the direction of travel of the transmitter and the geomagnetic north pole.

[0027] The position calculation information of the transmitter is obtained by using the number of steps, step size, and direction angle of the transmitter.

[0028] Secondly, this application provides an indoor positioning device, which includes: a data acquisition unit for acquiring echo fingerprint information of chirp audio signals emitted by a source within the positioning area;

[0029] The feature extraction unit is used to obtain an echo fingerprint classifier by learning echo fingerprint features at different locations based on the echo fingerprint information after training.

[0030] The classification unit is used to classify the echo fingerprint classifier to obtain location tag information, and map the location tag information to obtain the geographical location information of the transmitter, which serves as the echo positioning information of the transmitter.

[0031] The computing unit is used to collect information from the sensors during the movement of the transmitter and to obtain the position calculation information of the transmitter using the PDR algorithm.

[0032] The fusion unit is used to fuse the echo positioning information and the position calculation information to obtain the positioning coordinates of the area where the transmitting source is located.

[0033] Thirdly, this application also provides an electronic device, the electronic device comprising: a processor; and a memory storing computer-readable instructions, which, when executed by the processor, implement the method described in any one of the first aspects.

[0034] Fourthly, this application also provides a computer-readable storage medium storing computer program instructions that, when executed by a computer, cause the computer to perform the method described in any of the first aspects.

[0035] This application provides an indoor positioning method, apparatus, device, and storage medium. The method includes the following steps: acquiring echo fingerprint information of chirp audio signals emitted by a transmitter within a positioning area; obtaining an echo fingerprint classifier based on echo fingerprint features learned from different locations after training on the echo fingerprint information; classifying the echo fingerprint classifier to obtain location label information, and mapping the location label information to obtain the geographical location information of the transmitter, which serves as the echo positioning information of the transmitter; acquiring sensor information during the transmitter's movement, and using a PDR algorithm to obtain the transmitter's location calculation information; fusing the echo positioning information and the location calculation information to obtain the positioning coordinates of the area where the transmitter is located. This application completes echo fingerprint feature extraction through a data-driven approach and uses deep learning for echo classification. It corrects the PDR location calculation information using echo positioning information, eliminating the need for any additional hardware deployment and effectively solving the error accumulation problem of PDR, achieving sub-meter-level indoor positioning accuracy at a low cost.

[0036] It should be understood that the above general description and the following detailed description are merely exemplary and do not limit the invention. Attached Figure Description

[0037] The accompanying drawings, which are incorporated in and form part of this specification, illustrate embodiments consistent with the invention and, together with the description, serve to explain the principles of the invention.

[0038] Figure 1 This is a flowchart of an indoor positioning method provided in the embodiments of this application;

[0039] Figure 2 This is a schematic diagram of an indoor positioning device provided in an embodiment of this application;

[0040] Figure 3 This is a schematic diagram of an electronic device provided in an embodiment of this application;

[0041] Figure 4 This is a schematic diagram of a computer-readable program medium provided in an embodiment of this application. Detailed Implementation

[0042] Exemplary embodiments will now be described in detail, examples of which are illustrated in the accompanying drawings. When the following description relates to the drawings, unless otherwise indicated, the same numbers in different drawings denote the same or similar elements. The embodiments described in the following exemplary embodiments do not represent all embodiments consistent with the present invention. Rather, they are merely examples of apparatuses and methods consistent with some aspects of the invention as detailed in the appended claims.

[0043] Furthermore, the accompanying drawings are merely illustrative of this disclosure and are not necessarily drawn to scale. Some of the block diagrams shown in the drawings represent functional entities and do not necessarily correspond to physically or logically independent entities.

[0044] This application provides an indoor positioning method, apparatus, device, and storage medium. It completes the feature extraction of echo fingerprints through a data-driven approach and performs echo classification using deep learning. The PDR position calculation information is corrected by using echo positioning information. Not only does it not require the deployment of any additional hardware facilities, but it can also effectively solve the error accumulation problem of PDR, achieving sub-meter level indoor positioning accuracy at a low cost.

[0045] To achieve the aforementioned technical effects, the general concept of this application is as follows:

[0046] An indoor positioning method, the method comprising the steps of:

[0047] S101: Collect echo fingerprint information after the chirp audio signal emitted by the transmitter within the positioning area.

[0048] S102: Based on the echo fingerprint features learned from different locations after training with echo fingerprint information, an echo fingerprint classifier is obtained.

[0049] S103: The echo fingerprint classifier is used to classify the location tag information, and the location tag information is mapped to obtain the geographical location information of the transmitter, which is used as the echo positioning information of the transmitter.

[0050] S104: Collect information from sensors during the transmission source's movement and use the PDR algorithm to obtain the transmission source's position calculation information.

[0051] S105: By fusing the echo positioning information and the position calculation information, the positioning coordinates of the area where the transmitting source is located are obtained.

[0052] The embodiments of this application will be further described in detail below with reference to the accompanying drawings.

[0053] Reference Figure 1 , Figure 1 The diagram shown is a flowchart of an indoor positioning method provided by the present invention. Figure 1 As shown, the method includes the following steps:

[0054] Step S101: Collect echo fingerprint information after the chirp audio signal emitted by the transmitter within the positioning area.

[0055] Specifically, the positioning area is divided into grids of a preset size. After a chirp audio signal of a preset frequency is emitted through the phone's speaker, the response echo in each grid is collected using the phone's microphone.

[0056] To further explain, the echo fingerprinting process involves using a mobile phone speaker to emit a chirp audio signal at a specific frequency. This chirp is absorbed by the indoor environment and reflected back to the microphone. The steps are as follows: First, the area to be located is divided into a 0.6m x 0.6m grid. Echo collection is performed within each grid. The process involves playing a 15K-20KHz chirp signal through the phone speaker for 10ms, with 100ms intervals between each chirp. The phone's microphone is used to collect the response echoes. This is repeated 3000 times within each grid, and the collected echoes are compiled into a dataset.

[0057] Understandably, the positioning area is divided into grids, with each 0.6m*0.6m grid corresponding to a location label, such as location 1. When a user emits an excitation signal in different grids within the area and extracts the echo, the classifier can deduce its location label.

[0058] For each location label, there is a corresponding actual physical coordinate on the map. For example, a 6m*6m area is divided into 0.6m*0.6m squares, which means there are 10 squares on each horizontal axis. Each square is given a location label, such as location n. Location n corresponds to a part of this 6m*6m area, which is the actual geographical location information of n.

[0059] Optionally, an echo acquisition program can be developed using Android Studio to achieve semi-automatic echo acquisition and upload the echo data to a specified database through simple UI interaction. Understandably, this involves traversing all positioning areas to acquire echoes, ensuring the correct training of the subsequent echo fingerprint classifier and the extraction of feature fingerprints from the echoes.

[0060] Optionally, the location area can be divided into 0.6m*0.6m grids, and each grid can be numbered as a classification label for the subsequent dataset.

[0061] Optionally, the echo dataset creation includes blank frame filtering, noise filtering, and echo extraction. The raw echo data obtained from the microphone includes blank frames at the beginning and end. First, the blank frames at the beginning and end of the audio are filtered out. Second, the echo audio part includes the part directly reaching the speaker and the part absorbed and reflected by the indoor environment, so audio segmentation is required. The first 10ms of the part directly reaching the microphone from the speaker is removed. In addition, the mechanical vibration attenuation of the mobile phone speaker hardware will also generate about 1ms of noise, which is removed, and the subsequent 80ms is extracted as echo data.

[0062] It's important to note that the audio received by the microphone is a long audio segment, including blank frames and mechanical attenuation sections. Only the 80ms portion from s1.3 is used to create the dataset. For example, the chirp signal is 10ms long and is sent every 100ms. The speaker's operation throughout the timeline is as follows: send the chirp signal every 10ms, wait for 90ms, and then repeat the above operation. The microphone records all 100ms of this time, extracts 80ms of it as echo data, and uses this portion to create the dataset.

[0063] Step S102: Based on the echo fingerprint features learned at different locations after training based on the echo fingerprint information, an echo fingerprint classifier is obtained.

[0064] Specifically, the collected echo fingerprint information is filtered, and the filtered response echoes are used to generate an echo dataset. The filtering includes blank frame filtering, noise filtering, and echo extraction. The WAV format echo audio files in the dataset are segmented into frames and subjected to Hamming windowing. The frequency domain information of each frame is obtained using short-time Fourier transform. The frequency domain information of each frame is fused to obtain a spectrogram, and the spectrogram is input into a convolutional neural network for training until the model converges and learns the echo fingerprint features at different locations to obtain an echo fingerprint classifier.

[0065] To make it easier to understand, the collected echoes are labeled and divided into training, validation, and test sets. The echo audio is converted into a spectrogram and input into a convolutional neural network for training until the model converges and learns the echo fingerprint features at different locations, ultimately obtaining an echo fingerprint classifier.

[0066] Understandably, during the model input phase, the WAV format echo audio file is segmented into frames, Hamming windows are applied, and short-time Fourier transform is used to obtain the frequency domain information of each frame. These are then fused to obtain a spectrogram, which is finally converted into a tensor and input into the model for training. During the model preprocessing phase, random volume enhancement is used to increase data diversity. During the model training phase, a soft-labeled loss function is used to avoid overfitting.

[0067] In one embodiment, the user can select audio sources of different durations and frequencies. The default selection is audio files in the DefaultPlayFiles directory. The user can set the number of acquisitions, such as 1, 5, 10, 20, and 50. The user can choose to acquire sensor data or both sensor data and echo data, corresponding to the RECORD SENSOR ONLY and RECORD ECHO AND SENSOR INFO buttons, respectively. The acquired audio data is used by a Python program to extract echo data and convert it into spectrogram information.

[0068] Specifically, soft labeling, also known as label smoothing, involves using uniformly distributed class weights to generate new label vectors.

[0069]

[0070] Where k is the total number of categories in a multi-class classification. Represents the new label vector For the i-th component, α is a small hyperparameter (usually taken as 0.1), that is:

[0071]

[0072] The smoothed label distribution is equivalent to adding noise to the true distribution, which prevents the model from being overconfident in the correct label, making the difference between the predicted positive and negative sample output values ​​less large, thereby avoiding overfitting and improving the model's generalization ability.

[0073] It's important to note that the role of a classifier is to extract features and then classify them. Deep learning-based models use a data-driven approach to transform an image or audio clip into a feature vector. This feature vector includes information about the presence or absence of a specific feature, which is then used for differentiation. Therefore, after training, the model knows how to extract features from the echo and then classify them. It's worth noting that deep learning employs a data-driven approach, meaning it repeatedly captures echoes within a single square and uses this data to train the model.

[0074] It should be noted that echo localization consists of two stages. The first stage is the database construction stage, which requires collecting echo information in advance at the location, that is, collecting the echo fingerprint information of the chirp audio signal emitted by the transmitter in the location area. The purpose is to use this echo data to train the classifier. The second stage is the online localization stage. In the online stage, the system has already obtained the classifier. When the user holds a smartphone, it emits an excitation signal and captures the echo. At this time, the classifier classifies the echo to obtain the user's location tag, and thus obtains the location information.

[0075] Step S103: Classify the echo fingerprint classifier to obtain location tag information, and map the location tag information to obtain the geographical location information of the transmitter, which is used as the echo positioning information of the transmitter.

[0076] Specifically, users continuously emit chirp signals while walking, and the echo response is captured by a microphone. The echo fingerprint classifier is used to classify the echo fingerprints to obtain location tag information, and the location tag information is mapped to obtain the user's real geographical location information, which serves as the echo positioning information of the transmitting source.

[0077] Optionally, due to the Doppler effect, some echo data may be misclassified. To address this, the fusion algorithm filters out classification results with low confidence and then performs multiple votes within a single gait to arrive at the final classification result.

[0078] Step S104: Collect information from the sensors during the movement of the transmitter and use the PDR algorithm to obtain the position calculation information of the transmitter.

[0079] Specifically, the process involves collecting accelerometer, magnetometer, and gyroscope information during the transmitter's movement. Based on the accelerometer information, a zero-crossing detection method is used for step detection, and the Weinberg algorithm is employed for step size estimation to determine the transmitter's number of steps and step size. The transmitter's orientation angle is determined based on the accelerometer, magnetometer, and gyroscope information; this orientation angle is the angle between the transmitter's direction of travel and the Earth's magnetic north pole. Using the transmitter's number of steps, step size, and orientation angle, the PDR algorithm is used to obtain the transmitter's position information. Essentially, the PDR position information is obtained by calculating the transmitter's coordinates (x, y) at each step based on the step size, orientation, and number of steps.

[0080] To further clarify, the process involves collecting sensor information from the user's mobile phone during movement, including data from the accelerometer, magnetometer, and gyroscope. Next, the acquired accelerometer data is filtered to remove noise and spurious peaks. A zero-crossing detection method is used for step detection, and the Weinberg algorithm is used for step size estimation. The azimuth angle is then calculated by combining the information from the three sensors. Finally, the PDR algorithm is used to obtain the user's position information. In essence, based on the accelerometer information, a zero-crossing detection method is used for step detection, and the Weinberg algorithm is used for step size estimation to determine the number and size of steps for the transmitter. Based on the accelerometer, magnetometer, and gyroscope information, the azimuth angle of the transmitter (the angle between the pedestrian's walking direction and the Earth's magnetic north pole) is determined.

[0081] In one embodiment, during the data acquisition phase, the sensor sampling rate needs to be set as high as possible, which corresponds to setting the parameter to SensorManager.SENSOR_DELAY_FASTEST in Android Studio.

[0082] Optionally, when performing gait updates, the user's new position information is calculated as follows: x1 = x0 + lsinθ; y1 = y0 + lcosθ, where (x0, y0) represents the user's coordinates in the previous step, (y1, x1) represents the current coordinates, l represents the step size, and θ represents the magnetic north angle.

[0083] Step S105: Fuse the echo positioning information and the position calculation information to obtain the positioning coordinates of the area where the transmitting source is located.

[0084] Specifically, according to the particle filtering algorithm, a large number of particles are initialized in the positioning area, the position information of the particles is updated step by step using sensor data, and the distance between each particle and the observation value is calculated and different weights are assigned to the particles; the weights of all particles are normalized, and particles with low weights are filtered out, and particles with high weights are resampled to form new particles; the positioning coordinates of the region where the emission source is located are obtained by weighted summation of the coordinates of all new particles.

[0085] To further illustrate this point, to ensure the accuracy of the positioning, multiple echo fingerprint recognitions are performed at the starting position of the person's movement. In this paper, this is set to five times. The collected echo data is input into a classifier, and the multiple classification results are voted on to ensure the accuracy of the initial position.

[0086] Based on the particle filtering algorithm, a large number of particles are initialized in the localization area (set to 10000 in this paper). The particle positions are then updated step by step according to the step size and direction information of the emission source calculated by PDR. The distance between each particle and the observation value is calculated, and different weights are assigned to the particles. Where (x0, y0) represents the location of the actual observed value, (x1, y1) represents the location of the particle, δ represents the variance, which is set to 1 in this paper, and p i Let i represent the i-th particle.

[0087] After updating the particle weights, normalize all particle weights: The resampling phase filters out a large number of low-weight particles and resamples them using high-weight particles to form new particles. Finally, the positioning coordinates are obtained by weighted summation of the coordinates of all the newly formed particles. in, This indicates the final positioning coordinates. U represents the weight of the i-th particle. i This represents the coordinates of the i-th particle.

[0088] To illustrate the particle algorithm, let's consider an example. Suppose we need to predict a vehicle's trajectory, but the external environment is unknown. We need to determine the vehicle's position, meaning its speed and direction are known. Sensors on the vehicle can determine its distance from a target reference point, i.e., the observed value (e.g., the temperature at the top of a long stick is too high to measure; we assume the temperature dissipates with distance, and the temperature at the bottom can be measured, allowing us to deduce the top temperature). Particle filtering is typically used to estimate the car's position. First, many particles, say 100,000, are distributed across an area to simulate the car's state. The particles move at the same speed and direction as the car. Since many particles are inaccurate, each particle needs a weight. If a particle's distance from the target reference point is D, and the observed value is D1, the smaller the difference between D and D1, the greater the weight. Thus, each particle is assigned a weight; higher weights indicate a closer approximation of the true position, while lower weights are filtered out. The final result is that the particles gradually converge to an accurate position.

[0089] It should also be noted that Wpi represents the weight of the i-th particle. For example, if the weights of three particles are 1, 4, and 5, mathematically a normalization process is usually performed to make them 0.1, 0.4, and 0.5 respectively, with the weights summing to 1. Moreover, after resampling, some weights will be filtered out, leaving only particles with weights of 1 and 4. In this case, the weights are redistributed to 0.2 and 0.8 respectively.

[0090] In one embodiment, the Euclidean distance between the coordinates of the echo-based localization and the position coordinates of the transmitter calculated by the PDR is calculated. When the Euclidean distance is greater than a set threshold A, it is determined that the classification result of the echo fingerprint classifier is incorrect, and the particle is updated using the step size and direction information of the transmitter calculated by the PDR. When the Euclidean distance is less than a set threshold B, it is determined that the error of the position coordinates of the transmitter calculated by the PDR is within a controllable range, and the particle is updated directly using the step size and direction information of the transmitter calculated by the PDR. When the Euclidean distance is between thresholds A and B, it is determined that the error of the position coordinates of the transmitter calculated by the PDR begins to accumulate gradually, and the result of the echo-based localization is used for correction and used as an observation value for particle update.

[0091] To further clarify, and to ensure the reliability of PDR gait information and echo positioning, the fusion algorithm integrates the results of PDR positioning and echo positioning. At the starting point of positioning, multiple classification positioning operations are performed to ensure the accuracy of the initial position. In the initial stage of PDR error accumulation, PDR dead reckoning is still used for position updates. Once the PDR error accumulates to a specified threshold, echo positioning information is used for correction. Simultaneously, if a large error occurs in echo positioning, only PDR information (the position calculation information of the transmitter) is used for position updates.

[0092] Because the PDR algorithm suffers from error accumulation, particle filtering incorporates echo location information. When performing the fusion positioning algorithm, the Euclidean distance between the echo location coordinates and the PDR-calculated coordinates is first calculated. If the distance exceeds a certain threshold (set to 2m in this paper), the echo fingerprint classifier is considered to have made a mistake, and the PDR-calculated result is used for particle updates. If the distance is less than a certain threshold (set to 0.5m in this paper), the PDR error is considered to be within a controllable range, and the PDR information (the position calculation information of the transmitter) is directly used for particle updates. If the distance is between these two thresholds, it indicates that the PDR error is starting to accumulate, and the echo location result is used for correction and then used as the observation value for particle updates.

[0093] It should be noted that two coordinate information (echo positioning information and position calculation information) are fused. However, the PDR information will gradually become inaccurate over time. The echo information can be used to correct this. Fusing these two types of information, i.e., multimodal information, can improve positioning performance.

[0094] It's important to note that while the PDR algorithm provides coordinate information for each location update, it relies on the previous location coordinates. This means that if a previous PDR update had a 0.1m positioning error, this error will accumulate and become increasingly larger, leading to increasingly inaccurate positioning information. Simultaneously, during each update, the echo classifier also performs a classification, assigning a category label, which can be converted into coordinates. When the PDR positioning information becomes inaccurate, the positioning coordinates obtained from the echo are used for correction. However, the echo classifier may not classify all locations correctly; for example, it might misclassify location 1 as location 10. In this case, the PDR information is used for updating. Note that the error of a single PDR step is relatively small, such as 0.1m. This fusion of information from both methods yields the positioning coordinates of the location area.

[0095] Understandably, this application employs a simplified version of the EcapaTdnn model as the echo fingerprint classifier, and completes the feature extraction of echo fingerprints through a data-driven approach (deep learning). By using deep learning for echo classification and utilizing echo positioning information to correct PDR location estimation information, not only is no additional hardware deployment required, but the error accumulation problem of PDR can also be effectively solved, achieving sub-meter level indoor positioning accuracy at a low cost.

[0096] Reference Figure 2 , Figure 2 The diagram shown is a schematic of an indoor positioning device provided by the present invention. Figure 2 As shown, the device includes:

[0097] Acquisition unit 201: It is used to acquire echo fingerprint information after the chirp audio signal emitted by the transmitter within the positioning area.

[0098] Feature extraction unit 202: It is used to obtain an echo fingerprint classifier by learning echo fingerprint features at different locations based on the echo fingerprint information after training.

[0099] Classification unit 203: It is used to classify the echo fingerprint classifier to obtain location tag information, and map the location tag information to obtain the geographical location information of the transmitter, as the echo positioning information of the transmitter.

[0100] Calculation unit 204: It is used to collect information from the sensors during the movement of the transmitter and to obtain the position calculation information of the transmitter using the PDR algorithm.

[0101] Fusion unit 205: It is used to fuse the echo positioning information and the position calculation information to obtain the positioning coordinates of the area where the transmitting source is located.

[0102] Furthermore, in one possible implementation, the computing unit 204 is also used to initialize a large number of particles in the positioning area according to the particle filtering algorithm, and calculate the distance between each particle and the observation value and assign different weights to the particles.

[0103] The weights of all particles are normalized, and low-weight particles are filtered out. New particles are formed by resampling using high-weight particles.

[0104] The location coordinates of the emission source region are obtained by weighted summation of the coordinates of all new particles.

[0105] Furthermore, in one possible implementation, the calculation unit 204 is also used to calculate according to the formula Calculate the weight of each particle, where (x0, y0) represents the position of the actual observation, (x1, y1) represents the position of the particle, δ represents the variance, and pi represents the i-th particle.

[0106] According to the formula Calculate the positioning coordinates of the positioning area, where, This indicates the final positioning coordinates. U represents the weight of the i-th particle. i This represents the coordinates of the i-th particle.

[0107] Furthermore, in one possible implementation, an update unit is also included, which is used to calculate the Euclidean distance between the coordinates of the echo location and the position coordinates of the transmitting source calculated by the PDR.

[0108] When the Euclidean distance is greater than the first set threshold A, it is determined that the classification result of the echo fingerprint classifier is incorrect, and the particle is updated using the step size and direction information of the emission source calculated by PDR.

[0109] When the Euclidean distance is less than the second set threshold B, it is determined that the error of the position coordinates of the emission source calculated by the PDR is within a controllable range, and the particle is updated using the step size and direction information of the emission source calculated by the PDR.

[0110] When the Euclidean distance is equal to a set threshold and falls between the first set threshold A and the second set threshold B, the error in the calculated position coordinates of the emission source in the PDR begins to gradually accumulate. The result of echo positioning is used to correct the error and is used as the observation value for particle updating.

[0111] Furthermore, in one possible implementation, the acquisition unit 201 is also used to divide the positioning area into grids of a preset size, and after transmitting a chirp audio signal of a preset frequency through the mobile phone speaker, to acquire the response echo in each grid using the mobile phone microphone.

[0112] Furthermore, in one possible implementation, the feature extraction unit 202 is also used to filter the collected echo fingerprint information and generate an echo dataset from the filtered response echoes, wherein the filtering includes: blank frame filtering, noise filtering and echo extraction.

[0113] The echo audio files in WAV format in the dataset are divided into frames and Hamming windows are added. The frequency domain information of each frame is obtained by Fourier transform.

[0114] The frequency domain information of each frame is fused to obtain a spectrogram, and the spectrogram is input into a convolutional neural network for training until the model converges and learns the echo fingerprint features at different locations to obtain an echo fingerprint classifier.

[0115] Furthermore, in one possible implementation, the computing unit 204 is also used to collect acceleration sensor information, magnetic sensor information, and gyroscope information during the movement of the transmitting source;

[0116] Based on the acceleration sensor information, a zero-crossing detection method is used for step detection, and the Weinberg algorithm is used for step size estimation to determine the number of steps and step size of the emission source.

[0117] Based on the information from the accelerometer, magnetometer, and gyroscope, the azimuth angle of the transmitter is determined. The azimuth angle is the angle between the direction of travel of the transmitter and the geomagnetic north pole.

[0118] The position calculation information of the transmitter is obtained by using the number of steps, step size, and direction angle of the transmitter.

[0119] The following reference Figure 3 To describe an electronic device 300 according to this embodiment of the present invention. Figure 3 The electronic device 300 shown is merely an example and should not impose any limitations on the functionality and scope of use of the embodiments of the present invention.

[0120] like Figure 3 As shown, the electronic device 300 is manifested in the form of a general-purpose computing device. The components of the electronic device 300 may include, but are not limited to: at least one processing unit 310, at least one storage unit 320, and a bus 330 connecting different system components (including storage unit 320 and processing unit 310).

[0121] The storage unit stores program code that can be executed by the processing unit 310, causing the processing unit 310 to perform the steps described in the "Embodiment Methods" section of this specification according to various exemplary embodiments of the present invention.

[0122] Storage unit 320 may include readable media in the form of volatile storage units, such as random access memory (RAM) 321 and / or cache memory 322, and may further include read-only memory (ROM) 323.

[0123] Storage unit 320 may also include a program / utility 324 having a set (at least one) of program modules 325, including but not limited to: an operating system, one or more application programs, other program modules, and program data, each or some combination of these examples may include an implementation of a network environment.

[0124] Bus 330 can represent one or more of several types of bus structures, including a memory cell bus or memory cell controller, a peripheral bus, a graphics acceleration port, a processing unit, or a local bus using any of the various bus structures.

[0125] Electronic device 300 can also communicate with one or more external devices (e.g., keyboard, pointing device, Bluetooth device, etc.), one or more devices that enable a user to interact with electronic device 300, and / or any device that enables electronic device 300 to communicate with one or more other computing devices (e.g., router, modem, etc.). This communication can be performed via input / output (I / O) interface 350. Furthermore, electronic device 300 can also communicate with one or more networks (e.g., local area network (LAN), wide area network (WAN), and / or public networks, such as the Internet) via network adapter 360. As shown, network adapter 360 communicates with other modules of electronic device 300 via bus 330. It should be understood that, although not shown in the figures, other hardware and / or software modules can be used in conjunction with electronic device 300, including but not limited to: microcode, device drivers, redundant processing units, external disk drive arrays, RAID systems, tape drives, and data backup storage systems.

[0126] From the above description of the embodiments, those skilled in the art will readily understand that the exemplary embodiments described herein can be implemented by software or by combining software with necessary hardware. Therefore, the technical solutions according to the embodiments of this disclosure can be embodied in the form of a software product, which can be stored in a non-volatile storage medium (such as a CD-ROM, USB flash drive, external hard drive, etc.) or on a network, including several instructions to cause a computing device (such as a personal computer, server, terminal device, or network device, etc.) to execute the methods according to the embodiments of this disclosure.

[0127] According to the present disclosure, a computer-readable storage medium is also provided, on which a program product capable of implementing the methods described above is stored. In some possible embodiments, various aspects of the present invention can also be implemented as a program product comprising program code that, when the program product is run on a terminal device, causes the terminal device to perform the steps of the various exemplary embodiments of the present invention described in the "Exemplary Methods" section above.

[0128] refer to Figure 4 As shown, a program product 400 for implementing the above-described method according to an embodiment of the present invention is described. This product may employ a portable compact disc read-only memory (CD-ROM) and include program code, and may run on a terminal device, such as a personal computer. However, the program product of the present invention is not limited thereto. In this document, the readable storage medium may be any tangible medium containing or storing a program that may be used by or in conjunction with an instruction execution system, apparatus, or device.

[0129] The program product may employ any combination of one or more readable media. A readable medium may be a readable signal medium or a readable storage medium. A readable storage medium may be, for example, but not limited to, an electrical, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any combination thereof. More specific examples of readable storage media (a non-exhaustive list) include: an electrical connection having one or more wires, a portable disk, a hard disk, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), optical fiber, portable compact disk read-only memory (CD-ROM), optical storage devices, magnetic storage devices, or any suitable combination thereof.

[0130] Computer-readable signal media may include data signals propagated in baseband or as part of a carrier wave, carrying readable program code. Such propagated data signals may take various forms, including but not limited to electromagnetic signals, optical signals, or any suitable combination thereof. A readable signal medium may also be any readable medium other than a readable storage medium, capable of sending, propagating, or transmitting programs for use by or in conjunction with an instruction execution system, apparatus, or device.

[0131] The program code contained on the readable medium may be transmitted using any suitable medium, including but not limited to wireless, wired, optical fiber, RF, etc., or any suitable combination thereof.

[0132] Program code for performing the operations of this invention can be written in any combination of one or more programming languages, including object-oriented programming languages ​​such as Java and C++, and conventional procedural programming languages ​​such as C or similar languages. The program code can execute entirely on the user's computing device, partially on the user's device, as a standalone software package, partially on the user's computing device and partially on a remote computing device, or entirely on a remote computing device or server. In cases involving remote computing devices, the remote computing device can be connected to the user's computing device via any type of network, including a local area network (LAN) or a wide area network (WAN), or it can be connected to an external computing device (e.g., via the Internet using an Internet service provider).

[0133] Furthermore, the above figures are merely illustrative of the processes included in the method according to exemplary embodiments of the present invention, and are not intended to be limiting. It is readily understood that the processes shown in the above figures do not indicate or limit the temporal order of these processes. Additionally, it is readily understood that these processes may be executed synchronously or asynchronously, for example, in multiple modules.

[0134] In summary, this application provides an indoor positioning method, apparatus, device, and storage medium. The method includes the following steps: acquiring echo fingerprint information of chirp audio signals emitted by a transmitter within a positioning area; obtaining an echo fingerprint classifier based on echo fingerprint features learned from different locations after training on the echo fingerprint information; classifying the echo fingerprint classifier to obtain location label information, and mapping the location label information to obtain the geographical location information of the transmitter, which serves as the echo positioning information of the transmitter; acquiring sensor information during the transmitter's movement, and using a PDR algorithm to obtain the transmitter's location calculation information; fusing the echo positioning information and the location calculation information to obtain the positioning coordinates of the area where the transmitter is located. This application completes echo fingerprint feature extraction through a data-driven approach and uses deep learning for echo classification. It corrects the PDR location calculation information using echo positioning information, eliminating the need for any additional hardware deployment and effectively solving the error accumulation problem of PDR, achieving sub-meter-level indoor positioning accuracy at a low cost.

[0135] The above description is merely a specific embodiment of this application, enabling those skilled in the art to understand or implement this application. Various modifications to these embodiments will be readily apparent to those skilled in the art, and the general principles defined herein may be implemented in other embodiments without departing from the spirit or scope of this application. Therefore, this application is not to be limited to the embodiments shown herein, but is to be accorded the widest scope consistent with the principles and novel features claimed herein.

[0136] This invention is described with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general-purpose computer, special-purpose computer, embedded processor, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, generate instructions for implementing the flowchart illustrations and / or block diagrams. Figure 1 One or more processes and / or boxes Figure 1 A device that provides the functions specified in one or more boxes.

Claims

1. A method of indoor positioning, characterized by, The method comprises the following steps: collecting echo fingerprint information of chirp audio signals emitted by a transmission source in a positioning area; training echo fingerprint features of different positions based on the echo fingerprint information to obtain an echo fingerprint classifier; classifying the echo fingerprint classifier to obtain position label information, and mapping the position label information to obtain geographical position information of the transmission source as echo positioning information of the transmission source; collecting information of a sensor during movement of the transmission source, and obtaining position solution information of the transmission source by using a PDR algorithm; fusing the echo positioning information and the position solution information to obtain positioning coordinates of an area where the transmission source is located.

2. The method of claim 1, wherein, The fusion of the echo positioning information and the position solution information to obtain the positioning coordinates of the area where the transmission source is located comprises: initializing a large number of particles in the positioning area according to a particle filter algorithm, and calculating distances between each particle and an observation value and assigning different weights to the particles; normalizing weights of all the particles, filtering particles with low weights, and resampling the particles with high weights to form new particles; obtaining the positioning coordinates of the area where the transmission source is located by weighted summation of coordinates of all the new particles.

3. The method of claim 2, further comprising: The weight of each particle is calculated according to the formula where (x0, y0) represents the position of the actual observation, (xi, yi) represents the position of the particle, δ represents the variance, and pi represents the i-th particle. The positioning coordinates of the positioning area are calculated according to the formula The positioning coordinates of the positioning area are calculated according to the formula The final positioning coordinates are represented by w pi The weight of the i-th particle is represented by u i The coordinates of the i-th particle are represented by 4. The method of claim 2, wherein, calculating an Euclidean distance between the coordinates of the echo positioning and the position coordinates of the transmission source calculated by the PDR; when the Euclidean distance is greater than a first set threshold, determining that the classification result of the echo fingerprint classifier is wrong, and updating particles by using step and direction information of the transmission source calculated by the PDR; when the Euclidean distance is less than a second set threshold, determining that the error of the position coordinates of the transmission source calculated by the PDR is within a controllable range, and updating particles by using the step and direction information of the transmission source calculated by the PDR; when the Euclidean distance is between the first set threshold and the second set threshold, determining that the error of the position coordinates of the transmission source calculated by the PDR is gradually accumulated, and correcting the result of the echo positioning and updating particles by using the result as an observation value. The collection of the echo fingerprint information of the chirp audio signals emitted by the transmission source in the positioning area comprises:

5. The method of claim 1, wherein, dividing the positioning area into square grids of a preset size, collecting echo responses in each square grid by using a mobile phone microphone after a chirp audio signal of a preset frequency is emitted by a mobile phone loudspeaker. The training of echo fingerprint features of different positions based on the echo fingerprint information to obtain an echo fingerprint classifier comprises:

6. The method of claim 1, wherein, filtering the collected echo fingerprint information, and generating an echo data set from the filtered echo responses, wherein the filtering comprises blank frame filtering, noise filtering, and echo extraction; performing frame division and Hamming window operation on a wav format echo audio file in the data set, and obtaining frequency domain information of each frame by using Fourier transform; fusing the frequency domain information of each frame to obtain a spectrogram, and inputting the spectrogram into a convolutional neural network for training until the model converges, so as to learn echo fingerprint features of different positions and obtain an echo fingerprint classifier. The collection of information of the sensor during movement of the transmission source and the obtaining of position solution information of the transmission source by using a PDR algorithm comprise:

7. The method of claim 1, wherein, ​ Collecting acceleration sensor information, magnetic force sensor information and gyroscope information during the travel of the emission source; According to the acceleration sensor information, step detection is performed by using zero-crossing detection method, and step length estimation is performed by using Weinberg algorithm, so as to determine the step number and step length of the emission source; According to the acceleration sensor information, magnetic force sensor information and gyroscope information, the direction angle of the emission source is determined, the direction angle being the included angle between the walking direction of the emission source and the geomagnetic north pole; Through the step number and step length and the direction angle of the emission source, the position solution information of the emission source is obtained by using PDR algorithm.

8. An indoor positioning device, characterized by Comprise: A collection unit for collecting echo fingerprint information of a chirp audio signal emitted by an emission source in a positioning area; A feature extraction unit for obtaining echo fingerprint classifiers based on echo fingerprint features of different positions learned after training; A classification unit for classifying the echo fingerprint classifiers to obtain position label information, and mapping the position label information to obtain geographical position information of the emission source as echo positioning information of the emission source; A calculation unit for collecting information of sensors during the travel of the emission source, and obtaining position solution information of the emission source by using PDR algorithm; A fusion unit for fusing the echo positioning information and the position solution information to obtain positioning coordinates of an area where the emission source is located.

9. An electronic device, comprising: The electronic device comprises: A processor; A memory, the memory having computer readable instructions stored thereon, the computer readable instructions being executed by the processor to implement the method of any one of claims 1 to 7.

10. A computer-readable storage medium, characterized in that, It stores computer program instructions, when the computer program instructions are executed by the computer, the computer executes the method according to any one of claims 1 to 7.

Citation Information

Patent Citations

  • Indoor positioning method based on SVM and pedestrian dead reckoning fusion

    CN109597031A

  • Audio fingerprint extraction method and device, computer equipment and storage medium

    CN113113051A