
Explore fundamentals of image processing and convolutional neural networks, then learn state-of-the-art object detection with YOLO and SSD, and tracking methods like deep sort with Kalman filtering for vehicle counting.
Learn how to install python by downloading from python.org and updating the path, while noting that python 3.11 may not work with tensorflow or keras and 3.8 is stable.
Install and set up the PyCharm IDE, which can install Python. Create a new project with Python 3.11 as the base interpreter and run a simple print hi program.
Install OpenCV in PyCharm by using the Python interpreter to install the opencv-python package, import cv2, and verify the OpenCV version 4.7 is installed and working.
Trace the evolution of object detection in computer vision from Viola-Jones and hog to cnns, r-cnn variants, ssd, and yolo, highlighting bounding boxes and real-time performance in images and videos.
Represent images as a pixel intensity matrix, using 0 and 1 for binary images and 0–255 for grayscale, with color images using red, green, and blue channels.
Learn to read a grayscale image with OpenCV in Python, convert it to a 2D pixel intensity array, and interpret values where 0 is dark and 255 is bright.
Explore colored images by examining red, green, and blue components, understanding 24-bit rgb pixels, three-dimensional arrays, and 0-255 intensity ranges with OpenCV's component tracking.
Learn the mathematical basis of convolution in image processing and how kernels detect edges, blur, and textures, producing feature maps through local pixel operations.
Apply blur on an image by building a 5x5 normalized kernel with numpy and applying cv2.filter2D in OpenCV. Compare original and blurred images to illustrate noise reduction by Gaussian blur.
Convert a color image to grayscale with cv2.cvtColor, then detect edges using a Laplacian kernel or the built-in Laplacian, applying filter2D with depth -1 in OpenCV.
Define a 3x3 sharpen kernel with values [0 -1 0; -1 5 -1; 0 -1 0], load a color image with cv2.imread, and apply the kernel to sharpen it.
Explore the lane detection problem for self-driving cars, using computer vision and edge detection with kernels and transformations to detect left and right lane markings via an algorithm.
Implement lane detection from video frames using OpenCV and numpy, reading an mp4 with video capture, displaying frames, and controlling playback with wait key.
Transform video frames to grayscale and apply Canny edge detection to reveal lane features, returning the modified frames as detected lanes.
Learn about Canny edge detection, using gaussian blur, Sobel gradients, non-maximum suppression, and upper and lower thresholds to detect precise edges.
Apply a region of interest mask to the lower triangle of the image, preserving the driving lanes while suppressing irrelevant areas to improve lane detection.
Apply edge detection and the generalized Hough transform to detect straight lines by mapping white image points into a polar parameter space defined by r and angle, revealing driving lanes.
process a cropped video frame with the hough line detection using rho and theta, threshold, minLineLength, and maxLineGap, then draw blue lines and blend them into the frame.
Learn to detect driving lanes using a Hough transform approach in OpenCV, converting frames to grayscale, applying edge detection, focusing on the lower triangle, and drawing detected lines.
Explore how the Viola-Jones face detection algorithm locates a bounding box for human faces in images with multiple objects, differentiating this from handwritten digit datasets.
Explore the Viola-Jones face detection framework with Haar features, grayscale input, integral images, boosting, sliding window, 24 by 24 kernels, scale via image rescaling, and positive/negative samples.
Haar features underlie the Viola-Jones face detector, using white and black rectangles to detect edges and textures, with thresholds learned to select top features.
discover how integral images enable constant-time sums of rectangular regions for Viola-Jones face detection, using sliding windows and Haar features.
Boosting uses decision stumps and Haar features to build a strong face-detection classifier, shrinking 160,000 features to 6,000 and focusing on misclassified samples, with cascading as the next step.
Explore cascading in face detection with a multi-stage classifier that quickly rejects non-face regions using the most relevant features, improving speed and reducing false positives for Viola-Jones.
Apply Viola-Jones face detection with OpenCV by loading the pre-trained haarcascade frontal face XML, converting images to gray, and detecting multi-scale faces using a cascade classifier.
Implement face detection by loading a pre-trained cascade classifier, converting images to grayscale, and drawing red bounding boxes around faces; compare Viola-Jones with YOLO and preview video face detection.
Detect faces in real-time video using OpenCV's cascade classifier with a frontal-face XML model, converting frames to grayscale and drawing red rectangles around each detected face.
Explore the histogram of oriented gradients approach as a robust alternative to viola-jones, using gradient orientation and SVM to detect objects and faces.
Compute histogram of oriented gradients by convolving horizontal and vertical gradient kernels (including Sobel), deriving magnitude and unsigned angle with padding to capture shape and robustness to lighting.
Compute horizontal and vertical gradients to derive magnitude and angle. Create a nine-bin histogram of oriented gradients from 8x8 patches, assigning magnitudes to angle bins (0-180) and normalizing for classification.
Learn how histogram of oriented gradients builds 9-value feature vectors from 8x8 patches, uses 16x16 blocks of four patches, and applies L2 normalization to mitigate illumination changes.
Understand the big picture of histogram of oriented gradients: build 9-bin histograms from 8x8 patches, normalize 16x16 blocks, and use features for an SVM-based face detector.
Use Python and scikit-image to compute histogram of oriented gradients on an astronaut image, visualize the hog result, and extract hog features for classification.
Detect faces with histogram of oriented gradients and a linear support vector classifier, trained on 10,000 grayscale 62×47 face images from the lfw people dataset using patch extractor for negatives.
Learn hog-based face detection by building positive and negative samples with scikit-image data, then generate patches and train a support vector classifier.
Generate and label positive and negative images, compute histogram of oriented gradients features for every image, and train a linear support vector classifier on the labeled features.
Test a hog-based face detection pipeline by resizing grayscale test images, extracting histogram of oriented gradients features, and predicting with a support vector classifier to distinguish human faces from non-faces.
Convolutional neural networks outperform Viola-Jones and HOG-SVM for object detection, producing bounding boxes and class labels, while sliding-window strategies reveal slow feasibility, guiding region-based CNNs.
Discover how region proposals with convolutional neural networks enable efficient object detection. Compare selective search and region proposal networks to sliding windows and learn bounding box refinement.
Explore region based CNNs with selective search region proposals, feature extraction by AlexNet, and independent SVM classifiers for 91 classes, then bounding box localization via regression.
Apply fast R-CNN, using selective search on feature maps and ROI pooling for fixed-size outputs, and train end-to-end with softmax and bounding-box regression for faster detection.
Explore how faster r-cnn uses a region proposal network on feature maps with anchor boxes to deliver high accuracy, about 25x faster than original r-cnn but not real-time.
This course is about the fundamental concept of image processing, focusing on face detection and object detection. These topics are getting very hot nowadays because these learning algorithms can be used in several fields from software engineering to crime investigation. Self-driving cars (for example lane detection approaches) relies heavily on computer vision.
With the advent of deep learning and graphical processing units (GPUs) in the past decade it's become possible to run these algorithms even in real-time videos. So what are you going to learn in this course?
Section 1 - Image Processing Fundamentals:
computer vision theory
what are pixel intensity values
convolution and kernels (filters)
blur kernel
sharpen kernel
edge detection in computer vision (edge detection kernel)
Section 2 - Serf-Driving Cars and Lane Detection
how to use computer vision approaches in lane detection
Canny's algorithm
how to use Hough transform to find lines based on pixel intensities
Section 3 - Face Detection with Viola-Jones Algorithm:
Viola-Jones approach in computer vision
what is sliding-windows approach
detecting faces in images and in videos
Section 4 - Histogram of Oriented Gradients (HOG) Algorithm
how to outperform Viola-Jones algorithm with better approaches
how to detects gradients and edges in an image
constructing histograms of oriented gradients
using support vector machines (SVMs) as underlying machine learning algorithms
Section 5 - Convolution Neural Networks (CNNs) Based Approaches
what is the problem with sliding-windows approach
region proposals and selective search algorithms
region based convolutional neural networks (C-RNNs)
fast C-RNNs
faster C-RNNs
Section 6 - You Only Look Once (YOLO v11) Object Detection Algorithm
what is the YOLO approach?
constructing bounding boxes
how to detect objects in an image with a single look?
intersection of union (IOU) algorithm
how to keep the most relevant bounding box with non-max suppression?
implementation of YOLO11 with images and videos
training YOLO with custom dataset
Section 7 - Single Shot MultiBox Detector (SSD) Object Detection Algorithm SDD
what is the main idea behind SSD algorithm
constructing anchor boxes
VGG16 and MobileNet architectures
implementing SSD with real-time videos
Section 8 - Object Tracking Algorithms
DeepSORT object detection algorithm
ByteTrack algorithm
BoTSORT algorithm
implementation of object tracking
vehicle counting algorithm
We will talk about the theoretical background of face recognition algorithms and object detection in the main then we are going to implement these problems on a step-by-step basis.
Thanks for joining the course, let's get started!