As the title implies, this course provides an introduction to computer vision. Honestly, a better title would be "Introduction to Computer Vision Programming", because I emphasize practical coding examples over rigorous theory. The outcome for this course is that all students should have a general understanding of how to combine common computer vision algorithms into more advanced processing pipelines of enhanced capability.
This class will involve regular, fairly intensive programming assignments. Roughly 50% of the assignments will require C++ OR Python skills, while the other 50% will require explicitly C++. All notes and example code will be written within the context of C++. In order to take this course, you must either be confident in your current C++ abilities or your ability to teach yourself a new language quickly.
The programming assignments will require time, focus, and dedication to complete. As your instructor, I promise that you will learn valuable skills while solving the problems that I assign, however, I do expect you to spend a significant amount of work hours in a relatively short calendar period on programming.
My goal as the instructor of this class is to instill as many computer/machine vision & perception skills in you as possible in a relatively short mount of time. I will grade you on the design of your solutions and the quality of your submitted code (formatting, adherence to standards, commenting, etc.). Class attendance will not be recorded, but absences will very likely negatively affect your performance on assignments.
Earning a grade of "A" in the class will require functional, quality code submissions on each assignment. A thorough specificaion of requirements, along with the corresponding grading weights, is provided with each assignment.
- Introduction to state-of-the-art computer vision techniques and applications
- Programming environment setup
- Data acquisition and display
- Image thresholding, morphology
- Edges, lines, RANSAC
- Motion detection & tracking
- Feature detection & object recognition
- Optical character recognition
- Camera calibration & fiducial markers
- Depth and 3D sensing techniques and hardware
- Point clouds
- Segmentation
- Registration
- Performance considerations
- Parallel Processing
- Emerging technologies
- OpenCV
- Point Cloud Library
- CUDA