Wednesday, April 29, 2009

Christian Siagian's sensor model

Mr Christian Siagian has a publication on how they managed to localize a camera in a scene. To do this they have used a particle filter to make and refine estimates of the location of a robot in a scene and. Now what I wanted to do is similar in that I want to use particle filter to localize.
Another similarity between my work and Mr. Siagian's is that I plan to use SIFT (or other patch encoding) features to aid my localization. What we both are doing essentially is using the matched SIFT features as sensor reading coming from the camera.
Now when a particle filter is used we need a sensor model to integrate the data from the sensors into the estimates of the particle filter. A sensor model provides us with a estimate of p(Rt|X) where Rt is a sensor reading and X is a hypothetical state of the system.
For my work I am going to perform a number of experiments to come up with an estimate of p(Rt|X) in the system that I will be using, but we were curious to know the sensor model that Mr. Siagian had used for his work, so I looked it up here(you'll have to read into the pdf file), and what he has done is assume a Gaussian profile for the SIFT sensor model.
To explain more clearly firstly he has an object recognition module. Here, an object is actually a number of SIFT features that appear together. So in the first runs the system extracts a number of objects (group of SIFT features) from the captured images and records these along with the place in the map where the objects were captured.
Afterwards in the test runs, when an object is recognized (a number of features are matched against a number of features of a single object in the data base) for each particle (in the particle filter) we need to update the weight of that particle by multiplying it by p(Rt|Xp) where Xp is the position (or state) of the particle in question and Rt is the event of observing the observed feature. Hence p(Rt|Xp) is the probability of seeing the object if we were indeed in the position that the particle tells us to be.
We now return to the thing that we were trying to clarify: how is p(Rt|Xp) calculated. As we have said with each object the position where the object was acquired is recorded. The value in question, is the chances of drawing a point further away from the position of the object than the particle. This chance is modelled using a Gaussian function with its sigma value set to 5% of the map diagonal.

No comments: