Pets, Plants, and Computer Vision
Header

Big Announcement

March 21st, 2011 | Posted by admin in Ann Arbor | automation | Automation Alley | computer vision | entrepreneurship | industrial computing | Ingenuitas | manufacturing | Michigan | Open Source - (Comments Off on Big Announcement)



I am on my way back to New York from Michigan and it is time to make it official. I have accepted the position of Director of Research and Development at Ingenuitas in Ann Arbor, Michigan. Ingenuitas will be working though the summer to develop an open source hardware/software product for manufacturing inspection systems. We plan on having a demonstration of our early results in September. I will focus specifically on developing an easy to use computer vision system that brings a number of emerging computer vision techniques to the machine inspection domain. I will also seeking potential investors from the New York technology community. We hope to demonstrate that open source has the potential to dramatically reduce manufacturing costs and empower smaller companies to use techniques and quality control measures that were until recently only available to larger manufacturers. The Ingenuitas team also includes my friends Anothny Oliver and Nate Oostendorp. I am really excited for this team as I think we have the perfect mix of skills and experience to get this venture off the ground. Furthermore I am ecstatic to be working on an open source project that has the potential to dramatically change both computer vision and manufacturing for the better. I will post more thoughts about this project when I get a chance.

RPS simulator

March 5th, 2011 | Posted by admin in artificial intelligence | code | Columbia | demo | In the news | machine learning - (Comments Off on RPS simulator)

I came across this cool interactive feature in the New York Times: RPS Simulator. Basically you play rock, paper, scissors against an algorithm that has learned how to play an optimal game based on prior data. The trick is that humans try to think about the game, versus playing truly randomly. If you play a truly random game you should be able to at least tie the computer. To generate random numbers I moved my mouse around with my eyes closed and guessed my move based on the mouse location. Alternatively you could use the seconds hand on a clock and modulo the number by three.

For my machine learning class this week we have to write this algorithm given a training data set. I will post the code after the homework submission deadline.

Tim and Greg at Backyard Brains are the Coolest People (ever!)

March 5th, 2011 | Posted by admin in Uncategorized - (Comments Off on Tim and Greg at Backyard Brains are the Coolest People (ever!))

My friends Tim and Greg’s startup Backyard Brains just got featured on Boing Boing. I am so happy for them. I am also totally psyched that some of my past research (a) is getting commercialized and (b) is getting commercialized for good not evil. Tim sent me a text message or the early results a couple of days ago. They still have a ways to go, but I so pleased about the results. Tim and Greg really are the guys I wanted to be as a kid, and they are doing some really important work that deserves much more attention.

Cyborg Cockroaches

Early Robo Roach Prototypes sponsored by DARPA

I just happened to have a few of the old specimens from when I made robo roaches for a DARPA project in undergrad (c. 2001). I took a few photos to show you how far the technology has progressed since I worked on it in 2000. Back then we had a simple “backpack” made from a phone jack and a length of microwire. This setup looks positively arcane when compared to Tim’s self-contained remote control. It is worth noting that the cockroaches in my picture are Gromphadorhina portentosa which are slightly larger than the species they are using at Backyard Brains.

Homework Fun

March 4th, 2011 | Posted by admin in Columbia | computer vision - (Comments Off on Homework Fun)

Face Detector at Work

A good example of face detection in OpenCV 2.2


Here is the first homework from my computational photography course at Columbia. For this homework we had to use a freely available face detector to correctly rotate a set or images that had been rotated either 0, 90, 180, or 270 degrees. For each image we then needed to identify if the image was a photo of a group or of an individual. Finally we were required to use the face detector to extract a smoothed face image from a video. I did my project in C++ using the Haar cascade detectors baked into OpenCV 2.2. For the video portion of the homework I used a Kalman filter to smooth the detected face location and determine a good subimage location when the face detector failed to return a result. In the still images there are multiple colored boxes around each face. These boxes correspond to the different detector packages. The results were not as good as I would have liked. The detectors I used are based on Haar like features and I think some of the symmetry of the faces was preserved in the rotations causing the detectors to misfire. More example images can be found on the flickr set for this project. The video results are below. I put the code up on Google code. The source needs a bit of refactoring but I will be hacking on it all semester so it should get cleaned up.