Tal Daniel • Elias Nehme • Dalia Urbach • Anat Levin
Jupyter Notebook tutorials for the Technion's EE 046746 Computer Vision course
Previous semesters: Spring 2020
File | Topics Covered |
---|---|
Setting Up The Working Environment.pdf |
Guide for installing Anaconda locally with Python 3 and PyTorch, integration with PyCharm and using GPU on Google Colab |
ee046746_tut_01_intro_image_processing_python.ipynb\pdf |
Python basics: NumPy, Matplotlib, OpenCV basics: Reading and Writing Images, Basic Image Manipulations, Image Processing 101: Thresholding, Blurring |
ee046746_tut_01_2_deep_learning_pytorch_basics.ipynb\pdf |
Deep Learning and PyTorch basics, MNIST, Fashion-MNIST, MULTI-layer Perceptron (MLP), Fully-Connected (FC) |
ee046746_tut_02_edge_and_line_detection.ipynb\pdf |
Edge and Line detection, Canny, Hough transform, RANSAC, and SCNN |
ee046746_tut_03_04_convolutional_neural_networks.ipynb\pdf |
2D Convolution (Cross-corelation), Convolution-based Classification, Convolutional Neural Networks (CNNs), Regularization and Overfitting, Dropout, Data Augmentation, CIFAR-10 dataset, Visualizing Filters, The history of CNNs, Applications of CNNs, The problems with CNNs (adversarial attacks, poor generalization, fairness-undesirable biases) |
ee046746_tut_03_04_appndx_visualizing_cnn_filters.ipynb\pdf |
Appendix - How to visualize CNN filters and filter activations given image with PyTorch |
ee046746_tut_05_deep_semantic_segmentation.ipynb\pdf |
Semantic Segmentation, Intersection over Union (IoU), Average Precision (AP), PASCAL Visual Object Classes, Common Objects in COntext (COCO), Fully Convolutional Network (FCN),Up-Convolution / Transposed-Convolution, Skip connections, Pyramid Scene Parsing Network (PSPNet), 1x1 convolution, Mask R-CNN, DeepLab, Atrous convolution, Conditional Random Field (CRF) |
ee046746_tut_06_generative_adversarial_networks_gan.ipynb\pdf |
Generative Adversarial Network (GAN), Explicit/Implicit density estimation, Nash Equilibrium, Mode Collapse, Vanishing/Diminishing Gradient, Conditional GANs, WGAN, EBGAN, BEGAN, Tips for Training GANs, Pix2Pix, CycleGAN |
ee046746_tut_07_alignment.ipynb\pdf |
Feature Matching, Parametric Transformations, Image Warping, Image Blending, Panorama Stitching, Kornia |
ee046746_tut_08_deep_uncertainty.ipynb\pdf |
Need for Uncertainty, Epistemic and Aleatoric Uncertainty, Logelikihood Modelling, Bayesian Neural Networks, Dropout, Evidental Deep Learning |
ee046746_tut_09_deep_object_detection.ipynb\pdf |
Deep Object Detection, Localization, Sliding Windows, IoU, AP, Region-based Convolutional Neural Networks (R-CNN) Family, Fast/er R-CNN, Selective Search, Non-Maximum Supression (NMS), Region of Interest Pooling Layer (RoI), Region Proposal Network (RPN), Anchor boxes, Detectron2, You Only Look Once (YOLO) Family, YOLO V1-V4, Single Shot Multibox Detection (SSD) |
ee046746_tut_10_geometry_review.ipynb\pdf |
Camera Models, Camera Matrix, Intrinsic and Extrinsic Parameters, Distortion Models, Camera Calibration, Homography Edge Cases, Epipolar Geometry, Essential/Fundamental Matrix, 8-point Algorithm |
ee046746_tut_11_stereo_imaging.ipynb\pdf |
Triangulation, Disparity Maps, Stereo Concept, Stereo Rectification, Stereo Matching, Depth Smoothing, Point Cloud Visualization |
ee046746_tut_12_3d_deep_learning.ipynb\pdf |
Time-of-Flight Cameras, 3D Representations, Voxnet, Multi-view CNNs, Point Clouds, PointNet, PointNet++, 3D Generative Models |
ee046746_tut_13_deep_object_tracking.ipynb\pdf |
Object Detection vs Object Tracking, Detection Failure Cases, Motion Model, Visual Appearance Model, Detection-Based Vs. Detection-Free, Offline Vs. Online Tracking, Generic Object Tracking Using Regression Networks (GOTURN), Multi-Domain Convolutional Neural Network Tracker (MDNet), Deep Simple Online and Realtime Tracking (Deep SORT) |
ee046746_tut_14_deep_computational_imaging.ipynb\pdf |
Computational Imaging, Compressive Sensing, Depth Encoding PSFs, Computer Vision Pipelines, Differentiable Optics, Deep Optics, Extended Depth of Field, Monocular Depth Estimation, High Dynamic Range Imaging, Video Compressive Sensing |
You can view the tutorials online or download and run locally.
Service | Usage |
---|---|
Jupyter Nbviewer | Render and view the notebooks (can not edit) |
Binder | Render, view and edit the notebooks (limited time) |
Google Colab | Render, view, edit and save the notebooks to Google Drive (limited time) |
Jupyter Nbviewer:
Press on the "Open in Colab" button below to use Google Colab:
Or press on the "launch binder" button below to launch in Binder:
Note: creating the Binder instance takes about ~5-10 minutes, so be patient
Press "Download ZIP" under the green button Clone or download
or use git
to clone the repository using the
following command: git clone https://github.com/taldatech/ee046746-computer-vision.git
(in cmd/PowerShell in Windows or in the Terminal in Linux/Mac)
Open the folder in Jupyter Notebook (it is recommended to use Anaconda). Installation instructions can be found in Setting Up The Working Environment.pdf
.
For the complete guide, with step-by-step images, please consult Setting Up The Working Environment.pdf
- Get Anaconda with Python 3, follow the instructions according to your OS (Windows/Mac/Linux) at: https://www.anaconda.com/products/individual
- Install the basic packages using the provided
environment.yml
file by running:conda env create -f environment.yml
which will create a new conda environment nameddeep_learn
. If you did this, you will only need to install PyTorch, see the table below. - Alternatively, you can create a new environment for the course and install packages from scratch:
In Windows open
Anaconda Prompt
from the start menu, in Mac/Linux open the terminal and runconda create --name deep_learn
. Full guide at https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html#creating-an-environment-with-commands - To activate the environment, open the terminal (or
Anaconda Prompt
in Windows) and runconda activate deep_learn
- Install the required libraries according to the table below (to search for a specific library and the corresponding command you can also look at https://anaconda.org/)
Library | Command to Run |
---|---|
Jupyter Notebook |
conda install -c conda-forge notebook |
numpy |
conda install -c conda-forge numpy |
matplotlib |
conda install -c conda-forge matplotlib |
scipy |
conda install -c anaconda scipy |
scikit-learn |
conda install -c conda-forge scikit-learn |
tqdm |
conda install -c conda-forge tqdm |
opencv |
conda install -c conda-forge opencv |
pytorch (cpu) |
conda install pytorch torchvision torchaudio cpuonly -c pytorch |
pytorch (gpu) |
conda install pytorch torchvision torchaudio cudatoolkit=10.2 -c pytorch |
- To open the notbooks, open Ananconda Navigator or run
jupyter notebook
in the terminal (orAnaconda Prompt
in Windows) while thedeep_learn
environment is activated.