Skip to content

Commit

Permalink
move project meta generation to globals
Browse files Browse the repository at this point in the history
  • Loading branch information
grokhi committed Sep 12, 2024
1 parent e0e2af7 commit 1c5b1da
Show file tree
Hide file tree
Showing 3 changed files with 34 additions and 33 deletions.
3 changes: 2 additions & 1 deletion local.env
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
TEAM_ID = 449 # * Required! Copy your team id here: https://dev.supervisely.com/teams/my
SLY_APP_DATA_DIR = "./APP_DATA"
USER_ID=341
USER_ID=341
PROJECT_ID=41608
16 changes: 16 additions & 0 deletions src/globals.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,3 +21,19 @@
previous_image: int = None

event_anns: Dict[int, Dict[int, Dict[str, sly.Annotation]]] = defaultdict(lambda: defaultdict(dict))

project_metas = {}


def get_project_meta(api: sly.Api, project_id: int) -> sly.ProjectMeta:
if project_id not in project_metas:
project_meta = sly.ProjectMeta.from_json(api.project.get_meta(project_id))
if project_meta.get_tag_meta(TRACK_TAG_NAME) is None:
track_tag_meta = sly.TagMeta(TRACK_TAG_NAME, sly.TagValueType.ANY_STRING)
project_meta = api.project.update_meta(
project_id, project_meta.add_tag_meta(track_tag_meta)
)
project_metas[project_id] = project_meta
else:
project_meta = project_metas[project_id]
return project_meta
48 changes: 16 additions & 32 deletions src/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -46,21 +46,12 @@
sly_app_development.supervisely_vpn_network(action="up")
sly_app_development.create_debug_task(team_id, update_status=True)

project_metas = {}

image_infos_dct = {}
matches = {}
timestamp = None


def get_project_meta(api: sly.Api, project_id: int) -> sly.ProjectMeta:
if project_id not in project_metas:
project_meta = sly.ProjectMeta.from_json(api.project.get_meta(project_id))
project_metas[project_id] = project_meta
else:
project_meta = project_metas[project_id]
return project_meta


@sly.timeit
def get_image_infos(
api: sly.Api, dataset_id: int, image_id: int, margins_shift: int = 0
Expand Down Expand Up @@ -207,17 +198,10 @@ def rectangle_changed(api: sly.Api, event: Event.Tools.Rectangle.FigureChanged):
global timestamp
timestamp = t

project_meta = get_project_meta(api, event.project_id)
project_meta = g.get_project_meta(api, event.project_id)
figure = api.image.figure.get_info_by_id(event.figure_state["id"])
obj_class = project_meta.get_obj_class_by_id(event.figure_state["classId"])

track_tag_meta = project_meta.get_tag_meta(g.TRACK_TAG_NAME)
if track_tag_meta is None:
track_tag_meta = sly.TagMeta(g.TRACK_TAG_NAME, sly.TagValueType.ANY_STRING)
project_meta = api.project.update_meta(
event.project_id, project_meta.add_tag_meta(track_tag_meta)
)

images, ann_infos, event_img_idx = get_images_and_anns(api, event.dataset_id, event.image_id)
images[:event_img_idx] = images[:event_img_idx][::-1]
anns = [sly.Annotation.from_json(x.annotation, project_meta) for x in ann_infos]
Expand Down Expand Up @@ -294,7 +278,7 @@ def figure_created(api: sly.Api, event: Event.FigureCreated):
global timestamp
timestamp = t

project_meta = get_project_meta(api, event.project_id)
project_meta = g.get_project_meta(api, event.project_id)
figure = api.image.figure.get_info_by_id(event.figure_state["id"])
obj_class = project_meta.get_obj_class_by_id(event.figure_state["classId"])

Expand All @@ -307,14 +291,14 @@ def figure_created(api: sly.Api, event: Event.FigureCreated):

images, event_img_idx = get_image_infos(api, event.dataset_id, event.image_id)
images[:event_img_idx] = images[:event_img_idx][::-1]
project_meta = get_project_meta(api, event.project_id)
project_meta = g.get_project_meta(api, event.project_id)

track_tag_meta = project_meta.get_tag_meta(g.TRACK_TAG_NAME)
if track_tag_meta is None:
track_tag_meta = sly.TagMeta(g.TRACK_TAG_NAME, sly.TagValueType.ANY_STRING)
project_meta = api.project.update_meta(
event.project_id, project_meta.add_tag_meta(track_tag_meta)
)
# if track_tag_meta is None:
# track_tag_meta = sly.TagMeta(g.TRACK_TAG_NAME, sly.TagValueType.ANY_STRING)
# project_meta = api.project.update_meta(
# event.project_id, project_meta.add_tag_meta(track_tag_meta)
# )

track_tag = sly.Tag(track_tag_meta, sly.rand_str(10))

Expand Down Expand Up @@ -366,7 +350,7 @@ def update_annotations(
images, event_img_idx = get_image_infos(api, event.dataset_id, event.image_id)

images, ann_infos, event_img_idx = get_images_and_anns(api, event.dataset_id, event.image_id)
project_meta = get_project_meta(api, event.project_id)
project_meta = g.get_project_meta(api, event.project_id)
anns = [sly.Annotation.from_json(x.annotation, project_meta) for x in ann_infos]

image_ids, new_anns = [], []
Expand Down Expand Up @@ -414,14 +398,14 @@ def manual_track():
return
status_image_not_initialized.hide()

project_meta = get_project_meta(api, event.project_id)
project_meta = g.get_project_meta(api, event.project_id)

track_tag_meta = project_meta.get_tag_meta(g.TRACK_TAG_NAME)
if track_tag_meta is None:
track_tag_meta = sly.TagMeta(g.TRACK_TAG_NAME, sly.TagValueType.ANY_STRING)
project_meta = api.project.update_meta(
event.project_id, project_meta.add_tag_meta(track_tag_meta)
)
# if track_tag_meta is None:
# track_tag_meta = sly.TagMeta(g.TRACK_TAG_NAME, sly.TagValueType.ANY_STRING)
# project_meta = api.project.update_meta(
# event.project_id, project_meta.add_tag_meta(track_tag_meta)
# )

images, ann_infos, event_img_idx = get_images_and_anns(api, event.dataset_id, event.image_id)
images[:event_img_idx] = images[:event_img_idx][::-1]
Expand Down

0 comments on commit 1c5b1da

Please sign in to comment.