Meshroom: [question] Cannot save the SfM data file The file extension is not recognized.

Created on 10 May 2020  路  6Comments  路  Source: alicevision/meshroom

Describe the problem
I am running the basic pipeline. Within the Structure From Motion step I observe that the files cannot be saved.

Log
[21:57:05.808979][info] Structure from motion took (s): 199.757000
[21:57:05.809136][info] Generating HTML report...
[21:57:05.883260][info] Export SfMData to disk: /home/skinkie/meshroom/MeshroomCache/StructureFromMotion/a884ca809714e827b0707bbf27d3881297458742/sfm.abc
[21:57:05.883387][error] Cannot save the SfM data file: '/home/skinkie/meshroom/MeshroomCache/StructureFromMotion/a884ca809714e827b0707bbf27d3881297458742/cloud_and_poses.abc'.
The file extension is not recognized.
[21:57:05.883455][error] Cannot save the SfM data file: '/home/skinkie/meshroom/MeshroomCache/StructureFromMotion/a884ca809714e827b0707bbf27d3881297458742/sfm.abc'.
The file extension is not recognized.
[21:57:05.962271][info] Structure from Motion results:
- # input images: 164
- # cameras calibrated: 146
- # poses: 146
- # landmarks: 53943

Desktop (please complete the following and other pertinent information):

  • OS: Linux
  • Python Python 3.6.10
  • Qt/PySide version 5.14.2
  • Meshroom version:

    • Commit reference (if applicable) 1e5889559b424dd90b8a0a882815660ed2fb92ed

    • AliceVision commit 30fe982dd2b3e6e2afd34b1be000bd9d436eb514 (latest develop)

do not close question

All 6 comments

I think that we can prevent this question if this could be revamped to a: Alembic is not compiled in.

#if ALICEVISION_IS_DEFINED(ALICEVISION_HAVE_ALEMBIC)
  else if(extension == ".abc") // Alembic
  {
    AlembicImporter(filename).populateSfM(sfmData, partFlag);
    status = true;
  }
#endif // ALICEVISION_HAVE_ALEMBIC

@fabiencastan is there a way to make mushroom aware of the build conf of AV and e.g, avoid using alembic?

@skinkie yes, you need to build AV with Alembic.

@simogasp No, the extension is abc in many places and is not exposed as an option.
We should maybe switch the ALICEVISION_USE_ALEMBIC from AUTO to ON. So by default, ensure people build with Alembic and they can explicitly disable the dependency if they don't need it.

@skinkie yes, you need to build AV with Alembic.

Yes, if only I knew what went wrong because I didn't do it. Would a slight change in AliceVision be acceptable where the #ifdev would explicitly return in an error when loading/saving a file?

@simogasp No, the extension is abc in many places and is not exposed as an option.
We should maybe switch the ALICEVISION_USE_ALEMBIC from AUTO to ON. So by default, ensure people build with Alembic and they can explicitly disable the dependency if they don't need it.

It seems that the code does not fall back to building the dependency if the system does not have it. I hope with ON this can be guaranteed.

Oh, you're right. I didn't pay attention to the code!
We should probably do something like:

  else if(extension == ".abc") // Alembic
  {
#if ALICEVISION_IS_DEFINED(ALICEVISION_HAVE_ALEMBIC)
    AlembicImporter(filename).populateSfM(sfmData, partFlag);
    status = true;
#else
   ALICEVISION_THROW_ERROR("Cannot load the ABC file: \""<< filename <<"\", AliceVision is built without Alembic support.");
#endif // ALICEVISION_HAVE_ALEMBIC
  }

Keep open.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

ChewBaz picture ChewBaz  路  6Comments

ROKimaging picture ROKimaging  路  3Comments

mobarre picture mobarre  路  5Comments

mazhexu1995 picture mazhexu1995  路  4Comments

raphael2692 picture raphael2692  路  3Comments