Você está na página 1de 3

1

OpenCL software implementation of Optical


flow Algorithm on GPU
Report Submitted for Review I

Rukmini Vishnubhotla
Roll No.EDM13B037

Guided by
Dr. Swathi Gurumani
(signature)

Abstract
Determining optical flow, the pattern of apparent motion of objects caused by the relative
motion between observer and objects in the scene, is a fundamental problem in computer
vision. Optical flow algorithms aim to estimate the motion of pixels in a sequence of images
as they travel from frame to frame. Optical flow can be used in a wide range of higher level
computer vision tasks, from object tracking and robot navigation to motion estimation and
image stabilization. There is a real need for shortening the required computational time of
optical flow for use in practical applications.
Graphical Processing Units (GPUs) were originally developed for fast rendering in
computer graphics, but recently high level languages have enabled general-purpose GPU
computation (GPGPU). Recent needs for high performance computer vision techniques led to
using GPUs as a powerful processing platform for various computer vision algorithms. Most
computer vision algorithms operating on a per pixel basis are well suited for GPU
parallelization, since GPU kernel programs can be quickly and easily applied to all the pixels
at the same time. Ways to significantly speedup such methods on commodity hardware are an
important contribution as they enable more efficient research in fields that build upon motion
features.
The outcomes of the project are focused on the GPU implementation and performance
analysis of optical flow algorithms using OpenCL development platforms. OpenCL, the open
standard for parallel programming of heterogeneous systems is presently the most
prominently used GPU computing language. OpenCL provides a standard interface
for parallel computing using task-based and data-based parallelism.

1. Objective
The main goal of this project is to analyze the efficiency (particularly, the increase of
performance) of optical flow algorithms using OpenCL(Open Computing Language)
software implementation on GPU(Graphic Processing Unit). OpenCL offer flexible control
mechanisms to take the most advantage of the parallel architecture of GPUs.
Our project goal is to identify an increase in GPU-based (on OpenCL platform)
performance compared to CPUbased performance. The purpose of implementing these
algorithms on the GPU is to achieve improved performance over the standard serial version.
Unlike the way normal processors run threads, GPUs run a huge amount of threads
concurrently instead of running one thread at a time.

2. Work done
Gained a basic insight on OpenCL, a standardized tool independent of processors,
operating systems and memory types. OpenCL provides standard APIs at a level close to the
hardware. An overview of Optical flow algorithms and performance benefits of GPU are
studied.

3. Work to be done
To learn the GPU programming model and architecture, parallel programming
patterns, and optimization techniques. To familiarize with OpenCL programming
environment. To gain insight of optical flow algorithms. Mapping the algorithm on GPU
efficiently. Implementation of the algorithm on OpenCL using GPU technology. To do the
performance analysis of the algorithm using OpenCL.

References
[1] Hands On OpenCL by HandsOnOpenCL [online].
Avaliable:https://handsonopencl.github.io/
[2] GPU based real-time optical flow computation by Clement Moussu, Advanced
Computing of Imperial college, Londo
[3] The open standard for parallel programming of heterogeneous systems [online].
Available: https://www.khronos.org/opencl/
[4] Realtime phase-based optical flow on the GPU
Available: http://ieeexplore.ieee.org/document/4563090/
[5] OpenCL imaging on the GPU: Optical flow [online].
Available:https://www.khronos.org/assets/uploads/developers/library/2011_GDC_OpenC
L/NVIDIA-OpenCL-Optical-Flow_GDC-Mar11.pdf

Você também pode gostar