Automatic RO Point Generation Improvements

Posted by ADAM Technology on Monday, December 11, 2023

New Settings

Build 2167 adds some enhancements to automatic relative-only point generation that specifically help improve performance with projects that have high degrees of image overlap and possibly poor image quality. These enhancements can be controlled through the new “Advanced Matching Settings” tab in 3DM CalibCam’s Settings dialog:

Figure 1. Advanced Matching Settings.

Match attempts per image

In previous versions, every possible overlapping image was matched without restriction, adding points with each match. In projects with high overlap, this could result in tens of thousands of relative-only points per image.

The new version will periodically pause relative-only point generation and review orientations. This allows it to filter out unnecessary points before the number of points per image becomes excessive.

Max. per pass
This setting specifies the number of times that a single image can be matched before the software will stop processing it until it’s had a chance to check the points that are already there.
Max. total
This allows you to set an upper limit on the number of times an image should be matched in total so that projects with large amounts of overlap can be processed in a reasonable timeframe by stopping matching when there is little benefit to continuing.

Match selection

Since the number of times an image will be matched is restricted, it becomes important to choose which candidates to match with each image more carefully. At the beginning of each pass, candidate pairs are scored so they can be sorted and the pairs with the highest score matched first. (This is important because lower candidate pairs in the list may not end up being matched if one or both images in the pair reaches its match limit before the pair is processed.)

The “Match selection” section allows you to fine-tune the scoring algorithm:

Neighbour boost
The “boost” given to the score of images that are close to (neighbours of) already-matched images.
Influence radius
The size of that neighbourhood — images further away than this radius will not be boosted. (The units are images, so a value of “3” will mean the boost applies up to three images before and after the current image in the image list.)
Success boost
The additional boost added for a successful match.

Max. points per image

These settings control how many points should be retained per image when the software is filtering out unnecessary points.

Normal
The maximum number of points per image in normal projects.
Uncalibrated camera
The maximum number of points per image in calibration projects.

The reason for the higher number in the latter case is because there are more parameters to solve in a calibration project and so it’s nice to have additional redundancy (more points). For normal projects, however, retaining more points just wastes processing time with little benefit. (To put those numbers into context, at least seven points per overlapping pair are required for a normal project, anything beyond that gives redundancy. Even the smaller value of 1,000 points per image is highly redundant.)

Evaulating results

When choosing which images to match next, those with the highest score will be chosen first. During point generation, 3DM CalibCam briefly shows the current score of image pairs to be matched in the next pass to give an indication of the effect of the current settings:

Figure 2. Graphical depiction of the image pair priorities. (Click image to enlarge.)

The darkest squares represent the candidates with the highest score for matching in the next pass. Lighter squares may be deferred to a later pass if required, or not matched at all if limits are reached.

Note that the squares along the diagonal represent the images themselves, and their colour represents how many times each has been matched in total, with the colour starting out grey and gradually becoming yellow and then red. Hovering the mouse over a square will show which image that square corresponds to and provide information about that image in the following format:

Image name (Match count in current pass/Total match count/Defer count) [Image index]

Match count in current pass
This is the value that is compared to the “Max. per pass” setting. Once it reaches that value, all further matches involving that image will be deferred to the next pass.
Total match count
This is the value that is compared to the “Max. total” setting. Once it reaches that value, no further matches with that image will take place.
Defer count
This is the number of times that matches involving this image were deferred.
Image index
This is just the index of the image within the project.

The squares below the diagonal line correspond to a pair of images, with each row and each column corresponding to an image. (Trace the column up to the diagonal to find the “left” image, and trace right along the row to the diagonal to find the “right” image.) When you hover the mouse over one of those squares, 3DM CalibCam will provide information about that pair in the following format:

Left image match info as above : Right image match info as above [L. image index:R. image index]: Pair match count [Reason]

Most of the fields have the same meaning as above; the new ones are:

Pair match count
The number of times this particular pair of images has been matched together. (The same pair can be matched multiple times if new points are added to the images from being matched with other images and the software tries to then transfer those new points across.)
Reason
If 3DM CalibCam decided not to match a pair of images, the reason for rejection will be given here. Possible reasons are:
  • One of the images has reached its match count limit.
  • The pair has reached its match count limit.
  • There weren’t enough points in common between the images to justify matching them together.
  • There were too many points in common between the images aleady to justify spending time matching them together again.

The default settings are very conservative (i.e. for most projects, they will have little or no effect). If you are processing a project with high overlaps then they can significantly speed up processing times; feel free to reduce the “Max. per pass” setting if the image quality is low and you want to more proactively check the points during generation, or to increase it if you want to save all checking until the end. The “Max. total” setting can also be reduced to speed up processing high-overlap projects; the default setting will still allow quite a lot of repeat matching that may not have any measurable effect.

To put it into context, in the project shown in Figure 2 the highest number of matches among all the images was 21. That was an aerial project with 90% forward overlap and 35% side overlap using a camera oriented so the long axis was in the flight direction:

Figure 3. Long axis in flight direction.

For images captured with higher overlaps expect the figure to be higher.

Additional changes

We added the ability to limit the number of points per image to the Edit Point ID dialog in the same build:

Figure 4. New option to limit points per image.

“Image Point Count” provides access to the algorithm that 3DM CalibCam uses during relative-only point generation. When reducing points, it tries to eliminate points that are truly redundant — e.g. they are very close to another point on the image that appears in the same pair — and protects points that are critical (for example, points that are part of a small set of points tying this image to another, the removal of which would jeopardise the ability of those two images to be oriented together).