Anyone had success processing files captured using a DJI Mavic Air?
I’ve had a lot of success with the Mavic Pro. Mavic Air is a little harder to do flight planning on, although I understand with a little hacking you can do the flight planning.
New Mavic Air / ODM / forum user here, just to let you know that I was able to generate an orthophoto + a 3D model of my first flight with my Mavic Air (I used Drone Harmony for planning the flight). I just left all options default for both DH (eg overlap) and ODM (no GCP) so the output is only nice and not breathtaking but I guess it’s just a matter of me improving my planning / settings skills !
Edit : found out that CCD size is not properly detected, so the option can be added.
Yes, WebODM can process Mavic Air captured images with caveat. I used both Litchi and Map Pilot and both worked, although, Map Pilot makes things little easier.
Map Pilot still have problem with displaying Mavic Air Video Feed real time and made me wary but in the end, pictures came out OK.
HOWEVER, the caveat. If you want to use it to create accurately located map, beware that Mavic Air EXIF group Geo Tags are truncated. This will significantly reduces the accuracy of the location, and, in some cases, processing produce mangled image.
Fortunately, non-EXIF tags have non-truncated Geo Tags and I patched up some script using exiftool to write-over EXIF tags. It’s a clunky solution but worked. At least the map is overlaid nicely.
If you go over DJI Forum, people have been complaining about it and DJI haven’t even responded, yet, so if you haven’t locked in on Mavic Air, think twice…
DJI’s own GSPro doesn’t support Mavic Air as of yet. This makes me question DJI’s commitment on Mavic Air as nothing other than recreational toy.
Hopefully, enough people complain about this problem and DJI fix this in coming firmware release.
Good to know re: the EXIF tags! My impression is that DJI is trying to keep the Mavic Air from stealing market from Mavic Pro, so this is perhaps not surprising.
Can you share your approach for dealing with the EXIF tags? Is there geographic info stored in full form elsewhere than the geo tags that you patched in?
Sure, if you inspect jpegs from Mavic Air, GPS coordinates are stored in tags belong in two separate groups. I don’t know why they replicate but have slightly different values from one set to the other.
I first suspected that perhaps DJI wasn’t sure about the Mavic Air’s GPS accuracy. However, after copying tag values from XMP to EXIF, the produced orthophotographs location precision was improved.
Basically EXIF:GPSLatitude and EXIF:GPSLongitude are used for processing but they are inaccurate.
XMP:Latitude and XMP:Longitude tags seem to have more precise locations. (Perhaps one or two decimal places more.)
What I did was for each file extract XMP:Latitude and XMP:Longitude and copied on the corresponding EXIF tags, namely, EXIF:GPSLatitude and EXIF:GPSLongitude. Since there is no way to inspect and write tags in the same run, using command line ‘exiftool’ by Phil Harvey, I had to do two pass approach. Reading, writing in separate sessions. Since I used Python, I also used ‘pyexifinfo’ module. At least, you can read tags from multiple files in one pass and store in-memory…
Following is the tags from DJI Mavic Air jpeg files. My files all had positive values for Longitude and Latitude. I didn’t have to update Lon/Lat reference for East/West and North/South. I don’t know if this will always be the case. I am not an expert on this coding. Perhaps, someone else can shed light on this Lat/Lon reference issue.
PS D:\Pictures\DJIMavicAir\20180615> exiftool -EXIF:GPSLatitude -XMP:Latitude *.JPG ======== DJI_0143.JPG GPS Latitude : 37 deg 47' 28.00" # EXIF 37° 47' 28.00" Latitude : +37.7913676 # XMP 37° 47' 28.92" . Note that extra .92 on second(").
BTW, below is the link to the DJI forum about the issue. Hope many can request DJI about the problem…
That’s wild. This will be very useful for other Mavic Air users. Thanks for figuring out and documenting!
I am very disappointed by DJI. They just updated the firmware this week and the fix is still not in. It seems my script is working. I am newbie to python and python isn’t probably the best to integrate with exiftool which is built on Perl.
Nevertheless if anyone stuck in unfortunate situation like I am now, I am willing to share it. I cannot package the script nicely and the performance of the script isn’t exactly top notch… At least, it appears to produce the jpg’s with corrected EXIF geotags.
I think DJI should disclose this fact to the public. Even the service staff where I visited weren’t aware and may will shell out close to a grand just to find out that Mavic Air isn’t suitable for mapping.
Better yet, they should fix this problem (or feature!)
I’d love to get a copy of your script. I came from a Phantom 4 and just ran into this problem today and came upon this thread trying to research how to deal with it!
The issue with the truncated EXIF lon/lat is fixed with the new firmware v01.00.0500:
The release notes just mention “Fixed the issue where the time displayed on photos was incorrect.”, but in fact the seconds are now stored with 8 decimal places.
I am new to OpenDroneMap, but have been able to successfully put together 2 test maps of my property, with images from my DJI Mavic Air. However, when I zoom in on the maps, there is quite a bit of distortion. I’ve been doing some more reading, and it appears I should be calibrating my camera for WebODM. I read a little bit about the calibration process, but am not 100% sure about the process. Does anyone know of a good tutorial for doing the calibration? Also, I saw that the Mavic Air does not have the sensor size in its data. Is there a special format I need to use for entering those values in WebODM? Thanks for any assistance.
PS - I have a very basic understanding of command line, but I’m trying to learn.
The easiest way to do the calibration is to preprocess in Darkroom using lensfun.