Determining of absolute altitudes of floors of a structure
11506499 · 2022-11-22
Assignee
Inventors
- Pavel Ivanov (Tampere, FI)
- Henri Jaakko Julius Nurminen (Tampere, FI)
- Lauri Aarne Johannes Wirola (Tampere, FI)
Cpc classification
H04W4/80
ELECTRICITY
G01S5/0294
PHYSICS
G01S5/14
PHYSICS
G01S5/0269
PHYSICS
H04W64/006
ELECTRICITY
G01C21/16
PHYSICS
International classification
H04W64/00
ELECTRICITY
G01S5/14
PHYSICS
Abstract
A method, apparatus and computer readable storage medium are provided for determining absolute altitudes of individual floors represented by an indoor map. In the context of a method, location data is obtained representing at least one track of one or more users at least partially in a structure. The location data includes horizontal and vertical location information with the vertical location information representing an absolute altitude. The method also includes obtaining indoor map data representing different floors and indicating structural elements on the floors and determining track sections of the at least one track represented by the location data such that each track section can be assumed to be on a single floor. The method further includes at least partially comparing determined track sections with floors represented by the indoor map data and determining an absolute altitude of at least some of the floors represented by the indoor map data.
Claims
1. A method performed by at least one apparatus, the method comprising: obtaining location data representing at least one track of one or more users at least partially in a structure, said location data comprising horizontal location information and vertical location information, said vertical location information being representative of an absolute altitude; obtaining indoor map data representing different floors of the structure and indicating structural elements on the different floors; determining track sections of the at least one track represented by the location data such that each track section can be assumed to be on a single floor of the structure; at least partially comparing determined track sections with floors of the structure represented by the indoor map data; and determining, based on said comparing, an absolute altitude of at least some of the floors of the structure represented by the indoor map data, wherein said determining of an absolute altitude of at least some of the floors comprises determining, for at least some of the floors, an altitude probability function indicating probabilities of absolute altitudes of a respective floor.
2. The method of claim 1, further comprising: transforming, based on said determined absolute altitude of at least some of the floors of the structure, vertical location information representative of an absolute altitude into vertical location information representative of a floor of the structure or vertical location information representative of a floor of the structure into vertical location information representative of an absolute altitude.
3. The method of claim 1, wherein said location data is crowdsourcing data obtained by a plurality of users in a crowdsourcing process.
4. The method of claim 1, wherein said vertical location information is based on one or more of the following: signals of a global navigation satellite system observed at a device of a respective user; signals of a cellular communication system observed at a device of a respective user; signals a non-cellular communication system observed at a device of a respective user; a barometer of a device of a respective user; a motion sensor of a device of a respective user; an accelerometer of a device of a respective user; a magnetometer of a device of a respective user; a gyroscope of a device of a respective user; an altitude map; and/or a manual user input of a respective user.
5. The method of claim 1, wherein said method further comprises: selecting, from the determined track sections, track sections to be used for said comparing determined track sections with floors of the structure represented by the indoor map data.
6. The method of claim 5, wherein said selecting of track sections to be used for said comparing comprises selecting at least some or all of the track sections intersecting with a floor boundary indicated by the indoor map data and/or selecting track sections such that altitudes associated with the track sections substantially cover the whole altitude range of the track.
7. The method of claim 1, wherein said comparing comprises: determining, for at least some combinations of track sections and floors, a weighting factor indicating a matching of a respective track section to a respective floor.
8. The method of claim 7, wherein said determining of a weighting factor is based on the matching of the horizontal location information of the respective track section with a horizontal geometry of the respective floor.
9. The method of claim 7, wherein in case a respective track section intersects with a floor boundary of the respective floor indicated by the indoor map data, the weighting factor is determined such that the closer to an entrance of the respective floor the respective track section intersects with a floor boundary of the respective floor the higher the weighting factor; and/or in case a respective track section intersects with a floor boundary of the respective floor indicated by the indoor map data and there is no entrance in that respective floor, the weighting factor is set to a predetermined value; and/or in case a respective track section does not intersect with a floor boundary of the respective floor indicated by the indoor map data, the weighting factor is set to a predetermined value.
10. The method of claim 7, wherein the determination of the weighting factor is influenced by a determination, based on the location data, of whether a respective user was completely inside the structure, completely outside the structure or switched between inside the structure and outside the structure.
11. The method of claim 1, wherein said determining of an absolute altitude of at least some of the floors comprises: computing, for at least some combinations of track sections and floors, a likelihood function indicating the likelihood of the absolute altitude of a respective floor based on a respective track section.
12. The method of claim 11, wherein said likelihood function is based on a mixture distribution.
13. The method of claim 11, wherein said computing of a respective altitude probability function is based on the computed likelihood function of the respective floor.
14. The method of claim 1, wherein said determining of an absolute altitude of at least some of the floors comprises: computing probability values for different sets of potential absolute altitudes of at least some of the floors of the structure.
15. The method of claim 14, wherein a respective probability value is based on values of the altitude probability functions for the respective floors being at respective absolute altitudes.
16. The method of claim 15, wherein said determining of an absolute altitude of at least some of the floors comprises: choosing absolute altitudes for at least some of the floors of the structure such that the probability value is maximized.
17. The method of claim 1, wherein the method further comprises: using said determined absolute altitude of at least some of the floors of the structure for representing vertical location information representative of an absolute altitude with respect to floors represented by an indoor map.
18. An apparatus comprising at least one processor and at least one memory containing computer program code, the at least one memory and the computer program code configured, with the at least one processor, to cause the apparatus at least to: obtain location data representing at least one track of one or more users at least partially in a structure, said location data comprising horizontal location information and vertical location information, said vertical location information being representative of an absolute altitude; obtain indoor map data representing different floors of the structure and indicating structural elements on the different floors; determine track sections of the at least one track represented by the location data such that each track section can be assumed to be on a single floor of the structure; at least partially compare determined track sections with floors of the structure represented by the indoor map data; and determine, based on said comparing, an absolute altitude of at least some of the floors of the structure represented by the indoor map data, wherein said determining of an absolute altitude of at least some of the floors comprises determining, for at least some of the floors, an altitude probability function indicating probabilities of absolute altitudes of a respective floor.
19. A non-transitory computer readable storage medium storing computer program code, the computer program code, when executed by a processor, causing at least one apparatus to: obtain location data representing at least one track of one or more users at least partially in a structure, said location data comprising horizontal location information and vertical location information, said vertical location information being representative of an absolute altitude; obtain indoor map data representing different floors of the structure and indicating structural elements on the different floors; determine track sections of the at least one track represented by the location data such that each track section can be assumed to be on a single floor of the structure; at least partially compare determined track sections with floors of the structure represented by the indoor map data; and determine, based on said comparing, an absolute altitude of at least some of the floors of the structure represented by the indoor map data, wherein said determining of an absolute altitude of at least some of the floors comprises determining, for at least some of the floors, an altitude probability function indicating probabilities of absolute altitudes of a respective floor.
Description
BRIEF DESCRIPTION OF THE FIGURES
(1)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
DETAILED DESCRIPTION
(10) The following description serves to deepen the understanding of the present invention and shall be understood to complement and be read together with the description as provided in the above summary section of this specification.
(11)
(12)
(13) Server 20 comprises a processor 21. Processor 21 may represent a single processor or two or more processors, which are for instance at least partially coupled, for instance via a bus. Processor 21 may use program memory 22 and main memory 23 to execute a program code stored in program memory 22 (for instance program code causing server 20 to perform embodiments of the different methods, when executed on processor 21). Some or all of memories 22 and 23 may also be included into processor 21. One of or both of memories 22 and 23 may be fixedly connected to processor 21 or at least partially removable from processor 21. Program memory 22 may for instance be a non-volatile memory. It may for instance be a FLASH memory, any of a ROM, PROM, EPROM and EEPROM memory or a hard disc, to name but a few examples. Program memory 22 may also comprise an operating system for processor 21. Main memory 23 may for instance be a volatile memory. It may for instance be a RAM or DRAM memory, to give but a few non-limiting examples. It may for instance be used as a working memory for processor 21 when executing an operating system and/or programs.
(14) Processor 21 further controls one or more communication interfaces 24 configured to receive and/or send information. For instance, server 20 may be configured to communicate with mobile device 30 of system 10 of
(15) Processor 21 further interfaces with a mass storage 25, which may be part of the server 20 or remote from server 20, and which may for instance be used to store one or more databases. For instance, server 20 may store, in a database, collected fingerprints and thus locations data collected by mobile device 30. Further sever 20 may store in a database indoor map data. Further, server 20 may store in a database determined radio maps.
(16) The components 22-25 of server 20 may for instance be connected with processor 21 by means of one or more serial and/or parallel busses.
(17)
(18) Processor 31 further controls a communication interface 34 configured to receive and/or send information. For instance, mobile device 30 may be configured by means of communication interface(s) 34 to observe radio signals of WLAN access points 6 or other radio nodes. Further mobile device 30 may be configured to communicate with server 20, in order to send collected fingerprints and in particular location data. Therein, the described communication may for instance be based on a (e.g. partly) wireless connection. As described before, the communication interface 34 may comprise circuitry such as modulators, filters, mixers, switches and/or one or more antennas to allow transmission and/or reception of signals. For instance, communication interface 34 is at least configured to allow communication according to a non-cellular communication system, such as for instance a Bluetooth, ZigBee or WLAN network, in particular to communicate with server 20. In embodiments of the invention, communication interface 34 may also be configured to allow communication according to a 2G/3G/4G/5G cellular communication system, in particular to communicate with server 20.
(19) Processor 31 further controls a user interface 35 configured to present information to a user of mobile device 30 to receive information from such a user, such as manually input position fixes, a site map or floor plan of the area or the like. User interface 34 may for instance be the standard user interface via which a user of mobile device 30 controls other functionality thereof, such as making phone calls, browsing the Internet, etc.
(20) Processor 31 may further control a GNSS interface 36 configured to receive location information of a GNSS such as Global Positioning System (GPS), Galileo, Global Navigation Satellite System (i.e. “Globalnaja Nawigazionnaja Sputnikowaja Sistema”, GLONASS) or Quasi-Zenith Satellite System (QZSS). In case of mobile device 30, the location information of GNSS interface 36 (potentially in connection with further sensors of mobile device 30, such as an inertial sensor, an accelerometer or gyroscope) may be used in order to obtain location data.
(21) Again, the components 32-36 of mobile device 30 may for instance be connected with processor 31 by means of one or more serial and/or parallel busses.
(22) The methods of the different aspects will now be described in more detail with respect to
(23)
(24) In short, the described method can be used to estimate the absolute altitude of each floor index of an indoor map using crowdsourced location data. Therein, the crowdsourced location data can represent tracks with 3D reference positions including absolute altitudes. Based on the altitudes, each track can be divided into track sections that can, based on altitude readings, be assumed to be in a single floor level (such as action 430). The horizontal shape of each track section is then compared with the indoor map geometry of each floor level (such as action 440). For each track section, the track section's altitude can be assigned to the floor level(s) whose horizontal geometry matches or match best with the horizontal shape of the track section (such as action 450).
(25)
(26) For example, if only the entrance information is used, there can be entrances that are in different floors but whose horizontal coordinates are practically identical. Furthermore, different floors of the same building can cover different horizontal areas and have different geometrical shapes. Thereby, it cannot always be known whether the user was in one floor and used an entrance, or whether the user was at another floor where the track's horizontal shape does not intersect with the floor boundary or perimeter (i.e. the track is totally enclosed inside the floor boundary or is fully outside of the floor boundary). For example, the track section 60 shown in
(27) Especially when only reduced indoor map data is used, some further assumptions might have to be made. For example, one might have to assume that the ordering of the floors is known, i.e. that e.g. floor 2 is higher in altitude than floor 1, for example. Furthermore, assumptions of the floor heights may need to be made. These assumptions might include one or more of the following: 1. The floor heights are assumed to be known precisely or approximately. 2. Constant floor height is assumed for a structure. 3. A set of floor altitudes is known based on e.g. methods for detecting multi-floor areas and their floor altitudes from crowdsourced data, but it is not known which floor indices the floor altitudes correspond to.
(28) Thus, in the following a more advanced method exploiting statistical methods in order to eliminate ambiguities is described in more detail. For the following exemplary implementation, it is assumed that the boundary or outer perimeter of each floor is known and described as a polygon (“floor polygon”), that the location of each entrance is known in (latitude, longitude, floor index) coordinates, and that the ordering of the floors is known, i.e. the floor altitude is an increasing function of the floor index. Furthermore, it is assumed that the floor height h is constant and is chosen from a finite set of candidate values, e.g. A={3.5 m, 3.6 m, 3.7 m, . . . , 4.5 m,}. However, these assumptions must not necessarily be made for the invention and the following implementation to work.
(29) In short, the example method comprises the following actions: 1. Divide each track into short track sections. 2. Pick the track sections that contain the most relevant information. 3. For each picked track section, determine probabilities for the track section being in each floor level based on how well the track section matches with the horizontal geometry of the floor. 4. For each floor and each track section, compute the likelihood function of the floor altitude (the higher the probability computed at point 3, the more the floor's likelihood is concentrated close to the track section's altitude). 5. For each floor, compute the altitude probability distribution as a product of individual track sections' likelihoods. 6. Compute the probability of each set of floor altitude values. 7. Choose the most probable floor altitude values.
(30) This approach will now be described in more detail with regard to
(31) Returning to
(32) According to action 420, indoor map data is also obtained representing different floors of the structure and indicating structural elements on the different floors. The indoor map data may for instance represent a different floors and entrances, for instance floor 1 (dotted line), floor 2 (solid line) and floor 3 (partly dashed line) and entrance 61 as shown
(33) Track sections of the at least one track represented by the location data are determined such that each track section can be assumed to be on a single floor of the structure (action 430). An example of a track section 60 is shown in
(34) For instance, each track is divided into short track sections with e.g. 5-second intervals. It is assumed that location at the ending point of each ith track section has a 3D reference location in (latitude lat.sub.i, longitude lon.sub.i, altitude alt.sub.i) coordinates and uncertainty values σ.sub.horiz i and σ.sub.alt i for horizontal position and altitude (e.g. standard deviations).
(35) From the track sections only those are selected that contain the most relevant information about the floor altitudes. Preferably, a minimum number of track sections is selected in order to reduce processing load and number of correlated measurements. This can be achieved by selecting the track sections where the track intersects with any floor polygon edge, and additional track sections such that all the altitude bands (e.g. 100 m+/−1 m, 103.5 m+/−1 m, etc.) observed during the track become picked up. For example, the track sections are picked where the track intersects any floor polygon edge. Also, each track section is picked where the altitude difference from any previously picked track section is significant (e.g. at least one floor level, say, 3.5 meters).
(36) The determined track sections are at least partially compared with floors of the structure represented by the indoor map data (action 440). This comparing comprises a determining, for at least some combinations of track sections and floors, a weighting factor indicating the matching of a respective track section to a respective floor (action 441).
(37) More specifically, for each selected track section, a weight is determined for each floor level based on how well the track section matches with the horizontal geometry of the floor. The total number of weights is “floor count” times “selected track section count”). For example, the following algorithm is used to give the highest weights to the floors where the track section intersects with the floor polygon edge close to an entrance:
(38) For each floor f where the ith track section intersects with the floor boundary, the distance d.sub.f,i,e from the intersection point to each entrance e located in the floor is computed (if there are any entrances in the floor). Compute the weight Ŵ.sub.f,i with a formula that is a decreasing function of each distance d.sub.f,i,e. For example, the Gaussian function is recommendable:
(39)
(40) where √ denotes the square-root, Σ.sub.e denotes the sum over the entrance indices e, exp( ) is the exponential function, p.sub.1 is a parameter that describes the typical entrance width, e.g. p.sub.1=1 meter, and σ.sub.horiz i is the horizontal location's standard deviation, in particular at the point of intersection of the track section with the floor boundary. Based on this formula, a floor where the track section intersects the floor boundary close to an entrance gets a high weight.
(41) For each floor f where the ith track section does not intersect with the floor boundary, the weight Ŵ.sub.f,i can be a constant. This constant can be smaller than the weight of a combination of track section and floor where the track section intersects the floor boundary with a small distance d.sub.f,i,e and otherwise larger. For example, the following function is recommendable:
(42)
(43) where p.sub.2 is parameter that is larger than p.sub.1 e.g. p.sub.2=100 meters. This weight accounts for the possibility that the user did not actually use any entrance.
(44) The availability of GNSS positioning can be used as a further measurement of whether the user entered or exited a structure or was all the time inside the structure. This measurement can be used e.g. using the following rules: i. If GNSS is regularly available both before and after the track section, increase the weights of the floors where the track section is completely outside the floor polygon. ii. If GNSS becomes available during the track section, increase the probability numbers of the floors where the track section exits the floor polygon. iii. If GNSS stops being available during the track section, increase the probability numbers of the floors where the track section enters the floor polygon. iv. If GNSS is not available either before or after the track section, increase the probability numbers of the floors where the track section is completely inside the floor polygon.
(45) Based on said comparing (i.e. on the computed weights or weighting factors), an absolute altitude of at least some of the floors of the structure represented by the indoor map data can be determined (action 450).
(46) This comprises computing, for at least some combinations of track sections and floors, a likelihood function indicating the likelihood of the absolute altitude of a respective floor based on a respective track section (action 451).
(47) For each floor f and track section i, the likelihood function of the floor altitude alt is computed such that the higher the weight, the more the likelihood is concentrated close to the track section's altitude alt.sub.i. A recommendable formula for the likelihood function (which can be thought of as a kind of unnormalized probability density function) is based on a mixture distribution, e.g.
(48)
(49) where P.sub.f,i is the (normalized) probability of floor f, which may be defined with the weighting factors Ŵ.sub.f,i as
(50)
(51) and C.sub.i is a constant number that ensures integrability to one, e.g.
(52)
(53) where n is an approximate building altitude e.g. η=[number of floors]×floor height (e.g. 3.5 meters) and Φ is the cumulative distribution function of the standard normal distribution (this formulation ensures that the latter term integrates to (1−P.sub.f,i)). The first term of this mixture distribution covers the case that the track section is (likely) in floor f so floor f's altitude is close to alt.sub.i, and the latter term covers the case that the track section is in any other floor, so floor f's altitude can be anything but close to alt.sub.i.
(54)
(55) The determining of an absolute altitude of at least some of the floors of the structure represented by the indoor map data further comprises computing, for at least some floors, an altitude probability function indicating the probabilities of absolute altitudes of a respective floor (action 452).
(56) Next, the likelihood functions of all the track sections are combined to get a (possibly unnormalized) probability density function for each floor's absolute altitude. One option to combine the likelihood functions is l.sub.f,i to multiply them according to the rules of probability:
(57)
(58) where Π.sub.i denotes the product over all the track sections. Therein, for each floor, the likelihood functions have been evaluated for each selected track section only at e.g. the points of a regular altitude grid such as {smallest measured altitude (sma), sma+1 m, sma+2 m, . . . , largest measured altitude} and then combined in order to reduce computational complexity.
(59) The determining of an absolute altitude of at least some of the floors of the structure represented by the indoor map data further comprises computing probability values for different sets of potential absolute altitudes of at least some of the floors of the structure (action 453).
(60) For this, it is looped over each possible combination of absolute floor altitudes and a probability number is evaluated for each combination. For example, a (possibly unnormalized) probability for each floor height candidate h.sub.j is obtained and each 1st floor altitude candidate alt1.sub.k is obtained e.g. with the formula
{tilde over (p)}(alt1.sub.k,h.sub.j)=Π.sub.f{tilde over (p)}.sub.f(atl1.sub.k+(f−1).Math.h.sub.j),
(61) where Π.sub.f denotes the product over all floors.
(62) Further, the determining of an absolute altitude of at least some of the floors of the structure represented by the indoor map data further comprises choosing absolute altitudes for at least some of the floors of the structure such that the probability value is maximized (action 454).
(63) For this, the floor altitude combination, i.e. the floor absolute altitude and the floor height, is chosen that best explains the measurements. For example, choose the (alt1.sub.k,h.sub.j) that maximizes the value of the probability p(alt1.sub.k,h.sub.j).
(64) It is noted that action 453 can be modified if constant floor height is not assumed. For example, it may be that some floor altitudes have been estimated with a multi-floor detection method but have not been matched with the floor indices. The probability number can then be computed for each possible combination of the detected absolute altitude/floor index-matching and a prior value for the remaining floor levels.
(65) The proposed algorithm can be extended such that all boundaries and entrances (e.g. wall intersections and doors) also inside the floors are taken into account.
(66)
(67) Any presented connection in the described embodiments is to be understood in a way that the involved components are operationally coupled. Thus, the connections can be direct or indirect with any number or combination of intervening elements, and there may be merely a functional relationship between the components.
(68) Further, as used in this text, the term ‘circuitry’ refers to any of the following: (a) hardware-only circuit implementations (such as implementations in only analog and/or digital circuitry) (b) combinations of circuits and software (and/or firmware), such as: (i) to a combination of processor(s) or (ii) to portions of processor(s)/software (including digital signal processor(s)), software, and memory(ies) that work together to cause an apparatus, such as a mobile phone, to perform various functions) and (c) to circuits, such as a microprocessor(s) or a portion of a microprocessor(s), that require software or firmware for operation, even if the software or firmware is not physically present.
(69) This definition of ‘circuitry’ applies to all uses of this term in this text, including in any claims. As a further example, as used in this text, the term ‘circuitry’ also covers an implementation of merely a processor (or multiple processors) or portion of a processor and its (or their) accompanying software and/or firmware. The term ‘circuitry’ also covers, for example, a baseband integrated circuit or applications processor integrated circuit for a mobile phone.
(70) Any of the processors mentioned in this text, in particular but not limited to processors of
(71) Moreover, any of the actions described or illustrated herein may be implemented using executable instructions in a general-purpose or special-purpose processor and stored on a computer-readable storage medium (e.g., disk, memory, or the like) to be executed by such a processor. References to ‘computer-readable storage medium’ should be understood to encompass specialized circuits such as FPGAs, ASICs, signal processing devices, and other devices.
(72) It will be understood that all presented embodiments are only exemplary, and that any feature presented for a particular exemplary embodiment may be used with any aspect of the invention on its own or in combination with any feature presented for the same or another particular exemplary embodiment and/or in combination with any other feature not mentioned. It will further be understood that any feature presented for an example embodiment in a particular category may also be used in a corresponding manner in an example embodiment of any other category.