In some sense, computer graphics and computer vision are inverses of one another. Special purpose computer vision hardware is rarely found in typical mass-produced personal computers, but graphics processing units (GPUs) found on most personal computers, often exceed (in number of transistors as well as in compute power) the capabilities of the Central Processing Unit (CPU). This paper shows speedups attained by using computer graphics hardware for implementation of computer vision algorithms by efficiently mapping mathematical operations of computer vision onto modern computer graphics architecture. As an example computer vision algorithm, we implement a camera motion tracking routine on modern, GeForce FX class GPUs. Algorithms are implemented using OpenGL and the nVIDIA Cg fragment shaders. Trade–offs between computer vision requirements and GPU resources are discussed. Algorithm implementation is examined closely, and hardware bottlenecks are addressed to examine the performance of GPU architecture for computer vision.
Keywords: Open Graphics Library (OpenGL), Graphics processing Unit (GPU)
[...] James Fung, Felix Tang, and Steve Mann, “Mediated reality using computer graphics hardware for computer vision,” in Proceedings of the International Symposium on Wearable Computing 2002 (ISWC2002), Seattle, Washington, USA, Oct pp. 83–89. Shingo Kagami, Takashi Komuro, Idaku Ishii, and Masatoshi Ishikawa, real–time visual processing system using a general purpose vision in Proceedings of the 2002 IEEE International Conference on Robotics and Automation, Washington, DC, USA, May 2002, pp. 1229–1234. Peter J. Burt, pyramid-based front-end processor for dynamic vision applications,” Proceedings of the IEEE, vol no pp. [...]
[...] The per–pixel functionality provided by the fragment shaders makes them a natural for image processing and computer vision Blurring and downsampling, and derivatives The following Cg code (unrolled by the Cg compiler) can be used to create a simple low–pass filtered image: float4 diff = { for( ; ) { for( ; ) { diff+= texRECT(texture,Coord+float2(i,j)); diff = diff/ 9.0 ; In the case that the down sampled image is desired, the image can be texture mapped onto a quadrilateral which fills a window which is one quarter the size of the original image. [...]
[...] The mapping of the image processing and computer vision algorithms into computer graphics hardware explicitly and practically exposes the relationship between these operations. For instance, it has been shown that the process of image Registration using a algebraic projective geometry is isomorphic to the process of projecting a texture mapped polygon under perspective projection in computer graphics In the same fashion, modern graphics requires a number of operations to be performed on an incoming fragment generated from a mathematical representation of a desired scene. [...]
[...] Ertl, “Accelerating Morphological Analysis with Graphics Hardware,” in Workshop on Vision, Modelling, and Visualization VMV ' pp. 337–345, infi x. Steve Mann, “Wearable computing: Toward humanistic intelligence,” IEEE Intelligent Systems, vol no May/June 2001. Steve Mann and James Fung, tap devices for augmented, deliberately diminished or otherwise altered visual perception of rigid planar patches of real world scenes,” Presence, vol no pp. K. Proudfoot, W. R. Mark, S. Txvetkov, and Hanrahan P., realtime procedural shading system for programmable graphics hardware,” in Proceedings of ACMSIGGRAPH (2001). [...]
[...] MacLean, “Video rate stereo depth measurement on programmable hardware,” in IEEE Conference on Computer Vision & Pattern Recognition, June 2003, pp. 203–210. Jens Krueger and Ruediger Westermann, “Linear algebra operators for gpu implementation of numerical algorithms,” ACMTransactions on Graphics vol no pp. C. Thompson, S. Hahn, and M. Oskin, “Using modern graphics architecture for general-purpose computing: A framework and analysis,” in SIGGRAPH/Internation Symposium on Microarchitecture, Turkey, Nov Because of the overhead, it is also likely that the fragment shaders are not being utilized all of the time, but lie idle during some parts of the rendering (during readback for instance) PARALLEL COMPUTATION ON MULTIPLE GPUS We have also designed and built various kinds of architectures that use multiple graphics cards in a single system. [...]
APA Style reference
For your bibliographyOnline reading
with our online readerContent validated
by our reading committee