Haxed Haxed - 10 days ago 6
C# Question

Real time object tracking in java(some java API) or C#(emgucv,dshownet,Aforge.NET)

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 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 term 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 on 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 Way 1 or Way 2





Technique 4 - (Apparently this seems alot harder)





  • 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


  • I am planning to use 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.)





Time to code : 1 and 1/2 months




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) Which Technique (out of the four) could I possibly implement in 1 and 1/2 months time frame ?

2) 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

Answer

Technique 1,2,3 you could implement in Java using the Java Media Framework and ImageJ libraries. For Technique 4 you are better to implement in C++ or other non-interpreted language given the time constraints.

Comments