Category: WebODM

OpenDroneMap Update: Cloud Optimized GeoTIFFs, Plant Health, Histograms and More!

 

WebODM 1.2.0 has been released today. This is a major release update that brings some shiny new features to the platform, most importantly a large effort to write a dynamic tiling system (powered in large part by rio-cogeo and rio-tiler, thank you Vincent Sarago for the great software!) They include:

Cloud Optimized GeoTIFF support

COGs are “regular GeoTIFF files, aimed at being hosted on a HTTP file server, with an internal organization that enables more efficient workflows on the cloud.”. Sounds like a perfect match for WebODM. This feature in fact has been on the TODO list since mid-2018.

But what are “efficient workflows”? In WebODM’s case, the primary goal of using COGs is dynamic tiling; once we store our maps and elevation models using COGs, we can display (and manipulate) them in real time before serving them to end users. Which means no more static tiles and a lot of cool new features, such as plant health algorithms, dynamic hillshading, histograms, levels and color maps!

Plant Health

This feature has been asked over and over by our community members (we hear you!). We finally added support for Plant Health algorithms. The current list of algorithms is probably not comprehensive, but we made sure to set it up in a straightforward manner to allow for contributions even from non-developers. We look forward for feedback from the community for the addition of more algorithms.

People can apply the plant health algorithms to JPG images that were captured with a spectral filter. We are working to add full support for .TIFF inputs (both 8bit and 16bit) and for multi-camera captures, which will land in ODM within the next few months.

Histograms, Hillshading and Color Maps

Thanks to dynamic tiling we can now visualize rasters statistics with histograms (showing the distribution of values). We can also change colors and enable hillshading on-demand.

We can also stretch the color distribution to visualize better looking orthophotos (this feature is called levels in programs such as GIMP that do image editing).

Left: default orthophoto. Right: Histogram levels adjusted to stretch color distribution.

We are just scratching the surface of what we can do with dynamic tiles. Another cool thing we can do is choose a discrete color map (Pastel) and apply it to an elevation model.

Which highlights areas of similar elevation.

New Icons

We’ve updated the look of WebODM to use the newer version of Font Awesome! If you find missing icons, please let us know, it was a tricky upgrade to perform and we might have missed a few.

Take a moment to share this post with your followers on social media and update your copy of WebODM. As usual report any issues on GitHub.

Share Massive Drone Captures Directly from WebODM with Cesium ion

 

Reposted from the Cesium blog.

We’re excited to announce that the latest version of WebODM (OpenDroneMap) now ships with support for 3D tiling with Cesium ion.

WebODM allows users to generate point clouds, 3D models, and terrain from aerial images. With this new Cesium ion integration, users can also fuse the data they’ve collected with other geospatial datasets, such as the Cesium World Terrain, all placed in an accurate global context.

This photogrammetry mesh of Malalison Island, Philippines, was tiled on Cesium ion and fused with the global Cesium World Terrain. See a live demo in your browser. Source data captured by the American Red Cross and processed with OpenDroneMap.

It’s also possible to layer multiple versions of data, which is useful if, for example, you’re monitoring an area by comparing scans from different points in time.

Even though such high resolution 3D data often comes in gigabytes, our new integration makes it easy to tile that data into 3D Tiles and host it with the Cesium ion platform directly from the WebODM dashboard.

Cesium ion plugin in WebODM

The latest version of WebODM now has a “Tile in Cesium ion” button which will tile and host massive 3D datasets in the cloud.

MicMac Support Lands in WebODM

 

Continuing our recent announcement about MicMac integration, today we are pleased to announce that support for NodeMICMAC in WebODM is now available!

We have started making changes to the NodeODM API to accommodate a more engine agnostic definition, which will continue in the future to improve the synergy between projects.

Existing WebODM users (using docker) can get up and running with MicMac by simply typing:

./webodm.sh update
./webodm.sh restart --with-micmac

Kudos to the DroneMapper team for the development of NodeMICMAC that has made this feat possible.

We look forward to hear the community feedback.

NodeMICMAC – a new WebODM Node

 

Origins

OpenDroneMap has an origins story rooted in a joke:

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?

So many FOSS options… .

There are plenty of communities, spaces, and markets for Free and Open Source (FOSS) projects: in the web map rendering world we have MapServer and a dozen upstarts. In the map javascript world OpenLayers, Leaflet, and the GL ilk and more. At the lower level, we have JTS Topology Suite, GEOS, and all their derivatives.

After making the 2014 prediction post and then deciding to start OpenDroneMap, I had a doubt: what if someone comes along and creates something better? What if something better already exists? What if there is no point to the work? And then I remembered all the above and relaxed. Also, if someone comes along and creates something better, in the informal parlance: yay for the world!

The challenge

The reality when I started the project was there was an existing project that was FOSS and was photogrammetry for drones and other small cameras: MICMAC. It’s exquisite: great quality, fully FOSS being a CeCILL-B (I like to think of it as a French version of the GPL (edit — it’s the French version of the lesser GPL (edit on the edit: CeCILL-B is equivalent to BSD…)), but IANAFL [I am not a French Lawyer] and not completely sure that’s correct), and at the time, difficult to use for non-French speakers.

MICMAC has evolved a lot since then, with better docs and community posts in both French and English, however usage of it can still be a challenge. Free and Open Source is hard. It can be hard for users, it can be hard for maintainers. So, it is such a relief when FOSS becomes ever so much easier.

The hook

So, it is with some excitement that I turn your attention to NodeMICMAC. NodeMICMAC is a fork of NodeODM, and thus provides web API access to MICMAC, in the same way that NodeODM does for OpenDroneMap’s command line ODM application.

NodeMICMAC makes using MICMAC really easy, and should slot into the OpenDroneMap ecosystem pretty seamlessly, thanks to JP and the folks at DroneMapper.

When we spoke with JP, I was curious about his motives: this is such a cool move that changes the industry. Why? The answer: for the same reasons that we work on OpenDroneMap, to grow this really cool open photogrammetric ecosystem.

(Sidenote: check out DroneMapper’s geoBits: ArUco Ground Control Point (GCP) Targets and Detection for Aerial Imagery — more on that later — so cool!).

Results

But, you may ask, how does it stack up? Frighteningly well. If you have been paying attention to the improvements in OpenDroneMap the last couple of years, you may have noted orders of magnitude improvements in every step in processing. Even with these, MICMAC shows us how a mature photogrammetry project should display its wares.

Point cloud comparisons

ODM vs. MICMAC’s point cloud over a house:

Animation comparing point cloud for house from MICMAC to OpenDroneMap

ODM vs. MICMAC’s point cloud over a drainage:

Animation comparing point cloud for ditch from MICMAC to OpenDroneMap

Orthophoto Comparison

Orthophoto over truck, fence, road, vegetation:

Comparison of MICMAC and ODM orthophotos over road, fence, and truck

Orthophoto over a duplex house:

Comparison of orthophoto of house between MICMAC and OpenDroneMap

Takeaways

MICMAC is, as it’s reputation indicates, a bit of a grail. It gives us some very nice results, and now simply at the expense of spinning up a docker instance. Watch this space the next few weeks — Masserano Labs will be working with DroneMapper on integrating it into WebODM and quickly graduating it to a first class citizen of the OpenDroneMap ecosystem.

So, will NodeMICMAC replace NodeODM and all the work in ODM? Not so fast! There’s still space for what we’ve built. Remember my intro above? Of course you do. With upcoming capacity to handle massive datasets, NodeODM, PyODM, ODM, and other projects will still get our love. But as they say, if you can’t beat them, have them join you. Right? I think that’s the phrase… . Perhaps MICMAC isn’t joining OpenDroneMap, but we will be happy to fork their code and contribute back where we can, and thanks to JP and DroneMapper for making this possible!

Introducing Contours in WebODM

 

With the 0.9 release of WebODM we are introducing the ability to preview and export contours directly from map view. This has been a much requested feature and we decided to take on the work to implement it.

Behind the curtains we used the GRASS GIS engine which already powers the volume measurement plugin to do the contours calculation, with some help from GDAL/OGR. The beauty of using a familiar language to power these computations is that it’s really easy (if you are familiar with GRASS) to understand how the information is calculated. No mistery. It’s all here.

http://github.com/OpenDroneMap/WebODM

Enjoy!

WebODM 0.8.1 is out! Improvements and Task Imports.

 

Originally posted on https://www.pierotoffanin.com/2019/02/webodm-0-8-1-is-out-improvements-and-tasks-import/

Today we’ve released version 0.8.1 of WebODM. It features several improvements including:

  • Ability to import tasks that have been processed on another WebODM instance (or via webodm.net or NodeODM).
  • Custom TMS/XYZ basemaps and no basemaps toggle.
  • Review step prior to processing a dataset, which should reduce mistakes when creating a new task and selecting the wrong node or options.
  • New UI colors.
  • Simplified process for starting a development environment (deprecated the devenv.sh script in favor of a –dev flag to be passed to webodm.sh)
  • Volume measurement bug fix for iframes and public links.
  • Export volume measurements! This was probably overdue, there was no way to export the geometry / volume calculation results out of WebODM. Now you can!

Water runs downhill

 

Animated GIF of nearshore water

Water running downhill is a challenge for elevation models derived from drone imagery. This is for a variety of reasons, some fixable, some unavoidable. The unavoidable ones include the challenges of digital terrain models derived from photogrammetric point clouds, which don’t penetrate the way LiDAR does. The avoidable ones we seek to fix in OpenDroneMap.

Animation of flow accumulation on poorly merged terrain model.

Animation of flow accumulation on poorly merged terrain model, credit Petrasova et al, 2017

 

The fixable problems include poorly merged and misaligned elevation models. Dr. Anna Petrasova’s GRASS utility r.patch.smooth is one solution to this problem when merging synoptic aerial lidar derived elevation models with patchy updates from UAVs.

Another fix for problematic datasets is built into the nascent split-merge approach for OpenDroneMap. In short, that approach takes advantage of OpenSfM’s extremely accurate and efficient hybrid structure from motion (SfM) approach (a hybrid of incremental and global SfM) to find all the camera positions for the data, and then split the data into chunks to process in sequence or in parallel (well, ok, the tooling isn’t there for the parallel part yet…). These chunks stay aligned through the process, thus allowing us to put them back together at the end.

For a while now, we’ve been in the awkward position with respect to the nickname: split-merge. It lacks a lot of merge features. You can merge the orthos with it, but not the remaining datasets. And while this will be true for a while longer, we have been experimenting a bit with the merging of these split datasets (thanks to help from Dr. Petrasova). Here for your viewing pleasure is the first merged elevation model from the split merge approach:

Digital surface model of Dar es Salaam, merged from 4 separately processed split-merge submodules.

Digital surface model of Dar es Salaam, merged from 4 separately processed split-merge submodules.

More to come!

From Images to Commons: Fast Sharing to OpenAerialMap

 

OpenDroneMap processes aerial imagery. OpenAerialMap (OAM) collects aerial imagery. It’s just natural that the two projects should have some form of integration.

Today, thanks to the efforts of participants from both projects, we are announcing a new feature in WebODM for quickly sharing processed orthophotos to OAM. We expect that this feature will increase user’s participation in the collective effort to build an open access repository of aerial imagery.

Why should we care about open aerial imagery? Aside from the many reasons that have been covered elsewhere and that are not within the scope of this post to discuss, freely accessible aerial imagery is going to be key to keep up with innovation trends. With the recent improvements in AI, availability of training data is going to be a requirement for developing solutions that are “smarter” and provide better analytics.

One of the interesting applications of AI for OpenDroneMap is automatic parameter tuning based on scene detection. Currently users can tweak dozens of different parameters before processing a dataset. It’s often a painful trial-and-error process. AI could enable workflows in which images are passed through a scene detector that can answer queries such as “is this a picture of farm land?” or “is this an urban area?”. Depending on the scene, certain parameters could be automatically tweaked to yield better results, without needing user interaction.

To start contributing open imagery via WebODM, simply update the program to the latest version and look for the “OpenAerialMap” menu.

We will be presenting more details, including a sneak peek of how to start creating your own WebODM plugins, at FOSS4G in Dar Es Salaam on August 29th @ 12:00 in the Bagamoyo room. Look for our talk From images to commons: fast sharing to OpenAerialMap using WebODM in the conference program.

Hope to see you in Dar. Karibu!