This course provides an overview of Computer Vision – enabling computers to understand visual input.
The course introduces the major concepts and methods, and gives you a sample of problem settings
and techniques for solving them. It is intended for those who want to get an understanding of how
computer vision works and how it can perform such diverse tasks as object recognition, robot
navigation, and increase situational awareness. The course has strong ties between theory,
examples of its application, and practical exercises in order to promote fast and persistent
learning.
The course is intended for students with a basic proficiency in linear algebra and a programming
language. Example courses at NPS: MA2043 or MA3042
Course Learning Outcomes
What tasks do you need to master in order to achieve the overall course goal? Upon successful
completion of this course, you will be able to:
understand the potential and limitations of CV
evaluate the usefulness and performance of CV methods
understand models of the human visual system
relate computer vision to computer graphics
comprehend and evaluate a computer vision system’s technical description
discuss recent advances in computer vision and put them in context
converse with practitioners and researchers in the field
build real-time, interactive applications with a software library called OpenCV
utilize several CV tools including Matlab
Syllabus and Organization
Take a look at the Contents on the following pages to get an idea of the syllabus. Computer vision is a
“hot topic” and rapidly evolving, so expect several modifications that reflect recent developments and
advances. Every chapter is a learning module with specific learning objectives, reading and study
material, exercises, and graded assignments.
This is a preliminary schedule for the quarter. Reading assignments are from various textbooks,
see : LOCV = Bradski & Kaehler, SS = Shapiro & Stockman, BB = Ballard & Brown, DIP = Gonzalez & Woods (Digital Image Processing), DIPuM = Gonzalez et al. (Digital Image Processing using Matlab).
The reading report is due before class on the following Monday. For example, SS1 and BB1 are to
be read in the week of 09/28 and you have to hand in the reading report before class on
10/05.
The required textbook for this course is Bradski & Kaehler: Learning OpenCV (see below). We will
also work with a reader and several resources provided to you in class. Grades for homework
assignments etc. will be on Blackboard. Software and other course material can be found here:
http://www.movesinstitute.org/~kolsch/courses/CS4330
and here: \\comfort.ern.nps.edu\cs4330$
Hours
Lectures and lab: Monday 0900-1050, Wednesday 1000-1050, Friday 1000-1150, all in WA-285 These time slots will be used for lectures and/or lab time. Please bring your laptop for every
meeting.
Final: Friday 12/11/09 in class
Holidays: Mon 12 Oct 2009 (Columbus Day), Wed 11 Nov 2009 (Veteran’s Day), Thu 26 Nov 2009 (Thanksgiving)
Office Hours:
I am available for questions and help whenever I am in my office (WA-279) and have some time. If
you would like a firm appointment, please don’t hesitate to set one up by email or phone
(656-3402).
Grading
Grades for homework assignments etc. will be on Blackboard: 40% lab projects incl. reports 20% homework and reading assignments, quizzes 15% midterm 25% final
Homework, Late Policy, Teamwork etc.
Homework assignments will be posted by Monday and are due the following Thursday at 11:59pm
unless otherwise noted. No credit will be given for assignments that are more than 3 days late (Sunday
11:59pm). You can hand in at most one assignment up to 3 days late and still receive full credit. That
is: one permitted late assignment for the entire quarter. Additional late assignment will be given a max
of 50% credit.
Unless otherwise noted, written assignment can be handed in on a sheet of paper (preferred) or by
email. If you email it to me, please make sure your name appears on top of the actual assignment (e.g.,
in the text file attachment), not just in the email. Programming assignment must be turned in using
Blackboard’s Digital Dropbox or as instructed in class. See the respective assignment for the naming
convention.
Collaborative work:
Collaboration is encouraged on understanding assignments and formulating strategies for
solution.
Internet, textbook, and other research is encouraged.
However, the actual writing of solutions must be done independently, without access to
any material from colleagues, or other sources.
Similarly, you may not allow anyone to copy your solution.
Exams must be done independently.
If a part of your solution includes a quote, it must be clearly indentifyable as such through
quotation marks and a reference.
Keep in mind: plagiarism is a serious offense and ”Detection can result in serious
academic sanctions, ranging from a failing grade on a test or paper, through failure in a
course, to the denial of a graduate degree.” NPS’ official words can be found here:
http://intranet.nps.edu/Faculty/documents/Plagiarism\%20Statement.doc
Reading Assignments
There will be weekly reading assignments from the reader and from other reading material. A “reading
assignment” requires you to read the material and to write a short, one or two page summary.
Demonstrate your understanding of the contents, don’t provide me with a complete recount of the
entire text. You are encouraged to add a paragraph in which you critique the reading, note questions
that you have or state some other related comment. Print the reports (duplex, please) and bring them to
class on the respective due day. If you cannot make it to class, please email them to me prior to
class.
Equipment
All special equipment and software will be provided to you: High-performance laptop, Matlab with Image Processing Toolbox, USB or FireWire (1394) camera,
OpenCV
Programming Projects
As part of the course, we will work on small programming projects with the help of a high-level
computer vision library (OpenCV) to demonstrate some of the methods we have learned
in class. Some sample projects are listed below, further ideas and detail can be found in
Appendix C:
face detection in live video
background modeling for object tracking
detection and tracking of pedestrians
extrinsic camera parameter estimation, for ego tracking and robot movement
live interaction through marker tracking
Resources
Textbooks
Textbooks, more or less in order of relevance (res: on reserve in the library)
course textbook: Gary Bradski and Adrian Kaehler: Learning OpenCV: Computer Visionwith the OpenCV Library ISBN: 978-0596516130
res: Linda G. Shapiro, George C. Stockman, Computer Vision (Prentice Hall; 1st edition,
2001), ISBN: 0130307963
res: D. Ballard and C. Brown: Computer Vision (Prentice Hall, 1982)
res: Digital Image Processing (3rd Edition) by Rafael C. Gonzalez, Richard E. Woods
Publisher: Prentice Hall ISBN: 978-0131687288
res: Digital Image Processing Using MATLAB by Rafael C. Gonzalez, Richard E.
Woods, Steven L. Eddins Hardcover: 782 pages Publisher: Prentice Hall; 1st edition
(September 5, 2003) ISBN: 0130085197
D. A. Forsyth, J. Ponce; Computer Vision: A Modern Approach (Prentice Hall), ISBN:
0130851981 pre-print available here: http://decsai.ugr.es/mia/complementario/t1/book3chaps.html Since I was asked: there are no color pictures in this book.
R. Hartley and A. Zisserman: Multiple View Geometry second edition, Cambridge University
Proess. ISBN 0521540518
Robot Vision by Berthold K. P. Horn Hardcover: 480 pages Publisher: The MIT
Press; Mit Press edition (March 13, 1986) ISBN: 0262081598 co-published with
McGrawHill → out of print
Computer and Robot Vision by R. Haralick, and L. Shapiro Addison-Wesley, 1992 → two-volume book is tons of material, good references
A Guided Tour of Computer Vision by Vishvjit S. Nalwa Addison Wesley, 1993 → great for concepts
Machine Vision by R. Jain, R. Kasturi, and B. G. Schunck McGraw-Hill, 1995