Location model updating apparatus and location estimating method

A location model updating apparatus updates a location model based on data uploaded from a mobile terminal. A certainty of data observed at a location having a location name designated by a user is computed based on a previous histogram, for each most recent check-in data uploaded during a time from previous to current histogram updating, and a most recent histogram is generated based on the certainty. The location is detected using the previous histogram, based on a received signal strength included in each most recent check-in data, in order to judge whether the check-in data is correct, depending on whether a location name of the detected location matches the location name designated by the user and included in each most recent check-in data.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is based upon and claims the benefit of priority of the prior Japanese Patent Application No. 2013-202016, filed on Sep. 27, 2013, the entire contents of which are incorporated herein by reference.

FIELD

The embodiments discussed herein are related to a location model updating apparatus, a location estimating method, and a computer-readable storage medium.

BACKGROUND

A position estimating technique has been proposed in which a mobile terminal makes wireless communications with a plurality of base stations, and estimates a location of the mobile terminal by utilizing attenuation of received signal strengths depending on a distance to the mobile terminal from each of the plurality of base stations. For example, the base station may be an AP (Access Point) used in WiFi (Wireless Fidelity, registered trademark).

According to such a position estimating technique, the mobile terminal collects, in advance, IDs (Identifiers) of the plurality of base stations and RSSIs (Received Signal Strength Indicators) received at each location. From the IDs of the plurality of base stations and values of the RSSIs received at each location, an RSSI feature vector that is uniquely determined for each location is created, and a location model is created for each location using the RSSI feature vector. The location model may make a reference to a database indicating the location where the signals are received from the base stations, the base stations from which the signals are received by the mobile terminal at the location, and the RSSIs of the signals received by the mobile terminal at the location. When estimating the location, the RSSIs of the signals received by the mobile terminal from the base stations are collated with the location model, in order to estimate the location of the mobile terminal. Generally, the location model may be created by methods such as the k-NN (k-Nearest Neighbor algorithm) method, probability method based on probability distribution, non-parametric method, pattern matching method, or the like.

In order to improve the position estimating accuracy, it is desirable to create the location model by learning from a large number of learning samples. However, in order to collect the large number of learning samples, an operator of a location detection system must collect RSSI samples by moving to all target locations, and the load on the operator to collect the RSSI samples increases as the number of target locations increases. Hence, in order to reduce the load on the operator, it may be conceivable to create an initial location model based on the RSSI samples collected at a relatively small number of locations, and to periodically update the initial location model, for example.

However, because the conceivable method collects the RSSI samples from the relatively small number of locations and creates the initial location model based on the collected RSSI samples, it is difficult to improve the position estimating accuracy based on the initial location model. In addition, in order to obtain reliable RSSI samples for use in updating the initial location model, the operator must move to the target locations and collect the RSSI samples. For this reason, the load on the operator increases as the number of target locations increases, similarly as in the case in which the location model is created. Further, when the RSSI samples collected by people other than the operator are used to update the initial location model, the initial location model may be updated by erroneous data since the reliability of the RSSI samples collected by the people other than the operator is unknown. If the initial location model is updated based on erroneous data, the position estimating accuracy deteriorates.

Accordingly, it is conventionally difficult to update the location model without increasing the load on the operator of the location detection system, or without deteriorating the position estimating accuracy.

Examples of the related art include Japanese Laid-Open Patent Publications No. 2011-58928, No. 2009-272742, and No. 2009-55138.

SUMMARY

Embodiments may update the location model without increasing the load on the operator of the location detection system, or without deteriorating the position estimating accuracy.

According to one aspect of the present invention, a location model updating apparatus to update a location model based on data uploaded from a mobile terminal, includes a storage unit; and a processor configured to compute a certainty of data observed at a location having a location name designated by a user of the mobile terminal, based on a previous histogram stored in the storage unit, for each of most recent check-in data uploaded during a time from a previous histogram updating to a current histogram updating, and use the computed certainty as a number of votes to a histogram indicating a reception state of data from each base station at the location of the mobile terminal; generate a most recent histogram based on the number of votes to the histogram computed for each of the most recent check-in data; detect the location using the previous histogram, based on a received signal strength included in each of the most recent check-in data, in order to judge whether the check-in data is correct, depending on whether a location name of the detected location matches the location name designated by the user and included in each of the most recent check-in data; obtain a ratio of correct check-in data within each of the most recent check-in data, and compute a weight of the most recent histogram and a weight of the previous histogram from a ratio of correct check-in data currently obtained and a ratio of correct check-in data previously obtained; and update the previous histogram based on the weight of the most recent histogram and the weight of the previous histogram, in order to update the location model by storing the previous histogram that is updated, as the current histogram, in the storage unit.

DESCRIPTION OF EMBODIMENTS

A description will now be given of the location model updating apparatus, the position estimating method, and the computer-readable storage medium in each embodiment according to the present invention.

FIG. 1is a block diagram illustrating an example of a configuration of a mobile terminal in one embodiment. A mobile terminal1illustrated inFIG. 1is an example of a terminal apparatus provided with a communication function, which may be formed by a mobile phone such as a smart phone, for example. The mobile terminal1includes a CPU (Central Processing Unit)11, a storage unit12, an input device13, a display unit14, and a communication unit15that are connected via a bus16. The mobile terminal1is not limited to the connection using the bus16.

The CPU11is an example of a computer or processor. The CPU11controls the entire mobile terminal1, and executes a position estimating process or the like to be described later, by executing one or more programs. The storage unit12stores one or more programs to be executed by the CPU11, data to be used in computations performed by the CPU11, or the like. The storage unit12may be formed by a non-transitory computer-readable storage medium. The non-transitory computer-readable storage medium may be formed by a semiconductor memory device. In a case in which the non-transitory computer-readable storage medium is formed by a recording medium such as a magnetic recording medium, an optical recording medium, a magneto-optical recording medium, or the like, the storage unit12may be formed by a reader and writer (or read and write unit) that reads information from and writes information to the recording medium that is loaded into the reader and writer.

The input device13may be formed by a keyboard or the like, and is operated by a user when inputting commands, data, or the like to the mobile terminal1, for example. The display unit14may be formed by an LCD (Liquid Crystal Display) or the like, for example, and displays guidances, messages, or the like. The input device13and the display unit14may be formed integrally by a touchscreen panel, for example. The communication unit15has a wireless communication function capable of making wireless communication with an external apparatus (not illustrated), and has a known configuration including a receiver, a transmitter, an antenna, or the like. In this example, the communication unit15is communicable with an AP (Access Point) that uses WiFi, for example. The AP is an example of a base station.

FIG. 2is a diagram for explaining an example of a relationship of locations where a plurality of APs and the mobile terminal may exist. In the example illustrated inFIG. 2, a plurality of APs, namely, APs AP1through AP5, cover locations having location names L1and L2, and the mobile terminal1carried by the user exists within the location having the location name L1. The RSSI at the mobile terminal1is RSSI-1from the AP AP1, RSSI-1from the AP AP2, RSSI-3from the AP AP3, RSSI-4from the AP AP4, and RSSI-5from the AP AP5.

FIG. 3is a flow chart for explaining an example of a position estimating process of the mobile terminal. The position estimating process illustrated inFIG. 3may be executed by the CPU11. InFIG. 3, the CPU11in step S1scans WiFi data from each of the APs AP1through AP5to obtain WiFi scan data, acquires a MAC (Media Access Control) address of each of the APs AP1through AP5and the RSSIs from the WiFi scan data, and creates RSSI feature vectors. The CPU11in step S1also refers to an all-region AP information list100stored in the storage unit12, and excludes unlearned APs not included in the all-region AP information list100.

FIG. 4is a diagram illustrating an example of a data structure of the all-region AP information list. The all-region AP information list100illustrated inFIG. 4includes, with respect to AP numbers 1, 2, . . . that are arbitrarily allocated to each of the APs, MAC addresses M1, M2, . . . of the APs, and an AP covering location list. The AP covering location list includes the location names L1, L2, L3, . . . of the locations.

As will be described below, the all-region AP information list100may be created based on the information acquired from the WiFi scan data. First, a blank all-region AP information list100is prepared. Thereafter, when the all-region AP information list100is searched and a check-in AP at a source of the WiFi scan data is new, the MAC address of the check-in AP is added to the all-region AP information list100. At the same time, the location name that is checked in is added to a covering location list of this check-in AP. In a case in which the check-in AP is already stored in the all-region AP information list100, the covering location list of this check-in AP is searched, and a check-in location name is added to the covering location list when the check-in location name is new.

InFIG. 3, the CPU11in step S2refers to the all-region AP information list100to create a candidate location list of all coverage locations of the searched APs, as candidate locations, and stores the created candidate location list in the storage unit12. The CPU11in step S2also executes the following processes with respect to each AP APi. First, the CPU11performs a process to extract a coverage location list of each AP APi by referring to the all-region AP information list100. Next, the CPU11performs a process to add all members (that is, all locations) of the coverage location list of each AP APi to the candidate location list, but this process is skipped when the member (that is, location) is already added to the candidate location list. Next, the CPU11makes a judgment to determine whether the process with respect to all APs APi is completed. When the judgment result is NO, the process of the CPU11returns to the process to extract the coverage location list, and the process advances to step S3illustrated inFIG. 3when the judgment result is YES.

InFIG. 3, the CPU11in step S3computes a first stage observing probability of the AP that is the source of the WiFi scan data, with respect to each member (that is, each location) of the candidate location list.FIG. 5is a diagram illustrating an example of a data structure of a location model. A location model200illustrated inFIG. 5includes a location number, a location name, a threshold value of a second stage observing probability to be used within the location, and an observable AP list. The observable AP list includes a missing probability, observing probability, an observing probability for each strength level of the RSSI for a case in which the AP is observed, or the like, with respect to the MAC address.FIG. 5illustrates a case in which the number of strength levels of the RSSI for the case in which the AP is observed is four (4), and a length of the observable AP list is three (3), for example. The location model200is stored in the storage unit12, for example. Because the observable AP list includes a probability information part of the location model200, the observable AP list inFIG. 3is illustrated as a “location model (probability information)”. On the other hand, because parts other than the observable AP list includes a threshold value information part of the second stage observing probability to be used at each location of the location model200, the parts other than the observable AP list inFIG. 3is illustrated as a “location model (threshold value information)”.

The CPU11in step S3performs the following processes for each AP APi, with respect to each candidate location. First, the CPU11searches the observable AP list of the candidate location in the location model200illustrated inFIG. 5, and acquires an observing probability that is learned in advance when the AP APi is included in the observable AP list. On the other hand, when the AP APi is not included in the observable AP list, the CPU11sets a relatively small constant that is set in advance, for example, as the observing probability of the AP APi. Next, the CPU11accumulates the observing probability of the AP APi to a product of the observing probability stored in the storage unit12, and the CPU11makes a judgment to determine whether the process with respect to all APs APi is completed. When the judgment result is NO, the process of the CPU11returns to the process with respect to each AP APi, and when the judgment result is YES, the CPU11extracts the observable AP list of the candidate location of the location model200illustrated inFIG. 5.

Next, the CPU11performs the following processes with respect to each observable AP. First, the CPU11searches the WiFi scan data (AP1(MAC, RSSI, . . . )) to judge whether the observable AP is missing. When the MAC address of the observable AP is not included in the WiFi scan data, the CPU11judges that there is no missing observable AP, and the CPU11repeats the judgment to determine whether the observable AP is missing. On the other hand, when the CPU11judges that there is a missing observable AP, the CPU11extracts the missing probability of the missing observable AP from the location model200, and the CPU11accumulates the missing probability to a product of the missing probability stored in the storage unit12. When the process with respect to all observable APs is completed, the CPU11computes a product of the product of the observing probability and the product of the missing probability stored in the storage unit12. The CPU11defines the computed product as the first stage observing probability of the candidate location, and the computed product is paired with the candidate location by the CPU11and stored in the storage unit12. When the process with respect to all candidate locations is completed, the process of the CPU11advances to step S4illustrated inFIG. 3.

InFIG. 3, the CPU11in step S4discards the candidate locations having a low or low order first stage observing probability, in order to narrow the candidate locations. The CPU11in step S5computes the second stage observing probability based on the RSSI feature vector, with respect to the narrowed candidate locations. A second stage observing probability computing process performs the computation with respect to the candidate location list that is narrowed in step S4by the first stage observing probability computed in step S3.

The CPU11in step S5performs the following processes for each AP APi, with respect to each candidate location. First, the CPU11refers to the location model200, and when the MAC address of the AP APi is included in the observable AP list of the candidate location, the CPU11computes the strength level from the RSSI of the AP APi, and acquires from the location model200the observing probability for each strength level of the RSSI for the case in which the AP APi is observed. On the other hand, when the MAC address of the AP APi is not included in the observable AP list of the candidate location, the CPU11sets a relatively small constant that is set in advance, for example, as the observing probability for each strength level of the RSSI for the case in which the AP APi is observed. Next, the CPU11accumulates the observing probability for each strength level of the RSSI for the case in which the AP APi is observed to a product of the observing probability for each strength level stored in the storage unit12, and the CPU11makes a judgment to determine whether the process with respect to all APs APi is completed. When the judgment result is NO, the process of the CPU11returns to the process with respect to each AP APi, and when the judgment result is YES, the CPU11computes a product of the product of the missing probability computed in step S3and the product of the observing probability for each strength level, to store the computed product in the storage unit12. Then, the CPU11defines the computed product as the second stage observing probability, and the computed product is paired with the candidate location by the CPU11and stored in the storage unit12. When the process with respect to all candidate locations is completed, the process of the CPU11advances to step S6illustrated inFIG. 3.

InFIG. 3, the CPU11in step S6extracts (or selects) the candidate location having the largest second stage observing probability. The CPU11in step S7refers to the location model200illustrated inFIG. 5, and determines a final candidate location by making a judgment using a threshold value of the candidate location having the largest second stage observing probability. When the second stage observing probability is less than the threshold value, the CPU11judges that the mobile terminal1is not located at a final candidate location and the location of the mobile terminal1is unknown. On the other hand, when the second stage observing probability is greater than or equal to the threshold value, the CPU11judges that the mobile terminal1is located at the final candidate location. The CPU11in step S8outputs a judgment result indicating the location of the mobile terminal1, or indicating that the location of the mobile terminal1is unknown, and the position estimating process ends. The judgment result output in step S8may be output to application software or the like that provides services utilizing the position of the mobile terminal1, for example.

By executing the processes of steps S1through S5corresponding to procedures of the position estimating method, the CPU11may function as a narrowing unit or means to narrow the candidate positions of the mobile terminal that are estimated from the signals received from the plurality of base stations, based on the missing data of the signal received from a certain base station. In addition, by executing the processes of steps S6and S7corresponding to procedures of the position estimating method, the CPU11may function as an estimating unit or means to estimate the position of the mobile terminal from the narrowed candidate positions, based on the observing probability of the strength of the signals received.

Next, a description will be given of an example of a position estimating system in one embodiment, by referring toFIG. 6.FIG. 6is a diagram for explaining an example of an operation of the position estimating system in one embodiment. A position estimating system20illustrated inFIG. 6includes a mobile terminal1, and a server21communicable with the mobile terminal1by wireless communication. The server21has a function to learn (hereinafter also referred to as “update”) the location model200, using data (hereinafter also referred to as “check-in data”) checked in from the mobile terminal1. The mobile terminal1performs the position estimating process based on RSSI feature vectors that are newly observed, using the location model200downloaded from the server21. The server21has a known configuration including a processor and a storage unit, and may have a hardware configuration similar to that of the mobile terminal1illustrated inFIG. 1, for example. For this reason, illustration and description of the hardware configuration of the server21will be omitted. In this example, the server21functions as an example of a location data updating apparatus.

In step ST1illustrated inFIG. 6, the processor (for example, CPU11) of the mobile terminal1acquires the check-in data by acquiring the MAC address and the RSSI of each AP from the WiFi scan data. In step ST2, the processor of the mobile terminal1transmits the check-in data to the server21.

In step ST21, the processor (corresponding to CPU11illustrated inFIG. 1, for example) of the server21receives the check-in data from the mobile terminal1, and stores the check-in data in a check-in data file300within the storage unit (corresponding to the storage unit12illustrated inFIG. 1, for example) of the server21. In step ST22, the processor of the server21reads the check-in data file300from the storage unit of the server21, and executes the updating process to update the location model200.

The updating process to update the location model200may include updating the probability information part of the location model200, updating the threshold value information part of the location model, or the like. Updating the probability information part updates the location model (probability information) corresponding to the probability information part of the location model200, using the check-in data. Thereafter, when computing the second stage observing probability, the process of a second stage of the location estimation is performed with respect to the check-in data, based on the location model (probability information). The second stage observing probability and the location name of the check-in location, obtained by the process of the second stage of the location estimation, are used to compute the threshold value of the second stage observing probability, that is, the threshold value at each check-in location, in order to update the location model (threshold value information) corresponding to the threshold value information part of the location model200. The update process to update the location model200is completed after the probability information part and the threshold value information part of the location model200are updated.

In step ST23, the processor of the server21generates a file (hereinafter also referred to as a “location model file”)200A of the updated location model200, and stores the location model file200A in the storage unit of the server21. In step ST24, the processor of the server21reads the location model file200A from the storage unit of the server21, and transmits the location model file200A to the mobile terminal1.

In step ST3, the process of the mobile terminal1receives the location model file200A from the server21, and stores the location model file200A in the storage unit12of the mobile terminal1. In other words, the mobile terminal1stores the location model file200A in the storage unit12and updates the location model200every time a new location model file200A is generated in the server21. In step ST4, the processor of the mobile terminal1reads the location model file200A from the storage unit12, to perform the position estimating process based on the RSSI feature vectors of the check-in data, using the location model200, and outputs a judgment result on the location of the mobile terminal1.

FIG. 7is a diagram illustrating an example of a software configuration of the position estimating system. InFIG. 7, the mobile terminal1includes control application software (hereinafter also simply referred to as “application”)31, HTML5+Javascript (registered trademark) application32, an application executing environment33, a parts plug-in34, a parts manager35, a location detecting part36which is an example of a location detecting function, a file system37including a learning file37-1, and a WiFi manager38. The location detecting part36includes WiFi scan application41, registering application42to register WiFi data collecting location name, a JNI (Java Native Interface)43, a location judging library44including a memory DB (Data-Base)43-1, and a learning file acquiring client45. Instructions such as start measurement, stop measurement, execute data collecting application, or the like, for example, are issued from the parts manager35and input to the location detecting part36. In addition, a location change event, for example, is issued from the location detecting part36and input to the parts manager35.

On the other hand, the server21includes a servlet engine51, such as Tomcat (registered trademark), for example, a file system52, and location learning application53including a memory DB53-1. The servlet engine51includes server application61to collect WiFi data. The server application61includes a WiFi information storing servlet62, a data acquiring servlet63, and a learning file acquiring servlet64. The file system52includes WiFi information71, a location list72, and a learning file73.

In this example, the application of the mobile terminal1that is carried by a user is controlled in response to an entry or exit event of the user with respect to a location. The location detecting part36of the mobile terminal1detects the entry or exit event of the user with respect to the location, and notifies the detected entry or exit event to the application executing environment33via the parts manager35and the parts plug-in34. The application executing environment33has a function to have an application, that is to be used only at the location where the user checked in, pushed from the server21to the mobile terminal1, and to have an application deleted when the user checks out.

WiFi sample data required to create the location model may be collected in the following manner. The location detecting part36requires the location model in order to detect the entry or exit of the user with respect to the location. The location model is created based on WiFi information including the MAC address and the RSSI of the WiFi data observed at the location. In this example, in order to make the collecting of the WiFi sample data for creating the location model as simple as possible, an operator of the location detecting system first collects the WiFi sample data in advance at all locations that need to be detected, and creates an initial location model. Thereafter, the initial location model is loaded into the mobile terminal1of each user, so that an operation may be started using the initial location model.

When the user enters a location, the location detecting part36detects the location and issues an entry event with respect to the application. More particularly, the WiFi scan application41, under management of the WiFi manager38, acquires the WiFi information including the MAC address and the RSSI of the WiFi data observed at the location, and creates the RSSI feature vectors. In addition, the WiFi scan application41refers to the all-region AP information list stored in the memory DB44-1of the location judging library44, via the JNI43, in order to estimate the current location. The JNI43forms an interface linking programs written in Java, and codes to be actually executed on the CPU11, which are written in C++ language, for example. The all-region AP information list can be read into the memory DB44-1of the location judging library44, from the location model included in the learning file37-1of the file system37.

The application executing environment33controls the application according to the entry event. For example, in a case in which an erroneous location is detected, the user may start the registering application42to register WiFi data collecting location name, in order to register the correct location. The registering application42displays candidate locations on the display unit14, for example, and urges the user to select a candidate location or to newly input the candidate location from the input device13. When the candidate location is selected or newly input, the WiFi information of the location acquired by the scan of the WiFi scan application41is uploaded to the server21by wireless communication. Data of the paired MAC address and the RSSI of the WiFi information, linked to the location name uploaded to the server21, are the “check-in data”. The registering application42can acquire the location list from the server21. In addition, the learning file acquiring client45can acquire the learning file from the server21, and store the acquired learning file in the file system37as the learning file37-1.

When the position estimating system illustrated inFIG. 7is used by a large number of users, a large number of check-in data is uploaded, every day, to the server21from one or more mobile terminals1. At the server21, the WiFi information storing servlet62of the server application61stores the WiFi information into the file system52as the WiFi information71. The WiFi information can be read into the memory DB53-1by the location learning application53. In addition, the data acquiring servlet63of the server application61acquires the location list72of the file system52that is updatable by the WiFi information storing servlet62. The location learning application53periodically updates and stores into the memory DB53-1the location models for all of the registered locations, using the check-in data stored in the memory DB53-1as learning samples. The learning file generated from the location model stored in the memory DB53-1of the location learning application53is stored in the file system52as the learning file73. This learning file73can be read by the learning file acquiring servlet64of the server application61.

At the learning stage of the server21, an observing frequency of the RSSI of each AP, and a missing frequency of each AP, are counted from the check-in data collected by the mobile terminal1at each location. After the counting is completed, the counted frequencies at each location are normalized by dividing the counted frequencies by the number of check-in data at each location, in order to obtain the RSSI observing probability at each location and the missing probability of the observable AP, which are stored in the location model. At the location detecting stage, a likelihood is computed for all registered location candidates using the probability method, based on the observed WiFi information and the location model. The computed likelihood of the location candidate is defined as a “location likelihood (or likelihood of location)”, and the location candidate having a maximum location likelihood that is greater than or equal to a threshold value is judged to be the “location” where the user is currently located. Accordingly, the location model stores probability distribution information, including the observing and missing probability distributions of each AP at each location, and an observing probability distribution of the RSSI level of each AP at each location.

FIG. 8is a diagram for explaining an example of the location model.FIG. 8illustrates the AP observing and missing probabilities, and the observing probability for each RSSI level. In HTG1ofFIG. 8, (a) illustrates missing and observing histograms for an example in which, amongst 22 learning samples (check-in data) collected at a location having a location name L1, 5 samples are the samples missing observation of the AP AP1, and 17 samples are the samples of observation of the AP AP1. In this case, at the location having the location name L1, the missing probability of the AP AP1is 5/22=0.227, and the observing probability of the AP AP1is 17/22=0.773. In addition, in HTG1ofFIG. 8, (b) illustrates an RSSI histogram in which, amongst 17 samples of the AP AP1observed, 4 samples have the RSSI level0, 6 samples have the RSSI level1, 5 samples have the RSSI level2, and 2 samples have the RSSI level3. Accordingly, when the AP AP1is observed at the location having the location name L1, the observing probability for the RSSI levels0,1,2, and3are 4/17=0.235, 6/17=0.353, 5/17=0.294, and 2/17=0.118, respectively. Similarly, in HTG1ofFIG. 8, (c) illustrates missing and observing histograms for an example in which, at the location having the location name L1, the missing probability of the AP AP2is 2/22=0.091, and the observing probability of the AP AP2is 20/22=0.909. Further, in HTG1ofFIG. 8, (d) illustrates an RSSI histogram in which, when the AP AP2is observed at the location having the location name L1, the observing probability for the RSSI levels1,2,3,4, and5are 2/20=0.100, 5/20=0.250, 2/20=0.100, 8/20=0.400, and 3/20=0.150, respectively.

In HTG2ofFIG. 8, (a) illustrates missing and observing histograms for an example in which, amongst 20 learning samples (check-in data) collected at a location having a location name L2, 2 samples are the samples missing observation of the AP AP1, and 18 samples are the samples of observation of the AP AP1. In this case, at the location having the location name L2, the missing probability of the AP AP1is 2/20=0.100, and the observing probability of the AP AP1is 18/20=0.900. In addition, in HTG2ofFIG. 8, (b) illustrates an RSSI histogram in which, amongst 18 samples of the AP AP1observed, 1 sample has the RSSI level1, 2 samples have the RSSI level2, 3 samples have the RSSI level 3, 5 samples have the RSSI level4, and 7 samples have the RSSI level5. Similarly, in HTG2ofFIG. 8, (c) illustrates missing and observing histograms for an example in which, at the location having the location name L2, the missing probability of the AP AP2is 5/20=0.250, and the observing probability of the AP AP2is 15/20=0.750. Further, in HTG2ofFIG. 8, (d) illustrates an RSSI histogram in which, when the AP AP2is observed at the location having the location name L2, the observing probability for the RSSI levels0,1,2,3,4, and5are 4/15=0.267, 2/15=0.133, 3/15=0.200, 3/15=0.200, 2/15=0.133, and 1/15=0.067, respectively.

In HTG1and HTG2ofFIG. 8, the ordinates in (a) and (c) indicate the missing frequency and the observing frequency of the data observation, and the abscissas in (a) and (c) indicate the observation missing state or the observing state of the APs AP1and AP2, respectively. In addition, in HTG1and HTG2ofFIG. 8, the ordinates in (b) and (d) indicate the observing frequency, and the abscissas in (b) and (d) indicate the RSSI level of the APs AP1and AP2, respectively.

The likelihood of the candidate position can be computed from [Likelihood]=[Probability of Observing RSSI Level]×[Probability of Missing Observation of AP]. For example, in a case in which the RSSI obtained by scanning the AP AP1has the RSSI level1, the likelihood of the location having the location name L1is [Probability of Observing RSSI Level1of AP AP1]×[Probability of Missing observation of AP AP2]=[6/17]×[2/22]=0.032. In addition, in a case in which the RSSI obtained by scanning the AP AP1has the RSSI level1and the RSSI obtained by scanning the AP AP2has the RSSI level4, for example, the likelihood of the location having the location name L1can be computed from [Probability of Observing RSSI Level1of AP AP1]×[Probability of Observing RSSI level4of AP AP2]=[6/17]×[8/20]=0.141.

In order to improve the position estimating accuracy, the location preferably learns from a large number of learning samples. However, in order to collect a large number of learning samples, the operator of the location detecting system must move to all target locations to collect the RSSI samples, Hence, the larger the number of locations, the larger the load on the operator to collect the RSSI samples. In order to reduce the load on the operator, it may be conceivable to create an initial location model based on the RSSI samples collected at a predetermined number of locations, and to update the initial location model based on the samples from the mobile terminal at the time of updating the location morel or during the operation to detect the location, so as to improve the position estimating accuracy. However, according to this conceivable method, the samples from the mobile terminal, used to update the initial location model, are based on inputs made from the user of the mobile terminal, and the reliability of the samples is unknown. For example, when the user inputs data, such as an erroneous location name, from the mobile terminal the initial location model is updated based on erroneous data. In addition, when the initial location model is updated based on the erroneous data, the position estimating accuracy deteriorates.

Accordingly, in one embodiment, in order to reduce the effects of erroneous check-in data, the location model that has learned is automatically updated based solely on most recent (or newest) check-in data. More particularly, a most recent histogram is first generated by a histogram generating process using the most recent check-in data. Then, during a histogram updating process, the most recent histogram and a previous histogram are weighted and combined, to generate a current histogram. The current histogram becomes the previous histogram during the next histogram updating process. As will be explained below, the histogram updating process reduces the effects of the erroneous check-in data in two stages.

FIG. 9is a block diagram illustrating an example of a location model updating apparatus in one embodiment. A location model updating apparatus80illustrated inFIG. 9includes a certainty computing unit81, a most recent histogram creating unit82, a location detecting unit83, an updating weight computing unit84, and a histogram updating unit85. The certainty computing unit81and the most recent histogram creating unit82execute processes of the first stage to be described later. On the other hand, the location detecting unit83, the updating weight computing unit84, and the histogram updating unit85execute processes of the second stage to be described later. Functions of the location model updating apparatus80may be executed by the processor of the server21, for example, and may execute processes corresponding to the processes of steps ST22and ST23illustrated inFIG. 6, for example.

At the first stage, the most recent histogram is generated in the following manner. The certainty computing unit81computes a certainty of data observed at the location having the location name designated by the user, based on the previous histogram stored in the storage unit of the server21, for each most recent check-in data, and sets the certainty that is computed as a number of votes (or a score) added to the histogram. In addition, the most recent histogram creating unit82generates the most recent histogram, based on the certainty computed for each most recent check-in data, that is, based on the number of votes (o score) added to the histogram. The most recent check-in data refers to the check-in data uploaded to the server21during a time from the previous histogram updating to the current histogram updating.

The number of votes of the check-in data may be computed in the following manner, for example. The check-in data diis represented by
di={Si;liuser}; i=0, . . . ,I,
and the WiFi scan data siis represented by
si=[r(α0),r(α1), . . . ,r(αk), . . . ,r(αK)]
where i denotes an index of the check-in data, I denotes a number of all check-in data, αkdenotes a MAC address of the access point (AP), r(αk) is an integer value denoting the RSSI at the access point αk, K denotes a number of access points observed by the scan, liuserdenotes a location name linked by the user to the WiFi scan data si. In the following Molddenotes the previous histogram, and Mnewdenotes the most recent histogram.

With respect to the check-in data di={Si; liuser}, a location likelihood q(liuser|si; Mold) of the location liuserlinked by the user is computed based on the previous histogram Mold. In addition, location likelihood q(liuser|si; Mold) is used as the number of votes when generating a weighted histogram. In other words, the number of votes, wi, of the check-in data diis represented by the following formula (1).
wi=q(liuser|si;Mold)  (1)

The number of votes, wi, can be paired with the check-in data diand represented as {di; wi}.

The most recent histogram Mnewmay be generated in the following manner, for example. In this example, a description will be given of the generation of the most recent histogram Mnewof the access point α at the location l. A number of check-in data at the location l is denoted by N(l), and an index of the check-in data at the location l is denoted by n. A frequency bnew(r) of observing the RSSI level r of the access point α at the location l may be counted and normalized by the number of data, as represented by the following formula (2)

bnew⁡(r)=1N⁡(l)⁢∑n=0N⁡(l)⁢⁢Xn(2)
where the following formula (3) stands.

Xn={wnif⁡[r⁡(a)]n=r0other(3)
In addition, [r(α)]ndenotes the RSSI of the access point α observed by the nth check-in data. Normally, when computing the votes (or score) of the histogram, it is assumed that wi=1, however, wnε[0.0 1.0] in this example.

At the second stage, the histogram is updated in the following manner. The location detecting unit83performs the location detection using the previous histogram, based on the RSSI data included in each most recent check-in data, and judges whether the check-in data is correct depending on whether the detected location name matches the location name that is designated by the user and is included in each most recent check-in data. The updating weight computing unit84obtains a ratio of the correct check-in data within each most recent check-in data, and computes a weight of the most recent histogram and a weight of the previous histogram from the currently obtained ratio of the correct check-in data and the previously obtained ratio of the correct check-in data, respectively. The weights that are computed may be the ratios themselves that are obtained. The histogram updating unit85updates the previous histogram based on an weighted average of the most recent histogram and a weighted average of the previous histogram, and stores the previous histogram that is updated into the storage unit of the server21as the current histogram, in order to update the location model stored in the storage unit of the server21.

The weight of the histogram may be computed in the following manner, for example. The location detecting process represented by the following formula (4) may be performed on the WiFi scan data siof all check-in data di={Si; liuser}, based on the previous histogram Mold, where {circumflex over (l)}idenotes a detected location that is detected from the location model used up to that point in time.
{circumflex over (l)}i=G(si,Mold)  (4)

Amongst the check-in data at the location l, the data whose detected location {circumflex over (l)} matches the location name liuserassigned by the user is counted as teaching data, as represented by the following formula (5), where the formula (6) stands.

Ncorr⁡(l)=∑n=0N⁡(l)⁢⁢δlnuser,l^n(5)δlnuser,l^n={1lnuser=l^n0lnuser≠l^n(6)
A ratio λnewof the teaching data occupying the check-in data at the location l may be computed based on the following formula (7).
λnew=Ncorr(l)/N(l)  (7)

The location model may also be updated in the following manner, for example. That is, a frequency b(r) at which the RSSI level r of the access point α is observed at the location l may be updated according to the following formula (8), where λolddenotes a ratio of the teaching data occupying the check-in data up to that point in time, and η is represented by the following formula (9).
b(r)={λold/(λnew+λold)}bold(r)+η=λnew/(λnew+λold)bnew(r)  (8)
η=λnew/(λold+λnew)  (9)

Finally, the updated frequency b(r) is substituted into bold(r), as represented by the following formula
bold(r)=b(r)  (10)

FIG. 10is a flow chart for explaining an example of a process of the location model updating apparatus80illustrated inFIG. 9. In this example, the process illustrated inFIG. 10is performed when the processor of the server21executes the program stored in the storage unit of the server21. InFIG. 10, processes of steps S11through S17correspond to the processes of the first stage described above, and processes of steps S18through S26correspond to the processes of the second stage described above.

InFIG. 10, the processor in step S11judges whether the number of new check-in data is sufficiently large. The process advances to step S12when the judgment result in step S11becomes YES. In other words, a judgment is made to determine whether the number of new check-in data uploaded to the server21is greater than a predetermined value, and if not, the processor of the server21waits until the number of new check-in data uploaded to the server21becomes greater than the predetermined value. When the judgment result in step S11is YES, the processor in step S12judges whether the initial histogram is stored in the storage unit of the server21. The process advances to step S13when the judgment result in step S12is NO. The processor in step S13creates the initial histogram according to procedures described above. The process may return to step S11after step S13, or the process may end after step S13.

On the other hand, when the judgment result in step S12is YES, the processor in step S14clears the most recent histogram stored in the storage unit of the server21, and prepares a region to store the most recent histogram. The processor in step S15extracts one check-in data. The processor in step S16uses the previous histogram (initial histogram in the case of a first updating) to compute a certainty that the RSSI data included in the extracted check-in data is definitely the data uploaded at the location having the location name included in the check-in data. The processor in step S17votes to the most recent histogram by using the certainty of the check-in data computed in step S16as the number of votes of this check-in data. The processor in step S18judges whether check-in data that has not yet voted exists, and the process returns to step S15when the judgment result in step S18is YES.

On the other hand, when the judgment result in step S18is NO, the processor in step S19extracts one check-in data. The processor in step S20performs a location detecting process using the histogram up to that point in time, based on the RSSI data included in the check-in data. The processor in step S21judges whether the location detected by the location detecting process matches the location name designated for the check-in data. The process advances to step S22when the judgment result in step S21is YES, and the process advances to step S23when the judgment result in step S21is NO. The processor in step S22increments, by one, a count of a counter that counts the number of correct check-in data (or a ratio of correct check-in data), and the process advances to step S23.

The processor in step S23judges whether the check-in data whose location has not yet been detected exists, and the process returns to step S19when the judgment result in step S23is YES. When the judgment result in step S23is NO, the processor in step S24computes the weights of the new and old histograms, that is, the weight of the most recent histogram and the weight of the previous histogram. For example, the weights of the new and old histograms may be computed based on the number of correct check-in data (or a ratio of correct check-in data) obtained when updating the previous histogram, and the number of correct check-in data (or a ratio of correct check-in data) counted in step S22. The processor in step S25computes a weighted averages of the new and old histograms, that is the weighted average of the most recent histogram and the weighted average of the previous histogram. The processor in step S26updates the previous histogram based on the weighted averages of the new and old histograms, and stores the updated, previous histogram into the storage unit of the server21as the current histogram, to thereby update the location model, and the process ends.

Accordingly in this embodiment, the certainty of each check-in data is obtained based on the previous histogram, and the number of votes of each check-in data is determined according to the certainty that is obtained, in order to create the most recent histogram by the voting of each check-in data. In addition, the ratio of the correct check-in data within each most recent check-in data is obtained, based on the result of the location detecting process using the previous histogram, and the ratio that is obtained and the previously obtained ratio are used as weights of the most recent histogram and the previous histogram, respectively. Further, the weighted average of the most recent histogram and the weighted average of the previous histogram are used to update the previous histogram.

The number of votes of the erroneous check-in data is small, and for this reason, the effects of the erroneous check-in data on the creation of the most recent histogram can be reduced. In addition, because the weights of the previous histogram and the most recent histogram are computed based on the ratio of the correct check-in data, more weight is placed on the correct check-in data having the larger ratio, and the effects of the erroneous check-in data on the creation of the most recent histogram can be reduced. Further, the histogram that is created in the manner described above may follow changes in daily activities, such as gradual changes in the RSSI levels caused by moving of furniture or the like indoors, for example.

Next, a description will be given of an example of the process executed by the location model updating apparatus80, by referring toFIG. 11.

FIG. 11is a diagram for explaining an example of a first histogram update.FIG. 11illustrates an example of the first histogram update for a case in which the initial histogram is already created, and 3 check-in data are received during a time from after the initial histogram is created to when the first histogram update is made. An update time in which one histogram update is made is 24 hours, for example. InFIG. 11, those parts that are the same as those corresponding parts inFIG. 8are designated by the same reference numerals, and a description thereof will be omitted.

InFIG. 11, at the time of creating the initial histogram, the initial histogram at the location having the location name L1indicated in HTG1is already created based on the initial check-in data from the manager. Hence, the first histogram update is made based on the check-in data from the user. In this example,3user check-in data C1through C3are uploaded to the server21. Each of the user check-in data C1through C3includes the RSSI data, and the location name designated by the user. In the example illustrated inFIG. 11, the RSSI data of the user check-in data C1includes the RSSI RSSI(AP1) of the AP AP1having the RSSI level3, and the RSSI of the AP AP2is missing. In addition, the RSSI data of the user check-in data C2includes the RSSI RSSI(AP2) of the AP AP2having the RSSI level2, and the RSSI of the AP AP1is missing. The RSSI data of the user check-in data C3includes the RSSI RSSI(AP1) of the AP AP1having the RSSI level0, and the RSSI RSSI(AP2) of the AP AP2having the RSSI level4. In this example, the location name designated by the user is L1in each of the user check-in data C1through C3.

When computing the certainty of the check-in data at the first stage, a reference is made to the past histogram (initial histogram in this example), and the certainty is obtained from a product of the missing probability of the observable AP missing within the check-in data and the observing probability of the RSSI of the observable AP within the check-in data. As a result, the RSSI data of the user check-in data C1is level3for RSSI(AP1), missing for AP2, and L1for the location name designated by the user. The certainty of the user check-in data for this case is [Probability of RSSI(AP1)]×[Missing Probability of AP2]=0.12×0.09=0.011. Similarly, the RSSI data of the user check-in data C2is missing for AP1, level2for RSSI(AP2), and L1for the location name designated by the user, and the certainty for this case is 0.057. Further, the RSSI data of the user check-in data C3is level0for RSSI(AP1), level4for RSSI(AP2), and L1for the location name designated by the user, and the certainty for this case is 0.096.

When generating the most recent histogram at the first stage, the certainty of each check-in data is regarded as the number of votes of each check-in data. In other words, the larger the certainty of the check-in data, the larger the number votes. The number of votes may take a value from 0 to 1.0. When each check-in data votes to the most recent histogram, the number of votes is added to bins of the RSSI levels from the observed APs AP1and AP2. Hence, the most recent histograms at the location having the location name L1become as illustrated inFIGS. 12A,12B,12C, and12D.

FIGS. 12A,12B,12C, and12D are diagrams illustrating examples of the most recent histograms at the location having the location name L1for a case in which the RSSI data of the check-in data C1has the level3for the AP AP1(that is, RSSI(AP1)=3) and missing for the AP AP2, the certainty (or number of votes) of the check-in data C1is 0.011, and the RSSI data of the check-in data C2is missing for the AP AP1and has the level2for the AP AP2(that is, RSSI(AP2)=2), the certainty (or number of votes) of the check-in data C2is 0.057, the RSSI data of the check-in data C3has the level0for the AP AP1(that is, RSSI(AP1)=0) and has the level4for the AP AP2(that is, RSSI(AP2)=4), and the certainty (or number of votes) of the check-in data C3is 0.096.FIG. 12Aillustrates the missing and observing histograms for the AP AP1,FIG. 12Billustrates the RSSI histogram for the AP AP1, FIG.12C illustrates the missing and observing histograms for the AP AP2, andFIG. 12Dillustrates the RSSI histogram for the AP AP2. InFIGS. 12A through 12D, the number of votes of the check-in data C1is indicated by a rightwardly descending hatching, the number of votes of the check-in data C2is indicated by a leftwardly descending hatching, and the number of votes of the check-in data C3is indicated by a vertical stripe hatching.

When normalizing the most recent histogram at the first stage, the missing and observing histograms are normalized so that a sum of the missing and observing bins of the missing and observing histograms becomes 1.0, for example, and the RSSI histogram is normalized so that a sum of the bins of all levels (levels 0 to 5 in this example) becomes 1.0. Hence, the most recent histograms at the location having the location name L1after the normalization become as illustrated inFIGS. 13A,13B,13C, and13D.FIGS. 13A,13B,13C, and13D are diagrams illustrating examples of the most recent histograms after normalization at the location having the location name L1.FIG. 13Aillustrates the missing and observing histograms for the AP AP1,FIG. 13Billustrates the RSSI histogram for the AP AP1,FIG. 13Cillustrates the missing and observing histograms for the AP AP2, andFIG. 13Dillustrates the RSSI histogram for the AP AP2.

When updating the histograms at the second stage, weights to be used to compute the weighted average of the previous histogram and the most recent histogram are obtained. As described above, the check-in data includes the RSSI data and the location name designated by the user. In addition, the location detecting function is used to detect the location from the RSSI data, based on the previous histograms at each of the locations having the location names L1, L2, L3, . . . . When the location name of the location detected by the location detecting function and the location designated by the user match, the check-in data is counted as an error-free check-in data, and a ratio of the error-free check-in data (that is, a ratio of the correct check-in data) is computed. The ratio of the current correct check-in data is obtained by dividing a total number of error-free check-in data by a total number of check-in data.

The weighted average of the previous histogram and the most recent histogram increases the effects of the histogram having the larger ratio of the correct check-in data. Hence, when generating the current histogram by combining the most recent histogram and the previous histogram with the weighted average, the current histogram may be generated according to the following formula.
(Current Histogram)={(Ratio of Previous Correct Check-In Data)×(Previous Histogram)+(Ratio of Current Correct Check-In Data)×(Most Recent Histogram)}/{(Ratio of Previous Correct Check-In Data)+(Ratio of Correct Current Check-In Data)}

At the second stage, the weight of the histogram update can be computed by computing the ratio of the correct check-in data based on location detection results with respect to each check-in data illustrated inFIG. 14.FIG. 14is a diagram illustrating an example of the location detection results with respect to each of the check-in data C1through C3. InFIG. 14, “Location L1” denotes the location having the location name L1, and “Location L2” denotes the location having the location name L2. In addition, “O” indicates the correct check-in data, and “X” indicates the erroneous (or incorrect) check-in data. In this example, the ratio of the current correct check-in data is obtained by dividing the total number of error-free check-in data by the total number of check-in data, that is, 2/3=0.67. The weight of the histogram update is set by assuming that all initial check-in data used to create the initial histogram are correct, and the weight of the previous histogram is set to 1.0 and the weight of the most recent histogram is set to 2/3=0.67.

Accordingly, at the second stage, the histogram of the AP AP1at the location having the location name L1is updated as illustrated inFIG. 15, and the histogram of the AP AP2at the location having the location name L1is updated as illustrated inFIG. 16.

FIG. 15is a diagram for explaining the update of the histogram of the AP AP1. InFIG. 15, those parts that are the same as those corresponding parts inFIG. 8are designated by the same reference numerals, and a description thereof will be omitted. In the example illustrated inFIG. 15, the weight of the previous histogram is 1.0, and the weight of the most recent histogram is 0.67. Hence, from (0.23×1.0+0.35×0.67)/(1.0+0.67)=0.28, the missing and observing histograms and the RSSI histogram in the current histogram of the AP AP1are updated as illustrated in (a) and (b) ofFIG. 15.

FIG. 16is a diagram for explaining the update of the histogram of the AP AP2. InFIG. 16, those parts that are the same as those corresponding parts inFIG. 8are designated by the same reference numerals, and a description thereof will be omitted. In the example illustrated inFIG. 16, the weight of the previous histogram is 1.0, and the weight of the most recent histogram is 0.67. Hence, from (0.09×1.0+0.07×0.67)/(1.0+0.67)=0.08, the missing and observing histograms and the RSSI histogram in the current histogram of the AP AP2are updated as illustrated in (c) and (d) ofFIG. 16.

Accordingly, after the first histogram update illustrated inFIG. 11, a histogram HTG1′ at the location having the location name L1becomes as illustrated inFIG. 17, which corresponds to the histograms illustrated in (a) and (b) ofFIG. 15and (c) and (d) ofFIG. 16.FIG. 17is a diagram for explaining results after the first histogram update. InFIG. 17, those parts that are the same as those corresponding parts inFIG. 11are designated by the same reference numerals, and a description thereof will be omitted.

FIG. 18is a diagram for explaining an example of a second histogram update.FIG. 18illustrates the second histogram update for a case in which, after the first histogram update, 6 check-in data are obtained before the second histogram update. InFIG. 18, those parts that are the same as those corresponding parts inFIG. 11are designated by the same reference numerals, and a description thereof will be omitted.

InFIG. 18, at the time of the second histogram update, because the first histogram at the location having the location name L1, indicated by HTG1′, is already updated based on the user check-in data, the second histogram update is made based on the user check-in data. In this example,6user check-in data C4through C9are uploaded to the server21. Each of the user check-in data C4through C9includes the RSSI data and the location name designated by the user. In the example illustrated inFIG. 18, the RSSI data of the user check-in data C4includes the RSSI RSSI(AP1) of the AP AP1having the RSSI level1, and the RSSI of the AP AP2is missing. In addition, the RSSI data of the user check-in data C5includes the RSSI RSSI(AP1) of the AP AP1having the RSSI level0, and the RSSI RSSI(AP2) of the AP AP2having the RSSI level1. The RSSI data of the user check-in data C6includes the RSSI RSSI(AP1) of the AP AP1having the RSSI level1, and the RSSI RSSI(AP2) of the AP AP2having the RSSI level5. The RSSI data of the user check-in data C7includes the RSSI RSSI(AP1) of the AP AP1having the RSSI level0, and the RSSI RSSI(AP2) of the AP AP2having the RSSI level2. The RSSI data of the user check-in data C8includes the RSSI RSSI(AP2) of the AP AP2having the RSSI level1, and the RSSI of the AP AP1is missing. The RSSI data of the user check-in data C9includes the RSSI RSSI(AP2) of the AP AP2having the RSSI level3, and the RSSI of the AP AP1is missing. In this example, the location name designated by the user is L1in each of the user check-in data C4through C9.

Computing the certainty of the check-in data, generating the most recent histogram, and normalizing the most recent histogram at the first stage may be carried out in a manner similar to that at the time of the first histogram update described above, and illustration and description thereof will be omitted. In addition, updating the histogram and computing the weight of the histogram update at the second stage may be carried out in a manner similar to that at the time of the first histogram update described above.

At the second stage, the weight of the histogram update can be computed by computing the ratio of the correct check-in data based on location detection results with respect to each check-in data illustrated inFIG. 19.FIG. 19is a diagram illustrating an example of the location detection results with respect to each of the check-in data C4through C9. InFIG. 19, the same designations are used as inFIG. 14. In this example, the weight of the previous histogram is set to 2/3=0.67, and the weight of the most recent histogram is set to 5/6=0.83.

Accordingly, at the second stage, the histogram of the AP AP1at the location having the location name L1is updated as illustrated inFIG. 20, and the histogram of the AP AP2at the location having the location name L1is updated as illustrated inFIG. 21.

FIG. 20is a diagram for explaining the update of the histogram of the AP AP1. InFIG. 20, those parts that are the same as those corresponding parts inFIG. 15are designated by the same reference numerals, and a description thereof will be omitted. In the example illustrated inFIG. 20, the weight of the previous histogram is 0.67, and the weight of the most recent histogram is 0.83. Hence, from (0.28×0.67+0.33×0.83)/(0.67+0.83)=0.31, the missing and observing histograms and the RSSI histogram in the current histogram of the AP AP1are updated as illustrated in (a) and (b) ofFIG. 20.

FIG. 21is a diagram for explaining the update of the histogram of the AP AP2. InFIG. 21, those parts that are the same as those corresponding parts inFIG. 16are designated by the same reference numerals, and a description thereof will be omitted. In the example illustrated inFIG. 21, the weight of the previous histogram is 0.67, and the weight of the most recent histogram is 0.83. Hence, from (0.08×0.67+0.07×0.83)/(0.67+0.83)=0.07, the missing and observing histograms and the RSSI histogram in the current histogram of the AP AP2are updated as illustrated in (c) and (d) ofFIG. 21.

Accordingly, after the second histogram update illustrated inFIG. 18, a histogram HTG1″ at the location having the location name L1becomes as illustrated inFIG. 22, which corresponds to the histograms illustrated in (a) and (b) ofFIG. 20and (c) and (d) ofFIG. 21.FIG. 22is a diagram for explaining results after the second histogram update. InFIG. 22, those parts that are the same as those corresponding parts inFIG. 17are designated by the same reference numerals, and a description thereof will be omitted.

Third and subsequent histogram updates may be carried out in a manner similar to that of the second histogram update described above. Hence, the location model may be updated at the server, based on the user check-in data uploaded to the server21.