The disclosure relates to an algorithm of collecting and constructing training data in a positioning system and the positioning method using the same.
In the training phase of the aforesaid RADAR location and tracking system, a plurality of training locations ={, . . . , } are specified as their coordinates in a Cartesian coordinate system defining a training area are given and thus known, which are λ1=<x1,y1>, λ2=<x2,y2>, λ3=<x3,y3>, . . . , λm=<xm,ym>. It is noted that there can be a plurality of beacons, i.e. B={b1, . . . , bn}, located in the neighborhood of each training location for enabling the signals emitted from those neighboring beacons to be receivable by such training location so that a sample containing signal strength information for that specific training location can be formed regarding to those neighboring beacons. Thereby, there can be a plurality of samples being formed in correspondence to the plural training locations in a manner that the feature vector vi=[vi,1, vi,2, . . . , vi,n] of each training location can be established, wherein vi,j, j=1 . . . n is the average signal strength of the beacon bj for the training location λ1. Consequently, all those established feature vectors along with their paired training locations are registered and thus form a database.
In the positioning phase, the object to be positioned is configured with a wireless receiver for enabling the same to receive signals from its neighboring beacons in a real time manner. Accordingly, the received signal strengths (RSS) are used to form a signal strength fingerprint, i.e. s=[s1, s2, . . . , sn], which is then compared with those information stored in the aforesaid database for finding a training location with the most similar feature vector and thereby locating the position of the object. Operationally, the system defined the differences between the real-time signal strength fingerprint of the object with those feature vectors as a function h, and thus the comparison performed for positioning the object can be represented by a discrete function h: →R+. Consequently, the object is to find a training location that can minimize the value of the function h. For instance, when the similarity function h is defined as the Euclidean Distance between two vectors, and there are three training locations λ1, λ2, λ3 and two beacons being located in a test signal space, the three Euclidean Distances between the three training locations and a test object can be computed and thereafter the position of the one training location with the minimum Euclidean Distance is selected to be the location of the test object.
An exemplary embodiment of an algorithm of collecting and constructing training location data in a positioning system and a positioning method is disclosed. The disclosed embodiments applies to a test signal space of a plurality of beacons and a plurality of training locations. An exemplary embodiment comprising: detecting signal strengths of beacons adjacent to each training location for converting the same into signal vectors for each training location; integrating the signal vectors of each training location respectively so as to calculate a feature vector of each training location; recording the coordinate of each training location and the corresponding feature vector; introducing the coordinate and the feature vector of each training location into a numerical data fitting model so as to construct a signal strength function for each beacon.
Further scope of applicability of the disclosure will become more apparent from the detailed description given hereinafter. However, it should be understood that the detailed description and specific examples, while indicating embodiments, are given by way of illustration only, since various changes and modifications within the spirit and scope of the invention will become apparent to those skilled in the art from this detailed description.
The disclosed embodiments will become more fully understood from the detailed description given herein below and the accompanying drawings which are given by way of illustration only, and thus are not limitative of the invention and wherein:
For your esteemed members of reviewing committee to further understand and recognize the fulfilled functions and structural characteristics of the invention, several exemplary embodiments cooperating with detailed description are presented as the follows.
The method of collecting and constructing training location data in a positioning system is designed to use the spatial correlation between training locations in a test signal space to speed up the search for positioning. Please refer to
As soon as the signal detector placed at the position (42, 42) of the test signal space successfully collect a comparison signal vector s, the h(λi) of those training locations can be calculated and thus obtained. From the calculation resulting from the h(λi), it is concluded that the closer a training location is to the signal detector placed at the position (42, 42) as the position marked by x in
According to the abovementioned concept, an positioning algorithm can be constructed. When a set of training locations with their corresponding feature vectors and a comparison signal vector are provided, a continuous differentiable discriminant function ƒ: →R+ can be established while achieving ƒ(λi)≈h(λi) for each training location. It is noted that the gradient of the discriminant function ƒ can adequately demonstrate the spatial correlation among training locations, and thus by finding the minimum of the discriminant function ƒ, the exhausting calculations of h(λi) for each an every training location can be avoided.
Please refer to
In one embodiment, the collecting of training location data could be performed by the following steps: detecting at each training location the signal strengths of beacons among the plural beacons that are adjacent thereto for converting the same into signal vectors relating to each training location while integrating the signal vectors of each training location so as to calculate a feature vector for each training location; recording the coordinate of each training location and the corresponding feature vector; and introducing the coordinate and the feature vector of each training location into a numerical data fitting model so as to construct a signal strength function for each beacon representing the signal strength distribution of each beacon in the test signal space.
In one embodiment, the positioning of the a position to be detected could be performed by the following steps: specifying a position to be detected and then detecting the signal strengths of beacons among the plural beacons that are adjacent and related to the detected position so as to convert the same into a comparison signal vector; constructing a discriminant function basing upon the comparison signal vector and the signal strength functions of the plural beacons; and using a numerical optimization search technique to find the minimum of the discriminant function so as to define the location relating to the minimum of the discriminant function as the coordinate of the detected position in the test signal space.
The numerical data fitting model can be established by a path loss procedure, by a regression procedure, or by an interpolation procedure, or even by a combined calculation including procedures selected from the group consisting of: a path loss procedure, a regression procedure and an interpolation procedure. Nevertheless, the operation steps for the path loss model, the regression model and the interpolation model are not the same, which will be described respectively hereinafter.
Please refer to
At step S110, the coordinate of each beacon 301 in the test signal space 300 is registered for enabling a positioning module to calculate the Euclidean Distances between any random location and its adjacent beacons as those Euclidean Distances are required in the calculation of a path loss process; and then the flow proceeds to step S120.
At step S120, at each training location, the signal strengths of beacons among the plural beacons that are adjacent thereto are detected and then being converted into signal vectors relating to each training location, and then the signal vectors are integrated so as to calculate a feature vector for each training location; and then the flow proceeds to step S130.
Moreover, in the step S120, the plural training locations 302={, . . . , } should be specified in advance as their coordinates in a Cartesian coordinate system defining the test signal space are given and thus known, which are λ1=<x1,y1>, λ2=<x2,y2>, λ3=<x3,y3>, . . . , λm=<xm,ym>. It is noted that there can be a plurality of beacons 301, i.e. B={b1, . . . , bn}, located in the neighborhood of each training location 302 for enabling the signals emitted from those neighboring beacons to be receivable by the signal detector 200 placed at such training location so that a sample containing signal strength information for that specific training location can be formed regarding to those neighboring beacons in a manner that each adjacent beacon 301 regarding to that specific training location will be responsible for one signal strength data which is then being converted into a signal vector and thereafter transmitted to the positioning mainframe 100.
Then, the positioning mainframe 100 will use a positioning module 110 to integrate all the signal vectors relating to the referring training location to form a feature vector, and consequently, for the plural training locations, there can be a plurality of feature vectors vi=[vi,1, vi,2, . . . , vi,n] to be established, as vi,j, j=1 . . . n is the average signal strength of the beacon bj for the training location λi. Consequently, all those established feature vectors along with the coordinates of their paired training locations 302 and beacons 301 are registered and thus form a database 120 in the positioning mainframe, as shown in the step S130 which is followed by step S140.
At step S140, at each beacon, the coordinate of the referring beacon and the coordinates of the training locations relating thereto as well as the corresponding feature vectors into a path-loss model; and then the flow proceeds to step S150. At step S150, a numerical analysis technique is used to calculate and obtain optimal coefficients for the path-loss function so as to construct a signal strength function for each beacon.
It is noted that the Log-Distance path loss model for open space is as following:
wherein,
Accord to the aforesaid path loss model, the signal strength function relating to the signal strength received at a random location λi from the beacon bj can be represented as following:
Pr(λ,bj)=Pt−PL(∥λ,bj∥)=Pref−10φ log(∥λ,bj∥) (2)
wherein,
By defining the optimal system parameter of the beacon bj as x=[Prefj,φj]T, for each training location, the relationship between the corresponding feature vector and the gradient information is represented as following:
Accordingly, a least-squares analysis is used for calculating the optimal coefficient relating to the beacon bj as following:
x=[Prefj,φj]T=(ATA)−1ATC. (3)
The so-obtained φj and Prefj will minimize the difference between the signal strength predicted by the path loss model with the actual feature vectors of the training locations of the beacon bj so that the φj and Prefj can be considered as known system parameters by the positioning system. By introducing the coordinates of all the beacons 301 and the optimal system coefficient respectively into the aforesaid path loss model, the signal strength function relating to the signal strength received at a random location li from the beacon bj can be represented as the aforesaid formula (2), so that the collecting and constructing training location data, generally referring as the training phase, for a positioning method according to the first embodiment is completed.
Please refer to
At step S210, a position to be detected 303 is specified at which the signal strengths of beacons 301 among the plural beacons 301 that are adjacent the detected position are detected and then convert into a comparison signal vector; and then the flow proceeds to step S220. In an embodiment, the signal detector 200 is placed at the detected position 303 in the test signal space 300 for enabling the same to receive signal from the adjacent beacons 301 while integrating the signal strength of the received signal into a comparison signal vector s=[s1, s2, . . . , sn].
At step S220, a discriminant function is constructed basing upon the coordinates of the plural beacons, the comparison signal vector and the signal strength functions of the plural beacons; and then the flow proceeds to step S230. The discriminant function is represented as following:
in which,
At step S230, a numerical optimization search technique is used to find the minimum of the discriminant function ƒ so as to define the location relating to the minimum of the discriminant function ƒ as the coordinate of the detected position 303 in the test signal space 300. It is noted that the numerical optimization search technique used for searching the minimum of the discriminant function is a combined procedure of a steepest descent search process and a secant line search process.
During the search in the step S230, the positioning module 110 employs a gradient descent search process to minimize the discriminant function ƒ to its minimum. The gradient descent search process is a recursive search process that can be represented as following:
(k+1)=(k)+αkd(k), (5)
wherein,
The recursive process starts by randomly selecting an initial position (0). Then, for the following k recursive steps as k≧1, the process must determine a search direction, i.e. d(k), for each recursive step and a progress distance, i.e. αk, relating to each recursive step as well. The recursive will only be stopped when it reaches or almost reaches a position relating to the minimum of the discriminant function ƒ. It is noted that when any one of the following two conditions is satisfied, the recursive is stopped, which are: (1) when the advance of two successive searches is smaller than a standard value Δmin, i.e. when ∥(k+1)−(k)∥<Δmin; (2) when the times of recursive search reach a defined limit kmax, i.e. k=kmax.
As soon as the gradient descent search process is stopped, the stop position is the optimal solution of the target discriminant function ƒ. Nevertheless, the d(k) and αk are determined by the use of a steepest descent search procedure. Since the direction for maximizing the function ƒ((k)) is
the value of the target discriminant function ƒ can be decreased progressively when d(k)=∇ƒ((k)) and therefore the abovementioned formula (5) can be transformed as following:
(k+1)=(k)−αk∇ƒ((k)). (6)
Therefore, by differentiate the discriminant function ƒ, the search direction, i.e. d(k), for each recursive step relating to a random position 304, i.e. (k) can be calculated as following:
Assuming the current gradient at the random position 304 is ∇ƒ(), the positioning module 110 is able to calculated ƒ(−β∇ƒ()) as following:
Thereafter, the positioning module 110 will use a secant line search process to obtain a convergence value of β, whereas the formula of the secant line search process can be represented as following:
wherein, Gk(β)=ƒ(l(k)−βΔƒ(l(k))).
By starting from two random initial value β0 and β1, and introducing G′k(β) as:
Similarly, as the one of the following conditions is satisfied, i.e. |βt+1−βt |<Δβmin or t=tmax, the secant line search process is stopped. The Δβmin and tmax are predefined parameters.
The positioning module 110 feeds the convergence value of β into the formula (5) so that it can evaluate whether the discriminant function ƒ is converged to its minimum and thus determine whether the random position 304, i.e. (k), is the minimum convergence value. If not, the formula (7), formula (8), formula (9), formula (10), formula (11) are repeated taking the random position 304, i.e. (k), as basis until a new Δƒ((k+1)) and αk+1 are obtained and fed into the formula (5) for starting another recursive process and thus obtaining the final convergence value relating to the detected position 303, i.e. . As soon as the final convergence value relating to the detected position 303, i.e. , is obtained, the positioning of the signal receiver 200 by the positioning module 110 is completed.
Please refer to
At step S310, at each training location 302, the signal strengths of beacons 301 among the plural beacons 301 that are adjacent thereto are detected and converged into signal vectors relating to each training location 302; and then the signal vectors are integrated so as to calculate a feature vector for each training location 302; and then the flow proceeds to step S320. As the aforesaid step is similar to the step S120 shown in
At step S320, the coordinate of each training location 302 and the corresponding feature vector are recorded in the database configured in a positioning module; and then the flow proceeds to step S330.
At step S330, at each beacon, the coordinates of the training locations relating to the referring beacon as well as the corresponding feature vectors are introducing into a regression function; and then the flow proceeds to step S340. At step S340, a regression analysis technique is used to calculate and obtain the regression coefficients of the regression function so as to construct a signal strength function for each beacon. The regression function used in one embodiment is as following:
wherein,
wherein,
By defining the optimal system parameter of the beacon bj as x=[a0,0(j), a1,0(j), a0,1(j), a1,1(j)]T, assuming r=1, for each training location 302 relating to the beacon bj, the relationship between the corresponding feature vector and the coordinates is represented as following:
Accordingly, a least-squares analysis is used for calculating the optimal solution for the regression coefficient x as following:
x=[a0,0(j),a1,0(j),a0,1(j),a1,1(j)]T=(ATA)−1ATC. (14)
The so-obtained regression coefficient x=[a0,0(j),a1,0(j),a0,1(j),a1,1(j)]T will minimize the difference between the signal strength predicted by the regression function with the actual feature vectors of the training locations so that the regression coefficient x can be considered as known system parameters by the positioning system. By introducing the optimal regression coefficient relating to each beacons 301 into the aforesaid regression function, the signal strength function relating to the signal strength received at a random location l from the beacon bj can be represented as the aforesaid formula (13), so that the collecting and constructing training location data, generally referring as the training phase, for a positioning method according to the second embodiment is completed.
Please refer to
At step S410, a position to be detected 303 is specified at which the signal strengths of beacons 301 among the plural beacons 301 that are adjacent the detected position are detected and then converted into a comparison signal vector; and then the flow proceeds to step S420. In an embodiment, the signal detector 200 is placed at the detected position 303 in the test signal space 300 for enabling the same to receive signal from the adjacent beacons 301 while integrating the signal strength of the received signal into a comparison signal vector s=[s1, s2, . . . , sn].
At step S420, a discriminant function is constructed basing upon the coordinates of the plural beacons, the comparison signal vector and the signal strength functions of the plural beacons; and then the flow proceeds to step S430. The discriminant function is represented as following:
in which
At step S430, a numerical optimization search technique is used to find the minimum of the discriminant function ƒ so as to define the location relating to the minimum of the discriminant function ƒ as the coordinate of the detected position 303 in the test signal space 300. It is noted that the numerical optimization search technique used for searching the minimum of the discriminant function is a combined procedure of a steepest descent search process and a secant line search process.
The process of the step S430 is similar to that of the step S230 of
The positioning module 110 feeds the convergence value of β into the formula (5) so that it can evaluate whether the discriminant function ƒ is converged to its minimum and thus determine whether the random position 304, i.e. (k), is the minimum convergence value. If not, the formula (16), formula (17), formula (18), formula (10), formula (19) are repeated taking the random position 304, i.e. (k), as basis until a new ∇ƒ((k+1)) and αk+1 are obtained and fed into the formula (5) for starting another recursive process and thus obtaining the final convergence value relating to the detected position 303, i.e. . As soon as the final convergence value relating to the detected position 303, i.e. , is obtained, the positioning of the signal receiver 200 by the positioning module 110 is completed.
Please refer to
The positioning module 110 is used for constructing a gradient information by the formula: ∇Pr(,bj)=[]T for each training location 302, i.e. λi, according to other training locations adjacent to the referring training location 302. However, as the gradient information are only supposed values that that are defined for calculation and thus are unknown system parameters, so that they should be estimated in advance by the use of a constructed continuous plane and are represent as:
()=vi,j+×(x−xi)+×(y−yi) (20)
According to the referring training location 302, i.e. λi, and the group of adjacent training locations of amount ε, referring as Ng(λ) as they are the training locations that will affect the constructed continuous plane (), the relationship between the corresponding feature vector and the coordinates is represented as following:
accordingly, a least-squares analysis is used for calculating the coefficient x as following:
∇Pr(λi,bj)=x=(ATA)−1ATc
Then, the positioning system will define and as the gradient information for the training location 302, i.e. λi.
At step S520, the coordinate of each training location and its corresponding feature vector and the gradient information are recorded; and then the flow proceeds to step S530. At step S530, the positioning module 110 uses the coordinates of each training location and the corresponding feature vectors as well as the corresponding gradient information to construct a spatial-correlated data structure. Generally, the aforesaid data are stored in a R-tree structure as it can speed up the following positioning operation.
Moreover, as the interpolation process is characterized in that: the coefficients of its resulting signal strength function are not constant that they are changing dynamically according to different positions. Consequently, during the process of collecting and constructing training location data, there will be no unique signal strength function be generate, but they are produced dynamically in the positioning process.
Please refer to
At step S620, a positioning module 110 is used to introduce the coordinate of a random position and the spatial-correlated data structure into an interpolation model so as to construct a dynamic signal strength function for each beacon; and then the flow proceeds to step S630.
When an inverse distance weighted interpolation is used for predicting the signal strength of a random position 304, i.e. λi, the positioning module 110 will specify larger weights to those training locations 302 that are adjacent to the random position 304 while specifying smaller weight to those disposed farther from the random position 304 so that the closer the training locations is to the random position 304. the larger influence it will exerted on the random position 304. Accordingly, the signal strength function relating to the signal strength received at a random location l from the beacon bj can be represented as following:
With the aforesaid signal strength function, not only the continuity and differentiation of the interpolation model can be ensured, but also it is ensured that Pr(λi,bj)=vi,j for all λiεL. Nr(λ) is group of training locations that include the T training locations are disposed near to the random location 304, i.e. λ. It is noted that the design of the Nr(λ) is for improving the operation performance as it can limited the signal strength function Pr(λi,bj) to be affected by only a portion of the training locations in the test signal space. Therefore, in order to find the group of the training locations Nr(λ) for the random location 304, i.e. λ, in a rapid manner, the R-tree data structure constructed in the training phase by the positioning module 101 can be very helpful as it can rapidly recognize the random location in its data structure and consequently identify the Nr(λ) therefor.
At step S630, a dynamic discriminant function is constructed basing upon the comparison signal vector and the signal strength functions; and then the flow proceeds to step S640. The discriminant function is represented as following:
in which
At Step S640, a numerical optimization search technique is used to find the minimum of the discriminant function ƒ so as to define the location relating to the minimum of the discriminant function ƒ as the coordinate of the detected position 303 in the test signal space 300. It is noted that the numerical optimization search technique used for searching the minimum of the discriminant function is a combined procedure of a steepest descent search process and a secant line search process.
Operationally, the positioning module 110 use a gradient descent search process to converge the discriminant function ƒ to its minimum. Moreover, the discriminant function ƒ is differentiate for finding the advance direction and the coordinate variables in relation to the random location 304, as described in the following:
Thus, for calculating advance distances in the gradient search process, the positioning module 110 establishes the following formula:
For simplicity, the positioning module 110 uses the formula (10) according to a secant line search process and the recursive of {circumflex over (λ)}(k)=λ(k)−βΛƒ(λ(k)) to obtain the convergence of β as following:
Thereafter, the positioning module 110 inputs the convergence of β into the αk in formula (5) so that it can evaluate whether the discriminant function ƒ is converged to its minimum. If not, another random position 304, i.e. λ(k+1), is specified for enabling the R-tree data structure to update the training location group for correspondingly and dynamically updating the signal strength functions for each beacon and the discriminant function ƒ and then the formula (23), formula (24), formula (25), formula (10), formula (26) are repeated taking the position 304, i.e. λ(k+1), as basis until obtaining the final convergence value relating to the detected position 303, i.e. . As soon as the final convergence value relating to the detected position 303, i.e. , is obtained, the positioning of the signal receiver 200 by the positioning module 110 is completed.
Please refer to
In the first recursive, the positioning module 110 first randomly selected two positions as p0 and p1, so as to perform a secant line search process until achieving numerical convergence according to the aforesaid two positions p0 and p1. As seen in
Please refer to
As shown in
In
With respect to the above description then, it is to be realized that the optimum dimensional relationships for the parts of the disclosure, to include variations in size, materials, shape, form, function and manner of operation, assembly and use, are deemed readily apparent and obvious to one skilled in the art, and all equivalent relationships to those illustrated in the drawings and described in the specification are intended to be encompassed by the invention.
Number | Date | Country | Kind |
---|---|---|---|
97145862 A | Nov 2008 | TW | national |
Number | Name | Date | Kind |
---|---|---|---|
6992625 | Krumm et al. | Jan 2006 | B1 |
7233286 | Krumm et al. | Jun 2007 | B2 |
20040072577 | Myllymaki et al. | Apr 2004 | A1 |
20070133487 | Wang et al. | Jun 2007 | A1 |
20070139269 | Chen et al. | Jun 2007 | A1 |
20090204597 | Mani et al. | Aug 2009 | A1 |
Number | Date | Country |
---|---|---|
101173980 | May 2008 | CN |
02054813 | Jul 2002 | WO |
Number | Date | Country | |
---|---|---|---|
20100127933 A1 | May 2010 | US |