Masters Program in Computer Vision for Autonomous Vehicles

This 8 month program trains the student on becoming proficient in Computer Vision for Autonomous Vehicles

  • Domain : CSE
Enroll Now View demo

Program Outcomes

Humans and their urge to explore has created a pool of information around them. With every passing day, humans try to incorporate their knowledge and understanding into machines. Passionately dedicating time, money and resources to make their future more “advanced”. 

One such step in getting closer to achieving this is Computer Vision, which is a technology that focuses on giving the computer the ability to tell the difference between a pen and pencil, a dog and a cat, and instantly recognizing and  tagging your friends for you when you post something online!

Now, while everything comes at the tap of our fingers, none of it would happen if someone wouldn’t have gone through the pain to actually make it a reality. Here the credit goes to Larry Roberts. 

Now when a gate opens a number of opportunities does as well. The adoption of this technology has opened its arms and has given way to a myriad of opportunities in the field of autonomous vehicle, valet copters, robotics etc.  

Understanding how far and wide the application of this technology is, we have pieced together the roadmap/courses to give you the complete understanding on Computer Vision and upskill yourself in this field 

How, you ask ? 

It’s simple. Read along.  

Knowledge on data structures, followed by linear algebra, followed by basics in computer vision, followed by machine learning is all you need! 

Where do you learn it? Right here! 

Skill Lync has devised an entire course on Computer Vision that is divided into 8 modules. Each module is designed in a manner that any person with just a knack in programming can be a master in this field. 

Each of these modules are divided into a 12 week program. Where every week is followed up with a challenge. These challenges help the student get a better understanding about the course. Other than this, every module has two major projects that the students are asked to work on to enhance their knowledge and gain hands-on experience learning. The best part? While doing all of this our technical support engineers will be there throughout to guide you in the courses. 

The master program on Computer Vision consists of the following courses. 

  1. Core and Advanced Python Programming
  2. Data structures and Algorithms 
  3. Basics of Computer Vision using Python
  4. Introduction to Camera Systems
  5. Machine Learning using Python
  6. Introduction to ROS/Github/Linux
  7. Linear Algebra 
  8. Introduction to OpenCV

GET COURSE COUNSELLING TODAY

Get a 1-on-1 demo to understand what is included in the course and how it can benefit you from an experienced sales consultant. The demo session will help you enroll in this course with a clear vision and confidence.

Request a Demo Session

Some of the projects that you will work on

1. Project on DSA

Highlights

Key Highlights:

  • 13 questions to solve based on topics taught in the weeks 1 to 6-
  • 2 questions on Arrays
  • 2 questions on Strings
  • 4 questions on Linked List
  • 2 questions on Trees
  • 2 questions on Graphs
  • 1 question on Stacks and Queues
  • This project will help the students learn various techniques to solve Data Structures and Algorithms problems, to achieve the expected output from provided inputs
  • It will help students build their communication skills useful for explaining their solutions and getting their ideas across, for solving any problems programmatically.
  • It will help students build strong programming skills in Python for writing any kind of program to solve any real world problem.

Deliverables:

  • Video recorded response of the program and its explanation is expected from the students.
  • The topics to be prepared for the video response are- 
    • Discussion on time and space complexity tradeoffs
    • Difference in efficiency of the final solution from brute force approach
    • Derivation of time and space complexity of the program
    • A run through of the program with a non-trivial sample input

2. Project on DSA

Highlights

Key Highlights:

  • 25 questions to solve based on topics taught in the weeks 1 to 12-
  • 2 questions on Arrays & Strings
  • 4 questions on Trees
  • 1 question on Sorting
  • 2 questions on Searching
  • 1 question on Hashing
  • 3 questions on Graphs
  • 1 question on stacks and queues
  • 1 question on Heap
  • 3 questions on Dynamic Programming
  • 3 questions on the Greedy Technique
  • 1 question on Divide & Conquer
  • 2 questions on Two pointer and Sliding window
  • 1 question on Bit Manipulation
  • This project will help the students learn various techniques to solve Data Structures and Algorithms problems, to achieve the expected output from provided inputs
  • It will help students build their communication skills useful for explaining their solutions and getting their ideas across, for solving any problems programmatically.
  • It will help students build strong programming skills in Python for writing any kind of program to solve any real world problem.

Deliverables:

  • Video recorded response of the program and its explanation is expected from the students.
  • The topics to be prepared for the video response are- 
    • Discussion on time and space complexity tradeoffs
    • Difference in efficiency of the final solution from brute force approach
    • Derivation of time and space complexity of the program
    • A run through of the program with a non-trivial sample input

3. Project on Python

Highlights

This project uses the skills learnt from week 1 to week 6. The aim of this project is to create an English Dictionary app that returns definitions of English words. When the application is started, it displays a menu as follows:

Main Menu
1. Add a new word
2. Find the meaning
3. Update a word
4. Exit
Enter Choice:

If item 1 is selected, it should prompt for a word and then accept its meaning. This pair of word and its meaning should be stored in a file called ‘words.txt’. When item 2 is selected, it should prompt for a word, search that word in the file ‘words.txt’ and return the meaning if it is found. If the meaning is not found, it should display an appropriate message. Similarly, when choice 3 is entered, it should accept a word and update its meaning. In all the above three cases, the prompt should return to the main menu. The words and their meanings should be stored as a dictionary in words.txt, using the concept of serialization. If choice 4 is selected, a graceful exit should be performed.

4. Project on Python

Highlights

In this project, a Library Book Management System will be implemented with the front end GUI developed using Tkinter and the backend database implemented in SQLite. It is a single window tkinter GUI application which will implement CRUD( create, read, update,delete) operations on a ‘books’ database, in SQLite. The window will contain text widgets to accept/ display book title, author, year of publication, ISBN (optional) and a large text area/ list box to display the records which match the search criteria. It should contain buttons to perform the following operations on the ‘books’ database:

1. Display all the records
2. Search a book
3. Add a book
4. Issue a book
5. Delete a book
6. Exit the application

When option 1 is selected, all the books present in the library should be displayed. Option 2 should be able to search the book based on any of the criteria like author name, book title, year or ISBN. Similarly, it should be able to add the entry when option 3 is selected and issue a book when option 4 is selected. The book details should be deleted when option 5 is selected. Selecting option 6 should provide a graceful exit from the app.


1. Core and Advanced Python Programming

1Introduction to Python, Python Basics

• Discussion about Features and uses of Python, Program execution, Installation of IDE.
• Identifiers and keywords, types of comments, data types, Variables, Arithmetic operators, Assignment operators
• Input and print statements

2Strings, Decision control statements

• Definition of string, operations accessing string elements
• Relational operators, Logical operators, Conditional expressions, If, If..else, If..elif

3Repetition Statements, Console input-output

• Usage of while and for, break and continue, pass and else statements
• Formatted input and output

4Lists, Tuples, Sets, Dictionary

• Accessing list elements, basic list operations, types of lists
• Accessing tuple elements, types of tuples, tuple operation
• Accessing set elements, set operations and methods, Mathematical set operations, updating set operations
• Accessing dictionary elements, dictionary operations and methods, nested dictionary

5Functions and Recursion, Functional Programming and Lambda functions

• Defining a function, types of arguments
• Global and local variables
• Functions as arguments, Implementing Lambda functions
• Map, Reduce, Filter functions

6File Input-Output, Modules

• Read-write operations, with keyword, file opening modes, moving within a file
• Serialization, file and directory operations
• Importing a module, variations of import, third-party packages

7Classes and objects

  • Class variables and methods, Operator overloading
  • Reuse, Containership, Inheritance

8Exception handling, Iterators and generators

  • Iterables and iterators
  • Syntax errors and exceptions, try-except, else, finally blocks

9Data Analysis with Pandas

  • Installing Pandas
  • Loading CSV files, JSON files
  • Dataframes

10Numeric and Scientific Computing using Numpy

  • Introduction to Numpy
  • OpenCV
  • Images and Numpy Arrays

11Graphical User Interfaces with Tkinter

  • Introduction to Tkinter
  • Setting up a GUI with widgets
  • Connecting GUI widgets with Callback functions

12Interacting with Databases

  • Introduction to SQLite
  • Connecting and inserting data to SQLite via Python
  • Selecting, deleting and updating SQLite records


2. Data Structures & Algorithm

1Introduction

A data structure is a named location that can be used to store and organize data. An algorithm is a collection of steps to solve a particular problem. Learning data structures and algorithms allow us to write efficient and optimized computer programs. Data structures provide a means to manage large amounts of data efficiently for uses such as large databases and internet indexing services. Usually, efficient data structures are key to designing efficient algorithms.
In the first week of this course, you will learn:
  • Stack memory vs heap memory in Java
  • Physical vs logical data structure
  • Abstract data type and data structure
  • Complexity analysis
    • Asymptotic analysis, comparison of functions, recurrence relations
    • Time complexity
    • Space complexity
    • Master theorem
    • Amortized analysis
    • Iteration vs recursion
  • Recursion - Factorial, Fibonacci, finding nCr, tower of Hanoi problem.

2Arrays, Strings, and Lists

Arrays are used to store multiple values in a single variable, instead of declaring separate variables for each value. A string is a sequence of characters like - "hello". In this string the sequence of characters is 'h', 'e', 'l', 'l', and 'o'. Unlike other programming languages, strings in Java are not primitive types like int and char. Instead, all strings are objects of a predefined class named string. A LinkedList is a part of the collection framework present in Java. util package. This class is an implementation of the LinkedList data structure which is a linear data structure where the elements are not stored in contiguous locations and every element is a separate object with a data part and address part.
 
In this session, we will learn about:
  • Arrays
    • Static arrays
    • Dynamic arrays
    • 2D arrays, row-major and column-major mapping, matrices
  • Strings
  • LinkedList
    • Singly LinkedList and its operations
    • Doubly LinkedList and its operations
    • Circular LinkedList and its operation

3Stacks and Queues

The stack is a linear data structure that is used to store the collection of objects. It is based on Last-In-First-Out (LIFO). Java collection framework provides many interfaces and classes to store the collection of objects. One of them is the stack class that provides different operations such as push, pop, search, etc. The queue is used to represent an ordered list of elements. It follows the FIFO or First In First Out procedure to insert and remove elements. The queue also supports methods of collection interface.
 
In this session, we will be discussing-
  • Stacks
    • Implementations- using arrays, using linked lists
    • Operation
    • Applications
  • Queues
    • Implementations- using arrays, using a LinkedList, using two stack
    • Circular queues
    • Priority queues

4Trees

A tree is a non-linear data structure where data objects are organized in terms of hierarchical relationships. Java provides two in-built classes, TreeSet and TreeMap, in Java Collection Framework that cater to the needs of the programmer to describe data elements in the aforesaid form. There are many different types of tree structures available and we’ll be discussing them one by one

  • Trees.
    • Binary trees, their representations.
    • Pre-order, In-order, post-order traversals
    • Binary search trees
    • AVL trees

5Heaps and Tries

Heap and Trie are a special case of trees. A Heap is a special tree-based data structure in which the tree is a complete binary tree. Trie is an efficient information retrieval data structure. Using Trie, search complexities can be brought to the optimal limit. In the session, we will try to solve the longest word in the dictionary problem using Tries.

  • Heaps
    • Min Heap
    • Max Heap
    • Find K largest (or smallest) elements in the array.
  • Trie
    • Longest Word in Dictionary Problem

6Graphs & Algorithms

A graph is a data structure that consists of-
1. A finite set of vertices also called as nodes and
2. A finite set of ordered pairs of the form (u, v) called as edges.
Algorithms in Java are static methods that can be used to perform various operations on collections. Since algorithms can be used on various collections, these are also known as generic algorithms. We will be discussing different types of algorithms like-
  • Graphs
    • Types of graphs
    • Breadth-first search, depth-first search
    • Topological sort
    • Shortest path problem
      • Dijkstra's algorithm
      • Bellman–Ford algorithm
  • Minimum spanning tree problem
    • Prim's algorithm
    • Kruskal's algorithm
  • Disjoint Sets

7Sorting

Sorting generally means to put data in a certain order. The order can either be alphabetically sorted or numerically sorted. There are many types of sorting techniques available in Java. We will be discussing each of them in this session.
  • Sorting- 
    • Types of sorting techniques
    • Bubble sort
    • Insertion sort
    • Selection sort
    • Quick sort
    • Merge sort
    • Heap sort
    • Count sort
    • Bucket sort
    • Radix sort
    • Shell sort

8Searching and Hashing

Searching is probably one of the most common actions performed in a regular business application. This involves fetching data stored in data structures like arrays, list, and maps. More often than not, this search operation determines the responsiveness of the application for the end-user. Hashing is the process of converting a given key into another value. A hash function is used to generate the new value according to a mathematical algorithm. The result of a hash function is known as a hash value or simply, a hash.
 
Hashing is primarily used for authentication. Chaining is the practice of calling different methods in a single line instead of calling different methods with the same object reference separately. Under this procedure, we have to write the object reference once and then call the methods by separating them with a (dot.). Similar to chaining, open addressing is a method for handling collisions. In open addressing, all elements are stored in the hash table itself. So at any point, the size of the table must be greater than or equal to the total number of keys.
 
During this week we will be discussing about the following:
  • Searching
    • Linear search
    • Binary search
  • Hashing
    • Hash function
    • Collision handling
      • Chaining
      • Open addressing
        • Linear probing, primary clustering
        • Quadratic probing, secondary clustering
  • Double hashing

9Greedy Algorithms

A greedy algorithm is a simple, intuitive algorithm that is used in optimization problems. The algorithm makes the optimal choice at each step as it attempts to find the overall optimal way to solve the entire problem. Greedy algorithms are quite successful in some problems, such as Huffman encoding which is used to compress data, or Dijkstra's algorithm, which is used to find the shortest path through a graph. Such algorithms are called greedy because while the optimal solution to each smaller instance will provide an immediate output, the algorithm doesn't consider the larger problem as a whole.
 
The topics discussed in this session will be-
  • Types of algorithms
  • Greedy Algorithms
    • Strategy of Greedy Algorithms
    • Elements of Greedy Algorithms
    • Advantages of Greedy Algorithms
    • Disadvantages of Greedy Algorithms
    • Applications of Greedy Algorithms
    • Knapsack Problem
    • Job sequencing with deadlines
    • Huffman coding

10Divide and Conquer

The divide and conquer approach is pretty straightforward, the problem in hand is divided into smaller subproblems and then each problem is solved independently. As we keep dividing the subproblems into even smaller problems, we eventually reach a stage where no more division is possible. These "atomic" smallest possible problems are then solved. The solution of all "atomic" problem sets are finally merged in order to obtain the solution of an original problem.

In the session this week ,we will discuss:

  • The strategy of divide and conquer techniques
  • Advantages of divide and conquer techniques
  • Disadvantages of divide and conquer techniques
  • The master theorem of divide and conquer techniques
  • Applications of divide and conquer techniques
  • Find the median of two sorted arrays

11Backtracking

Backtracking is an algorithmic-technique for solving problems recursively by trying to build a solution incrementally, one piece at a time, removing those solutions that fail to satisfy the constraints of the problem at any point of time. We’ll discuss about two methods used to backtrack.
  • Backtracking- 
    • Brute force approach
    • N queens problem
  • After backtracking, we will be studying how Java 8 collections framework is implemented. We will be covering the following,
    • Set
    • List
    • Queue
    • PriorityQueue
    • Map
    • HashSet
    • TreeSet
    • ArrayList
    • LinkedList
    • Vector
    • Dictionary
    • Stack

12Dynamic Programming

Dynamic Programming is also an algorithmic technique for solving the optimization of problems. It is done by breaking the problem down into simpler subproblems and utilizing the fact that the optimal solution to the overall problem depends upon the optimal solution to its subproblems.

During this session, we will be covering the following:

  • Dynamic programming- 
    • The strategy of dynamic programming
    • Properties of dynamic programming
    • Approaches of dynamic programming
    • 0/1 knapsack
    • Travelling salesman problem
    • Floyd Warshall
  • In the end, we will conclude and summarize the course by having a brief discussion on Greedy vs Divide & Conquer vs Dynamic Programming.

 


COURSE SYLLABUS

1Intro to Computer Vision

  • General introduction, 
    • History of CV
    • Formulating the field, why is it a hard topic?
  • Definition of computer vision
    • Required components
    • What qualifies as a vision system
  • Humans as a vision system: how good do we “see”?
  • Useful applications
  • Image acquisition using camera
    • Different types of camera for different domain
      • Still, Video, DSLR, Bodycam, Drone
      • Infrared, Ultrasonography, Magnetic resonance
  • Physics of Color: color spectrum
  • Human encoding of color: Rods and cons of eyes
  • Color spaces: 
    • RGB, CMYK, HSV
    • Color balance
  • Camera specifications: 
    • Pinhole
    • CMOS
    • CCD
  • Image specifications: 
    • Pixel (Picture element)
    • Aspect ratio, HD, Interlacing
    • Conversions
  • Type of digital images:
    • Binary, Grayscale, Color 
    • Conversion techniques

2Image processing

  • Noise Removal
    • Pixel Neighborhood
    • Salt and pepper noise
    • Morphing to hide cracks in image
  • Applying filter to images
    • Convolution of matrices
  • Types of Filter: 
    • Mean or Box filtering
    • Median Filter
    • Mode, Mean, Pass 
    • Generic properties of smoothing
    • Anisotropic filtering
  • Gaussian: Isotropy condition, formulation, figure
    • Weight influence of pixels by their distance to the center pixel
    • Spread parameter
    • Motivating examples
  • Filter Separability
    • Computation and Maths
    • Gaussian Separability

3Edge Detection

  • Introduction to edges and gradients
    • Intensity difference
    • 1D versus 2D edge detection
  • Edge detection in mammals
  • 1D signals and 2D signals
    • Difference and derivative mask
    • Examples
  • Image Gradient
  • Image noise: Gaussian noise
  • Smoothing + Edge detection
    • Gaussian Derivative Signals
  • 2D gradient operators
    • Prewitt Masks
    • Sobel Masks
  • Steerable filters
  • Laplacian filters
    • Laplacian of Gaussian
    • Zero Crossings
  • Canny edge detection
    • Hysteresis thresholding
    • Non maximal Suppresion

4Image Segmentation and features

  • Thresholding based on histogram
  • Otsu, Adaptive Otsu
    • Formulation, Advancements and effectiveness
    • Examples
  • Distance Metric: Norm functions
  • Thresholding based on difference metrics, covariance based
  • Different type of background subtraction
    • Mean, Euclidean, Mahalanobis
    • Covariance matrix, multi dimensional mahalanobis 
  • Shadow modelling
    • Transform to color spaces
  • Multi modal background distribution
    • Gaussian Mixture Model
    • Foreground Assignment
  • Clustering to Image Segmentation
    • Agglomerative Clustering
    • K Means, K Means ++
    • Mean Shift Clustering
    • Hierarchical Clustering

5Binary Image Operation

  • Morphology: 
    • Erosion, Dilation
    • Open, Close
  • Connected component
    • Counting objects: Sequential count etc
    • Recursive count
    • Remove Small Features
  • Hough Transformation Algorithm
  • Radon Transformation Algorithm
  • Image Pyramids: Gaussian Laplacian Coding Compression

6Shape of Objects

  • Largest component
  • Medial axis
  • Boundary coding 
  • Chain Coding
  • Shape Numbering
  • Quadtree Representation
  • Bounding box
  • Perimeter, Compactness, Circularity
  • Centroid
  • Spatial Moments
    • Central
    • Second third order
  • Similitude Moment
  • Dimensionality Reduction
  • Linear basis set
  • Principal Component Analysis
    • Eigen Values and Vectors
    • Finding Eigen sets
    • Test on synthetic and Real data
  • Face Recognition using PCA: kernel trick

7Motion

  • Definition, simple motion
    • Image differentiation
    • Single constant threshold
  • Weber's Law
  • Optical flow
    • Formulas, geometry, example
  • Normal optic flow
  • Weighted aggregate,
  • Hierarchical Motion Estimation
  • Motion: Use of linear Algebra
  • 3D motion of point
    • Matrix operations for different motion in objects
    • Pinhole Camera Model
  • 2D matrix motion
    • Translation Motion
    • Similarity Motion
    • Affine Motion
  • Motion History Image
    • Spatial Pattern of where motion occurred
    • Progression of motion
  • Motion Energy Image
  • Silhouette Difference

8Matching & Tracking

  • Motivation, Example
  • Feature based tracking
  • How to find good features to track
  • Find Interest Points (General)
    • Panoramic stitching
  • Features from Accelerated Segment (FAST)
  • Harris Detector
    • Gradients
    • Window weighing function
    • Harris Corner Response Function

9Interest Point

  • SURF algorithm
  • SIFT algorithm for automated feature selection
  • Free alternative to SIFT and SURF in openCV
  •  Laplacian Of Gaussian
    • Automated Feature selection
  • Diff Of Gaussian
  • Covariance tracking
    • Descriptor Matrix
    • Finding best match
    • Rotation Invariance
  • Kanade-Lucas-Tomasi (KLT) Tracker
    • Tracking Features
    • Formulations
    • Reduction Pyramid
    • Select “good” feature based on Eigen Value
  • Mean shift tracking
    • Weighted histograms using spatial kernels
      • Evaluating similarity between distributions using Bhattacharyya coefficient
      • Object tracking by target localization (in each frame) by maximizing the similarity function using mean shift
  • Template Matching
    • Sum-of-Absolute Differences
    • Sum-of-Squared Differences
    • Normalized Cross-Correlation

10Image Registration

  • Lens
    • Thin Lens Model
    • Focus, DoF, Aperture,
  • Projective Camera Model
    • PinHole Camera
    • Intrinsic and Extrinsic Camera Parameters
  • Homogeneous Coordinate
  • Projection
    • Camera Projection
  • Camera Matrices
    • Estimating camera matrices
    • Extracting parameter P
  • Calibration
  • Projection
    • Perspective Effective
    • Affine
    • Orthographic
    • Weak
  • Transformation: Translation, Rotation, Skew, Reflection
  • Planar homography/ Projective Transformation
    • Solving homography matrix
    • Normalized Direct Linear Transformation
    • Example on real 3D data
  • RANSAC Algorithm
  • Gold Standard Algorithm

11Lens & Camera projection

  • 3D intro
    • Motivation
    • Ambiguity in single View
  • Geometry for simple stereo system
  • Depth and Calibration
  • Epipolar Geometry
    • Baseline, Epipole, Epipolar Line, Epipolar Plane
    • Epipolar Constraint
    • Converging camera
    • Parallel Camera
  • Camera Motion
  • Fundamental Matrix
    • Computation
    • 8 point algorithm
  • Depth Matrix
  • Stereo Matching Algorithm
    • Correspondence Search
    • Estimate disparity by finding corresponding points
    • Depth is inversely related to disparity
  • Stereo Matching as Energy Minimization
  • Graph cut algorithm

12SOTA ML based CV Techniques

  • LeNet
  • AlexNet
  • General detection techniques
  • YOLO
  • GAN
  • Autonomous Vehicle Specific Networks
  • Gaussian Neural Network
  • Confidence in classification output: decide object confidence for autonomous vehicle


4. Introduction to Camera Systems using C/C++

1Camera Construction

  • Introduction to geometrical construction
  • Introduction to optical construction 
  • Introduction to Camera Types
  • Camera Sensor types – CCD, CMOS 
  • Camera Sensor types – RGGB, RCCB, RCCC
  • Different Lens Types – Normal vs Fisheye
  • Optical Parameters – Exposure time, Shutter, White Balance, Gain

2Camera Calibration

  • Introduction to Camera Calibration
  • Introduction to Camera Parameters
  • Calibration Techniques 
  • Calibration for intrinsic vs Extrinsic 
  • Image Undistortion

3Camera Models

  • Different Camera Models
  • Pin hole model, Perspective model, fisheye model
  • Lens Distortion – Barrel /Radial, Pin Cushion
  • Depth Of Field , Field of View 
  • Effects on changing aperture

4Projective Geometry

  • Dimensionality Reduction
  • What is lost / Preserved ?
  • Vanishing Lines & Points
  • World to Image Projection
  • Rotation and Translation
  • Orthographic Projection

5Stereo Vision

  • Basic Idea of Stereo Vision
  • Components of Stereo Vision
  • Stereo Correspondence
  • Image Normalization vs Histogram Warping
  • Pixel Based vs Edge Based vs Segmentation Based Stereo
  • Stereo Matching with Dynamic Programming
  • Disparity Maps and its uses.

6Camera Systems

  • FLIR  Camera
  • Fisheye Camera – Continental
  • Stereo Camera 
  • Low FOV Long range cameras
  • Resolution 
  • Different Uses for each of them.

7Image Pre-Processing

  • Image Color Spaces
  • Color Space conversions (RAW -> RGB, RGB-> GRAYSCALE, RGB->YUV , …)
  • Image Formation, Sampling, Sub-Sampling, Quantization
  • Image Interpolation, Extrapolation
  • Image Normalization
  • Image Noise – Salt and Pepper noise, Gaussian Noise , Impulse Noise
  • Image Erosion/Dilution

8Image Processing -1 (Transformations)

Basic Transformations and Filtering

  • Domain Transformations
  • Noise Reduction
  • Filtering as Cross Correlation
  • Convolution
  • NonLinear Filtering

9Image Processing -2

Basic Image Filtering and Detection techniques

  • Corners Detection
  • Edge Detection
  • Contour Detection
  • Image Thresholding Histogram
  • Binning Technique
  • Histogram Equalization

10Image Processing -3

Features and Image Matching

  • Image Features, Invariant Features
    • Geometrical Invariance
    • Photometric Invariance
  • Harris Detector, Eigen based Features
  • Image Descriptors
  • SIFT , SURF, SSD
  • Mosaics and Image Stitching

11Image Processing - 4

Introduction to Structure from Motion (SFM)

  • Camera Model and Coordinate systems
  • Epipolar Constraint and
  • Derive Essential Matrix
  • 3d Reconstruction 
  • Bundle Adjustment
  • SLAM example 
  • SVD approach to SFM

12Introduction to Embedded Systems

  • Camera Interfaces. Ex : GMSL, LVDS
  • Communication Protocol – I2C 
  • Camera Initialization Sequence 
  • Automated Exposure Gain (AEG) Control 
  • Vision Processing Units (VPU) 
  • Graphic Processing units


5. Machine Learning using Python

1Basics of Probability and Statistics

 In this module, we will introduce the ideas of Statistics, machine learning and artificial intelligence. 

  • Basics of Probability
  • Basics of Statistics
  • What is ML & AI
 

2Basics of ML & AI

In this section, we start with supervised learning

  • Introduction to normal distribution & standard normal distribution
  • Introduction to business moments
  • Artificial Intelligence
 

3Supervised Learning - Prediction

In this section, we start with supervised learning

  • Introduction to supervised learning
  • What is linear regression
  • One hot encoding
  • Cost function and gradient descent
    

4Supervised Learning - Classification

In this section, we start with classification algorithm

  • Introduction to classification problems
  • What is logistic regression
  • Cost function and gradient descent
 

5Supervised Learning - Classification

In this module, we will introduce some more classification algorithms

  • Decision tree
  • Entropy
  • Information gain
 

6Random forest & Model Evaluation

In this section, we will assess the algorithms

  • Random Forest
  • Bootstrapping and majority rule
  • Evaluation of classifiers
 

7Supervised Learning - Classification

In this module, we will introduce SVM

  • Support Vector Machines
  • Mathematical intuition behind SVM
  • How SVM is different from other classifiers
 

8Supervised Learning - Classification

In this section, we will introduce knn

  • K-Nearest Neighbour
  • Lazy Algorithm
  • Single layer Neural Network
 

9Unsupervised Learning - Kmeans

In this section, we will introduce clustering

  • What is clustering
  • Why clustering is important
  • Kmeans and elbow curve
 

10Unsupervised Learning - Hierarchical

In this section, we will introduce another type of clustering

  • Hierarchical Clustering
  • Dendrogram
  • Evaluation of clustering algorithms
 

11Unsupervised Learning - PCA

In this module, we will introduce some feature selection techniques

  • Feature Selection
  • Principal Component Analysis
  • Mathematical intuition behind PCA
 

12Supervised Learning - Classification

In this section, we will introduce neural network

  • Artificial Neural Network
  • Deep learning
  • Different activation functions
  • Understanding back propagation
 


6. Introduction to ROS/Github/ Linux

1Introduction to Autonomous vehicles

  • Intro to self-driving vehicles 

  • Levels of autonomy 

  • What is ROS 

  • Why is ROS important for auto vehicles

  • Integration of ROS with self-driving vehicles

2Introduction to Linux system

  • Intro to linux 

  • Difference between windows and linux 

  • Distributions in linux 

  • Intro about shell commands

  • Intro to Git

3ROS Introduction

  • ROS Architecture 

  • How to install ROS? 

  • Abstractions in ROS 

  • Application of ROS

4Programming Basics for Robotics

  • Why python for robotics? 

  • Python Essentials 
    • How to create variables 
    • Different operators 
  • Conditional statements and loops 
    • If, else, elif 
    • for loop 
    • while loop 
  • Functions 
  • Lists, tuples, dictionary
  • OOP (object-oriented programming) 

 

5ROS Filesystem Concepts

  • ROS Filesystem Level: 

    • Navigating in ROS(catkin, rosbuild) 
    • Creating Packages 
    • Building Packages(catkin_make) 
    • Package dependencies

6ROS Computation Graph Concepts -I

  • ROS Graph Concepts 

  • Nodes 

    ○ Master node 

    ○ Slave node 

  • Rostopic 

    ○ What is a topic in ROS 

    ○ rostopic list / echo

  • Messages and message structure

  • Services(using rosservice) & Parameters(using rosparam)

  • Bags (rosbags, rqt, rosplay, rosrecord)

7ROS Computation concepts and visualization

  • Writing Publisher Node & Subscriber Node 

  • Working with publishers and subscribers 

  • 2D Visualization 
    • Plotting message data using rqt_plot 
    • Real-time plotting using plotJuggler 
  • 3D Visualization 
    • rViz 
    • Gazebo simulator

8ROS for autonomous vehicles

  • Sensors 

    • Different sensors

    • Sensory data

    • Visualization of sensory data in Rviz 

  • Dataset available - KITTI, nuscene, COCO, etc 
  • Introduction to autonomous driving simulator: CARLA ● Installation of CARLA
  • Integration of ROS and CARLA 
    • ROS bridge installation

9Mobile Robotics: Basics

  • Wheeled v/s Legged Robots 

  • Differential drive robot basics 

  • Kinematic bicycle model

10Mobile Robotics: Perception

  • Introduction to Computer vision 

  • OpenCV in Python 

  • Vision-based sensors 

  • Feature extraction 

  • Object detection and tracking

11Mobile Robotics: Localization and Mapping

  • Need for Localization for Autonomous driving 

  • SLAM 

  • Grid Maps 

  • Sensors - Wheel Encoders, IMU 

  • Accumulation of Errors 

  • Kalman Filter and Uncertainty

12Mobile Robotics: Path planning

  • Vision-based navigation 

  • Path execution and obstacle avoidance 

  • Static and Dynamic Obstacles 

  • Understanding of cost and grid maps 

  • Path Planning Algorithms 

    • RRT 
    • A*


7.Linear Algebra

1Linear Equations and Matrix Algebra

  • System of linear equations
  • Consistent and inconsistent systems
  • Matrix formations
  • Types of matrices
  • Sparse matrix
  • Matrix arithmetic
  • Determinants
  • Matrix inversions

2Matrix Operations and Vectors

  • Matrix Operations
  • Gaussian Elimination
  • Row Reduced Echelon Form
  • Gauss-Jordan for inverse
  • Introduction to vectors and vector arithmetic

3Vector Spaces, Subspaces, Introduction to bases

  • Introduction to vector spaces
  • Vector operations
  • Subspaces
  • Linear combinations
  • Linearly dependent and independent vectors
  • Geometric interpretations

4Bases and Dimensions, Row-Equivalence

  • Span of a set of vectors
  • Basis of a vector space
  • Dimension of a vector space
  • Row-equivalence revisited
  • Introduction to transformations

5Linear Transformations

  • Linear transformations of vector spaces
  • Domain and range
  • Null space
  • Rank and nullity
  • Rank-nullity theorem
  • Representation of transformation matrices
  • Rotation, Reflection and Translation

6Orthogonal Projection, Orthonormal basis, Eigenvalues and Eigenvectors

  • Orthogonal projection and orthonormal basis
  • Euclidean transformation
  • Introduction to polynomials
  • Characteristic polynomials
  • Eigenvalues and eigenvectors
  • Eigenspaces

7Similarity Transformation and Diagonalization, SVD, LSM

  • Similarity transformations
  • Diagonal matrices
  • Diagonalizations
  • Eigendecomposition
  • Singular Value Decomposition
  • Least Square Method

8Partial Differential Equations, Taylor Series, Fourier and Laplace Transformations

  • Introduction to partial differential equations and solving methods
  • Taylor series expansion
  • Fourier and Laplace transformations

9State Space Models, Digital Control Systems, Realization Theory

  • Introduction to state-space models
  • Introduction to digital control system and its structure
  • The z-transformation
  • Realizations of state-space models

10Systems identification, Transfer functions, Recursive Least Squares

  • Introduction and overview of systems identification
  • Identification for control
  • Transfer function matrix
  • Poles and zeroes
  • Recursive least square methods

11Stability, Controllability and Stabilizability

  • Stability of digital control system
  • Stability conditions
  • Controllability and stabilizability of systems

12Observability, Detectability

  • Observability and detectability
  • Parallel realization


8. Introduction to OpenCV

1Reading an Image and Video

  • Introduction to OpenCV as a library.
  • Introduction to OpenCV Extra Modules
  • Installing OpenCV and setting up Eclipse or Visual Studio to work with OpenCV. 
  • Compiling the first hello world program.
  • Read and display an image from file. 
  • Read and display a video from file & camera.
  • Save Images and videos to a file. 

2Basic datatypes and Graphical Functions

  • Point , Point2f, Size.
  • Rect, RotatedRect.
  • Mat, Pixel Access, Iterator and other operations.  
  • Changing properties of graphical windows.
  • Adding a trackbar to the window. 
  • Detecting Mouse Clicks and moves. 
  • Drawing Tools

3Basic Image Processing functionalities

  • Blurring images and videos.
  • Invert Images and Videos
  • Changing the brightness of images and videos
  • Changing the contrast of images and videos
  • Histogram Equalization 
  • Image Normalization

4Filter Images and Videos

  • Image smoothening
  • Image erosion and Dilation
  • Edge detection techniques 
  • Corner Detection 
  • Blurring of Images
  • Denoising of images
  • Low/High Pass filtering 

5Image Processing

  • Image Segmentation
  • Contour Detection
  • Background Subtraction
  • Image Thresholding
  • Adaptive Thresholding
  • BLOB detection example

6Object Detection

  • BLOB detection
  • ROI selection
  • Keypoint Descriptors
  • Feature Detectors 
  • HOG detector
  • Clustering

7Singular Value Decomposition (SVD)

  • Introduction to SVD
  • Applications of SVD
  • SVD in image compression
  • SVD Subspaces 
  • SVD multiresolution

8Principal Component Analysis (PCA)

  • Introduction to Principal Component Analysis
  • Uses of PCA in Image Processing
  • Image analysis and compression using PCA
  • Performing PCA on images
  • Advantages and Disadvantages in comparison to other techniques


Testimonials

Companies hire from us

See all

CERTIFICATION

  • Top 5% of the class will get a merit certificate
  • Course completion certificates will be provided to all students
  • Build a professional portfolio
  • Automatically link your technical projects
  • E-verified profile that can be shared on LinkedIn

SKILL LYNC WORKS TO GET YOU A JOB

See all

FAQ

1Who can take your course?

Anyone with a background in Statistics, Linear Algebra and basic programming skills (Python, Matlab etc). For instance one should be able to take derivatives, maximize a function etc.

For Linear Algebra we need: matrix related operations as transpose, inverse etc. Transformations will involve basic matrix operations as addition as well as advanced operations as rotation. We will also need advanced topics as Singular Value Decomposition. For statistics we need conditional probability, mean, variance etc. For programing, one should be able to write legible scripts to perform simple applications as a calculator. Specifically, one should be able to read an algorithm given in a generic format or flowchart format and write corresponding scripts. There will also be examples to perform such operations in course content.

2Which companies will I get a job in?

Google, Amazon, Facebook, Apple to name a few are some companies who are using image detection for their hardware (VR system, FAIR project camera) or API development. 

3What salary can I expect after this program?

Expected CTC after the program completion can range between 2.5 to 6LPA. For experienced professionals, you can expect a hike between 10-45%


The Skill-Lync Advantage

See all