Skip to content

nihar0602/CSE-573-Computer-Vision-and-Image-Processing--Projects

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

37 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CSE 573: Computer Vision and Image Processing

ub_logo.jpg         ub_log.jpg

Course offered by Professor David Doermann in Spring 2020

bar.jpg

Problem: Edge Detection :The goal of this task is to experiment with two commonly used edge detection operator, i.e.,Prewitt operator and Sobel operator.Specifically, the task is to detect edges in a given image. Do not use any API provided by opencv and numpy in the code except(“np.sqrt()”, “np.zeros()”, “np.ones()”, “np.multiply()”, “np.divide()”, “cv2.imread()”,“cv2.imshow()”, “cv2.imwrite()”, and “cv2.resize()”)

Approach:

  • The project applied Sobel and Prewitt filters to detect edges in a given image
  • Implemented common image processing tasks :
    • Image Padding
    • Applied Convolution and Correlation
    • All Images were normalized before implementing convolution and correlation.

Sample input and output:

Results:

Edge detection using Prewitt filter:

result 1.png

Edge detection using Sobel filter:

result 2.png

                                                                                      

bar.jpg

Problem: Character Detection: The goal of this task is to experiment with template matching algorithms. Specifically, the task is to find a specific character (or set of characters) in a given image.

Approach:

  • The project applied Template matching algorithm to detect a specific character (ex. a/b/c) in a given image
  • Created a templete each character "a", "b" and "c".
  • Implemented NCC (Normalized Cross Correlation) for matching the template with the given image.

bar.jpg

Problem: Image Stitching: Create a panoramic image from at most 5 images. The goal of this project is to experiment with image stitching methods. Given a set of photos, your program should be able to stitch them into a panoramic photo. Overlap of the given images will be at least 20%. Any API provided by OpenCV could be used, except “cv2.findHomography()” and APIs that have “stitch”, “Stitch”, “match” or “Match” in their names, e.g., “cv2.BFMatcher()” and “cv2.Stitcher.create()”.

Approach:

  • Keypoints detection and 128 bit feature vector computation using SIFT descriptor.
  • Created an algorithm that can define the order of the images if given in randomized order.
  • Homography matrix generation using SVD technique.
  • Implemented RANSAC algorithm for finding the best Homography matrix
  • Stitched all images

                                                                                      

Results:

Output image:
panoroma.jpg panoroma.jpg panoroma.jpg

                                                                                      

bar.jpg

Problem: The goal of this project is to implement the Viola-Jones face detection algorithm which is capable of detecting frontal faces in real time and is regarded as a milestone in the development of computer vision. Given a face detection dataset composed of thousands of images, the goal is to train a face detector using the images in the dataset. The trained detector should be able to locate all the faces in any image coming from the same distribution as the images in the dataset. Any APIs provided by OpenCV that have “cascade”, “Cascade”, “haar” or “Haar” functionality can not be used. Using any APIs that implement part of Viola-Jones algorithm directly, e.g., an API that computes integral image, will result in a deduction of 10% − 100% of the maximum possible points of this project

Approach:

  • Used FDDB dataset to train the model with 'face images and 'non-face images'.
  • Implemented integral image for the feature extraction.
  • Implemented Adaboost algorithm to extract best features that can detect faces.
  • Trained the data set using Google Cloud Platform.
  • An attempt on CASCADE algorithm was made to reject non-face region quickly

                                                                                      Project Report

Output:

                                                                                     

About

The projects are part of the graduate-level course CSE-573 : Computer Vision and Image Processing offered in Spring 2020 at University at Buffalo by professor David Doerman (https://cse.buffalo.edu/~doermann/)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages