Lens Distortion Correction for DJI Cameras

Hello Pix4D!

I am routinely processing images from the DJI Phantom 4 and have noticed a re-occurring issue. I am also routinely using the DJI Phantom 4 Pro, often at the same location, and need to be sure I can produce comparable models without GCPs.

The Issue:

I’m finding that using Pix4D’s default cameras parameters for the DJI Phantom 4 (FC330_3.6_4000x3000) using the “All Prior” Internal Camera Parameter option is producing models are that dramatically distorted. Both the camera alignment and model shape are very convex. Turning the “Linear Rolling Shutter” parameter on alleviates this slightly.

If I allow Pix4D to optimize all internal camera parameters, the model is less convex, but the curve is still very noticeable. This produces a large Quality Report “Camera Optimization” relative difference of ~30%. For example, the focal length has been optimized at ~4.6 mm in comparison to the input 3.61. Turning the “Linear Rolling Shutter” parameter on gives similar quality report values, but there is a visual improvement; the model is only very slightly convex.

Setting all distortion values to “0” and setting “All Prior” produces a better (flatter) result, but the model still appears distorted (concave this time).

My Questions:

My current hypothesis is that A) some rolling shutter effect is present, and B) the default radial and tangential distortion values for the DJI Phantom 4 are significantly different from my own camera, although not 0.

  1. If we can assume that the input focal length & principal point camera parameters are stable and correct, is there a way to have Pix4D optimize only lens distortion values and correct for the rolling shutter effect?

  2. What is the source of Pix4D’s radial & tangential distortion values for DJI’s camera models? Is it recommended to measure lens distortion for each camera to get the most accurate results?

  3. Do you have any other advice on how to get results as close to reality as possible?

Thank you!

Hi Patrick,

Thank you for all the details.

  1. The answer to your first question is no, it is not possible to optimize only lens distortion values, as all the available options for the internal parameters optimization are listed in the article Menu Process > Processing Options… > 1. Initial Processing > Calibration

  2. We do in-house calibration to get the initial distortion parameters and typically the values we have stored in our database are sufficiently good. Since you are getting a significant difference between the initial and the optimized parameters, what you could do is trying to perform the calibration on our own, following the instructions contained in the article How to calibrate a perspective lens camera without applying any rolling shutter correction, to check if you get very different values from those present in our database.

  3. Something that could create an issue is the flight speed if too high. You can check our Vertical pixel displacement tool. This will let you compute an indicator which is useful for the flight planning. Ideally, you should get a VPD as low as possible, according to your flight height and speed. This tool will also tell you if you need to enable the rolling shutter correction. Keep in mind that as a readout time parameter you can enter a value between 30 and 40 (you can find a list of values in our blog post Improved accuracy for rolling shutter cameras).

Lastly, your issue might be project specific. Therefore if the above information is not sufficient to solve your issue, you can open a ticket referring to this Community post and sending us the quality report and the .p4d file, besides some further notes on your project that might help to troubleshoot the issue.

Cheers

 

1 Like

Hello Alice,

Thanks for your response. I’ll number my follow-up questions as well.

  1. Any chance that Pix4D will include this in the future? Radial & tangential distortion are currently our only camera parameter “unknowns,” so it would be greatly beneficial to auto-optimize these in isolation. Agisoft offers full flexibility in setting “Fixed and unfixed” camera parameters during camera alignment.

  2. Following the steps in “How to calibrate a perspective lens camera” produced Quality Report optimized camera parameter results almost identical to allowing Pix4D to “optimize all” (3D maps template) the project with Pix4D camera defaults. Even with GCPs, the focal length optimized value was still ~4.6 rather than 3.61. Because the optimized focal length & principal point results are so different from known values, I do not think it would be wise to save & re-use these values.

  3. I have yet to use the Vertical pixel displacement tool, however, I did take this into consideration by running tests with rolling shutter correction turned both on and off. Restated from above, this did reduce curving in the photo alignment results in both cases, but did not account for the majority of the warping.

This is an issue we have noticed in numerous (20+) flights and is critical to our operations, so I will pursue opening a ticket with a range of results.

Thank you once again!

Hello Patrick,

Thank you for the feedback about the Calibration options. I have forwarded it to the team in charge in order to evaluate it and potentially include it in future releases.

Our support team will be happy to have a closer look at your projects to troubleshoot your issue.

Best