Meshroom icon indicating copy to clipboard operation
Meshroom copied to clipboard

Results differ after adding SFM Transform to custom CLI pipeline

Open informatter opened this issue 1 year ago • 1 comments

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

Screenshot 2022-08-11 at 16 24 10

Custom pipeline WITHOUT aliceVision_utils_sfmTransform

Screenshot 2022-08-11 at 16 21 48

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 the sfm.abc file that was outputed from aliceVision_utils_sfmTransform

informatter avatar Aug 11 '22 15:08 informatter

@simogasp @natowi would you guys have any ideas? Thanks

informatter avatar Aug 23 '22 17:08 informatter