diff --git a/openpgl/directional/vmm/AdaptiveSplitandMergeFactory.h b/openpgl/directional/vmm/AdaptiveSplitandMergeFactory.h index 98e9ef6b..0bea6916 100644 --- a/openpgl/directional/vmm/AdaptiveSplitandMergeFactory.h +++ b/openpgl/directional/vmm/AdaptiveSplitandMergeFactory.h @@ -35,8 +35,8 @@ struct AdaptiveSplitAndMergeFactory { typename WeightedEMFactory::Configuration weightedEMCfg; - float splittingThreshold{0.75f}; - float mergingThreshold{0.00625f}; + float splittingThreshold{0.5f}; + float mergingThreshold{0.025f}; bool useSplitAndMerge{true}; diff --git a/openpgl/directional/vmm/ParallaxAwareVonMisesFisherWeightedEMFactory.h b/openpgl/directional/vmm/ParallaxAwareVonMisesFisherWeightedEMFactory.h index 0e282a0a..25f74d06 100644 --- a/openpgl/directional/vmm/ParallaxAwareVonMisesFisherWeightedEMFactory.h +++ b/openpgl/directional/vmm/ParallaxAwareVonMisesFisherWeightedEMFactory.h @@ -38,14 +38,14 @@ struct ParallaxAwareVonMisesFisherWeightedEMFactory float maxKappa{OPENPGL_MAX_KAPPA}; float maxMeanCosine{KappaToMeanCosine(OPENPGL_MAX_KAPPA)}; - float convergenceThreshold{0.0025f}; + float convergenceThreshold{0.005f}; // MAP prior parameters // weight prior - float weightPrior{0.1f}; + float weightPrior{0.01f}; // concentration/meanCosine prior - float meanCosinePriorStrength{0.1f}; + float meanCosinePriorStrength{0.2f}; float meanCosinePrior{0.0f}; void init(); diff --git a/openpgl/directional/vmm/VMMChiSquareComponentSplitter.h b/openpgl/directional/vmm/VMMChiSquareComponentSplitter.h index 5bbc2eb9..100f2bae 100644 --- a/openpgl/directional/vmm/VMMChiSquareComponentSplitter.h +++ b/openpgl/directional/vmm/VMMChiSquareComponentSplitter.h @@ -252,16 +252,16 @@ void VonMisesFisherChiSquareComponentSplitter::PerformSplitting(VMM { // std::cout << "split[" << k << "]: idx:" << splitComps[k].componentIndex << "\t chi2: " << splitComps[k].chiSquareEst << std::endl; #ifndef OPENPGL_USE_THREE_SPLIT - bool splitSucess = SplitComponent(vmm, splitStatistics, suffStatistics, splitComps[k].componentIndex); + bool splitSuccess = SplitComponent(vmm, splitStatistics, suffStatistics, splitComps[k].componentIndex); mask.setToTrue(splitComps[k].componentIndex); mask.setToTrue(vmm._numComponents - 1); #else - bool splitSucess = SplitComponentIntoThree(vmm, splitStatistics, suffStatistics, splitComps[k].componentIndex); + bool splitSuccess = SplitComponentIntoThree(vmm, splitStatistics, suffStatistics, splitComps[k].componentIndex); mask.setToTrue(splitComps[k].componentIndex); mask.setToTrue(vmm._numComponents - 2); mask.setToTrue(vmm._numComponents - 1); #endif - if (splitSucess) + if (splitSuccess) { stopSplitting = false; } @@ -330,22 +330,22 @@ void VonMisesFisherChiSquareComponentSplitter::PerformRecursiveSpli if (splitComps[k].chiSquareEst > splitThreshold && vmm._numComponents < VMM::MaxComponents) { #ifndef OPENPGL_USE_THREE_SPLIT - bool splitSucess = SplitComponent(vmm, splitStatistics, tempSuffStatistics, splitComps[k].componentIndex); - if (splitSucess) + bool splitSuccess = SplitComponent(vmm, splitStatistics, tempSuffStatistics, splitComps[k].componentIndex); + if (splitSuccess) { mask.setToTrue(splitComps[k].componentIndex); mask.setToTrue(vmm._numComponents - 1); } #else - bool splitSucess = SplitComponentIntoThree(vmm, splitStatistics, tempSuffStatistics, splitComps[k].componentIndex); - if (splitSucess) + bool splitSuccess = SplitComponentIntoThree(vmm, splitStatistics, tempSuffStatistics, splitComps[k].componentIndex); + if (splitSuccess) { mask.setToTrue(splitComps[k].componentIndex); mask.setToTrue(vmm._numComponents - 1); mask.setToTrue(vmm._numComponents - 2); } #endif - if (splitSucess) + if (splitSuccess) { numSplits++; } diff --git a/openpgl/include/openpgl/config.h b/openpgl/include/openpgl/config.h index f48bfe70..240333a7 100644 --- a/openpgl/include/openpgl/config.h +++ b/openpgl/include/openpgl/config.h @@ -59,7 +59,7 @@ extern "C" // weighted EM arguments size_t initK{PGL_VMM_MAX_COMPONENTS / 2}; - float initKappa{0.5f}; + float initKappa{5.0f}; size_t maxK{PGL_VMM_MAX_COMPONENTS}; size_t maxEMIterrations{100};