Skip to content

Commit 66a22ac

Browse files
feat: add PROSAC registration algorithm with correspondence sorting system
Implement Progressive Sample Consensus (PROSAC) for robust point cloud registration with quality-guided sampling. The implementation includes: Core features: - PROSAC registration algorithm with progressive sampling schedule - Non-randomness and maximality stopping criteria - Flexible correspondence sorting system with multiple strategies Correspondence sorters: - Descriptor distance sorter (for feature-based matching) - Geometric consistency sorter (for spatial relationship evaluation) - Combined sorter (weighted combination of multiple sorters) - Custom function sorter (user-defined quality metrics) Performance improvements: - Benchmarks show 5-89x speedup over RANSAC depending on outlier ratio - Quality-ordered sampling significantly reduces iterations to convergence - Parallel computation support for geometric consistency evaluation Testing and examples: - Comprehensive unit tests for all sorters and PROSAC algorithm - Performance benchmarks comparing PROSAC vs RANSAC - Simple and comprehensive usage examples The implementation follows cpp-toolbox patterns with CRTP for static polymorphism and clean separation of interface and implementation. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
1 parent cebb874 commit 66a22ac

19 files changed

+5003
-1
lines changed

benchmark/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ list(APPEND BENCHMARK_FILES
1313
pcl/descriptors_benc.cpp
1414
pcl/correspondence_benc.cpp
1515
pcl/registration_benc.cpp
16+
pcl/prosac_vs_ransac_benc.cpp
1617
pcl/fine_registration_benc.cpp
1718
${CMAKE_SOURCE_DIR}/test/my_catch2_main.cpp
1819
)

0 commit comments

Comments
 (0)