1 / 12

Parallelizing OpenCV: Optical Flow Algorithms

Parallelizing OpenCV: Optical Flow Algorithms. Arjun Agarwal Abhishek Gupta Eric Lovett. Optical Flow. Apparent motion of objects, surfaces and edges in a scene caused by the relative motion between scene and observer Use cases: For tracking objects

milica
Télécharger la présentation

Parallelizing OpenCV: Optical Flow Algorithms

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Parallelizing OpenCV:Optical Flow Algorithms Arjun Agarwal Abhishek Gupta Eric Lovett

  2. Optical Flow • Apparent motion of objects, surfaces and edges in a scene caused by the relative motion between scene and observer • Use cases: • For tracking objects • determine whether the objects are moving or the observer is moving • Three of the ways to do this in OpenCV that are not yet parallelized: • Horn & Schunck algorithm (Iterative) • Lucas & Kanade algorithm (Iterative) • Block matching method (Data decomposition)

  3. Optical Flow

  4. What we have done • Parallelized OpticalFlow BM and LK • Methodology: • Used OpenMP • Changed while loops to for loops (e.g. LK) • Removed inter-loop dependencies • Used data-driven decomposition • Analyze across: • Number of processors • Data granularity • Input size

  5. LK: Results

  6. LK: Results

  7. BM: Results

  8. BM: Results

  9. To Do • Need to finish parallelizing OpticalFlowHS • Explore why the speedups are not much • False Sharing* • Figure out what the sequential overhead is doing (matrix manipulations?) and if we can reduce or parallelize it* • Problem size is too small (we intend to explore the speedup for high definition videos) • We intend to explore wall-clock times for different scheduling (static vs. dynamic)

  10. Evaluation • Evaluation is done on Niagara-2 • It has 64 byte cache line • It has 8 processors and 8 hardware threads per processor

  11. Questions?

  12. Optical Flow LK • Inter-loop Dependency • Some variables in Iteration i depended on iteration (i-2) • Solution: We calculated those variables in the ith using the data that we have at ith iteration • We

More Related