Sunday, May 4, 2008

Machine Vision & Implementation

What is 'Machine Vision'?

Humans beings greatly require perception in order to effectively interact with their environment. The ability to percieve and process information within our visinity is what gives us humans an edge - inteligence, power, or dominion - over other animals or creations. We use our sensory organs - the eyes, nose, ears, tongue and skin - to collect information from our surroundings. These information generate some sort of chemical reactions which are sent through the nervous systems to the brain. The brain will then process the information and send a reaction to the point of detection.

To understand the above paragraph well, lets take a look at an example; the human vision which concerns us the most as far as this project is concerned. An engineering walking around a parts shop, where he's gone to buy components for a robot he's working on, sees - with his 'eyes' - a particular part he's in search of. His 'eyes' sends this picture to his brain for processing through his nervous system. As soon as the brain processes this information, it then sends a reaction to the engineer saying for instance "check the price tag or pick up the component for payment". These are very important to us but they happen so fast that most of us barely take time to notice.

Just as humans need their vision system, and other sensory organs, so do most modern most machines. As technology advance from day to day, we continously see the need to introduce some devices that mimic how humans interact with their environment. An example of this is the use of cameras other photosensors to give a machine the ability to see. This is where the topic Machine Vision somes in.

Machine Vision is that aspect of mechatronics systems design and implementation that deals with coming up with a system that allows a machine to see. Examples of these situations are seen on simple 'pick & place' robots, robot heads and mostly situations where objects or patterns need be recognised or differentiated.

Machine vision is a broad topic as it requires certain knowledge to be implemented. To introduce vision on a machine, there are a few steps that need to be taken to succeed. First we need to know what object(s) we need to recognise. Then we decide the best vision system that is suitable for the problem at hand and where to mount the system for maxinum performance. After the steps above are completed, we can now come up with how to interface the vision system with the machine. In most cases, this requires some sort of programming using one of the numerous software - e.g. Visual Basics, C, C++, Java, etc. - available to us today.

As my project proceeds and I continue to gather information, I intend to write more about my findings as far as 'Machine Vision and Implementation' is concerned. I will talk more about the importance of this topic and how to implement it on some machine platforms. I will also be talking about how to use vision to control a system or how to control a system - say from the internet which of course is the aim of this project - based on what it sees.

No comments: