Contents Menu Expand Light mode Dark mode Auto light/dark, in light mode Auto light/dark, in dark mode Skip to content
PanorAi documentation
PanorAi documentation
  • Quick start
  • Guides
    • The four API levels
      • Applications: solve the task first
      • Pipeline: compose the method
      • Spherical Ops: control the operation
      • Geometry: control rays and projections
    • Process and project panoramic images
    • Extract and match visual features
    • Estimate pose, depth and radial range
    • Registration and panorama stitching
    • Localize and associate semantic regions
    • Composed spherical API
    • Detailed tutorials
      • Compose a sphere-native model
      • Quick start
      • Work with a spherical image object
      • Projection foundations: sphere, rays, views, samplers, and blenders
      • Cubemap, batch, and autograd
      • Tutorial: image processing on the sphere
      • Clean spherical masks with morphology
      • Tutorial: spherical features and matching
      • Tutorial: spherical Essential matrix and two-view triangulation
      • Tutorial: dense stereo from two spherical images
      • Tutorial: resize-free spherical monocular depth
      • Tutorial: from matched panoramas to a multiview reconstruction
      • Tutorial: spherical visual SLAM
      • Tutorial: pretrained spherical FCN and class-activation maps
      • From spherical CAMs to spatial object hypotheses
      • How PanorAi executes computer vision on spherical images
      • Tutorial: benchmark speed and geometric accuracy
    • How-to guides
      • Choose modality, layout, and interpolation
      • Preprocessing Containers
      • Spherical image processing
      • Spherical features and matching
      • Analyze regions on a sphere
      • Evaluate spherical results reproducibly
      • Build and query a spatial-semantic graph
      • Estimate spherical pose and reconstruct multiple panoramas
      • Run spherical visual SLAM
    • Apply a pinhole method over the sphere
    • Choose sampling and fusion
    • Return the right spherical output
    • Extract and match spherical features
    • How projected features become spherical observations
    • Detect features directly on the sphere
    • Match features and inspect the evidence
    • Estimate relative pose
    • Recover metric scale and triangulate
    • Run panoramic dense stereo from two ERPs
    • Reconstruct a surface from registered spherical views
    • Estimate dense range with spherical stereo
    • Compare non-learned stereo pipelines
    • Choose a monocular range strategy
    • Port Metric3D directly to the sphere
    • Run Depth Anything over tangent views
    • Validate and consume radial range
    • Generate a CAM with a pretrained spherical CNN
    • Interpret a spherical CAM
    • Convert CAM evidence into angular proposals
    • Associate proposals across registered views
    • Refine an accepted region with local masks
    • Evaluate semantic regions and hypotheses
  • Concepts
    • Application wrappers
    • Typed pipeline composition
    • Sphere-aware operations
    • Spherical morphology
    • Spherical region analysis
    • Spherical research evaluation
    • Registration and stitching
    • The geometry contract
    • The spherical image object
    • PanorAi canonical spherical geometry
    • Architecture
    • Ergonomic workflow evolution
    • Related libraries and PanorAi’s role
    • Direct spherical dense stereo: geometry and optimization
    • Spherical dense reconstruction
    • Spherical frontend v2 promotion plan
  • API reference
    • Component catalog
      • Applications catalog
      • Pipeline Stages catalog
      • Spherical Ops and layers catalog
      • Estimators and policies catalog
      • Typed data and results catalog
      • Geometry catalog
      • Research evaluation catalog
      • Subsystems and advanced surfaces
      • Complete public-surface inventory
    • Applications API
    • EquirectangularImage API
    • Pipeline API
    • Spherical operations API
    • Canonical geometry API
    • Composable spherical operations
    • Spherical raster fields and observations
    • Spherical feature API
    • Spherical relative-pose API
    • Calibration API
    • Model-fitting API
    • Registration and stitching API
    • Spherical evaluation API
    • Spatial-semantic graph API
    • Semantic object association and localization
    • Global spherical reconstruction
    • Stereo APIs
    • Spherical visual SLAM
    • Optional depth adapters
    • Projectors
    • Sampling and fusion methods
    • Capabilities
    • API stability in 3.x
  • Development
    • Public roadmap
    • Computer-vision research capability roadmap
    • Adding a public API component
    • Spherical application promotion protocol
    • Governance
    • Evidence
    • Benchmarks and performance
    • Planned 4.0 destination map
    • Development history
  • Releases
    • PanorAi 3.8.0 release checklist
    • PanorAi 3.7.0 release checklist
    • PanorAi 3.6.0 release checklist
    • PanorAi 3.5.0 release checklist
    • PanorAi 3.4.0 release checklist
    • PanorAi 3.3.1 release checklist
    • PanorAi 3.3.0 release checklist
    • PanorAi 3.2.0 release checklist
    • PanorAi 3.1.0 release checklist
    • Migrating from PanorAi 3.0.19 to 3.1.0
    • Composed spherical API migration
  • Methodology manuscript
Back to top
View this page

Related libraries and PanorAi’s role¶

PanorAi does not claim that spherical image conversion is unique. Mature libraries already provide excellent transformation kernels:

py360convert

A focused NumPy library for equirectangular, cubemap, and perspective conversion. Its public e2p API supports horizontal/vertical FOV, in-plane rotation, output shape, and nearest or bilinear sampling.

pyequilib

A modular NumPy/Torch library for equirectangular, cubemap, perspective, and rotation transforms, with functional and class APIs, batching, and CPU/CUDA execution.

OpenCV omnidirectional calibration

Camera calibration, rectification, and stereo reconstruction for omnidirectional camera models. Its problem is camera calibration rather than a typed ERP/cubemap processing contract.

Why PanorAi exists¶

PanorAi’s intended contribution is an explicit, testable contract around the conversion kernels:

  • pixel-center coordinates and one named Cartesian frame;

  • radial range rather than ambiguous depth;

  • geometric support separated from data validity and numeric value;

  • nearest-only labels and masks, with invalid interpolation rejected;

  • matching NumPy/Torch behavior and input-value autograd;

  • mask-aware reconstruction and compatibility adapters for existing 3.0 code;

  • installable-artifact, license, documentation, and conformance evidence.

Choose py360convert when a compact NumPy converter matches the task. Choose pyequilib when its broad NumPy/Torch transform and acceleration surface is the best fit. Choose OpenCV when calibration is the actual problem. Choose PanorAi when downstream correctness depends on the stated coordinate, modality, validity, compatibility, and release-evidence contract.

No performance superiority is claimed from functional conformance. The reproducible comparison is run with scripts/benchmark_geometry.py against an installed wheel outside the checkout. It pins py360convert==1.0.4 and pyequilib==0.6.0 and records first call separately from reused calls, median, nearest-rank P95, peak RSS, hardware, versions, and raw samples. The first call is the first invocation of the measured transform: fixtures are constructed directly, asynchronous setup is synchronized, and the peak-RSS baseline is captured only after those fixtures are resident.

Results whose frame, pixel lattice, rotation, or cubemap layout differs are labelled timing-only. In particular, equal output dimensions are not treated as numerical equivalence, and missing public operations are reported as unsupported instead of being approximated by a different transform.

Next
Direct spherical dense stereo: geometry and optimization
Previous
Ergonomic workflow evolution
Copyright ©
Made with Sphinx and @pradyunsg's Furo
On this page
  • Related libraries and PanorAi’s role
    • Why PanorAi exists