With the camera set to manual mode, aperture at f8, shutter at 1/8th with focus set to infinity. The aircraft gimbal was set to lock on exposure.


With manual focus set to infinity, the calibration characteristics are similar to the AF example but with smaller SD results. The K1 value shows the pin cushion distortion as detected by the AF example.
MF at infinity | |||
Parameter | value | SD | Unit |
f | 10.26mm | Exif mm | |
fx | 4376.11 | 1.34583 | f in px |
fy | 4274.17 | 1.28713 | |
cx | 2726.42 | 0.818145 | principal point px |
cy | 0.50715 | 0.50715 | |
skew | 0.937024 | 0.0797351 | |
k1 | -0.0224085 | 0.00123528 | Radial distortion |
k2 | 0.0296299 | 0.0103362 | |
k3 | 0.0286231 | 0.0333362 | |
p1 | -0.000260771 | 3.08319e-005 | Tangential distortion |
p2 | 0.000919316 | 4.71262e-005 |

Comparison between the 2 calibrations shows new values for focal distance, a refined principal point and a slightly bigger K1 with similar tangental distortion values.
AF | MF at infinity |
fx = 4479.94 +- 2.26513 | fx = 4376.11 +- 1.34583 |
fy = 4374.51 +- 2.15679 | fy = 4274.17 +- 1.28713 |
cx = 2727.48 +- 0.813274 | cx = 2726.42 +- 0.818145 |
cy = 1811.92 +- 0.719281 | cy = 1784.7 +- 0.50715 |
skew = -1.91657 +- 0.0843506 | skew = 0.937024 +- 0.0797351 |
k1 = -0.0196948 +- 0.00126486 | k1 = -0.0224085 +- 0.00123528 |
k2 = 0.00652119 +- 0.010933 | k2 = 0.0296299 +- 0.0103362 |
k3 = 0.0909295 +- 0.0368218 | k3 = 0.0286231 +- 0.0333362 |
p1 = 0.000237354 +- 2.27565e-005 | p1 = -0.000260771 +- 3.08319e-005 |
p2 = 0.00108494 +- 3.73953e-005 | p2 = 0.000919316 +- 4.71262e-005 |
Thanks for this latest calibration, Bill, with manual focus set to infinity. Very helpful once again.
What is the distance between the camera and the checkerboard target? Was it the same for the autofocus calibration?
The distance to target was similar. I moved the drone from the board until focus was sharp at the minimum stand off.
Bill,
trying to fine tune my own Mavic Pro2 usage for photogrammetric purpose, I stumble on your interestings blog posts. I was first surprised to see that your experimental values denote a pin cushion distortion pattern. Mine has clearly a strong barrel shape. Then I noticed you probably did (am I wrong?) the calibration on a set of .JPG images. I would suggest you to have another try with the native raw files (.DNG for this device). The thing is DJI Mavic Pro performs its own lens correction when translating the raw footage to jpg.
Thank you again for sharing so many interestings things on your blog.
Vincent.
reply to myself: I apologize for this hazardous assertion! I realize your source images (in the previous post) were truly raw versions.
V.
It’s ok Vincent this is a confusing area. The L1-20C is a curious camera (I believe it uses a synthetic shutter and aperture system) and MetaShape/Photoscan processes are also puzzling. As I understand it Metashape applies an automatic calibration as part of the alignment process so the ‘bench’ calibration is of little value other than to be aware of distortion. As a unit I find the Mavic Pro2 is a remarkably stable platform provided wind and surface conditions allow.
B
Neither Hasselblad nor dji provide much tech specs on the camera AFAIK, it’s a pity…
I’ll soon proceed some new calibration tests with remote targets in order to have focus plan coincident with focal length (i.e. the most common photogrammetric context cases). I do that with the camera calibration toolbox for Matlab :
http://www.vision.caltech.edu/bouguetj/calib_doc/
I’ll post here my results if you’re interested.
Bye,
Vincent
Please do post results. The basic performance of the L1-20c is good interms of pixel count but close range efforts with Metashape are varibale.