Introduction to Computer Vision


Dear readers, please note that this is the old website of maxEmbedded. The articles are now no longer supported, updated and maintained. Please visit the new website here and search for this post. Alternatively, you can remove .wordpress from the address bar to reach the new location.

Example: If the website address is http://maxEmbedded.wordpress.com/contact/, then removing .wordpress from it will become http://maxEmbedded.com/contact/.

We apologize for the inconvenience. We just want to give you a better viewing and learning experience! Thanks!

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–

Study Room

Study Room as you see it

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.

A Mars Rover (Image Courtesy Wikipedia)

  • 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.
Part Inspection using Computer Vision

Part Inspection using Computer Vision (Image Courtesy twickenham.co.uk)

  • 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.

Traffic Monitoring (Image Courtesy RoboRealm)

  • 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.
Object Tracking (Image Courtesy RI, CMU)

Object Tracking (Image Courtesy RI, CMU)

  • 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? 😉
Motion Sensing (Image Courtesy 3dgamesconsoles.org.uk)

Motion Sensing (Image Courtesy 3dgamesconsoles.org.uk)

  • 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.

Medical Image Processing (Image Courtesy Vanderbilt University)

  • 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.

What now?

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
Advertisements

9 responses to “Introduction to Computer Vision

  1. Interesting Topic..
    I’ll go through it later..
    I used MATLAB for image and video processing in order to control servo motors.
    Looking forward for the next post…

  2. Hello,
    I’ve been working on Image Processing from the last 8 months. May you please clarify me with the differences between computer vision and image processing with suitable examples? I have done projects like ‘Virtual switch’, ‘Virtual robot’, ‘Automatic car moving according to traffic lights’,etc…I’m unable to spot the difference between ImageProcessing and Computer Vision. Please do help me.
    Thank you.

    • Hi Srinivas,

      There is a very thin line demarking Image Processing and Computer Vision. Here is what I found in a resource from Carnegie Mellon University:

      IMAGE PROCESSING
      – Research area within electrical engineering / signal processing
      – Focus on syntax and low-level features
      – It basically converts an image to another image
      [IMG] —> [IMG]

      COMPUTER VISION
      – Research area within computer science / artificial intelligence
      – Focus on semantics, symbolic or geometric description
      – It basically extracts features from an image
      [IMG] —> Faces, People, Chair, Car, etc.

      Thanks for raising this point. I will cover this point in the next tutorial. 🙂

  3. Pingback: Basic Concepts of Computer Vision | maxEmbedded·

We'd love to hear from you!

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s