Pix4D 3D image slanted, angles incorrect. calibration error?

Hello, recently I am having troubles with the Double grid feature, or possibly a calibration issue. Whenever I create a 3D image I am getting a slant.

As the angle of the roof is important for our work I’d need to rendered correctly. What am I doing wrong?

ML David

Hi David

Are you using GCP’s or RTK-capable drone? And could you share the quality report?

Hey Jaaklo thank you for your reply
249162-Project-2023-11-09T16_31_06.729Z_report.pdf (2.3 MB)
I am using a Mavic Pro 2. Does that help?

I think that the camera parameters are a bit off
So change the ‘Internal Parameters Optimization’ to ‘All Prior’ then reprocess the project and the slant should dissappear. Let me know if it works.

Sorry, where do I have these options, I work with the Pix4D clour and the capture app.

Oh sorry thought you were processing on desktop (pix4dmapper). I don’t think you can change these option on cloud except if you create project on your pix4dmapper and upload that project to the cloud.

If you can share the dataset I could process your project and see if I can fix that slant.

TLDR; Wait for the drone to establish a stable connection to enough GNSS satellites before capturing images to prevent the elevation of the images’ geotags from drifting while flying the mission and capturing images.

Hi @david.schriever,

Thank you very much for sharing a screenshot of the slanted 3D textured mesh and a PDF copy of the project’s quality report.

With the understanding that you have probably already moved on to another project since you originally posted on Thursday, November 9, I have two pieces of good news and one piece of bad news.

The root cause of the slanting reconstruction

To start with some good news; we know why the results of the project you shared were and still are slanted. The initial image positions or geotags according to the DJI Mavic 2 Pro exhibited a significant amount of noise and imprecision in the Z-axis.

Regarding the imprecision of the images’ geotags, I typically see image geotags that report the elevation or altitude of the camera to a precision of a centimeters or tens of centimets. This does not necessarily mean that the geotags are in fact accurate to within plus or minus a few centimeters, but the drone still tries to be as precise as possible by recording its elevation with sub-meter precision. The geotags of the project you shared, on the other hand, are precise to within plus or minus one meter.

Regarding the noise of the images’ geotags, according to geotags, the drone’s elevation decreased by approximately 14 meters during the mission, where it flew as high as 505 meters and as low as 491 meters. Knowing that most missions are typically flown at the same altitude and taking a quick look at the image content, it’s unlikely that the drone’s elevation or altitude changed so much while the images were captured.

You can see the position of the images according the the geotags that were written in the images’ metadata by the drone on the second and third page of the PDF copy of the quality report, under the Computed Image/GCPs/Manual Tie Points Positions diagram. The camera’s position according to the geotags is represented by the blue points.

Since using a 2D image to represent a 3D scene doesn’t always get the job done, a screen recording of the drone’s flight path according to the images’ geotags is available at 149169 - Pix4D 3D image slanted angles incorrect calibration error - Initial image positions.mp4 - Google Drive. As you can see, the drone’s altitude dropped significantly about halfway through the double-grid mission.

It’s primarily the significant change in the elevation of the drone according to the image geotags that causes the reconstructions to slant. PIX4Dcloud tries to compute an image block that has the shortest distance between each image’s initial position, according to its geotag, and computed position, so the drifting geotags pull the image block up on one side and down on the other.

How to salvage the dataset

Now, for some bad news. Unfortunately, it isn’t possible to salvage, recover, or troubleshoot the project without relying on at least one other software to correct the error, drift, or noise in the images’ geotags, and there are several different workflows and tools you could consider. You might think that we edit the metadata of images on a regular basis, but at Pix4D we rely heavily on the original unedited images because editing images can introduce unknowable sources of noise or errors into the results.

It’s for that reason that I can’t give you a clearly defined workflow for editing the images’ geotags to remove the error in the Z-axis. If you do edit the elevations in the images’ metadata to eliminate the vertical drift, make sure you don’t modify anything else in the metadata and then upload the modified images to a new PIX4Dcloud dataset for processing.

How to prevent the problem from now on

Now for some more good news. One of the most common reasons that the geotags of a set of images will indicate that the drone’s elevation changed significantly when it didn’t is to make sure that the drone has connected to enough GNSS satellites before the first image is captured.

With that in mind, the next time you capture a set of images with your DJI Mavic 2 Pro, make sure that it has established a stable connection to a large enough number of satellites. You can do that either by letting the drone sit at its home position for approximately 60 seconds before taking off or by manually flying the drone up to the mission’s altitude and then waiting for approximately 30 seconds before starting the mission.

Using either of those two techniques should be good enough to ensure that the drone’s apparent altitude does not drift while you capture your images, which will prevent other reconstructions from unexpectedly leaning or slanting.

There are other techniques you could consider to ensure your 3D models are oriented correctly, e.g., adding ground control points or capturing images with a drone that measures its position more precisely and accurately. However, those techniques require significantly more time, money, and effort compared to waiting a bit more time at the beginning of each mission to make sure your DJI Mavic 2 can accurately measure its position.

Please let us know if you have any questions.

Hi @Jaakko_Laihola, thank you very very much for contributing. It’s greatly appreciated.