When an image is not calibrated during step 1. Initial Processing, it can be manually calibrated using the rayCloud. This article provides step-by-step instructions on how to calibrate uncalibrated cameras (images) in PIX4Dmapper.
In order to calibrate an image, enough keypoints of that image need to be matched accurately with other images of the project. Each keypoint that is matched in at least two images allows the generation of a 3D point. One uncalibrated image is not calibrated because no matches with other images were found or because no matches have been labeled as accurate. Therefore, in order to calibrate this image, new matches between it and calibrated images need to be defined manually.
In order to manually calibrate a camera:
1. On the Menu bar, click View > rayCloud.
2. Click on an uncalibrated camera in the rayCloud.
3. On the right sidebar, in the section Selection, the points corresponding to the selected camera are displayed on the image with:
- Red cross: Automatic keypoints that are not matched with any keypoint of other images.
- Orange cross: Automatic keypoints which are very likely to be matched accurately with keypoints of other images.
- Yellow cross: GCPs, Check Points or Manual Tie Points marked on the selected image are considered to be Inliers.
- Pink cross: GCPs, Check Points or Manual Tie Points marked on the selected image but considered to be outliers.
The section Tie Points displays all the tie points that are marked on the selected camera.
4. Double-click a red or an orange cross. The selected cross becomes purple.
5. Each red and orange cross represents a keypoint and is associated to a 3D point that has a high probability to match it. The section Images displays a list of images where this keypoint could be visible using the associated 3D point. The keypoint is marked using an orange cross with an orange circle. The projection of the 3D point in those images is displayed with a green cross.
If the proposed points in the images correspond to the keypoint in the uncalibrated camera, this keypoint can be matched with those of the images by pressing the button Connect to Τie Point . This creates a new Manual Tie Point using the marked images.
6. Each time a match is added, the camera position is re-estimated. This new position is used to project existing 3D points into the selected image. If the reprojection error between these projected 3D points and the existing keypoints is low, a keypoint is labeled as being accurate and is called an Inlier. Those inliers are displayed as orange crosses.
7. Connect other existing points (at least 3) and / or define new Manual Tie Points
(at least 3).
8. Press Calibrate to calibrate the camera.
10. If the new camera position and orientation are good, click Process > Rematch and Optimize.
Please, be clear on how to:
1 - attach newly added points to the uncalibrated image
2 - remove one of the orange points that is completely wrong
3 - make the manually added points become inliers so they define the calibration (got 20 points corretly marked that are considered outliers)
4 - add tie points to calibrate images where there aren't any automatic tie points
----------------
I've been comparing Pix4D with Photoscan, and Photoscan can correctly calibrate photos of a peer (lots of water) without any human intervention, while Pix4D is getting completely nuts.
I thought of using Pix4D's manual tie points, masks, and all the other edit options to have an improved result, but sadly I can't even calibrate the cameras.
Hi Daniel. I think that the issue may be due to something more fundamental and that manually calibrating images may not be the best solution. Can you open a support request and attach a quality report for a project that you are using for testing? Mention me by name and I should be able to pick it up and give you a hand.
The issue is too much water in the photos with relatively tiny fixed structures. The system marks most of its automatic tiepoints on the water.
After struggling for a while, I managed to have a reasonable calibration, but I needed:
- Double image size in step 1 configuration
- Lots of manual tie points (to compete with the water areas in which the system incorrectly creates lots of automatic tie points)
For my own questions:
1 - Attach newly added points to the uncalibrated image
2 - remove one of the orange points that is completely wrong
This seems impossible in the current version of the program (4.3.31)
But having enough manual tie points will result in a better calibration anyway
3 - Make the manually added points become inliers so they define the calibration
This might be hard and will not always work. But incorrectly calibrated images surrounding the target will count. They must be uncalibrated together with the target image so they don't incorrectly say your points are outliers.
If it doesn't work, create the points anyway. At the end of the process rerun step 1 entirely. The newly created points will participate and generate better calibration in the end. Try to add the manual tie points far from each other and avoid putting them in planes with different heights.
4 - Add tie points to calibrate images where there aren't any automatic tie points
If the image doesn't have a single automatic tie point, you won't have the "add new tie point" button enabled when the image is open.
Close the image, create a new tiepoint outside of the "recalibration" feature, find the image in the list using one of the methods mentioned in question 2 above.
Thanks for sharing your findings!
Hi i have alot of uncalibrated photos on a model what can i do ?
Hi Darren. Usually, this is a sign that the images were not captured correctly (not enough overlap or drastic camera movements between images) or that the appropriate step 1 options were not applied. Check out the Pix4D mapper troubleshooter to see if you can solve the issue with that.
https://support.pix4d.com/hc/en-us/articles/360025079672-Pix4Dmapper-guide-to-troubleshoot-issues
Hi
I have tried several processing options to correct an uncalibrated image issue. What is odd about my situation is that the uncalibrated images are grass areas.
I tried 1/4 point densification, reduce the number of matches and adding GCPs in that gap.
For some reason I don't have enough points to tag mtp and fill that gap.
I there anything I can do to fix this?
Thanks!
Hi Abdiel. Did you Process with the step 1 calibration method set to "Alternative"? This may help.
Hey, Abdiel.
That looks like an elevation, right?
The problem with elevations is that they reduce the superposition rate between photos and that is decisive for processing. The superposition settings you define in your flight app are valid for altitudes similar to the altitude of the takeoff point. Lower altitudes will get more superposition, higher altitudes will get less superposition.
Ideally, you should solve that in flight (but below there are hints for processing too):
- Option 1: Take off from the elevated area instead of taking of from the plain ground: you will have the defined superposition rates for the elevation, and better superposition for the flats
- Option 2: Create a higher flight for the elevated area and increase a little both superposition rates
- Option 3: Increase significantly the superposition rates for the elevation if you don't elevate your drone
Often you should use very high superposition, like 80% for frontal and 70% or more for lateral (and increase these values for elevated areas)
Now about processing options:
- "Alternative" calibration doesn't work for solving elevations, it's worse (but you can try, of course). For 3D maps (when elevations are significant, your case) you should use "standard" calibration. If your drone is good enough, you might try the "precise geolocation" calibraion mode.
- Adding MTPs in a photo with different elevation levels using the "Alternative" calibration mode will kill your camera's parameters, sometimes to the point of breaking the entire model. The "Standard" calibration mode is the one that supports MTPs with very different elevations in a photo.
- In the "camera parameters" optimization of the calibration options, choose "all" for both internal and external. (This reaches the best optimization possible). Using "all prior" in "internals" is good when you don't have GCPs with known coordinates (then your camera internals will not vary much, but your model will be less precise)
- My experience tells me that using the "original" image size is usually the best. But in this grass/forest case, there may be luck with lower sizes (try all of them)
- You might benefit from adding MTPs near the top. Even though you cannot find many for calibrating a photo manually, if you rerun all the process there might be a better result (but must rerun the "entire" process, not only reoptimize).
Hi Daniel. I have to disagree with a few of your statements.
This is incorrect. Alternative calibration is optimized for relatively flat terrain and nadir camera angles but is fully capable of providing a reliable elevation model.
MTPs will not "Kill" a cameras parameters. If done correctly and are necessary they will only help. Alternative Calibration absolutely allows the use of MTPs
Internal and external optimization are set to all by default. All prior is useful when you have high optimization and is not really related to whether GCPs are present.
Lower than original image size is recommended over dense vegetation as it removes a lot of the potential movement and improves the texture for keypoint generation.