Exploring Computer Vision and Image Processing Algorithms in Teaching Parallel Programming
Department of Electrical and Computer Engineering, University of Colorado, Boulder, Colorado
NSF/IEEE-TCPP Curriculum Initiative on Parallel and Distributed Computing, 2013
@article{connors2013exploring,
title={Exploring Computer Vision and Image Processing Algorithms in Teaching Parallel Programming},
author={Connors, Dan},
year={2013}
}
Computer Vision (CV) is a rapidly growing field, intent on enabling computers to process, analyze, and understand the information of images to produce structured information and/or make decisions. In recent years, interest in computer vision has grown in part as a result of both cheaper and more capable cameras, but also largely because of affordable and increasing levels of computer processing power. Computer vision and image processing algorithms are involved with a range of applications: object detection, face detection & recognition, augmented reality, optical character recognition, navigation, and robotics. As the field of computer vision has matured, the resulting outcomes (face detection, object tracking, panoramic photo stitching, content search) have literally been placed in the hands of computer engineering and computer science students, in the form of their mobile phones and devices. Computer performance is still a primary barrier to seamless computer vision and thus represents an excellent target for teaching parallel programming techniques. In many ways such vision and image applications allow students to demonstrate their work to others by demonstrating easily understood outcomes. In the context of GPU programming, computer vision algorithms serve not only as an effective model for CUDA and OpenCL, but also in exploring computer organization bottlenecks. Lastly, computer vision applications give students a unique real-time requirement for which to explore optimization and parallel programming creativity since often solutions involve interesting heuristics applied within codes. The paper showcases several example computer vision algorithms used in teaching computer engineering concepts in computer programming, GPU programming, and computer architecture. All exercises and source codes of this paper will be made available for download and use by anyone in the community at the time of workshop presentation.
May 11, 2013 by hgpu