This repository contains a collection of Jupyter notebooks focused on various aspects of computer vision. Each notebook covers different techniques and methodologies used in the field, providing both theoretical insights and practical implementations.
- Intro to Computer Vision
- Operation Types
- Edge Detection and Morphological Operations
- Contours and Detection
- Harris and SIFT
- Bag of Visual Words (BOW)
- YOLO
- Generative Adversarial Networks (GANs)
- Face Detection
- Semantic Segmentation
- Video Tracking
This notebook covers foundational concepts in computer vision, including:
- Review Linear Algebra and Vector Calculus: Essential mathematical concepts for understanding image processing.
- Basic Image Processing: Techniques for reading/writing images from/to files and displaying them.
- Skin Detection: Methods for detecting skin regions in images.
- Red Eye Detection: Techniques for identifying and correcting red-eye effects in photographs.
This notebook explores different types of image operations:
- Point Operations: Operations that affect individual pixels.
- Neighborhood Operations: Operations that consider the surrounding pixels.
- Geometric Operations: Transformations that change the geometry of images.
This notebook focuses on advanced image processing techniques:
- Logical Operations: Basic operations like AND, OR, NOT applied to images.
- Histograms: Analyzing the distribution of pixel intensities.
- Thresholding: Techniques for segmenting images based on intensity values.
- Morphological Operations: Operations that process images based on their shapes.
- Gradients: Techniques for detecting changes in intensity.
- Edge Detection: Methods for identifying edges within images.
This notebook covers techniques for detecting shapes and objects in images:
- Contours: Finding and analyzing the outlines of shapes.
- Connected Components Labeling: Identifying connected regions in binary images.
- Object Detection: Techniques for detecting specific objects within images.
- Template Matching: Finding parts of an image that match a template.
- HOG (Histogram of Oriented Gradients): A feature descriptor used for object detection.
- SVM (Support Vector Machine): A classification technique used in conjunction with HOG.
- Image Pyramids: Techniques for multi-scale image processing.
This notebook focuses on feature detection and description:
- Descriptors: Techniques for describing image features.
- Detectors: Methods for detecting key points in images, including Harris corner detection.
- Panoramas with SIFT: Using SIFT (Scale-Invariant Feature Transform) for stitching images together.
This notebook introduces the concept of Bag of Visual Words:
- Bag of Visual Words: A method for representing images based on visual features.
- K-means Clustering: A clustering technique used to create visual words.
This notebook covers object detection using the YOLO (You Only Look Once) framework:
- Object Detection with YOLO: Techniques for real-time object detection in images and videos.
This notebook explores GANs:
- Working with MNIST: Using GANs to generate handwritten digits from the MNIST dataset.
This notebook focuses on techniques for detecting faces in images:
- Viola-Jones: A popular algorithm for face detection.
- Deep Learning Approaches: Modern techniques for face detection using deep learning.
This notebook covers semantic segmentation using two models:
- FCN: Fully Convolutional Network with ResNet101 as a backbone
- Deelabv3: SOTA model from google
This notebook covers object trackign in video:
- Tracking single object: using Opencv based functions
- Tracking multiple objects: via SSD
These notebooks provide a comprehensive introduction to various computer vision techniques and methodologies. They are designed for both beginners and experienced practitioners looking to enhance their understanding of the field.