8000 Rename SupperMeasurer::Compare for improved readability by ahojnnes · Pull Request #2774 · colmap/colmap · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content
8000

Rename SupperMeasurer::Compare for improved readability #2774

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
Sep 11, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions src/colmap/optim/loransac.h
Original file line number Diff line number Diff line change
Expand Up @@ -151,7 +151,7 @@ LORANSAC<Estimator, LocalEstimator, SupportMeasurer, Sampler>::Estimate(
const auto support = support_measurer.Evaluate(residuals, max_residual);

// Do local optimization if better than all previous subsets.
if (support_measurer.Compare(support, best_support)) {
if (support_measurer.IsLeftBetter(support, best_support)) {
best_support = support;
best_model = sample_model;
best_model_is_local = false;
Expand Down Expand Up @@ -187,7 +187,7 @@ LORANSAC<Estimator, LocalEstimator, SupportMeasurer, Sampler>::Estimate(
support_measurer.Evaluate(residuals, max_residual);

// Check if locally optimized model is better.
if (support_measurer.Compare(local_support, best_support)) {
if (support_measurer.IsLeftBetter(local_support, best_support)) {
best_support = local_support;
best_model = local_model;
best_model_is_local = true;
Expand Down
2 changes: 1 addition & 1 deletion src/colmap/optim/ransac.h
Original file line number Diff line number Diff line change
Expand Up @@ -235,7 +235,7 @@ RANSAC<Estimator, SupportMeasurer, Sampler>::Estimate(
const auto support = support_measurer.Evaluate(residuals, max_residual);

// Save as best subset if better than all previous subsets.
if (support_measurer.Compare(support, best_support)) {
if (support_measurer.IsLeftBetter(support, best_support)) {
best_support = support;
best_model = sample_model;

Expand Down
30 changes: 15 additions & 15 deletions src/colmap/optim/support_measurement.cc
8000
Original file line number Diff line number Diff line change
Expand Up @@ -51,13 +51,13 @@ InlierSupportMeasurer::Support InlierSupportMeasurer::Evaluate(
return support;
}

bool InlierSupportMeasurer::Compare(const Support& support1,
const Support& support2) {
if (support1.num_inliers > support2.num_inliers) {
bool InlierSupportMeasurer::IsLeftBetter(const Support& left,
const Support& right) {
if (left.num_inliers > right.num_inliers) {
return true;
} else {
return support1.num_inliers == support2.num_inliers &&
support1.residual_sum < support2.residual_sum;
return left.num_inliers == right.num_inliers &&
left.residual_sum < right.residual_sum;
}
}

Expand All @@ -81,16 +81,16 @@ UniqueInlierSupportMeasurer::Support UniqueInlierSupportMeasurer::Evaluate(
return support;
}

bool UniqueInlierSupportMeasurer::Compare(const Support& support1,
const Support& support2) {
if (support1.num_unique_inliers > support2.num_unique_inliers) {
bool UniqueInlierSupportMeasurer::IsLeftBetter(const Support& left,
const Support& right) {
if (left.num_unique_inliers > right.num_unique_inliers) {
return true;
} else if (support1.num_unique_inliers == support2.num_unique_inliers) {
if (support1.num_inliers > support2.num_inliers) {
} else if (left.num_unique_inliers == right.num_unique_inliers) {
if (left.num_inliers > right.num_inliers) {
return true;
} else {
return support1.num_inliers == support2.num_inliers &&
support1.residual_sum < support2.residual_sum;
return left.num_inliers == right.num_inliers &&
left.residual_sum < right.residual_sum;
}
} else {
return false;
Expand All @@ -115,9 +115,9 @@ MEstimatorSupportMeasurer::Support MEstimatorSupportMeasurer::Evaluate(
return support;
}

bool MEstimatorSupportMeasurer::Compare(const Support& support1,
const Support& support2) {
return support1.score < support2.score;
bool MEstimatorSupportMeasurer::IsLeftBetter(const Support& left,
const Support& right) {
return left.score < right.score;
}

} // namespace colmap
12 changes: 6 additions & 6 deletions src/colmap/optim/support_measurement.h
Original file line number Diff line number Diff line change
Expand Up @@ -50,8 +50,8 @@ struct InlierSupportMeasurer {
// Compute the support of the residuals.
Support Evaluate(const std::vector<double>& residuals, double max_residual);

// Compare the two supports and return the better support.
bool Compare(const Support& support1, const Support& support2);
// Compare the two supports.
bool IsLeftBetter(const Support& left, const Support& right);
};

// Measure the support of a model by counting the number of unique inliers
Expand Down Expand Up @@ -79,8 +79,8 @@ struct UniqueInlierSupportMeasurer {
// Compute the support of the residuals.
Support Evaluate(const std::vector<double>& residuals, double max_residual);

// Compare the two supports and return the better support.
bool Compare(const Support& support1, const Support& support2);
// Compare the two supports.
bool IsLeftBetter(const Support& left, const Support& right);

private:
std::vector<size_t> unique_sample_ids_;
Expand All @@ -100,8 +100,8 @@ struct MEstimatorSupportMeasurer {
// Compute the support of the residuals.
Support Evaluate(const std::vector<double>& residuals, double max_residual);

// Compare the two supports and return the better support.
bool Compare(const Support& support1, const Support& support2);
// Compare the two supports.
bool IsLeftBetter(const Support& left, const Support& right);
};

} // namespace colmap
72 changes: 36 additions & 36 deletions src/colmap/optim/support_measurement_test.cc
Original file line number Diff line number Diff line change
Expand Up @@ -49,21 +49,21 @@ TEST(InlierSupportMeasurer, Nominal) {
EXPECT_EQ(support1.residual_sum, 0.0);
InlierSupportMeasurer::Support support2;
support2.num_inliers = 2;
EXPECT_TRUE(measurer.Compare(support1, support2));
EXPECT_FALSE(measurer.Compare(support2, support1));
EXPECT_TRUE(measurer.IsLeftBetter(support1, support2));
EXPECT_FALSE(measurer.IsLeftBetter(support2, support1));
support2.residual_sum = support1.residual_sum;
EXPECT_TRUE(measurer.Compare(support1, support2));
EXPECT_FALSE(measurer.Compare(support2, support1));
EXPECT_TRUE(measurer.IsLeftBetter(support1, support2));
EXPECT_FALSE(measurer.IsLeftBetter(support2, support1));
support2.num_inliers = support1.num_inliers;
support2.residual_sum += 0.01;
EXPECT_TRUE(measurer.Compare(support1, support2));
EXPECT_FALSE(measurer.Compare(support2, support1));
EXPECT_TRUE(measurer.IsLeftBetter(support1, support2));
EXPECT_FALSE(measurer.IsLeftBetter(support2, support1));
support2.residual_sum -= 0.01;
EXPECT_FALSE(measurer.Compare(support1, support2));
EXPECT_FALSE(measurer.Compare(support2, support1));
EXPECT_FALSE(measurer.IsLeftBetter(support1, support2));
EXPECT_FALSE(measurer.IsLeftBetter(support2, support1));
support2.residual_sum -= 0.01;
EXPECT_FALSE(measurer.Compare(support1, support2));
EXPECT_TRUE(measurer.Compare(support2, support1));
EXPECT_FALSE(measurer.IsLeftBetter(support1, support2));
EXPECT_TRUE(measurer.IsLeftBetter(support2, support1));
}

TEST(UniqueInlierSupportMeasurer, Nominal) {
Expand All @@ -83,35 +83,35 @@ TEST(UniqueInlierSupportMeasurer, Nominal) {

UniqueInlierSupportMeasurer::Support support2;
support2.num_unique_inliers = support1.num_unique_inliers - 1;
EXPECT_TRUE(measurer.Compare(support1, support2));
EXPECT_FALSE(measurer.Compare(support2, support1));
EXPECT_TRUE(measurer.IsLeftBetter(support1, support2));
EXPECT_FALSE(measurer.IsLeftBetter(support2, support1));
support2.num_inliers = support1.num_inliers + 1;
EXPECT_TRUE(measurer.Compare(support1, support2));
EXPECT_FALSE(measurer.Compare(support2, support1));
EXPECT_TRUE(measurer.IsLeftBetter(support1, support2));
EXPECT_FALSE(measurer.IsLeftBetter(support2, support1));
support2.num_inliers = support1.num_inliers;
EXPECT_TRUE(measurer.Compare(support1, support2));
EXPECT_FALSE(measurer.Compare(support2, support1));
EXPECT_TRUE(measurer.IsLeftBetter(support1, support2));
EXPECT_FALSE(measurer.IsLeftBetter(support2, support1));
support2.residual_sum = support1.residual_sum - 0.01;
EXPECT_TRUE(measurer.Compare(support1, support2));
EXPECT_FALSE(measurer.Compare(support2, support1));
EXPECT_TRUE(measurer.IsLeftBetter(support1, support2));
EXPECT_FALSE(measurer.IsLeftBetter(support2, support1));
support2.residual_sum = support1.residual_sum;
EXPECT_TRUE(measurer.Compare(support1, support2));
EXPECT_FALSE(measurer.Compare(support2, support1));
EXPECT_TRUE(measurer.IsLeftBetter(support1, support2));
EXPECT_FALSE(measurer.IsLeftBetter(support2, support1));
support2.num_unique_inliers = support1.num_unique_inliers;
EXPECT_FALSE(measurer.Compare(support1, support2));
EXPECT_FALSE(measurer.Compare(support2, support1));
EXPECT_FALSE(measurer.IsLeftBetter(support1, support2));
EXPECT_FALSE(measurer.IsLeftBetter(support2, support1));
support2.residual_sum = support1.residual_sum - 0.01;
EXPECT_FALSE(measurer.Compare(support1, support2));
EXPECT_TRUE(measurer.Compare(support2, support1));
EXPECT_FALSE(measurer.IsLeftBetter(support1, support2));
EXPECT_TRUE(measurer.IsLeftBetter(support2, support1));
support2.num_inliers = support1.num_inliers + 1;
support2.residual_sum = support1.residual_sum + 0.01;
EXPECT_FALSE(measurer.Compare(support1, support2));
EXPECT_TRUE(measurer.Compare(support2, support1));
EXPECT_FALSE(measurer.IsLeftBetter(support1, support2));
EXPECT_TRUE(measurer.IsLeftBetter(support2, support1));
support2.num_unique_inliers = support1.num_unique_inliers + 1;
support2.num_inliers = support1.num_inliers - 1;
support2.residual_sum = support1.residual_sum + 0.01;
EXPECT_FALSE(measurer.Compare(support1, support2));
EXPECT_TRUE(measurer.Compare(support2, support1));
EXPECT_FALSE(measurer.IsLeftBetter(support1, support2));
EXPECT_TRUE(measurer.IsLeftBetter(support2, support1));
}

TEST(MEstimatorSupportMeasurer, Nominal) {
Expand All @@ -124,18 +124,18 @@ TEST(MEstimatorSupportMeasurer, Nominal) {
EXPECT_EQ(support1.num_inliers, 3);
EXPECT_EQ(support1.score, 1.0);
MEstimatorSupportMeasurer::Support support2 = support1;
EXPECT_FALSE(measurer.Compare(support1, support2));
EXPECT_FALSE(measurer.Compare(support2, support1));
EXPECT_FALSE(measurer.IsLeftBetter(support1, support2));
EXPECT_FALSE(measurer.IsLeftBetter(support2, support1));
support2.num_inliers -= 1;
support2.score += 0.01;
EXPECT_TRUE(measurer.Compare(support1, support2));
EXPECT_FALSE(measurer.Compare(support2, support1));
EXPECT_TRUE(measurer.IsLeftBetter(support1, support2));
EXPECT_FALSE(measurer.IsLeftBetter(support2, support1));
support2.score -= 0.01;
EXPECT_FALSE(measurer.Compare(support1, support2));
EXPECT_FALSE(measurer.Compare(support2, support1));
EXPECT_FALSE(measurer.IsLeftBetter(support1, support2));
EXPECT_FALSE(measurer.IsLeftBetter(support2, support1));
support2.score -= 0.01;
EXPECT_FALSE(measurer.Compare(support1, support2));
EXPECT_TRUE(measurer.Compare(support2, support1));
EXPECT_FALSE(measurer.IsLeftBetter(support1, support2));
EXPECT_TRUE(measurer.IsLeftBetter(support2, support1));
}

} // namespace
Expand Down
Loading
0