<div class="gmail_quote">On Mon, Jul 18, 2011 at 1:50 PM, Mike Schachter <span dir="ltr"><<a href="mailto:mike@mindmech.com">mike@mindmech.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Hey Alexi,<br>
<br>
Sounds pretty cool. Have you checked out the mobile robotics<br>
toolkit? I haven't used it but MC Hawking (the semi-autonomous<br>
wheelchair robot at Noisebridge) uses it:<br>
<br>
<a href="http://www.mrpt.org/" target="_blank">http://www.mrpt.org/</a><br>
<br>
Idris, that sounds like a pretty cool project! If you're doing image<br>
processing, you might want to look into OpenCV:<br>
<br>
<a href="http://opencv.willowgarage.com/wiki/" target="_blank">http://opencv.willowgarage.com/wiki/</a><br>
<br>
They have some built in machine learning algorithms for<br>
classification (i.e. here's an image, does it contain a tennis<br>
court or not?)<br>
<br>
<a href="http://opencv.willowgarage.com/documentation/cpp/ml__machine_learning.html" target="_blank">http://opencv.willowgarage.com/documentation/cpp/ml__machine_learning.html</a><br>
<br>
You would need to feed it examples that are already trained<br>
though. I wonder if you could use it's 2D feature extraction stuff<br>
to algorithmically decide if it's a tennis court or not?<br>
<br></blockquote><div><br></div><div>Unsolicited kibitzing from a grumpy old practitioner:</div><div><br></div><div>I'd suggest looking at SIFT, though it may have problems with the different colors in the courts (I'm not entirely certain how it's identifying features).  Pushing things through a mapping (desaturate and/or edge detect) will take care of that.  It's probably helpful to reduce the resolution, too, to eliminate confounding things like fence shadows.</div>
<div><br></div><div><a href="http://blogs.oregonstate.edu/hess/code/sift/">http://blogs.oregonstate.edu/hess/code/sift/</a></div><div> </div><div>As far as algorithmic detection of "is tennis court?": you shouldn't have too hard of a time manually finding tennis courts in a handful of cities/towns to build a training set.  You'll want to find a bunch of confusing not-tennis-courts for your training set, as well: roofs, fields, landing strips, etc.</div>
<div><br></div><div>Personally, I'd start with an image of a tennis court, and make sure I can identify it when rotated, scaled, and color-shifted.  That's probably a fair bit of work, but is prerequisite to most other techniques.</div>
<div><br></div><div>Always remember: 95% of ML is scut work, 5% is sexy algorithmic fun, and 50% is refactoring your code to account for the stupid ugly data gotchas you missed in the original scope.</div><div><br></div><div>
Happy hacking!</div><div>--</div><div>/jbm</div></div>