This course describes algorithms for digital image processing and the tools for analyzing those algorithms. Most (if not all) algorithms are illustrated with images because the beauty of image processing is that you get to see the results.
There is no required or recommended textbook.
Prof. Fessler has over 700 pages of course notes
containing about 400 figures to illustrate the concepts and methods.
Here is an example image processing application
called image deblurring
(restoring an out-of-focus image):
→
Topic outline
The official prerequisite policy is "Advised Prerequisite: EECS 501; Corequisite: EECS 453 or EECS 551." EECS 505 is a completely acceptable alternative to 551. Because EECS 551 is only offered in the Fall recently, the "Corequisite" aspect of 551 is moot and it effectively is a prerequisite. (Taking EECS 501 concurrently with 556 is fine, and 501 is usually offered in the Winter.)
Students who have taken EECS 505 or 551 know the Julia language, and I plan to use Julia extensively for 556 in the W21 term. Graduate students who have not had the prerequisite 505 or 551 will not be adequately prepared because knowledge of Julia will be assumed, not reviewed.
In January, after I see the enrollment, I will post a more detailed syllabus with policies on the course web page http://web.eecs.umich.edu/~fessler/course/556/
Past semesters have had company sponsors (KLA & Apple) who have awarded prizes to the top projects. For example, see this ECS news article from 2018. I will seek such sponsors for W21 as well, but I don't know how the ongoing pandemic might affect their interest.
Code examples will be given using Julia (for any new examples) and Matlab (for many legacy examples). For the EECS 556 section, some HW and Exam problems will require students to use Julia. For the EECS 498-556 section, students will be able to choose either Matlab or Julia. Student teams will be free to choose their own language for their final projects.
EECS 498 will not count as a major area course for SIMPL / Computer Vision majors. ECE graduate students should take 556 and SIMPL / Computer Vision majors must take 556 not 498. Grades will be assigned separately for the two sections.
Undergraduates who are thinking of an ECE MS degree at UM could potentially use this 498 as a "double counted" technical elective for the SUGS (SGUS?) program. In my view it should also count as a 400-level tech elective for the EE/CE undergraduate degrees, but check with your undergraduate adviser about that.
As a graduate student you might think you can just "pick up" whatever you are missing as needed. That is a good perspective in general, but if you take this class as a non-ECE major you need to realize that the typical ECE graduate student will come into it with the equivalent of EECS 216, 301, 351, 501, 551 as background, which is over 20 credits of relevant preparation. The course pace and depth is targeted at students with that background. Undergraduates in 498-556 will come in with at least EECS 216 and 351 (and hopefully 301) background, which is at least 8 credits of relevant background. That is a lot of background for a non-ECE major to "pick up on the fly" during a graduate course.
If you want to review DSP before starting EECS 556, see my lecture notes from EECS 451 (now named 351), especially Chapters 2, 4, 5 and 6. If you want to learn the Julia language before the term begins, there are many tutorials online including an MIT course on Julia with videos. Here is a recent medium article about the course and language.