FLIR Duo Pro R thermal images not calibrating

Hi,
I am new to pix 4d. Used a FLIR Duo Pro R camera with 25 mm focal length to capture images of road surfaces. While trying to create the orthomosaic, I am able to produce a very good rgb orthomosaic but could not create a thermal equivalent of it in any manner. We captured images using the rjpg format. None of the thermal images extracted by pix 4d from the rjpg is getting calibrated. Whenever I use the processing, it is always 50% calibrated. All the rgb images are calibrated but none of the thermal tiff are. All the images are geolocated. Any help would be much appreciated.
Thanks.

Hi, You will need to process the RGB and thermal images as separate projects. The pixel size is not read form the EXIF and we calculate it from certain EXIF tags from the images. But if the software does not find these tags, it will auto-fill an incorrect value. The pixel size for your RGB camera is 1.85 micron and that for the thermal camera is 17 micron. Can you try processing after editing these values? For thermal images, use the thermal template and for the RGB you can either use the ag RGB template or the 3D maps template according to the area captured. Let us know if it works

Hi,
Thank you for your reply. The software did autofill an incorrect value. So, I edited the pixel value and ran the process. I used the thermal camera template for the thermal images, but it still doesn’t give me results. It is failing in the calibration step with the warning that there are no calibrated cameras.

Hi,
I have one more question. While I was working with a different dataset of a similiar area (road surface), this one having no geolocated images, i was getting errors in the initial calibration stage. It stated:
Not enough GCPs present to transform (0).
GCP’s computeNoiseDistribution
Optimizing with geoinformation
[BundleAdjuster][minimize] no projections errors ! aborting.
bundle failed

We were planning to stack the thermal and rgb images together and do a mosaic with this stacked images to apply some machine learning algorithm. These images are not geolocated and if there is anyway to solve this calibration error, it will be much appreciated.

Do you have oblique images or a uneven slopy terrain? Can you try processing with standarad calibration and also enable gemetrically verified matches?

It is okay if the images are not geolocated and should process with standrad calibration. Let us solve the issue of thermal images, then we can move along to the merged project.

The terrain I am working with is flat road surface.
I tried procesing with standard calibration and geometrically verified matches. I used the thermal camera template. Now, 6% of the total input images are getting calibrated and the output is a very small area of the total area imaged.

@vchakrap, Can you upload the images to google drive and share the link if it is not confidential? We can have a look at it. How does your flight plan look like? What was the flight height and overlap?

https://drive.google.com/drive/folders/1l-8RAPqXL3ANfCWsRbhT4tK1HO99JLZk?usp=sharing
Hi,
This is the google drive link for the images.

Hi, I had a look at your images and this is not an optimal flight plan. Thermal images need 90% frontal and side overlap due to its low resolution. Here it is not getting any side overlap. For corridor RGB projects, we recommend minimum 2 flight lines, for thermal it needs to be more (at least 4). Let me know if you have any questions.

Hi,
Thanks for working on this. I initially uploaded just a part of the data. I thought a sample data should suffice. I am sorry. This time I have included all the images corresponding to a road. Could you please check that and see whether the flight line is good?
https://drive.google.com/drive/folders/1l-8RAPqXL3ANfCWsRbhT4tK1HO99JLZk?usp=sharing

Hi,
Could you test this dataset?

Hi, I apologize for the delay, we had a lot of personal tickets which gets more priority. I will test the dataset today and will let you know the results by tomorrow. Thanks

HI, It seems that the flight height was very low due to which there is no variability in the images leading to the software finding it difficult to extract keypoints. At what height above ground level did you fly?

We flew at 20 m above ground level. But if the flight height is low, why is it not affecting the rgb orthomosaic and only the thermal mosaic.
Also, I made another approach in which I stacked the individual thermal bands with the corresponding rgb images and ran it. (Remote Sensing | Free Full-Text | Four-band Thermal Mosaicking: A New Method to Process Infrared Thermal Imagery of Urban Landscapes from UAV Flights, the approach was taken from this research paper). Calibration is still not working.
I am working on a project where I need to detect foreign materials like rubber and wood caught within the asphalt layer in roads. These are small objects and if we fly at a higher level, won’t be able to detect them.

20 m is too low for thermal. For RGB images, since the resolution is higher, you get the variability. However for a res of 640*480, there is almost no variability if you fly so low. For thermal, there is always an issue between choosing the height as you get more accurate temperature close to the object, however, for photogrammetry, you need to fly high. You need to do some tests and choose a flight height where you get your GSD and also the reconstruction succeeds.

Thanks for the reply. Just one more thing. In the alternative methodology that I performed, I upscaled the thermal images to the resolution of the rgb images, stacked the four bands together and tried to mosaic it, giving 0 weightage to the thermal band. Here also, the calibration is very less (just about 6%). Can you think of anything I am doing wrong here?

Hi, I have never tried doing that. I would say give a bit more weight to the thermal band, maybe 0.1, and make the total weight 1. Since you have upscaled and stacked, you have to make sure the camera parameters are correct and that is very difficult as the internal camera parameters vary for the RGB and thermal. Give green the highest weight (I am sure you are already doing so)