OpenDroneMap
opendronemap.org
opendronemap.org
I'm mostly on a weekly basis capturing the progress of my home as it is built. I have a DJI Mini 2 and using Dronelink to create the missions. I was originally using DJI Flight Planner + Litchi but it's paths it was generating for the area I wanted to cover wasn't great and it forced my gimble to look straight down, I'm sure Litchi may have let me adjust that somewhere but I couldn't figure it out. I had 85% overlap but even with that, as the house started getting built ODM seemed to be unable to generate point cloud points for some of the walls thus resulting in large holes in the geometry. I switched to Dronelink which overall has been a much more user-friendly experience for the mission planning and it lets me control the gimbal angle. While my photo clarity isn't as great as now, my drone doesn't stop for each photo, having my camera angled slightly throughout the mission has greatly reduced the missing geometry in the outputted model. I've been very pleased with ODM thus far though the amount of settings in WebODM have been overwhelming and I've settled on just using the Default as it seems the best at giving me decent 3D geometry that is compressible in a GLTF format.
I'm working on a explorer to catalog the phases. https://crysin.github.io/new-construction-explorer/
Any suggestions on better ways to improve the output are welcome.
The Python code is probably easier to understand: https://github.com/OpenDroneMap/OpenSfM/blob/287/opensfm/act...
1) The huge list of software in the ecosystem is overwhelming. Bury it. The choice of picking the two alternative ways of running it at the top is fine, but that's all the front page should have to say about software.
2) Critically, on the front page you need a quick demo or diagram showing how you get data into it. As a potential user, I really don't care about the open ecosystem or joining a community (this is good content for a "Developers" tab) - instead I want to know how much effort it's going to take me to capture the images and turn them into a cool map. What software does the drone need to run? Can you push video into ODM and get a map out, or do I need to preprocess those images? How far can I go with it, and how are those results achieved? Do I need to be a developer or can I be a semi-technical drone operator? FPV drones ok, or just DJI? Etc etc.
A major reason for the quality issues is that the major drone manufacturers work directly with the proprietary photogrammetry software providers in the field to optimize the algorithms to their drones. These drone manufacturers then promote these proprietary solutions. This puts ODM at a disadvantage as there is no short-term financial incentive for manufacturers to promote ODM.
Like other fields, the proprietary photogrammetry industry is increasing moving to implementing their solutions exclusively in the cloud. This is forcing folks to give up their data and building a data moat - a problem for my organization.
I hope ODM keeps developing and becomes as ubiquitous as linux. Its quality is getting close for my organization to consider its implementation. Keep up the great work!
The quality issue is an interesting one; I remember having a discussion with a client that was considering transitioning away from Bentley's ContextCapture (CC) and they mentioned that CC was generating much denser point clouds compared to ODM. CC tends to generate very good looking point cloud models, except its algorithms extract points from a mesh interpolation approach, so sometimes you end up with points where geometrically there shouldn't be any. Sure they look good, but is that "good" quality?
Would you care to elaborate? My belief is that all the photogrammetry engine wants is that the drone manufacturer does as few processing as possible on the images, in order to not alter the geometry. I don't see what kind of algorithms coming from the drone manufacturer would help, and therefore I don't see how that's a problem for ODM.
Not criticising ODM (I love OpenSfM and ODM), on the contrary: I feel like those are not fundamental limitations of ODM, and one could put the work of improving support for specific cameras without the need for proprietary information available only to Parrot employees.
Or am I missing something?
The point being that you are correct, these are not limitations of ODM, but in some cases it does give vendors a head start (a leg up) in implementing good support for certain cameras, especially multispectral cameras like the Sequoia.
Around a year ago I needed to obtain an aerial map of some specific area, but due to recent drastic changes (construction work) and poor quality of the public maps I had to somehow create my own. I fly drones for recreational purposes so I was thinking about using it to make that map when I found out about ODM which is exactly what I was looking for. ODM itself just processes already obtained images (AFAIK) so there is also a whole process of getting them from drone. That's when I found about other software for planning fully automated flight paths so there is a perfect overlap between the photos (required for quality maps and 3D reconstruction). I managed to make a high quality map with 1px:1cm ratio via ODM that I still use from time to time.
Like I mentioned if you own a drone I would recommend to try it out even if it's just for fun as for my case I learned a lot of other stuff I didn't knew before like that automated flight path planning.
This is _very_ cool software and I've started making maps of my own property every ~month or so just to see how things change. I started by manually flying missions and eyeballing where to take photos, and everything worked great. I see other mentions here that say the "capture" part can be done for free by PIX4D, I ended up paying for Dronelink to do the same thing.
It's much nicer to have a consistent mission so things always come out the same, and way more efficient to have the software handle where to take the photos. Having the overlap in both directions taken care of is very nice. Now I just sit back and make sure nothing crazy happens (e.g. strong winds) and swap the battery out when it dies before resuming the mission. SO neat!
I wanted to annotate a map of my property to keep track of the fruit trees I am planting. Google maps resolution for the area is extremely low, but a basic DJI drone, pix4d capture (free for capture) and ODM can give you a nice detailed imagery with very little work. The difference was being able to see a stand of trees vs individuals.
Combined with Dronelink, my workflow is largely automated. Just a few more pieces I'd need to have in place to be able have it be more or less hands off.
The next piece I want to tackle is creating a watched directory or S3 bucket that automatically spins up a spot instance, monitors for the completeness of the work, downloads the results to S3, and shuts down the spot instance. Then all I'd have to do is watch the drone fly and move photos into a folder.
The one thing I missed is some intros/guidance on how best to take photos to feed it; which angle, how much spacing, any tools to use in flight etc. I got pretty good results with my first run but was going to blindly experiment to see if I could improve it. Any tips?
https://help.dronedeploy.com/hc/en-us/articles/1500004964282...
I use the pix4d capture app for setting the flight path. It can be used to just do the capture part for free, where as their paid product can also do the stitching for you but seems prohibitively expensive for a non-professional who just wants to make a small number of maps.
We might need to put this page in a more visible place.
Some of them include the resulting imagery.
edit: the above was user error (or my lack of patience waiting on the high-rez final photo to load!), everything works wonderfully.
Thanks so much for the ad hoc tech help, will definitely be playing with this more!
You can also use --build-overviews for speeding up load times in QGIS or --cog for generating Cloud Optimized GeoTIFFs that both open fast in QGIS and can be streamed fast over HTTP.
At the end of the day, all you need is pictures taken "the right way" for the engine. Typically, you want:
* Sufficient overlap between the pictures: you need multiple pictures looking at each point in the scene from different angles. * Don't change the focal length, because that changes the camera model and makes it at least harder for the engine. * Ideally have some fairly accurate GPS location in the exif metadata of the pictures. * Avoid motion blur (i.e. don't fly too fast for your camera), and blur in general (i.e. you don't want too much vibration, but you don't need a gimbal).
Some Android/iOS apps out there do "flight planning" for you, so it may help (you select the area you want to map and the app instructs the drone to take the right pictures for you). Different apps support different drones, so that's something you want to check.
But anyway you should try ODM, because it does not depend on the drone, it just needs pictures =).
Hope this helps.
That said, I made our drone photogrammetry pipeline with ODM and I wouldn't use colmap.
There's still some annoying things that no software can seem to do: with a single camera, I'd love to create a 3D map of a road. But no matter how much overlap of photos I get, (I mounted a stabilized GoPro to a truck and took video, than pulled together geotagged stills) for some reason I could never get a good point cloud out of that data. Even colmap. Colmap does it's absolute best if you walk around in a circle with a common central point of focus. It's frustrating because I KNOW the 3D information is there. I can see it. Plenty of features to match. But for some reason this seems to be a hard task for current SFM libraries.
For example if neighbor complains about their land being mapped. I don't even know if it's a justifiable complaint. I'm sure it depends on the local laws.
I guess my question is, how is this project (or drone pilots) going to defend against lawsuits. (if they occur) (seems inevitable)
1. https://www.faa.gov/uas/commercial_operators/become_a_drone_... 2. https://www.faa.gov/uas/commercial_operators/operations_over...
his question seemed clear and reasonable to me, which you answered well, minus your comment in the final sentence.
Then the first car driven across America.
Much later cycling, running, walking.
When is going to be the first drone flight across America?
Lots of technical and political hurdles.
I am sure the military has already done it, I mean at the consumer level.
OpenDroneMap has dependencies on GDAL, Proj4J, GeoPackage, SciPy, Python, Nginx, and Django, among other packages. Those foundational libraries tend to have more permissive licenses (PSF, MIT, BSD 3-Clause, Apache 2.0 etc.).
Here's a forum post covering the same issue: https://community.opendronemap.org/t/licensing-queries/6545/...
Disclosure: I'm not an opendronemap community member, so this is based on some googling only.