25 October 2008

Moving Right Along

Now that my Quest for Graduation series of post titles is over, I have to express my disappointment in you, my faithful readers. You've had five weeks to tell me where that series came from and on one posted so much as a guess. For those who didn't know, the titles of the last five posts have been variations off the titles of the five games in Sierra's Quest for Glory series. These point-and-click, RPG-ish adventure games were some of the best I've ever played, despite their numerous bugs. Sierra, in its heyday, produced some of the most fun games I've ever played (circa 1990's). They are also some of the buggiest games I've ever played. The bugs were rarely showstopping*, but they certainly were noticeable.

In other news, I have acquired all the components for my Halloween costume and just need to put the finishing touches on a few parts before I'm ready. One of those parts is a capacitor about 2/3's the size of a AA battery. It scares the crap out of me, so I'm not doing anything with that component of the costume until I can get down to the electronics lab on Tuesday. Hopefully I can get all the soldering I need to do done then and just finish with the assembly and spray painting at my leisure. Now that I have tantalized you thoroughly, I take great pleasure in saying that you have to wait until Halloween to see it, like everyone else. Nyah nyah. Don't worry. I'm taking pictures as I go and I'll have plenty from the parties.

Speaking of the electronics lab, there's something cool going on this semester (and hopefully continuing on afterwards). A pair of students who are excited about learning more electrical engineering and getting an intuitive feel for electronic systems set up an informal lab period for interested students to come and play with the electronics lab. We do a little bit of instruction and mostly tinkering on projects of our own. I'm hoping they can help me with the bits of my costume that I don't have the knowledge to do safely.

Speaking of student-driven interest groups, I've got updates on the Barnstormers! Claire and I (co-presidents of the Barnstormers Aeronautics Club here at Mudd, if you'll recall) have been working with Iris Critchell to get the soaring trip going. We flew to Hemet and Crystalaire, where there are glider schools in operation, to see what was available and decide where we wanted to go. Larry Howell, the man in charge of "Sail Plane Enterprises" at Hemet really impressed us and offered us a great deal on pricing. He can only take 12 students a day, and only on the weekends, which is lower than the "Great Western Soaring School" at Crystalaire, but we liked the feel of his operation much more than the Crystalaire one, so we called him up and scheduled two trips. At least two of Claire, Iris, and I will be on each trip, so I'll make sure we'll get plenty of pictures and we'll have some wonderful stories.

See you after Halloween,

~KMarsh

*A glaring exception was Quest for Glory: Shadows of Darkness. This game had a glitch that made it impossible to progress beyond a certain point no matter what. Instead of releasing a patch or an update, Sierra provided a save file with the character located past this point so that players could see the end of the game, albeit with a different character than the one they had built up along the way.

22 October 2008

Quest for Graduation: Dragon Fire

Just a quick update this time; I have tutoring in an hour and plenty of Russian homework to do before then. I just finished my most recent Computer Vision assignment and thought I'd share: image mosaicking. Using matrix multiplication it is possible to warp the image of a plane to any desired perspective. By assuming the subject of a group of pictures is a plane (a good approximation when taking pictures of, say, the landscape) you can then warp images together so that they overlap properly, creating a panoramic composite image. By choosing corresponding points in the images below, I told my program how to line up the two pictures and it created the third image.

In fact, we can do better. By taking this result and feeding it to the program as one of the inputs, we can extend this panorama indefinitely.* I put a third image into it here:

Next week: Automosaicking.

~Kyle Marsh


*Pro tip: if you actually try to mosaic images all the way around a circle, you'll hit problems as you approach 180 degrees -- the program tries to map straight lines to straight lines, so it'll try to bring the vanishing point (infinity to each side) into the image. Your result will be an infinitely wide image. To actually make a full panorama you have to map the images onto a cylinder, and to do that you need to know the focal length of the camera.

14 October 2008

Quest for Graduation: Shadows of the Real World

They say there is no life after Graduation. If so, I've seen some pretty lively corpses in the last couple of years. But now it's my turn and I have to find a place to work when I am no longer with you. Normally this wouldn't be very hard -- everyone needs computer scientists, right? -- but I have to find something near whatever my girlfriend finds so we don't have to commute too far. Again, we're both in technical fields so this shouldn't be too hard. My girlfriend, however, is looking very closely at the Air Force Flight Test Center at Edwards AFB. For those of you who don't know, Edwards AFB is in the Middle of Nowhere:
This is great when you want to test supersonic aircraft or munitions, either of which may leave enormous craters in the ground (depending on whether they work or not, respectively). It is somewhat sub-optimal when it comes to having anything else within a reasonable commute of the place.

Hopefully they will have a place for a poor computer scientist among all the engineers. Besides...how cool would it be to learn to fly from a fighter pilot?

In other news, I am really enjoying my Computer Vision class. Professor Dodds is a fun guy and he really makes learning these things fun. Two weeks ago we implemented an algorithm called "seam carving". This algorithm will remove connected seams of pixels from images to resize them to different aspect ratios without cropping or distortion. The idea is that you first find the edges of a picture (or some other measure of "energy"), then find the string across the picture with the least "edgyness" or "energy" and remove it. This maintains any interesting areas of the picture, where "interesting" is defined by your energy function; in this example, edges are "interesting".
This picture is of a Pentium Pro I opened up (fairly destructively) to get a look at what was inside. The die on the left is the L-2 cache and the die on the right is the processor itself (Pentium Pro was based off the Pentium II's microarchitecture, which is what the Core2 chips are based on, as well). The image in the upper right is the energy function; white pixels are strong edges, black pixels have no edge strength. The lower left picture is the result of adding up energy across the image to find the lowest energy "seam" and the picture in the lower right shows the carve result (same scale as the original image in the upper left). This method doesn't always work well, but when it does it can produce some spectacular results. There is an extension (that we did not implement) to use seam carving to resize videos as well.

This week we're working on auto-mosaicking to create panoramic images from a set of pictures.

Also: I'm looking forward to Halloween like crazy; it's by far my favorite holiday and there are always such great costumes here at Mudd.

~KMars