Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
9a89c21
fix(transforms): use class agnostic scorer
PaulHax Jun 12, 2024
aa01bc0
fix(transforms): resize transformed image for scoring
PaulHax Jun 12, 2024
e96a3ab
refactor: add image_ids and trame_utils modules
PaulHax Jun 12, 2024
32a9cd8
feat(ImageDetection): only show annotation ID for ground truth
PaulHax Jun 12, 2024
650056b
fix(ImageDetection): keep tooltip from clipping under table
PaulHax Jun 12, 2024
cd49f12
feat(image_list): replace grid switch with toggle button
PaulHax Jun 12, 2024
b2977ca
refactor(transforms): remove pointless state.image_kinds
PaulHax Jun 12, 2024
5463730
refactor: fix typing on object_detector, nrtk_transforms
PaulHax Jun 13, 2024
5e530e5
feat(transforms): always show ground truth
PaulHax Jun 15, 2024
2bf9dd9
fix: score 0 when no predictions, dataset switching bug
PaulHax Jun 17, 2024
379ee8f
fix(transforms): compute score for truth to transform correctly
PaulHax Jun 17, 2024
e6c6f39
fix: show object detection label if no category in dataset
PaulHax Jun 17, 2024
2f72d23
refactor(object_detector): eval returns image_id keyed dict
PaulHax Jun 20, 2024
0a97d96
fix: dataset.py snake case and remove unused imports
PaulHax Jun 20, 2024
c101e06
fix(ImageDetection): keep the same color for same labels
PaulHax Jun 20, 2024
37e4717
chore(coco_utils): avoid circular import for tests
PaulHax Jun 20, 2024
7dcc3fe
feat(dataset): add force_reload parameter
PaulHax Jun 21, 2024
05be3cd
refactor(image_ids): remove domain types
PaulHax Jun 21, 2024
8cfbe7d
refactor(object_detector): add return type annotation
PaulHax Jun 22, 2024
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: 2 additions & 2 deletions src/nrtk_explorer/app/core.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
from trame_server.utils.namespace import Translator
from nrtk_explorer.library import images_manager
from nrtk_explorer.library.filtering import FilterProtocol
from nrtk_explorer.library.dataset import get_dataset

from nrtk_explorer.app.embeddings import EmbeddingsApp
from nrtk_explorer.app.transforms import TransformsApp
Expand Down Expand Up @@ -130,8 +131,7 @@ def on_dataset_change(self, **kwargs):
# Reset cache
self.context.images_manager = images_manager.ImagesManager()

with open(self.state.current_dataset) as f:
dataset = json.load(f)
dataset = get_dataset(self.state.current_dataset, force_reload=True)

self.state.num_images_max = len(dataset["images"])
self.state.random_sampling_disabled = False
Expand Down
6 changes: 6 additions & 0 deletions src/nrtk_explorer/app/image_ids.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
def image_id_to_dataset_id(image_id: str) -> str:
return image_id.split("_")[-1]


def image_id_to_result_id(image_id: str) -> str:
return f"result_{image_id}"
26 changes: 15 additions & 11 deletions src/nrtk_explorer/app/image_meta.py
Original file line number Diff line number Diff line change
@@ -1,34 +1,38 @@
from typing import TypedDict
from nrtk_explorer.app.trame_utils import delete_state

DatasetId = str
ImageMetaId = str


def image_id_to_meta(image_id: DatasetId):
return f"{image_id}_meta"
def image_id_to_meta(image_id: str) -> ImageMetaId:
return f"meta_{image_id}"


class DatasetImageMeta(TypedDict):
distance: int # Transformed Embedding Distance
width: int
height: int
original_ground_to_original_detection_score: float
original_detection_to_transformed_detection_score: float
ground_truth_to_transformed_detection_score: float


PartialDatasetImageMeta = TypedDict(
"PartialDatasetImageMeta", {**DatasetImageMeta.__annotations__}, total=False
)

IMAGE_META_DEFAULTS: DatasetImageMeta = {"distance": 0, "width": 0, "height": 0}
IMAGE_META_DEFAULTS: DatasetImageMeta = {
"original_ground_to_original_detection_score": 0,
"original_detection_to_transformed_detection_score": 0,
"ground_truth_to_transformed_detection_score": 0,
}


def update_image_meta(state, dataset_id: DatasetId, meta_patch: PartialDatasetImageMeta):
def update_image_meta(state, dataset_id: str, meta_patch: PartialDatasetImageMeta):
meta_key = image_id_to_meta(dataset_id)
current_meta = {}
if state.has(meta_key) and state[meta_key] is not None:
current_meta = state[meta_key]
state[meta_key] = {**IMAGE_META_DEFAULTS, **current_meta, **meta_patch}


def delete_image_meta(state, dataset_id: DatasetId):
def delete_image_meta(state, dataset_id: str):
meta_key = image_id_to_meta(dataset_id)
if state.has(meta_key):
state[meta_key] = None
delete_state(state, meta_key)
2 changes: 0 additions & 2 deletions src/nrtk_explorer/app/parameters.py
Original file line number Diff line number Diff line change
Expand Up @@ -44,13 +44,11 @@ def on_server_ready(self, *args, **kwargs):
self.state.change("current_transform")(self.on_current_transform_change)

def on_current_transform_change(self, **kwargs):
print("current transform changed", self.state.current_transform)
transform = self._transforms[self.state.current_transform]
self.state.params_values = transform.get_parameters()
self.state.params_descriptions = transform.get_parameters_description()

def on_transform_parameters_changed(self, parameters, **kwargs):
print("on_transform_parameters_changed", parameters, kwargs)
transform = self._transforms[self.state.current_transform]
transform.set_parameters(parameters)
self.state.params_values = transform.get_parameters()
Expand Down
7 changes: 7 additions & 0 deletions src/nrtk_explorer/app/trame_utils.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
from typing import Hashable
from trame_server.state import State


def delete_state(state: State, key: Hashable):
if state.has(key) and state[key] is not None:
state[key] = None
Loading