Computer Vision: A Classic and Modern Approach

Project Description

Computer Vision is becoming very popular but the buzz seems to be around the deep learning and machine learning aspects of computer vision. But the field has a lot more to offer. Before the advent of powerful processors and deep learning, computer vision used to have very mathematical algorithms to extract any semantic information from an image. We tried to go through some of these algorithms and provide a classical view to computer vision along with the modern view involving Deep Learning. Often the people tend to ignore the mathematics that go into the algorithms that power our daily life. Some of the algorithms we see in this project are used while post-processing the images a mobile phone takes before saving a picture(No wonder why iphone and pixel cameras are able to capture better photos even with a low resolution).

Mentors

  • Shivanshu Tyagi
  • Akshay Gupta

Learning Roadmap

The path we followed to the end:

  • Introduction: An introduction of Computer Vision and some basic Linear Algebra and numpy required for the later parts of the project.
  • Image processing: This portion starts with color spaces and conversions,Image Transformations(rotation, scaling, translation, etc.), then cover filters and kernels for applications like noise removal, blurring and image thresholding and finally conclude with hough transform, Edge detection(Canny Edge Detection) and RANSAC(Random Sample Consensus) algorithm.
  • Object Detection: Next, we see some classical object detection techniques using Histogram of Oriented Gradients(HOG) and Deformable Part Models(DPMs).
  • ML for Vision: Here, we deal with some basic Neural Networks and models like linear Classifiers, Perceptrons, MLP, and talk about convolutions(also covered in image processing part), various Loss Functions, backpropagation algorithm, Gradient Descent(Batch and Stochastic) and their usages in the context of Computer Vision.
  • CNNs: Finally, we saw how does Convolutional Neural Networks work with an example of VGG.
  • Applications: In this part and for final evaluation, mentees were asked to find a problem that they can solve using computer vision algorithms and create a solution.

Note: Implementation of all the algorithms was done in Python with Numpy.

Resources

All the resources we used can be accessed using this link: here