Blog

23 Sep 2012 . .
Skeletons from Sketches of Dancing Poses paper for VL/HCC 2012 Demo Comments

I have put together a quick demo for the upcoming conference. Sadly I wont be there to present the work but the main author Manuel J. Fonseca from IST is going to be there.

 

imageimage

 

Give it a play and let us know what you think. This is a heuristic approach to parsing of sketched postures into a skeleton.

Paper Details and Demo from: http://stuartjames.info/skeletons-from-sketches-of-dancing-poses.aspx


Stuart James  


08 Sep 2012 . .
Paralympic Swimming and Wheelchair Tennis, just wow Comments

DSC_0289

Flag raising after medals awarded

 

DSC_0291

The Crowd

 

DSC_0314

Women's medley

 

DSC_0318

So close for second and third!

 

DSC_0347

Designed wheelchair’s seem to help

 

DSC_0360

Power shot!

 

DSC_0367

 

DSC_0369DSC_0371

American guy on left was absolutely incredible, his competitor on the right.


Stuart James  


08 Sep 2012 . .
OpenCV: Brox Optical Flow Sample, possible fix Comments

I had some fun getting OpenCV with CUDA support and the demo to work that required OpenGL that for some yet unknown reason would not connect in properly. So I thought I would share my experience.

First of compile OpenCV with CUDA

image

 

You can also enable OpenGL, but this didn’t work for me yet it did enable the #define HAVE_OPENGL compile it up and copy out the brox example and make the following corrections, aka #defeine out the OPENGL window parts.

1 2 cout << "OpenCV / NVIDIA Computer Vision" << endl; 3 cout << "Optical Flow Demo: Frame Interpolation" << endl; 4 cout << "=========================================" << endl; 5 6 namedWindow("Forward flow"); 7 namedWindow("Backward flow"); 8 9 #ifdef HAVE_OPENGL 10 11 namedWindow("Needle Map", WINDOW_OPENGL); 12 setGlDevice(); 13 14 #endif 15 16 namedWindow("Interpolated frame"); 17 18

To note you may need to #undef HAVE_OPENGL. For a full easy run source you can get from here

 

Reference: Body of code taken from OpenCV Sample

 

basketball1basketball2

imageimage

Left – Forward Optical flow, Right – Backward Optical flow

 

Some interesting performance info for computation of Brox Optical Flow it took 0.01s, but the Image Copy to GPU took 6.485s [e.g. GpuMat d_frame0(frame0Gray) ]. This was on a laptop spec of i7 (8 thread), 10gb ram, GeForce GT540M 1GB. I will try on another machine sometime see if can get a faster performance specifically in image copy.

 

Note:

  • There may be a better way to overcome the OpenGL requirement this was just a quick work around
  • NVIDIA CUDA compiler does not currently support Visual Studio 2012 therefore for CUDA you need to use 2010.
  • </ul>
    Stuart James  ...


08 Sep 2012 . .
BMVC 2012 Comments

After helping as a “Student Helper” (aka Helen’s Minion) for this week at BMVC 2012, I thought would post up a few shots taken over the week. We had a photographer there so haven't taken too many but to give you a taster of the conference.

BMVC Conference Reception

Conference Reception Inside Guildford Cathedral

 

BMVC T-Shirt

BMVC Helper T-Shirt Back, Surrey last hosted in ‘93!

 

BMVC Our gracious hosts

Our gracious hosts minus Krystian welcoming us to Brooklands Museum

 

BMVC Looking around the Brooklands

Looking around the Brooklands

 

...

 

BMVC Brooklands Engine Room

Engine room with moving parts!

 

BMVC Conference Banquet

Conference Banquet

BMVC Andrew Fitzgibbon   BMVC John Illingworth

Andrew Fitzgibbon introducing John Illingworth as BMVA Distinguished Fellow

 

BMVC2013 Bristol

Finally get ready for next year, BMVC 2013 hosted by University of Bristol


Stuart James  


18 Aug 2012 . .
Looking at Optical Flow in real scenarios Comments

In many scenarios knowing how an object moves between frames is important, for example if you are trying to separate moving objects from the background or to calculate the speed of a tennis ball. Generally within Computer Vision people default to the Lucas Kanade[1] Tracker or the Pyramid expansion, although this tracker is commonly used it is not generally considered to work particularly well in real world scenarios. To help understand a little better I have compared 3 different techniques over a selection of different video types varying in object and quality.

We compare:

  • Lucas-Kanade
  • Brox[2]
  • Sun[3]
  • </ul>

    To note in these experiments we use default settings provided by the implementations, with tweaking you will get better results. Also I am sure there are faster implementations than the matlab ones used. I also realise they are very hard test cases with low quality, lots of noise motion blur.

    Vector Comparison

    Frame 1 Frame 2 LucasKanade Brox Sun
    horse-a horse-b pyrlk_flow horse_brox_flow horse_sun_flow
    dance-a dance-b dance_pyrlk_flow dance_brox_flow dance_sun_flow
    snow3-a snow3-b snowboard_pyrlk_flow snowboard_brox_flow snowboard_sun_flow

     

    Performance

      Lucas-Kanade Brox Sun
    Horse (1280x720) 105s 64s 619s
    Dance(400x400) 26s 15s 134s
    Snowboarder(720x576) 30s 28s 294s

     

    Conclusion

    Well as you can see they are inconclusive results, Sun’s approach I would say works better at too higher computational cost LK works well on the dance footage or at least in that specific example, less noisy frames of the dance footage I have found LK performed poorly on. Brox, seems generally not to cope very well in these cases. To conclude, optical flow is still a very very incomplete field, you have to test on your problem to find the best solution.

    References

    [1] Lucas, B., & Kanade, T. (1981). An iterative image registration technique with an application to stereo vision. Proceedings of the 7th international joint … (Vol. 130, pp. 121–129). Retrieved from http://www.ri.cmu.edu/pub_files/pub3/lucas_bruce_d_1981_1/lucas_bruce_d_1981_1.ps.gz

    [2] Brox, T., Bruhn, A., Papenberg, N., & Weickert, J. (2004). High accuracy optical flow estimation based on a theory for warping. Computer Vision-ECCV 2004, 4(May), 25–36. Retrieved from http://www.springerlink.com/index/87a4ckjqm92lp3j9.pdf

    [3] Sun, D., Roth, S., & Black, M. J. (2010). Secrets of optical flow estimation and their principles. 2010 IEEE Computer Society Conference on Computer Vision and Pattern Recognition, 2432–2439. doi:10.1109/CVPR.2010.5539939

    Disclaimer

    This evaluation was done by taking openly available code for full references see the download file, that contains readme references in the relevant subfolders. If you have developed your own implementation of one of these methods or an alternative approach it would be great to expand with your results.


    Stuart James  ...