Visão Computacional
This is the homepage for the computer vision course at the undergraduate level being taught in 2018/2 at IPRJ/UERJ. This year will focus on programming 3D technology useful for robotics, motion capture and augmented reality applications such as Kinnect, Hololens, 3D scanning in Google streetview, and Glass.
General Information
- Instructor: prof. Ricardo Fabbri, Ph.D. Brown University
- Period: Semester 2018/1 (ending August 2018), for Computer Engineering students in their 10th semester
- Tuesdays and Fridays, 3:10pm-5:00pm, room 207
- Forum for file exchange and discussion: google groups: iprj-visao-2018@googlegroups.com
- Chat: IRC #labmacambira for random chat
Requisites
The student should know basic programming concepts and quickly learn languages on demand. This year's focus on 3D puts demands some C++ programming, which will be reviewed, but familiarity with C is required. Prior experience with linear algebra and vector calculus are highly recommended, and will also be reviewed as needed.
Software
This year will focus on practical C++ programming, since both performance and scalability are needed for the demands of 3D programming. Auxiliary languages will be used:
- Scripting languages such as Python, Scilab or Matlab for experimentation and prototyping small ideas
- Pd (pure data) will be used for real-time interactive apps (although the underlying code is C/C++)
Bibliography
- Main book this year (emphasizing 3D): An Invitation to 3D Vision, Yi Ma, Stefano Soatto, Jana Kosecka e Shankar Sastry
- Second main book (also emphasizing 3D): Multiple View Geometry in Computer Vision, Hartley & Zisserman
Auxiliary books
- Computer Vision, Richard Szeliski, which provides an online pdf http://szeliski.org/Book
- Shape Classification and Analysis, 2nd. Ed., Luciano da Fontoura Costa & Roberto Marcondes Cesar Jr.
Links
3D Vision Courses
Finding a 3D vision course suitable for undergraduates is hard, just as the subject itself tends to be hard
- Super Cool 3D course by Frank Dellaert. This is the same type of course as ours, except that we focused on getting structure from motion to work for most problems.
- 3D Photography Course at Brown University by Gabriel Taubin. This vision course is similar to the present course, except it work later into the 3D vision pipeline, after we already have the 3D cameras and an initial reconstruction, how to get better reconstructions and photometry.
Other Vision & Related Courses
- Computer Vision research course at Brown Engineering, 2013 - ENGN 2560
- Image Understanding course at Brown Engineering (basic to intermediate level)
- 2013 course http://mesh.brown.edu/engn1610
- 2011 course http://vision.lems.brown.edu/engn161/fall2011
- Computer Vision course at Brown Computer Science (basic to intermediate) http://cs.brown.edu/courses/cs143
- Stochastic processes course by prof. Fabbri
- Parallel programming course by prof. Fabbri
- Numerical linear algebra course by prof. Fabbri: many useful concepts for 3D computer vision and graphics
- Computer graphics course by prof. Fabbri
- Pattern Theory course by prof. Fabbri: machine learning and relevant stochastic techniques for computer vision
- OpenCV, VXL, SIP: computer vision libraries in C/C++ and Scilab.
Exams
P1: 16Aug18 Signature / presence required for course Final/Sub:
Homework
Practice Labs
Download
All lab material (images, pdf, etc) can be downloaded and updated through Git [1]:
git clone https://github.com/rfabbri/vision-course.git
- Use your language of choice to do the homework. I suggest Scilab, Matlab or Python. This year, most students have elected Python
- This year, since we'll be focusing on 3D, you only need to do Lab1 to get started:
Lab1: Processamento ponto a ponto
- Enunciado
- The necessary images are available at Git[2]
- Due date: 9Ago18 ate a meia-noite. Atrasos serao aceitos porem somente com reducao na nota.
Instrucoes para Submissao
- A solucao deve ser digitada em um relatorio e entregue no formato pdf.
- Incluir tambem todo o codigo fonte e dados gerados
- Enviar um arquivo zipado com tudo (scripts scilab, relatorio, etc) por email, no formato:
<sobrenome>-<nome>-visao-computacional-lab<numero_lab>.zip
Projetos
3D Reconstruction for Robotics
Optional: Toy Piano
Build an interactive toy piano or toy keyboard where you have colored objects representing each letter of the alphabet, and the user would touch each object and the computer would react to the persons' touch. To make this easy and cheap, this could work with a webcam and color detection, and the person/baby could use a black glove/sock.
Criterio de Avaliacao
- Nota = 70% projetos e tarefas, 30% prova
- Bonus: top 2 projetos que atingirem nivel de excelencia ganharao +3 pontos na media