Google is reported to have spent millions of dollars on its Street View project. Roy Ragsdale, a student at West Point, has done a pretty nice job of putting together a portable panorama camera setup that includes GPS and Google Earth file output for under $300, using exclusively open source tools.
Anyone who has ever tried to combine open source software with off-the-shelf hardware knows that a lot of challenges can arise. Does my version of Linux have drivers for this USB camera chipset? Can I use the video camera with software that expects still images? Can my Linux box talk to this GPS receiver? Roy has done the heavy lifting by determining a valid combination of hardware and software to achieve a successful panorama. I find it kind of ironic that Roy envisioned this sort of first-person perspective device to be used in combat, while I see it being ideal to be used in protests. In either case, it fits the purpose of his class, which is called “disruptive technologies.”
This list shows not only the software that was used to capture the images from the webcams, but also the data flow from beginning to end. Roy needed to make some changes to luvcview to pull still images while in video mode. He also had a Python script that was collecting the images from each camera and writing them to a file. It would be nice to see his code.
- UVC driver – USB Video Class driver for Linux
- luvcview – tweaked it, to get still images from video
- custom python script to capture 8 JPEG images (takes 8 seconds)
- exiftool – inject date/time into JPEG images
- gpicsync – latitude/longitude from a GPS receiver, add coordinate data to image metadata
- autopano-sift – identifies common images then aligns on a horizon
- hugin – stitches images together
- gpicsync – GPS tag panorama and generate google earth file
- PTviewer – view panoramic images
Despite Roy not making his Python script and patches available, he did a great job of describing his setup. I expect to see a lot more DIY open source panorama setups in the near future, as Mr. Ragsdale tries to shrink his design down to the point where it can be worn in a headband.
[via IEEE Spectrum]