From 0d3def3bb1e8e923f305531facdcadff7ed394ef Mon Sep 17 00:00:00 2001 From: Fabien Servant Date: Thu, 26 Jun 2025 14:10:04 +0200 Subject: [PATCH] change threshold for sfm validity --- .../sequential/ReconstructionEngine_sequentialSfM.cpp | 11 ++++++++++- .../sequential/ReconstructionEngine_sequentialSfM.hpp | 3 +++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/src/aliceVision/sfm/pipeline/sequential/ReconstructionEngine_sequentialSfM.cpp b/src/aliceVision/sfm/pipeline/sequential/ReconstructionEngine_sequentialSfM.cpp index 0b4324fa61..aa9916f6a9 100644 --- a/src/aliceVision/sfm/pipeline/sequential/ReconstructionEngine_sequentialSfM.cpp +++ b/src/aliceVision/sfm/pipeline/sequential/ReconstructionEngine_sequentialSfM.cpp @@ -227,7 +227,16 @@ bool ReconstructionEngine_sequentialSfM::process() exportStatistics(elapsedTime); - return !_sfmData.getPoses().empty(); + const size_t nbviews = _sfmData.getViews().size(); + const size_t nbposes = _sfmData.getPoses().size(); + + size_t minPoses = 1; + if (nbviews > _params.smallDatasetLimit) + { + minPoses = 3; + } + + return (nbposes >= minPoses); } void ReconstructionEngine_sequentialSfM::initializePyramidScoring() diff --git a/src/aliceVision/sfm/pipeline/sequential/ReconstructionEngine_sequentialSfM.hpp b/src/aliceVision/sfm/pipeline/sequential/ReconstructionEngine_sequentialSfM.hpp index 9825380ba3..2c5478e7f2 100644 --- a/src/aliceVision/sfm/pipeline/sequential/ReconstructionEngine_sequentialSfM.hpp +++ b/src/aliceVision/sfm/pipeline/sequential/ReconstructionEngine_sequentialSfM.hpp @@ -47,6 +47,9 @@ class ReconstructionEngine_sequentialSfM : public ReconstructionEngine bool useLocalBundleAdjustment = false; int localBundelAdjustementGraphDistanceLimit = 1; + //Number of views under which a dataset is considered small + size_t smallDatasetLimit = 5; + /// Dump current status of the scene every 3 resections bool logIntermediateSteps = false;