└── README.md /README.md: -------------------------------------------------------------------------------- 1 | # Learn_Computer_Vision 2 | This is the curriculum for "Learn Computer Vision" by Siraj Raval on Youtube 3 | 4 | ## Course Objective 5 | This is the Curriculum for [this](https://youtu.be/FSe_02FpJas) 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. 6 | Remember to believe in your ability to learn. You can learn CV , you will learn CV, and if you stick to it, 7 | eventually you will master it. 8 | 9 | ## Find a study buddy 10 | Join the #Computer_Vision_curriculum channel in our Slack channel to find one http://wizards.herokuapp.com 11 | 12 | ## Components each week 13 | - Video Lectures 14 | - Reading Assignments 15 | - Project(s) 16 | 17 | ## Course Length 18 | - 8 weeks 19 | - 2-3 Hours of Study per Day 20 | 21 | ## Tools Used 22 | - Python, OpenCV, Tensorflow 23 | 24 | ## Prerequisites 25 | 26 | - Learn Python https://www.edx.org/course/introduction-to-python-for-data-science-3 27 | - Calculus http://tutorial.math.lamar.edu/pdf/Calculus_Cheat_Sheet_All.pdf 28 | - Linear Algebra https://www.souravsengupta.com/cds2016/lectures/Savov_Notes.pdf 29 | 30 | ## Part 1: Low Level Vision (image > image) 31 | 32 | ### Week 1 ( Basic Image Processing Techniques) 33 | - Luminance (Brightness, contrast, gamma, histogram equalization) 34 | - Linear Filtering (enhance image - blur & sharpen, edge detect, image countours, convolution) 35 | - Non Linear Filtering (Median, Bilateral Filter, morphology ) 36 | - Color processing (B&W, Saturation, White Balance) 37 | - Dithering (Quantization, Ordered Dither, Floyd-Steinberg) 38 | - Blending (Image pyramids) 39 | - Texture Analysis 40 | - Template Matching (find object in an image) 41 | 42 | #### Video Lectures 43 | - https://www.youtube.com/watch?v=-nt80JUNwlw&list=PLjMXczUzEYcHvw5YYSU92WrY8IwhTuq7p&index=2 videos 1-5 44 | #### Reading Assignments 45 | - http://szeliski.org/Book/drafts/SzeliskiBook_20100903_draft.pdf Sec 3.1.1-2, 3.2 Sec 3.2.3, 4.2 3.3.2-4 46 | #### Project 47 | - Detect an object in an image via the OpenCV Library 48 | 49 | ### Week 2 (Motion and Optical Flow) 50 | - Motion Analysis 51 | - Optical Flow 52 | #### Video Lectures 53 | - https://www.udacity.com/course/introduction-to-computer-vision--ud810 Udacity lesson 6 54 | - https://www.youtube.com/watch?v=-nt80JUNwlw&list=PLjMXczUzEYcHvw5YYSU92WrY8IwhTuq7p&index=2 video 8 55 | - https://www.youtube.com/watch?v=wC8hXuHsHAQ&list=PLvqB6_mDBCdlnT84LK_NvbOqcXLlOTR8j&index=6&t=0s 56 | #### Reading Assignments 57 | - http://szeliski.org/Book/drafts/SzeliskiBook_20100903_draft.pdf Sec 10.5 Sec 8.4 (up until 8.4.1) 58 | #### Project 59 | - Track a moving object in a video frame with OpenCV 60 | 61 | ### Part 2: Mid Level Vision (image > features) 62 | 63 | #### Week 3 (Basic Segmentation) 64 | - Segmentation and clustering algorithms like watershed, grabcut 65 | - Interactive segmentation 66 | - Hough transform (detect circles, lines) 67 | - Foreground Extraction 68 | 69 | #### Video Lectures 70 | - https://www.youtube.com/watch?v=ZF-3aORwEc0 71 | - https://www.youtube.com/watch?v=3qJej6wgezA 72 | #### Reading Assignments 73 | - Sec Sec 5.2-5.4 http://szeliski.org/Book/drafts/SzeliskiBook_20100903_draft.pdf 74 | #### Project 75 | - Segment Lane lines in a road image with OpenCV 76 | 77 | #### Week 4 (Fitting) 78 | - Fitting lines and curves 79 | - Robust fitting, RANSAC 80 | - Deformable contours 81 | #### Video Lectures 82 | - Videos 6-7 https://www.youtube.com/watch?v=-nt80JUNwlw&list=PLjMXczUzEYcHvw5YYSU92WrY8IwhTuq7p&index=2 83 | #### Reading Assignments 84 | - Sec 4.3.2 5.1.1 http://szeliski.org/Book/drafts/SzeliskiBook_20100903_draft.pdf 85 | #### Project 86 | - Compute Vanishing Points in a hallway image with OpenCV 87 | 88 | ### Part 3: Multiple Views 89 | 90 | #### Week 5 (Multiple Images) 91 | - Local invariant feature detection and description 92 | - Image transformations and alignment 93 | - Planar homography 94 | - Epipolar geometry and stereo 95 | - Object instance recognition 96 | #### Video Lectures 97 | - https://www.youtube.com/playlist?list=PLyH-5mHPFffFvCCZcbdWXAb_cTy4ZG3Dj 98 | #### Reading Assignments 99 | - http://vision.cs.utexas.edu/376-spring2018/#Tues_May_1 see the associated readings on this page 100 | #### Project 101 | - Turn a set of images into a 3D Object with OpenCV 102 | 103 | #### Week 6 (3D Scenes) 104 | - Stereo Vision, Dense Motion and Tracking;. 3d Objects 105 | - 3D Scene understanding 106 | - 3D Segmentation and Modeling 107 | #### Video Lectures 108 | - https://www.youtube.com/watch?v=-nt80JUNwlw&list=PLjMXczUzEYcHvw5YYSU92WrY8IwhTuq7p&index=2 video 9 109 | - all videos https://www.coursera.org/learn/stereovision-motion-tracking 110 | #### Reading Assignments 111 | ##### Google and read the following papers 112 | - 1. N. Dalal, Histograms of oriented gradients for human detection 113 | - 2. G. Csurka et al. (Bag of Visual Words - a brilliant representation of cross field research) Visual categorization with bags of keypoints 114 | - 3. S Lazebnik, C Schmid, J Ponce, Beyond bags of features: Spatial pyramid matching for recognizing natural scene categories 115 | - 4. Jegou et al. Aggregating local image descriptors into compact codes. 116 | #### Project 117 | - Perform Object Segmentation in a 3D Scene with OpenCV 118 | 119 | ### Part 4: High Level Vision (Features > Analysis) 120 | 121 | #### Week 7 (Object Detection & Classification) 122 | - Object/scene/activity categorization (semantic segmentation) 123 | - Object detection (Non max suppression , sliding windows, Boundary boxes and anchors, counting) 124 | - YOLO and Darknet, region proposal networks 125 | - Supervised classification algorithms 126 | - Probabilistic models for sequence data 127 | - Visual attributes 128 | - Optical Character Recognition 129 | - Facial Detection 130 | #### Video Lectures 131 | - https://www.youtube.com/watch?v=a-v5_8VGV0A&list=PLjMXczUzEYcHvw5YYSU92WrY8IwhTuq7p&index=8 10-18 132 | - my video on YOLO 133 | #### Reading Assignments 134 | - http://vision.cs.utexas.edu/376-spring2018/#Tues_May_1 see the associated readings on this page 135 | #### Project 136 | - Classify a car in an image with Tensorflow 137 | 138 | #### Week 8 (Modern Deep Learning) 139 | - Active learning 140 | - Dimensionality reduction 141 | - Non-parametric methods and big data 142 | - U-Net 143 | - Transfer learning 144 | - Avoiding Overfitting 145 | - GANs 146 | 147 | #### Video Lectures 148 | - videos 19-20 https://www.youtube.com/watch?v=a-v5_8VGV0A&list=PLjMXczUzEYcHvw5YYSU92WrY8IwhTuq7p&index=8 149 | - my video on transfer learning 150 | - Lectures 1-16 Stanford https://www.youtube.com/watch?v=vT1JzLTH4G4&list=PL3FW7Lu3i5JvHM8ljYj-zLfQRF3EO8sYv 151 | #### Reading Assignments 152 | - http://vision.cs.utexas.edu/376-spring2018/#Tues_May_1 see the associated readings on this page 153 | #### Project 154 | - Build a Generative Adversarial Network to detect faces 155 | 156 | 157 | 158 | --------------------------------------------------------------------------------