Today we're going to talk about a problem, which is really at the heart of robotic vision. Robots are relatively simple machines. If we consider the case of an industrial robot, one that's got six joints, we can control that by simply specifying six velocities or speeds. We specify the speed of each of its motors and the robot can do any kind of action. A wheeled mobile robot, we control by specifying simply two velocities; that's the velocity at which it drives forward and the velocity at which is turns. So we've got a problem because the amount of data that comes out of a camera is of the order of 10's of millions of pixels per second; 10's of millions of numbers per second. But we need only two or six, a very small number, in order to actually control the robot. It's like trying to drink out of a fire hose; massive amount of data coming out of the camera, small amount of data needed to control the robot. So to get around this problem we perform a technique called "Feature Extraction" and what we're trying to do is find the essence of the image; the most important information in the image, we can feed directly to our robot.
A robot can use a camera to capture an image of the world. The image contains millions of pixels, but the value of each pixel is not particularly informative about what’s present in the scene. We need a more concise or ‘higher level’ way to represent the information, and this is what we refer to as image features.
This content assumes an understanding of high school level mathematics; for example, trigonometry, algebra, calculus, physics (optics) and experience with MATLAB command line and programming, for example workspace, variables, arrays, types, functions and classes.