Files
gps-denied-onboard/components/metric_refinement/base.py
T
Oleksandr Bezdieniezhnykh abc26d5c20 initial structure implemented
docs -> _docs
2025-12-01 14:20:56 +02:00

44 lines
969 B
Python

from abc import ABC, abstractmethod
import numpy as np
from models.core import GPSPoint
from models.processing import AlignmentResult
class MetricRefinementBase(ABC):
@abstractmethod
async def refine_alignment(
self,
uav_image: np.ndarray,
satellite_image: np.ndarray,
initial_homography: np.ndarray,
) -> AlignmentResult:
pass
@abstractmethod
async def compute_precise_gps(
self,
uav_center_pixel: tuple[float, float],
homography: np.ndarray,
tile_bounds: dict,
) -> GPSPoint:
pass
@abstractmethod
async def estimate_reprojection_error(
self,
correspondences: np.ndarray,
homography: np.ndarray,
) -> float:
pass
@abstractmethod
async def filter_outliers(
self,
correspondences: np.ndarray,
homography: np.ndarray,
threshold: float = 3.0,
) -> np.ndarray:
pass