Pix4Dmapper requires as input the internal parameters of the camera used to acquire the images for processing. These parameters are used for the 3D reconstruction and therefore, it is crucial that they are accurate in order to achieve an optimal 3D reconstruction.
Pix4Dmapper has an internal camera database with the optimal parameters for many cameras. For cameras that do not exist in Pix4Dmapper´s camera database, the optimal internal camera parameters can be computed in Pix4Dmapper while processing a good dataset. These parameters can then be used for all the projects acquired with the same camera. As small consumer-grade cameras are sensitive to vibration, temperature, etc., the software will, by default, optimize the internal parameters for each project starting from the same initial parameters.
Image requirements
A good dataset with the following properties is required:
- Enough images (100 - 300 images).
- Non planar scene (not all objects having the same height)
- High overlap and rich texture.
- Several grid flights (at different heights) OR oblique imagery with sufficient overlap.
- Images with NO distortion correction applied. Original images are needed.
- If possible, with GCPs.
Calibration procedure
1. Create a new project: Step 2. Creating a Project.
2. Import the images: Step 2. Creating a Project.
3. Configure the image properties:
3.1 (optional) Select the image coordinate system: Select Image / GCP / Output Coordinate System .
3.2 (optional, recommended) Import the image geolocation and orientation: Step 2. Creating a Project.
3.3 Edit the camera model. In the Select Camera Model section, click Edit.
3.3.1 In the Camera Model section, click Edit.
3.3.2 (Only for non RGB cameras) Set the correct band configuration and weights: How to set the band weights for modified cameras (NIR,R,G and NIR,G,B) (steps 4 to 8).
3.3.3 In the Camera Model Parameters section, select Perspective Lens and set the following values:
- Sensor Width [mm] or Pixel Size [um]: Set either the sensor width in millimeters or the pixel size in micrometers.
- Focal Length [mm]: Set the focal length in millimeters.
- Principal Point x [pixel]: Set the principal point in the center of the image, i.e. set the value to ImageWidth/2.
- Principal Point y [pixel]: Set the principal point in the center of the image, i.e. set the value to ImageHeight/2.
- Camera Model with Distortions = 5.
- Radial Distortion R1 = 0.
- Radial Distortion R2 = 0.
- Radial Distortion R3 = 0.
- Tangential Distortion T1 = 0.
- Tangential Distortion T2 = 0.
3.4 In the Edit Camera Model window, click OK.
3.5 In the Image Properties window, click Next.
4. Select the processing options template: Step 2. Creating a Project. If the images were acquired using a grid flight plan, select 3D Maps. If not, select 3D Models.
5. Select the output coordinate system: Step 2. Creating a Project.
6. (optional) Import GCPs without marking them: How to import and mark ground control points (GCPs).
7. In the Local Processing window, select step 1.Initial Processing, unselect step 2. Point Cloud and Mesh and 3. DSM, Orthomosaic and Index and click Start.
8. (optional) If the project has image geolocation and GCPs in a known coordinate system, mark the GCPs using the rayCloud following How to import and mark ground control points (GCPs), reoptimize and regenerate the Quality Report (Menu Process > Generate Quality Report).
9. Verify the quality of the reconstruction by:
- Assessing the Quality Report.
- Selecting Automatic Tie Points at different locations in the rayCloud and verifying the reprojection on the original images.
- Selecting the GCPs in the rayCloud and verifying the reprojection on the original images.
10. If the reconstruction is not good enough, mark Manual Tie Points in the areas that are not well reconstructed and Reoptimize: How to import and mark Manual Tie Points (MTPs).
11. Generate the Quality Report by clicking Process > Generate Quality Report and repeat step 9 and 10 till the reconstruction is good.
12. Once the reconstruction is good, save the optimized camera parameters so that they can be used as initial values for other projects:
12.1 Click Project > Image Properties Editor... to open the Image Properties Editor.
12.2 In the Selected Camera Model section, click Edit.
12.3 In the Camera Model section, click Edit.
12.4 In the Camera Model Parameters section, click Load Optimized Parameters and set the following values.
- Principal Point x [pixel]: Set the principal point in the center of the image, i.e. set the value to ImageWidth/2.
- Principal Point y [pixel]: Set the principal point in the center of the image, i.e. set the value to ImageHeight/2.
12.5 In the Camera Model section, click Save to DB.
12.6 In the Edit Camera Model window, click OK.
13. Remove the Manual Tie Points.
14. On the Processing bar, click Start to reprocess step 1.
15. Verify the quality of the reconstruction by:
- Assessing the Quality Report.
- Selecting automatic tie points at different locations in the rayCloud and verifying the reprojection on the original images.
- Selecting the GCPs in the rayCloud and verifying the reprojection on the original images.
16. If the reconstruction is not good, repeat step 10 to 15.
The camera model is now saved in the user camera database. The next time that a project will be created with the same camera, the camera parameters will be correctly detected.
For non-RGB cameras, the correct band configuration should be selected from the Bands dropdown list: Menu Project > Image Properties Editor... > Selected Camera Model > Edit Camera Model.
Hello!.
I have a question.
When I save a camera model on the database, then I can run first step without optimizing internal parameters (option: none).
Am I right ?
Thanks!
Hi Jonathan,
While running Step 1. Initial Processing, you should use the internal parameters optimization to All. The parameters you have obtained after the calibration are the optimal parameters for the camera but not the absolute parameter. Small cameras such as those used with UAVs, are much more sensitive to temperature or vibrations, which affect the camera calibration. Therefore, it is recommended to select this option when processing images that were taken with such cameras.
Thanks Kapil,
When should I use "None" option for internal parameters?
Hi Jonathan,
None option does not optimize any of the internal camera parameters. It is recommended when using large cameras that are already calibrated and when these calibration parameters are used for processing. For more information, I would recommend you to go through our support article.
Menu Process > Processing Options... > 1. Initial Processing > Calibration
Hi there,
can I make the calibration if I don't know the initial parameters such as Sensor Width and Focal Length. All I know is Image Width and Image Height.
Thanks in advance.
Hi,
The most important parameters are the Pixel Size and the Focal Lenght.
To properly calibrate the camera, you should have at least the information about the Pixel Size in μm.
Based on the Pixel Size the software will compute focal length [pixel], sensor width [mm], sensor height [mm], principal point x [mm], and principal point y [mm].
Regards
Hi, We have already calibrated this camera (which is why it's in the internal database, cameras in our internal DB will have a cylindrical icon). So you don't need to calibrate again unless your optimized parameters are very different from the initial ones (check the quality section on the top for teh percentage, if it is less than 5% you do not need to calibrate). The flight plan depends on the area you are capturing, for example, if it's a city or an agricultural field. You can select accurate geolocation and orientation. You can keep internal parameters as "all". More info here: https://community.pix4d.com/t/processing-dji-phantom-4-rtk-datasets-with-pix4d/7823