Computer vision

What is Computer vision!?

“Computer Vision” as the name suggests is a field in computer science that helps computers to have a vision like us humans. For example, when we see any object around us, we can identify that object. Same way, computer science can use various techniques so that, computer’s can identify an object from captured image.

Question : What do you see in the Figure 1 below ?

Apple image in coding classes
Figure 1
Computer vision
Figure 2

You might have some of the following answers, right ?
– It’s fruit
– ‘A’ for Apple!
– It’s an Apple
– It’s a red Apple
– An apple a day keeps doctors away!
– It’s a red Apple with a green leaf, etc

How quickly did you identify this? In hardly a few milliseconds!!
Now, think about it from a computer’s point of view!!

Computer work on electricity. Basically, a computer understands only binary (bi means 2) language !! Digital image files are composed of image data in the form of a grid of pixels, each pixel (the colour depth) has a number of bits to choose its colour.

Figure 2 below shows a simple representation of Computer vision, look at the magnified part of the apple!!

Now, Just imagine how difficult it might be to make a computer understand so many details about the Apple that you could identify earlier !! like : it’s a fruit, it’s red, it’s apple and so on…

Also, think about how did you know so many details about the APPLE!
You might think what a silly question! I eat apples! I know apples!
You know apples, because your mom/dad/teacher/sibling/friend taught you that it’s a fruit called an apple! They showed you an image of the apple! They showed you a real apple! They showed you what a red color looks like and how eating fruits keeps you healthy 😉 etc…

Same way, for a computer to understand, that given image shows an apple, we need to teach the computer that it’s an apple! How can we do that?? By feeding in all this information that tells the computer that the image is an apple.
Now see these images in figure 3. They are all images of APPLE!!! But aren’t they different from one another !!!

Images of Apples
Figure 3. Images of Apples

So, you need to train a computer with lots of information and example images of various types of apple. For example the images above from figure 3. This part of teaching a computer to identify/interpret/understand the visual image (here, example is APPLE image) is called training a computer.

Computers are not naturally intelligent, we humans make them intelligent (term artificial intelligence comes from here!!!). For identifying/ understanding/ interpreting an image of an object Computer Vision uses Image Processing and Artificial intelligence (eg. Artificial Neural Networks).

Do you have any images/pictures on phone/laptop/computer ?
– Have you checked the properties/details of the stored pictures/images ?
– You will see something like this from below figure 4.

Properties of an Image
Figure 4. Properties of an Image

Note: so now you see, how computers store’s information about images! Isn’t that interesting!!!

Now, let us take a look at some of the areas in which Computer Vision is very useful:

  • Object Recognition/Object Detection : Take a look at figure 5.1, where you can see objects are recognized and a frame is outlined around those objects such as Pot, Mug, Phone, Notebook, Laptop. Take a look at figure 5.2, which shows the objects detected with a frame around human, tree, light, dig, car etc.

Object Recognition / Detection can be very useful for face recognition, signature recognition, fingerprint recognition and so on.

Object Recognition/Object Detection
Figure 5.1. Object Recognition/Object Detection
Figure 5.2. Object Recognition/Object Detection
Figure 5.2. Object Recognition/Object Detection

Object Tracking can be tracking various states of some object.

Figure 6. shows object tracking of various states/actions/positions of a girl. For example: position 01 shows she is walking with a bag, position 2 shows she is standing, position 3 shows she is standing and working on the laptop, position 4 shows she is seated on a chair and working on a laptop.

Object tracking systems can be very useful for security personnel for tracking and identifying unattended objects in public places or for finding suspicious activities.

Autonomous/Self Driving Cars: This is one of the most popular fields these days where Computer vision plays a very important role. Figure 7.1 and 7.2 shows us some samples. Computer vision can help the car to plan a path and stay in the lane. Also, CV can help self-driving cars to identify the objects on its way and maintain safe distance and help to drive safely.

Object Tracking
Figure 6. Object Tracking
Figure 7.1. Autonomous/Self Driving Cars
Autonomous/Self Driving Cars
Figure 7.2. Autonomous/Self Driving Cars

Pose Estimation: Figure 8.1 and 8.2 below shows us how CV is useful for pose estimation. Pose estimation can be useful for creating Virtual Reality Environments and simulating various poses.

Human Training: Figure 9 below shows a use of CV for exercise, where computer can show how to exercise and then by using pose estimation of human, it can provide suggestions to correct the pose

Pose Estimation
Figure 8.1. Pose Estimation
Pose Estimation
Figure 8.2. Pose Estimation
Autonomous/Self Driving Cars
Figure 9. Human Training

What is the best way to learn Computer Vision in Elementary School ?

Learning computer language and coding is one way to participate in the growing Computer Vision economy and witnessing the revolution first hand. I excelled in the coding space through mentors and coaches in Techmentry. There are also blogs for Introduction to Machine Learning and Future of Robotics published by Techmentry.

To learn more about impact of learning coding at a young age, book a free session or webinar here.

About The Author : Anuja Nagare is a graduate from The University of Georgia with Masters in Computer Science. She has been Professor at the University of Mumbai and tought Bachelors in IT Engineering program.

She is currently working with Fedex Services as a Full Stack Developer and Cloud Machine Learning Engineer. She is a Techmentry Alumni and is a volunteer and mentor to Techmentry students.