Return to MODULE PAGE
Computer Programs that Can See
David Leech Anderson: Author
There are computer programs that can recognize the shape of objects. If you wanted to build a robot that can 'see' and distinguish one object from another you would need to write a program that accomplished that task.
Chain codes are a simple kind of program that can identify the shape of some objects and could then be used to 'recognize' the same shape again. You will now learn about chain codes -- not only what they are, but how to write them.
You have now learned what chain codes are and how to write them. But what does any of this have to do with understanding vision?
Remember, a chain code gives us a simple example of an algorithm that can be used to represent the size and shape of an object. Since a digital computer can perform the operations of any algorithm, it can therefore implement a chain code. So it is possible for a machine (a computer) to represent the shape and size of an object in the form of a chain code.
For a moment, let's imagine that the human brain is able to remember the shape of particular objects because somewhere running on the brain is a chain-code-creating program that is part of the visual system. Let's pretend that every time you see an object, your brain generates a chain code which creates a symbolic representation of the basic shape and size of the object. Next, let's assume, that you have an information-storage-system (your memory) where chain codes are kept for future use. Then, when someone asks you to draw the floorplans for the house or apartment where you were raised, your brain (quite without your being aware of it) accesses the chain code and gives your fingers the ability to draw the floorplan).
Now please be aware that this is a fairytale. No one believes that your brain uses chaincodes to identify the shape and size of objects. (It isn't a plausible idea for many reasons. For example, there is experimental evidence that we take in the shape of objects all-at-once and not in little chunks, one at a time, the way chain codes do.) While chain codes may be too simplistic for the job, there are, nonetheless, many researchers who believe that the symbol-processing model of the mind (on analogy with the digital computer) correctly captures the fundamental nature of much of the cognitive activity of human beings and other animals. And chain codes is a symbol-processing method of representing the size and shape of objects.
Remember how a digital computer works (Classical vs. Non-classical Computers). Information is coded in discrete symbols. In the "red ball computer", the balls themselves were the symbols that carried the information. In a common digital computer, it is the on-off switches in the hardware that are the bottom-level symbols that carry the information. However, those on-off switches are ultimately made to stand for numbers (0 or 1) and collections of numbers come to represent letters of the alphabet, words or even shapes (as in the case of chain codes). Once there are symbols within the system, each with its own specific content, then those symbols can be manipulated in various ways. For example, the Iris.1 robot can manipulate English words so that it performs (what at least appears to be) a rational inference (see a Quicktime video of Iris). For example, if you told Iris the following:
All philosophers are cool. You are a philosopher.
Iris would then reason as follow:
1. All philosophers are cool.
2. I am a philosopher.
3. Therefore, I am cool.
If a child performs this way, we say that the child is rational. The reason a computer program can also make a rational inference (or at least "appear" to do so) is that the structure of the reasoning can be captured in an algorithm--a specific rule that can be determinately followed in a limited amount of time. Iris manipulates the words and sentences that she is told according to rules. The "reasoning" that Iris uses is as follows:
1a. All A's are B.
2a. X is an A.
3a. Therefore, X is a B.
The algorithm, or rule, is more precisely this: Plug in any properties for A and B and any object for, X. If the first two statements come out true, then 3. will also be true. Iris (the robot in the video, above) is programmed to "believe" the conclusion of any piece of reasoning that has this structure. So if you tell Iris that 1. and 2. are true (Iris believes whatever you tell her), Iris will make the inference to 3 and believe it as well.
The symbol-processing hypothesis is the theory that much of human thought and reasoning is accomplished by way of our ability (in particular our brain's ability) to manipulate various content-bearing symbols. According to this theory, our mental states -- like our states of believing, hoping, fearing, etc. -- consist in our being related to these "internal symbols" in the right way. Likewise, whether or not we are rational in the inferences we make, will be determined by whether the rules that we follow are the right rules (for example, the rule that Iris uses above is considered to be a logical rule of inference).
Let's return, then, to chain codes. Each of the symbols used in a chain code, whether letters (N, NW, W, SW, S, SE, E, NE) or numbers (0, 1, 2, 3, etc.) carries a specific content or piece of information about the object it describes. This is similar to the way that each of the individual words that Iris the robot manipulates, "philosopher", "cool" etc. refers to a specific property and thus has its own specifiable content. One of the main questions we will explore is this:
Is the human brain a symbol-processing computer?To answer that question, we need to learn more about the brain. We can't decide what kind of a computer it is -- or even if it is a computer -- without getting our hands wet (figuratively speaking) and learning a bit about the brain's biology. The next step is to learn something about how the human brain processes information. Explore the way that neurons in the brain function:
Neurons, Action Potentials, Synapses, and Neurotransmission
When you have completed that study, you can then return to your consideration of artificial intelligence programs. Chain code programs are classical AI programs. In contrast to classical AI, there are artificial neural nets that attempt to more closely model the operations of real biological neurons. Artificial neural nets are a kind of "connectionist network." Learn about the nature of such networks:
Connectionism: An Introduction
And when you have completed that material, you can see how an artificial connectionist network can be put to work recognizing objects. The GNNV program you will view here functions very differently from chain codes.