1. Introduction
In recent years, the rise of the Internet of Things (IoT) has brought great convenience to our lives [
1]. By means of a local network or Internet communication technology, we can connect sensors, controllers, machines, persons and objects through IoT technology to obtain information, for remote management, control and services. At present, object location awareness is a very important part of the IoT’s application, but it cannot obtain this through the traditional satellite and cellular location with GPS in indoor environments [
2,
3]. In order to implement indoor positioning, there are many different technologies, such as WiFi [
4], UWB [
5], Radio Frequency Identification (RFID) [
6], and so on.
RFID is regarded as the key technology to implement IoT [
7], and RFID technology can be used in many fields, such as warehouse asset management, product tracking, supply chain management, anti-counterfeiting identification, healthcare, and so on. With the development of RFID technology, RFID indoor positioning has been selected as one of the indoor wireless location technologies, and its development has been rapid [
8]. RFID technology has many advantages for positioning, such as low cost, lightweight and multiple tag identification. However, there are still some problems to be solved for RFID indoor positioning [
9]. In the following, we mainly review some RFID-based indoor positioning technologies.
The RFID technology positioning system usually consists of antennas, tags, readers and positioning algorithms. The following algorithms are among the RFID-based indoor positioning algorithms: Time of Arrival (TOA), Time Difference of Arrival [
10] (TDOA), Angle of Arrival (AOA) and Received Signal Strength Indication (RSSI). Compared to TOA and TDOA, the RSSI-based RFID positioning algorithm does not require a strict synchronization mechanism between the tag and the reader, making it easy to implement, and its positioning accuracy is within a reasonably acceptable range. The AOA positioning technology uses the angular position of the received signal to locate the position of the label based on the angle of arrival of the multiple signals and the triangulation algorithm. However, positioning by the AOA technique is greatly influenced by the non-line-of-sight effect; therefore, it cannot be applied to complex indoor environments. In addition, readers equipped with antenna arrays during AOA positioning are not only resource-intensive, but also costly.
Table 1 gives a comparison of the above indoor positioning algorithms with the fingerprint and reference tag methods.
Because passive UHF RFID has a low deployment cost and its rationality has been verified, it is widely used in many areas. Buffi et al. introduced and validated a new phase-based technology for locating and tracking items moving along a conveyor belt [
11], which were equipped with UHF-RFID tags, and the positioning performance and accuracy were verified in the real conveyor case. The results showed that centimeter-accurate positioning of tags can be achieved even in very complex multi-path environments. To overcome the limitations of current RFID systems, Guidi et al. suggested that RFID and ultra-wideband (UWB) tag technology [
12,
13] could be used in combination to reduce the positioning error due to the large bandwidth involved. In the above two references, the authors conducted in-depth research on the application of backscatter signals in positioning. Arnitz et al. provided a proof for a UWB-based passive UHF RFID [
14] ranging concept, which was very robust to multipath propagation. Guidi et al. also proposed a specific assignment strategy [
15] to simplify the acquisition of the tag code at the reader side, which verified the feasibility of the excellent real-time multi-tag positioning. Li et al. analyzed the different multi-path interferences of a needle under the storage scenario and analyzed the frequency bands suitable for different environments and accuracy requirements [
16].
One of the most famous RFID positioning algorithms is LANDMARC [
17]. The LANDMARC system is a typical reference-tag-based RFID positioning method proposed by a research group of the Hong Kong University of Science and Technology. By introducing a reference label to assist positioning, a reference label matrix is arranged in the positioning space; RSSI values of the unknown label and the reference label are measured; and the nearest neighbor K value algorithm is used for positioning. However, the number of reference tags is huge. The introduction of a large number of these reference labels will also require many unnecessary calculations, as well as reduce the positioning accuracy.
Many scholars have proposed many methods to improve the positioning accuracy of the LANDMARC indoor positioning algorithm. He Xu et al. proposed an algorithm that was based on the Bayes and kNN [
18] algorithm to improve the indoor location accuracy [
19]. The result of the kNN algorithm was greatly influenced by the k value [
20]. When the k value was too small, the model was too complicated, resulting in an over-fitting phenomenon. On the contrary, when the k value was too large, a great deal of useful information in the training examples would be ignored. Yongjun Zhang proposed the BPNN-LANDMARC method in [
21], which was an improved indoor positioning algorithm based on the BP neural network. The algorithm reduced the time complexity of prediction, but the neural network training and tuning were very complicated processes, which required a large workload. In addition, there have been other improvements based on deep learning [
22,
23] to improve position accuracy. In this paper, we will use the Support Vector Regression (SVR) method and weighted path length to improve the accuracy of traditional LANDMARC positioning. The advantage is that the Gaussian-Kalman filter is used to solve the noise, and SVR is used to predict positions and thus improve the accuracy of positioning compared to the traditional RFID positioning methods.
This paper is structured as follows:
Section 1 introduces related research results about indoor position technology and RFID-based indoor positioning algorithms.
Section 2 details the background knowledge of LANDMARC.
Section 3 gives the Gaussian-Kalman filter theorem used in the proposed algorithm. In
Section 4, an indoor positioning algorithm based on SVR is proposed where the Gaussian-Kalman filter is used to deal with the noise in RSSI signals.
Section 5 evaluates the performance of the Gaussian-Kalman filter and the presented algorithm with other indoor positioning algorithms in the experiments. Finally, we conclude the paper.
3. Gaussian-Kalman Filter
The RFID system can read much electronic tag information in a short time. However, the reading RSSI values can be affected by various factors such as indoor temperature, humidity and multipath effects, so data preprocessing is required.
3.1. Gaussian Filter
For the same tag, due to various aspects of interference, the RSSI value received by the reader has a small probability of error data and a large probability of accurate data. The Gaussian mathematical model is used to select the RSSI value of the large probability range as the effective value of the data sampling and then calculate the average value as the output of the filtering. This method can effectively reduce the impact of low probability and strong interference on the overall data and improve the data accuracy.
The RSSI measurement follows the Gaussian distribution of
, and its probability density function is shown in Equation (5).
In Equation (5), .
Firstly, Gaussian filtering is used to put the RSSI measurement data into the fitting function, so as to obtain large probability data and then calculate the average of the retained RSSI values, and the obtained value is the determined RSSI value. However, the calculation volume is too large, and the anti-interference ability is poor. Therefore, the approximate Gaussian fitting method is used to pre-process the data. The baseline and standard deviation are the average of the original measurement data, which are calculated as in Equation (6), given as:
where
can be determined according to the percentage (
P) of the data that needs to be retained. The value of
P is calculated using the following Equation (7):
where
K is the number of reserved data and
N is the total of the sampled data. Obviously, if the
value is small, it means that there are few samples of the reserved data, which will reduce the authenticity of the data. Conversely, if the
value is too large, the wrong data may remain. According to the fluctuation of RSSI, the value of
K should be changed appropriately. This will not only increase the speed of calculation, but also effectively eliminate the mutation of data.
Gaussian fitting can only filter data and does not eliminate data fluctuations. In order to eliminate the fluctuation of RSSI data and make them a smooth output, the Kalman filter algorithm can be used. Gaussian filtering can solve the problems of the RSSI value being vulnerable to interference and bad stability. It can improve the positioning accuracy to a certain extent, but its effect on long-term error interference such as energy reflection and the multipath effect is not good.
3.2. Kalman Filter
The basic idea of Kalman filtering: Take the minimum mean square error as the best estimation principle, using the signal and noise state model, using the observations at the current moment and the estimates at the previous moment to update the estimation of the state variables, so as to calculate the current estimated value. Based on the established observation equations and system of equations, the RSSI value is estimated as the minimum mean square error.
Assume that the RSSI is represented by , and the sampled data model can be represented by a first-order self-recursive equation of a Gaussian white noise sequence. The equation of state and observation equation are represented by Equations (8) and (9).
Observation equation:
where
is the RSSI value at time
k;
is the observed value of
at time
k;
and
are independent and identically distributed noise sequences; the Gaussian white noise sequence with the dominant change of
;
is the noise during measurement at time
k; where
,
.
represents the process excitation noise covariance matrix, and
represents the observation noise covariance matrix.
The time update equation is shown in Equation (10):
The measurement update equation is shown in Equation (11):
where
denotes the prediction mean squared error matrix;
denotes the state of the next step predictor;
denotes the state estimate;
denotes the filter gain matrix;
denotes the filter mean square error matrix.
The advantage of the Kalman filter is that it can reduce the error of RSSI caused by noise superposition. The stability of filtered RSSI is good, and the Kalman filter is especially suitable for data processing in target tracking and positioning. The main advantage of the Kalman filtering algorithm is that it can obtain smooth data output. The implementation of the process prediction and correction phase is as follows.
The prediction stage is as Equations (12):
The correction stage is as Equations (13):
In the above formula,
represents the state estimate of RSSI at time
k;
represents the next predicted value of RSSI at time K;
represents the prediction of the
k + 1 time;
denotes the predictive matrix;
denotes the variance matrix of the prediction error estimate for the
moment at
k time.
represents a variance matrix;
represents a gain matrix. The Gaussian-Kalman filter algorithm flowchart is shown in
Figure 1.
The details of the Gaussian-Kalman filter implementation process are listed as follows:
- (1)
Initialize parameters n, Q, K, P. n represents the total RSSI data sample; Q represents the lowest percentage of screening data; K is the screening interval coefficient; and P is the percentage of data retention.
- (2)
If P < Q, the K value increases, and the RSSI value is put into Gaussian fitting once again. If P > Q, the standard deviation and the mean of the Gaussian parameters are preserved.
- (3)
Kalman filtering is used to perform the Gaussian fit-filtering of the RSSI value, and the average value of filtered RSSI is selected as the input of the positioning algorithm to calculate the positioning result.
4. The Improved SVR-LANDMARC Algorithm
Support vector regression is a regression method that is similar to least squares [
24], ridge regression [
25] and gradient descent. Support Vector Machines [
26,
27] (SVM) also comprise another method that can support vector regression. Support Vector Regression (SVR) uses the support vector and the Lagrange multiplier approach for the regression analysis for data. It has many advantages over the least squares method, which is shown in the following.
The least squares method can only be used for linear regression, but not for nonlinear models. However, support vector regression does not have this limitation.
The least squares method does not work well for regression with variables that have multiple collinearities, while support vector regression can process multicollinearity well.
Although support vector regression does not directly exclude the anomaly in the process, it can make the error caused by the anomalous point smaller.
Regression and classification are, in a sense, essentially the same method. The idea of SVM classification is to find a plane that allows the support vectors of all two classification sets or all data to be furthest away from the classification plane. The idea of SVR regression is to find a regression plane so that all data of a set are closest to it. The following details the SVR principle.
Given training samples , ; where is the vector of RSSI values read from the same reader to the same tag and is a value in a two-dimensional coordinate of a reference label (the two values of two-dimensional coordinates are separately fitted). SVR will learn a model using the following Equation (14).
The goal is to make
as close to the true value
as possible. In Equation (14),
and
are the model parameters to be determined. For the sample
, the traditional regression model usually calculates the loss directly based on the difference between the model output
and the true value
. The loss is zero only if the predicted value
is exactly the same as the true value
. In contrast, it can be assumed that support vector regression can tolerate at most
deviations between predicted value
and true value
. That is to say, the loss is calculated only if the absolute value of the difference between
and
is greater than
. As shown in
Figure 2 below, this is equivalent to constructing an interval with a width of 2
centered on
. If a training sample falls into this interval, it is considered as being correctly predicted.
Thus, the SVR problem can be transformed into the following Equation (15):
where
is a regularized constant,
indicates that the SVR algorithm can tolerate the most
deviation between the predicted value
f(
x) and the real value
Y. That is, only when the absolute value of the difference between the
f(
x) and the
Y is greater than the
, the loss is calculated.
is the normal vector of the SVR algorithm to fit the hyperplane.
is the ε-insensitive loss function shown in
Figure 2.
In fact, Equation (16) shows the function distance between the regression function and the coordinate value of one dimension of the reference label of the actual training point. For the loss function defined in the formula, the meaning of the expression is to allow the model to have a certain error. All points within the error range are considered as points on the model. Additionally, only those points on the boundary beyond the error range are the support vectors that determine the model. Because of the similar flexible boundary in SVM, we introduce slack variable and and consider the error function (15) as a convex optimization problem.
It is subject to the following Equation (18):
The larger the
is, the greater the penalty of the data samples is, the difference of which is between the predicted value and the actual value. Therefore, the choice of parameter
is especially important. Its value affects the generalization ability of the system. The smaller the value of
, the higher the accuracy of the function regression, and the greater the number of support vectors. The greater the value of
, the fewer the number of support vectors and the lower the regression accuracy. Therefore, according to the nature of the sample, choosing reasonable values of
and
is helpful to increase the accuracy of model prediction. In Equation (17), both
and
are larger than zero when the division is wrong. When the error does not exist,
and
take zero. At this point, the problem translates into the problem of minimizing the objective function (17). The first term in (17) makes the fitting function flatter, which can improve the generalization ability to predict the coordinates of unknown labels. The second is to reduce the error. The constant
> 0 indicates the degree of penalty for samples that exceed the error
. Lagrange function is introduced to solve the optimization problems of (17) and (18):
where
,
,
is the Lagrange function and
. Find the function
to minimize
and maximize
, and bring them into the Lagrange function to get the dual form, so as to maximize the value of the function.
subject to,
Solving (20), (21) is also a problem for solving quadratic programming. According to the Kuhn–Tucker theorem, the following conclusions are drawn at the saddle point.
It is obtained
, that is to say,
cannot be zero at the same time, which can also be drawn as below.
From Equation (23), it can be concluded that
may be larger than ε when
or
, and its corresponding
is called the boundary support vector. It corresponds to the dotted line in
Figure 2. When
,
, that is,
,
, the corresponding
is called the support vector. It corresponds to the data points in
Figure 2 falling on the ε band. When
,
, the corresponding
is a non-support vector, corresponding to the points in the ε-band in
Figure 2, which do not contribute to
. Therefore, the larger ε, the smaller the number of support vectors. For the standard support vector,
can be obtained from Equation (24) if
and
.
The values of
are generally calculated for all standard support vectors, and then averaged, that is:
Therefore, sample point
can be used to find the linear fit function as the following formula:
Then, the more reasonable model in the positioning environment is obtained by training the reference label. The trained model can predict unknown labels.