I am doing a project, called user initiated real time object tracking system. Here, is what I
want to happen in the project:

1) Take a continuous stream from a web camera.

2) Using the mouse pointer, a user can draw a square, around an object of interest.

3) Then from there onwards, the square moves along with the object of interest. Thereby,
tracking each and every place, the object moves, hence the title, object tracking.


Current Progress

I have used dshownet(.NET wrapper for DirectShow)to take input from the web camera. And
I am in the process of splitting the video to frames. I have 4 ways in mind, to do the project :


Technique 1
|> There is a saved video
|> I load it.
|> when the video is running, i pause (using a pause button) it, at a particular scene and draw
a square on an object.
|> And when i press play button the square will move along with the object with no/5 seconds
processing time [OR] I will give the application, some processing time(e.g. 3 minutes), and then
it will play, from that point onwards with the tracking, taking place.


Technique 2

|> There is a saved video
|> I load it.
|> when the video is running i dont pause it but quickly draw a square around an object (when the
object is still at some point).
|> Then the object will be tracked after that with no processing time. [OR] with some processing time
(10 sec delay) making the file to play for a little greater time.


Technique 3

|> I take an input from a web cam for 1 min.
|> Save that video to a file
|> And perform Technique 1 or Technique 2


Technique 4 - (Apparently this seems alot harder, since there are lot of condition to be concerned about
like the lighting in the room, etc..)


|> Take input from a web cam continuously
|> Draw a square around the object without any pausing, when the object shows no movement (for e.g.
when a person is sitting down on a chair)
|> And then show the tracking by moving the square along with the object with no processing time [OR]
slight processing time of 2 secs such that the delay is not significantly apparent.


Objects to track :-
Basically I can track anything, since I use the mouse to draw on the video,

|> I am planning to track the whole body (but if this is troublesome.. next option)
|> I would try to track the face of an individual (obviously by drawing the area with a mouse pointer.)



Progress :

|> Still getting errors with the splitting. (Someone suggested to start splitting a
saved video first, and I am in the process of trying that now)

MY QUESTIONs

1) I need to know which technique(s) is allowed to use, since in Technique 4 the stream is
continuous and in most projects of my batch the video stream has a time limit after which the processing
happens.

2) Which Technique (out of the four) could I possibly implement in 1 and 1/2 months time frame ?

3) To code, is java + some java framework good for this or C#.net with emgucv/AForge.net/Dshownet [by the way my knowledge in java is good and not so good in C#.net]??



Thanks in advance