CSCI/EENG 437/507 - Introduction to Computer Vision

Fall 2018


CoorsTek 130

1 Course Description

Computer vision is the process of using computers to acquire images, transform images, and extract symbolic descriptions from images. This course provides an introduction to this field, covering topics in image formation, feature extraction, location estimation, and object recognition. Design ability and hands-on projects will be emphasized, using popular software tools. The course will be of interest both to those who want to learn more about the subject and to those who just want to use computer imaging techniques.

2 Instructor: Tom Williams

3 Quick Reference

4 Course Goals

By the end of the semester, students should be able to:

  1. understand the fundamental concepts, problems, and solution techniques in computer vision, including image formation, structure and motion estimation, and object recognition.
  2. apply computer vision techniques to solve common problems in research and industrial applications, such as image transformations, inspection, and recognition.
  3. use image processing and image understanding software tools.

5 Course Format

This course will be run in a partially “flipped” mode. On the indicated days, students are expected to go over the course material in advance, and class time will be used primarily for working through problems and examples. For this to work, students must come prepared to class.

6 Follow-On Course

This course is the pre-requisite to a follow-on course called "Advanced Topics in Computer Vision" (CSCI508/EENG508), which covers topics such as multiple view image analysis, depth image processing, category object recognition, and machine learning for computer vision applications.

7 Computer Tools

Computer tools will be used frequently in class and for assignments. We will use MATLAB (with the image processing and computer vision toolboxes) most often, since it is interactive, easy to write code, and there is a lot of existing software available. MATLAB is installed on the PCs in Brown Hall. You will need to get an “adit” logon for these if you don’t already have it – see the Computing Center website. We will also occasionally use the Open Source Computer Vision library (OpenCV), which is free from http://opencv.org/. This is a collection of algorithms written in C/C++ for various computer vision problems.

8 Textbooks

  • The required textbook is Computer Vision: Algorithms and Applications, by Richard Szeliski, Springer 2011. It is available electronically through the school's library at http://link.springer.com/book/10.1007/978-1-84882-935-0. You must be on campus or logged in via VPN to download the book.
  • Optional texts:
    • Digital Image Processing, 3nd ed,, by Gonzalez and Woods, Prentice Hall, 2008. This is the book used in the image processing class. It is a thorough and readable coverage of image processing techniques that are useful in computer vision.
    • There are numerous recent books on OpenCV (see http://opencv.org/books.html for a complete list).

9 Assessment and Grading

Students will be assessed using the following elements.

  • Weekly quizzes (20%). On most Mondays, there will be a short (open book) quiz at the beginning of class, covering the material from last week.
  • Lab (10%). On most Wednesdays or Fridays, there will be a hands-on lab assignment to be done in class, in teams of two. The lab assignment will be checked for completion in class and must be shown to the instructor to receive credit.
  • Homework assignments (40%). There will be a series of homework assignments, to be done individually. Homework is due by the beginning of class on the due date, and should be submitted via Canvas.
  • Final project (30%). A final project will be done in teams of two. See the course website for additional details.
  • There are no exams.

Late homework will not be accepted, with two exceptions.

  • Exception 1: Students each have three extension tokens
    • Spend a token and get an automatic 24hr extension!
    • To spend: contact instructors via private piazza note before assignment is due
    • At most ONE extension token may be expended on any single assignment.
    • When you run out of tokens, late homework will no longer be accepted or graded.
  • Exception 2: Documented medical/family emergency sent to me by the university.

Students taking the 498 version of the class will be given the same quizzes, assignments, and projects, as those taking the 507 version, with the exception that graduate students will need to complete an additional assignment towards the end of the course.

10 Course Procedures

10.1 Communications

All course announcements will be made through Canvas, so please check it frequently. We will be using Piazza for class discussion. This system is designed for getting help quickly and easily from classmates, the TA, and the instructors. Rather than emailing questions to the teaching staff, we encourage you to post your questions on Piazza. To be clear: all messages to the instructor should be sent via Piazza; there is no guarantee that emails to the instructor will be seen or responded to. You are also encouraged to help each other, so long as they follow the guidelines listed below:

  • If your question contains any code or gives away any portion of an answer, you must make it private (i.e., only visible to instructors) or we will be forced to report it as a violation of academic integrity.
  • If your question does not contain any code or contain any portion of answer to a homework question, please make it public, so that other students can see your question, and potentially help you answer it.
  • In order to schedule office hours outside the posted times, post a private question on Piazza.
  • Your homework must be entirely your own work. While you may discuss homework verbally with others, all work must be done yourself, and you must not show each other your written homework assignments or code. This is a violation of academic integrity.
  • On your assignments, please acknowledge, in writing, students with whom you discussed problems or course material.

10.2 Electronic Devices Policy

Research has demonstrated that the use of electronic devices (e.g., laptops, tablets, cellphones) significantly impairs the learning of students using them. What is more, the learning of students seated near students using electronic devices is impaired. For these reasons, no electronic devices will be allowed in the classroom. An exception may be made in the case of a disability, if the student approaches the instructor beforehand and an arrangement is agreed to. And of course, this does not apply during lab sessions or when otherwise indicated by the instructor.

10.3 Academic Integrity

Academic integrity is taken very seriously. While plagiarism may be the worst violation of academic integrity (and as such we may examine your work for plagiarism using automated heuristics), we are required to report any suspected violation of academic integrity to the University's Judicial Officer. Penalties for violation can be very severe, including suspension or expulsion. If any student does not understand these terms or any outlined in The Academic Code of Conduct it is his/her responsibility to talk to the instructor.

10.3.1 Collaboration Policy for Programming Projects in CS Courses

The following policy exists for all CS courses in the EECS department. This policy is a minimum standard; your instructor may decide to augment this policy.

  • If the project is an individual effort project, you are not allowed to give code you have developed to another student or use code provided by another student. If the project is a group project, you are only allowed to share code with your group members.
  • You are encouraged to discuss programming projects with other students in the class, as long as the following rules are followed:
    • You view another student’s code only for the purpose of offering/receiving debugging assistance.
    • Students can only give advice on what problems to look for; they cannot debug your code for you.
    • All changes to your code must be made by you.
    • Your discussion is subject to the empty hands policy, which means you leave the discussion without any record [electronic, mechanical, or otherwise] of the discussion.
    • Any material from any outside source such as books, projects, and in particular, from the Web, should be properly referenced and should only be used if specifically allowed for the assignment.
    • To prevent unintended sharing, any code stored in a hosted repository (e.g. on GitHub) must be private. For group projects, your team members may, of course, be collaborators.
    • If you are aware of students violating this policy, you are encouraged to inform the professor of the course. Violating this policy will be treated as an academic misconduct for all students involved. See the Student Handbook for details on academic dishonesty.

10.3.2 Collaboration Policy for Homework

The following policy applies to homework assignments other than programming projects.

  • You can discuss homework assignments with other students in the class, as long as the following rules are followed:
    • You view another student’s work only for the purpose of offering/receiving assistance.
    • All work must be done by you.
    • Your discussion is subject to the empty hands policy, which means you leave the discussion without any record [electronic, mechanical, or otherwise] of the discussion.
  • Any material from any outside source such as books, projects, discussions with other students, and in particular, from the Web, should be properly referenced and should only be used if specifically allowed for the assignment.

10.3.3 Addendum

All code and problem solutions written for this class are the property of the course staff, who reserve all rights regarding such code and/or solutions. The course staff reserves the right, for example, to regularly pass your code and homework responses through online plagiarism checking services.

10.4 Additional Resources

The Colorado School of Mines is committed to ensuring the full participation of all students in its programs, including students with disabilities. If you are registered with Disability Support Services (DSS) and I have received your letter of accommodations, please contact me at your earliest convenience so we can discuss your needs in this course. For questions or other inquiries regarding disabilities, I encourage you to visit disabilities.mines.edu for more information.

Mines and the teaching staff of CSCI/ENG 507 strive to create a learning environment that is welcoming to students of all backgrounds. If you feel unwelcome for any reason let us know (i.e., tell Tom Williams) so that we can work to make things better. If you feel uncomfortable talking to members of the teaching staff, consider reaching out to your academic advisor, department chair, or dean.

10.5 Feedback

Your thoughts and concerns on this course are important. You are encouraged to give feedback to the instructor throughout the term. As always students will be asked to fill out a course evaluation at the end of the term.

11 Homework listing

Homeworks will be posted here (see course website).