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

40 lines
913 B
Python

from abc import ABC, abstractmethod
import numpy as np
from models.processing import RelativePose, Matches
class SequentialVisualOdometryBase(ABC):
@abstractmethod
async def compute_relative_pose(
self, prev_image: np.ndarray, curr_image: np.ndarray
) -> RelativePose:
pass
@abstractmethod
async def extract_keypoints(
self, image: np.ndarray
) -> tuple[np.ndarray, np.ndarray]:
pass
@abstractmethod
async def match_features(
self,
keypoints1: np.ndarray,
descriptors1: np.ndarray,
keypoints2: np.ndarray,
descriptors2: np.ndarray,
) -> Matches:
pass
@abstractmethod
async def estimate_motion(
self, matches: Matches, camera_matrix: np.ndarray
) -> RelativePose:
pass
@abstractmethod
def is_tracking_good(self, pose: RelativePose) -> bool:
pass