/Learn_Computer_Vision

This is the curriculum for "Learn Computer Vision" by Siraj Raval on Youtube

Primary LanguagePython

This repository contains the source code of all the algorithm and projects used in this curriculum implemented in python

Learn_Computer_Vision

This is the curriculum for "Learn Computer Vision" by Siraj Raval on Youtube

Course Objective

This is the Curriculum for this video on Learn Computer Vision by Siraj Raval on Youtube. After completing this course, start your own startup, do consulting work, or find a full-time job related to Computer Vision. Remember to believe in your ability to learn. You can learn CV , you will learn CV, and if you stick to it, eventually you will master it.

Find a study buddy

Join the #Computer_Vision_curriculum channel in our Slack channel to find one http://wizards.herokuapp.com

Components each week

  • Video Lectures
  • Reading Assignments
  • Project(s)

Course Length

  • 8 weeks
  • 2-3 Hours of Study per Day

Tools Used

  • Python, OpenCV, Tensorflow

Prerequisites

Part 1: Low Level Vision (image > image)

Week 1 ( Basic Image Processing Techniques)

  • Luminance (Brightness, contrast, gamma, histogram equalization)
  • Linear Filtering (enhance image - blur & sharpen, edge detect, image countours, convolution)
  • Non Linear Filtering (Median, Bilateral Filter, morphology )
  • Color processing (B&W, Saturation, White Balance)
  • Dithering (Quantization, Ordered Dither, Floyd-Steinberg)
  • Blending (Image pyramids)
  • Texture Analysis
  • Template Matching (find object in an image)

Video Lectures

Reading Assignments

Project

  • Detect an object in an image via the OpenCV Library

Week 2 (Motion and Optical Flow)

  • Motion Analysis
  • Optical Flow

Video Lectures

Reading Assignments

Project

  • Track a moving object in a video frame with OpenCV

Part 2: Mid Level Vision (image > features)

Week 3 (Basic Segmentation)

  • Segmentation and clustering algorithms like watershed, grabcut
  • Interactive segmentation
  • Hough transform (detect circles, lines)
  • Foreground Extraction

Video Lectures

Reading Assignments

Project

  • Segment Lane lines in a road image with OpenCV

Week 4 (Fitting)

  • Fitting lines and curves
  • Robust fitting, RANSAC
  • Deformable contours

Video Lectures

Reading Assignments

Project

  • Compute Vanishing Points in a hallway image with OpenCV

Part 3: Multiple Views

Week 5 (Multiple Images)

  • Local invariant feature detection and description
  • Image transformations and alignment
  • Planar homography
  • Epipolar geometry and stereo
  • Object instance recognition

Video Lectures

Reading Assignments

Project

  • Turn a set of images into a 3D Object with OpenCV

Week 6 (3D Scenes)

  • Stereo Vision, Dense Motion and Tracking;. 3d Objects
  • 3D Scene understanding
  • 3D Segmentation and Modeling

Video Lectures

Reading Assignments

Google and read the following papers
    1. N. Dalal, Histograms of oriented gradients for human detection
    1. G. Csurka et al. (Bag of Visual Words - a brilliant representation of cross field research) Visual categorization with bags of keypoints
    1. S Lazebnik, C Schmid, J Ponce, Beyond bags of features: Spatial pyramid matching for recognizing natural scene categories
    1. Jegou et al. Aggregating local image descriptors into compact codes.

Project

  • Perform Object Segmentation in a 3D Scene with OpenCV

Part 4: High Level Vision (Features > Analysis)

Week 7 (Object Detection & Classification)

  • Object/scene/activity categorization (semantic segmentation)
  • Object detection (Non max suppression , sliding windows, Boundary boxes and anchors, counting)
  • YOLO and Darknet, region proposal networks
  • Supervised classification algorithms
  • Probabilistic models for sequence data
  • Visual attributes
  • Optical Character Recognition
  • Facial Detection

Video Lectures

Reading Assignments

Project

  • Classify a car in an image with Tensorflow

Week 8 (Modern Deep Learning)

  • Active learning
  • Dimensionality reduction
  • Non-parametric methods and big data
  • U-Net
  • Transfer learning
  • Avoiding Overfitting
  • GANs

Video Lectures

Reading Assignments

Project

  • Build a Generative Adversarial Network to detect faces