Syllabus
CSSE 463 – Image Recognition
Winter 2019 – 2020

General Course Information

Course catalog description

Introduces statistical pattern recognition of visual data; low-level visual feature extraction (color, shape, edges); clustering and classification techniques. Applies knowledge to various application domains through exercises, large programming projects in MATLAB, and an independent research project. Familiarity with probability distributions will be helpful, but not required. Prerequisites: Junior standing and programming experience (e.g., CSSE220, ME323, ECE480).

Less-formal description

In this course, we'll study image recognition, or image understanding, the process of extracting useful information out of images to make decisions about the world. Examples include photo organization and retrieval, video surveillance, and fingerprint recognition. It uses image processing and pattern classification techniques, and in some ways is the intersection of these fields. In a typical week, we'll learn theory for 3 days and practice that theory in 1 day of lab, implementing and using algorithms using MATLAB. The weekly schedule can be found here.

Meeting time and place

Instructor

Matt Boutell – Professor of Computer Science and Software Engineering

Email: boutell <at> rose-hulman <dot> edu
Office address: Moench D219B
Home page: https://www.rose-hulman.edu/academics/faculty/boutell-matthew-boutell.html
Office hours: I have class hours 1-2 and meetings at various other times. See the best times to find me in my calendar. Of course, feel free to drop by any time that my light is on and I'm not in a meeting.
Announcements/questions: Piazza: https://piazza.com/rose-hulman/winter2020/csse463

Grading Assistant

Yuqi Zhou, zhouy9 <at> rose-hulman <dot> edu

Resources

Optional text

Image Processing, Analysis, and Machine Vision by Milan Sonka, Vaclav Hlavac, Roger Boyle

Cengage-Engineering; ed. 3 (2007). ISBN-10: 049508252X, ISBN-13: 978-0495082521


If you come to class each day, I'll give you the info you need; I will not assign problems or readings from this. The book is, however, a great resource to have on hand for independent work and for digging deeper if you are considering advanced work in that area. So buy it because you want to, not because you have to.

Other texts I've used in the past:
  1. Computer Vision: A Modern Approach by David Forsyth and Jean Ponce

    Prentice-Hall, 2003. ISBN 0-13-085198-1

  2. Computer Vision by Linda Shapiro and George Stockman

Matlab Programming

Course Materials

I'll use Moodle to post grades, for dropboxes to submit labs and homeworks, and for links to the course schedule, assignment descriptions, slides, and handouts. All the linked materials are available via any of the several mechanisms for accessing Public AFS data. Thus, you can get to the majority of course materials:

Learning Outcomes

Students who successfully complete this course should be able to:

  1. Describe and explain the difference between various color spaces, such as RGB, HSV, and LST.
  2. Compute morphological operations on simple image elements and use them to aid object recognition.
  3. Describe and implement edge detection.
  4. Use shape features for object recognition:
    1. Compute compactness ratios for various circles, rectangles and triangles.
    2. Compute or describe the computation procedure for the covariance matrix of an image element, as used to determine principal axes, and plot major and minor axes given a set of eigenvectors.
  5. Describe principles of classification: feature space, decision rules, decision surface. Draw a plot of tabulated feature data to represent a 2D feature space, and specify class center positions and classification boundaries.
  6. Apply a classifier such as a neural network or support vector machine to identify images and regions.
  7. Implement a data clustering algorithm such as k-means, and apply it to image segmentation.
  8. Perform basic laboratory tasks accurately, learn to use an appropriate image processing software tool, and submit labs and homework assignments that are clear, concise, and informative, and conform to standard writing guidelines.

Grading

I plan to use the weighting scheme shown in the table below when assigning final grades.

Criteria Weight
In-class Quizzes/Participation/Attendance 10%
Lab Assignments 20%
Projects 20%
Term Project 20%
Tests 30%

Letter Grades

I will do my best to conform to the Rose-Hulman definition of the various grades, as described in the Academic Rules and Procedures. Note in particular that the phrase ”thorough competence to do excellent work“ appears there in the description of the “B” grade, and it further states that “B” and “B+” will not be given for mere compliance with the minimum essential standards of the course.

Citizenship Counts!

I may adjust your overall average up or down by up to 5 points, based on your class citizenship. This includes attendance, promptness, preparation for class, positive participation in class, constructive partnership in labs and projects, and timely completion of various surveys. I also reserve the right to change final grades when the average in a major category (labs, exam, project) differs significantly from the overall average.

The in-class time in this course constitutes an important learning experience. Unexcused absences will affect your citizenship grade. After three unexcused absences, you must discuss continuation of the course with the instructor. Four unexcused absences will result in failure of the course, at the instructor's discretion.

Late Policy

I will deduct -20% for each day, or part of a day, past the due date, unless an extension was asked for and granted. Poor planning isn't a reason for an extension, but I encourage you to discuss other issues that may apply. (No late days in this course.)

Piazza

We'll use piazza for introductions, so you'll get to learn about your classmates there. Piazza is the best place to post questions for me, since the class will benefit from the question and answer. Posting and answering questions here are factors into the citizenship adjustment. If you post to piazza, you'll likely get a faster answer. And if you email me a question, I'll probably just reply, "Great question, please post it to piazza".

You Are Welcome!

I want you and your classmates to feel welcome in this classroom. Usually, that's the case. But if someone (me, the assistant, or a classmate) does anything that concerns you, please let me know. And while we hope you feel comfortable speaking with any faculty in the department, if you have a concern and are not sure where to go, the following CSSE faculty have volunteered to be ombudsmen for the department: Sid Stamm (F216), Amanda Stouder (F222), Kim Tracy (D216), Robert Williamson (F205), and Vibha Alangar (D219).

Electronic Distraction

I do my best to keep class interactive. With laptops and cell phones in class there are many more ways to become distracted. When these distractions disrupt class learning your "Course Citizenship" grade will suffer.

I strongly encourage you to turn off IM software and social media, and to only use other software for things directly related to class.

Sights/Smells/Sounds: As would be expected in the workplace, please be respectful of those around you. If your visual appearance (e.g., offensive computer desktops), smell (e.g., halitosis or tobacco), or sounds created (e.g., cell phone, computer noise, or snoring) are disruptive to class, you will be asked to leave until the issue can be corrected.

Integrity

Recall the Institute Code of Ethics:

“Rose-Hulman expects its students to be responsible adults and to behave at all times with honor and integrity.”

Some labs and projects will be done with a partner. Otherwise, work including exams will be done on an individual basis. The simple rule of thumb for individual work is:

Never give or use someone else's code or written answers.

Such exchanges are definitely cheating and not cooperation. 

I encourage you to discuss the problems and general approaches to solving them with other students. However, when it comes to writing code, it should be your own work (or the work of your group if it is a group or partner assignment). If you are having trouble understanding how some library code works or pinning down a run-time or logic error in your program, by all means talk to someone about it.

If you use someone else's ideas in your solution (or any other work that you do anywhere), you have to:

If you are ever in doubt about whether some specific situation violates the policy, the best approach is to discuss it with your instructor beforehand. This is a very serious matter that I do not take lightly. Nor should you.

In general, you should not look at another student's code to get ideas of how to write your own code. Beginning the process of producing your own solution with an electronic copy of work done by other students is never appropriate.

Plagiarism or cheating will result in a score of -100% for the assignment or exam, and by Institute policy, a letter to the Dean of Students, the Head of the CSSE Department, and the Dean of the Faculty will go in your permanent record. Egregious cases will result in a grade of F for the course. More importantly, such dishonesty steals your own self-esteem. So don't cheat.

The instructor reserves the right to change this policy at any time - if after the course begins, the instructor will notify the students of the change.

Developed by Matt Boutell, format and lots of wording courtesy of other CSSE colleagues a long time ago. But in this galaxy.