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