Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
73 commits
Select commit Hold shift + click to select a range
9d33045
Add evaluation.
Mar 24, 2022
f7d708d
Small fixes.
Mar 24, 2022
74d0eb0
Add unit tests + eval mask fixes.
Mar 25, 2022
5589bf5
Update detection unit tests.
Mar 25, 2022
244100d
Fix typing + update pyproject.
Mar 25, 2022
5314ee4
Run autoflake.
Mar 25, 2022
4c0e6bb
Add ROI pruning.
Mar 26, 2022
8e59867
Remove arg.
Mar 26, 2022
343c219
Fix typo.
Mar 26, 2022
6a34f5b
Speed up argoverse maps.
Mar 28, 2022
23b2fec
Speed up evaluation.
Mar 28, 2022
ae42718
Small fixes.
Mar 28, 2022
a02e45c
Fix lint.
Mar 28, 2022
2f208d5
Small lint fixes.
Mar 28, 2022
c7797a5
Fix filtering.
benjaminrwilson Mar 29, 2022
0b15248
Small fixes.
benjaminrwilson Mar 29, 2022
c7a66de
Fix enums.
benjaminrwilson Mar 29, 2022
957e016
Remove unused lines.
benjaminrwilson Mar 29, 2022
b8ab038
Mypy fixes.
benjaminrwilson Mar 29, 2022
ceff8fa
Fix click mypy error.
benjaminrwilson Mar 29, 2022
c314775
Pytype fixes.
benjaminrwilson Mar 30, 2022
2e7af38
Fix pytype.
benjaminrwilson Mar 30, 2022
43f938a
Remove pytype.
benjaminrwilson Mar 30, 2022
90c791f
Small typing fixes.
benjaminrwilson Mar 30, 2022
515c6f2
Add unit tests.
benjaminrwilson Mar 31, 2022
8c5d1bc
Fix typing.
benjaminrwilson Mar 31, 2022
e7f2925
Remove click typing issue.
benjaminrwilson Mar 31, 2022
14f1141
Fix mypy.
benjaminrwilson Mar 31, 2022
7d4139c
Detection eval speed up.
benjaminrwilson Apr 2, 2022
c9de7cb
Rewrite detection eval for major speedup.
benjaminrwilson Apr 2, 2022
59a65f8
Typing fixes.
benjaminrwilson Apr 2, 2022
4327278
Typing fixes.
benjaminrwilson Apr 2, 2022
df479b9
Switch from record arrays to numpy arrays.
benjaminrwilson Apr 2, 2022
4c40a5f
Temp changes.
benjaminrwilson Apr 2, 2022
eccd4f0
Improve readability.
benjaminrwilson Apr 2, 2022
72dc702
Add comments.
benjaminrwilson Apr 2, 2022
fddd899
Modularize evaluate.
benjaminrwilson Apr 2, 2022
faa8317
Additional speedups.
benjaminrwilson Apr 3, 2022
f81ae17
Cleanup code.
benjaminrwilson Apr 3, 2022
d49105a
Additional speedup.
benjaminrwilson Apr 3, 2022
195b46a
Add roi pruning back.
benjaminrwilson Apr 3, 2022
dc2a954
Add multiprocessing.
benjaminrwilson Apr 3, 2022
06e2e96
Add verbosity.
benjaminrwilson Apr 3, 2022
54901b2
Mypy fixes.
benjaminrwilson Apr 3, 2022
856b4d4
Update cuboid fields.
benjaminrwilson Apr 3, 2022
be5a89c
Lint fixes.
benjaminrwilson Apr 3, 2022
5cb43ea
Fix map tutorial issues.
benjaminrwilson Apr 3, 2022
5214d9d
Merge branch 'map_notebook-fixes'
benjaminrwilson Apr 3, 2022
967cc39
Add test log.
benjaminrwilson Apr 3, 2022
ae8aeb5
Revert strings.
benjaminrwilson Apr 3, 2022
d8a0ae9
Remove outputs.
benjaminrwilson Apr 3, 2022
a343292
Merge branch 'map_notebook-fixes'
benjaminrwilson Apr 3, 2022
87239c3
Address missing detection edge cases.
benjaminrwilson Apr 4, 2022
9a2acc6
Address jhony comments.
benjaminrwilson Apr 5, 2022
ba6c337
Update docstring.
benjaminrwilson Apr 5, 2022
aa036aa
Clean docstrings.
benjaminrwilson Apr 5, 2022
a6b345d
Change roi method.
benjaminrwilson Apr 5, 2022
e725147
Clean up roi method.
benjaminrwilson Apr 5, 2022
ce896f0
Update roi returns.
benjaminrwilson Apr 5, 2022
aeea617
Autoflake.:
benjaminrwilson Apr 5, 2022
da897c1
Fix lint.
benjaminrwilson Apr 5, 2022
c459c26
Fix lint.
benjaminrwilson Apr 5, 2022
ca5d644
Update detection limiting logic.
Apr 7, 2022
375aaba
Fix indexing.
Apr 7, 2022
5113202
Fix tuple return.
Apr 7, 2022
97235a0
Merge https://github.com/argoai/av2-api into main
Apr 7, 2022
5a4c76d
Update CI.
Apr 7, 2022
07d3fbf
Add ROI unit tests.
Apr 9, 2022
0cd98f9
Remove val identity.
Apr 9, 2022
0ef221b
Fix import.
Apr 9, 2022
0b00475
Remove unused import.
Apr 9, 2022
82da97f
Update column names.
Apr 9, 2022
548ea93
Update eval.py
benjaminrwilson Apr 11, 2022
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
21 changes: 0 additions & 21 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -48,24 +48,3 @@ jobs:
--wheel
--outdir dist/
.

- name: Publish package to Test PyPI.
if: matrix.os == 'ubuntu-latest'
uses: pypa/gh-action-pypi-publish@master
with:
user: __token__
password: ${{ secrets.TEST_PYPI_API_TOKEN }}
repository_url: https://test.pypi.org/legacy/
print_hash: true
skip_existing: true
verbose: true

- name: Publish package to PyPI.
if: matrix.os == 'ubuntu-latest' && github.event_name == 'push' && startsWith(github.ref, 'refs/tags')
uses: pypa/gh-action-pypi-publish@master
with:
user: __token__
password: ${{ secrets.PYPI_API_TOKEN }}
print_hash: true
skip_existing: true
verbose: true
1 change: 0 additions & 1 deletion noxfile.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
"""Test automation using `nox`."""

from pathlib import Path
from sys import platform
from typing import Dict, Final, List, Union

import nox
Expand Down
14 changes: 14 additions & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -22,3 +22,17 @@ ignore_missing_imports = true
disallow_untyped_decorators = false
plugins = "numpy.typing.mypy_plugin"
strict = true

[tool.pyright]
include = ["src"]

reportMissingTypeStubs = false
reportUnknownMemberType = false
reportUntypedFunctionDecorator = false

[tool.pytest.ini_options]
minversion = "6.0"
addopts = "--cov-report term-missing:skip-covered --cov av2"
testpaths = [
"tests",
]
3 changes: 3 additions & 0 deletions src/av2/evaluation/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# <Copyright 2022, Argo AI, LLC. Released under the MIT license.>

"""Dataset evaluation subpackage."""
3 changes: 3 additions & 0 deletions src/av2/evaluation/detection/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# <Copyright 2022, Argo AI, LLC. Released under the MIT license.>

"""Detection evaluation subpackage."""
111 changes: 111 additions & 0 deletions src/av2/evaluation/detection/constants.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,111 @@
# <Copyright 2022, Argo AI, LLC. Released under the MIT license.>

"""3D object detection evaluation constants."""

from enum import Enum, unique
from typing import Final, List

from av2.utils.constants import PI

MAX_SCALE_ERROR: Final[float] = 1.0
MAX_YAW_RAD_ERROR: Final[float] = PI

# Higher is better.
MIN_AP: Final[float] = 0.0
MIN_CDS: Final[float] = 0.0

# Lower is better.
MAX_NORMALIZED_ATE: Final[float] = 1.0
MAX_NORMALIZED_ASE: Final[float] = 1.0
MAX_NORMALIZED_AOE: Final[float] = 1.0

# Max number of boxes considered per class per scene.
MAX_NUM_BOXES: Final[int] = 500

NUM_DECIMALS: Final[int] = 3

TRANSLATION_COLS: Final[List[str]] = ["tx_m", "ty_m", "tz_m"]
DIMENSION_COLS: Final[List[str]] = ["length_m", "width_m", "height_m"]
QUAT_WXYZ_COLS: Final[List[str]] = ["qw", "qx", "qy", "qz"]


@unique
class TruePositiveErrorNames(str, Enum):
"""True positive error names."""

ATE = "ATE"
ASE = "ASE"
AOE = "AOE"


@unique
class MetricNames(str, Enum):
"""Metric names."""

AP = "AP"
ATE = TruePositiveErrorNames.ATE.value
ASE = TruePositiveErrorNames.ASE.value
AOE = TruePositiveErrorNames.AOE.value
CDS = "CDS"


@unique
class CompetitionCategories(str, Enum):
"""Sensor dataset annotation categories."""

ARTICULATED_BUS = "ARTICULATED_BUS"
BICYCLE = "BICYCLE"
BICYCLIST = "BICYCLIST"
BOLLARD = "BOLLARD"
BOX_TRUCK = "BOX_TRUCK"
BUS = "BUS"
CONSTRUCTION_BARREL = "CONSTRUCTION_BARREL"
CONSTRUCTION_CONE = "CONSTRUCTION_CONE"
DOG = "DOG"
LARGE_VEHICLE = "LARGE_VEHICLE"
MESSAGE_BOARD_TRAILER = "MESSAGE_BOARD_TRAILER"
MOBILE_PEDESTRIAN_CROSSING_SIGN = "MOBILE_PEDESTRIAN_CROSSING_SIGN"
MOTORCYCLE = "MOTORCYCLE"
MOTORCYCLIST = "MOTORCYCLIST"
PEDESTRIAN = "PEDESTRIAN"
REGULAR_VEHICLE = "REGULAR_VEHICLE"
SCHOOL_BUS = "SCHOOL_BUS"
SIGN = "SIGN"
STOP_SIGN = "STOP_SIGN"
STROLLER = "STROLLER"
TRUCK = "TRUCK"
TRUCK_CAB = "TRUCK_CAB"
VEHICULAR_TRAILER = "VEHICULAR_TRAILER"
WHEELCHAIR = "WHEELCHAIR"
WHEELED_DEVICE = "WHEELED_DEVICE"
WHEELED_RIDER = "WHEELED_RIDER"


@unique
class AffinityType(str, Enum):
"""Affinity types for assigning detections to ground truth cuboids."""

CENTER = "CENTER"


@unique
class DistanceType(str, Enum):
"""Distance types for computing metrics on true positive detections."""

TRANSLATION = "TRANSLATION"
SCALE = "SCALE"
ORIENTATION = "ORIENTATION"


@unique
class InterpType(str, Enum):
"""Interpolation type for interpolating precision over recall samples."""

ALL = "ALL"


@unique
class FilterMetricType(str, Enum):
"""Metric used to filter cuboids for evaluation."""

EUCLIDEAN = "EUCLIDEAN"
Loading