Important Feature Update: Rolling Shutter Distortion Correction

As of today (2022-06-19), WebODM’s codebase has been updated with a major new feature (Rolling Shutter Distortion Correction)! This new capability is still early-stages and our camera readout database Community-sourcing is still adding new models and readout times, essential for correctly solving for Rolling Shutter Distortion.

image

To help contribute your sUAS/Camera system to our database, please check here:

https://opendronemap.github.io/RSCalibration/

This version should also fix CUDA Initialization errors for Windows users:

Finally, this version will tweak a parameter that may improve absolute/relative accuracy for datasets with decent geolocation data:

If you’re running WebODM via Docker, make sure you grab your updates! Fixes for WebODM for Windows native are available through the Update menu.

7 Likes

Rolling Shutter Correction in Multispectral Cameras

When calculating the band alignment between the primary band image and the other bands to obtain the warp matrix, it seems that rolling shutter correction is applied ONLY to the primary band image, but NOT to the other bands.

Therefore, if the flight course is turned around and the flight direction is reversed 180 degrees, the warp matrix error may occur.
It resulting in misalignment between the bands, and can lead to incorrect NDVI images.

It is recommended to perform rolling shutter correction for all band images, not just for the primary band image, and then should perform band alignment.

3 Likes

Thanks! Filed an issue:

If you can provide any further details and examples, that would be greatly appreciated.

1 Like

does the database include a DJI phantom 3 pro camera?

1 Like

Looks like it, yeah. Unless you have a different camera model mounted.

1 Like

I’m using a DJI Mavic 2 Pro, which as far as I can tell is not included in the database yet. Unfortunately, I don’t have the hardware required or the soldering skills to do the RSCalibration :frowning:
Anyone else out there who is able and motivated to add this camera to the database?

2 Likes
2 Likes

The Mavic 2 Pro comes up with a camera name of “Hasselblad L1D-20c” if that is helpful for the database. Sorry I’m not able to test the readout time. Great work getting this incorporated, saves my clunky use of imageJ and exif tool!

4 Likes

At which point in this list does rolling shutter correction occur please?

1 Like

Structure From Motion.

3 Likes

I’ve added a pull request - first one, be kind, I’m no expert! We have a Yuneec H520 drone with the E90 camera so I thought its niche enough that no one else will do the hard work. Thanks for the instructions. The fastest shutter speed available was 1/8000 and I got 44 bands so just checking that 44ms is a valid result.

https://github.com/OpenDroneMap/ODM/pull/1520

1 Like

Feature extraction -

[INFO] running “D:\WebODM\resources\app\apps\ODM\SuperBuild\install\bin\opensfm\bin\opensfm” detect_features “D:\WebODM\resources\app\apps\NodeODM\data\71c8de0a-ad93-4741-b001-c77d4ede5b06\opensfm”

then

matching image pairs

then

adding images

then

[INFO] running “D:\WebODM\resources\app\apps\ODM\SuperBuild\install\bin\opensfm\bin\opensfm” rs_correct “D:\WebODM\resources\app\apps\NodeODM\data\71c8de0a-ad93-4741-b001-c77d4ede5b06\opensfm”
2022-08-02 19:10:08,125 INFO: Starting rolling shutter correction
2022-08-02 19:11:00,565 INFO: Estimating camera velocities
2022-08-02 19:11:02,123 INFO: Computing from camera poses
2022-08-02 19:11:02,131 INFO: DJI_0050.JPG (+0.00,+0.00,+0.00) m/s etc

then

2022-08-02 19:11:02,181 INFO: Correcting observations…
2022-08-02 19:21:06,001 INFO: Writing corrected and trimmed features for DJI_0244_2.JPG

then matching pairs again

[INFO] Re-running the reconstruction pipeline
[INFO] running “D:\WebODM\resources\app\apps\ODM\SuperBuild\install\bin\opensfm\bin\opensfm” match_features “D:\WebODM\resources\app\apps\NodeODM\data\71c8de0a-ad93-4741-b001-c77d4ede5b06\opensfm”

then adding images again

2022-08-02 21:12:26,619 DEBUG: Merging features onto tracks
2022-08-02 21:13:48,947 DEBUG: Good tracks: 3690360
[INFO] running “D:\WebODM\resources\app\apps\ODM\SuperBuild\install\bin\opensfm\bin\opensfm” reconstruct “D:\WebODM\resources\app\apps\NodeODM\data\71c8de0a-ad93-4741-b001-c77d4ede5b06\opensfm”
2022-08-02 21:15:25,269 INFO: Starting incremental reconstruction

Next is Undistorting

[INFO] Undistorting D:\WebODM\resources\app\apps\NodeODM\data\71c8de0a-ad93-4741-b001-c77d4ede5b06\opensfm …

The remainder of the processing as usual.

It takes quite a long time with the extra processing.

Where can i find a value for mini2

I don’t think we’ve added a value for the mini2 yet. We might need somebody to help us find it: GitHub - OpenDroneMap/RSCalibration: Docs and scripts to estimate a camera's rolling shutter readout time

1 Like

It’s already there

1 Like

Thanks . I’d used the setting for mini will update my settings for next time

1 Like

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.