• Subscribe

    Subscribe to This Week In Panospace by eMail.
    Subscribe in a reader
  • License

    Creative Commons License
    This work is © 2008-2012
    by Yuval Levy
    and licensed under a
    Creative Commons License.
  • Entries

    January 2019
    M T W T F S S
    « Dec    
  • Archives

LGM Day 1

We’re at LGM. Yesterday  I picked up the Ultra Wide Views, Fahim in downtown and Pablo coming from Germany at the airport. We spent the late afternoon / early evening mounting all the canvas and the few photopaper prints; then we looked at Sébastien, Vincent and Jean-Ambroise set up the LightTwist driven Cyclorama. We had a bite with Benoît Ozell, his support for everything happening here at École Polytechnique de Montréal is fantastic. Dev Ghosh joined us after his plane landed.  Jim Watters arrived after dinner. I worked until 3 AM on my notebook.

This morning most things worked as planned but still neded some oiling. The exhibit of 360° views from a dozen artists on the Cyclorama was ready just in time for after Sébastien’s speech, with some minor details corrected afterwards. It was delighting to receive the visit of .Jean-Pierre Lavoie, one of the most successful panorama photographers in Canada, who has pioneered usage of immersive medias in the news. LightTwist made a great debut.

I am running on my last juices, but all the interesting people keep me going. It’s good to see familiar faces; to put a face on a name known from the mailing lists; to meet new people and hear about new ideas. This conference is refreshing. I’m capturing some of the moments on video, but won’t have time to process it for a while.

Andrew Mihal arrived a few minutes ago and Yulia Kotseruba is scheduled to arrive late tonight. This will complete one of the largest Hugin developers line-ups in a single location. Friday night is the conference’s official dinner, but we’ll have our team dinner Thursday night in a yet to be defined place.

Keeping In Touch

Groundhog protecting his holeIt’s good to see Fahim keeping his Google Summer of Code 2008 branch up to date. His advanced mask editor was (and still is) ahead of its time and we have not yet found how to integrate it in the Hugin panorama creation process.

Fahim is an example of a student who has succeeded the transition from Google Summer of Code into the community. He will even join us at LGM. A Google Summer of Code project is an exciting, exceptional time. When in your lifetime have you had the opportunity to spend three months full time doing what you want to do and be paid for it? It is critical to manage the transitioning back to daily life.

During the summer you are on a payroll. After that, very few open source projects can afford to pay their developers a salary. You’ll have to do with other rewards such as reputation, kudos, karma, or just having fun scratching your own itches.

Money comes with the obligation to work full-time. No such expectation from a volunteer Open Source contributor. It’s not even part-time, it’s spare-time – those slow evenings or rainy weekends when there’s nothing else to do.

So how to manage the transition from full-time paid “employee” to spare-time volunteer contributor?

  1. Manage expectations – yours and the community’s. Be realistic about how much time you can devote to the project and what can be done in that time. Don’t overload yourself.
  2. Start with a formal break. Even if it is just a week away from the project, it will make it clear to you and to the community that one period is over and a new one is beginning.
  3. Be aware of your changed availability. Spare time is usually much less than part time. Three month full time is the equivalent of giving back to the project every Sunday afternoon for two years.
  4. Get back to the project with a small, self-contained task adapted to the time you have on that day. Remember the qualification tasks? With your expertise now you can probably get a similar task done in less than two hours.
  5. End your first day back on the project with a commit and a mail to the mailing list. Finish that self-contained task to get a feeling of accomplishment.
  6. As you become increasingly confident with your new role of spare-time contributor, grow the scope of what you pick up and spread it across weeks and months.
  7. Most important: have fun and scratch your itches. If not, consider parting ways and make a better use of your precious spare time. Nobody will hold that against you, it is your prerogative to dispose of your free time as you want.

Sneak Preview IV

Another new feature developed during the Google Summer of Code 2008 coming to Hugin in the future: an advanced mask editor.

In panorama stitching, overlapping images are stichted together to a single image. Because they are taken at (usually) slightly different points in time, there may be movement between them. The traditional way to deal with movement is to have enough overlap covering the area and then masking out manually and painfully, in the Gimp or in Photoshop, the areas concerned.

Fahim Mannan, mentored by Daniel M. German, has written an advanced masking tool. This is quite a feat for only three months.

Masks can be useful in many stages of the process: at the stage of control points (CP) detection they are useful to tell good areas apart from bad areas. CPs further away suffer of less parallax than CPs at close distance, and at the blending stage they can help decide which of the overlapping images should be retained in the final panorama.

Like many new functionalities, this questions the current workflow model and the related GUI in Hugin, which has already been stretched from its initial design for the inclusion of photometric adjustment and the processing of image stacks. It is likely that more work is needed before this feature will hit your desktop.

Maybe not for the next release, but it is in the pipeline.


It is always great to see a Google Summer of Code student blend well into the community. Fahim Mannan is such a student. Last spring, after he got selected for GSoC, I met him in Montréal, Canada, where he is currently enrolled in a Masters in Computer Science at McGill University. His area of interest are Computer Vision and Robotics.

Fahim is naturally reserved, but get him started talking about Computer Vision and you’ll see the sparks of passion in his eyes. You’ll hear a motivated and knowledgeable student who knows where he is going.

The Google Summer of Code is his first serious experience at contributing to Open Source, and it is turning out to be a good experience. Fahim summer project adds masking capabilities to Hugin’s GUI. He is quite independent and self-motivated, and can count on expert mentorship from Daniel M. German, a former libpano maintainer and regular community contributor. Fahim posts his progress reports on his project’s blog.

Even with student’s life and his own GSoC project, Fahim occasionally finds the time to chime in and help out in the community when his expert skills are needed.

Recently, a change introduced in the enblend-enfuse code disrupted the building process in Windows. Fahim was quick to provide a working solution.

The above panorama of our meeting is enfused and has a little bit of ghosting. Unfortunately the deghosting code that was written for hugin during last year’s Summer of Code is only applied to HDR stacks. When will it be ported as an option to enfuse? And when will we see code to extract multiple exposures from an HDR file and enfuse them together?

When the dust settles

It’s a few week before the official coding starts. The students are bonding nicely with the community. Ideas are flowing, and some patches too. I can’t wait to see what they will do when they are officially on Google’s payroll and assigned to work full time on hugin.

While Pablo and Alexandre P. are at LGM, time to introduce properly this year’s team that will participate in the Google Summer of Code. There is a lot to be written, and more may come over the next few months as the summer unfolds. For now, here is an overview of the six projects we’re working on, of the people, and of exciting things to come.

The Projects

There are six projects this year in our portfolio, even though only five are listed on the Hugin/panotools entry at Google. The sixth project is a joint effort with VideoLAN on their leading cross-platform media player. It is listed on their page at Google.

OpenGL hugin preview

The preview windows is central to the panorama making process. It is here where the author looks at his composition before rendering it. It is here that framing decisions are being made, interactively. Right now the interaction is slow.  James Alastair Legg, mentored by Pablo d’Angelo, will improve the panorama preview windows by giving it the speed of OpenGL. We expect near real-time interaction for the author when composing his panorama.

Automatic Feature Matching for Panoramic Images

Critically important to stitching panoramas is to identify overlapping images in two features and align them in space. In the past, this was tedious, manual work. Then control point detectors came along. Those available to hugin users are still tainted by patents. It’s a two step process: detecting features and matching them. In Google Summer of Code 2007 Zoran Mesec wrote the detector, MatchPoint. This year Onur Küçüktunç will write the matcher, mentored by Alexandre Jenny, author of the original autopano and of Autopano Pro. A beautiful example of cooperation and co-existence between the proprietary and open source world. We expect to have a fully patent free control point detection process.

Masking in GUI

Overlap regions between two images are the nature of stitched panoramas. Since the world is in movement, such overlaps often present challenges that won’t match. The current solution is to render each image on a separate layer, and then mask out manually one of the two images so to display only one frozen instance of the moving object. This can often be a painful work at the single pixel level. Fahim Mannan, mentored by Daniel M. German, will introduce a simpler workflow: just mark the moving object with a couple of approximate brush strokes and his code will work out the exact object boundaries automatically. We expect an improvement for those using hugin to stitch action panoramas.

Batch Processing

Photographers often come back from the field with tons of photographs to stitch. A lot of this could be automated. Even more so with the up and coming pano-videography. Marko Kuder, mentored by Zoran Mesec, will improve hugin’s batching abilities. We expect to be able to process repetitive tasks without human intervention.

Machine-based Sky Identification

Some areas of photographs are better suited for control points than others. The sky, with its moving clouds, definitely not, as good control point don’t move between images. Timothy Nugent, mentored by Yuval Levy, will train a support vector machine (SVM) to identify clouds in the sky as a bad area for control points, so that it can be masked out before triggering the control point detection. Once working the method can be extended to other features as well, such as foliage and water.

Panorama Viewing in VideoLAN

19 years after Tim Berners-Lee invented the web there is still no universal format to view panoramas on the web. Apple’s QuickTimeVR, the original technology to display full spherical panoramas, is not available on platforms other than Windows and the Macintosh, and it is no longer developed by Apple. A lot of good things have happened with Flash panoramas in the last year. Nevertheless, a lot of legacy content out there is captive of the QuickTime format, like the World Wide Panorama. In Google Summer of Code 2007 Leon Moctezuma added functionality to FreePV. This year Michael Ploujnikov mentored by Yuval Levy will integrate panorama viewing in VLC, a leading cross-platform media player. We expect Linux users and users of other alternative platforms to have access to the majority of QTVR content soon.

The team

I’m happy to pass the admin role to Alexandre Prokoudine this year. We had more available mentors, student applications and project ideas that we would have loved to follow through, but resources are limited also for large corporations and Google is already very generous with us. We would have loved to see students working on leading edge image processing under the supervision of Andrew Mihal of enblend/enfuse fame, or John Cupitt of VIPS. Maybe next year. Other mentors that registered with our organization on the Google Code page and are left without student are Bruno Postle, Jim Watters and Ken Turkowski. We are a team, and like last year I expect a lot of help and community support to the six lucky students.


Cooperation is a topic I particularly care about for this edition of the Google Summer of Code. We are leveraging the Summer of Code to reach beyond our small world. I am proud that we found an ally in the VideoLAN team, a larger mentoring organization. Granted, we are natural allies: hugin/panotools is used to create media; and VLC is used to play it. Nevertheless, this cross-collaboration, whose idea is the result of a meeting with Jean-Baptiste Kempf at the 2007 Google Summer of Code Mentor Summit, is IMO a demonstration that the whole is worth more than the sum of the parts and that an initiative like the Google Summer of Code adds much more value to the world of FOSS than what can be stated in (highly appreciated) numbers. 175 mentoring organization, 1125 students, 90 countries.

And in our small world we’re working a partnership deal to further motivate and propel the hugin/panotools team, similar to what we did last year. Stay tuned for an announcement.

First May Installer

This is the first hugin installer in May, and probably not the last one. Fahim Mannan, one of the students that joins us for this year’s Google Summer of Code, is leading the way into the Community Bonding Period. He has helped fix some bugs that warranted for a new snapshot. The other students are being active as well. This will be a great summer.