Introduction to Computer Vision
This post will give you an insight into the automation, artificial intelligence and computer vision, their real world examples, their implementation, exceptions, applications and future prospects. Enjoy the post, and do post your comments after you read! :)
And here we begin…
We humans have a sense of vision, due to which we can see and perceive different objects, we can traverse and manoeuvre an area, we can perform different tasks, we can take decisions, and what not?! This makes us intelligent, autonomous and self-controlled. But let’s take a machine, or a robot. They are man-made and not living things, and hence do not have a sense of vision in them, unless we impart it to them.
Inanimate objects likes machines and robots are made artificially, some are manually controlled, whereas some are autonomous and take decisions on their own. Unlike we human beings, who have a very complex neural network in our brain which gives us complex decision making power, robots are completely blank! Obviously, if the robots are made by us, we should be the ones to impart intelligence into them! And this is what we call as Artificial Intelligence, commonly known as AI.
Let us take an example to illustrate this. You open the door and enter your study room. What do you see? Something like this–
Don’t be astonished! It isn’t my room, just Googled for it and got it from here. ;) Okay, so lets say when you enter your study room, you see a view something like the one shown above. You wish to go and sit on the stool next to the standing man. What would you do? Simple, isn’t it? You can either go around the center table and reach there, or you can go around the sofa to reach there as well! And chances are that you will reach there without bumping into any of the other objects as well! ;)
Now assume that you have a personal robot, and you ask it to go near the stool next to the man. What will happen? The first question is, how will the robot see? Yes, using a camera is the most obvious answer, but there are also other ways as well like laser/IR/ultrasonic sensors, etc (which we will discuss a little later). Lets say a camera is mounted on the robot. But the robot won’t see the image above as it is. All the robot perceives is some random voltage levels, and an array of binary or decimal data. It will have absolutely no idea as to which is the table, which is the sofa, who is the man, where is the girl, etc. Its we, the intelligent humans, who program the robot in such a way that identifies different objects. And once the objects are identified, it doesn’t mean that it can now plan the path to the stool on its own. Its again we, the humans, who took the pain to make such a robot, have to program it into the robot’s brain. Now what’s a robot’s brain and where is it? Well, its usually a microprocessor which can be mounted on the robot, or can be located at some remote location as well (more details on this in a later post).
So, what we see over here is that, if we need to make machines capable of taking decisions themselves, we need to program them that way, and try avoiding as many exceptions as possible. Exception is a condition which we humans, while programming the robot, haven’t thought of. For example, there is an indicator on your robot which glows red when you bring in your left hand in front of it, and it glows blue when you bring your right hand in front of it. This system will work totally fine until you show both your hands in front of it, which is an exception. The more we try to avoid the exceptions, the more complex our control algorithm becomes, and more effective as well. This is what artificial intelligence it.
Computer Vision is, unsurprisingly, the way and method by which we impart vision capabilities to machines and robots. As per Wikipedia, Computer vision is a field that includes methods for acquiring, processing, analyzing, and understanding images and, in general, high-dimensional data from the real world in order to produce numerical or symbolic information, e.g., in the forms of decisions It is also referred to using other names such as Machine Vision, Image Processing, etc but the terms have a slightly different meaning (which we are not concerned with right now). And once you master computer vision, you master artificial intelligence as well, because most of the concept remains the same, and where there is vision, there is intelligence, and automation is possible as well.
Applications and Future Prospects
Now that you are familiar with the concept of computer vision, it is indeed a good question to ask, why computer vision? Well, there are several applications of computer vision which makes it a good thing to know and master. And the best part is that, since this is an emerging field, it has a bright future. More and more applications will be requiring computer vision in the upcoming generations.
- Have you come across Curiosity? By Curiosity, I mean the Curiosity rover, a car-sized robotic rover exploring the surface of Mars as part of NASA’s Mars Science Laboratory mission. It used a camera for navigation purposes. Not only in rovers, but computer vision can be used for navigation of unmanned vehicles, submarines, etc.
- In industries, nowadays, computer vision based part inspection is becoming more and more popular, since it reduces human influence, makes the overall process faster, more efficient and less error prone.
- Computer Vision can also be used to detect something like counting number of people, traffic monitoring, detecting unclaimed objects in public places by means of CCTV, face detection, text detection, etc.
- Not only detection, but it can also track the detected object, like a robot following an object, etc. One project which I recently came across in which an airship was implemented with computer vision to detect specific objects on ground and to track them from overhead, which was desirable in places where land traversal is very difficult, e.g. hilltops.
- It can be used to interact with the user. Best examples are gesture recognition and motion sensing. You do remember playing on XBOX with Kinect, right? ;)
- In industries, it is also used to automate a process, like in car manufacturing, fixing of the windshield is automated using machine vision.
- Another emerging application of computer vision is in the field of Medicine. Medical Image Processing techniques have been enhanced a lot these days like MRI Imaging, etc.
- Computer Vision is also used in Biometrics, like identifying fingerprints, iris, face recognition, etc.
- It is also used for information security like watermarking, steganography, etc.
- Apart from all these applications, there are lots of other applications as well, which I haven’t mentioned here like scene reconstruction, image restoration, robotic control, etc etc. You can Google them out if you want.
Starting this post, I will be discussing various concepts of Computer Vision here on maxEmbedded along with their implementations as well. We will discuss about it slowly and steadily over a series of posts, which will be coming up here soon! In the next post, we will discuss about some of the basic concepts related to image processing and computer vision like pixels, resolution, aspect ratio, depth and image representation. So subscribe to my blog and/or grab the RSS Feeds to stay updated! You surely don’t wanna miss out on something interesting!
And don’t forget to share your views below! I would be happy to see them. :)Mayank Prasad VIT University, Vellore, India