The goal of computer vision is to develop the theoretical and algorithmic basis
by which useful information about the world can be automatically extracted and
analyzed from an observed image, image set, or image sequence. Since images are
two-dimensional projections of the three-dimensional world, the information is
not directly available and must be recovered. This is a very difficult problem
given that the inversion is a many-to-one mapping. To recover the information,
knowledge about the objects in the scene and projection geometry is required.
Computer Vision systems have many potential applications. Robots who can
see are more likely to interact with the real world in a satisfactory manner;
they can choose objects, avoid obstacles, plan routes, calculate their velocity
and orientation, identify dangerous situations, etc. Such robots will be useful
in exploring dangerous or very distant environments (e.g. other planets,
inside nuclear reactors). Computer Vision can be used to help cameras follow
the trajectory of people and vehicles, for example for traffic monitoring;
it can help in the identification of faces for security clearance; it can
be used for converting 2D images into 3D models that can then be rotated
and manipulated, for example to present medical or sporting images from a
better angle; they can be use for inspecting medical images for
identifying tumours and other ailments.
Over the next decade, it is anticipated that Computer Vision systems will
become commonplace, and that vision technology will be applied across a broad
range of business and consumer products. This implies that there will be strong
industry demand for computer vision engineers - for people who understand vision
technology and know how to apply it in real-world problems. This is course will
cover the fundamentals of Computer Vision. It is suited for mainly students who
are interested in doing research in the area of Computer Vision. For graduate
students, there are many open problems in this area suitable for investigation
leading to a Master thesis or a Ph.D. dissertation.
Course Outline (tenative)
Introduction to Computer Vision (Trucco, Chapt 1)
Image Processing Review
Image Formation (Nawla, Chapt 2)
Camera Parameters (Trucco, Chapt 2)
Camera Calibration (Trucco, Chapt 6)
Stereo (Trucco, Chapt 7)
Motion (Trucco, Chapt 8)
Shape from shading and from texture (Trucco, Chapt 9)
Recognition (Trucco, Chapt 10)
Exams and Assignments
Exams: There will be a midterm and a final exam.
Homework: Homework problems will be assigned on a regular basis and will
be collected at the beginning of the class on the due date. Solution sets will
be provided for all problems assigned.
Programming Assignments: there will about 4-5 programming assignments
which should be done on an individual basis. For each programming assignment,
you are to turn in a brief report which should include a description of the
problem, a description of your approach, and your evaluation of the results.
Details of the deliverables will be given for each assignment respectively.
Discussion of the programming assignments is allowed and encouraged. However,
each student should do his/her own work. Assignments which are too similar will
receive a zero.
Paper presentation: each student would be required to present a paper
to the rest of the class. The presentations should be professional as if it
were presented in a formal conference (i.e., slides/projector). More details
will be provided in the class.
The pre-requisite for this course are CS308 (Data Structures) and CS474/674
(Image Processing and Interpretation), however, I
will waive the CS474/674 requirement depending on your background and
interests. Good programming skills and mathematical background are essential.
Xv xv(1) is an interactive image display program for the X window system that is useful for displaying and editing images in a variety of formats.
CVIPtools GUI-based computer vision and image processing tools, ANSI-C source code and libraries for Windows95/NT and UNIX, extended computer imaging TCL shell. Also contains an extended Tcl shell with all the computer imaging functions. ANSI-C source code and libraries for image analysis, image compression, image enhancement, image restoration, and many imaging utilities. It has been installed on the Suns in the
/image directory. To run it, first add the following into
your .cshrc file:
Matlab Matlab(1) is a numeric computation and visualization environment. The image processing and signal processing toolboxes are especially useful. See also: Matlib Tutorial (Univ Utah), Matlab Basics (RPI), Matlab Primer (200K postscript; 25 pages).
Xforms A GUI toolkit based on Xlib for X Window System- Xforms has been installed on the Suns in /usr/local/src/xforms and on the Linux boxes in LME 314 (see
some more examples. An updated version of the manual is here).