Friday, December 26, 2008
I love my shiny new Nikon D60. It's a digital SLR that seems to have come out fairly recently as an attractive entry level camera. I have wanted one for a long time.
So what does this have to do with computer science, you ask? Funnily enough, understanding photography has had a lot to do with my thesis lately. While trying to match panoramas, which have a rather small focal length, and regular photographs taken with a more standard focal length, I have had to get a more intuitive feel for such phenomena as perspective distortion. Fortunately for me, one of my two new lenses supports a wide-angle focal length (though it's not terribly extreme), so I can continue to get a feel for things.
Take the above photo of my camera Santa, for example. The standard focal length's field of view would only be Andrew himself, but this wide angle shot contains much more of the scene. Things look pretty normal at first glance, but some objects may look a bit distorted when compared to a a shot at a regular focal length. (Based on the fact that I am not describing things very well yet, I have much to learn!)
I'm very much looking forward to playing with my new toy and learning all of its settings. I have no doubt that it will come in handy as I continue my grad school journey.
Monday, December 22, 2008
Although the money we get is still the same as in previous years, I took the increased enthusiasm and decided that I wanted to reach out to a broader spectrum of students. More specifically, I wanted to ensure that Carleton engineers would benefit along with my classmates in computer science. The Christmas social I organized at the beginning of December accomplished this fairly well.
The Google Christmas Social invited four engineering and computer science student groups - CSES, CCSS, CU-WISE, and IEEE-WIE - to come together and learn about the events activities each is hosting, all while snacking on delicious bakery-fresh treats. I wanted to provide a forum for collaboration, since all these groups have activities relevant to the others.
I'd say the event was a success. Although many people signed up and then didn't attend, the event was held between the end of classes and the beginning of exams (I had little choice based on when I received the program funds). The food was delicious thanks to the Richmond Bakery, and my CU-WISE girls were very helpful in setting up and cleaning afterward (thanks girls!). A rep or two from each group said a few words about what they've done this year and their plans for the next semester.
What kinds of events do you like the most if you're a student at Carleton, or what kinds of cool events has your Google Ambassador done so far? I hope that the winter semester will be the best one yet for this program.
Wednesday, December 17, 2008
Nobody really knew much about the women standing in front of the intimidating 8-foot tall black metal machine that was the ENIAC; in fact, many were told they were just "refrigerator ladies" modelling for the cameras. Luckily, Kathy Kleiman didn't buy it. When looking for role models as she herself became a programmer, she discovered the truth and sought to bring the ENIAC programmers' stories to life. With the help of an award winning producer, these women's stories were recorded and are now being transformed into an inspiring documentary.
One of the many wonderful tidbits in the video above is a story about Grace Hopper, who we all know and love as the namesake of the Grace Hopper Celebration of Women in Computing. As you may know, Grace developed one of the first compilers for a programming language. She was once having problems with a compiler and couldn't figure out what was going wrong. She asked Betty, Jean's pair-programming partner on the ENIAC, for some help.
Betty determined that the tape used to record data onto was the source of Grace's headaches. The tape would be used in one direction, then the direction would be reversed and data written again. The problem was that, even though the same amount of data is written in both directions, the tape didn't always end exactly where it started. Physical markers were used to indicate the beginning and had to be repositioned each time. Betty determined that Grace hadn't done this repositioning. Well, apparently when this problem was solved, Grace was ecstatic, and called Betty the best programmer she ever knew. :)
I think this video is a must see for every computer scientist out there, male or female. I know that I, for one, will be very much looking forward to the documentary when it's released.
Wednesday, December 10, 2008
Check it out for yourself. You'll need access to ACM's Digital Library to see the whole paper, though I plan to post a copy on this mini-course page whenever I finally get the chance to update my portfolio.
Tuesday, December 9, 2008
I found Chick with PhizzleDizzle after the author commented on one of my recent posts. Her "About Me" says it all:
I am soon going to be a chick with a PhizzleDizzle in Computer Science. W00t!I really liked the list of Science Chicks on her sidebar (and hope to borrow that idea as soon as I have some free time). I noticed FemaleScienceProfessor, whose blog I also started reading recently. Both women write wonderful blogs that capture many of the same feelings a lot of us ladies in the sciences encounter.
Anyway, Ms. PhizzleDizzle was kind enough to mention my blog in its very own post. Thanks, I really appreciate it! :)
Now for the surprise. Google Alerts sends me an email every time it sees a link to my blog somewhere out there on the 'net. Usually, this just ends up being from Mugshot or some other obscure blog aggregation service. This time, however, I noticed it was related to ACM.
My blog was found on a page titled Surfing the Net for Software Engineering Notes, which contains all the links mentioned in a column by Mark Doernhoefer, found in ACM's newsletter for the Special Interest Group on Software Engineering. Check out the November 2008 issue if you have access to the digital library.
As you scroll down to find me, you'll notice that many well-known blogs are listed first, including Joel on Software, Coding Horror, and even the O'Reilly blogs! When I saw all these well-respected offerings, I started to wonder if my own would actually be in there.
But of course it was. So without further ado, here is what was written about The Female Perspective of Computer Science:
I mentioned that blogs allow the blogger the opportunity to create their own community of interest surrounding a specific topic. This blog illustrates this point by featuring one person’s (in this case a graduate student in Computer Science at Carleton University) view on her experience as a women in the world of Computer Science. It’s an excellent resource for various conferences and projects that focus on women in computing. The blogger, who only goes by her first name, Gail, publishes announcements on events such as the Grace Hopper Celebration of Women in Computing, and the CONNECT project for the social networking of computer scientists. Gail writes very well and manages to maintain an active blog in addition to her class work. In addition to women in computing, other blog articles discuss computer animation and use of animation in video game design and engineering. This is another blog hosted out of the Google Blogger site where, after free registration, you can start your own blog.Today has been a good day.
Wednesday, December 3, 2008
We all know how we cope with something big and complex; divide and rule, i.e. we view the whole as a compositum of parts and deal with the parts separately. And if a part is too big, we repeat the procedure. The town is made up from neighbourhoods, which are structured by streets, which contain buildings, which are made from walls and floors, that are built from bricks, etc. eventually down to the elementary particles. And we have all our specialists along the line, from the town planner, via the architect to the solid state physicist and further. Because, in a sense, the whole is "bigger" than its parts, the depth of a hierarchical decomposition is some sort of logarithm of the ratio of the "sizes" of the whole and the ultimate smallest parts. From a bit to a few hundred megabytes, from a microsecond to a half an hour of computing confronts us with completely baffling ratio of 109! The programmer is in the unique position that his is the only discipline and profession in which such a gigantic ratio, which totally baffles our imagination, has to be bridged by a single technology. He has to be able to think in terms of conceptual hierarchies that are much deeper than a single mind ever needed to face before. Compared to that number of semantic levels, the average mathematical theory is almost flat. By evoking the need for deep conceptual hierarchies, the automatic computer confronts us with a radically new intellectual challenge that has no precedent in our history.Wow. No wonder students find computer science - in its pure form - so hard. It does seem that few are capable fully understanding the big picture. I include myself in this. Though one of my strengths is to understand a problem from a bird's eye view in the beginning, then work my way down into the details, this still works at a much smaller scale than the ability to inherently know the whole hierarchy of computing.
Later in the article:
There are several examples provided that aim to prove that pure computer science is not being widely accepted. I'd like to comment on these examples (skipping the zeroth) based on my experience since entering the field more than 6 years ago.
In the long run I expect computing science to transcend its parent disciplines, mathematics and logic, by effectively realizing a significant part of Leibniz's Dream of providing symbolic calculation as an alternative to human reasoning. (Please note the difference between "mimicking" and "providing an alternative to": alternatives are allowed to be better.)Needless to say, this vision of what computing science is about is not universally applauded. On the contrary, it has met widespread --and sometimes even violent-- opposition from all sorts of directions.
(1) the business community, which, having been sold to the idea that computers would make life easier, is mentally unprepared to accept that they only solve the easier problems at the price of creating much harder ones.
I'm reminded to my co-op terms at Corel and Ross Video. I had the privilege (?) of speaking or hearing from customers at both companies. Between these users and the business managers making the calls, it was amazing what they thought would be trivial to implement, and how little time they figured it should take
(2) the subculture of the compulsive programmer, whose ethics prescribe that one silly idea and a month of frantic coding should suffice to make him a life-long millionaire
Ah, the dreams of the young and fresh of mind. Of course, these days, we've seen a very select few who have accomplished this (or at least come close, since most things do seem to take more than a month code). This further fuels the dream. Of course, this whole process seems to have little to with computer science and more to do with an entrepreneurial spirit.
(3) computer engineering, which would rather continue to act as if it is all only a matter of higher bit rates and more flops per second
Some of my engineering friends (who I should note are not computer or software engineers) often ask me about the difference between computer science and engineering. In some ways this sentiment is a good description. I don't mean this as a slight to the engineers at all, because the world needs us both.
(4) the military, who are now totally absorbed in the business of using computers to mutate billion-dollar budgets into the illusion of automatic safety
...and they're still trying. On the other hand, the monetary support the military does put forth has resulted in some pretty darned cool research.
(5) all soft sciences for which computing now acts as some sort of interdisciplinary haven
I'm not entirely sure whether I understand this point, but I suppose it's a comment on such marriages as that between psychologists and computer scientists? Personally, I love the interdisciplinary nature of computer science. I think it allows people to find motivation for solving difficult problems (once they've seen the application).
(6) the educational business that feels that, if it has to teach formal mathematics to CS students, it may as well close its schools
What a shame this would be. Some schools like the University of Waterloo do give computer science degrees under the math department, so there is hope. But even at my school, students demand a "useful" degree, and as such want to learn things they will use directly in the field. Since schools need students to make money, and they need money to provide education, the world of computer science degrees has evolved to allow a practical, rather than theoretical, approach to those who want it.
That leads into the paragraph following the examples:
The problem with educational policy is that it is hardly influenced by scientific considerations derived from the topics taught, and almost entirely determined by extra-scientific circumstances such as the combined expectations of the students, their parents and their future employers, and the prevailing view of the role of the university: is the stress on training its graduates for today's entry-level jobs or to providing its alumni with the intellectual bagage and attitudes that will last them another 50 years? Do we grudgingly grant the abstract sciences only a far-away corner on campus, or do we recognize them as the indispensable motor of the high-technology industry? Even if we do the latter, do we recognize a high-technology industry as such if its technology primarily belongs to formal mathematics? Do the universities provide for society the intellectual leadership it needs or only the training it asks for?
I invite you all to read the rest of the article (and the beginning in its entirety, for that matter). We don't always get an opportunity to think about what we do in this way.
Monday, December 1, 2008
First you can hear from my co-presenter and fellow CU-WISE executive member Barbora Dej. She gives a great summary of both our talk and some of the other events we participated in.
Then check out a delegate's point of view, written by one of our CU-WISE Officers. You can really feel the enthusiasm she experienced when collaborating on women's groups, as well as her favourite talk and thoughts on networking.
If you enjoy articles like these, I'd highly recommend subscribing to the CU-WISE blog feed. Everyone is working very hard to keep it fresh by adding at least one new post per week, and we write about a wide range of topics.
Thursday, November 27, 2008
"My niece just took the ACT and got a perfect score on the math section. 25 years ago, when I took the test, the kids who aced the math section were pretty special. Her score, combined with straight A's so far in high school, suggest to me that she might be able to go to a top university (MIT?) based on her math aptitude. The rub is that she doesn't like math or science, even though she finds them easy. She doesn't want to be an engineer or scientist. I thought the folks here would be a great group to ask: What are some creative, not too nerdy professions that nonetheless require a talent for math, engineering, or science?"I was immediately reminded me of some of the discussions held at the National Conference on Women in Engineering last week. For example, one of the key themes touched upon was the fact that girls may not become interested in science and engineering because they see it as too focused on the tools themselves (computers, wrenches, electronics, whatever) rather than what can be done with them. This goes a bit further than the usual nerdy image and similar kinds of turn-offs.
The comments for the Slashdot article spent some time emphasizing that someone with good math or science skills shouldn't be pushed into doing a career they don't want to do just because of these abilities.
A few examples:
I'm from the UK and I suffered the same fate that you wish to throw upon your daughter - being coerced into a specific degree program at a top London university just because I excelled in that area in my secondary (high) school, without realising myself what a change it would be from the material I had learnt thus far through my life. It certainly didn't do me any favours.
I myself was pressed into (natural) 'science' because math was easy to me, which in the long run (decades) turned out to be a major desaster that I am still trying to recover from.
I agree - my sister was nearly pressured into an engineering route at college by schooling and sponsorship deals but stuck to her guns and has a postgraduate diploma in music performance on two instruments. She's very happy - she can do the music when the work is available for her instruments, and to fill in of the time can get "technical" positions in sales/marketing for engineering companies.
You are better off asking her what she wants to do. What is she interested in? If she has no idea then going to a large university where she'll be exposed to a number of different fields and opportunities is not a bad idea.
In fact, I do not disagree with this sentiment - nobody should be pushed into a certain field because others perceive it as being right for them.
It is worth our time to help young women see what these fields are really all about. If those who might have an aptitude for science or engineering never get a chance to see the real story - outside of the nerdiness, or the focus on tools - they may never discover that they also have a real love for it.
I think this is largely what the original question might really be about: How do I show my niece the amazing things scientists and engineers do to help society? What do they do with all these tools that the fields are so well known for? What makes these careers so fulfilling? By giving the niece the power of this information, perhaps she will make a more informed decision. And if that decision doesn't happen to be science or math or engineering, then that's ok.
Wednesday, November 26, 2008
I am amazed at how well this works on regular walls in the home. The video demonstrates that scratches made in the corner and above/beside doors work just as well as those made right beside the mic!
The demo shows a user controlling a music player with his scratch gestures, which is definitely cool, but I'm wondering if this might be better employed in the attempt to recreate those Minority Report immersive environments. Why use video to capture human hand movements as gestures, which could arguably require much more resolution, when some simple sounds would suffice? It does mean the user would be required to actually touch a surface to interact with it, but let's face it, that's much more natural than waving our hands in the air anyway.
Sunday, November 23, 2008
But the one thing I'm the happiest about is a new wiki I set up thanks to the suggestions of our audience. We had so much great discussion that could have lasted an entire day on its own. It would be a shame to cut that off without finding a way to continue sharing ideas.
The wiki is called Canadian WISE Groups and, I'm hoping, will be a space that WISE groups from all across our nation can list their contact info and share ideas on how they run their clubs.
There have been similar initiatives that I have heard about recently, but none so far have seemed to include both scientists and engineers, or they haven't covered the whole country.
If you know about a group that supports women in science and/or engineering, please consider requesting a membership to the wiki and adding it. There is also a list of links to organizations that support women, and it's not restricted to Canadian initiatives. If you find that your organization is not there, definitely feel free to join the wiki and add it! This site can only grow and be useful if you help build it.
Saturday, November 22, 2008
I made it to a couple of talks yesterday, but the one I remember the most was about entrepreneurship. Jennifer MacDonald appeared on CBC's version of the Dragon's Den to pitch her organic salad dressing that contained flax seed oil and didn't taste terrible because of it. She did fairly well in the Den, got a deal, and is now looking at options for selling her company after growing it with her investors (and she'll continue to profit as a result, of course).
She spoke with such enthusiasm that my small thoughts of one day having my own business turned into a real desire. This is partly thanks to Barb, who very much want to work with our CU-WISE executive team to make something happen (since we already work so well together). I have no idea what kind of business I'd like to do (design a product? provide a service? consult?), but I will now be watching for ideas and some kind of need in the market. Perhaps I should start reading books about the topic, such as ZAG, a title about branding recommended by Jennifer.
If that great idea ever does strike, I'm happy to know that there is help to get started. Take Women 2.0:
Women 2.0 is committed to increasing the number of women entrepreneurs starting high growth ventures by providing the resources, network, and knowledge for the launch and growth of their company.Maybe we'll even be able to enter one of their startup competitions:
Our vision is to be a catalyst for change, mobilizing a global community of ambitious women entrepreneurs seeking to advance the world through technology.
Despite the downturn in the economy, many entrepreneurs and VCs are saying that now is a great time to start a company. The Women 2.0 Pitch 2009 competition can get you started. Here is your chance to PITCH.In the meantime, I'm glad to know that my potential career path of becoming an instructor at university might support the idea of developing a start-up during the summer months off. The future feels very exciting...
Friday, November 14, 2008
Teaching > Carleton students CU-WISE
Posted Nov. 10/08
By Heather Montgomery
At the beginning of her graduate studies in 2007, Barbora Dej was looking for a way to connect to other women at Carleton who shared her interests. As a woman, Dej is a minority in her chosen field of engineering.
"I wanted to know, is there something at Carleton that supports women in engineering," says Dej. She scoured the Internet and eventually found the Carleton University branch of Women in Science and Engineering (WISE).
Last year CU-WISE, a student branch of the Ottawa WISE chapter, was revived by a dedicated team of women. The group brings together women from across all disciplines of science and engineering, for networking, discussions and social change.
participate in Carleton’s branch of Women in Science and Engineering known as CU-WISE.
"We’re not necessarily trying to increase the numbers," explains Gail Carmichael, a master’s student in computer science who is also on the CU-WISE executive for internal affairs.
"We’re trying to make sure that people who would be interested originally wouldn’t see those barriers and would try it out and not be afraid to do so."
The executive of CU-WISE focuses on staying organized. They exchange anywhere from 20 to 100 e-mails a week. They maintain their website and blog meticulously. For them, being able to have that virtual connection with potential members and interested people is a priority.
"Everything’s on the website," says Natalia Villanueva-Rosales, a PhD candidate in computer science who’s on the executive of the CU-WISE virtual communications committee.
"Every single detail, we take care of it."
Before its revival last year, CU-WISE was a struggling club at Carleton. Now, the group has over 100 members and is involved in hosting and participating in various events throughout the year. For a lot of the members, just knowing that there were many women like them out there was reassuring.
In September, CU-WISE hosted an event for first-year women that provided them with tips about how to survive their undergraduate degrees, and what to expect as a woman in science or engineering.
"Seeing all these first-years is sort of like seeing yourself," says Carmichael. "We all wish we’d had CU-WISE."
The women of CU-WISE also believe in social connection. They recently travelled to the Grace Hopper conference in Colorado to meet with women from all over the world.
"That’s one big reason women don’t get into computer science and engineering," says Carmichael. "They don’t understand that there is that social impact you can have as well. They imagine being in a cubicle all day coding. But there’s so much you can do."
Whether it’s one girl or 100, the women of CU-WISE want to let all women at Carleton know they’re not alone. That’s what drives them every day.
"If you make the difference in the life of a girl who doubted whether she’d come into something like computer science or engineering or if she was thinking of leaving the school and she stayed, that’s worth it," says Villanueva-Rosales.
On Nov. 26, CU-WISE is hosting a lecture by Carleton president and vice-chancellor, Dr. Roseann O’Reilly Runte.
Wednesday, November 12, 2008
Johnny Chung Lee brought us affordable multi-touch using the popular Wii remotes. On the more pricey end of the spectrum, Microsoft brought us multi-touch tabletop computing. One of the iPhone's greatest features (along with related products) is its intuitive multi-touch interface. All of these examples are great, but none seem to come close to slick interface used by Tom Cruise's Minority Report character.
Perhaps Mgestyk, the newest player in the game, has managed to bring us a little closer?
According to Gizmodo:
We've seen gesture controls in gadgets before, but Mgestyk Technologies wants to bring them to your home PC. Using only a 3D camera and proprietary software, the Mgestyk gesture control system is able to capture small hand movements and translate them into commands. These commands can be applied to almost any windows application, including video games. Judging from the clips they have on their site, the system seems to work as advertised, though there does appear to be a little lag. Pricing is expected to be within the range of a high end webcam which by our estimates is around $150.You can see the gestures in action for various games and apps in the below video.
To me, this isn't really anything too cutting-edge, but I did enjoy seeing how gesture-based gaming might look. I've concluded that, while it seems really cool to be able to aim and shoot with your own hands, I can't see anyone wanting to do it for long. If holding your shoulders tight to use your mouse can cause such havoc on your body, can you imagine having to hold your hands out in free space to play a game for a couple of hours?
I think the real potential for gesture-based computing lies in the area of "step-up and use" computing, like tourist kiosks. These systems generally aren't used for very long and should be very quick to learn. A well crafted interface would make use of a small number of intuitive gestures that even your grandma could understand. Time will tell whether anyone will be able to pull this off.
Monday, November 10, 2008
There are times when you might have found yourself a little shutter-happy when visiting some exotic, far-off land. Yet you probably still don't have enough photos of the exact same thing to recreate something like the Sphinx model. Fortunately, photo-sharing sites like Flickr help solve that problem! Starting with tags and geo-coding, and double checking by matching the photos to each other, we can find all the photos we need. That's exactly what researchers at Washington University did for the Community Photo Collections project, which became the base of Photosynth!
From the site:
With the recent rise in popularity of Internet photo sharing sites like Flickr and Google Images, community photo collections (CPCs) have emerged as a powerful new type of image dataset for computer vision and computer graphics research. With billions of such photos now online, these collections should enable huge opportunities in 3D reconstruction, visualization, image-based rendering, recognition, and other research areas. The challenge is that these collections have extreme variability, having been taken by numerous photographers from myriad viewpoints with varying lighting and appearance, and often with significant occlusions and clutter. Our research seeks to develop robust algorithms that operate successfully on such image sets to solve problems in computer vision and computer graphics.
For those with a few extra minutes (sixty-one extra minutes, to be exact), you can get a pretty good sense of the technology behind the project in this Google Tech Talk. The presentation isn't too technical, and uses some great demos to show what's going on. For the geeks out there, there is structure-from-motion source code available, too!
A lot of what's going on behind the scenes is related to what I'm trying to do with my thesis. We both need to find matches between two photos (or a panorama and a photo in my case), and recover the geometry between these entities. For applications like Photosynth, this geometry is used to obtain a 3D reconstruction of the scene (that's what all those points were in the Sphinx example). I might want to use the geometry to add virtual objects, like historical buildings or geographical information, to the photograph, using the known configuration of the panorama.
Thursday, November 6, 2008
First off, I'd like to share a description of my research that I used when applying for a PhD scholarship to ensure we're all on the same page (because the exact research goals and purpose change often in my mind):
Spherical panoramas have been used in such high-profile applications as Google's Street View to allow users to naturally explore real-world images from the comfort of their own homes. In the case of Google, crude street information is augmented onto panoramic images to aid navigation both while viewing the panorama
and, in theory, while driving or walking on location. It may be useful to augment a photograph (taken with a cell phone for example) of an intersection or tourist attraction while a person is actually standing there, but an exact camera location would be required to do this.
One way to obtain this camera location is to compare the photograph with nearby spherical panoramas (which can be found using a rough GPS location estimate). If the panoramas have been captured and saved with positional information, then the scene geometry between the user's camera and the panoramas will help recover information about that camera's position, thereby allowing for an accurate augmentation.
Previous work  has established a method to recover position information between two panoramas, and the theory established there may be applicable to this case of comparing a photograph with a panorama. This will be verified during the course of the research, but the thesis will mainly investigate the best way to efficiently
obtain a large number of match correspondences between the photograph and the panorama, as this is the first step to finding the mathematical structures that describe the geometry. The format of the panoramas in  is that of a cube. Because of the 'seams' along adjacent faces, some feature points may not find correspondences to the same features visible in the planar photograph. As such, this
format will be compared with a cylindrical representation of the panoramas, which has no seams but must deal with curvature issues, to see if more correspondences might be found.
In addition, it must be determined what information should be stored on a central server along with the set of pre-captured panoramas. As much work as possible should be pre-computed to ensure the user's photograph is sent back with an augmentation as soon as possible.
While road information such as that augmented onto images in Street View may not need to be highly accurate, there are many other applications that would require more precision. For example, virtual objects or textual information could be added to the photograph before it is sent back to a tourist learning about a historically significant area. In a case like this, a natural augmentation obtained with an accurate camera location is all but essential.
 Kangni, F. and Laganiere, R. (2007) Orientation and Pose recovery from Spherical Panoramas. ICCV
Basically, I'm trying to figure out the best way to find matches and/or an essential matrix between a cubic panorama and a photograph.
So far, I have taken the theory from , which explained how to find an essential matrix between two cubic panoramas, and modified it to work with a cubic panorama and a photograph. The trick here was that the photograph would not be calibrated (i.e. we don't know the camera's properties like its focal length). Usually, this would mean that we'd want to find a fundamental matrix instead. However, this would force us to abandon the advantageous ability to consider all faces of the cubic panorama at the same time (by using the normalized 3D coordinates of points on the face images). We would have to match each face individually, and once we found the face with the most matches, find a fundamental matrix between it and the photo. It would seem that using points on more than one face would help us get more matches and a more accurate result.
Instead, I looked into the possibility of using calibrated points from the cubic panorama and uncalibrated image points. The resulting matrix to find would be a cross between the calibrated essential matrix and the uncalibrated fundamental matrix. The basic idea is informally presented here, and I call it a "pseudo-essential matrix."
By hand picking some matches between some panoramas and photos, I was able to ensure that the pseudo-essential matrix idea was sound. Some initial results showing this are available here. The only major issue seen here was the instability around the epipoles.
I am currently working on improving the ability to find a pseudo-essential matrix automatically. The early progress can be seen here. Many of the matches found after the nearest-neighbour thresholding appear to be correct, but a pseudo-essential matrix is not found. I need to check whether the quality measures are too strict, and perhaps evaluate how my RANSAC algorithm is working.
By the time I am finished my research, I don't think that the concept will be ready for using on consumer mobile devices. But it would be really cool to see it used as a starting point for the next great mobile app! With the resources available at places like Google, I'm convinced it's doable.
Sunday, October 26, 2008
I belong to a mailing list called Systers:
Systers is the world’s largest email community of technical women in computing. It was founded by Anita Borg in 1987 as a small electronic mailing list for women in “systems”. Today, Systers broadly promotes the interests of women in the computing and technology fields. Anita created Systers to “increas[e] the number of women in computer science and mak[e] the environments in which women work more conducive to their continued participation in the field.”This list is very well moderated to ensure that messages all members get stay on topic (less relevant conversations often continue off-list). There are so many different topics, ranging from "help! my supervisor hates me!" to "anyone know of a good job in web programming in this state?" No matter what is on your mind, you can be sure that there are nearly 3000 technical women willing to listed and help.
To give you an idea of the kind of thing you'll see on Systers, I would like to share this little tidbit that appeared there -- it is being shared anonymously with the permission of the author. She provides a really interesting analysis on the state of women in computing and how it has changed over the last few decades.
I started in computer science in the late 70's. Back then, about a third of the kids majoring in CS were women. I worked as a programmer at a hospital in the summer - all the programmers were women. They tended to work carefully, spending a lot of time on planning, talking to the users, and documentation. They all had children and left promptly at 5 to pick up the kids from babysitters.I hope you'll consider joining Systers to discover the benefits of reading and contributing to topics like this one.
Sometime in the late 80's, the field really changed. Everything became more male oriented. A cowboy culture started prevailing - the hero image was the lone gonzo developer who code frantically all night, but couldn't communicate with anyone. The ability to write and communicate seemed to be less valued by managers, whereas the ability to work long into the night became a way to score points. At my last job, many developers didn't show up until mid morning, but worked well into the evening. It was a real problem for me and the one other female developer - we both had kids and needed to leave by 5.
And now I have come full circle and am back doing healthcare development. But now, the hardcore developers are all men (the project managers and business analysts seem to be women though). And they can't write or communicate, and they brag endlessly about working until 3am.
So in short, I do think women are self-selecting out, but I don't think it is due to the nature of working with computers. The authors of that study are ignoring the fact that there used to be a lot of women in computer fields. I think that as the culture became more hardcore "male", women got out, starting a vicious cycle. The things that women often do well, writing and communicating, are now less valued, encouraging even more women to leave the field. Yes, I know we give lip service to the ability to work in teams and communicate with users, but the reality is that the developer who can bang out lots of code fast is always seen as more successful than the developer who can document designs well, or who is a careful tester.
Tuesday, October 21, 2008
I made many connections via the CONNECT project (which I found to be an incredibly easy and useful way to gather attendee information), so I had to narrow my list down to those people who were the most important to the future of CU-WISE and to my own. I forced myself to send each of them an email earlier tonight, and am now crossing my fingers that they remember meeting me. Luckily, I recorded the context behind each person that I could, so I was able to add some memory-jogging details into my notes.
First I wrote to a woman from Intel I met during the speed networking event. She was excited about CU-WISE and thought there might be some potential to help us out with a mentoring program. And who knows - maybe we'd even be able to set up a sponsorship partnership?
Next, I touched base with a very energetic member of the Women 2.0 team. This organization promotes an entrepreneurial spirit among technical women, who often seem to avoid the idea of starting up a company of their own for some reason. I thought there could be potential to somehow collaborate and spread this spirit among our members here at Carleton University.
I sent a special thank-you to an instructor I met completely by chance during one of the conference's informal buffet dinners. We had a good chat about life as an instructor, and what it means to choose that path over that of a professor. It really helped me feel confident in my choice to aim for a career in teaching instead of one in both teaching and research.
Finally, I wrote to a women very involved with ACM-W (ACM's Committee on Women in Computing) and SIGCSE (ACM Special Interest Group in Computer Science Education). CU-WISE might like to have an ACM-W chapter some day (though we'll have to get a student chapter of ACM first!), and aims to hold a local celebration of women in computing when the group matures more (ACM-W provides excellent resources to help with this). The outreach activities we participate in are definitely related to SIGCSE, and I personally have an interest in the topic of computer science education.
This will be the first test of any serious networking efforts I have made so far; I'm quite excited to see who writes back and what they will say.
Tuesday, October 7, 2008
If you thought that computer science was all about sitting in boring old cubicles, pounding away on the keyboard and writing code all day, think again! You can connect computer science with just about anything you’re interested in.
Take video games, for instance. If you have a passion for entertaining others, you can use the coding skills you learn in college to help develop the next blockbuster hit in one of the fastest growing industries around. But it goes much further than just programming. If you’re the artistic type, for example, you might enjoy working on a game’s graphics. Or maybe you are more into the nuts and bolts of things, in which case maybe you’d rather get games working on all different types of machines. Then there’s that whole thing about making games think with artificial intelligence. Obviously, games open up a whole world of possibilities!
When was the last time you opened up Facebook to find out what your friends were up to? Sure, a web page may seem like a simple thing to create at first glance. Besides the security issues involved, you have to think about how to scale an application so that a million people can all use it at the same time. No user wants to get a page that is slow to load just because so many other people are using it at the same time. Concepts from computer science, like parallelization, can help ensure this doesn’t happen.
Have you ever found yourself fascinated by the human mind? If psychology gets you excited, then you’d be the perfect candidate to help design the next coolest human-computer interface. Mice are going out of style for better input methods like the touch screen popping up on popular devices like the iPhone. How will people interact with computers at home in the future? What implications of various new inputs are there? How can innovative new designs help special groups, like the elderly and disabled?
You can even connect computer science to medicine and biology. Computational biology might help find new ways of treating cancer or analyzing genome sequences. All those medical records scattered between hospitals and doctors offices might one day be digitized into one central database. Telemedicine may bring more care to remote areas in Africa.
Of course, these are just a few ways to get excited about the field. In reality, no matter what makes you jump with joy, you can use computer science to make it bigger, better, or faster.
Before the official conference came to a close Saturday morning, I met an instructor from Illinois who has been teaching with just her Master's. I have been leaning towards this career path (as opposed to being a professor) for many reasons, but after speaking to this person, I feel much more confident that this is the best choice. I think I will still try to pursue a PhD, if it all works out funding-wise, but concentrating on my better-than-usuals teaching ability seems to make the most sense. Even if I wouldn't get paid as much, I wouldn't have the pressures of running a research program or working all summer. For the sake of family life and using those talents that set me apart, I think this is the right thing. Thank you, Vida, for telling me about your experiences!
While two of the four of our travel group left Friday night/Saturday morning, Barb and I stayed until Sunday. On Saturday, we really wanted to go hiking, but didn't have a clue where to go. Luckily, I ran into Kendra from Google. I met her in New York at the Anita Borg Canada Scholar's Retreat, and mentioned our hope to hike. She said that a group of girls from Google (New York and California) would be meeting at the lobby 8am Saturday, and that we were welcome to join them. Perfect!
The hike was amazing. I was definitely out of breath very quickly thanks to the high altitude, but boy was it worth it! The views were simply amazing. It was also really nice to chat with the Google girls on the way, hearing about their experiences coming to the US for the first time, living in small apartments in New York City, and so on. Thanks for a great time, ladies!
Back at home, I am overwhelmed by the amount of information I gathered at Grace Hopper. I have much to go through! But this is a very good thing. For the first time, this pile of knowledge is filled with very useful stuff, particularly things that I might be able to use with CU-WISE for outreach or for talks to our members. I also plan on getting in touch with some of the contacts I made while there, though I haven't had the chance to yet.
Next year's conference is in Tucson, Arizona. Hope to see you there!
Friday, October 3, 2008
To open the session, a list of possible reasons for declining female enrolment was once again provided. The usual points were made with a few new ones. For instance, the influence of girls' parents and the differences in spatial ability were suggested as potential problems.
Two of the programs stood out to me as being rather unique. The first was a summer camp type of program that targeted disadvantaged Hispanic students, and actually paid them a stipend to come, since doing so would mean not being able to have a summer job. The second was a mother-daughter program that had girls' mothers participate with their daughters. It emphasized realistic goal-setting and sought to build self-esteem. The mother-daughter idea is really compelling, and our Women in Science and Engineering group might use this idea for a high-school conference we've been thinking about doing.
A third panelist mentioned that outreach programs can easily run into sustainability issues including funding, energy, interest, critical mass of faculty involved, and the question of whether to target only females. One interesting idea was to tie outreach activities to academic coursework of computer science majors, where participating helped you earn credit. I think this is a really good idea and might even work for Carleton University's School of Computer Science (my school), as they really want to attract females as both students and faculty.
The discussion part of the session brought up some of the usual points as well as some new ones I hadn't heard before. Here's a list of some of the ideas I managed to write down:
- Why can't outreach be considered a recruiting tool and thus get funding accordingly? One problem here is that it wasn't long ago that there were more than enough CS majors, even if they weren't female, so it was hard to make the recruitment argument.
- Can the courses be sold as reasoning instead of computational thinking? Unfortunately, everyone has a different idea of what reasoning is...
- Do these outreach programs interface with groups like the Girls Scouts? It didn't sound like it, but everyone thought it would be a good idea, especially for sustainability.
- Schools should make it easier to do a double major with computer science (with more courses counting toward both) so girls can connect computer science with other areas.
- A noted issue is that girls might get excited by the outreach programs but then have no high school courses in the subject. They may end being behind when they go to college and lose the confidence to try it there.
- One way that one program helps dispel the geek image is allowing the girls to invite friends to monthly meet-ups that happen for a year after the summer camp.
- "If everyone in this room was a mentor to one person, what a world of difference it would make!"
Things kicked off with a quick "who are we" from the multiple presenters. Techbridge began by telling us about their after school and summer programs that have such innovative activities as building green doll houses and taking apart a lawnmower engine. Google briefly mentioned their pre-university initiatives and emphasized their ability to partner with other programs. The woman from Intel, originally from central Africa, spoke about how close this outreach stuff hits home for her. She grew up with a mother who always told her she could do anything, and not to listen to anyone who said otherwise. Her passion was truly inspiring.
After the welcomes, an ice-breaker was held, mainly to give an idea of how you can start off your own activities. The idea was to think about whether you strongly agreed or disagreed with particular statements, and stand in a line with the strongest agreer at one end and the strongest disagreer at the other. You had to talk to others to find out where you stood, relatively speaking. The takeaway is to always make sure you start with something interactive.
Next, a quick survey on what the audience felt girls imagine about science engineering revealed many of the usual answers. Geeky, boys, hard, failure, isolation, needing to be super smart, and working 24 hours a day. But we know that outreach helps. One Techbridge student was quoted as saying "I walked in there and I knew that's where I wanted to work." Not bad!
A recipe for success gave a good idea of how you might be able to organize the time during an outreach activity. The idea is to mix one part session and one part personal (informal and interactive), and give it time to develop. These tips were given:
- Start with a personal story.
- Share your passion.
- Make it interactive.
- Dispel stereotypes.
- Provide academic advice.
I had to leave this session a bit early to catch the Birds of a Feather that overlapped with it a bit (to be blogged about next), but I have to say that this talk was very well done. I think the audience will walk away with a great ability to do their own activities and, certainly, the enthusiasm to want to.
The course used a Scribbler robot for its cost effectiveness and robustness. It was developed at Georgia Tech and has a camera and Bluetooth. You can also stick a pen into it so that when you command it to move a certain way, it will draw pictures. An interactive Python shell could be used to enter commands for the robot to move.
The enrolment for this course ended up being almost all boys -- there was just one girl in the end. However, this one girl ended up being so good that the boys completely changed their mind about whether girls could "do" technology. Also, the students were younger than most outreach programs accept (7-13 years old), but the ideas should be adaptable to many situations.
Here's some of the advice given for this part of the session.
- Kids like to explore, so give them an adventure. They robots can go on a mission to find certain things to take pictures of, like planets in a mock solar system.
- Be sure to take time to interact with students one on one, especially with the younger children.
- Present computing as a medium for creativity and see what they come up with.
- Be innovative. When presenting the concept of variables, for example, Mad Libs were used.
- Give them something to work with, like basic code snippets.
- Abstract harder concepts, like loops, with more useful code snippets.
A new group of students annually spend their summer teaching a free, five week technology camp to grade 8 girls. The course goals include providing a social network for these young women, as well as good role models. The organizers don't want to see the girls lose interest in science and technology because of social pressures. In addition to reaching out, of course, the undergrads gain experience teaching computer science.
The basic curriculum this past summer went something like this:
- Basic computer literacy, including software like Microsoft Word and PowerPoint
- Chance to take apart donated computers and learn about the hardware inside
- HTML/CSS and web design via lectures and then step-by-step tutorials
- Object-oriented programming with Alice
- Basic algorithmic thinking
- Simple Python programming
- Robotics with Vex systems
Another good tip is to understand the group you are working with. Maturity and experience levels will vary greatly, and cliques are inevitable. Try to pick out the leaders and pair them up with the struggling students to help them out. If someone is clearly not as interested as you'd hope, engage them in different ways, like giving them a special job as a helper in the lab. As was said during the talk, it can be "hard to make someone interested, but not hard to make them feel part of a community."
Finally, if you want to have faculty give presentations during the course, as this project did, make sure the presenters know to be interactive. Field trips that encourage team-building are great, as well as visits to more technical destinations like museums.
That more or less sums up the talk. I'm glad these students got the chance to present their experience at a technical conference (an opportunity I still haven't had as a Master's student). My only suggestion would be to speak slower at times. Otherwise, great job girls! I will certainly be thinking about these things if I run my computer science and games mini-course again next year.
Thursday, October 2, 2008
Wednesday, October 1, 2008
We all got to the conference centre pretty early this morning (two arrived at 7:00am, and the other two, including me, at 8:10am). We had various Hopper duties to fulfil, like being a greeter and running the t-shirt and Hopper registration booth. I helped with a session monitor training meeting and then watched over the Internet Cafe most of the day.
We also officially registered for the conference today. We got a nice bag with the conference poster on the front. It was filled to the brim with goodies, including notepads, pens, and even a book about key early programmers!
While checking out the loot, an undergraduate video blogger came by to see if we would say a few words. The result is a part of the video embedded below (or linked here). Skip ahead to 2:40 and then 3:37 to see us! We also helped take a little video of getting our badges scanned for the CONNECT project.
In the afternoon, I went to the resume clinic and ended up chatting with a professor about how to do an academic resume. Although many people wanted help getting a job in industry, this is exactly what I was hoping for!
Later, there was a speed networking event where we got four minutes to speak to another person and exchange contact information. Before this event, we were encouraged to think about our "30-second commercial" and use that to introduce ourselves. I didn't do a very good job because: (1) I wasn't planning on doing this, so I wasn't prepared; (2) it's really dry here in Colorado, probably because of the elevation, to my voice was dying quickly; and (3) the room was really noisy and I couldn't concentrate or hear the other person very well. I made a few contacts I think will be very useful, and ended up randomly "meeting" a fellow Anita Borg Scholarship finalist. Figures!
That brings me back to that main theme of networking again. Even in the welcome session for new GHC attendees, the word came up over and over again. It is truly one of the main purposes of the conference. We are here to meet other technical women, and our ability to make these connections meaningful could make the difference of fulfilling our dreams in the future. So many doors open by talking to the right person. I have not made huge efforts doing this yet, but I have been happy about the people I have met so far. The next two days will bring some interesting possibilities...
Tuesday, September 30, 2008
We first stopped at the Spa and Lounge to check in. Our room wasn't anywhere near there, but there was no concierge where we were staying, so we were asked to come here. This gave us our first view of the lake and surrounding hotels and activities. Unbelievable.
After checking our bags and getting our keys for later, we headed to the conference centre. Three of us were going to be helping stuff swag bags at 1:00, so we figured we'd head over early and try to get that lunch they promised us.
Little did we know that the morning shift of bag stuffers would be so efficient that we were no longer needed! Oh well, one can't complain about getting an unexpected free afternoon along with one's free lunch! So after an enjoyable bite to eat outside, we walked back to the lake to see what was happening there.
Back at the lake, the blue-green water was just too tempting...
... so we used some coupons we got when we checked in and rented a paddle boat and kayaks. The geese and ducks followed us all around the lake. We spent an hour and a half floating around. When I was drifting by myself, it felt so peaceful. Just me, the water, and the mountains. Everyone should get a chance to relax like that for an hour every once in a while.
After getting a bit burned on our faces, we set off to check out our room in hopes that it was ready. We were a bit disappointed by its lack of wireless Internet, awkward layout, ugly decor, and old age. It was also surprisingly secluded, with no shuttle service even! However, we got lucky - and I don't know how we keep getting so lucky - because after Serena called for help on the wireless connection, they offered to put us in a room that actually did have it. In a better room. For no charge. Wow! The new room is everything the first room wasn't... with a great balcony view to boot!
So that's it for today, and we are thinking of heading to bed soon because we have volunteer duties early in the morning. I don't think we'll be getting out of those by any stroke of luck. But that's ok, because we should meet some great people in the process. Can't wait to see how tomorrow goes!
We congregated at the Ottawa International Airport at 1pm today, meeting two full hours before our flight was supposed to leave. Of course, nothing is that simple, so as we tried to check in with our pre-printed boarding passes, we learned that our flight had been delayed and we would miss our connection in Chicago. Great. Although we booked with Air Canada, our flight was with United Airlines. We got switched to Continental and flew via Newark, New Jersey.
After running to the other end of the airport to get new tickets printed, and then running back to the new checkin desk, it was off to US Customs. It was surprisingly easy for me to get through, and once I was done, I waited in the gates area. And waited. And bought a muffin and cookie from Tim Hortons. And waited some more. Finally, two of the other three showed up. Where's the fourth? Oh, you didn't see her? Hmm...
Turns out our fourth member, who happens to be travelling with a Mexican passport, got a "random" security interrogation. Luckily, she's apparently used to it as she's flown to the US several times, but this almost caused her to miss the flight! We were so worried she'd be left behind to find her own way. She says that as she came down the escalator, she saw the boarding lady all the way on the other end of the gates area start to walk away after final call. Our fearless WISE webmaster managed to run across and get on the plane. Phew.
I was so glad to get to Newark and off the teeny little Continental express plane. Although it was only three seats wide and I got to be on the side of the aisle with one seat, I couldn't take any more of Mr. Sniffles. The guy right behind me was obviously under the weather, and couldn't seem to contain his urge to snortle, sniffle, gag, etc. Loudly and disgustingly. Nice.
The flight to Denver was mostly uneventful. I watched Speed Racer and chatted a bit with my seat mates. One was a really tall guy (who necessarily took up half of my seating room in addition to his own) returning home from a trip to Italy. The other was a young woman who was also returning home, but in her case from a CD release party for her friends in New York City. She was very nice and even ended up giving me a dollar bill for the headsets because they ran out of change.
So now we are here. Tomorrow, we are going to Keystone resort, and all but one of us are doing bag stuffing as part of our Hopper Volunteer duties. Our room is going to be great; it's a suite with two bedrooms and two bathrooms. We'll each get our own bed! Who says travelling isn't fun? ;)
Friday, September 26, 2008
Tuesday, September 23, 2008
But like I keep saying again and again, wouldn't it just be so great to have imagery taken in real-time, while you're standing there, and augmented with more interesting things in addition to the straight-line street markers? It's high time I either get me an Android-powered phone or figure out where to do a Google internship so that I can work on this myself!
Monday, September 22, 2008
In the project's own words:
CONNECT is a research project designed to explore techie ways to help people make and maintain meaningful relationships from casual encounters. By participating you will be able to record and access connections you make at the conference. You will receive tips, motivation, and support for improving the value of connections you make.The way they let you record your connections is to set you up with these name tags that I assume have some kind of bar code. Your tag is colour coded to show whether you are an undegrad, grad student, from the industry, and so on. When you sign up, you indicate which kind of people (from the same categories) you are interested in meeting. You can also mark down the areas of computer science you are interested in, including artificial intelligence, computer vision, algorithms, software engineering, and so on. When you meet someone you wanted to connect with, you both have a volunteer scan your name tags. A database tracks the fact that you met, and you will later get an email with the contact information of those people. Pretty cool!
If you can't wait to see who you might find interesting, you can even search the database now.
I think this is a really innovative way to facilitate networking, especially at a techie event. It almost feels like a game, making that first contact less intimidating. It also makes remembering who you met easy. Now you don't have to juggle business cards containing minimal information, wondering who you talked to and what about. With CONNECT, you get full profiles online, including a photo!
I can't wait to see who I'll meet!
Saturday, September 20, 2008
Google notes the following as one of the many possibilities for future cool stuff to do with mobile phones:
Augmented reality: Your phone uses its arsenal of sensors to understand your situation and provide you information that might be useful. For example, do you really want to know how much is that doggy in the window? Your phone, with its GPS and compass, knows what you are looking at, so it can tell you before you even ask. Plus, what breed it is and the best way to train him.I'm not so sure this is the most interesting use of augmented reality on a mobile device, but it does paint a pretty picture of what might be done. I think that a Street View using imagery taken on the spot would be very valuable, particularly in places with changing seasons (since the panoramas may have been taken in the summer and you are standing in a snowy intersection). Tourists might enjoy seeing historical buildings placed into the scene they are standing in front of or getting other useful directional information placed onto their screens.
The list goes on, and who knows -- maybe the techniques I'm researching for my thesis will help make this more feasible, since it could help provide much more accurate camera positions and therefore better augmentations. Exciting times.
Thursday, September 18, 2008
Enkin was an entry to Google's Android competition, and though it didn't win, it does offer a halfway-there solution to the dream of realtime street level mapping. As described in the documentation, "the fundamental principle of Enkin is to display location-based information in a way that bridges the gap between reality and classic map-like representations." It is built for a mobile device that makes use of Google's Android SDK. A video shows the software in action on the main Enkin webpage.
Enkin has several modes, including a standard map visualization of the area the device is physically located in. Alternatively, a user can switch to a satellite mode that provides a skewed three-dimensional view of satellite data, oriented in such a way that it lines up with the direction the device running Enkin is facing. The user can have special tags augmented onto the satellite image that point to significant geographical locations (a friend's house, the hospital, a favourite restaurant, etc). These tags are visually placed with a downward arrow pointing to the actual location of these landmarks.
More significant is the "live mode" as it allows the tags to be augmented onto live video feed. These tags indicate how far in meters a nearby landmark actually is. This is nice, given that you can start to mentally eliminate the divide between the real world and the digital representation of it.
But this is also where I see the possibility of improvement. If the scene geometry between an image taken of the real world and a set of panoramas stored on a central server can be found, then a more accurate and useful augmentation might be possible. For example, buildings could be highlighted, or roads could be identified as they are in Street View. Even if these entities are not visible, knowing exactly where they lie could be helpful. Because more computational time would be required to accomplish this, augmenting live video is probably not feasible today. But combining these more detailed photos with the Enkin's video augmentation could enhance the user's experience and make navigation that much easier.
Tuesday, September 16, 2008
The first thing that struck me is how well organized the Ottawa University/Carleton liaisons were. As we arrived to the presentation, we were given a comprehensive information package along with some free pizza. Part of that package included a code to help you register as a volunteer on the national website. There is going to be a four hour long orientation session next week at Ottawa U, and it sounds like it will be both informative and rather fun (based on the promise of flashy science experiment demos).
Looking through the different areas of expertise that a volunteer could cover is almost overwhelming. No matter what you are best at, you can present it! Apparently there are many "kits" available to volunteers for hands-on activities. I'm curious about what they might have for computer science, though I think I'd like to do some CS Unplugged activities regardless. I'm sure I will learn more at or after the orientation.
When I signed up as a volunteer, I had the chance to list the schools I was most interested in partnering with. So, naturally, I chose my mom's high school (where she is a special education teacher), the high school I went to, and the elementary school on my street. I can't wait to get in contact with these schools and start arranging some presentations!