mirror of
https://github.com/azaion/gps-denied-desktop.git
synced 2026-04-22 23:06:36 +00:00
initial structure implemented
docs -> _docs
This commit is contained in:
@@ -0,0 +1,5 @@
|
||||
from .base import SequentialVisualOdometryBase
|
||||
from .sequential_visual_odometry import SequentialVisualOdometry
|
||||
|
||||
__all__ = ["SequentialVisualOdometryBase", "SequentialVisualOdometry"]
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
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
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
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
|
||||
|
||||
Reference in New Issue
Block a user