Hello Kevin,
That’s truly kind of you to take the time writing and sharing with me your trove of knowledge and resources. Many thanks. If I could simply download a Wiki from your brain into mine.
“RC obviously puts great emphasis on speed – to the point that they don’t allow you to set the feature search parameters at all.”
I might be off base here, but under Alignment settings is Detector sensitivity only geared to time spent detecting features, not matching them to produce tie points?
"Because of that, RC can’t establish tight enough correspondences to “deliver this scene in its entirety into a common scale and coordinate system”.
This is even more true if you’re using manual control points."
This is what gets me. I’m not having to resort to manual control points to achieve alignment, was even able to ratchet down to beneath .5 max reprojection error without dropping camera poses, so to Götz’ point, wouldn’t this qualify as a bug, and not just a challenge to RC or any SfM solution, when my capture sequences delivered this level of alignment without touching manual control points? My situation with this high up window on the mine wall is actually quite similar to what Götz once faced tieing in a space above and below a thin floorboard, the only connection being though this tiny space, which he achieved beautifully. That makes me question if maybe we’re not yet pinning the culprit.
This doesn’t necessarily stand in conflict with anything you’re saying about the ultimate cause(s), but the proximate cause, perhaps a particular photo or some problematic data baked into the component, might be the manifestation set up by those aspects of RC you describe, am wondering if there’s any merit to pinning down that gremlin.
More clues and more weirdnesses. At Götz’ suggestion, I exported Metadata (XMP), using the export as locked state and all default settings, then placing those in the same folder next to the source imagery. Imported to a new project, the first weirdness I encountered was that only one image imported from the group I had selected. I checked the directory to see my XMPs, noted that only a small percentage made it out. I went back to the previous project and exported again, this time all XMPs made it out and all images made it in. A possible bug? Did I close the project or make some move to interrupt the export? If so, and I noticed this happening a couple times, that’s a bug if RC doesn’t manage such expected circumstances.
Once I was able to confirm all XMPs got exported, I brought the associated imagery into a new project, noted that some images had “exif” next to their name in 1Ds, while others had an icon, which on rollover said “georeferenced”. I thought that was interesting, why wouldn’t all the images be georeferenced? I ran alignment, got the red flag and same invalid function call. I thought, maybe I could unlock the camera poses, might they change rotation, but keep position, keep something that allows scale/coordinate system to ride along. After exporting XMPs with camera poses changed to draft mode, then importing those to a new project, I now noted all “exif” next to each image. I figured I’d lost what’s needed to georeference from the previous project, component quickly aligned and indeed, it showed up centered on the grid, not what I want. I then tried XMPs using exact position, which sounded like that would hold the translation of each camera fixed, but allow rotation to adjust, nope, alignment brought component to center of grid.
I forget my reason for returning to the previous project, but I discovered that I hadn’t been careful enough when selecting the desired camera poses in 2Ds for activation/deactivation (didn’t scroll high enough to spot first row of three photos), so I tried once more to export XMPs using locked poses, and strangely this time when the group of 501 images dropped into a new project, every one of them displayed the georeferenced icon next to them. What is up with that? I found it all the more encouraging when I ran alignment that the resulting component wasn’t at the center of the grid. Might I be there? Of course not. I ran reconstruction and minutes later got the invalid function call.
So, I’m now running these images without any reference to the mother set, was able to get median reprojection error to .366, will now deal with scaling and aligning by eye. Again, because of the challenge posed by joining these two spaces across this sharp divide to which my best efforts at capture fell short, I have no overlap to work with, if I’m hearing you right about CloudCompare needing some overlap. When I searched SISP and scale ISP I stumbled into camp brainiac at MIT and such. The work on zippering meshes at Stanford looks really interesting, can see how this approach might be useful to mending other problem in RC meshes, especially the problems I encounter with straight lines and smooth surfaces ubiquitous in manmade environments.
I’m not averse to biting off a steep learning curve if I’m confident the tuts and forums are rich and viable. Balancing deliverables against learning cautions me against heading down dark alleys, moving too fast into new directions. For the present deliverable, which serves an art film and a VR project (not science), I believe I’ll get by scaling and aligning this fourth related mesh manually, playing down any problems at the seam with lighting and some other tricks. You do have me curious, however, what’s in your toolbox, how you made friends with them, and given I’m not a veteran VFX artist, my background being in live-action adventure docs, how I might proceed in learning openMVG or Zipper. I’ll do some reading in the meanwhile. Many thanks.
Addendum: What gives? I just got the invalid function call after simply importing these 501 images, ratcheting down on max reprojection error (MRE), no XMPs in play. I’ll try reconstruction at the default setting, 2.0. Ugh. Götz, I hear you in my ear, “I told you so”. I’m now thinking this iterative alignment workflow exceeded its utility. Let’s see how 2.0 MRE works. If so, I’ll have to go back and reconstruct 1-4 with a doable MRE.