Visual computing systems are always fascinating to me. How does a camera capture a visually pleasing picture? How does a computer algorithm magically recognize objects from an image? Why do some pixels look like corrupted when playing back a video? How does Virtual Reality provide a 360 immersive experience to you? How does a display work? How to render photorealistic graphics and why is it hard to do that in real-time on a mobile device? How does a robot/drone/self-driving car localize itself? These are a small subset of the questions we will explore in CSC 572/292.
The purpose of this course is two-fold. First, we want to increase your knowledge of the subject matter. We hope that by the end of the class, you will be able to comfortably talk about how today's mobile visual computing systems work, both in theory and principle as well as some practical aspects. Second, just as important as learning new material, we want to provide an environment that promotes and rewards creative and deep thinking. In the end, we want you to identify new research challenges in mobile visual computing and have a reasonably clear idea how to go about addressing them.
Color Science and Digital Color Imaging
- Animal Eyes (log in using your UR ID)
- Measuring Colour (log in using your UR ID)
- Billmeyer and Saltzman's Principles of Color Technology (log in using your UR ID)
- Color Appearance Models (log in using your UR ID)
- Canon - EF Lens Work III-The Eye of EOS, 8e (2006) (publicly available)
- Color Imaging: Fundamentals and Applications (log in using your UR ID)
- Digital Color Imaging Handbook (log in using your UR ID)
- Image Sensors and Signal Processing for Digital Still Cameras (log in using your UR ID)
- Image Processing for Embedded Devices: From CFA Data to Image/Video Coding (log in using your UR ID)
- High Dynamic Range Imaging (log in using your UR ID)
- Digital Video and HD : Algorithms and Interfaces (log in using your UR ID)
- The H.264 Advanced Video Compression Standard (log in using your UR ID)
- Physically Based Rendering: From Theory To Implementation (publicly available)
- Principles of Digital Image Synthesis (publicly available)
- Fundamentals of Computer Graphics (log in using your UR ID)
- Computer Graphics: Principles and Practices (log in using your UR ID)
- Real-Time Rendering (log in using your UR ID)
- Point-based Graphics (log in using your UR ID)
- Physics for Game Developers (log in using your UR ID)
- Foundations of Physically Based Modeling and Animation
- Optics (log in using your UR ID)
- Introduction to Modern Optics
- Displays: Fundamentals and Applications (log in using your UR ID)
- OLED Display Fundamentals and Applications (log in using your UR ID)
- Human Factors in Lighting (log in using your UR ID)
- Multiple View Geometry (log in using your UR ID)
- Computer Vision: Algorithms and Applications (publicly available)
- Computer Vision: Models, Learning, and Inference (publicly available)
- Computer Vision: A Modern Approach
- Virtual Reality (publicly available)
- Introduction to Autonomous Mobile Robots (log in using your UR ID)
- Computational Principles of Mobile Robotics
- Lecture Notes for The Fourier Transform and its Applications (Publicly available)
- Data-Driven Science and Engineering: Machine Learning, Dynamical Systems, and Control (log in using your UR ID)
- Deep Learning (publicly available)
- The Elements of Statistical Learning (publicly available)
- Numerical Algorithms (publicly available)
- Convex Optimizations (publicly available)
- Linear Algebra: Foundations to Frontiers (publicly available)
While the exact grading scheme is still being decided, the final grades will likely be assigned with these proportions. The percentages are roughly estimates/my best guesses as of now:
- Student Information Sheet: 3%
The Student Information Sheet, a.k.a., Assignment 0, allows me to better know you: your interests, background, career goals, etc. Finish it within the first two weeks. You will receive full credit as long as you submit it and make reasonable effort.
- Written Assignments: 33%
Every 1--2 weeks we will have a written homework assigned. The written assignment is designed to help you better understand the core principles discussed in the lectures. The assignment could ask you to work out some math or discuss things in the assigned readings.
- Programming Assignments: 24%
We are expected to have 2 mini programming assignments, which mostly will ask you to implement some existing visual computing algorithms, but you don't have to be constrained by what you have learnt and how they are implemented today. Use your imagination and be creative. Remember: the devil is in the detail!
- Final Project: 40%
You will work on a final project that is completely chosen by you. It doesn't have to be a programming-related project. It could be arts (e.g., photography), design (e.g., 3D printing), systems building, or a written paper describing your investigation of a particular concept. Think of it as an independent study, where I am here just to guild you. You will need approval from me for your project within the first two months. Could be team of up to 2 people.
If you don't feel like coming up with a project on your own, we have a list of potential projects for you to choose from. The benefit of choosing projects is that I might be able to help you more. The list will be made available a few weeks into the semester.
Everyone — the instructor, TAs, and students — must be respectful of everyone else in this class. All communication, in class and online, will be held to a high standard for inclusiveness: it may never target individuals or groups for harassment, and it may not exclude specific groups. That includes everything from outright animosity to the subtle ways we phrase things and even our timing.
For example: do not talk over other people; don't use male pronouns when you mean to refer to people of all genders; avoid explicit language that has a chance of seeming inappropriate to other people; and don't let strong emotions get in the way of calm, scientific communication.
If any of the communication in this class doesn't meet these standards, please don't escalate it by responding in kind. Instead, contact the instructor as early as possible. If you don't feel comfortable discussing something directly with the instructor — for example, if the instructor is the problem — please contact the advising office or the department chair.
Student conduct in CSC 572/292 is governed by the College Academic Honesty Policy and the Undergraduate Laboratory Policies of the Computer Science Department. The teaching staff will enforce them aggressively and strictly. The following are additional details specific to CSC 572/292.
Exams in CSC 572/292 must be strictly individual work.
Collaboration on assignments among team members is of course expected. Collaboration on assignments across teams (or among individuals on non-team-based assignments) is encouraged at the level of ideas. Feel free to ask each other questions, brainstorm on algorithms, or work together at a whiteboard. You may not claim work as your own, however, unless you transform the ideas into substance by yourself. This means you must leave any brainstorming sessions with no written notes.
Similarly, you are welcome to read anything you find on the web, but you must close all web pages before beginning to write your code. You are not permitted to repeatedly consult a source. You can read it, understand it, put it away, and write your own similar code, but you must not copy anything. Both electronic copy-and-paste and copying through short-term memory are expressly forbidden.
To minimize opportunities to steal code, all students must protect the directories in which they do their work.
For purposes of this class, academic dishonesty is defined as:
- Any attempt to pass off work on an exam that didn't come straight out of your own head.
- Any cross-team collaboration or copying of artifacts (substance) in which the collaborating parties don't clearly and prominently explain exactly who did what, at turn-in time.
- Any activity that has the effect of significantly impairing the ability of another student to learn. Examples here might include destroying the work of others, interfering with their access to resources, or deliberately providing them with misleading information. (Note too that grades in CSC 572/292 are assigned on the basis of individual merit, so there is no benefit, even a dishonest one, to be gained by sabotaging the work of others.)
Finally, if you have any questions about what is permitted and what is not, please ask!