Introduction to Computer Vision

AI in Computer Vision

With the latest developments in Big data, we are not short of the data or infrastructure we need to train an AI model. Now, algorithmic developments is pushing the testing errors of intelligent systems to converge to Bayes optimal error. This can soon take AI beyond human performance in most areas - including the natural perception. Powerful concepts like Transfer Learning and open source contributions like TensorFlow allow us to take this process much faster.
With these developments, computer vision has taken a great momentum. The dream applications like face recognition are now a reality. Computer vision deals with algorithms and applications of concepts of Machine Learning to processing images. That may not always be prediction. Computer vision algorithms are also used to produce art works. Of course, CV is a major component of the AI dream project - the driverless car.
Here is an overview of some important algorithmic concepts used in computer vision

Edge Detection

This is the fundamental concept of computer vision and object recognition. Any image is defined by the edges in the image. The first thing that catches our eyes are the edges. Objects can be detected based on the edges in the image. Thus, most of computer vision starts with edge detection followed by identification of objects defined by those edges.
Edge detection by itself does not need any machine learning. One can develop algorithms to do the job. Any point where the RGB value changes drastically can be defined as an edge. Thus, we just need to scan across the image looking for points where the change in RGB values is above a threshold. But the job gets more and more difficult as the colors fluctuate and makes this threshold more and more difficult. At times, the fluctuation of colors within an object is a lot more than on the edges. Yet, our mind can identify the edges without a problem. We have to come back to neural networks in order to solve such problems.

Convolutional Neural Networks

CNN or Convolutional Neural Network is one of the fundamental concepts in computer vision. CNN offer a performance much better than ordinary Neural Networks, at a much lower computational cost.
CNN provides a basic concept that adds a major value to the work. But it still does not solve the whole problem. With a CNN, we have a vast range of possibilities for creating a neural network. Very few of them actually work! Identifying an architecture that actually works is not a simple tasks. After extensive research, people have come up with few major CNN Architectures that are known to give good results for different problems.