StructureFromKnownPoses fails on basic test
EvgenyTsizin opened this issue · comments
Hi I am trying to start working with StructureFromKnownPoses I took the simplest test of three cameras from mini3 dataset
I then run the mini3 dataset on the standard photogametry flow - and everything works, generating poses in camera.sfm of the SfM node output.
I then use those poses to initialize ImportKnownPoses node. Then continue the usual photogametry flow - FeatureExtraction, ImageMatching, FeatureMatching, everything works. I enable "Match From Known Camera Poses" flag, and everything matches fine.
Then I continue to StructureFromKnownPoses node and it fails. Giving the error:
- commandLine: aliceVision_computeStructureFromKnownPoses --input "/home/access/dev/Meshroom-2023.3.0/MeshroomCache/ImportKnownPoses/99ca04397dea406d1b7b110cfcae17bce0bd4f8f/sfmData.abc" --featuresFolders "/home/access/dev/Meshroom-2023.3.0/MeshroomCache/FeatureExtraction/f6b072c95dcf74e8027e1ac73805cb94524e5415" --matchesFolders "/home/access/dev/Meshroom-2023.3.0/MeshroomCache/FeatureMatching/e664638ea401fcb56c3c1c6921c0e242570466fd" --describerTypes sift --output "/home/access/dev/Meshroom-2023.3.0/MeshroomCache/StructureFromKnownPoses/e726a1e24e219098d72f93cc9f438932a8466a0d/sfkp.abc"
- logFile: /home/access/dev/Meshroom-2023.3.0/MeshroomCache/StructureFromKnownPoses/e726a1e24e219098d72f93cc9f438932a8466a0d/log
ERROR:root:Error on node computation: Error on node "StructureFromKnownPoses_1":
Log:
[2024-03-11 17:36:17.332768] [0x00007f671cc72000] [trace] Embedded OCIO configuration file: '/home/access/dev/Meshroom-2023.3.0/aliceVision/share/aliceVision/config.ocio' found.
Program called with the following parameters:
* describerTypes = "sift"
* featuresFolders = = [/home/access/dev/Meshroom-2023.3.0/MeshroomCache/FeatureExtraction/f6b072c95dcf74e8027e1ac73805cb94524e5415]
* geometricErrorMax = 5 (default)
* input = "/home/access/dev/Meshroom-2023.3.0/MeshroomCache/ImportKnownPoses/99ca04397dea406d1b7b110cfcae17bce0bd4f8f/sfmData.abc"
* matchesFolders = = [/home/access/dev/Meshroom-2023.3.0/MeshroomCache/FeatureMatching/e664638ea401fcb56c3c1c6921c0e242570466fd]
* maxCoresAvailable = Unknown Type "j" (default)
* maxMemoryAvailable = 18446744073709551615 (default)
* output = "/home/access/dev/Meshroom-2023.3.0/MeshroomCache/StructureFromKnownPoses/e726a1e24e219098d72f93cc9f438932a8466a0d/sfkp.abc"
* randomSeed = 5489 (default)
* verboseLevel = "info" (default)
Hardware :
Detected core count : 16
OpenMP will use 16 cores
Detected available memory : 17779 Mo
Loading regions
0% 10 20 30 40 50 60 70 80 90 100%
|----|----|----|----|----|----|----|----|----|----|
[17:36:17.358264][info] Supported CUDA-Enabled GPU detected.
[17:36:17.358583][error] Invalid regions.
Here is a screenshot and the camera files I used to initialize the ImportKnownPoses node. Also everything worked fine, including the known poses flag inside the featureMatching node, indicating it's some issue with StructureFromKnownPoses
Attached also the cameras_init.sfm and cameras_poses.sfm inside a zip:
cameras.zip
- OS: Ubuntu 20.04.2 LTS
- Python version 3.8.3
- Meshroom version: Meshroom-2023.3.0
Note: It's very basic test, it should work without any problems.
StructureFromKnownPoses is not part of Meshroom though. Would this issue not be better suited for the repository you linked?
I'd also like to point out that the linked custom node was last updated 4 years ago. The internal workings of Meshroom and the AliceVision framework likely changed since then.
You can use the SfMTriangulation node.
@MrClock8163 Hi I am not looking specifically into StructureFromKnownPoses, but into the functionality provided. It is possible that Meshroom 2023 included some version of this node into the main node set. Also the addon is written by single person while the main community is here, discussions on StructureFromKnownPoses are located in this repository in #1601 #807 and several others issues, I guess I will find more people here that had encountered similar issue.
@fabiencastan Thank you for the response. I didn't find any mention of this node in the documentation, and tried to use it out of the box, but maybe I am doing something wrong. The node worked but didn't show any computation results, and the continuation of the flow failed.
Maybe someone can try to reproduce the test case? It's very simple. Just use the poses from the results from mini3 dataset run, I attached my version of the scenario.
@EvgenyTsizin I have tried this with my own dataset (6 images) and it is working for me (using version 2023.2).
What does the DepthMap log say?
OK looks like I just needed to enable "lock previously reconstructed scene" in the regular SfM node, and use ImportKnownPoses node built in 2023 instead of CameraInit and keep the rest of photogrammetry flow intact. No need in StructureFromKnownPoses, was overthinking it probably.
Thanks everyone for trying to help.