Estimators and policies catalog¶
Estimators consume observations and infer a model. They are not image filters and they are not necessarily Pipeline Stages. PanorAi exposes a direct estimator for independent use and a thin Stage adapter when the same computation belongs in a Pipeline.
Registered estimator and policy surfaces¶
Surface |
Stability |
Canonical import |
Contract |
Public components or entries |
|---|---|---|---|---|
spherical-features-core |
Stable |
panorai.features |
panorai-spherical-features/v1 |
DeduplicationResult, FaceSetSpec, FeatureExtractor, FeatureExtractorConfig, FeatureMatcher, FeatureMatcherConfig, FeatureProvenance, FaceDetectionDiagnostics, MatchProvenance, MultifaceDetectionDiagnostics, OpenCVFeatureBackend, SphericalBearingCorrespondences, SphericalFeature, SphericalFeatureMatches, SphericalFeaturePipeline, SphericalFeaturePipelineConfig, SphericalFeatureSet, available_presets, deduplicate_spherical_keypoints, extract_opencv_features, gnomonic_feature_mask, match_opencv_features, panorai.features.backends.OpenCVFeatureBackend |
spherical-features-pycolmap |
Experimental |
panorai.features |
panorai-spherical-features-pycolmap/v1 |
GnomonicRig, GnomonicRigCamera, PyCOLMAPExportResult |
spherical-features-multiscale |
Experimental |
panorai.features |
panorai-spherical-features-multiscale/v1 |
MultiscaleEmbeddingConfig, MultiscaleFeatureMatches, MultiscaleFeatureSet, MultiscaleSphericalFeaturePipeline, OpenCVContextEmbedding, VisualContextNode, VisualEmbeddingProvider |
spherical-features-dog-sift |
Experimental |
panorai.features |
panorai-spherical-dog-sift/v2 |
SphericalDoGSIFTConfig, SphericalDoGSIFTExtractor, SphericalDoGSIFTPipeline |
spherical-features-dog-detector |
Experimental |
panorai.features |
panorai-spherical-dog-detector/v2 |
SphericalDetectionDiagnostics, SphericalDoGDetector, SphericalDoGDetectorConfig, SphericalKeypoint, SphericalKeypointSet, SphericalOctaveDetectionDiagnostics, SphericalRefinedKeypoint |
spherical-features-coarse-dog-detector |
Experimental |
panorai.features |
panorai-spherical-coarse-dog-detector/v1 |
SphericalCoarseDoGDetector, SphericalCoarseDoGDetectorConfig |
spherical-features-tangent-patches |
Experimental |
panorai.features |
panorai-tangent-patches/v1 |
OpenCVTangentDescriptor, OpenCVTangentDescriptorConfig, TangentDescriptorSet, TangentPatch, TangentPatchGeometry, TangentPatchProvider, TangentPatchRequest, TangentPatchSet |
spherical-feature-resolution-selection |
Experimental |
panorai.features |
panorai-resolution-selection/v1 |
ResolutionLevelReport, ResolutionSelectionObservation, ResolutionSelectionPolicy, ResolutionSelectionReport, ResolutionTransitionReport, select_feature_resolution |
spherical-features-tangent-descriptor-v2 |
Experimental |
panorai.features |
panorai-tangent-opencv-descriptor/v2 |
OpenCVTangentDescriptorV2, OpenCVTangentDescriptorV2Config, TangentDescriptorHypothesisSet |
spherical-relative-pose-pipeline |
Experimental |
panorai.features |
panorai-spherical-relative-pose-pipeline/v1-experimental |
ExtractSphericalFeaturePair, MatchSphericalFeatures, SphericalFeaturePair, SphericalImagePair, ToBearingCorrespondences |
spherical-deep-learning-depth |
Experimental |
panorai.experimental.deep_learning |
panorai-spherical-metric-depth/v1-experimental |
SphericalMetric3D, acquire_metric3d_convnext_large_v1, acquire_metric3d_convnext_tiny_v1, load_spherical_metric3d_convnext_large_v1, load_spherical_metric3d_convnext_tiny_v1, panorai.depth.DepthAdapterUnavailableError, panorai.depth.ModelRegistry, panorai.depth.load_dav2_model, panorai.depth.load_dust3r_model, panorai.depth.load_m3dv2_model, panorai.depth.load_zoe_model, panorai.depth.zoe.load_zoe_model, panorai.experimental.deep_learning.depth.SPHERICAL_METRIC_DEPTH_INTERFACE, panorai.experimental.deep_learning.depth.METRIC3D_CHECKPOINT_REVISION, panorai.experimental.deep_learning.depth.METRIC3D_CONVNEXT_LARGE_V1, panorai.experimental.deep_learning.depth.METRIC3D_CONVNEXT_TINY_V1, panorai.experimental.deep_learning.depth.METRIC3D_SOURCE, panorai.experimental.deep_learning.depth.METRIC3D_SOURCE_COMMIT, panorai.experimental.deep_learning.depth.ExternalArtifactRecord, panorai.experimental.deep_learning.depth.ExternalArtifactSpec, panorai.experimental.deep_learning.depth.LoadedSphericalDepthModel, panorai.experimental.deep_learning.depth.Metric3DAssets, panorai.experimental.deep_learning.depth.SphericalMetric3D, panorai.experimental.deep_learning.depth.UpstreamTermsNotAcceptedError, panorai.experimental.deep_learning.depth.acquire_metric3d_convnext_large_v1, panorai.experimental.deep_learning.depth.acquire_metric3d_convnext_tiny_v1, panorai.experimental.deep_learning.depth.load_spherical_metric3d_convnext_large_v1, panorai.experimental.deep_learning.depth.load_spherical_metric3d_convnext_tiny_v1 |
tangent-da3-metric-depth |
Experimental |
panorai.experimental.deep_learning |
panorai-depth-anything-3-metric-tangent/v1-experimental |
DA3MetricTangent, acquire_da3metric_large, load_da3metric_large, panorai.experimental.deep_learning.da3.DA3Assets, panorai.experimental.deep_learning.da3.DA3MetricTangent, panorai.experimental.deep_learning.da3.DA3TermsNotAcceptedError, panorai.experimental.deep_learning.da3.DA3_CANONICAL_FOCAL_PX, panorai.experimental.deep_learning.da3.DA3_CHECKPOINT_REVISION, panorai.experimental.deep_learning.da3.DA3_MODEL_ID, panorai.experimental.deep_learning.da3.DA3_PATCH_SIZE, panorai.experimental.deep_learning.da3.DA3_SOURCE, panorai.experimental.deep_learning.da3.DA3_SOURCE_COMMIT, panorai.experimental.deep_learning.da3.DA3METRIC_LARGE, panorai.experimental.deep_learning.da3.LoadedDA3MetricModel, panorai.experimental.deep_learning.da3.SPHERICAL_DA3_METRIC_DEPTH_INTERFACE, panorai.experimental.deep_learning.da3.acquire_da3metric_large, panorai.experimental.deep_learning.da3.load_da3metric_large |
spherical-semantic-segmentation |
Experimental |
panorai.experimental.deep_learning.segmentation |
panorai-spherical-semantic-segmentation/v1 |
SPHERICAL_MASK_PROPOSALS_INTERFACE, SPHERICAL_PROXY_SEGMENTATION_INTERFACE, SPHERICAL_SEMANTIC_SEGMENTATION_INTERFACE, SAM21_HIERA_LARGE_LICENSE, SAM21_HIERA_LARGE_REPOSITORY, SAM21_HIERA_LARGE_REVISION, IMAGENET_PROXY_VOCABULARY, DenseSemanticEvidence, Sam21Assets, Sam21FileRecord, Sam21HieraLargeSegmenter, Sam21TermsNotAcceptedError, SamMultimaskOutput, SegmentPrompt, SemanticProxyConcept, SphericalBinaryMask, SphericalProxySegmenter, SphericalMaskProposal, SphericalMaskProposalSet, SphericalSeed, SphericalSegment, SphericalSegmentationConfig, SphericalSegmentationResult, SphericalSemanticSegmenter, acquire_sam21_hiera_large, advance_chart, backproject_face_mask_sets, angular_distance_degrees, backproject_face_masks, concept_display_names, concept_evidence_from_imagenet, concept_proxy_names, connected_component_at, consensus_frontiers, extract_mask_face, extract_rgb_face, face_point_direction, fibonacci_coverage_seeds, load_sam21_hiera_large, majority_and_envelope, mask_stability_score, maximum_pairwise_iou, merge_proposals, non_maximum_suppression, partition_proposals_by_origin, pairwise_mask_iou, prompt_from_mask, prompt_grid, proposal_is_accepted, resolve_panoptic_map, select_semantic_seeds, semantic_support_for_mask, solid_angle_weights, weighted_containment, weighted_intersection_over_union |
spherical-relative-pose |
Experimental |
panorai.estimators |
panorai-spherical-relative-pose/v1 |
CalibrationEvaluation, DecoupledPoseReport, EstimateRelativePose, FivePointSample, FivePointSampler, FivePointSamplingDiagnostics, ModelCompetitionReport, ModelEvidence, PoseStabilityReport, RelativePoseAcceptancePolicy, RelativePoseConfidenceCalibrator, RelativePoseOptions, RelativePoseQualityReport, RelativePoseResult, TranslationOrientationReport, SpatiallyWeightedFivePointSampler, SphericalRelativePoseEstimator, UniformFivePointSampler, estimate_relative_pose, native_kernels_available, solve_five_point_essential, spherical_tangent_sampson_error |
semantic-object-localization |
Experimental |
panorai.object_localization |
panorai-object-localization/v1 |
JOINT_MATCH_CLUSTERS_INTERFACE, JointMatchCluster, JointMatchClusterConfig, JointMatchClusterResult, MULTIVIEW_OBJECT_HYPOTHESES_INTERFACE, BearingTrackTriangulation, DirectionalRegionTransfer, HypothesisAffinity, HypothesisAffinityConfig, HypothesisGnomonicRegion, HypothesisPairCues, HypothesisReductionCandidate, HypothesisReductionResult, HypothesisRegionEvaluation, HypothesisTransferEvaluation, HypothesisViewConsistency, HypothesisViewEmbedding, HypothesisViewPairEvaluation, MultiviewObjectHypothesis, MultiviewObjectHypothesisResult, MultiviewSpatialRegion, OBJECT_LOCALIZATION_INTERFACE, OBJECT_LOCALIZATION_STABILITY, ObjectHypothesis, ObjectLocalizationConfig, ObjectLocalizationPipeline, ObjectLocalizationResult, PairObjectLocalizationInput, RegionAssociation, ReducedHypothesisRecord, RegisteredSemanticEvidence, RegisteredBearingObservation, RegisteredBearingTrack, RegisteredPoseInconsistencyError, RegisteredRadialDepth, SEMANTIC_MATCH_PRIOR_INTERFACE, SEMANTIC_REGION_PROPOSALS_INTERFACE, SPHERICAL_ANCHOR_FUSION_INTERFACE, SemanticMatchPrior, SemanticMatchPriorConfig, SemanticQuery, SemanticConcept, SemanticRegionProposalConfig, SemanticRegionProposalResult, SemanticRegionObservation, SemanticTrackObservation, SphericalObjectHypothesisConfig, SphericalObjectHypothesisGenerator, SphericalObjectHypothesisMethod, SphericalObjectHypothesisMethodConfig, SphericalObjectHypothesisMethodResult, SphericalAnchorAffinity, SphericalAnchorCluster, SphericalAnchorClusterDecision, SphericalAnchorDecision, SphericalAnchorFusionConfig, SphericalAnchorFusionResult, SphericalAnchorPairCues, SphericalFOVAnchor, SphericalRegionMetrics, SpatialLocationHypothesis, SymmetricRegionTransfer, assign_region_associations, build_semantic_match_prior, cluster_region_association_matches, evaluate_spherical_region, fuse_registered_spherical_anchors, generate_spherical_fov_anchors, hypothesis_pair_affinity, hypothesis_view_consistency, triangulate_registered_bearing_track, localize_region_association, object_hypothesis_id, propose_region_associations, reduce_object_hypotheses, semantic_region_from_map, semantic_regions_from_map, spherical_region_mask, spherical_anchor_pair_affinity, spherical_solid_angle_weights, symmetric_spherical_region_transfer, transfer_spherical_region |
spherical-reconstruction |
Experimental |
panorai.reconstruction |
panorai-spherical-reconstruction/v1 |
BuildRegisteredReferenceSets, ColorizeSurface, DenseReconstructionWorkspace, EstimateMultiViewRanges, ExtractSurface, FuseTSDF, MultiViewRangeMap, MultiViewRangeSet, RegisteredReferenceSets, RegisteredSphericalScene, RegisteredSphericalView, SphericalBaselinePrior, SphericalCameraPose, SphericalDenseReconstructionResult, SphericalGlobalMapper, SphericalGlobalMapperOptions, SphericalPairwisePoseEdge, SphericalRangePrior, SphericalReconstructionDiagnostics, SphericalReconstructionResult, SphericalTrack, SphericalTrackObservation, SurfaceMesh, TSDFSpec, TSDFVolume, ValidateDenseReconstruction, colorize_surface, extract_surface, fuse_tsdf |
metric-spherical-landmark-ba |
Experimental |
panorai.reconstruction.metric_landmark_ba |
panorai-metric-spherical-landmark-ba/v1-experimental |
METRIC_SPHERICAL_LANDMARK_BA_INTERFACE, MetricBearingObservation, MetricLandmarkBAOptions, MetricLandmarkBAReport, MetricLandmarkBAResult, MetricRadialRangePrior, MetricScaleGauge, MetricSphericalCamera, MetricSphericalLandmark, refine_metric_spherical_landmarks |
spherical-dense-stereo |
Experimental |
panorai.stereo |
panorai-spherical-dense-stereo/v1-experimental |
SphericalDenseStereo, SphericalStereoOptions, SphericalStereoResult, classical, panoramic, colorize_spherical_range, estimate_spherical_range, render_spherical_stereo_result |
classical-rectified-stereo |
Experimental |
panorai.stereo.classical |
panorai-classical-dense-stereo/v1-experimental |
ADCensusConfig, ADCensusCost, AbsoluteDifferenceCost, BirchfieldTomasiCost, BoxCostAggregation, BuildStereoCost, CensusCost, CensusMGMConfig, ClassicalStereoResult, CrossBasedCostAggregation, ELASConfig, ELASSupportPrior, MoreGlobalMatching, OpenCVStereoMatcher, PatchMatchConfig, PatchMatchStereo, RectifiedStereoGeometry, RectifiedStereoPair, RefineStereoDisparity, SelectStereoDisparity, SemiGlobalMatching, StereoBMConfig, StereoCostVolume, StereoDisparityCandidate, StereoSGBMConfig, StereoValidationConfig, TransformStereoCost, ad_census_pipeline, census_mgm_pipeline, disparity_labels, elas_pipeline, patchmatch_pipeline, stereo_bm_pipeline, stereo_sgbm_pipeline |
registered-full-sphere-stereo-core |
Experimental |
panorai.stereo.panoramic |
panorai-registered-full-sphere-stereo/v1-experimental |
FullSphereMultiViewStereo, FullSphereStereoOptions, FullSphereStereoResult, OverlappingCubemapPlanner, PanoramicStereoPose, RegisteredPanoramaSet, StereoSourceView |
panoramic-dense-stereo-workflow |
Experimental |
panorai.stereo.panoramic |
panorai-panoramic-dense-stereo/v1-experimental |
BackProjectStereoRange, DenseStereoPerPair, FuseStereoRange, PanoramicStereoInput, PanoramicStereoResult, PlanRectifiedStereoViews, ProjectStereoViewPairs, RectifiedStereoViewPlanner, RectifiedStereoViewSpec, ResolveStereoPose, ResolveStereoScale, SelectStereoViewPairs, SphereNativeStereo, SphericalStereoViewPairer, StereoPairDiagnostic, StereoViewDescriptor, StereoViewPairScore, StereoViewSelectionDiagnostic, StereoViewPlan, ValidatePanoramicStereo, spec_from_axes |
spherical-slam |
Experimental |
panorai.slam |
panorai-spherical-slam/v1 |
EquidistantFisheyeCamera, FisheyeRayProjection, SphericalImageFrame, SphericalIncrementalSLAM, SphericalIncrementalSLAMDiagnostics, SphericalIncrementalSLAMOptions, SphericalIncrementalSLAMResult, SphericalKeyframeSummary, SphericalLocalBAReport, SphericalMapObservation, SphericalMapPoint, SphericalSLAMDiagnostics, SphericalSLAMFrameSummary, SphericalSLAMOptions, SphericalSLAMPose, SphericalSLAMResult, SphericalTrackingResult, SphericalVisualSLAM |
rotation-pair-calibration |
Experimental |
panorai.calibration |
panorai-rotation-pair-calibration/v1-experimental |
RotationCalibrationOptions, RotationCalibrationResult, calibrate_rotation_pair |
robust-model-fitting |
Experimental |
panorai.model_fitting |
panorai-robust-model-fitting/v1-experimental |
HomographyModel, ModelFamily, RobustFitOptions, RobustFitResult, RotationModel, fit_homography, fit_rotation, robust_fit |
spherical-estimators-auto-experimental |
Experimental |
panorai.estimators |
panorai-estimator/auto-experimental |
— |
Relative pose¶
The current public estimator family is Experimental and imported from
panorai.estimators.
Component |
Input |
Output |
Role |
|---|---|---|---|
|
weighted reference/source unit bearings |
|
Direct configurable Essential/R/t estimator; usable without Pipeline. |
|
bearing arrays and options |
|
Functional entry point to the same mathematical implementation. |
|
|
|
Stage adapter; it does not duplicate the estimator. |
|
configuration values |
immutable options |
Solver, MSAC ranking, refit, refinement, stability and backend controls. |
|
|
accepted flag and rejection reasons |
Post-estimation quality decision, separate from capture eligibility. |
|
labeled quality reports with disjoint IDs |
calibrated probabilities and evaluation |
Optional calibration; raw quality is not presented as probability. |
Sampling strategies¶
Component |
Stability |
Behavior |
|---|---|---|
|
Experimental |
Protocol implemented by RANSAC proposal strategies. |
|
Experimental |
Default diversity-aware proposals with a uniform mixture; full-set scoring is unchanged. |
|
Experimental |
Classic uniform minimal-set proposals and the valid adaptive |
|
Experimental |
Auditable proposal and sampling evidence retained by the result. |
Policies are intentionally separate¶
RelativePoseCapturePolicy evaluates operator-visible capture facts before
feature extraction. RelativePoseAcceptancePolicy evaluates the inferred
pose after robust estimation. A capture can be eligible and still fail pose
estimation; a returned pose can still be rejected by its quality policy.
RelativePoseProfile freezes the selected frontend, options, sampler and
post-estimation policy under one named identity. It does not absorb capture
policy because capture evidence has different inputs and provenance.
Result and diagnostic objects are cataloged under typed data and results. Mathematical details and exact members remain in the estimator API.
Reusable robust model fitting¶
The Experimental panorai.model_fitting namespace is independent from
any one Application:
Component |
Input / output |
Responsibility |
|---|---|---|
|
aligned observation arrays → |
Deterministic RANSAC/MSAC sampling, full-set scoring, adaptive trial bound and local all-inlier refitting for a caller-defined model family. |
|
paired unit bearings → target-from-source SO(3) |
Wahba/Kabsch fit with angular residuals in radians. |
|
paired planar pixels → projective transform |
Normalized DLT with symmetric transfer residuals in pixels. |
Residual units are part of the model contract and must match the configured threshold. These components do not select which physical scene model is appropriate.
Rotation-pair calibration¶
The Experimental panorai.calibration namespace converts pinhole pixel
centres to +Z-forward camera rays and estimates a central rotation pair.
calibrate_rotation_pair accepts matched pixels, image sizes and optional
horizontal FOVs and returns RotationCalibrationResult with intrinsics,
SO(3), inliers, spatial coverage and observability reasons.
The current model fixes a centred principal point, square pixels, zero skew and no lens distortion. When both FOVs are missing it estimates one shared horizontal FOV; absence of metadata is not absence of assumptions. See the calibration reference and stitching guide.