Working On issue Altum preprocessed image input to the ODM

We have a problem with the final orthoimage generated from Altum preprocessed images using ODM.
Here are our processing steps, using Micasense image processing utilities from GitHub - micasense/imageprocessing: MicaSense RedEdge and Altum image processing tutorials. We checked the converted reflectance values are correct. But, our final orthoimage has a very low value (~ 10^12 smaller than the actual reflectance value).
Here are our processing steps:
First, we run the panel calibration routine, which includes the panel calibration values. The panel reflectance value then gets divided by the panel’s mean radiance to give a ‘radiance to reflectance’ value. This value is then used to process the images for reflectance. we also run msutils.raw_image_to_radiance() on the raw image (except for the LWIRs), which provides a radiance output. The new reflectance image is then given by multiplying the ‘raw image to radiance’ output on the ‘radiance to reflectance’ given by the calibration routine. Since the reflectance image is a float64, and ODM can’t process float64, we convert it to float32 and then write it using tiff file. Then, with a custom config file, we run Exiftool on the new image, using -tags from the file with the original image. These are then used as input for ODM.

The final orthoimage and setting parameters for image processing are available at:

Thanks for your help.

Alifu and Nate

I’d recommend to let ODM do the radiometric calibration on the raw images (don’t do any pre-processing) and turn it on via --radiometric-calibration. Our code is actually roughly based on MicaSense’s tools. Do you get better results this way?

Also make sure you’re using the latest version.

Edit: if you need to use the calibration panels then your approach is fine, we don’t have support for radiometric calibration from panels. Try turning off --texturing-skip-global-seam-leveling if you notice values different than your input images.