ECE627 - Computer Vision
Instructor: Dr Christos Kyrkou
Office: KIOS Research and Innovation Center of Excellence
Instructor Office Hours: TH 16:00-17:00
University of Cyprus, Department of Electrical and Computer Engineering,
Spring Semester 2019-2020
Course Description
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.
Prerequisites:
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.
Assignments
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
Grading Scheme
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.
Recommended textbooks
Computer Vision: Algorithms and Applications by Richard Szeliski, 2010, (PDF available online) (2nd Edition 2021)
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)
Deep-Learning-Book (Shelly Sheynin) (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!)
More...
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.
Presentation(s):
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:
Title
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
Project Ideas:
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
Software Resources/Tutorials
Python:
OpenCV:
Sci-Kit Learn:
Deep Learning:
(Suggested versions for the course Python 3.6, Tensorflow-gpu (or only Tensorflow if you don't have a gpu) v1.10.0, Keras v2.2.4)
Google Colab:
Summary Notes: Mathematics | Deep Learning | Machine Learning | Probability
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?
Course Policies
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.