Log in

View Full Version : Open Source Machine Vision?


virtuald
19-06-2009, 22:02
Has anyone looked into alternatives to the NI Vision stuff? This year I didn't look at the camera stuff too much, mostly because (at least as far as I can see for C++) the restrictions on the Vision library don't allow you to run it on your own computer, which makes creating prototypes and debugging at home (where I have the most free time) rather problematic.

I haven't done any serious research into this, but there are a number of projects that have caught my eye so far:


Camellia: http://camellia.sourceforge.net/
OpenCV: http://sourceforge.net/projects/opencvlibrary/

Pat Fairbank
20-06-2009, 05:00
This year I didn't look at the camera stuff too much, mostly because (at least as far as I can see for C++) the restrictions on the Vision library don't allow you to run it on your own computer, which makes creating prototypes and debugging at home (where I have the most free time) rather problematic. Actually, I haven't had any trouble linking against the NIVision library from VC++. It's pretty handy for developing camera code and tweaking parameters on a PC, since it's a lot closer to programming on the robot than using the Vision Assistant is.

I'm currently using the NIVision library to develop a C++ Windows application which grabs frames from the Axis camera, performs whatever vision processing you want on them, and displays the results, to aid in developing camera code for the robot next year.

Greg McKaskle
20-06-2009, 07:35
As Pat mentioned, you have access to both the Windows DLLs and to the VxWorks .out files for vision. Just keep in mind that your PC is likely to have a much more capable and power hungry CPU. As a rule of thumb, I used a 10x multiplier for my development. If something took 10ms on the PC, it would take closer to 100ms for the cRIO PPC.

Greg McKaskle

bear24rw
23-06-2009, 22:30
I've been using openCV at work and its awesome i highly recommend it. Will it even work with the rio though because i believe alot of it is x86 assembler for optimizations. I could be completely wrong. If you get it working on the rio that would be awesome.

virtuald
23-06-2009, 22:35
Yeah, I'm thinking of looking into OpenCV when I get the time to do that. I'm not sure about the optimizations, though it seems that there would be a non-optimized version too...

I'm not particularly happy about the idea of using NI Vision, mostly because if I want to use it for something other than FRC then I can't without paying for it. Granted, I would imagine many of the concepts it uses are consistent across any computer vision product/API, but if theres an open source product that can do the same stuff (generally speaking) I'd rather go with that.

Jared Russell
24-06-2009, 07:53
Note that only x86 is officially supported by OpenCV (that said, I have heard of PPC ports).