Author
Topic: Machine Vision : Getting Started (Read 6021 times)

My name is Ian and I am new to the forums, although I always have been interested looking through the website.

I am currently wanting to find out more about computer vision and am very excited about the new tutorials John has put up on his site. I have also looked through some Google pages, but often find that the information I get is somewhat beyond a beginner, and some is not comprehensive at all.

Some of it is also lacking in how it would be used in a practical application.

I am going to be doing a 4th year project which is involved with a firewire camera above a table with some robots on, and this, by looking down on the robots, will set up a control when the robots are not doing what they are supposed to.

I was thinking along the lines of Lego Mindstorms NXT, LeJOS and the Java Media Framework, but am still open as to what to do. Maybe a bluetooth or Zigbee module on a microcontroller driven robot would be better in a lot of ways?

I was just wondering if anyone knew a good way to get started with the concept, and maybe even a way I could get going with a simple application that I could build on?

Will be interested to see your replies!

Logged

"The truth is, you can't hide from the truth, cos the truth is all there is" - Handsome Boy Modeling School

I'm just getting started, too, and I can't advise you on hardware choices yet.† Others on this forum will probably be able to do that. I'm using a couple of cheap webcams and my own apps.

Here are some preliminary thoughts about the software functions.† I'll stick with the 2D vision, because the 3D stuff gets deep quickly.† Let me know if any of this was useful.

One aspect of the task you mentioned is that it can make use of a template.† It's like that old addage, "If you want to recognize a counterfeit, you need to know what the real thing looks like."

For instance, if you want to handle the situation in which a robot gets too close to the edge of the table, you can do it by defining a "no robots land" at the edges.† Compare just that portion of the video with the same portion of a still shot of the table and look for significant differences that persist from one frame to the next.† You will have to ignore bad frames, columns, rows and pixels because technology isn't perfect.† You may also run into issues with "glare and shadow intrusion" from people entering the room and whatnot.

You can add logic to refresh the still shot periodically, if you want to increase the adaptability of the system.† That can lead to the next level of analytical sophistication.† An example where this might be useful is if the light level of the room slowly changes over the course of the day.

If your table has surface details, like a pattern, you might have to use a mathematical process to deal with camera vibration.† Assuming that the features of the pattern are fine enough, you can monitor the average color of a group of pixels.† If the contrast of the pattern is not very high, then you can decrease the resolution of the pixel attributes in order to zero out the difference.† It's a good idea to make your robots a different color than your table.

Will you have some sort of symbol on top of your robots that can be easily isolated and used to detect the orientation and identity of each of them?

We are working on hobby robotics project.Our system is Java-based.See: www.RoboHobby.com

System uses several ways how to get images:1) from cheap web camera2) from BlueTooth cell phone (Siemens S75)

Small robot, with Siemens S75 on the board is shopping around in the room, near PC ( PC should be with BlueTooth adapter).With Java/SWING program you can see on PC screen what the robot see on the road and also you can drive that robot.Also there is Java-based brain (our Open Source project on www.SourceForge.org - see http://sourceforge.net/projects/robohobbyplugin/)If you modify the code of this Java brain, you can implement your own algorithm.

Even if donít have Siemens S75, you can use our soft, using Web camera.We will be happy to help you with Java programming. We like this language very much, but there are some problems, when you are trying to use Java for robotics.

The Java system sounds really cool, although I'm not too sure about using other peoples' systems for a university project. I'd rather 'invent the wheel', since, this is how i'm going to learn the most.