I just had a problem with one image.
I placed CPs in the fore- and background, coverage was ok.
I am absolutely certain that they were placed ok, I double- and triple-checked.
When I aligned it with a couple more to an existing component, the trouble-image was completely mis-distorted.
The ray of sight was extremely wavy and the distortion values were way off.
There is nothing visually wrong with it either and the exif data is ok too.
All the parameters are exactly like the images I took before and after.
Any idea where I could look for an error in order to fix this?
Hi Götz
One image is not worth losing too much time on
but to solve it, can you post a screenshot of the camera positions and the CPs in that particular image in the future?
So that we can see if you placed them in the right way…
Hi Wishgranter,
you are right, usually it’s not a big deal.
And sometimes it might just be an important one…
Just wanted to understand what happened or might have happened.
Hi Götz
but to solve it, can you post a screenshot of the camera positions and the CPs in that particular image in the future?
Hi Wishgranter,
I wrestled a bit more with it and thought I found the error, but I was mistaken.
I managed to even the waves out a bit.
The offender is the image on the bottom richt.
If I delete it, everything is fine… :?:
Ididn’t open all the CPs, but they are all well below 1.
I know that coverage in this spot is not ideal but as I said I cannot take more images at this point…
Any idea what could be causing this?
Hi Götz,
This could be due to lack of matches on image edges. Try displaying “Tie points” in IMAGE context ribbon. If image is covered by tie points in the middle, then it will make these wavy effects on sides.
So how to solve it:
-
One of control points may be a little bit off. If there was not too many natural tie points, then distortion model could fit to control points which are not very well placed. This will make very small errors on CP, but visually you will see that it is not OK. This is called over-fitting.
-
disable image in the component (just “X” it in the component image list) and click align again. It will try to add it again.
-
group this image with some other images with the same body/optics, which are OK. This helps registering images which are very weak. Go to 1Ds and select the trouble making image and add some other good images. In the selection panel go to Priors calibration and Prior lens
lens-group.JPG
and set value other than “-1”. “-1” means “do not group”. If you put there say “2” then all images with “2” will share the same calibration or lens parameters.
- take the trouble making image with few images from its neighborhood. Create a separate project and align just these few images. Make sure it looks ok. Maybe you can group cameras by exif (click on images root in 1Ds and select the exif grouping option in the root panel). Export Component - WORKFLOW\Export\Registration, select Reality Capture component. Open the scene with bat alignment and import component - WORKFLOW\Import\Component. Click align. It will reuse imported alignment to fix the scene.
hope it will help. Thanks.
Hi martinb,
indeed it is a great help!!
Thank you.
The CPs were my first suspicion but I fiddled really long with them and they are as good as it can get.
Since the distortion parameters were way off, that would be the first thing to try.
There is no precalibration, so I figure I only need to change the value in the distortion menu?
Or do I need both?
And what will it do, calculate an average or go with the majority?
Can I define which should be the “master” image?
Hello Götz,
…value in the distortion menu? Or do I need both?
If the optics and zooming are the same, then I would group both calibration and lens distortion. It will restrict the parameter space better.
And what will it do, calculate an average or go with the majority?
This is more tricky. It will actually find the model which sits on all data. Technically there was just a single optics so there exists such a solution. Internally RC calculates only one set of parameters (focal, principal point, …, lens parameters) for all cameras in the same group. This set is jointly optimized with poses of all cameras in the group.
Can I define which should be the “master” image?
You do not need to do that.
Hi martinb,
ok, I get it.
Is it then generally recommended to group cameras that are identical?
Would that be better before or after initial alignment?
Because I did notice that I get random mal-distorted cameras every now and then (figured out to check it with Show Distortion).
One was completely weird (trapezoid much smaller than the image) and another even shaped like a warp-field!
That is quite inefficient and time cionsuming though, so grouping them would make sence, right?
Follow up: Is there any way to group or select images according to exif focal length?
Also: Is there a straightforward way of identifying mal-distorted images other than browsing through?
I attached a screenshot - they are all taken with identical camera and optics, bottom right shows the “normal” distortion.
BTW, the numbers are about 5-10 of 2.5 k images, so it is not very high but all the harder to identify…
Ok, just tried to make a huge camera group and the result is that there is no Brown distortion anymore, resulting in large errors with CPs and model quality.
Any suggestion what to do?
Dear Götz,
you can group cams by exif. It will use camera type/mode/lens type and exif focal to perform grouping -
you can also enable RC to group cameras automatically - WORKFLOW\Application Settings\Import settings\Group calibration by exif.
Is it then generally recommended to group cameras that are identical?
Depending on the scene. Grouping helps in general but it puts sometimes an unrealistic constraint on camera, since optics vary little bit for each shot. For high res cameras (35mpx+) you get smoother surfaces when leaving cameras not grouped.
Would that be better before or after initial alignment?
To get the best-of-best I would group params, make an initial recon, ungroup params and press align again. It will fine-tune those small inequalities between shots.
In general, if you get strange looking cameras, it is better to disable them and click align again. The system will add them again using a different strategy.
I was a little surprised that grouping was off by default. Personally I’d group images together, especially for fixed focal length lenses. I also did a quick “pseudo” calibration to get some starting values for distortion and it reduced the number of components I ended up with.
Hi Ben,
yes, initial values can help a lot. Also, when images suffers with higher distortion, it is preferable to switch the lens prior to “unknown” rather then using “no lens distortion”.
Even better is to set an approximate value. This can be done - first by reconstructing some easy scene, read distortion values and set them to prior. It is possible to update “sensorsdb.xml” so that the prior values are set automatically for a given camera model-lens mode-focal length triple.
Hi martinb,
ok, that sounds interesting.
In other threads you recommended to leave everything to the automatic settings and algorythms.
Also thank you Ben, the input is appreciated.
So since I seem to have a “bad” history with alignment, how can I get rid of it without messing up all my CPs?
Just delete all components, will that reset everything?
And then I will do as follows (plz correct me if I am wrong):
- set the group setting to exif
- perform a draft alignment
- real alignment
- if there are still problems, ungroup and rerun alignment
More questions:
A. How do I get the menu for EXIF grouping? Is it only available after alignment?
B. Did I understand it right that setting distortion values to prior means to import a few images, do one alignment, set it to prior and then import the bulk of images and do the main alignment?
C. How do I save prior alignment values exactly or rather update “sensorsdb.xml”.
D. Is there a way to identify mal-distortions, say sorting images by distortion value or so?
For the case anyone has similar problems:
Deleting ALL components and rerun alignment solved this problem in every case I had so far…