Commit 66a22ac
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
File tree
19 files changed
+5003
-1
lines changed- benchmark
- pcl
- docs
- example
- src/include/cpp-toolbox/pcl
- correspondence
- registration
- impl
- test/pcl
19 files changed
+5003
-1
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
13 | 13 | | |
14 | 14 | | |
15 | 15 | | |
| 16 | + | |
16 | 17 | | |
17 | 18 | | |
18 | 19 | | |
| |||
0 commit comments