ECE627 - Computer Vision
Instructor: Dr Christos Kyrkou
Instructor Office Hours: TH 16:00-17:00
University of Cyprus, Department of Electrical and Computer Engineering,
Spring Semester 2019-2020
In the simplest terms, computer vision is the discipline of "teaching machines how to see." This course covers advanced research topics in computer vision. This class will prepare graduate students in both the theoretical foundations of computer vision as well as the practical approaches to building real Computer Vision systems. This course investigates current research topics in computer vision with an emphasis on recognition tasks and deep learning. We will examine data sources, features, and learning algorithms useful for understanding and manipulating visual data. Class topics will be pursued through independent reading, class discussion and presentations, and state-of-the-art projects.
The goal of this course is to give students the background and skills necessary to perform research in computer vision and its application domains such as robotics, healthcare, and graphics. Students should understand the strengths and weaknesses of current approaches to research problems and identify interesting open questions and future research directions. Students will hopefully improve their critical reading and communication skills, as well.
- Basic knowledge of linear algebra, vector calculus, probability and statistics.
- Proficiency in Python, or willingness/time to pick it up quickly!
- Previous exposure to image processing and/or machine learning are desirable.
When and Where:
- Lectures: Thursday, 18:00–21:00, Common Teaching Facilities 02, Room 012
- Lab: Wednesday, 13:00–14:00 Common Teaching Facilities 02, Room 015 (Only when needed)
Syllabus - Schedule
The lecture slides are provided SUPPLEMENTARY to class material/notes, not as a replacement! You are still responsible for attending the course lectures.
Slides will be posted AFTER the lectures.
- Assignment 1: Image Processing, Color, Edges, Lines (PDF)
- Deadline: 25/02/2020, 23:59
- Data for Assignment here
- Assignment 2: Optical Flow and Stereo Vision (PDF)
- Deadline: 23/03/2020, 23:59
- Data for Assignment here
- Assignment 3: Machine and Deep Learning (PDF)
- Deadline: 27/04/2020, 23:59
- Data for Assignment here
- Programming assignments: 30%
- Three assignments, done individually, in Python
- Final project and literature review: 30%
- Individual project assignment.
- Comprehensive Final Exam: 40%
- Final Exam!
- In order to qualify (pass), students must:
- Hand in all assignments and project report
- Achieve at least 50% in the final exam
- Achieve at least 50% overall
*The instructor reserves the right to make minor changes to the above grade scheme after clarifying it to the students. In addition, the instructor reserves the right to marginally adjust grades based on classroom attendance, once this has been clarified to students.
- Computer Vision: Algorithms and Applications by Richard Szeliski, 2010, (PDF available online) (2nd Edition 2020)
- Deep Learning, Ian Goodfellow and Yoshua Bengio and Aaron Courville, 2016. (available online)
- Dive into Deep Learning, Aston Zhang, Zachary C. Lipton, Mu Li, and Alexander J. Smola, 2020. (available online)
Course Semester Project
There are two options for this project:
- Implement a state-of-the-art research paper from a recent computer vision conference or journal (CVPR, ICCV, ECCV, or vision parts of NIPS, ICML, ICPR, IJCV, TPAMI, TCSVT, TIP, etc.).
- Complete a short research project (more fun!)
For each project you will have to turn in:
- A one page proposal describing the project and objectives, platform and technologies that will be used. (link to template)
- A final report that includes a literature review on the subject, techniques and methods used, evaluation metrics, and results with appropriate references. The report must be a minimum of 8 pages (excluding references) with the style format used for Computer Vision conferences (link to both word and latex | A guide for CV projects)
- The software code for the project including any other repositories used. A GitHub submission is preferred.
- Each student will give a presentation relevant to the project during the semester on the main idea, existing work and algorithms, and expected results from the project.
- Ideally, students would implement some aspect of the presented material and perform experiments that help to understand the algorithms.
Turn in a writeup paper describing your problem and approach. It should include the following:
- Short intro
- Related work, with references to papers, web pages
- Technical description including algorithm
- Experimental results
- Discussion of results, strengths/weaknesses, what worked, what didn't.
- Future work and what you would do if you had more time
In addition, the project will also be evaluated based on:
- Code readability and usability
- Demonstration and application scenario
- Evaluation procedure and results
- Potentially publishable results
- Bonus: Real-Time performance
- IP Camera Intruder Detection System for Surveillance
- Road-Line Detection and tracking
- Road Sign Recognition
- Advance Driver Assistance System (ADAS)
- Remote Sensing/Aerial Image recognition of buildings,landmarks, infrastructure
- Traffic Monitoring
- Computer Vision Based Mouse
- Image Generation GANs
- Activity Recognition
- Food Recognition
- Face Recognition
- Panorama Stitching
- Crowd Counting (Read More)
- Content Based Retrieval
- Autonomous Driving in CARLA Simulator (Imitation learning, Visual Perception) | Lane Following (Read More)
- Object re-identification
- How about a Kaggle competition!
Project Examples from the 2020 class
Image-based Control of UAV actions
By Andreas Anastasiou
Mask detection for combating viral disease spread
By George Plastiras
- Tutorials Point
- Python Numpy Tutorial | Numpy Notes
- Python Notes
- Python Tutorial (W3 Schools) | Python Exercises
- Python Tutorial
- NumPy for Matlab Users
- Python Introduction and Linear Algebra Review
- Sci-Kit Learn:
- Deep Learning:
- Google Colab:
- Summary Notes: Mathematics | Deep Learning | Machine Learning | Probability
- Other Resources
What you should take from this Class
- A broad understanding of computer vision as a field.
- Learning to use common software packages for computer vision
- Which problems fall under this umbrella?
- Which applications are possible today and in the near future?
- What are common research questions?
- What is the history behind these problems and how did it lead to deep leading?
- What tools will help you develop a framework to solve these problems?
Unless otherwise stated by the course instructor, homework and coursework that is to be completed outside contact time with the instructor must be done on an individual basis. This means that copying material from others is considered to be plagiarism.
Plagiarism is not permitted, and is also not tolerated.
Students caught plagiarizing somebody else’s work will receive a significant reduction on the related assignment’s mark, sometimes even down to zero. Students caught assisting others in plagiarizing will be penalized in the same way.
Links to Other CV Courses
- MIT 6.S191 Introduction to Deep Learning (MIT)
- CS 131 - Computer Vision Foundations and Applications (Stanford University)
- CS 231 - Convolutional Neural Networks for Visual Recognition (Stanford University)
- CS455 - The Ancient Secrets of Computer Vision (University of Washington)
- CSE576 - Computer Vision (University of Washington)
- STAT157 - Introduction to Deep Learning (UC Berkeley)
- CS 7476 - Advanced Computer Vision (Georgia Tech)
- CS 543/ECE 549: Computer Vision (University of Illinois)
- Introduction to Deep Learning I2DL (IN2346)
- DS-GA 1008 · SPRING 2020 · NYU CENTER FOR DATA SCIENCE
- Deep Learning with Differentiable Programming