Monday, May 12, 2008

Rock Band Vocalist

For a final project we wrote some code so a laptop could act as a vocalist player in the cooperative music rhythm game, Rock Band. The software takes an available capture card (will work with a single card attached in PCI, PCIx1, USB, or FireWire interface, but not ethernet), calibrates itself to the frequency range of the song, and plays the tones to go along with the music. There is future improvements to be made, such as dealing with the Rock Band key adjusting which tends to thwart any attempts to sing successfully, and upping the capture resolution to allow the addition of OCR and voice/worded output.

The pdf attached officially gives the details necessary to understand the project further: Project Report

If you are interested in the source code, shoot me an email.

Monday, March 3, 2008

Project 3 Mike and Styler

Our project 3 compares still images. Give a picture and a name, it analyzes the picture and stores it's color distributions in an xml file. Given only a picture, it compares it against all stored people (xml files) it has saved. To compare, it creates color distributions for Red, Blue, and Green pixels (barring white pixels). Then, it compares the red distributions local minimums, maximums, the median and the mean. Comparing these distributions yields a difference, and the known person with the least difference is considered the match.

Here are our saved pictures:

Which were saved into XML. Then, we ran these pictures through the comparison:

The results were:
FaceDetection.exe styler2.jpg
Diff with styler from styler.xml is 103.669794574545
Diff with mike from mike.xml is 179.5194369055
Best match is: styler

FaceDetection.exe mike2.jpg
Diff with styler from styler.xml is 158.225831330128
Diff with mike from mike.xml is 82.0856684981685
Best match is: mike

The algorithm was a success. Given a photo stored into xml, the Diff would equal 0 every time. The algorithm also worked in the reverse direction. However, it is only suitable for fixed backgrounds between photos.

The code is in C# and available here. and a sample XML output is available here.

Project 3

For Project 3 we split into two teams, Mike and Styler vs. Wes and Lucas.

Monday, February 18, 2008

Project 2 Final Cut

Project 2 Credits

Optimash Prime:
Lead Caddy

Alex Styler:
Artificial Intelligence Engineer
Lead Programmer
Lead Camera

Lucas Coyne:
Team Chaplain
Assistant Caddy
Bugging Lead

Michael Edelson:
Interface Engineer
Debugging Lead

Wesley Chu:
Special Effects Artist
Talent Handler

Project 2 Results

Over 15 trials with no training, selecting complex motions at random:
Average putt distance: 1.66 feet
Percentage of successful swings: 33%

After 50 iterations of training, altering primitive probabilities and eliminating unsuccessful swings:
Average putt distance: 5.28 feet
Percentage of successful swings: 73%

After learning a dramatic increase in performance is observed. With more iterations, even better swings will become more probable and more unsuccessful swings will be eliminated, further increasing performance. The servo speed, however, limits the robot from ever being a successful player beyond short putts.

Project 2 Stills