Quote:
Originally Posted by Jerry Ballard
Last year we were sucessful using cheap Logitech webcams (C110 or C210) that you can find at a bigbox store for about $20. Since they are cheap and have been available for a long time, the Linux device drivers for these are fairly robust.
|
That is one reason why I am looking at Logitech. They are dirt cheap and work, a value for their price.
Quote:
Originally Posted by Patrick Shainin
Here's a Python 'tutorial' I put together to help our team better understand the algorithm described in the FIRST vision processing doc @ http://wpilib.screenstepslive.com/s/3120/m/8731, and the similar team 341 posted vision code.
Maybe you will find it helpful if you aren't past this point yet.
https://github.com/LiftingSea/frc_vision_tutorial
It also leveraged some of the OpenCV tutorials to open multiple windows for the various stages of the processing, and provide some knobs for experimenting with tuning the algorithm in real time.
I started writing it in C++ using just the open source gcc compiler, and, as mentioned in another post here, decided to take advantage of the interactive and friendlier Python environment.
The 'tutorial' involves running the program and seeing how the tuning knobs affect the targeting results, as well as some suggested 'next steps' for students to take in the comments at the beginning of the file, to facilitate learning by example.
|
I have a working Windows install with C++. I also have a working Python install with Ubuntu/Linux. I don't know if that link works. It takes me to the index page of the Screenstepslive.
Quote:
Originally Posted by RyanCahoon
The OpenCV documentation is actually rather good, and I found the example code to be pretty informative when I was learning OpenCV. I learn best by example, though, so YMMV. If you want a more edited, traditional book, there are a bunch listed here; you're probably most likely to find the O'Reilly OpenCV book (the first one listed, with the butterfly).
Once you've gone through a few examples, I'd suggest trying to solve one of the past years' challenges (or you can wait until Saturday  ). OpenCV is a large enough library that you'll get lost if you try to learn the entire thing without some sort of specific challenge to direct your efforts.
If you have access to the game elements from those years, that would obviously be the best; else I'd suggest looking for pictures on Chief Delphi (ex: Jared from 341 posted some example camera captures from the 2012 game) or on-robot camera footage off of YouTube ( keepvid.com/). Just try applying some of the filters and see what happens. I'd recommend starting with smoothing operators, color-space conversions, and thresholds. From there, you can move onto contour analysis and simple shape detection using Hough transforms.
When it comes to webcams, some are slightly better than others, but in my experience they're all about the same. The real advantage to having another webcam besides the one built into your laptop is that you can easily aim it at things without having to contort yourself and your laptop into weird poses.
|
I like the OpenCV documentation because it is detailed, easy to follow and is through/complete. However, it is so detailed that I have no clue where to start. I have been chatting with John (antimatter_john) and via VNC, I showed him how I got OpenCV installed and how to install python-opencv in Ubuntu (within vBox).
It also comes down to that me (an many other novices) don't know what to learn and what to skip. So far, the only thing I've been able to accomplish is finding a certain color (which didn't work too well because I didn't have a colored object to track). I looked in our library's online catalog and can say that our library is missing basic AI books. The only thing I could find were books on how to hack and use the Kinect, not exactly what I am looking for

.
I will probably dissect the 341 code and rewrite it in C.
Anyways, so I have an OpenCV C++ installation. How do I install the Java bindings? With 5GB of HDD storage available, I don't want to install a compiler to build it. Also, how well is it documented? Is it as good as the C++ version of OpenCV?
Another thing I wonder about is whether to learn C, C++, Java or Python or maybe even something else.
One thing that I dislike about C is that the program will compile correctly. However, when I launch it, it will spit out just tons of fatal errors. How can I set the IDE (Visual Studio currently) to tell me that there are errors in the code? I have actually had my system hang because of a simple typo!