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.

Sunday, April 12, 2009

Why the camera is a good aerial sensor

We can use a number of different sensors for aerial vehicle use. We can name sonar, radar, lidar, GPS and camera as the most commonly used sensors.
The principle working behind sonar, radar and lidar are all nearly the same in that they all send out a signal that hits a target and returns. By intercepting this returning signal, the device can provide an estimate of the position of the objects in relation to the vehicle. Thus these devices are known as active devices.
The GPS on the other hand is a passive device that relies on the signals sent out by a number of satelites that orbit the earth. By calculating the time difference between the reception of these signals the GPS can calculate its own position in relation to the satelites and also in relation to the earth.
Finally we have the camera that senses the incomming rays of light from a large number of directions and provides an image that represents the strength of these rays.
For use in localization of course the GPS is the best choice, but there are situations in which the use of GPS or related technologies may not be possible. For example indoor environments or in between large buildings can have an unwanted effect on the signals that are sent by the satellites. Further problems are posed in combat situations where the signals may be jammed by the adversaries.
The problem with sonar is that, in high altitudes, a long time is required for the signal to reach earth and also the signal is dispersed alot

Thesis

My Msc Thesis is about hierarchical localization for aerial vehicle use. Localization by itself is about finding the location of an object. In our case in which we are working with aerial vehicles, we want to find the location of the vehicle. Of the sensors that are used for aerial localization the camera is best suited for localization (after GPS) as it can pick up images of the underlying terrain and register it against a provided map.
As outlined by the before, our approach towards this problem will be a hierarchical, meaning that we want to be able to find our position in a number of approximative steps. The procedure will first make a guess at the possible position of the aerial vehicle, and then, in each subsequent step it will refine its guess till it reaches an acceptable accuracy.
There already exist a number of work that try to perform localization hierarchically and these will be discussed in subsequent posts.