Log in

View Full Version : 1706 Computer Vision Source Code


faust1706
13-01-2014, 22:16
As someone who has had an uphill battle in the dark with opencv, I figured I should open source some simple, instructional, programs I have written in the past 2 years. I hope this helps.

https://cmastudios.me/owncloud/public.php?service=files&t=a4410ac2a928edef612274f6a3486745

I do apologize but I will not be releasing any previous or current competition code largely due to the satisfaction you get when you figure something out and it works. People would lose that if I just gave them a working code that can easily be adjusted between the years to track whatever needs to be tracked.

Joe Ross
13-01-2014, 22:35
Thanks for posting your examples. Do you have permission to redistribute the ebooks at that site?

faust1706
13-01-2014, 22:36
They were all opensourced, so I assume yes....better safe than sorry, though. Let me check. The Paul dawkins one yes, the opencv ones yes (obviously), the academic paper = yes, all the algorithm books checked out, and the other paper is my sad excuse for an academic paper about the 2012 vision program.

yash101
14-01-2014, 17:58
You are awesome. By the way, is that your website? I love the MineCraft world (http://cmastudios.me/~minecraft/#/326/64/-559/-6/0/0) on there :D.

virtuald
15-01-2014, 12:09
I do apologize but I will not be releasing any previous or current competition code largely due to the satisfaction you get when you figure something out and it works. People would lose that if I just gave them a working code that can easily be adjusted between the years to track whatever needs to be tracked.

I feel a large part of open sourcing software is so that other people can build on it and do even greater things with it than you did. Reinventing the wheel over and over again (in parallel, no less) seems like a waste of all of our times.

I'm glad that the developers of OpenCV don't have that view. :)

faust1706
15-01-2014, 18:13
I feel a large part of open sourcing software is so that other people can build on it and do even greater things with it than you did. Reinventing the wheel over and over again (in parallel, no less) seems like a waste of all of our times.

I'm glad that the developers of OpenCV don't have that view. :)

I agree with that. I am very thankful that the guys contributing to openCV put everything online.

But, FIRST is about learning. If I were to outsource a program of tracking the reflective tape now, a lot of people would take it, put it on a single board computer and run it without really understanding what it does. It's the same principle as the "learning python the hard way" website. It prevents you from copying and pasting. If you write it yourself, you're more likely to remember it.

I do, however, help people with individual problems and describe the technique I used this year and the functions I called. I will be putting more advanced program on our team website eventually, and it will include a program of getting distance to a target.

virtuald
15-01-2014, 18:38
But, FIRST is about learning. If I were to outsource a program of tracking the reflective tape now,

I agree, and I would not advocate someone releasing their solution to this years challenge. It's your work, I think you should benefit from it for that year's competition. However, I release our team's previous year's competition code each year so that others can build upon it.

a lot of people would take it, put it on a single board computer and run it without really understanding what it does. It's the same principle as the "learning python the hard way" website. It prevents you from copying and pasting. If you write it yourself, you're more likely to remember it.

I disagree with this point of view. While you're right that *some* people may just run it without understanding what's happening -- that's their loss, and they aren't going to get very far in life if that's all they do. However, there are some people who will benefit from a fully worked out example to build off of, and it will enhance their understanding of the problem space.

You shouldn't try to decide for others what they're going to do with your code. You can't stop some people from using the code without gaining understanding, but if there's only a few who benefit from the code and get deeper understanding/interest in the problem space, I would call that a win.

A good example of this is our image processing code / dashboard from last year. Team 341 released their image processing code for 2012 for others to use. Having the fully worked out example to play with was a good starting point, and we were able to translate it into python, and take the ideas and expand them into something even more awesome than the original code (IMHO).

faust1706
15-01-2014, 21:24
I see where you're coming from. I'll probably post the last 2 years programs sometime in the near future now thanks to you. A reason I didn't for the 2012 one was because it has very high level math in it that is not easily understood. The other one is just basic trig but fails when the floor isn't flat, but that wasn't a problem at competitions.

Sparkyshires
15-01-2014, 21:57
Thank you very much for the resources. I have to say I agree completely with your sentiments. While FIRST is all about "standing atop the shoulders of giants" you shouldn't be able to just copy someones code. There is an immense satisfaction when you have a mid to high level complexity of a program and you understand every in and out of it, and that simply wouldn't happen if you didn't work at it yourself.

faust1706
16-01-2014, 18:46
I have some more programs that I am willing to share, but I just cannot figure out github or firstforge. It is in a dropbox, so if you are interested, just send me a pm with your email and I'll add you to the share list.

yash101
16-01-2014, 19:19
I have some more programs that I am willing to share, but I just cannot figure out github or firstforge. It is in a dropbox, so if you are interested, just send me a pm with your email and I'll add you to the share list.

I also wonder how to use Git! :rolleyes:. I got Microsoft Visual Studio Online, which gives unlimited private repositories, for even commercial use, for teams of 5. I don't know how to use it :(

sparkytwd
16-01-2014, 20:20
Team 3574 shares it's code on github during the season: https://github.com/Team3574

virtuald
16-01-2014, 21:35
Github has a lot of useful documentation. You can start here:

https://help.github.com/articles/set-up-git