Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion t4_devkit/evaluation/metric/ap.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,15 @@
import numpy as np
from attrs import define, field

from .base import BaseMetric

if TYPE_CHECKING:
from t4_devkit.evaluation import BoxMatch, FrameBoxMatch, MatchingScorerLike

__all__ = ["Ap", "ApH"]


class Ap:
class Ap(BaseMetric):
num_recall_point = 101
min_precision = 0.1
min_recall = 0.1
Expand Down
14 changes: 14 additions & 0 deletions t4_devkit/evaluation/metric/base.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
from __future__ import annotations

from abc import ABC, abstractmethod
from typing import TYPE_CHECKING

if TYPE_CHECKING:
from t4_devkit.evaluation import FrameBoxMatch


class BaseMetric(ABC):
@abstractmethod
def __call__(self, frames: list[FrameBoxMatch]) -> float:
"""Compute metric score."""
...
4 changes: 3 additions & 1 deletion t4_devkit/evaluation/metric/clear.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,15 @@

from attrs import define, field

from .base import BaseMetric

if TYPE_CHECKING:
from t4_devkit.evaluation import BoxMatch, FrameBoxMatch, MatchingScorerLike

__all__ = ["Mota", "Motp"]


class Mota:
class Mota(BaseMetric):
@define
class ClearBuffer:
num_gt: int = field(init=False, default=0)
Expand Down
Loading