Skip to content

A compilation of projects exploring CV and ML in Hybrid Images, Feature Tracking, Object Recognition, Image Stitching, Structure from Motion, Image Classification, Semantic Segmentation, and Visual Odometry.

License

Notifications You must be signed in to change notification settings

amashry/CV-ML-Projects

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

39 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

computer-vision-machine-learning-projects

This repository is a robust showcase of applications and projects in Computer Vision and Machine Learning, which have been part of ML/CV graduate courses that I took at University of Maryland (UMD).

Repository Overview

This repository documents a series of image processing, computer vision and machine learning tasks, encapsulated within mini-projects and final projects. Projects implemented within the computer vision class has been labeled with CV in the title. Projects that has been implemented while taking the graduate Machine Learning class has been also labeled with ML in the title.

Computer Vision Projects

1. CV Mini Projects

Project 1 - Hybrid and Pyramid Images

The first homework introduces two image processing techniques: Hybrid Image creation and Pyramid Image construction.

  • Hybrid Image: Combines two images by applying low-pass filtering to one and high-pass filtering to the other. The hybrid image appears to be one picture when viewed up close and another when viewed from afar. This task leverages several Python libraries such as cv2, numpy, pandas, skimage, PIL, matplotlib, and scipy.
  • Pyramid Image: Constructs Gaussian and Laplacian pyramids from an image. Each level of the pyramid has half the resolution of its predecessor. The pyramids are then visualized both as intensity images and as the log magnitude of their Fast Fourier Transform (FFT).

Click here to view implementation and more details

Project 2: Keypoint Selection and Feature Tracking

The second homework deals with tracking features in an image sequence using Harris corner detection for keypoint selection and the Kanade-Lucas-Tomasi (KLT) algorithm for feature tracking.

Click here to view implementation and more details

Project 3: Shape Alignment and Object Instance Recognition

The third homework assignment focuses on the alignment of two sets of points using the Iterative Closest Point (ICP) algorithm and object instance recognition using the Lowe's Scale Invariant Feature Transform (SIFT) algorithm.

Click here to view implementation and more details

Project 4: Epipolar Geometry and Image Stitching

In this assignment, the focus is on epipolar geometry and the application of the Normalized 8-point algorithm with RANSAC to estimate the Fundamental Matrix. It also involves image stitching, a technique to combine multiple images with overlapping fields of view to create a wide-angle panorama.

Click here to view implementation and more details

Project 5: Affine Structure from Motion

The fifth project explores the topic of Structure from Motion (SfM), a technique for estimating 3D structures from 2D image sequences. The task was to recover a 3D point cloud from an image sequence using the Affine Structure from Motion algorithm.

Click here to view implementation and more details

Project 6: Image Classification and Semantic Segmentation

The sixth project is divided into two parts:

  • Part 1: Involves training an image classifier using the CIFAR-10 dataset and the PyTorch library. The classifier is trained to correctly identify images across 10 different classes.

  • Part 2: Implements a semantic segmentation model that assigns a class to each pixel in an image. This part introduces the concepts of semantic segmentation in computer vision.

Click here to view implementation and more details

2. CV Final Project: Visual Odometry

The final project focuses on implementing visual odometry to reconstruct the 3D trajectory of a camera mounted on a vehicle. The project employs various computer vision techniques, such as keypoint detection, fundamental and essential matrix estimation, and decomposition into translation and rotation parameters. Two distinct approaches are implemented: one that leverages built-in functions provided by OpenCV and a custom approach not relying on openCV built-in functions. The final product is a 3D plot visualizing the trajectory of the camera.

Undistorted Sequence GIF Undistorted Sequence GIF Camera 2D Trajectory Camera 3D Trajectory

Click here to view implementation and more details


Machine Learning Projects

Project 1 - Interactive Visualization of California Housing Data

This project aims to provide an interactive visualization of the California Housing Data, focusing primarily on plotting the data on a map according to the longitude and latitude, with house prices reflected visually. The visualization further allows users to filter data based on various housing features to better understand the distribution.

Click here to view implementation and more details

Plotly Express Interactive Plot

Project 2 - SGD Extensions and Variants Implementation & Animation

The project details the implementation of three optimization techniques: Vanilla SGD, Momentum-based SGD, and Adagrad. They're tested on the Rosenbrock and Styblinski-Tang functions, with their performances visualized through animations showing solution paths on function contours.

Click here to view implementation and more details

Rosenbrock Animation

Styblinski_tang Animation

Project3 - Learning Robotic Control for the Double Pendulum by using Double DQN with Prioritized Experience Replay

The goal of this project was to learn a control policy to solve the Acrobot-v1 task, a classic control problem where a two-link robot with pivoting joints must swing its end to a specific location. For this, we implemented a Double DQN with prioritized experience replay and compared its performance to a standard DQN with uniform experience replay.

Click here to view implementation and more details

About

A compilation of projects exploring CV and ML in Hybrid Images, Feature Tracking, Object Recognition, Image Stitching, Structure from Motion, Image Classification, Semantic Segmentation, and Visual Odometry.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published