Meshroom
Meshroom copied to clipboard
Results differ after adding SFM Transform to custom CLI pipeline
Describe the problem Hi everyone,
I needed to add aliceVision_utils_sfmTransform
, so I could not just use the meshroom_batch
CLI command. I built a custom CLI pipeline by calling the 'node' binaries in AliceVision on a python script. I noticed that after running the new pipeline, the results differed from those of meshroom_batch
. The final result was filled with holes, I checked through all the parameters and I was using the same ones as meshroom_batch
. As an experiment, I then tried to not use the SFM Transform node in the custom pipeline, and to my surprise, then the results were identical to those of meshroom_batch
.
I also noticed that if I ran my custom pipeline with the SFM Transform node, I have 1 more texture file (png), so in total 4 texture files and a total of 686,505 vertices and 1,368,734 faces. If I remove the SFM Transform node, there will 3 three texture files and the mesh will have a total of 691,615 and 1,379,401 faces.
My question is why does adding the SFM Transform node has this negative effect on the final reconstruction, in terms of many holes in the mesh, as well as differing in total mesh vertex and face count as well as the number of texture files?
Any help on this issue will be very helpful.
Thanks!
Screenshots If applicable, add screenshots to help explain your problem.
Custom CLI pipeline WITH aliceVision_utils_sfmTransform
Custom pipeline WITHOUT aliceVision_utils_sfmTransform
Dataset If applicable, add a link or few images to help better understand where the problem may come from.
Log If applicable, copy paste the relevant log output (please embed the text in a markdown code tag "```" )
These are the logs of the parameters the aliceVision_utils_sfmTransform
was called with:
./Meshroom-2021.1.0-av2.4.0-centos7-cuda10.2/aliceVision/bin/aliceVision_utils_sfmTransform --input compute_process/5_StructureFromMotion/sfm.abc --output compute_process/5.1_SFMTransform/sfm.abc --method auto_from_cameras --verboseLevel info
Program called with the following parameters:
* applyRotation = 1 (default)
* applyScale = 1 (default)
* applyTranslation = 1 (default)
* input = "compute_process/5_StructureFromMotion/sfm.abc"
* landmarksDescriberTypes = "" (default)
* method = Unknown Type "16EAlignmentMethod"
* output = "compute_process/5.1_SFMTransform/sfm.abc"
* scale = 1 (default)
* transformation = "" (default)
* verboseLevel = "info"
Desktop (please complete the following and other pertinent information):
- Ubuntu 18.04
- Meshroom version: please specify if you are using a release version or your own build
- Binary version : 2021.1.0
Additional context
I have added aliceVision_utils_sfmTransform
after aliceVision_incrementalSfM
All subsequent steps such as:
-
aliceVision_prepareDenseScene
-
aliceVision_depthMapEstimation
-
aliceVision_depthMapFiltering
take as input thesfm.abc
file that was outputed fromaliceVision_utils_sfmTransform
@simogasp @natowi would you guys have any ideas? Thanks