Sunday, July 26, 2009

International Symposium on Mixed and Augmented Reality (ISMAR)

A couple of months ago I heard about ISMAR '09, the International Symposium on Mixed and Augmented Reality, to be held October 19-23 in Orlando, Florida. Knowing that I wanted to focus my PhD research on augmented reality somehow, and seeing that the conference was going to be technical and artistic, I got really, really excited. I expect there will be lots of exciting presentations about games, new ways of interacting with augmented reality, improvements to tracking techniques, and so much more.

Then I saw the call for student volunteers.

ISMAR is happening two weeks after Grace Hopper. I wasn't sure how smart it would be to miss so much of my first semester in the new degree, so I asked my supervisor about it. He was very encouraging, saying that he likes to see students attend conferences in their areas of interest early on in order to start getting ideas (and to get excited about the desired topics!). I think this makes a lot of sense, and is something I wish I had thought of for my Masters. Since being a student volunteer gets you free registration and hotel, my supervisor figured he could pay the rest of my expenses out of his budget, so I applied right away.

Today I found out that I was selected. I will get free registration and (at this point) three nights at the hotel in exchange for twenty hours of work. Now, if Grace Hopper is any indication, this volunteer time will be the most valuable part of attending the conference. It tends to lead to meeting some very interesting and potentially important people, and I bet I'll come home with a boatload of new ideas for research topics. If you ever get a chance to be a student volunteer for a conference, you should apply right away!

Here are some links about ISMAR that you might enjoy:

Thursday, July 23, 2009

Finally Joining Twitter

So I finally joined Twitter last week. You can follow me at gailcarmichael.

I actually avoided Twitter for the longest time. I already had Facebook, and many friends imported their Twitter feeds into their Facebook statuses anyway. I definitely wasn't interested in learning about all the mundane details of anyone's life, which is what I'd heard Twitter was like. Besides, who needs another website to refresh obsessively throughout the work day?

I finally caved when I noticed that some of my Facebook friends weren't really updating as much as they used to. More importantly, these friends were colleagues from various adventures in school and work, and so a part of my professional network. I started to feel like I was missing out on conversations that I shouldn't be missing. Finally taking a look at their Twitter profiles confirmed this.

I'm not sure how much I like Twitter so far. I definitely don't dislike it, but 140 characters is more limiting than I expected it to be. Plus, now I have duplicates between the Twitter page and my Facebook news feed.

But it's probably worth it, since I'll be less likely to miss out on interesting opportunities. Already I found that a colleague from university, who had a new start-up going, needed someone to redesign their website. I passed this on to a friend with his own web business, and he was very appreciative. You never know what will come next. I will soon try to find some more people to follow in relation to my research areas.

How do you use Twitter? Did your use of it taper off after time? Do you feel like you would have missed something important if you weren't using it?

Monday, July 20, 2009

Grace Hopper Student Scholarship

I applied for a Student Scholarship for the Grace Hopper Celebration of Women in Computing a while back and just found out that I received one! I wanted to share my essay to inspire others to participate in the conference in whatever way they can (even if that means just attending).

The best news is that three out of the five executives got a scholarship, and a fourth is on a waiting list (fingers crossed!). This means that we can bring more people from Carleton University to Tucson.
It also means that I should be able to bring my husband Andrew, which, as I wrote about in my essay below, could help bring the change we hope to see. Thank you to everyone who made all this possible!

I attended Grace Hopper last year for the first time. I travelled with three fellow executive members of Carleton University's Women in Science and Engineering group (http://www.carleton.ca/wise), which I recently helped rebuild and continue to dedicate many hours to. Our time in Colorado was an amazing bonding and team building experience, and we left with enough ideas and inspiration to make the rest of the school year an enormous success. Two executive members will be moving on in September, and new ones will be taking their place. This is the first reason that I want to attend Grace Hopper: I would like to have a similar opportunity to travel with the new executive, to help ensure another good year for our group, and to bring back multitudes of valuable information for our members (to be shared via special speaker events and on our blog at http://cuwise.blogspot.com). Receiving a scholarship will make this possible, as we only have a limited funding budget.

At last year's conference, I volunteered as a Hopper and Community Blogger (http://compscigail.blogspot.com). Being a Hopper was one of the best aspects of the week due to the many people I met, and the ability to give back to those who worked so hard to put this conference on. This is the second reason I want to attend: I want another opportunity to help with the conference, and to continue contributing to the online community. I have already begun the latter by helping BJ Wishinsky of the Anita Borg Institute organize this year's bloggers in whatever way I can. I plan to volunteer as a Hopper again, regardless of the funding I receive.

Inspired by the talks given at last year's conference, and motivated by the response we got when presenting to the National Conference of Women in Engineering, I lead a submission for a Birds of a Feather session that would have all executive members of our WISE group talk about how we rebuilt it. I also submitted a talk on an all-girls computer mini-course I designed and taught this year and last. Both were accepted. This is the third reason I want to attend: I want to share all I have learned with WISE and my mini-course in hopes that others may succeed in their own endeavours.

And the final reason I want to attend is one that is near and dear to my heart. My husband is also a computer scientist, and while he is interested in what I do with WISE and related activities, he often feels he is unable to contribute. With a scholarship, we can afford his airfare to attend Grace Hopper as well, where he is eager to volunteer as a Hopper. He hopes to bring back attitudes and ideas to the company he works at as a software developer, becoming an agent of the change we, as women, wish to see.

Kodu: Programming Made Fun

If you're old enough, you might remember that little triangle turtle game called Logo. I remember seeing it in elementary school, but I don't recall doing much with it. The idea is that you give commands to the little turtle, and wherever he moves, he leaves a trail behind him. You can make some neat patterns with this simple concept.

The program, of course, wasn't just a game - it was intended to teach kids about programming concepts. I know many people look back on it fondly, but I don't believe it was all that exciting for me. I think the new game by Microsoft Research Kodu would have been more my style.

Slate calls Kodu "Logo on Steroids":
Kodu is light years beyond Logo, with modern 3-D graphics, a world players can landscape to their liking, and a cast of characters that isn't limited to the Terrapene genus. But the mission is pretty much the same: to place kids in an open-ended environment and arm them with a simple language that lets them build things. At the risk of blaspheming my youth, I dare say that Kodu is more fun than Logo. It's also a reminder that the mission of games like these is not actually to teach kids how to write code. It's to teach them how to think like programmers.
As Microsoft describes it:
The core of the Kodu project is the programming user interface. The language is simple and entirely icon-based. Programs are composed of pages, which are broken down into rules, which are further divided into conditions and actions. Conditions are evaluated simultaneously.

The Kodu language is designed specifically for game development and provides specialized primitives derived from gaming scenarios. Programs are expressed in physical terms, using concepts like vision, hearing, and time to control character behavior. While not as general-purpose as classical programming languages, Kodu can express advanced game design concepts in a simple, direct, and intuitive manner.
The game is available on XBox and PC, and I have to say I'm tempted to give it a try. I've talked about teaching kids to program before in the context of how it might be done with augmented reality. I'd like to see how complex Kudo is, and how effectively it captures the attention of kids while they think they are simply having fun. If you've tried Kudo or any other modern programming game, let me know what you thought of it!

Monday, July 13, 2009

Making Your Own Panoramas

Don't be scared off by the technical sounding first few paragraphs - the info about making a panorama is written in a simpler way. Everyone can make a panorama - just give it a try!

As some of you may know, my thesis involves matching panoramas to photographs. I have been having some problems with this particular kind of image matching, due partially to the low quality of the panoramas I'm working with. These panoramas were created with data from the Point Grey Research panoramic camera called the Ladybug2 (you may also recall that even Google didn't think much of the quality of the results when they used this camera for their Street View system). So to have some nicer results to show in my work, I decided to take matters into my own hands: I decided to make some of my own panoramas.

There's a nice free, open source piece of software out there called Hugin:

Goal: an easy to use cross-platform panoramic imaging toolchain based on Panorama Tools.

With hugin you can assemble a mosaic of photographs into a complete immersive panorama, stitch any series of overlapping pictures and much more.

With this package, making panoramas with just about any projection and any field of view - all the way to 360 degrees horizontally and vertically - is easy!

But first, if you are curious about this whole "panorama" thing, I suggest you take a look at the PanoTools wiki to learn more. It's got all you need to know, including some equipment that can help with making panoramas, and an explanation of the different projections you can use (i.e. the different ways to take a picture that, say, wraps all around you in the real 3D world, and represent it on a flat surface). The projection I'm using in my work is the cube (never had time to look at other possibilities).

With that out of the way, here's how I went about making my own panorama for my thesis.

First, I needed to find a scene that had a lot of easy-to-match, distinct features. This would save me time later, as you will see. I chose a location in downtown Ottawa, in front of our National War Memorial.

My husband and I took our Nikon D90 (a decent consumer digital SLR) and tripod and set up on the pedestrian walk in front of the actual memorial. After everything was all put up and levelled, I snapped many photos in a full circle around the tripod. I made sure consecutive photos had a lot of overlap between them. Then I angled the camera up and repeated. This wouldn't cover the whole sphere of space around me, but it would capture a pretty good enough of it.

Back home, I fired up Hugin and loaded all the images I took for the panorama. I let the EXIF data in my photo files (embedded by the camera) define the properties of the lens and such. Then I pressed the "Align..." button on the Assistant tab and let it do its thing.

This is where having a good scene can really help. If the computer can automatically figure out which bits of two consecutive images match each other, you won't have to tweak the results as much. Otherwise, you have to go into the "Control Points" tab and delete or adjust the wrong matches, and add in some more good ones. Lots of trees can cause problems in the matching process, so try to find a scene that allows you to include other features other than just trees.

Luckily, my photos matched really well, and the preview of the panorama that popped up looked great! So I went to the "Stitcher" tab and got the real thing.

Here is my panorama of the War Memorial using the equirectangular projection (I converted this to a cube later on). You can click on the image to see some larger sizes.

War Memorial Panorama

Here are some tutorials that might help you out if you want to make your own panorama:

Wednesday, July 8, 2009

Google Scholars' Retreat: Student Research Presentations

On the last day of the Google Scholars' Retreat, four scholars gave presentations about their own research. I was proud that all of them were women (by chance), and that they all gave really interesting mini-talks!

The first presentation tackled the issue of understanding 3D models as they are projected onto the computer screen. Even when these models are shown from different sides, or are animated rotating around, their shape is not always clear. Typical models examined in this study were things like mechanical widgets and medical entities (lungs, bones, hearts, etc). The student was evaluating how useful tagging systems and embedded axes would be in understanding the models. It was a cool mix of psychology and perception with 3D graphics and modelling.

The next student was motivated by helping the environment. PowerNet was developed to monitor power usage by routers, computers, monitors, and so on. The data confirms some of the assumptions we make about our power usage, but also reveals some unexpected results. For example, although LCD monitors are supposed to use the same amount of energy no matter what they display, using a black background rather than white actually does consume less! I love the simplicity of the idea: Collect data instead of make assumptions. Change actions based on findings. Reduce power consumption. Bing, bang, boom.

The third presenter is into visual computing, like me. She's done a lot of work with virtual worlds and the like. Her current projects include work on rehabilitation efforts using technology. For example, Wii-motes in an immersive virtual reality "CAVE" can get patients to finger paint all around them, working their shoulders. The main project is to harness the precision of a platform robot and mimic riding a horse. Apparently, equine rehabilitation has been shown to help a lot with physical problems as well as emotional, but it's expensive and not so great for anyone who is afraid of or allergic to horses. I imagine this will be a challenging pursuit, given that the researchers involves need to capture motions of a real horse and make a believable simulation of it. I'm very interested in seeing the final results though!

Unfortunately, I can't say a lot about the last presenter's work. This has nothing to do with the quality of her talk; it's just not an area I am very familiar with. The short version is that she was looking at algorithms for holding dynamic bandwidth auctions. So if a company has bought a particular part of the wireless spectrum, it might wish to "rent" some of it to users of other, overcrowded spectrums. That's really about all I can say, but it was an interesting concept I wasn't aware of before!

Seeing all these talks really motivated me to finish up my Masters thesis, and excited me all over again about starting my PhD in September. I love seeing how amazing the women of computer science are!

Saturday, July 4, 2009

Google Scholars' Retreat Tech Talks: CS Education

The tech talk I signed up for the afternoon at the Google Scholars' Retreat wasn't technical per se, but rather a discussion about how to improve the presence of minorities in CS Education. This is a topic I've been lookin at for a long time, but there were a few tidbits that brought new ideas to the table for me.

The format of this talk was to work in small groups after hearing a few statistics about the state of things. The first thing I asked my group members was what kept other minorities (African Americans, Hispanics, and American Indians - all other groups targeted by the scholarships in addition to women) out of computing. It sounds like it's essentially the same reasons as for women - the field looks unattractive to those worried about being nerdy, etc. For example, apparently young African American males believe that you will "have an ugly wife" if you get into computers. Image can be everything for many young people.

With that out of the way, the brainstorming for outreach programs and other ideas to help the problem began. One thing that I felt would really help was to make it easier for teachers to integrate computer science into the regular school curriculum. This should result in students being more comfortable with the subject by the time they finish high school, and hopefully give a better image to the field. But teachers are stretched too thin as it is, so asking them to learn a whole new module on computer science is not that simple. It is also difficult to fit a new module into the school year. Inevitably, new stuff at the end gets dropped first. So, instead, the proposal is to fit computer science concepts into the curriculum students already learn. It's kind of like a head fake, because they don't really need to know they are learning computer science. Instead, they are learning algorithms and techniques for dealing with data, or analyzing human-computer interfaces from a social sciences point of view, or whatever - there are many possibilities. Learning computer science does not have to equate to learning how to write code.

Another idea brought up by someone in another group suggested that just by existing, we provide role models to show that women (or whatever other minorities) really are in computer science, and that we are nice, normal people who don't have ugly spouses). I put it out there that this is a case where if we "build it", they won't necessarily come, so how do we ensure that our "being out there" is actually noticed? I think we need the CSI of computer science, with smart, attractive women doing some awesome computing on the show. Someone mentioned that they noticed just the right kind of characters of this sort while watching Saturday morning cartoons with their niece. I'd love to write some short stories or even a novel about young women in computer science, solving interesting problems with their skills (sort of like a modern Nancy Drew). Maybe the next generation will grow up without the negative stereotypes as a result, but I think we need to do more today. We need to put ourselves out there in such a way that they can't miss us.

Those are the major items that I can remember, though there were many good ideas thrown around. If you have any other ideas to encourage more minorities to consider computing careers, whether I've discussed them on this blog before or not, I'd love to hear from you in the comments.

Wednesday, July 1, 2009

Google Scholars' Retreat Tech Talks: Street View

After the eyes-free Android demo, we had a few choices for what topic we wanted to learn about next. I would have loved to learn more about Chrome and especially Android, but I chose Street View because of its relevance to my thesis research topic. There are three main things I took away from this presentation by Luc Vincent.

The first is that the original panoramas being investigated by Google were actually the 'pushbroom' type. These are long strips created by slicing and stitching long video sequences taken with one camera. There were all kinds of problems with generating the panoramas themselves, like weird effects from the multi-perspective model. Trying to get a working system inside the vehicle for the very custom setup also posed many challenges, down to simply powering the Windows and Linux boxes set up in the back of the vans!

Then I learned that, when they experimented with spherical panoramas, they did indeed use the Ladybug camera. This is what the panoramas I'm using in my thesis were made with. However, the slide with that rig was up for about 0.3 seconds before Luc quickly and politely expressed how much it sucked before showing the custom rig with real lenses and cameras that Google put together. No wonder their panoramas increased in quality so much! Even though it doesn't actually help me with my thesis, it does make me feel just a little bit better about all the problems I've been having with the panoramas generated with Ladybug data.

Finally, Luc showed us a new interaction tool used in Street View, called the 'pancake.' The video below shows how awesome this tool is.




This would not be easy to implement - a full 3D model of the scene would be required. Luckily, Google uses laser data in addition to the images captured, which gives the depth information needed. Getting my hands on both the higher quality panoramas and some laser data would have made my thesis much easier, and given me much better results. I heard that some panoramas are going to be released, so maybe someone can pick up where I left off.