Cool C++/OpenCV Vision System

Hey I wanted to share our team’s 2013 vision system, I think its pretty cool and unique.

Full source code here:

and an explanation on my website:

Good Luck in your 2013 season!

Whoa, neural networks? You must have had to spend a while training them to get anything useful.

Wow very nice. Training can be a pain in the butt so we tried to avoid it this year. Why did you decide to go with cpp instead of Python or another scripting language?

Last year we did cpp but decided for the ease we would switch to python, and let me tell you, it is a whole new world.

The training process is actually pretty straight forward and quick (but then again I work with machine learning quite a bit).

I actually wanted to go with python originally but I got held up on the NetworkTables so I went this route using java to call cpp. The actual overall framework (called cppVision on my site) is pretty much obsolete now because OpenCV is releasing up to date official java bindings. - Also our students were familiar with c++ and there isn’t a whole lot of difference between using OpenCV on python and c++ in my opinion.

I’d love to see a lot more OpenCV in FRC so hopefully next season we have a few more options for using the NetworkTables.

there are two threads on here about python netwlrt tables. One is an opencv thread started by myself with a link to my teams github which contains our implementation of the network tables according to FIRST’S protocol. the second thread has the link to just the network tables class.

Yeah! I briefly read through that thread last week but we were already finished this years vision system, nice work!

Is there any way to use this with a Java robot? Containment within a SmartDashboard plugin maybe?

Actually the only way to run this at the moment is using a smartdashboard plugin.

Here is the one I wrote:

My original goal was to make a stand-alone desktop program for the vision system (like what Team 3574 has done!) but I changed to use the Smartdashboard to use the FRC NetworkTables implementation.