Spring, 2020
Thursday 9am-4pm
MacLean 401
Doug Rosman
dougrosman.com
drosman@saic.edu
Sal Moreno
smoreno4@saic.edu
https://dougrosman.github.io/cvml-saic
All course material including assignments, weekly code exercises, in class resources, etc. will be posted on the class website, NOT on Canvas
https://saic.instructure.com/courses/2645666
Please make sure you are able to receive Canvas notifications. I will be posting announcements through Canvas to reach the entire class
cvmlsp20.slack.com
The Slack channel exists as a class community resource. Post code/general questions, resources, or whatever cool stuff you find
Computer vision allows machines to see and understand their environment. This course will equip students with the practical skills and critical theory needed to both employ and critically engage these techniques. Real-time body tracking, object and facial recognition, and gesture analysis. Artificial Intelligence and machine learning will be emphasized. Machine learning applications related to text and sound and reinforcement learning will also be discussed, although in-class exercises will not focus on them.
Students will explore and critique contemporary applications ranging from automated mass surveillance to interactive installations. A final project will build on in-class workshops, technical exercises, critical readings and discussions.
Students will engage in individual in-lab and home assignments, class presentations, lectures, discussions, assigned readings, group and individual projects and desk critiques. Visiting artists / faculty may enhance the experience and offer additional perspectives.
9:00 - 9:30 : Look at new artists, catch up on the week’s CV/ML headlines.
9:30 - 10:15 : Lecture Part 1.
10:15 - 10:30 : Break
10:30 - 12:00 : Lecture Part 2.
12:00 - 01:00 : Lunch
01:00 - 02:30 : Hands-on Workshop.
02:30 - 02:45 : Break
02:45 - 04:00 : Open Studio (Homework, Projects, Discussion, etc).
The first 10 weeks of the course will be built on well-constrained code-based assignments. These assignments have clear goals and are intended to build confidence and code competency:
We will be doing most of our work with P5.js on the web, with potential for some Processing and C++/openFrameworks. While many modern computer vision and machine learning tools are built with C++ at their core, many powerful creative tools have become available that allow web-based applications to utilize computer vision and machine learning techniques.
Open source tools available online use a variety of coding languages and frameworks. Students are encouraged to find tools outside of what is introduced in class when composing final projects.
There is no single class text, though there are online books, guides and articles we’ll reference throughout the semester.
Depending on availability, final projects will be included in an exhibition at the end of the semester.
Some machines are available in the classroom for deep learning projects, but students should bring their personal devices to complete their assignments. Peripheral devices (webcams, Kinects, etc.) are available to check out from the ATS tech room.
Students wait-listed for classes will be admitted on a space available basis determined by instructors’ discretion (in consultation with the department chair).
Grades are credit / no-credit for this course. Credit is based on several factors:
Disability and Learning Resource Center
Based on class availability, I plan to be available once a week for a couple hours to help reinforce in-class concepts. I will not be providing homework answers in these sessions. Please attempt the homework before attending these sessions. Students are encouraged to work together on homework assignments.
(subject to change based on incoming skills and experience)
Knowledge of basic coding tools is strongly encouraged, but not required for this course. This includes the following:
cd
Change directory
cd ../../../my_folder
relative paths namescd /Users/me/Desktop
absolute path names..
Specify the parent directory.
Specify the current directorypwd
Output the current working directorymkdir new_directory
Make a new directoryrmdir old_directory
Remove an old directoryrm -rf old_directory
Recursively and forcefully remove an old directory (be careful!)mv old_name.txt new_name.txt
Rename filesmv old_name.txt ../../
Move files