PoSDK User Guide

GitHub Repository: https://github.com/pose-only-vision/PoSDK

PoSDK is a C++ software platform for Spatial Visual Computing, designed for 3D multi-view geometry processing, including camera pose estimation, feature point cloud generation, and more.

This guide introduces the PoSDK architecture, core library usage, and custom plugin development.

Core Features

  • Pose-only Geometry Theory: Based on innovative Pose-only Imaging Geometry theory, enabling efficient and robust pose estimation

  • Modular Plugin System: Flexible feature extension through DataPtr and MethodPtr

  • Performance Profiling Tools: Built-in profiler for real-time monitoring of memory, CPU, time, and other metrics

  • Automatic Evaluation: Built-in accuracy evaluator that automatically collects, statistics, and exports various accuracy metrics of algorithms

  • Copyright Tracking: Automatically collects and displays copyright information of algorithms to protect intellectual property

  • Cross-platform Support: Supports macOS (arm64), Linux (x86_64/aarch64)

  • Bilingual Logging: Chinese-English bilingual log output

  • Platform Integration and Comparison: Supports integration and comparison with mainstream 3D reconstruction platforms (OpenMVG, COLMAP, GLOMAP, etc.) → View Comparison Results

System Architecture

PoSDK adopts a layered architecture design, isolating the core computing engine from upper-layer applications and providing flexible secondary development interfaces through the SDK.

PoSDK Architecture Layers

PoSDK Architecture Layers Diagram

The main components include:

  • Core Layer:

    • Contains the core computing engine based on Pose-only Visual Geometry Theory (internally developed and maintained).

    • Responsible for handling low-level geometric computations, optimization problems, etc.

  • Interface Layer (SDK):

    • Provides SDK development plugin modules, encapsulating core algorithm interfaces to support user secondary development.

    • Includes modular functions such as data processing, feature extraction and matching, outlier handling, dense reconstruction, and cross-platform support.

    • Plugin System: One of PoSDK’s core features, allowing users to dynamically load and extend algorithm functionality by developing custom plugins (DataPtr, MethodPtr, BehaviorPtr) without modifying core library code.

      • DataPtr: Used to encapsulate various data types.

      • MethodPtr: Used to implement specific algorithm logic.

      • BehaviorPtr (Reserved): Used to organize and call a series of methods to form workflows.

  • Application Layer:

    • Builds specific business applications based on the SDK and plugin system, such as 3D reconstruction software, SLAM systems, AR applications, etc.

Automatic Evaluation

PoSDK has built-in Global Evaluator (EvaluatorManager), providing performance evaluation and data analysis functionality.

Why Automatic Evaluation?

In research and application development, it is often necessary to:

  • Compare performance of different algorithms on the same dataset

  • Evaluate the same algorithm’s performance under different parameter configurations

  • Statistically analyze evaluation results (mean, median, standard deviation, etc.)

  • Generate visualization charts for papers and reports

Problem: Manual data collection, statistical calculation, and chart generation require significant effort.

PoSDK’s Solution

PoSDK’s accuracy evaluation system provides the following features:

  • Automatic Collection: Automatically collects algorithm evaluation results (rotation error, translation error, reprojection error, etc.)

  • Intelligent Classification: Automatically categorizes and manages by evaluation type, algorithm name, and metric name

  • Statistical Analysis: Automatically calculates statistics such as mean, median, max/min values, standard deviation, etc.

  • CSV Export: Supports multiple CSV data export formats for subsequent analysis

  • Visualization Generation: Automatically generates high-quality comparison charts (supports Python/matplotlib)

  • Multiple Annotation Types: Supports adding various types of annotation information to each evaluation result (such as core runtime, view pair identifiers, etc.)

For detailed usage, please refer to: Evaluation System Documentation

Platform Integration and Comparison

PoSDK supports integration and comparison testing with multiple mainstream 3D reconstruction platforms, including OpenMVG, COLMAP, GLOMAP, etc.

Why Platform Comparison?

Current mainstream 3D reconstruction platforms each have their own characteristics:

  • OpenMVG: Classic open-source multi-view geometry library providing complete SfM workflow

  • COLMAP: Industry-leading 3D reconstruction system supporting SfM and dense reconstruction

  • GLOMAP: New-generation global optimization platform focusing on rapid reconstruction of large-scale scenes

Problem: How to objectively evaluate the performance and accuracy of different platforms on the same dataset?

PoSDK’s Solution

PoSDK provides a unified comparison testing framework:

  • Unified Data Format: Supports converting outputs from different platforms into a unified data format for comparison

  • Automated Testing: Implements automated batch testing through configuration files and scripts

  • Multi-dimensional Evaluation:

    • Performance Comparison: Performance metrics such as runtime and memory consumption

    • Accuracy Comparison: Accuracy metrics such as global pose errors (rotation/translation) and relative pose errors

    • Statistical Analysis: Statistics such as mean, median, max/min values, standard deviation, etc.

How to Use the Comparison Feature

  1. Prepare Data: Ensure the dataset contains ground truth information

  2. Configure Testing: Specify platforms and parameters to compare in configuration files

  3. Run Tests: Execute automated tests using provided scripts

  4. View Results: System automatically generates comparison reports and visualization charts

For detailed comparison test results and analysis, please refer to: Benchmark Comparison Results


Next Steps: Continue reading the Installation Guide to get started with PoSDK.