albertofernandezvillan / computer-vision-and-deep-learning-course

This repository contains both a collection of Jupyter Notebooks as well as other resources (e.g. presentations, links, ...) that are going to be used during the "Second quarter university extension courses" that the University of Oviedo is going to teach (online).

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Computer vision in the new era of Artificial Intelligence and Deep Learning

Visión por computador en la nueva era de la Inteligencia Artificial y el Deep Learning

This repository contains a collection of Jupyter Notebooks as well as other resources (e.g. presentations, links, ...) that are going to be used during the "Second quarter university extension course" that the University of Oviedo is going to teach (online). For more information about this course, you can check the following URL

Work in progress 🚧

Objectives

✔️ To know the current context of computer vision in the new era of artificial intelligence and Deep Learning

✔️ To know the main tools and strategies for problem solving using different data sources

✔️ Knowing how to handle computer tools and specific software for digital image processing

✔️ Understanding how basic digital image processing and analysis methods and techniques work

Content

✔️ Introduction to OpenCV and Python

✔️ Basic image treatment

✔️ Image processing

✔️ Machine learning (Scikit-learn)

✔️Deep learning (Tensorflow, Keras, PyTorch)

The target audience is broad and includes

  • People who have experience in computer science (maybe to graduate level) but who do not know about OpenCV
  • People who are studying other subjects and want to play with computer vision

Introduction

Presentation

Notebooks

Colab utilities and tricks for computer vision

Lesson Estimated time needed Source Code Colab Presentation
Colaboratory introduction 10 min Open Open Presentation
Collection of features, utilities and tricks on Colab and/or Python 30 min Open Open Presentation
Take image from webcam as numpy array in Colab 30 min Open Open Presentation
Take video from webcam in Colab 30 min Open Open Presentation
Explore, execute and see the output of external Python scripts 30 min Open Open Presentation
Create and show multiple images in the same figure with matplotlib 15 min Open Open Presentation
Install Colab utilities (https://github.com/albertofernandezvillan/colaboratory-utils) 30 min Open Open Presentation

Introduction to Python and NumPy

Lesson Estimated time needed Source Code Colab Presentation
Introduction to Python 30 min Open Open Presentation
Introduction to Numpy 30 min Open Open Presentation

OpenCV notebooks for computer vision

OpenCV basics

Lesson Estimated time needed Source Code Colab Presentation
Basic image treatment (color and grayscale images) in OpenCV 30 min Open Open Presentation
BGR color format in OpenCV 30 min Open Open Presentation
Drawing basic figures (points, lines, poligonal curves,...) in OpenCV 30 min Open Open Presentation
Drawing text and symbols in OpenCV 10 min Open Open Presentation

Image processing with OpenCV

Lesson Estimated time needed Source Code Colab Presentation
Geometric image transformations in OpenCV 15 min Open Open Presentation
OpenCV sliders for image processing 20 min Open Open Presentation
Visual interfaces (with buttons and sliders) for image processing with OpenCV 20 min Open Open Presentation
Computational photography module in OpenCV 20 min Open Open Presentation
Inpainting with OpenCV 20 min Open Open Presentation
K-means clustering for color quantization with OpenCV 20 min Open Open Presentation
References for main image processing techniques and algorithms in OpenCV 50 min Open Open Presentation
Some packages for face processing in Python 20 min Open Open Presentation

Configure OpenCV with GPU on Colab and benchmarking inference speed

Lesson Estimated time needed Source Code Colab Presentation
Configure OpenCV with GPU con Colab 20 min Open Open Presentation
Benchmarking GPUS vs CPU with OpenCV in Colab (human pose estimation) 20 min Open Open Presentation
Benchmarking GPUS vs CPU with OpenCV in Colab (YOLO V4) 20 min Open Open Presentation

Machine learning for computer vision

Introduction to scikit-learn for classification, regression and clustering

Lesson Estimated time needed Source Code Colab Presentation
Scikit-learn introduction for classification 40 min Open Open Presentation
Scikit-learn introduction for regression 30 min Open Open Presentation
Scikit-learn introduction for clustering (color quantization) 20 min Open Open Presentation
Closed eyes detection 30 min Open Open Presentation

Introduction to pandas

Lesson Estimated time needed Source Code Colab Presentation
Pandas introduction 30 min Open Open Presentation
Minimal example using both scikit-learn and pandas for classification 30 min Open Open Presentation

Introduction to metrics in scikit-learn

Lesson Estimated time needed Source Code Colab Presentation
Metrics for classification 30 min Open Open Presentation

TensorFlow and Keras

Lesson Estimated time needed Source Code Colab Presentation
Simple MNIST convnet 15 min Open Open Presentation
Simple MNIST convnet (2) 15 min Open Open Presentation
Using a pre-trained model for inference using Keras Applications 15 min Open Open Presentation
Set up Kaggle API in Colab 5 min Open Open Presentation
Using Keras Applications for feature extraction in a classification problem with scikit-learn 30 min Open Open Presentation
Using Keras Applications for feature extraction in a clustering problem with scikit-learn 25 min Open Open Presentation
Image and dataset augmentation 20 min Open Open Presentation
Transfer learning using Keras Applications 35 min Open Open Presentation

PyTorch

Lesson Estimated time needed Source Code Colab Presentation
Tensors 30 min Open Open Presentation
Learning 60 min Open Open Presentation
Neural networks 40 min Open Open Presentation
Transfer learning 40 min Open Open Presentation

Other topics

Introduction to flask (for computer vision)

Lesson Estimated time needed Source Code Colab
Minimal example showing how to create and deploy a Flask app for computer vision 20 min Open Open

Introduction to Roboflow

Lesson Estimated time needed Datasets Models Presentation
Datasets and models 50 min Open Open Presentation

Other resources

Additional packages and libraries for computer vision and image processing in Python

Introduction to Pillow: Python Imaging Library (PIL Fork)

Lesson Estimated time needed Source Code Colab Presentation
Pillow: Python Imaging Library (PIL Fork) 20 min Open Open Presentation

Scikit-image (Image processing in Python)

Repository description
scikit-image scikit-image: Image processing in Python
skimage-tutorials scikit-image tutorials

Stéfan van der Walt, Johannes L. Schönberger, Juan Nunez-Iglesias, François Boulogne, Joshua D. Warner, Neil Yager, Emmanuelle Gouillart, Tony Yu, and the scikit-image contributors. scikit-image: Image processing in Python. PeerJ 2:e453 (2014) https://doi.org/10.7717/peerj.453

Mahotas: computer vision in Python (Image processing and computer vision in Python)

Repository description
mahotas mahotas: Python Computer Vision Library
mahotas-demos mahotas tutorials and demos

Luis Pedro Coelho Mahotas: Open source software for scriptable computer vision in Journal of Open Research Software, vol 1, 2013. [DOI]

Additional packages and libraries for machine learning in Python

Dlib (C++ toolkit (with python API) containing machine learning algorithms and tools)

Repository description
dlib dlib library
Examples: Python mini-tutorials for using dlib from Python (face detection, tracking, recognition or alignment)

KING, Davis E. Dlib-ml: A machine learning toolkit. The Journal of Machine Learning Research, 2009, vol. 10, p. 1755-1758.

Work in progress 🚧

Course poster

Course poster

About

This repository contains both a collection of Jupyter Notebooks as well as other resources (e.g. presentations, links, ...) that are going to be used during the "Second quarter university extension courses" that the University of Oviedo is going to teach (online).


Languages

Language:Jupyter Notebook 99.9%Language:Python 0.1%Language:Shell 0.0%