Hello there,
I’m currently working on my master thesis, working with ODM to design an automated solution to create a map of a field used for agriculture.
I would like to include some background info about ODM and possibly something about the history of how this project got started. Sadly I can’t find anything tangible online, only the first brief mentions of the project which do not provide sufficient information.
Hopefully someone can point me towards something.
Thanks in advance!
Welcome!
Sounds like a great project.
What resources have you used thus far, and what gaps have you identified?
Having a specific scope where you can be helped might make it easier for folks to pitch in
Sounds like a great project!
There have been some good talks as foss4g in the past about ODM. They are all on youtube, but unfortunately each year is on a separate channel and none are well indexed so hard to find.
You can maybe start by perusing their past conference programs… also poorly indexed but you can find some things via a google search on the foss4g website
(link)
I actually had to start at Wikipedia, because that’s the only information I could find.
From the references provided I found this paper which only referenced the author announcing OpenDroneMap at Foss4G 2016 in Portland (Chapter 2.3).
The conference paper is locked behind a paywall and that’s basically all the relevant information I could find.
The summary of ODM’s background is supposed to be a small introductory part for the chapter in which I will document all the work I did in ODM.
Edit: added the chapter for said announcement
I haven’t come across their YT videos yet, thanks for the suggestion!
Check out some of the talks by Howard Butler from Hobu (creators of PDAL and usgs.entwine.io) as well. They are super interesting
Fun stuff. I can fill some things in. We are a few years in now, so writing some things down might help. I’ll probably need to write this in installments and eventually will need help from others… . Also, this is highly selective: an analysis of pull requests would be a useful thing to augment this walk down memory lane of mine… .
The original inspiration was circa 2003, attempting to map carbon sequestration from red-edge camera images, with more musings almost a decade later:
Flights of that red-edge camera were via a big red balloon:
The problem was that most computer vision code of the time was DARPA funded for murder bots and not yet production ready for stitching aerial imagery from some rando PhD student holding a string on a balloon in the North Woods of Wisconsin.
That said, while the paper you reference is generally correct, OpenDroneMap was first announced in a tangible way at FOSS4G Portland in 2014. I’ll come back to that, because it started again as a jest when I was asked to predict the future in December of 2013 of what would be hot in Geo in 2014:
While the last decade has been dominated by the growing hegemony of the global base map, mapping will swing now for a while towards the principle of mapping the world, one organic pixel at a time. 2014 is the beginning of artisanal satellite mapping, where we discover the value in 1-inch pixels from personally and professionally flown unmanned aerial systems (drones). There is, as all things military-industrial, the dark side of drones. But as with all of these technologies, we will be discovering the great democratizing power of the artisanal, as applied to ‘satellite’views.
OpenDroneMap anyone?
It was purely a joke, a bit of whimsy aimed at the desire so many of us have of a broader purpose rooted in community while recognizing that so much of what we do in mapping is rooted in violence and empire. But, the wise know that jokes are dangerous. They speak into existence something that didn’t exist before. This joke took root. So: I bought a domain.
That year was also my first to propose a budget as a budget manager at my employer at the time, Cleveland Metroparks. I had been a manager for a few years, but without budget authority. I had been inspired by conversations with USGS personnel who helped with detailed mapping at the National Park Service, employees who suggested that drones might be most useful for mapping things like wetlands at high resolution, among other applications. But flying drones in the US had just become hard: 2012 saw the passing of the FAA Modernization and Reform Act which for the first time delineated clear commercial vs. non-commercial purposes for small, uncrewed aircraft, but didn’t require resolution of the new rules until 2015. So: we wanted to start a drone program, but couldn’t fly yet. This meant we had time to work on doing prep work for later. Some prominent photogrammetry software for drones, relatively new at the time, was just south of $50k/year. $50k is enough to start an open source project. It isn’t anywhere near enough to finish one, but it’s enough to give a project legs and wings, and see if it goes anywhere.
So, I proposed we allocate a few 10s of k’s of USDs to starting OpenDroneMap and it stuck. This was December 2013.
Side note: I believe very strongly this is something that public institutions should do: resourcev projects that align with a public good, but not to necessarily remain the steward of that public good forever, especially public goods that have global impact like OpenDroneMap.
In late December, I managed to get an end-to-end photogrammetry process in place (images to point cloud). The tool that did that was BundlerTools, a toolkit of Ruby and Perl scripts that made using Bundler (the grandparent of so much computer vision / photogrammetry stuff) “easy” to use. And by easy, I mean possible.
And so, the first version of OpenDroneMap was a fork of quesda’s BundlerTools. For a long time the repo referenced this with an homage to Ship of Theseus, as there is nothing left of the original code any longer. Every thing has since changed.
In spring of 2014, it was becoming increasingly important that I figure out how to make progress on OpenDroneMap, beyond playing with other people’s code. At State of the Map US, I first announced the project mostly as a 5-minute lightning. It was there I met Jan Erik Solem and the Mapillary crew and asked them to collaborate on building something together. Jan Erik suggested I engage another Swedish photogrammetry firm (Spotscale). But in the end, we worked with Mapillary too.
The year went by. I was asked to keynote and run a PostGIS workshop at FOSS4G Korea (local conference, not the 2015 FOSS4G Seoul). I had a great week, didn’t talk about OpenDroneMap, and due to some travel problems (lost passport), showed up very jetlagged to FOSS4G Portland where I gave this rambling, cringe worthy, but sufficiently compelling presentation introducing the project:
Afterwards, Michele M. Tobias and Alex Mandel pinned me down in the hallway, they had gotten OpenDroneMap running and had processed some data in it (any other two people trying would likely have failed), and asked me about next steps. The dataset they were trying to process in ODM, collected by Michele Tobias on the beaches of California, was our first test dataset, still available here:
I also did a workshop and poster session at the CrisisMappers conference in New York in November of that year thanks to an invitation from Jen Ziemke.
Not too long after, we had Spotscale port the Perl to Python and chop off the Ruby part of BundlerTools. It was a pretty minimal port: it was Python that looked a lot like Perl, so it made Python folks understandably angry.
Spotscale helped identify and integrate MVSTexturing so we could have full resolution texturing of meshes and orthophotos (January 2015) and Mapillary, especially Pau Gargallo returned in force to collaborate on the project. By February of 2015, OpenSfM started to underpin the SfM side of the house.
DK Benjamin finally removed the last of the Perl in late 2015 and did much of the lift to make the Python much more pythonistic. Jesse Crocker was helping out a bit with fixing bad stuff and by now DK Benjamin was getting deep into the project.
Somewhere in here, Catarino designed the main and very iconic OpenDroneMap logo, pinging me on Twitter and asking if I minded.
In 2016, we received a Humanitarian Innovation Fund grant to make OpenDroneMap easier to use, with a proposal to add a web interface and improve accuracy,. I’ll look up some notes on this and expand with people, orgs etc… But it was around this time that Piero Toffanin took an interest in the project. He asked if he could help with the web side. I told him: absolutely, only two rules: no Django and no NodeJS. So, he implemented NodeODM using NodeJS and WebODM using Django, and he’s known to ignore my specific technology choices ever since.
Since I started the command line tool and Piero started (counts on fingers, switches to toes) all the other projects, we are co-founders of the ecosystem. It means I probably get more credit than I deserve, but that’s how founder stuff seems to work, so we’ll go with it.
Things got better from 2016 onward, Piero and everyone since has made sure of it. More on that later. But to frame it a bit, in February of 2017, DK and I went to the OSGeo Daytona Beach Code Sprint. It was an opportunity for the first time for each of us to meet Piero. I set aside a whole day to get WebODM set up, having not done much with it yet. DK already had pull requests in on it, but I hadn’t tried it yet. 40 minutes later, it was running on my laptop, I had met Piero, and I was wondering what to do with the remaining hours of the day that I had allocated for figuring out how to get things working.
In 2018, caught in traffic in Dar es Salaam with Freddie Mbuya while my workshop was supposed to be starting downtown for FOSS4G, I soon learned that Piero is not only a great coder, but a great presenter. I showed up, and he was already doing a fantastic job leading the workshop in my absence.
More on the Piero years next… .
Other cruft from the early days:
Great writeup!
For history, there’s also the older mailing list archives:
My first interaction with the project started here: [OpenDroneMap-users] Web GUI and API for OpenDroneMap
Ooh! I nearly forgot that mailing list existed. That message looks familiar!
Also, summary of the Humanitarian Innovation Fund objectives that ultimately were facilitated by DK and Piero’s work is immediately after Piero’s message:
Thanks a LOT, that is way more information than I can reasonably justify to put in my Thesis.
I’ve also seen some information I can include in the main introductory part regarding the overall possible impact of ODM and automated Drone Usage in general.
It will take me some time to work through your message and dissect if there’s something missing and what I can use.
Ha! Yeah. I’ve been meaning to write this down for a while, so I took your query as a prompt for that.
But high level: started in 2014. Announced first as a project to be started at SOTMUS in DC. Announced as a FOSS project more officially in Portland. The overall ecosystem was established when Piero sent that list serve email in July of 2016 at the outset of NodeODM and a web api for the project. The rest is just details and musings.