This repository contains all the assignments done as part of CSE527 - Computer Vision class done under Professor Roy Shilkrot. Below is the summary of tasks in each assignment.
Write an OpenCV program to do the following things:
- Read an image from a file and display it to the screen
- Add to, subtract from, multiply or divide each pixel with a scalar, display the result.
- Resize the image uniformly by ½
- Perform Histogram Equalization on the given input image.
- Perform Low-Pass, High-Pass and Deconvolution on the given input image.
- Perform Laplacian Blending on the two input images (blend them together).
Your goal is to create 2 panoramas:
- Using homographies and perspective warping on a common plane (3 images).
- Using cylindrical warping (many images).
Your goal is to:
- Detect the face in the first frame of the movie
- Using pre-trained Viola-Jones detector
- Track the face throughout the movie using:
- CAMShift
- Particle Filter
- Face detector + Kalman Filter (always run the kf.predict(), and run kf.correct() when you get a new face detection
Bonus (20pt): Face Detector + Optical Flow tracker (use the OF tracker whenever the face detector fails).
NOTE: I have implemented Optical Flow filter but haven't checked failure of face detection. Lost 3 points in grading based on RMSE. Score = (1 - your_RMSD / 100) * maximum_score
Your goal is to perform semi-automatic binary segmentation based on SLIC superpixels and graph-cuts:
Your goal is to reconstruct a scene from multiple structured light scannings of it.
Your goal is to
- Train an MNIST CNN classifier on just the digits: 1, 4, 5 and 9
- Use your trained model’s weights on the lower 4 layers to train a classifier for the rest of MNIST (excluding 1,4,5 and 9)
- Try to run as few epochs as possible to get a good classification (> 99% on test)
- Try a session with freezing the lower layers weights, and also a session of just fine-tuning the weights.