Skip to content

Jupyter Notecbook tutorials for the Technion's EE Computer Vision course

License

Notifications You must be signed in to change notification settings

mleprovost/ee046746-computer-vision

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

80 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ee046746-computer-vision


Technion EE 046746 - Computer Vision

Tal DanielElias NehmeDalia UrbachAnat Levin

Jupyter Notebook tutorials for the Technion's EE 046746 Computer Vision course

Previous semesters: Spring 2020

Open In Colab Open In NBViewer Open In Binder

Agenda

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

Running The Notebooks

You can view the tutorials online or download and run locally.

Running Online

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:

nbviewer

Press on the "Open in Colab" button below to use Google Colab:

Open In Colab

Or press on the "launch binder" button below to launch in Binder:

Binder

Note: creating the Binder instance takes about ~5-10 minutes, so be patient

Running Locally

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.

Installation Instructions

For the complete guide, with step-by-step images, please consult Setting Up The Working Environment.pdf

  1. Get Anaconda with Python 3, follow the instructions according to your OS (Windows/Mac/Linux) at: https://www.anaconda.com/products/individual
  2. 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 named deep_learn. If you did this, you will only need to install PyTorch, see the table below.
  3. 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 run conda 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
  4. To activate the environment, open the terminal (or Anaconda Prompt in Windows) and run conda activate deep_learn
  5. 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/)

Libraries to Install

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
  1. To open the notbooks, open Ananconda Navigator or run jupyter notebook in the terminal (or Anaconda Prompt in Windows) while the deep_learn environment is activated.

About

Jupyter Notecbook tutorials for the Technion's EE Computer Vision course

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Jupyter Notebook 100.0%