Pix4Dmapper can process thermal images that have been captured following the recommendations described in this section.
|RJPG||An RJPG (radiometric JPG) image is a .jpg image with radiometric data embedded in the image's metadata. This is a proprietary image format that is supported by Pix4Dmapper. RJPG is the recommended image format for thermal images.|
|.tiff||.tiff grayscale images are supported by Pix4Dmapper but can lack important radiometric data.|
|.jpg||Pix4Dmapper supports .jpg thermal images, but this image format is not recommended. The .jpg images are colored-mapped temperatures and contain only a visual representation of the temperature instead of the raw values.|
In order to have enough visual content in the images for Pix4Dmapper to reconstruct the scene, we recommend:
- A minimum sensor resolution of 640x480. Smaller sensors are not supported and typically do not calibrate
- Using a lens with a smaller focal length (9mm) increases the image's footprint, though it is possible to use longer lens focal lengths.
Supported thermal cameras
Recommended integrated solutions that are supported out-of-the-box include the following cameras.
|Camera model||Absolute temperature||Relative temperature|
|DJI Zenmuse XT||x|
|DJI Zenmuse XTR||x|
|FLIR Vue Pro||x|
|FLIR Vue Pro R||x|
|Aeryon Labs FLIR board||x|
|Workswell WIRIS 2nd Gen 640||x|
Other custom camera integrations based on FLIR's Vue Pro or Tau2 sensors are also supported. Learn more about custom camera integrations: Processing thermal images.
Radiometric thermal cameras
Cameras labeled "R" are radiometrically calibrated. Using such cameras enables the capture of absolute temperature in every pixel of an image. FLIR Vue Pro R and Zenmuse XTR are both radiometric versions that do record absolute temperature. They save their images in RJPG (radiometric JPG) format: a .jpg image with temperature data embedded in every pixel.
For a better reconstruction of the captured scene in a thermal project, some recommendations should be followed during the image acquisition:
- Have very high overlap: 90% front and side image overlap.
- The images have been taken at a resolution of at least 640x480.
- The images do not suffer from motion blur. Thermal camera exposure times can be longer than a comparable RGB camera.
Process a thermal project
1. Create a new project. For more information: New project in Pix4Dmapper.
For nadir datasets with accurate image geolocation, select the processing template Thermal Camera. For more information: Processing Options Default Templates
2. Ensure that the Pixel Size and the Focal Length values are correctly set: on the menu bar, click Project > Image Properties Editor... and in the section Selected Camera Model, click Edit... For step-by-step instructions about how to modify the camera model: How to use the Editing Camera Model Options.
3. On the Processing bar, click Start to start the processing. The thermal index map will be generated during step 3. DSM, Orthomosaic, and Index.
Process dataset with both thermal and RGB imagery (A better 3D mesh/ model)
Thermal cameras usually have much lower resolution than RGB cameras, and thus the 3D model is of much lower quality. The idea is to use the higher resolution RGB images to compute a detailed 3D model (mesh) and to project the thermal texture on top of it. This greatly improves the final thermal 3D model. To process a dataset with both thermal and RGB imagery:
1. Run step 1. Initial Processing for the thermal dataset following the instructions above.
2. Run step 1. Initial Processing for the RGB dataset in a separate Pix4D project.
3. Merge the RGB and the thermal projects. For more information about merging project: Merging projects.
4. On the menu bar, click Process > Processing Options. Select 2. Point Cloud and Mesh and the tab Advanced. Ensure that for the Point Cloud and Mesh Geometry image groups, Thermal IR is unchecked and that group1 is checked. Ensure that for the Mesh Texture image group, Thermal IR is checked and group1 is unchecked. For more information: Menu Process > Processing Options... > 2. Point Cloud and Mesh > Advanced.
Visualize the 3D Point Cloud in the rayCloud
1. Click View > rayCloud, to open the rayCloud and load the 3D Point Cloud by ticking the Point Clouds box in the Layers section of the left sidebar. For more information: Menu View > rayCloud > Left sidebar > Layers > Point Clouds .
2. Display: (optional) In the Point Clouds layer of the left sidebar, select Display Properties and change the Shader to either Screen Aligned Quads, Thermal or Spherical Points, Thermal.
Visualize the 3D Textured Mesh in the rayCloud
1. If you use the Thermal Camera processing template and that the 3D Textured Mesh output is desired, on the menu bar, click Process > Generate 3D Textured Mesh. For more information: Menu Process > Generate 3D Textured Mesh.
2. Click View > rayCloud, to open the rayCloud and load the 3D Textured Mesh by ticking the Triangle Mesh box in the Layers section of the left sidebar. For more information: Menu View > rayCloud > Left sidebar > Layers > Triangle Meshes .
3. Display: (optional) In the Triangle Meshes layer of the left sidebar, select Display Properties and change the Shader to Thermal.
Visualize thermal Index Map in the Index Calculator
1. Click View > Index Calculator to open the Index Calculator.
2. In the section Index Map of the sidebar, select the band containing thermal data.
|Zenmuse XTR and FLIR Vue Pro R||For projects created with Zenmuse XTR or FLIR Vue Pro R radiometric cameras and if RJPG (radiometric .jpg) imagery is used, the absolute temperature is obtained directly from the band. For more information on RJPG, see this section.|
|senseFly ThermoMAP||Records absolute temperature. For projects created using the senseFly ThermoMAP camera, the temperature [°C or °F] index should be used to obtain absolute temperature index maps. This index is loaded automatically for Thermomap projects and computed using the following formula: 0.01*thermal_ir - 100|
|Zenmuse XT and FLIR Vue Pro||Relative temperature are computed.|
|Workswell WIRIS 2nd Gen 640||The newer Wiris camera records relative temperature. It is recommended to do the processing using grayscale TIFF images and create the following index to view absolute temperature: 0.04*thermal_ir - 273.15|
3. Display: (optional) In the section Color Map and Prescription of the sidebar, increase the number of classes to 32 and from the drop-down list choose Equal Spacing: Menu View > Index Calculator > Sidebar > 4. Color Maps and Prescription.
If the temperature seems to drift with time, this is due to the characteristics of the camera (usually uncooled cameras exhibit this behavior) and this cannot be corrected by software. The camera provides an automated way to recalibrate the intensity, usually by taking a picture with the shutter closed. Check with the camera manufacturer for more details.
There are two main factors that affect the speed of step 1. Initial Processing:
- Too much overlap: if some images in the project are taken from the same location, this will increase the processing time exponentially. It is advised to use a flight planning app (such as Pix4Dcapture) that triggers the camera based on distance instead of time. Alternatively, it is recommended to manually remove images if the drone was hovering at the same location for an extended period of time.
- Camera model optimization: if the camera’s initial values are too different from the optimized ones, it may slow down processing. Ensure that the pixel size and focal length are entered correctly: How to use the Editing Camera Model Options.
In case the rayCloud presents either entirely black or entirely white images and the project shows a very low calibration rate, it means that the thermal camera used is not registered in our database. In this situations two actions are possible:
- The preferred way is to send us a sample of the dataset such that we can include it in our database.
- Another way is, before starting the process, to close the project and open the .p4d file with a text editor and below the
<tangentialT2>and above the
<cameraModelSource>lines, add the following line:
<pixelValue pixelType="uint16" min="0" max="0"/>
Moreover, in the case of a custom integration, one should ensure that the response of the camera is linear and that the images are corrected for dark current.
When the processing of your thermal dataset is not successful or does not calibrate, please ensure to check the following points:
- The images are not too uniform.
- The camera model is correctly set together with the Pixel Size and the Focal Length. For more information on camera model options: How to use the Editing Camera Model Options.
- The image geolocation and orientation are correct without obvious flaws. For more information on image geolocation and orientation: How to select/change the images geolocation and orientation.
- To use Thermal Camera processing template. For more information on processing templates: Processing Options Default Templates.
If after verifying the points above, the project still does not calibrate or is still very distorted, please try applying successively the following processing options:
- Apply All Prior to the internal camera parameter optimization method. For more information on All Prior processing option: Menu Process > Processing Options... > 1. Initial Processing > Calibration.
- Set the Camera model with distortion parameters to zero (Radials R1, R2, R3, and Tangentials T1 and T2). For more information on camera model options: How to use the Editing Camera Model Options.
- If it still does not calibrate, try to run it with other calibration methods (Standard, Alternative). For more information: Menu Process > Processing Options... > 1. Initial Processing > Calibration.