University of Málaga (SPAIN)
About this paper:
Appears in: ICERI2020 Proceedings
Publication year: 2020
Pages: 5495-5505
ISBN: 978-84-09-24232-0
ISSN: 2340-1095
doi: 10.21125/iceri.2020.1189
Conference name: 13th annual International Conference of Education, Research and Innovation
Dates: 9-10 November, 2020
Location: Online Conference
Computer vision is a hot topic, as shown by its recent application in diverse domains such as self-driving vehicles, precision agriculture, smart cities or medicine, apart from the complementary function that it has in other fields such as robotics or AI (particularly since the rise of Deep Learning). Nowadays, there is no doubt about the potential of this sector, which is undergoing profound research by multinational companies such as Facebook (Oculus), Google (Vision AI) or Tesla. These facts have led to a substantial surge in the demand for engineers with a profile familiar with the above-mentioned technologies, which requires an innovative education to provide students with a practical understanding of the tools and algorithms supported by a comprehensive, theoretical basis. Currently, new educative programs related to computer vision and their applications are emerging in universities around the world and online educational platforms.

This paper pushes in that line by presenting a novel pedagogical resource consisting of a collection of Jupyter notebooks addressing the fundamentals of computer vision. The IPython notebooks [1] (or Jupyter notebooks) allow for the combination of code development and execution, text, equations and media in the same interactive document. In this way, they permit lecturers to pose contextualized problems including narratives with theoretical concepts and their practice, while students can consolidate such concepts by completing worked-examples, that is, following a learning by doing approach. This technology has been widely adopted by well-known online learning platforms such as Coursera [2] or NVIDIA Deep Learning Institute [3], showing benefits for both lecturers and students. In the contributed collection of notebooks, each one covers a fundamental computer vision topic, which is motivated by its application to a real-world problem (e.g. edge detection is covered in the context of the license plate detection problem). A key point of the notebooks is the programming exercises, which challenge the students with contextualized problems, while reinforcing the theory previously explained in the document. Notebooks also allow for the interaction with the results of an algorithm, which is a convenient feature for analyzing the behavior of methods whose performance strongly depends on its configuration parameters, a typical situation in the development of computer vision techniques.

The programming language used for the exercises is Python due to its recent popularity and high integration with Jupyter notebooks. The most frequently libraries included in the documents are OpenCV (for computer vision algorithms), Matplotlib (for visualization purposes) and NumPy (adding support for high-level mathematical functions). This collection of notebooks is being adopted in undergraduate and graduate courses at the University of Málaga with very promising results.

[1] Project Jupyter official GitHub wiki, Accessed 9 July, 2020. Retrieved from
[2] Coursera webpage, Accessed 1 July, 2020. Retrieved from
[3] NVIDIA DLI (Deep Learning Institute) webpage, Accessed 3 July, 2020. Retrieved from
Computer vision courses, pedagogical resource, jupyter notebook, opencv, python.