“Bomb tracker”
(or “the eye in the sky”)

Presented by:

Dan Kogan

Ilya Kaganovsky

Introduction:

Cameras and other vision devices are vastly used for security and military purposes.

We implemented "the bomb tracker" witch is a program that calculates the estimated impact point of a bomb throw computed vision.

Our goal is to predict the bomb's path. Our way of achieve that goal is by

Manipulating input's from two cameras (or other vision devices) at fixed time periods.

Approach and Method

The human tracking and prediction capability was an inspiration for our system and a proof of existence.

Like the human vision we read two images and manipulate it and compute a 3-D perception of the world.

Than by simple mathematics and physics determine the bomb's path.

The 3 major computing steps are:

1. Reading three sets of two images. a set represents the bomb from two camera devices at a time period.

than we calculate a point to represent the location.

2. for each set of two points given in 2-D (x,y)

we find a co-responding point in 3-D (x,y,z)

by calculations of stereo vision.

3. With the three 3-D pointes we find, throw interpolation polynomial, the curves representing the bomb path, the impact point would be the curves value at y=0.

Step 1: reading and labeling

We read three sets of two pictures as matrix's.

For each picture we find the segment of the bomb by relaxation labeling

Our relaxation labeling parameters were:

·  The objects are pixels and the labels are the color's (black, white).

·  The initial confidence I choose was the 1/ color (0<c<1). (With an exception color 255>1/254 because we can't be sore a black cell I certainly black (same goes for 0 white).

·  The compatibility function was the normalized distance from the cell when the cells share the same label and 0 otherwise.

n  For each picture we produce a point that represents the bomb’s location.

We use lateral inhibition and then Return the position of the cell with the maximal value. (Thus we recognize the center of the “first” big enough segment as the bomb).

Step2: stereo

n  Once we got two pointes we calculate the missing damnation:

Depth = b*f/ abs(xr - xl);

Where ‘b’ is the distance between the cameras and ‘f’ is a camera property.

Xr is the coordinate point of the right camera and xl of the left.

n  We prefer ‘f’ and d to be large because the bomb would probably be far from the cameras.

Step3: interpolation

There are two basic methods to find bomb path:

1.  by physical formula

·  Advantages:

-  good formula will return very exact result

·  Disadvantages:

- depends on many parameters such as time, wind power and direction, bomb weight…

2.  by interpolation

·  Advantages:

- we have to know only some coordinate points to make interpolation

- there are many interpolation methods that we can use, each one can approach more or less for the task

- by adding points we can improve result

·  Disadvantages:

-  approximate result path

We prefer interpolation method

We find the 2 degree polynomial that fits the 3 points.

We return its crossing point with the Z Axis (height).

The method that we preferred is good when calculations of coordinate points are exact enough and we have only 3 such points

Steps overview:

Our Matlab functions:

Wrie_p.m.- gets a 2xN vector of N (x,y) pointes and prints to file.

Get_point.m - does step 1 and 2 (together with seg.m that dose the segmentation).

findDepth.m - is step 3.

Endpoint.m - gets as input three 3-D points and returns the estimated impact point.

Main.m - combines the three steps.

Example of main function executing (instead of usage):

main([20 10; 40 35; 20 50],[5 10 25], 100, 'salt & pepper', 10, 1);

It calls write_p function:

Now get_point function is executed:

First it do segmentation of the pictures, after it returns coordinates of the points of the bomb.

After it, main function call to the findDepth function with points that was found and b = 10, f = 1.

By this time we have all information needed to do convolution and find the path and estimated Impact point. It calls endpoint function and..:

Ans = -51.5424 2.3000 0

Some other experiments:

main([20 10; 40 35; 20 50],[10 10 10], 100, 'salt & pepper', 10, 1);

Ans = -51.9106 1.0000 0

main([50 10; 40 35; 20 50],[10 10 10], 100, 'salt & pepper', 10, 1);

Ans = -133.7543 1.0000 0

main([20 10; 40 35; 50 50],[10 10 10], 100, 'salt & pepper', 10, 1);

Ans = -58.7543 1.0000 0

main([50 50; 40 35; 20 10],[2 5 8], 150, 'salt & pepper', 10, 1);

Ans = -40.6016 0.7030 0

Future work:

We have seen that methods which we used work.

It would be quite good to continue experiments with real photos of some objects (it may be a tennis ball for example, or may be really…a bomb (?)). It would be interesting to compare the real results with the results of computer calculation.

Experiments in use of different interpolation methods or some other methods can be interesting too.

References:

An Introduction to Numerical Methods and Analysis by James F. Epperson (Wiley, 2001).

Relaxation Labeling Algorithms – A review, by Kittler and Illingworth, 1985.

A Guided Tour of Computer Vision, by V.S. Nalwa, Addison-Wesley, 1993.

http://www.cs.bgu.ac.il/~ben-shahar/Teaching/Computational-Vision/ web-site