by Janez Pers
If you are impatient, jump to the samples at the end of the page.
This page briefly describes results, limitations and use of program VTRACER, and is supposed to demonstrate efficiency of algorithms used in it.
1. What type of data this program processes ?
Input in this program are sequences of images, typically video sequences. Output data are image sequences with marked object and a log file.
2. Anyway, what do you mean by "object movement tracing" ?
This program is capable of determining if there is a moving object in the video sequence. For example, a cat running , like on the example below, an aeroplane, a car... This program can determine the approximate size of the object, its center and can mark it on each frame of the seqeuence. It can also write a log file, containing all possible information about movement of the object.
3. Ok, but what is so special about it ??
Ehm. I don't know. If you think that it is a waste of time, and that somebody has already done this, than it is really nothing special. But, here are some things I think that are worth to mention:
a) This program and algorithms on which it is based WORK.
b) They work on REAL video sequences, not only on some artificially made samples with sharp edges and recognizable shapes.
c) This program is NOT disturbed by camera movement, shaking and other disturbances which are result of NORMAL camera recording. The example below was recorded with amateur Olympus Hi8 camcorder in hand.
d) This program works also if the backround is NOT UNIFORM (like the bluescreen, for example). See the example below.
e) This program does not need to know WHAT is on the video. Even more, it doesn't matter what is the object we're tracing. It doesn't matter whether it is a cat, a dog, an aeroplane or something else. It doesn't matter if it is in the sky or on the ground.
4. How does it work?
Basically, there are five algorithms built in this program. Some of them are "the engine", which makes thing work, others are used to reduce/compensate disturbances, which would otherwise disable main engine to process the sequence succesfully.
5. Details, please ?
No way. Maybe that program IS useful, I don't know yet.
6. Useful for what ?!
Use your imagination. For example a Puma robot, controlled by this program and equipped with video camera and a machine gun, placed above a very busy street... (don't take that serious). I don't know yet.
7. It can't be sooo excellent!
It is not. There are following problems:
a) Camera rotation. This program cannot eliminate influence of camera rotation, if it is beyond reasonable limits, and fails to recognize anything. "Reasonable limits" are those of normal camera recording (How much do you roll your camcorder when you record your videos?).
b) Perspective. Why? Here is a simple example. Close one of your eyes. Put one finger approximately 10 centimeters (3 inches) away from your face. Place other hand with another finger 40 to 50 centimeters away, so the fingers will align. Move your head. Now, you see one finger moving relative to another one, and both moving relative to the background. Yes,YOU KNOW that they are still, but that is, YOU KNOW THAT, YOU DON'T SEE THAT.Perspective factor is removed in your brain, using two eyes. I haven't found any way to implement that in my program.
c) Program is capable of tracing just 1 object at the time. There are ways to overcome that limitation, and I am planning to implement them.
d) Unwanted "movements". Because of c), algorithm is easily confused by other changes in a video sequence, for example moving reflection in a window. The perspective effect also falls into that category.
e) All problems described above are quite frequent, just watch your videos carefully. That is another problem.
8. Show me some samples!
Here you have. Note the following:
a) The moving object is the cat. The white marks were added to this video exclusively by the computer, without any human corrections.
b) There are 24 frames in that video, 22 of them marked. As you can see, the success rate is 20 of 22.
c) The only human interference in processing this video was calibration at the beginning. As you might expect, algorithm needs some kind of sensibility setting at the beginning. With fixed sensibility setting the success rate was 18/22. With adaptive (automatic) sensibility setting, program needs calibration after successfuly processing of two frames. In process of calibration, program "learns" enough of the object that is tracing and is capable to set sensibility in the following frames. On the other hand, that somehow limits movement recognition to the specific object used in calibration.
And here you can click to download TESTM2.avi , a video sequence compressed with Intel Indeo(R) 32.
This page has been accesed for times since 6.9.1996.
Comments to: janez.pers@kiss.muzej.si
(C) 1996 Janez Pers