From 5caf3779b1396194eefdee2c821d772b13df1e55 Mon Sep 17 00:00:00 2001 From: Nat Tabris Date: Mon, 13 Jan 2020 14:06:29 -0500 Subject: [PATCH 01/11] Use trail length menu for showing/hiding trails. --- sleap/gui/app.py | 8 ++------ sleap/gui/overlays/tracks.py | 4 ++-- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/sleap/gui/app.py b/sleap/gui/app.py index af6a82b53..25a3fca72 100644 --- a/sleap/gui/app.py +++ b/sleap/gui/app.py @@ -93,7 +93,6 @@ def __init__(self, labels_path: Optional[str] = None, *args, **kwargs): self.state["show edges"] = True self.state["edge style"] = "Line" self.state["fit"] = False - self.state["show trails"] = False self.state["color predicted"] = False self._initialize_gui() @@ -389,12 +388,10 @@ def prev_vid(): key="edge style", ) - add_menu_check_item(viewMenu, "show trails", "Show Trails") - add_submenu_choices( menu=viewMenu, title="Trail Length", - options=(10, 20, 50), + options=(0, 10, 20, 50), key="trail_length", ) @@ -823,7 +820,6 @@ def overlay_state_connect(overlay, state_key, overlay_attribute=None): ], ) - overlay_state_connect(self.overlays["trails"], "show trails", "show") overlay_state_connect(self.overlays["trails"], "trail_length") overlay_state_connect(self.color_manager, "palette") @@ -838,7 +834,7 @@ def overlay_state_connect(overlay, state_key, overlay_attribute=None): ) # Set defaults - self.state["trail_length"] = 10 + self.state["trail_length"] = 0 # Emit signals for default that may have been set earlier self.state.emit("palette") diff --git a/sleap/gui/overlays/tracks.py b/sleap/gui/overlays/tracks.py index 033efeb6a..a6bb6e358 100644 --- a/sleap/gui/overlays/tracks.py +++ b/sleap/gui/overlays/tracks.py @@ -36,8 +36,8 @@ class TrackTrailOverlay: labels: Labels = None player: "QtVideoPlayer" = None - trail_length: int = 10 - show: bool = False + trail_length: int = 0 + show: bool = True def get_track_trails(self, frame_selection: Iterable["LabeledFrame"]): """Get data needed to draw track trail. From fa59b38bf7ec709be4fa972e5a845c1f35c129f4 Mon Sep 17 00:00:00 2001 From: Nat Tabris Date: Thu, 16 Jan 2020 15:53:12 -0500 Subject: [PATCH 02/11] Modularize data io into format adaptors. All of the dataset formats (hdf5, json, coco, etc) are broken out into separate format adaptor classes. Adaptors are registered with a Dispatch object and then the Dispatch objects finds the appropriate adaptor. The main entry points for most cases are sleap.io.format.read and sleap.io.format.read. Load/save in the Labels class are now wrappers for these functions. --- sleap/io/dataset.py | 1298 ++------------------------------ sleap/io/format/__init__.py | 101 +++ sleap/io/format/adaptor.py | 75 ++ sleap/io/format/coco.py | 197 +++++ sleap/io/format/deeplabcut.py | 122 +++ sleap/io/format/deepposekit.py | 86 +++ sleap/io/format/dispatch.py | 96 +++ sleap/io/format/filehandle.py | 93 +++ sleap/io/format/genericjson.py | 42 ++ sleap/io/format/hdf5.py | 450 +++++++++++ sleap/io/format/labels_json.py | 468 ++++++++++++ sleap/io/format/leap_matlab.py | 133 ++++ sleap/io/format/text.py | 39 + tests/io/test_formats.py | 108 +++ 14 files changed, 2083 insertions(+), 1225 deletions(-) create mode 100644 sleap/io/format/__init__.py create mode 100644 sleap/io/format/adaptor.py create mode 100644 sleap/io/format/coco.py create mode 100644 sleap/io/format/deeplabcut.py create mode 100644 sleap/io/format/deepposekit.py create mode 100644 sleap/io/format/dispatch.py create mode 100644 sleap/io/format/filehandle.py create mode 100644 sleap/io/format/genericjson.py create mode 100644 sleap/io/format/hdf5.py create mode 100644 sleap/io/format/labels_json.py create mode 100644 sleap/io/format/leap_matlab.py create mode 100644 sleap/io/format/text.py create mode 100644 tests/io/test_formats.py diff --git a/sleap/io/dataset.py b/sleap/io/dataset.py index be94d795e..23346361e 100644 --- a/sleap/io/dataset.py +++ b/sleap/io/dataset.py @@ -7,49 +7,33 @@ """ import os -import re -import zipfile -import atexit +from collections import MutableSequence +from typing import Callable, List, Union, Dict, Optional, Tuple, Text import attr import cattr -import shutil -import tempfile -import numpy as np -import scipy.io as sio import h5py as h5 - -from collections import MutableSequence -from typing import Callable, List, Union, Dict, Optional, Tuple, Text +import numpy as np try: from typing import ForwardRef except: from typing import _ForwardRef as ForwardRef -import pandas as pd - from sleap.skeleton import Skeleton, Node from sleap.instance import ( Instance, - Point, LabeledFrame, Track, - PredictedPoint, - PredictedInstance, make_instance_cattr, - PointArray, - PredictedPointArray, ) from sleap.io import pathutils -from sleap.io.legacy import load_labels_json_old from sleap.io.video import Video from sleap.gui.suggestions import SuggestionFrame from sleap.gui.missingfiles import MissingFilesDialog from sleap.rangelist import RangeList -from sleap.util import uniquify, weak_filename_match, json_dumps, json_loads - +from sleap.util import uniquify, json_dumps """ The version number to put in the Labels JSON format. @@ -893,6 +877,12 @@ def remove_negative_anchors(self, video: Video, frame_idx: int): # Methods for saving/loading + @classmethod + def from_json(cls, *args, **kwargs): + from sleap.io.format.labels_json import LabelsJsonAdaptor + + return LabelsJsonAdaptor.from_json_data(*args, **kwargs) + def extend_from( self, new_frames: Union["Labels", List[LabeledFrame]], unify: bool = False ): @@ -1001,21 +991,6 @@ def complex_merge_between( return merged, extra_base, extra_new - # @classmethod - # def merge_predictions_by_score(cls, extra_base: List[LabeledFrame], extra_new: List[LabeledFrame]): - # """ - # Remove all predictions from input lists, return list with only - # the merged predictions. - # - # Args: - # extra_base: list of `LabeledFrame` objects - # extra_new: list of `LabeledFrame` objects - # Conflicting frames should have same index in both lists. - # Returns: - # list of `LabeledFrame` objects with merged predictions - # """ - # pass - @staticmethod def finish_complex_merge( base_labels: "Labels", resolved_frames: List[LabeledFrame] @@ -1154,868 +1129,100 @@ def to_json(self): # Unstructure the data into dicts and dump to JSON. return json_dumps(self.to_dict()) - @staticmethod - def save_json( - labels: "Labels", - filename: str, - compress: bool = False, - save_frame_data: bool = False, - frame_data_format: str = "png", - ): - """ - Save a Labels instance to a JSON format. - - Args: - labels: The labels dataset to save. - filename: The filename to save the data to. - compress: Whether the data be zip compressed or not? If True, - the JSON will be compressed using Python's shutil.make_archive - command into a PKZIP zip file. If compress is True then - filename will have a .zip appended to it. - save_frame_data: Whether to save the image data for each frame. - For each video in the dataset, all frames that have labels - will be stored as an imgstore dataset. - If save_frame_data is True then compress will be forced to True - since the archive must contain both the JSON data and image - data stored in ImgStores. - frame_data_format: If save_frame_data is True, then this argument - is used to set the data format to use when writing frame - data to ImgStore objects. Supported formats should be: - - * 'pgm', - * 'bmp', - * 'ppm', - * 'tif', - * 'png', - * 'jpg', - * 'npy', - * 'mjpeg/avi', - * 'h264/mkv', - * 'avc1/mp4' - - Note: 'h264/mkv' and 'avc1/mp4' require separate installation - of these codecs on your system. They are excluded from SLEAP - because of their GPL license. - - Returns: - None - """ - - # Lets make a temporary directory to store the image frame data or pre-compressed json - # in case we need it. - with tempfile.TemporaryDirectory() as tmp_dir: - - # If we are saving frame data along with the datasets. We will replace videos with - # new video object that represent video data from just the labeled frames. - if save_frame_data: - - # Create a set of new Video objects with imgstore backends. One for each - # of the videos. We will only include the labeled frames though. We will - # then replace each video with this new video - new_videos = labels.save_frame_data_imgstore( - output_dir=tmp_dir, format=frame_data_format - ) - - # Make video paths relative - for vid in new_videos: - tmp_path = vid.filename - # Get the parent dir of the YAML file. - # Use "/" since this works on Windows and posix - img_store_dir = ( - os.path.basename(os.path.split(tmp_path)[0]) - + "/" - + os.path.basename(tmp_path) - ) - # Change to relative path - vid.backend.filename = img_store_dir - - # Convert to a dict, not JSON yet, because we need to patch up the videos - d = labels.to_dict() - d["videos"] = Video.cattr().unstructure(new_videos) - - else: - d = labels.to_dict() - - if compress or save_frame_data: - - # Ensure that filename ends with .json - # shutil will append .zip - filename = re.sub("(\.json)?(\.zip)?$", ".json", filename) - - # Write the json to the tmp directory, we will zip it up with the frame data. - full_out_filename = os.path.join(tmp_dir, os.path.basename(filename)) - json_dumps(d, full_out_filename) - - # Create the archive - shutil.make_archive(base_name=filename, root_dir=tmp_dir, format="zip") - - # If the user doesn't want to compress, then just write the json to the filename - else: - json_dumps(d, filename) - @classmethod - def from_json( - cls, data: Union[str, dict], match_to: Optional["Labels"] = None - ) -> "Labels": - """ - Create instance of class from data in dictionary. - - Method is used by other methods that load from JSON. - - Args: - data: Dictionary, deserialized from JSON. - match_to: If given, we'll replace particular objects in the - data dictionary with *matching* objects in the match_to - :class:`Labels` object. This ensures that the newly - instantiated :class:`Labels` can be merged without - duplicate matching objects (e.g., :class:`Video` objects ). - Returns: - A new :class:`Labels` object. - """ - - # Parse the json string if needed. - if type(data) is str: - dicts = json_loads(data) - else: - dicts = data - - dicts["tracks"] = dicts.get( - "tracks", [] - ) # don't break if json doesn't include tracks - - # First, deserialize the skeletons, videos, and nodes lists. - # The labels reference these so we will need them while deserializing. - nodes = cattr.structure(dicts["nodes"], List[Node]) - - idx_to_node = {i: nodes[i] for i in range(len(nodes))} - skeletons = Skeleton.make_cattr(idx_to_node).structure( - dicts["skeletons"], List[Skeleton] - ) - videos = Video.cattr().structure(dicts["videos"], List[Video]) - - try: - # First try unstructuring tuple (newer format) - track_cattr = cattr.Converter( - unstruct_strat=cattr.UnstructureStrategy.AS_TUPLE - ) - tracks = track_cattr.structure(dicts["tracks"], List[Track]) - except: - # Then try unstructuring dict (older format) - try: - tracks = cattr.structure(dicts["tracks"], List[Track]) - except: - raise ValueError("Unable to load tracks as tuple or dict!") - - # if we're given a Labels object to match, use its objects when they match - if match_to is not None: - for idx, sk in enumerate(skeletons): - for old_sk in match_to.skeletons: - if sk.matches(old_sk): - # use nodes from matched skeleton - for (node, match_node) in zip(sk.nodes, old_sk.nodes): - node_idx = nodes.index(node) - nodes[node_idx] = match_node - # use skeleton from match - skeletons[idx] = old_sk - break - for idx, vid in enumerate(videos): - for old_vid in match_to.videos: - # compare last three parts of path - if vid.filename == old_vid.filename or weak_filename_match( - vid.filename, old_vid.filename - ): - # use video from match - videos[idx] = old_vid - break - - suggestions = [] - if "suggestions" in dicts: - suggestions_cattr = cattr.Converter() - suggestions_cattr.register_structure_hook( - Video, lambda x, type: videos[int(x)] - ) - try: - suggestions = suggestions_cattr.structure( - dicts["suggestions"], List[SuggestionFrame] - ) - except Exception as e: - print("Error while loading suggestions (1)") - print(e) - - try: - # Convert old suggestion format to new format. - # Old format: {video: list of frame indices} - # New format: [SuggestionFrames] - old_suggestions = suggestions_cattr.structure( - dicts["suggestions"], Dict[Video, List] - ) - for video in old_suggestions.keys(): - suggestions.extend( - [ - SuggestionFrame(video, idx) - for idx in old_suggestions[video] - ] - ) - except Exception as e: - print("Error while loading suggestions (2)") - print(e) - pass - - if "negative_anchors" in dicts: - negative_anchors_cattr = cattr.Converter() - negative_anchors_cattr.register_structure_hook( - Video, lambda x, type: videos[int(x)] - ) - negative_anchors = negative_anchors_cattr.structure( - dicts["negative_anchors"], Dict[Video, List] - ) - else: - negative_anchors = dict() - - # If there is actual labels data, get it. - if "labels" in dicts: - label_cattr = make_instance_cattr() - label_cattr.register_structure_hook( - Skeleton, lambda x, type: skeletons[int(x)] - ) - label_cattr.register_structure_hook(Video, lambda x, type: videos[int(x)]) - label_cattr.register_structure_hook( - Node, lambda x, type: x if isinstance(x, Node) else nodes[int(x)] - ) - label_cattr.register_structure_hook( - Track, lambda x, type: None if x is None else tracks[int(x)] - ) + def load_file(cls, filename: str, *args, **kwargs): + """Load file, detecting format from filename.""" + from .format import read - labels = label_cattr.structure(dicts["labels"], List[LabeledFrame]) - else: - labels = [] - - return cls( - labeled_frames=labels, - videos=videos, - skeletons=skeletons, - nodes=nodes, - suggestions=suggestions, - negative_anchors=negative_anchors, - tracks=tracks, - ) + return read(filename, for_object="labels", *args, **kwargs) @classmethod - def load_json( - cls, - filename: str, - video_callback: Optional[Callable] = None, - match_to: Optional["Labels"] = None, - ) -> "Labels": - """ - Deserialize JSON file as new :class:`Labels` instance. - - Args: - filename: Path to JSON file. - video_callback: A callback function that which can modify - video paths before we try to create the corresponding - :class:`Video` objects. Usually you'll want to pass - a callback created by :meth:`make_video_callback` - or :meth:`make_gui_video_callback`. - Alternately, if you pass a list of strings we'll construct a - non-gui callback with those strings as the search paths. - match_to: If given, we'll replace particular objects in the - data dictionary with *matching* objects in the match_to - :class:`Labels` object. This ensures that the newly - instantiated :class:`Labels` can be merged without - duplicate matching objects (e.g., :class:`Video` objects ). - Returns: - A new :class:`Labels` object. - """ - - tmp_dir = None - - # Check if the file is a zipfile for not. - if zipfile.is_zipfile(filename): - - # Make a tmpdir, located in the directory that the file exists, to unzip - # its contents. - tmp_dir = os.path.join( - os.path.dirname(filename), - f"tmp_{os.getpid()}_{os.path.basename(filename)}", - ) - if os.path.exists(tmp_dir): - shutil.rmtree(tmp_dir, ignore_errors=True) - try: - os.mkdir(tmp_dir) - except FileExistsError: - pass - - # tmp_dir = tempfile.mkdtemp(dir=os.path.dirname(filename)) - - try: - - # Register a cleanup routine that deletes the tmpdir on program exit - # if something goes wrong. The True is for ignore_errors - atexit.register(shutil.rmtree, tmp_dir, True) - - # Uncompress the data into the directory - shutil.unpack_archive(filename, extract_dir=tmp_dir) - - # We can now open the JSON file, save the zip file and - # replace file with the first JSON file we find in the archive. - json_files = [ - os.path.join(tmp_dir, file) - for file in os.listdir(tmp_dir) - if file.endswith(".json") - ] - - if len(json_files) == 0: - raise ValueError( - f"No JSON file found inside {filename}. Are you sure this is a valid sLEAP dataset." - ) - - filename = json_files[0] - - except Exception as ex: - # If we had problems, delete the temp directory and reraise the exception. - shutil.rmtree(tmp_dir, ignore_errors=True) - raise - - # Open and parse the JSON in filename - with open(filename, "r") as file: - - # FIXME: Peek into the json to see if there is version string. - # We do this to tell apart old JSON data from leap_dev vs the - # newer format for sLEAP. - json_str = file.read() - dicts = json_loads(json_str) - - # If we have a version number, then it is new sLEAP format - if "version" in dicts: - - # Cache the working directory. - cwd = os.getcwd() - # Replace local video paths (for imagestore) - if tmp_dir: - for vid in dicts["videos"]: - vid["backend"]["filename"] = os.path.join( - tmp_dir, vid["backend"]["filename"] - ) - - if hasattr(video_callback, "__iter__"): - # If the callback is an iterable, then we'll expect it to be a - # list of strings and build a non-gui callback with those as - # the search paths. - search_paths = [path for path in video_callback] - video_callback = cls.make_video_callback(search_paths) - - # Use the callback if given to handle missing videos - if callable(video_callback): - abort = video_callback(dicts["videos"]) - if abort: - raise FileNotFoundError - - # Try to load the labels filename. - try: - labels = Labels.from_json(dicts, match_to=match_to) - - except FileNotFoundError: - - # FIXME: We are going to the labels JSON that has references to - # video files. Lets change directory to the dirname of the json file - # so that relative paths will be from this directory. Maybe - # it is better to feed the dataset dirname all the way down to - # the Video object. This seems like less coupling between classes - # though. - if os.path.dirname(filename) != "": - os.chdir(os.path.dirname(filename)) - - # Try again - labels = Labels.from_json(dicts, match_to=match_to) - - except Exception as ex: - # Ok, we give up, where the hell are these videos! - raise # Re-raise. - finally: - os.chdir(cwd) # Make sure to change back if we have problems. - - return labels - - else: - frames = load_labels_json_old(data_path=filename, parsed_json=dicts) - return Labels(frames) - - @staticmethod - def save_hdf5( - labels: "Labels", - filename: str, - append: bool = False, - save_frame_data: bool = False, - frame_data_format: str = "png", + def save_file( + cls, labels: "Labels", filename: str, default_suffix: str = "", *args, **kwargs ): - """ - Serialize the labels dataset to an HDF5 file. + """Save file, detecting format from filename. Args: - labels: The :class:`Labels` dataset to save - filename: The file to serialize the dataset to. - append: Whether to append these labeled frames to the file - or not. - save_frame_data: Whether to save the image frame data for - any labeled frame as well. This is useful for uploading - the HDF5 for model training when video files are to - large to move. This will only save video frames that - have some labeled instances. - frame_data_format: If save_frame_data is True, then this argument - is used to set the data format to use when encoding images - saved in HDF5. Supported formats include: - - * "" for no encoding (ndarray) - * "png" - * "jpg" - * anything else supported by `cv2.imencode` + labels: The dataset to save. + filename: Path where we'll save it. We attempt to detect format + from the suffix (e.g., ".json"). + default_suffix: If we can't detect valid suffix on filename, + we can add default suffix to filename (and use corresponding + format). Doesn't need to have "." before file extension. + + Raises: + ValueError: If cannot detect valid filetype. Returns: - None + None. """ + # Make sure that all directories for path exist + os.makedirs(os.path.dirname(filename), exist_ok=True) - # Delete the file if it exists, we want to start from scratch since - # h5py truncates the file which seems to not actually delete data - # from the file. Don't if we are appending of course. - if os.path.exists(filename) and not append: - os.unlink(filename) - - # Serialize all the meta-data to JSON. - d = labels.to_dict(skip_labels=True) - - if save_frame_data: - new_videos = labels.save_frame_data_hdf5(filename, frame_data_format) - - # Replace path to video file with "." (which indicates that the - # video is in the same file as the HDF5 labels dataset). - # Otherwise, the video paths will break if the HDF5 labels - # dataset file is moved. - for vid in new_videos: - vid.backend.filename = "." - - d["videos"] = Video.cattr().unstructure(new_videos) - - with h5.File(filename, "a") as f: - - # Add all the JSON metadata - meta_group = f.require_group("metadata") - - # If we are appending and there already exists JSON metadata - if append and "json" in meta_group.attrs: - - # Otherwise, we need to read the JSON and append to the lists - old_labels = Labels.from_json( - meta_group.attrs["json"].tostring().decode() - ) - - # A function to join to list but only include new non-dupe entries - # from the right hand list. - def append_unique(old, new): - unique = [] - for x in new: - try: - matches = [y.matches(x) for y in old] - except AttributeError: - matches = [x == y for y in old] - - # If there were no matches, this is a unique object. - if sum(matches) == 0: - unique.append(x) - else: - # If we have an object that matches, replace the instance with - # the one from the new list. This will will make sure objects - # on the Instances are the same as those in the Labels lists. - for i, match in enumerate(matches): - if match: - old[i] = x - - return old + unique - - # Append the lists - labels.tracks = append_unique(old_labels.tracks, labels.tracks) - labels.skeletons = append_unique(old_labels.skeletons, labels.skeletons) - labels.videos = append_unique(old_labels.videos, labels.videos) - labels.nodes = append_unique(old_labels.nodes, labels.nodes) - - # FIXME: Do something for suggestions and negative_anchors - - # Get the dict for JSON and save it over the old data - d = labels.to_dict(skip_labels=True) - - if not append: - for key in ("videos", "tracks", "suggestions"): - - # Convert for saving in hdf5 dataset - data = [np.string_(json_dumps(item)) for item in d[key]] - - hdf5_key = f"{key}_json" - - # Save in its own dataset (e.g., videos_json) - f.create_dataset(hdf5_key, data=data, maxshape=(None,)) - - # Clear from dict since we don't want to save this in attribute - d[key] = [] - - # Output the dict to JSON - meta_group.attrs["json"] = np.string_(json_dumps(d)) - - # FIXME: We can probably construct these from attrs fields - # We will store Instances and PredcitedInstances in the same - # table. instance_type=0 or Instance and instance_type=1 for - # PredictedInstance, score will be ignored for Instances. - instance_dtype = np.dtype( - [ - ("instance_id", "i8"), - ("instance_type", "u1"), - ("frame_id", "u8"), - ("skeleton", "u4"), - ("track", "i4"), - ("from_predicted", "i8"), - ("score", "f4"), - ("point_id_start", "u8"), - ("point_id_end", "u8"), - ] - ) - frame_dtype = np.dtype( - [ - ("frame_id", "u8"), - ("video", "u4"), - ("frame_idx", "u8"), - ("instance_id_start", "u8"), - ("instance_id_end", "u8"), - ] - ) + # Detect filetype and use appropriate save method + # if not filename.endswith((".json", ".zip", ".h5")) and default_suffix: + # filename += f".{default_suffix}" - num_instances = len(labels.all_instances) - max_skeleton_size = max([len(s.nodes) for s in labels.skeletons], default=0) + from .format import write - # Initialize data arrays for serialization - points = np.zeros(num_instances * max_skeleton_size, dtype=Point.dtype) - pred_points = np.zeros( - num_instances * max_skeleton_size, dtype=PredictedPoint.dtype - ) - instances = np.zeros(num_instances, dtype=instance_dtype) - frames = np.zeros(len(labels), dtype=frame_dtype) + write(filename, labels, *args, **kwargs) - # Pre compute some structures to make serialization faster - skeleton_to_idx = { - skeleton: labels.skeletons.index(skeleton) - for skeleton in labels.skeletons - } - track_to_idx = { - track: labels.tracks.index(track) for track in labels.tracks - } - track_to_idx[None] = -1 - video_to_idx = { - video: labels.videos.index(video) for video in labels.videos - } - instance_type_to_idx = {Instance: 0, PredictedInstance: 1} - - # Each instance we create will have and index in the dataset, keep track of - # these so we can quickly add from_predicted links on a second pass. - instance_to_idx = {} - instances_with_from_predicted = [] - instances_from_predicted = [] - - # If we are appending, we need look inside to see what frame, instance, and point - # ids we need to start from. This gives us offsets to use. - if append and "points" in f: - point_id_offset = f["points"].shape[0] - pred_point_id_offset = f["pred_points"].shape[0] - instance_id_offset = f["instances"][-1]["instance_id"] + 1 - frame_id_offset = int(f["frames"][-1]["frame_id"]) + 1 - else: - point_id_offset = 0 - pred_point_id_offset = 0 - instance_id_offset = 0 - frame_id_offset = 0 - - point_id = 0 - pred_point_id = 0 - instance_id = 0 - - for frame_id, label in enumerate(labels): - frames[frame_id] = ( - frame_id + frame_id_offset, - video_to_idx[label.video], - label.frame_idx, - instance_id + instance_id_offset, - instance_id + instance_id_offset + len(label.instances), - ) - for instance in label.instances: + @classmethod + def load_json(cls, filename: str, *args, **kwargs) -> "Labels": + from .format import read - # Add this instance to our lookup structure we will need for from_predicted - # links - instance_to_idx[instance] = instance_id - - parray = instance.get_points_array(copy=False, full=True) - instance_type = type(instance) - - # Check whether we are working with a PredictedInstance or an Instance. - if instance_type is PredictedInstance: - score = instance.score - pid = pred_point_id + pred_point_id_offset - else: - score = np.nan - pid = point_id + point_id_offset - - # Keep track of any from_predicted instance links, we will insert the - # correct instance_id in the dataset after we are done. - if instance.from_predicted: - instances_with_from_predicted.append(instance_id) - instances_from_predicted.append(instance.from_predicted) - - # Copy all the data - instances[instance_id] = ( - instance_id + instance_id_offset, - instance_type_to_idx[instance_type], - frame_id, - skeleton_to_idx[instance.skeleton], - track_to_idx[instance.track], - -1, - score, - pid, - pid + len(parray), - ) - - # If these are predicted points, copy them to the predicted point array - # otherwise, use the normal point array - if type(parray) is PredictedPointArray: - pred_points[ - pred_point_id : pred_point_id + len(parray) - ] = parray - pred_point_id = pred_point_id + len(parray) - else: - points[point_id : point_id + len(parray)] = parray - point_id = point_id + len(parray) - - instance_id = instance_id + 1 - - # Add from_predicted links - for instance_id, from_predicted in zip( - instances_with_from_predicted, instances_from_predicted - ): - try: - instances[instance_id]["from_predicted"] = instance_to_idx[ - from_predicted - ] - except KeyError: - # If we haven't encountered the from_predicted instance yet then don't save the link. - # It’s possible for a user to create a regular instance from a predicted instance and then - # delete all predicted instances from the file, but in this case I don’t think there’s any reason - # to remember which predicted instance the regular instance came from. - pass - - # We pre-allocated our points array with max possible size considering the max - # skeleton size, drop any unused points. - points = points[0:point_id] - pred_points = pred_points[0:pred_point_id] - - # Create datasets if we need to - if append and "points" in f: - f["points"].resize((f["points"].shape[0] + points.shape[0]), axis=0) - f["points"][-points.shape[0] :] = points - f["pred_points"].resize( - (f["pred_points"].shape[0] + pred_points.shape[0]), axis=0 - ) - f["pred_points"][-pred_points.shape[0] :] = pred_points - f["instances"].resize( - (f["instances"].shape[0] + instances.shape[0]), axis=0 - ) - f["instances"][-instances.shape[0] :] = instances - f["frames"].resize((f["frames"].shape[0] + frames.shape[0]), axis=0) - f["frames"][-frames.shape[0] :] = frames - else: - f.create_dataset( - "points", data=points, maxshape=(None,), dtype=Point.dtype - ) - f.create_dataset( - "pred_points", - data=pred_points, - maxshape=(None,), - dtype=PredictedPoint.dtype, - ) - f.create_dataset( - "instances", data=instances, maxshape=(None,), dtype=instance_dtype - ) - f.create_dataset( - "frames", data=frames, maxshape=(None,), dtype=frame_dtype - ) + return read(filename, for_object="labels", as_format="json", *args, **kwargs) @classmethod - def load_hdf5( - cls, filename: str, video_callback=None, match_to: Optional["Labels"] = None - ): - """ - Deserialize HDF5 file as new :class:`Labels` instance. - - Args: - filename: Path to HDF5 file. - video_callback: A callback function that which can modify - video paths before we try to create the corresponding - :class:`Video` objects. Usually you'll want to pass - a callback created by :meth:`make_video_callback` - or :meth:`make_gui_video_callback`. - Alternately, if you pass a list of strings we'll construct a - non-gui callback with those strings as the search paths. - match_to: If given, we'll replace particular objects in the - data dictionary with *matching* objects in the match_to - :class:`Labels` object. This ensures that the newly - instantiated :class:`Labels` can be merged without - duplicate matching objects (e.g., :class:`Video` objects ). + def save_json(cls, labels: "Labels", filename: str, *args, **kwargs): + from .format import write - Returns: - A new :class:`Labels` object. - """ - with h5.File(filename, "r") as f: + write(filename, labels, as_format="json", *args, **kwargs) - # Extract the Labels JSON metadata and create Labels object with just - # this metadata. - dicts = json_loads( - f.require_group("metadata").attrs["json"].tostring().decode() - ) + @classmethod + def load_hdf5(cls, filename, *args, **kwargs): + from .format import read - for key in ("videos", "tracks", "suggestions"): - hdf5_key = f"{key}_json" - if hdf5_key in f: - items = [json_loads(item_json) for item_json in f[hdf5_key]] - dicts[key] = items - - # Video path "." means the video is saved in same file as labels, - # so replace these paths. - for video_item in dicts["videos"]: - if video_item["backend"]["filename"] == ".": - video_item["backend"]["filename"] = filename - - if hasattr(video_callback, "__iter__"): - # If the callback is an iterable, then we'll expect it to be a - # list of strings and build a non-gui callback with those as - # the search paths. - search_paths = [path for path in video_callback] - video_callback = cls.make_video_callback(search_paths) - - # Use the callback if given to handle missing videos - if callable(video_callback): - video_callback(dicts["videos"]) - - labels = cls.from_json(dicts, match_to=match_to) - - frames_dset = f["frames"][:] - instances_dset = f["instances"][:] - points_dset = f["points"][:] - pred_points_dset = f["pred_points"][:] - - # Rather than instantiate a bunch of Point\PredictedPoint objects, we will - # use inplace numpy recarrays. This will save a lot of time and memory - # when reading things in. - points = PointArray(buf=points_dset, shape=len(points_dset)) - pred_points = PredictedPointArray( - buf=pred_points_dset, shape=len(pred_points_dset) - ) + return read(filename, for_object="labels", as_format="hdf5_v1", *args, **kwargs) - # Extend the tracks list with a None track. We will signify this with a -1 in the - # data which will map to last element of tracks - tracks = labels.tracks.copy() - tracks.extend([None]) - - # A dict to keep track of instances that have a from_predicted link. The key is the - # instance and the value is the index of the instance. - from_predicted_lookup = {} - - # Create the instances - instances = [] - for i in instances_dset: - track = tracks[i["track"]] - skeleton = labels.skeletons[i["skeleton"]] - - if i["instance_type"] == 0: # Instance - instance = Instance( - skeleton=skeleton, - track=track, - points=points[i["point_id_start"] : i["point_id_end"]], - ) - else: # PredictedInstance - instance = PredictedInstance( - skeleton=skeleton, - track=track, - points=pred_points[i["point_id_start"] : i["point_id_end"]], - score=i["score"], - ) - instances.append(instance) - - if i["from_predicted"] != -1: - from_predicted_lookup[instance] = i["from_predicted"] - - # Make a second pass to add any from_predicted links - for instance, from_predicted_idx in from_predicted_lookup.items(): - instance.from_predicted = instances[from_predicted_idx] - - # Create the labeled frames - frames = [ - LabeledFrame( - video=labels.videos[frame["video"]], - frame_idx=frame["frame_idx"], - instances=instances[ - frame["instance_id_start"] : frame["instance_id_end"] - ], - ) - for i, frame in enumerate(frames_dset) - ] + @classmethod + def save_hdf5(cls, labels, filename, *args, **kwargs): + from .format import write - labels.labeled_frames = frames + write(filename, labels, as_format="hdf5_v1", *args, **kwargs) - # Do the stuff that should happen after we have labeled frames - labels._build_lookup_caches() + @classmethod + def load_leap_matlab(cls, filename, *args, **kwargs): + from .format import read - return labels + return read(filename, for_object="labels", as_format="leap", *args, **kwargs) @classmethod - def load_file(cls, filename: str, *args, **kwargs): - """Load file, detecting format from filename.""" - if filename.endswith((".h5", ".hdf5")): - return cls.load_hdf5(filename, *args, **kwargs) - elif filename.endswith((".json", ".json.zip")): - return cls.load_json(filename, *args, **kwargs) - elif filename.endswith(".csv"): - # for now, the only csv we support is the DeepLabCut format - return cls.load_deeplabcut_csv(filename) - else: - raise ValueError(f"Cannot detect filetype for {filename}") + def load_deeplabcut_csv(cls, filename: str) -> "Labels": + from sleap.io.format.deeplabcut import LabelsDeepLabCutAdaptor + from sleap.io.format.filehandle import FileHandle - @classmethod - def save_file( - cls, labels: "Labels", filename: str, default_suffix: str = "", *args, **kwargs - ): - """Save file, detecting format from filename. + return LabelsDeepLabCutAdaptor.read(FileHandle(filename)) - Args: - labels: The dataset to save. - filename: Path where we'll save it. We attempt to detect format - from the suffix (e.g., ".json"). - default_suffix: If we can't detect valid suffix on filename, - we can add default suffix to filename (and use corresponding - format). Doesn't need to have "." before file extension. + @classmethod + def load_coco( + cls, filename: str, img_dir: str, use_missing_gui: bool = False, + ) -> "Labels": + from sleap.io.format.coco import LabelsCocoAdaptor + from sleap.io.format.filehandle import FileHandle - Raises: - ValueError: If cannot detect valid filetype. + return LabelsCocoAdaptor.read(FileHandle(filename), img_dir, use_missing_gui) - Returns: - None. - """ - # Make sure that all directories for path exist - os.makedirs(os.path.dirname(filename), exist_ok=True) + @classmethod + def from_deepposekit( + cls, filename: str, video_path: str, skeleton_path: str + ) -> "Labels": + from sleap.io.format.deepposekit import LabelsDeepPoseKitAdaptor + from sleap.io.format.filehandle import FileHandle - # Detect filetype and use appropriate save method - if not filename.endswith((".json", ".zip", ".h5")) and default_suffix: - filename += f".{default_suffix}" - if filename.endswith((".json", ".zip")): - compress = filename.endswith(".zip") - cls.save_json(labels=labels, filename=filename, compress=compress, **kwargs) - elif filename.endswith(".h5"): - cls.save_hdf5(labels=labels, filename=filename, **kwargs) - else: - raise ValueError(f"Cannot detect filetype for {filename}") + return LabelsDeepPoseKitAdaptor.read( + FileHandle(filename), video_path, skeleton_path + ) def save_frame_data_imgstore( self, output_dir: str = "./", format: str = "png", all_labels: bool = False @@ -2096,365 +1303,6 @@ def save_frame_data_hdf5( return new_vids - @staticmethod - def _unwrap_mat_scalar(a): - """Extract single value from nested MATLAB file data.""" - if a.shape == (1,): - return Labels._unwrap_mat_scalar(a[0]) - else: - return a - - @staticmethod - def _unwrap_mat_array(a): - """Extract list of values from nested MATLAB file data.""" - b = a[0][0] - c = [Labels._unwrap_mat_scalar(x) for x in b] - return c - - @classmethod - def load_leap_matlab(cls, filename: str, gui: bool = True) -> "Labels": - """Load LEAP MATLAB file as dataset. - - Args: - filename: Path to matlab file. - Returns: - The :class:`Labels` dataset. - """ - mat_contents = sio.loadmat(filename) - - box_path = Labels._unwrap_mat_scalar(mat_contents["boxPath"]) - - # If the video file isn't found, try in the same dir as the mat file - if not os.path.exists(box_path): - file_dir = os.path.dirname(filename) - box_path_name = box_path.split("\\")[-1] # assume windows path - box_path = os.path.join(file_dir, box_path_name) - - if not os.path.exists(box_path): - if gui: - video_paths = [box_path] - missing = [True] - okay = MissingFilesDialog(video_paths, missing).exec_() - - if not okay or missing[0]: - return - - box_path = video_paths[0] - else: - # Ignore missing videos if not loading from gui - box_path = "" - - if os.path.exists(box_path): - vid = Video.from_hdf5( - dataset="box", filename=box_path, input_format="channels_first" - ) - else: - vid = None - - nodes_ = mat_contents["skeleton"]["nodes"] - edges_ = mat_contents["skeleton"]["edges"] - points_ = mat_contents["positions"] - - edges_ = edges_ - 1 # convert matlab 1-indexing to python 0-indexing - - nodes = Labels._unwrap_mat_array(nodes_) - edges = Labels._unwrap_mat_array(edges_) - - nodes = list(map(str, nodes)) # convert np._str to str - - sk = Skeleton(name=filename) - sk.add_nodes(nodes) - for edge in edges: - sk.add_edge(source=nodes[edge[0]], destination=nodes[edge[1]]) - - labeled_frames = [] - node_count, _, frame_count = points_.shape - - for i in range(frame_count): - new_inst = Instance(skeleton=sk) - for node_idx, node in enumerate(nodes): - x = points_[node_idx][0][i] - y = points_[node_idx][1][i] - new_inst[node] = Point(x, y) - if len(new_inst.points): - new_frame = LabeledFrame(video=vid, frame_idx=i) - new_frame.instances = (new_inst,) - labeled_frames.append(new_frame) - - labels = cls(labeled_frames=labeled_frames, videos=[vid], skeletons=[sk]) - - return labels - - @classmethod - def load_deeplabcut_csv(cls, filename: str) -> "Labels": - """Load DeepLabCut csv file as dataset. - - Args: - filename: Path to csv file. - Returns: - The :class:`Labels` dataset. - """ - - # At the moment we don't need anything from the config file, - # but the code to read it is here in case we do in the future. - - # # Try to find the config file by walking up file path starting at csv file looking for config.csv - # last_dir = None - # file_dir = os.path.dirname(filename) - # config_filename = "" - - # while file_dir != last_dir: - # last_dir = file_dir - # file_dir = os.path.dirname(file_dir) - # config_filename = os.path.join(file_dir, 'config.yaml') - # if os.path.exists(config_filename): - # break - - # # If we couldn't find a config file, give up - # if not os.path.exists(config_filename): return - - # with open(config_filename, 'r') as f: - # config = yaml.load(f, Loader=yaml.SafeLoader) - - # x1 = config['x1'] - # y1 = config['y1'] - # x2 = config['x2'] - # y2 = config['y2'] - - data = pd.read_csv(filename, header=[1, 2]) - - # Create the skeleton from the list of nodes in the csv file - # Note that DeepLabCut doesn't have edges, so these will have to be added by user later - node_names = [n[0] for n in list(data)[1::2]] - - skeleton = Skeleton() - skeleton.add_nodes(node_names) - - # Create an imagestore `Video` object from frame images. - # This may not be ideal for large projects, since we're reading in - # each image and then writing it out in a new directory. - - img_files = data.ix[:, 0] # get list of all images - - # the image filenames in the csv may not match where the user has them - # so we'll change the directory to match where the user has the csv - def fix_img_path(img_dir, img_filename): - img_filename = os.path.basename(img_filename) - img_filename = os.path.join(img_dir, img_filename) - return img_filename - - img_dir = os.path.dirname(filename) - img_files = list(map(lambda f: fix_img_path(img_dir, f), img_files)) - - # we'll put the new imgstore in the same directory as the current csv - imgstore_name = os.path.join(os.path.dirname(filename), "sleap_video") - - # create the imgstore (or open if it already exists) - if os.path.exists(imgstore_name): - video = Video.from_filename(imgstore_name) - else: - video = Video.imgstore_from_filenames(img_files, imgstore_name) - - labels = [] - - for i in range(len(data)): - # get points for each node - instance_points = dict() - for node in node_names: - x, y = data[(node, "x")][i], data[(node, "y")][i] - instance_points[node] = Point(x, y) - # create instance with points (we can assume there's only one instance per frame) - instance = Instance(skeleton=skeleton, points=instance_points) - # create labeledframe and add it to list - label = LabeledFrame(video=video, frame_idx=i, instances=[instance]) - labels.append(label) - - return cls(labels) - - @classmethod - def load_coco( - cls, filename: str, img_dir: str, use_missing_gui: bool = False - ) -> "Labels": - with open(filename, "r") as file: - json_str = file.read() - dicts = json_loads(json_str) - - # Make skeletons from "categories" - skeleton_map = dict() - for category in dicts["categories"]: - skeleton = Skeleton(name=category["name"]) - skeleton_id = category["id"] - node_names = category["keypoints"] - skeleton.add_nodes(node_names) - - try: - for src_idx, dst_idx in category["skeleton"]: - skeleton.add_edge(node_names[src_idx], node_names[dst_idx]) - except IndexError as e: - # According to the COCO data format specifications[^1], the edges - # are supposed to be 1-indexed. But in some of their own - # dataset the edges are 1-indexed! So we'll try. - # [1]: http://cocodataset.org/#format-data - - # Clear any edges we already created using 0-indexing - skeleton.clear_edges() - - # Add edges - for src_idx, dst_idx in category["skeleton"]: - skeleton.add_edge(node_names[src_idx - 1], node_names[dst_idx - 1]) - - skeleton_map[skeleton_id] = skeleton - - # Make videos from "images" - - # Remove images that aren't referenced in the annotations - img_refs = [annotation["image_id"] for annotation in dicts["annotations"]] - dicts["images"] = list(filter(lambda im: im["id"] in img_refs, dicts["images"])) - - # Key in JSON file should be "file_name", but sometimes it's "filename", - # so we have to check both. - img_filename_key = "file_name" - if img_filename_key not in dicts["images"][0].keys(): - img_filename_key = "filename" - - # First add the img_dir to each image filename - img_paths = [ - os.path.join(img_dir, image[img_filename_key]) for image in dicts["images"] - ] - - # See if there are any missing files - img_missing = [not os.path.exists(path) for path in img_paths] - - if sum(img_missing): - if use_missing_gui: - okay = MissingFilesDialog(img_paths, img_missing).exec_() - - if not okay: - return None - else: - raise FileNotFoundError( - f"Images for COCO dataset could not be found in {img_dir}." - ) - - # Update the image paths (with img_dir or user selected path) - for image, path in zip(dicts["images"], img_paths): - image[img_filename_key] = path - - # Create the video objects for the image files - image_video_map = dict() - - vid_id_video_map = dict() - for image in dicts["images"]: - image_id = image["id"] - image_filename = image[img_filename_key] - - # Sometimes images have a vid_id which links multiple images - # together as one video. If so, we'll use that as the video key. - # But if there isn't a vid_id, we'll treat each images as a - # distinct video and use the image id as the video id. - vid_id = image.get("vid_id", image_id) - - if vid_id not in vid_id_video_map: - kwargs = dict(filenames=[image_filename]) - for key in ("width", "height"): - if key in image: - kwargs[key] = image[key] - - video = Video.from_image_filenames(**kwargs) - vid_id_video_map[vid_id] = video - frame_idx = 0 - else: - video = vid_id_video_map[vid_id] - frame_idx = video.num_frames - video.backend.filenames.append(image_filename) - - image_video_map[image_id] = (video, frame_idx) - - # Make instances from "annotations" - lf_map = dict() - track_map = dict() - for annotation in dicts["annotations"]: - skeleton = skeleton_map[annotation["category_id"]] - image_id = annotation["image_id"] - video, frame_idx = image_video_map[image_id] - keypoints = np.array(annotation["keypoints"], dtype="int").reshape(-1, 3) - - track = None - if "track_id" in annotation: - track_id = annotation["track_id"] - if track_id not in track_map: - track_map[track_id] = Track(frame_idx, str(track_id)) - track = track_map[track_id] - - points = dict() - any_visible = False - for i in range(len(keypoints)): - node = skeleton.nodes[i] - x, y, flag = keypoints[i] - - if flag == 0: - # node not labeled for this instance - continue - - is_visible = flag == 2 - any_visible = any_visible or is_visible - points[node] = Point(x, y, is_visible) - - if points: - # If none of the points had 2 has the "visible" flag, we'll - # assume this incorrect and just mark all as visible. - if not any_visible: - for point in points.values(): - point.visible = True - - inst = Instance(skeleton=skeleton, points=points, track=track) - - if image_id not in lf_map: - lf_map[image_id] = LabeledFrame(video, frame_idx) - - lf_map[image_id].insert(0, inst) - - return cls(labeled_frames=list(lf_map.values())) - - @classmethod - def from_deepposekit(cls, filename: str, video_path: str, skeleton_path: str): - video = Video.from_filename(video_path) - - skeleton_data = pd.read_csv(skeleton_path, header=0) - skeleton = Skeleton() - skeleton.add_nodes(skeleton_data["name"]) - nodes = skeleton.nodes - - for name, parent, swap in skeleton_data.itertuples(index=False, name=None): - if parent is not np.nan: - skeleton.add_edge(parent, name) - - lfs = [] - with h5.File(filename, "r") as f: - pose_matrix = f["pose"][:] - - track_count, frame_count, node_count, _ = pose_matrix.shape - - tracks = [Track(0, f"Track {i}") for i in range(track_count)] - for frame_idx in range(frame_count): - lf_instances = [] - for track_idx in range(track_count): - points_array = pose_matrix[track_idx, frame_idx, :, :] - points = dict() - for p in range(len(points_array)): - x, y, score = points_array[p] - points[nodes[p]] = Point(x, y) # TODO: score - - inst = Instance( - skeleton=skeleton, track=tracks[track_idx], points=points - ) - lf_instances.append(inst) - lfs.append( - LabeledFrame(video, frame_idx=frame_idx, instances=lf_instances) - ) - - return cls(labeled_frames=lfs) - @classmethod def make_video_callback(cls, search_paths: Optional[List] = None) -> Callable: """ diff --git a/sleap/io/format/__init__.py b/sleap/io/format/__init__.py new file mode 100644 index 000000000..0ecfacd33 --- /dev/null +++ b/sleap/io/format/__init__.py @@ -0,0 +1,101 @@ +from .coco import LabelsCocoAdaptor +from .deeplabcut import LabelsDeepLabCutAdaptor +from .deepposekit import LabelsDeepPoseKitAdaptor +from .hdf5 import LabelsV1Adaptor +from .labels_json import LabelsJsonAdaptor +from .leap_matlab import LabelsLeapMatlabAdaptor + +from . import adaptor, dispatch, filehandle + +from typing import Text, Optional, Union + +default_labels_adaptors = [LabelsV1Adaptor, LabelsJsonAdaptor] + +all_labels_adaptors = { + "hdf5_v1": LabelsV1Adaptor, + "json": LabelsJsonAdaptor, + "leap": LabelsLeapMatlabAdaptor, + "deeplabcut": LabelsDeepLabCutAdaptor, + "deepposekit": LabelsDeepPoseKitAdaptor, + "coco": LabelsCocoAdaptor, +} + + +def read( + filename: Text, + for_object: Union[Text, object], + as_format: Optional[Text] = None, + *args, + **kwargs, +): + """ + Reads file using the appropriate file format adaptor. + + Args: + filename: Full filename of the file to read. + for_object: The type of object we're trying to read; can be given as + string (e.g., "labels") or instance of the object. + as_format: Allows you to specify the format adaptor to use; + if not specified, then we'll try the default adaptors for this + object type. + + Exceptions: + NotImplementedError if appropriate adaptor cannot be found. + TypeError if adaptor does not support reading + (shouldn't happen unless you specify `as_format` adaptor). + Any file-related exception thrown while trying to read. + """ + + disp = dispatch.Dispatch() + + if as_format in all_labels_adaptors: + disp.register(all_labels_adaptors[as_format]) + return disp.read(filename, *args, **kwargs) + + if for_object == "labels" or hasattr(for_object, "labeled_frames"): + disp.register_list(default_labels_adaptors) + return disp.read(filename, *args, **kwargs) + + raise NotImplementedError("No adaptors for this object type.") + + +def write( + filename: str, + source_object: object, + as_format: Optional[Text] = None, + *args, + **kwargs, +): + """ + Writes file using the appropriate file format adaptor. + + Args: + filename: Full filename of the file to write. + All directories should exist. + source_object: The object we want to write to a file. + as_format: Allows you to specify the format adaptor to use; + if not specified, then this will use the privileged adaptor for + the type of object. + + Exceptions: + NotImplementedError if appropriate adaptor cannot be found. + TypeError if adaptor does not support writing + (shouldn't happen unless you specify `as_format` adaptor). + Any file-related exception thrown while trying to write. + """ + disp = dispatch.Dispatch() + + if as_format in all_labels_adaptors: + disp.register(all_labels_adaptors[as_format]) + return disp.write(filename, source_object, *args, **kwargs) + + elif as_format is not None: + raise KeyError(f"No adaptor for {as_format}.") + + if hasattr(source_object, "labeled_frames"): + disp.register_list(default_labels_adaptors) + return disp.write(filename, source_object, *args, **kwargs) + + raise NotImplementedError( + f"No adaptors for object type {type(source_object)} ({as_format})." + ) diff --git a/sleap/io/format/adaptor.py b/sleap/io/format/adaptor.py new file mode 100644 index 000000000..9a47564bb --- /dev/null +++ b/sleap/io/format/adaptor.py @@ -0,0 +1,75 @@ +import os +from enum import Enum +from typing import List + +import attr + +from sleap.io.format.filehandle import FileHandle + + +class SleapObjectType(Enum): + misc = 0 + labels = 1 + + +@attr.s(auto_attribs=True) +class Adaptor(object): + """ + Abstract base class which defines interface for file format adaptors. + """ + + @property + def handles(self) -> SleapObjectType: + """Returns the type of object that can be read/written.""" + raise NotImplementedError + + @property + def default_ext(self) -> str: + raise NotImplementedError + + @property + def all_exts(self) -> List[str]: + raise NotImplementedError + + @property + def name(self) -> str: + raise NotImplementedError + + def can_read_file(self, file: FileHandle) -> bool: + """Returns whether this adaptor can read this file.""" + raise NotImplementedError + + def can_write_filename(self, filename: str) -> bool: + """Returns whether this adaptor can write format of this filename.""" + raise NotImplementedError + + def does_read(self) -> bool: + """Returns whether this adaptor supports reading.""" + raise NotImplementedError + + def does_write(self) -> bool: + """Returns whether this adaptor supports writing.""" + raise NotImplementedError + + def read(self, file: FileHandle) -> object: + """Reads the file and returns the appropriate deserialized object.""" + raise NotImplementedError + + def write(self, filename: str, source_object: object): + """Writes the object to a file.""" + raise NotImplementedError + + # Methods with default implementation + + def does_match_ext(self, filename: str) -> bool: + """Returns whether this adaptor can write format of this filename.""" + + # We don't match the ext against the result of os.path.splitext because + # we want to match extensions like ".json.zip". + + return filename.endswith(tuple(self.all_exts)) + + @property + def formatted_ext_options(self): + """String for Qt file dialog extension options.""" + return f"{self.name} ({' '.join(self.all_exts)})" diff --git a/sleap/io/format/coco.py b/sleap/io/format/coco.py new file mode 100644 index 000000000..5a4020536 --- /dev/null +++ b/sleap/io/format/coco.py @@ -0,0 +1,197 @@ +import os + +import numpy as np + +from sleap import Labels, Video, Skeleton +from sleap.gui.missingfiles import MissingFilesDialog +from sleap.instance import Instance, LabeledFrame, Point, Track + +from .adaptor import Adaptor, SleapObjectType +from .filehandle import FileHandle + + +class LabelsCocoAdaptor(Adaptor): + @property + def handles(self): + return SleapObjectType.labels + + @property + def default_ext(self): + return "json" + + @property + def all_exts(self): + return ["json"] + + @property + def name(self): + return "COCO Dataset JSON" + + def can_read_file(self, file: FileHandle): + if not self.does_match_ext(file.filename): + return False + if not file.is_json: + return False + if "annotations" not in file.json: + return False + if "categories" not in file.json: + return False + return True + + def can_write_filename(self, filename: str): + return False + + def does_read(self) -> bool: + return True + + def does_write(self) -> bool: + return False + + @classmethod + def read( + cls, + file: FileHandle, + img_dir: str, + use_missing_gui: bool = False, + *args, + **kwargs, + ) -> Labels: + + dicts = file.json + + # Make skeletons from "categories" + skeleton_map = dict() + for category in dicts["categories"]: + skeleton = Skeleton(name=category["name"]) + skeleton_id = category["id"] + node_names = category["keypoints"] + skeleton.add_nodes(node_names) + + try: + for src_idx, dst_idx in category["skeleton"]: + skeleton.add_edge(node_names[src_idx], node_names[dst_idx]) + except IndexError as e: + # According to the COCO data format specifications[^1], the edges + # are supposed to be 1-indexed. But in some of their own + # dataset the edges are 1-indexed! So we'll try. + # [1]: http://cocodataset.org/#format-data + + # Clear any edges we already created using 0-indexing + skeleton.clear_edges() + + # Add edges + for src_idx, dst_idx in category["skeleton"]: + skeleton.add_edge(node_names[src_idx - 1], node_names[dst_idx - 1]) + + skeleton_map[skeleton_id] = skeleton + + # Make videos from "images" + + # Remove images that aren't referenced in the annotations + img_refs = [annotation["image_id"] for annotation in dicts["annotations"]] + dicts["images"] = list(filter(lambda im: im["id"] in img_refs, dicts["images"])) + + # Key in JSON file should be "file_name", but sometimes it's "filename", + # so we have to check both. + img_filename_key = "file_name" + if img_filename_key not in dicts["images"][0].keys(): + img_filename_key = "filename" + + # First add the img_dir to each image filename + img_paths = [ + os.path.join(img_dir, image[img_filename_key]) for image in dicts["images"] + ] + + # See if there are any missing files + img_missing = [not os.path.exists(path) for path in img_paths] + + if sum(img_missing): + if use_missing_gui: + okay = MissingFilesDialog(img_paths, img_missing).exec_() + + if not okay: + return None + else: + raise FileNotFoundError( + f"Images for COCO dataset could not be found in {img_dir}." + ) + + # Update the image paths (with img_dir or user selected path) + for image, path in zip(dicts["images"], img_paths): + image[img_filename_key] = path + + # Create the video objects for the image files + image_video_map = dict() + + vid_id_video_map = dict() + for image in dicts["images"]: + image_id = image["id"] + image_filename = image[img_filename_key] + + # Sometimes images have a vid_id which links multiple images + # together as one video. If so, we'll use that as the video key. + # But if there isn't a vid_id, we'll treat each images as a + # distinct video and use the image id as the video id. + vid_id = image.get("vid_id", image_id) + + if vid_id not in vid_id_video_map: + kwargs = dict(filenames=[image_filename]) + for key in ("width", "height"): + if key in image: + kwargs[key] = image[key] + + video = Video.from_image_filenames(**kwargs) + vid_id_video_map[vid_id] = video + frame_idx = 0 + else: + video = vid_id_video_map[vid_id] + frame_idx = video.num_frames + video.backend.filenames.append(image_filename) + + image_video_map[image_id] = (video, frame_idx) + + # Make instances from "annotations" + lf_map = dict() + track_map = dict() + for annotation in dicts["annotations"]: + skeleton = skeleton_map[annotation["category_id"]] + image_id = annotation["image_id"] + video, frame_idx = image_video_map[image_id] + keypoints = np.array(annotation["keypoints"], dtype="int").reshape(-1, 3) + + track = None + if "track_id" in annotation: + track_id = annotation["track_id"] + if track_id not in track_map: + track_map[track_id] = Track(frame_idx, str(track_id)) + track = track_map[track_id] + + points = dict() + any_visible = False + for i in range(len(keypoints)): + node = skeleton.nodes[i] + x, y, flag = keypoints[i] + + if flag == 0: + # node not labeled for this instance + continue + + is_visible = flag == 2 + any_visible = any_visible or is_visible + points[node] = Point(x, y, is_visible) + + if points: + # If none of the points had 2 has the "visible" flag, we'll + # assume this incorrect and just mark all as visible. + if not any_visible: + for point in points.values(): + point.visible = True + + inst = Instance(skeleton=skeleton, points=points, track=track) + + if image_id not in lf_map: + lf_map[image_id] = LabeledFrame(video, frame_idx) + + lf_map[image_id].insert(0, inst) + + return Labels(labeled_frames=list(lf_map.values())) diff --git a/sleap/io/format/deeplabcut.py b/sleap/io/format/deeplabcut.py new file mode 100644 index 000000000..81563003f --- /dev/null +++ b/sleap/io/format/deeplabcut.py @@ -0,0 +1,122 @@ +import os + +import pandas as pd + +from sleap import Labels, Video, Skeleton +from sleap.instance import Instance, LabeledFrame, Point + +from .adaptor import Adaptor, SleapObjectType +from .filehandle import FileHandle + + +class LabelsDeepLabCutAdaptor(Adaptor): + @property + def handles(self): + return SleapObjectType.labels + + @property + def default_ext(self): + return "csv" + + @property + def all_exts(self): + return ["csv"] + + @property + def name(self): + return "DeepLabCut Dataset CSV" + + def can_read_file(self, file: FileHandle): + if not self.does_match_ext(file.filename): + return False + # TODO: add checks for valid deeplabcut csv + return True + + def can_write_filename(self, filename: str): + return False + + def does_read(self) -> bool: + return True + + def does_write(self) -> bool: + return False + + @classmethod + def read(cls, file: FileHandle, *args, **kwargs,) -> Labels: + filename = file.filename + + # At the moment we don't need anything from the config file, + # but the code to read it is here in case we do in the future. + + # # Try to find the config file by walking up file path starting at csv file looking for config.csv + # last_dir = None + # file_dir = os.path.dirname(filename) + # config_filename = "" + + # while file_dir != last_dir: + # last_dir = file_dir + # file_dir = os.path.dirname(file_dir) + # config_filename = os.path.join(file_dir, 'config.yaml') + # if os.path.exists(config_filename): + # break + + # # If we couldn't find a config file, give up + # if not os.path.exists(config_filename): return + + # with open(config_filename, 'r') as f: + # config = yaml.load(f, Loader=yaml.SafeLoader) + + # x1 = config['x1'] + # y1 = config['y1'] + # x2 = config['x2'] + # y2 = config['y2'] + + data = pd.read_csv(filename, header=[1, 2]) + + # Create the skeleton from the list of nodes in the csv file + # Note that DeepLabCut doesn't have edges, so these will have to be added by user later + node_names = [n[0] for n in list(data)[1::2]] + + skeleton = Skeleton() + skeleton.add_nodes(node_names) + + # Create an imagestore `Video` object from frame images. + # This may not be ideal for large projects, since we're reading in + # each image and then writing it out in a new directory. + + img_files = data.ix[:, 0] # get list of all images + + # the image filenames in the csv may not match where the user has them + # so we'll change the directory to match where the user has the csv + def fix_img_path(img_dir, img_filename): + img_filename = os.path.basename(img_filename) + img_filename = os.path.join(img_dir, img_filename) + return img_filename + + img_dir = os.path.dirname(filename) + img_files = list(map(lambda f: fix_img_path(img_dir, f), img_files)) + + # we'll put the new imgstore in the same directory as the current csv + imgstore_name = os.path.join(os.path.dirname(filename), "sleap_video") + + # create the imgstore (or open if it already exists) + if os.path.exists(imgstore_name): + video = Video.from_filename(imgstore_name) + else: + video = Video.imgstore_from_filenames(img_files, imgstore_name) + + labels = [] + + for i in range(len(data)): + # get points for each node + instance_points = dict() + for node in node_names: + x, y = data[(node, "x")][i], data[(node, "y")][i] + instance_points[node] = Point(x, y) + # create instance with points (we can assume there's only one instance per frame) + instance = Instance(skeleton=skeleton, points=instance_points) + # create labeledframe and add it to list + label = LabeledFrame(video=video, frame_idx=i, instances=[instance]) + labels.append(label) + + return Labels(labeled_frames=labels) diff --git a/sleap/io/format/deepposekit.py b/sleap/io/format/deepposekit.py new file mode 100644 index 000000000..c727dcee1 --- /dev/null +++ b/sleap/io/format/deepposekit.py @@ -0,0 +1,86 @@ +from .adaptor import Adaptor, SleapObjectType +from .filehandle import FileHandle + +from sleap.instance import Instance, LabeledFrame, Point, Track + +from sleap import Labels, Video, Skeleton + +import numpy as np +import pandas as pd + + +class LabelsDeepPoseKitAdaptor(Adaptor): + @property + def handles(self): + return SleapObjectType.labels + + @property + def default_ext(self): + return "h5" + + @property + def all_exts(self): + return ["h5", "hdf5"] + + @property + def name(self): + return "DeepPoseKit Dataset HDF5" + + def can_read_file(self, file: FileHandle): + if not self.does_match_ext(file.filename): + return False + if not file.is_hdf5: + return False + if not hasattr(file.file, "pose"): + return False + return True + + def can_write_filename(self, filename: str): + return False + + def does_read(self) -> bool: + return True + + def does_write(self) -> bool: + return False + + @classmethod + def read( + cls, file: FileHandle, video_path: str, skeleton_path: str, *args, **kwargs, + ) -> Labels: + f = file.file + + video = Video.from_filename(video_path) + skeleton_data = pd.read_csv(skeleton_path, header=0) + + skeleton = Skeleton() + skeleton.add_nodes(skeleton_data["name"]) + nodes = skeleton.nodes + + for name, parent, swap in skeleton_data.itertuples(index=False, name=None): + if parent is not np.nan: + skeleton.add_edge(parent, name) + + lfs = [] + + pose_matrix = f["pose"][:] + + track_count, frame_count, node_count, _ = pose_matrix.shape + + tracks = [Track(0, f"Track {i}") for i in range(track_count)] + for frame_idx in range(frame_count): + lf_instances = [] + for track_idx in range(track_count): + points_array = pose_matrix[track_idx, frame_idx, :, :] + points = dict() + for p in range(len(points_array)): + x, y, score = points_array[p] + points[nodes[p]] = Point(x, y) # TODO: score + + inst = Instance( + skeleton=skeleton, track=tracks[track_idx], points=points + ) + lf_instances.append(inst) + lfs.append(LabeledFrame(video, frame_idx=frame_idx, instances=lf_instances)) + + return Labels(labeled_frames=lfs) diff --git a/sleap/io/format/dispatch.py b/sleap/io/format/dispatch.py new file mode 100644 index 000000000..b32e85dc7 --- /dev/null +++ b/sleap/io/format/dispatch.py @@ -0,0 +1,96 @@ +import attr +from typing import List, Optional, Tuple, Union + +from sleap.io.format.adaptor import Adaptor, SleapObjectType +from sleap.io.format.filehandle import FileHandle + + +@attr.s(auto_attribs=True) +class Dispatch(object): + + _adaptors: List[Adaptor] = attr.ib(default=attr.Factory(list)) + + def register(self, adaptor: Union[Adaptor, type]): + """ + Registers the class which reads/writes specific file format. + """ + # If given a class, then instantiate it since we want the object + if type(adaptor) == type: + adaptor = adaptor() + + self._adaptors.append(adaptor) + + def register_list(self, adaptor_list: List[Union[Adaptor, type]]): + for adaptor in adaptor_list: + self.register(adaptor) + + def get_formatted_ext_options(self) -> List[str]: + """ + Returns the file extensions that can be used for specified type. + + This is used for determining which extensions to list in save dialog. + """ + return [adaptor.formatted_ext_options for adaptor in self._adaptors] + + def open(self, filename: str) -> FileHandle: + """Returns FileHandle for file.""" + return FileHandle(filename) + + def read(self, filename: str, *args, **kwargs) -> object: + """Reads file and returns the deserialized object.""" + + with self.open(filename) as file: + for adaptor in self._adaptors: + if adaptor.can_read_file(file): + return adaptor.read(file, *args, **kwargs) + + raise TypeError("No file format adaptor could read this file.") + + def read_safely(self, *args, **kwargs) -> Tuple[object, Optional[BaseException]]: + """Wrapper for reading file without throwing exception.""" + try: + return self.read(*args, **kwargs), None + except Exception as e: + return None, e + + def write(self, filename: str, source_object: object, *args, **kwargs): + """ + Writes an object to a file. + + Args: + filename: The full name (including path) of the file to write. + source_object: The object to write. + """ + + for adaptor in self._adaptors: + if adaptor.can_write_filename(filename): + return adaptor.write(filename, source_object, *args, **kwargs) + + raise TypeError("No file format adaptor could write this file.") + + def write_safely(self, *args, **kwargs) -> Optional[BaseException]: + """Wrapper for writing file without throwing exception.""" + try: + self.write(*args, **kwargs) + return None + except Exception as e: + return e + + @classmethod + def make_dispatcher(cls, object_type: SleapObjectType) -> "Dispatch": + dispatcher = cls() + if object_type == SleapObjectType.labels: + from .hdf5 import LabelsV1Adaptor + from .labels_json import LabelsJsonAdaptor + from .deeplabcut import LabelsDeepLabCutAdaptor + + dispatcher.register(LabelsV1Adaptor()) + dispatcher.register(LabelsJsonAdaptor()) + dispatcher.register(LabelsDeepLabCutAdaptor()) + + elif object_type == SleapObjectType.misc: + from .text import TextAdaptor + + dispatcher.register(TextAdaptor()) + + return dispatcher diff --git a/sleap/io/format/filehandle.py b/sleap/io/format/filehandle.py new file mode 100644 index 000000000..c8ed1cb88 --- /dev/null +++ b/sleap/io/format/filehandle.py @@ -0,0 +1,93 @@ +import os +from typing import Optional + +import attr +import h5py + +from sleap.util import json_loads + + +@attr.s(auto_attribs=True) +class FileHandle(object): + """Reference to a file; can hold loaded data so it needn't be read twice.""" + + filename: str + _is_hdf5: bool = False + _is_json: Optional[bool] = None + _is_open: bool = False + _file: object = None + _text: str = None + _json: object = None + + def __enter__(self): + self.open() + return self + + def __exit__(self, exc_type, exc_value, exc_traceback): + self.close() + + def open(self): + if not os.path.exists(self.filename): + raise FileNotFoundError(f"Could not find {self.filename}") + + if self._file is None: + try: + self._file = h5py.File(self.filename, "r") + self._is_hdf5 = True + except OSError as e: + # We get OSError when trying to read non-HDF5 file with h5py + pass + + if self._file is None: + self._file = open(self.filename, "r") + self._is_hdf5 = False + + def close(self): + if self._file is not None: + self._file.close() + + @property + def file(self): + self.open() + return self._file + + @property + def text(self): + if self._text is None: + self._text = self.file.read() + return self._text + + @property + def json(self): + if self._json is None: + self._json = json_loads(self.text) + return self._json + + @property + def is_json(self): + if self._is_json is None: + try: + self.json + self._is_json = True + except Exception as e: + self._is_json = False + return self._is_json + + @property + def is_hdf5(self): + self.open() + return self._is_hdf5 + + @property + def format_id(self): + if self.is_hdf5: + if "metadata" in self.file: + meta_group = self.file.require_group("metadata") + if "format_id" in meta_group.attrs: + return meta_group.attrs["format_id"] + + elif self.is_json: + if "format_id" in self.json: + return self.json["format_id"] + + return None diff --git a/sleap/io/format/genericjson.py b/sleap/io/format/genericjson.py new file mode 100644 index 000000000..c4330c1d8 --- /dev/null +++ b/sleap/io/format/genericjson.py @@ -0,0 +1,42 @@ +from .adaptor import Adaptor, SleapObjectType +from .filehandle import FileHandle + +from sleap.util import json_dumps + + +class GenericJsonAdaptor(Adaptor): + @property + def handles(self): + return SleapObjectType.misc + + @property + def default_ext(self): + return "json" + + @property + def all_exts(self): + return ["json", "txt"] + + @property + def name(self): + return "JSON file" + + def can_read_file(self, file: FileHandle): + if not self.does_match_ext(file.filename): + return False + return file.is_json + + def can_write_filename(self, filename: str) -> bool: + return True + + def does_read(self) -> bool: + return True + + def does_write(self) -> bool: + return True + + def read(self, file: FileHandle, *args, **kwargs): + return file.json + + def write(self, filename: str, source_object: dict): + json_dumps(source_object, filename) diff --git a/sleap/io/format/hdf5.py b/sleap/io/format/hdf5.py new file mode 100644 index 000000000..e41c32c82 --- /dev/null +++ b/sleap/io/format/hdf5.py @@ -0,0 +1,450 @@ +from sleap.io import format +from . import labels_json + +from sleap.instance import ( + PointArray, + PredictedPointArray, + Instance, + PredictedInstance, + LabeledFrame, + PredictedPoint, + Point, +) +from sleap.util import json_loads, json_dumps +from sleap import Labels, Video + +import h5py +import numpy as np +import os + +from typing import Optional + + +class LabelsV1Adaptor(format.adaptor.Adaptor): + FORMAT_ID = 1 + + @property + def handles(self): + return format.adaptor.SleapObjectType.labels + + @property + def default_ext(self): + return "h5" + + @property + def all_exts(self): + return ["h5", "hdf5"] + + @property + def name(self): + return "Labels HDF5" + + def can_read_file(self, file: format.filehandle.FileHandle): + if not self.does_match_ext(file.filename): + return False + if not file.is_hdf5: + return False + if file.format_id not in (None, self.FORMAT_ID): + return False + return True + + def can_write_filename(self, filename: str): + return self.does_match_ext(filename) + + def does_read(self) -> bool: + return True + + def does_write(self) -> bool: + return True + + @classmethod + def read( + cls, + file: format.filehandle.FileHandle, + video_callback=None, + match_to: Optional[Labels] = None, + *args, + **kwargs, + ): + f = file.file + + # Extract the Labels JSON metadata and create Labels object with just + # this metadata. + dicts = json_loads( + f.require_group("metadata").attrs["json"].tostring().decode() + ) + + for key in ("videos", "tracks", "suggestions"): + hdf5_key = f"{key}_json" + if hdf5_key in f: + items = [json_loads(item_json) for item_json in f[hdf5_key]] + dicts[key] = items + + # Video path "." means the video is saved in same file as labels, + # so replace these paths. + for video_item in dicts["videos"]: + if video_item["backend"]["filename"] == ".": + video_item["backend"]["filename"] = file.filename + + if hasattr(video_callback, "__iter__"): + # If the callback is an iterable, then we'll expect it to be a + # list of strings and build a non-gui callback with those as + # the search paths. + search_paths = [path for path in video_callback] + video_callback = Labels.make_video_callback(search_paths) + + # Use the callback if given to handle missing videos + if callable(video_callback): + video_callback(dicts["videos"]) + + labels = labels_json.LabelsJsonAdaptor.from_json_data(dicts, match_to=match_to) + + frames_dset = f["frames"][:] + instances_dset = f["instances"][:] + points_dset = f["points"][:] + pred_points_dset = f["pred_points"][:] + + # Rather than instantiate a bunch of Point\PredictedPoint objects, we will + # use inplace numpy recarrays. This will save a lot of time and memory + # when reading things in. + points = PointArray(buf=points_dset, shape=len(points_dset)) + pred_points = PredictedPointArray( + buf=pred_points_dset, shape=len(pred_points_dset) + ) + + # Extend the tracks list with a None track. We will signify this with a -1 in the + # data which will map to last element of tracks + tracks = labels.tracks.copy() + tracks.extend([None]) + + # A dict to keep track of instances that have a from_predicted link. The key is the + # instance and the value is the index of the instance. + from_predicted_lookup = {} + + # Create the instances + instances = [] + for i in instances_dset: + track = tracks[i["track"]] + skeleton = labels.skeletons[i["skeleton"]] + + if i["instance_type"] == 0: # Instance + instance = Instance( + skeleton=skeleton, + track=track, + points=points[i["point_id_start"] : i["point_id_end"]], + ) + else: # PredictedInstance + instance = PredictedInstance( + skeleton=skeleton, + track=track, + points=pred_points[i["point_id_start"] : i["point_id_end"]], + score=i["score"], + ) + instances.append(instance) + + if i["from_predicted"] != -1: + from_predicted_lookup[instance] = i["from_predicted"] + + # Make a second pass to add any from_predicted links + for instance, from_predicted_idx in from_predicted_lookup.items(): + instance.from_predicted = instances[from_predicted_idx] + + # Create the labeled frames + frames = [ + LabeledFrame( + video=labels.videos[frame["video"]], + frame_idx=frame["frame_idx"], + instances=instances[ + frame["instance_id_start"] : frame["instance_id_end"] + ], + ) + for i, frame in enumerate(frames_dset) + ] + + labels.labeled_frames = frames + + # Do the stuff that should happen after we have labeled frames + labels._build_lookup_caches() + + return labels + + @classmethod + def write( + cls, + filename: str, + source_object: object, + append: bool = False, + save_frame_data: bool = False, + frame_data_format: str = "png", + ): + + labels = source_object + + # Delete the file if it exists, we want to start from scratch since + # h5py truncates the file which seems to not actually delete data + # from the file. Don't if we are appending of course. + if os.path.exists(filename) and not append: + os.unlink(filename) + + # Serialize all the meta-data to JSON. + d = labels.to_dict(skip_labels=True) + + if save_frame_data: + new_videos = labels.save_frame_data_hdf5(filename, frame_data_format) + + # Replace path to video file with "." (which indicates that the + # video is in the same file as the HDF5 labels dataset). + # Otherwise, the video paths will break if the HDF5 labels + # dataset file is moved. + for vid in new_videos: + vid.backend.filename = "." + + d["videos"] = Video.cattr().unstructure(new_videos) + + with h5py.File(filename, "a") as f: + + # Add all the JSON metadata + meta_group = f.require_group("metadata") + + meta_group.attrs["format_id"] = cls.FORMAT_ID + + # If we are appending and there already exists JSON metadata + if append and "json" in meta_group.attrs: + + # Otherwise, we need to read the JSON and append to the lists + old_labels = labels_json.LabelsJsonAdaptor.from_json_data( + meta_group.attrs["json"].tostring().decode() + ) + + # A function to join to list but only include new non-dupe entries + # from the right hand list. + def append_unique(old, new): + unique = [] + for x in new: + try: + matches = [y.matches(x) for y in old] + except AttributeError: + matches = [x == y for y in old] + + # If there were no matches, this is a unique object. + if sum(matches) == 0: + unique.append(x) + else: + # If we have an object that matches, replace the instance with + # the one from the new list. This will will make sure objects + # on the Instances are the same as those in the Labels lists. + for i, match in enumerate(matches): + if match: + old[i] = x + + return old + unique + + # Append the lists + labels.tracks = append_unique(old_labels.tracks, labels.tracks) + labels.skeletons = append_unique(old_labels.skeletons, labels.skeletons) + labels.videos = append_unique(old_labels.videos, labels.videos) + labels.nodes = append_unique(old_labels.nodes, labels.nodes) + + # FIXME: Do something for suggestions and negative_anchors + + # Get the dict for JSON and save it over the old data + d = labels.to_dict(skip_labels=True) + + if not append: + for key in ("videos", "tracks", "suggestions"): + # Convert for saving in hdf5 dataset + data = [np.string_(json_dumps(item)) for item in d[key]] + + hdf5_key = f"{key}_json" + + # Save in its own dataset (e.g., videos_json) + f.create_dataset(hdf5_key, data=data, maxshape=(None,)) + + # Clear from dict since we don't want to save this in attribute + d[key] = [] + + # Output the dict to JSON + meta_group.attrs["json"] = np.string_(json_dumps(d)) + + # FIXME: We can probably construct these from attrs fields + # We will store Instances and PredcitedInstances in the same + # table. instance_type=0 or Instance and instance_type=1 for + # PredictedInstance, score will be ignored for Instances. + instance_dtype = np.dtype( + [ + ("instance_id", "i8"), + ("instance_type", "u1"), + ("frame_id", "u8"), + ("skeleton", "u4"), + ("track", "i4"), + ("from_predicted", "i8"), + ("score", "f4"), + ("point_id_start", "u8"), + ("point_id_end", "u8"), + ] + ) + frame_dtype = np.dtype( + [ + ("frame_id", "u8"), + ("video", "u4"), + ("frame_idx", "u8"), + ("instance_id_start", "u8"), + ("instance_id_end", "u8"), + ] + ) + + num_instances = len(labels.all_instances) + max_skeleton_size = max([len(s.nodes) for s in labels.skeletons], default=0) + + # Initialize data arrays for serialization + points = np.zeros(num_instances * max_skeleton_size, dtype=Point.dtype) + pred_points = np.zeros( + num_instances * max_skeleton_size, dtype=PredictedPoint.dtype + ) + instances = np.zeros(num_instances, dtype=instance_dtype) + frames = np.zeros(len(labels), dtype=frame_dtype) + + # Pre compute some structures to make serialization faster + skeleton_to_idx = { + skeleton: labels.skeletons.index(skeleton) + for skeleton in labels.skeletons + } + track_to_idx = { + track: labels.tracks.index(track) for track in labels.tracks + } + track_to_idx[None] = -1 + video_to_idx = { + video: labels.videos.index(video) for video in labels.videos + } + instance_type_to_idx = {Instance: 0, PredictedInstance: 1} + + # Each instance we create will have and index in the dataset, keep track of + # these so we can quickly add from_predicted links on a second pass. + instance_to_idx = {} + instances_with_from_predicted = [] + instances_from_predicted = [] + + # If we are appending, we need look inside to see what frame, instance, and point + # ids we need to start from. This gives us offsets to use. + if append and "points" in f: + point_id_offset = f["points"].shape[0] + pred_point_id_offset = f["pred_points"].shape[0] + instance_id_offset = f["instances"][-1]["instance_id"] + 1 + frame_id_offset = int(f["frames"][-1]["frame_id"]) + 1 + else: + point_id_offset = 0 + pred_point_id_offset = 0 + instance_id_offset = 0 + frame_id_offset = 0 + + point_id = 0 + pred_point_id = 0 + instance_id = 0 + + for frame_id, label in enumerate(labels): + frames[frame_id] = ( + frame_id + frame_id_offset, + video_to_idx[label.video], + label.frame_idx, + instance_id + instance_id_offset, + instance_id + instance_id_offset + len(label.instances), + ) + for instance in label.instances: + + # Add this instance to our lookup structure we will need for from_predicted + # links + instance_to_idx[instance] = instance_id + + parray = instance.get_points_array(copy=False, full=True) + instance_type = type(instance) + + # Check whether we are working with a PredictedInstance or an Instance. + if instance_type is PredictedInstance: + score = instance.score + pid = pred_point_id + pred_point_id_offset + else: + score = np.nan + pid = point_id + point_id_offset + + # Keep track of any from_predicted instance links, we will insert the + # correct instance_id in the dataset after we are done. + if instance.from_predicted: + instances_with_from_predicted.append(instance_id) + instances_from_predicted.append(instance.from_predicted) + + # Copy all the data + instances[instance_id] = ( + instance_id + instance_id_offset, + instance_type_to_idx[instance_type], + frame_id, + skeleton_to_idx[instance.skeleton], + track_to_idx[instance.track], + -1, + score, + pid, + pid + len(parray), + ) + + # If these are predicted points, copy them to the predicted point array + # otherwise, use the normal point array + if type(parray) is PredictedPointArray: + pred_points[ + pred_point_id : pred_point_id + len(parray) + ] = parray + pred_point_id = pred_point_id + len(parray) + else: + points[point_id : point_id + len(parray)] = parray + point_id = point_id + len(parray) + + instance_id = instance_id + 1 + + # Add from_predicted links + for instance_id, from_predicted in zip( + instances_with_from_predicted, instances_from_predicted + ): + try: + instances[instance_id]["from_predicted"] = instance_to_idx[ + from_predicted + ] + except KeyError: + # If we haven't encountered the from_predicted instance yet then don't save the link. + # It’s possible for a user to create a regular instance from a predicted instance and then + # delete all predicted instances from the file, but in this case I don’t think there’s any reason + # to remember which predicted instance the regular instance came from. + pass + + # We pre-allocated our points array with max possible size considering the max + # skeleton size, drop any unused points. + points = points[0:point_id] + pred_points = pred_points[0:pred_point_id] + + # Create datasets if we need to + if append and "points" in f: + f["points"].resize((f["points"].shape[0] + points.shape[0]), axis=0) + f["points"][-points.shape[0] :] = points + f["pred_points"].resize( + (f["pred_points"].shape[0] + pred_points.shape[0]), axis=0 + ) + f["pred_points"][-pred_points.shape[0] :] = pred_points + f["instances"].resize( + (f["instances"].shape[0] + instances.shape[0]), axis=0 + ) + f["instances"][-instances.shape[0] :] = instances + f["frames"].resize((f["frames"].shape[0] + frames.shape[0]), axis=0) + f["frames"][-frames.shape[0] :] = frames + else: + f.create_dataset( + "points", data=points, maxshape=(None,), dtype=Point.dtype + ) + f.create_dataset( + "pred_points", + data=pred_points, + maxshape=(None,), + dtype=PredictedPoint.dtype, + ) + f.create_dataset( + "instances", data=instances, maxshape=(None,), dtype=instance_dtype + ) + f.create_dataset( + "frames", data=frames, maxshape=(None,), dtype=frame_dtype + ) diff --git a/sleap/io/format/labels_json.py b/sleap/io/format/labels_json.py new file mode 100644 index 000000000..a2e09b539 --- /dev/null +++ b/sleap/io/format/labels_json.py @@ -0,0 +1,468 @@ +import atexit +import os +import re +import shutil +import tempfile +import zipfile +from typing import Optional, Union, Dict, List, Callable + +import cattr + +from .adaptor import Adaptor, SleapObjectType +from .filehandle import FileHandle + +from sleap import Labels, Video +from sleap.gui.suggestions import SuggestionFrame +from sleap.instance import ( + LabeledFrame, + Track, + make_instance_cattr, +) +from sleap.io.legacy import load_labels_json_old +from sleap.skeleton import Node, Skeleton +from sleap.util import json_loads, json_dumps, weak_filename_match + + +class LabelsJsonAdaptor(Adaptor): + FORMAT_ID = 1 + + @property + def handles(self): + return SleapObjectType.labels + + @property + def default_ext(self): + return "json" + + @property + def all_exts(self): + return ["json", "json.zip"] + + @property + def name(self): + return "Labels JSON" + + def can_read_file(self, file: FileHandle): + if not self.does_match_ext(file.filename): + print(f"{file.filename} doesn't match ext for json or json.zip") + return False + + if file.filename.endswith(".zip"): + # We can't check inside zip so assume it's correct + return True + + if not file.is_json: + return False + if file.format_id not in (None, self.FORMAT_ID): + return False + return True + + def can_write_filename(self, filename: str): + return self.does_match_ext(filename) + + def does_read(self) -> bool: + return True + + def does_write(self) -> bool: + return True + + @classmethod + def read( + cls, + file: FileHandle, + video_callback: Optional[Callable] = None, + match_to: Optional[Labels] = None, + *args, + **kwargs, + ) -> Labels: + pass + + """ + Deserialize JSON file as new :class:`Labels` instance. + + Args: + filename: Path to JSON file. + video_callback: A callback function that which can modify + video paths before we try to create the corresponding + :class:`Video` objects. Usually you'll want to pass + a callback created by :meth:`make_video_callback` + or :meth:`make_gui_video_callback`. + Alternately, if you pass a list of strings we'll construct a + non-gui callback with those strings as the search paths. + match_to: If given, we'll replace particular objects in the + data dictionary with *matching* objects in the match_to + :class:`Labels` object. This ensures that the newly + instantiated :class:`Labels` can be merged without + duplicate matching objects (e.g., :class:`Video` objects ). + Returns: + A new :class:`Labels` object. + """ + + tmp_dir = None + filename = file.filename + + # Check if the file is a zipfile for not. + if zipfile.is_zipfile(filename): + + # Make a tmpdir, located in the directory that the file exists, to unzip + # its contents. + tmp_dir = os.path.join( + os.path.dirname(filename), + f"tmp_{os.getpid()}_{os.path.basename(filename)}", + ) + if os.path.exists(tmp_dir): + shutil.rmtree(tmp_dir, ignore_errors=True) + try: + os.mkdir(tmp_dir) + except FileExistsError: + pass + + # tmp_dir = tempfile.mkdtemp(dir=os.path.dirname(filename)) + + try: + + # Register a cleanup routine that deletes the tmpdir on program exit + # if something goes wrong. The True is for ignore_errors + atexit.register(shutil.rmtree, tmp_dir, True) + + # Uncompress the data into the directory + shutil.unpack_archive(filename, extract_dir=tmp_dir) + + # We can now open the JSON file, save the zip file and + # replace file with the first JSON file we find in the archive. + json_files = [ + os.path.join(tmp_dir, file) + for file in os.listdir(tmp_dir) + if file.endswith(".json") + ] + + if len(json_files) == 0: + raise ValueError( + f"No JSON file found inside {filename}. Are you sure this is a valid sLEAP dataset." + ) + + filename = json_files[0] + + except Exception as ex: + # If we had problems, delete the temp directory and reraise the exception. + shutil.rmtree(tmp_dir, ignore_errors=True) + raise + + # Open and parse the JSON in filename + with open(filename, "r") as file: + + # FIXME: Peek into the json to see if there is version string. + # We do this to tell apart old JSON data from leap_dev vs the + # newer format for sLEAP. + json_str = file.read() + dicts = json_loads(json_str) + + # If we have a version number, then it is new sLEAP format + if "version" in dicts: + + # Cache the working directory. + cwd = os.getcwd() + # Replace local video paths (for imagestore) + if tmp_dir: + for vid in dicts["videos"]: + vid["backend"]["filename"] = os.path.join( + tmp_dir, vid["backend"]["filename"] + ) + + if hasattr(video_callback, "__iter__"): + # If the callback is an iterable, then we'll expect it to be a + # list of strings and build a non-gui callback with those as + # the search paths. + search_paths = [path for path in video_callback] + video_callback = Labels.make_video_callback(search_paths) + + # Use the callback if given to handle missing videos + if callable(video_callback): + abort = video_callback(dicts["videos"]) + if abort: + raise FileNotFoundError + + # Try to load the labels filename. + try: + labels = cls.from_json_data(dicts, match_to=match_to) + + except FileNotFoundError: + + # FIXME: We are going to the labels JSON that has references to + # video files. Lets change directory to the dirname of the json file + # so that relative paths will be from this directory. Maybe + # it is better to feed the dataset dirname all the way down to + # the Video object. This seems like less coupling between classes + # though. + if os.path.dirname(filename) != "": + os.chdir(os.path.dirname(filename)) + + # Try again + labels = cls.from_json_data(dicts, match_to=match_to) + + except Exception as ex: + # Ok, we give up, where the hell are these videos! + raise # Re-raise. + finally: + os.chdir(cwd) # Make sure to change back if we have problems. + + return labels + + else: + frames = load_labels_json_old(data_path=filename, parsed_json=dicts) + return Labels(frames) + + @classmethod + def write( + cls, + filename: str, + source_object: str, + compress: Optional[bool] = None, + save_frame_data: bool = False, + frame_data_format: str = "png", + ): + """ + Save a Labels instance to a JSON format. + + Args: + filename: The filename to save the data to. + source_object: The labels dataset to save. + compress: Whether the data be zip compressed or not? If True, + the JSON will be compressed using Python's shutil.make_archive + command into a PKZIP zip file. If compress is True then + filename will have a .zip appended to it. + save_frame_data: Whether to save the image data for each frame. + For each video in the dataset, all frames that have labels + will be stored as an imgstore dataset. + If save_frame_data is True then compress will be forced to True + since the archive must contain both the JSON data and image + data stored in ImgStores. + frame_data_format: If save_frame_data is True, then this argument + is used to set the data format to use when writing frame + data to ImgStore objects. Supported formats should be: + + * 'pgm', + * 'bmp', + * 'ppm', + * 'tif', + * 'png', + * 'jpg', + * 'npy', + * 'mjpeg/avi', + * 'h264/mkv', + * 'avc1/mp4' + + Note: 'h264/mkv' and 'avc1/mp4' require separate installation + of these codecs on your system. They are excluded from SLEAP + because of their GPL license. + + Returns: + None + """ + + labels = source_object + + if compress is None: + compress = filename.endswith(".zip") + + # Lets make a temporary directory to store the image frame data or pre-compressed json + # in case we need it. + with tempfile.TemporaryDirectory() as tmp_dir: + + # If we are saving frame data along with the datasets. We will replace videos with + # new video object that represent video data from just the labeled frames. + if save_frame_data: + + # Create a set of new Video objects with imgstore backends. One for each + # of the videos. We will only include the labeled frames though. We will + # then replace each video with this new video + new_videos = labels.save_frame_data_imgstore( + output_dir=tmp_dir, format=frame_data_format + ) + + # Make video paths relative + for vid in new_videos: + tmp_path = vid.filename + # Get the parent dir of the YAML file. + # Use "/" since this works on Windows and posix + img_store_dir = ( + os.path.basename(os.path.split(tmp_path)[0]) + + "/" + + os.path.basename(tmp_path) + ) + # Change to relative path + vid.backend.filename = img_store_dir + + # Convert to a dict, not JSON yet, because we need to patch up the videos + d = labels.to_dict() + d["videos"] = Video.cattr().unstructure(new_videos) + + else: + d = labels.to_dict() + + # Set file format version + d["format_id"] = cls.FORMAT_ID + + if compress or save_frame_data: + + # Ensure that filename ends with .json + # shutil will append .zip + filename = re.sub("(\.json)?(\.zip)?$", ".json", filename) + + # Write the json to the tmp directory, we will zip it up with the frame data. + full_out_filename = os.path.join(tmp_dir, os.path.basename(filename)) + json_dumps(d, full_out_filename) + + # Create the archive + shutil.make_archive(base_name=filename, root_dir=tmp_dir, format="zip") + + # If the user doesn't want to compress, then just write the json to the filename + else: + json_dumps(d, filename) + + @classmethod + def from_json_data( + cls, data: Union[str, dict], match_to: Optional["Labels"] = None + ) -> "Labels": + """ + Create instance of class from data in dictionary. + + Method is used by other methods that load from JSON. + + Args: + data: Dictionary, deserialized from JSON. + match_to: If given, we'll replace particular objects in the + data dictionary with *matching* objects in the match_to + :class:`Labels` object. This ensures that the newly + instantiated :class:`Labels` can be merged without + duplicate matching objects (e.g., :class:`Video` objects ). + Returns: + A new :class:`Labels` object. + """ + + # Parse the json string if needed. + if type(data) is str: + dicts = json_loads(data) + else: + dicts = data + + dicts["tracks"] = dicts.get( + "tracks", [] + ) # don't break if json doesn't include tracks + + # First, deserialize the skeletons, videos, and nodes lists. + # The labels reference these so we will need them while deserializing. + nodes = cattr.structure(dicts["nodes"], List[Node]) + + idx_to_node = {i: nodes[i] for i in range(len(nodes))} + skeletons = Skeleton.make_cattr(idx_to_node).structure( + dicts["skeletons"], List[Skeleton] + ) + videos = Video.cattr().structure(dicts["videos"], List[Video]) + + try: + # First try unstructuring tuple (newer format) + track_cattr = cattr.Converter( + unstruct_strat=cattr.UnstructureStrategy.AS_TUPLE + ) + tracks = track_cattr.structure(dicts["tracks"], List[Track]) + except: + # Then try unstructuring dict (older format) + try: + tracks = cattr.structure(dicts["tracks"], List[Track]) + except: + raise ValueError("Unable to load tracks as tuple or dict!") + + # if we're given a Labels object to match, use its objects when they match + if match_to is not None: + for idx, sk in enumerate(skeletons): + for old_sk in match_to.skeletons: + if sk.matches(old_sk): + # use nodes from matched skeleton + for (node, match_node) in zip(sk.nodes, old_sk.nodes): + node_idx = nodes.index(node) + nodes[node_idx] = match_node + # use skeleton from match + skeletons[idx] = old_sk + break + for idx, vid in enumerate(videos): + for old_vid in match_to.videos: + # compare last three parts of path + if vid.filename == old_vid.filename or weak_filename_match( + vid.filename, old_vid.filename + ): + # use video from match + videos[idx] = old_vid + break + + suggestions = [] + if "suggestions" in dicts: + suggestions_cattr = cattr.Converter() + suggestions_cattr.register_structure_hook( + Video, lambda x, type: videos[int(x)] + ) + try: + suggestions = suggestions_cattr.structure( + dicts["suggestions"], List[SuggestionFrame] + ) + except Exception as e: + print("Error while loading suggestions (1)") + print(e) + + try: + # Convert old suggestion format to new format. + # Old format: {video: list of frame indices} + # New format: [SuggestionFrames] + old_suggestions = suggestions_cattr.structure( + dicts["suggestions"], Dict[Video, List] + ) + for video in old_suggestions.keys(): + suggestions.extend( + [ + SuggestionFrame(video, idx) + for idx in old_suggestions[video] + ] + ) + except Exception as e: + print("Error while loading suggestions (2)") + print(e) + pass + + if "negative_anchors" in dicts: + negative_anchors_cattr = cattr.Converter() + negative_anchors_cattr.register_structure_hook( + Video, lambda x, type: videos[int(x)] + ) + negative_anchors = negative_anchors_cattr.structure( + dicts["negative_anchors"], Dict[Video, List] + ) + else: + negative_anchors = dict() + + # If there is actual labels data, get it. + if "labels" in dicts: + label_cattr = make_instance_cattr() + label_cattr.register_structure_hook( + Skeleton, lambda x, type: skeletons[int(x)] + ) + label_cattr.register_structure_hook(Video, lambda x, type: videos[int(x)]) + label_cattr.register_structure_hook( + Node, lambda x, type: x if isinstance(x, Node) else nodes[int(x)] + ) + label_cattr.register_structure_hook( + Track, lambda x, type: None if x is None else tracks[int(x)] + ) + + labels = label_cattr.structure(dicts["labels"], List[LabeledFrame]) + else: + labels = [] + + return Labels( + labeled_frames=labels, + videos=videos, + skeletons=skeletons, + nodes=nodes, + suggestions=suggestions, + negative_anchors=negative_anchors, + tracks=tracks, + ) diff --git a/sleap/io/format/leap_matlab.py b/sleap/io/format/leap_matlab.py new file mode 100644 index 000000000..ece6e9a17 --- /dev/null +++ b/sleap/io/format/leap_matlab.py @@ -0,0 +1,133 @@ +import os + +import scipy.io as sio + +from sleap import Labels, Video, Skeleton +from sleap.gui.missingfiles import MissingFilesDialog +from sleap.instance import ( + Instance, + LabeledFrame, + Point, +) +from .adaptor import Adaptor, SleapObjectType +from .filehandle import FileHandle + + +class LabelsLeapMatlabAdaptor(Adaptor): + @property + def handles(self): + return SleapObjectType.labels + + @property + def default_ext(self): + return "mat" + + @property + def all_exts(self): + return ["mat"] + + @property + def name(self): + return "LEAP Matlab dataset" + + def can_read_file(self, file: FileHandle): + if not self.does_match_ext(file.filename): + return False + # if "boxPath" not in file.file: + # return False + return True + + def can_write_filename(self, filename: str): + return self.does_match_ext(filename) + + def does_read(self) -> bool: + return True + + def does_write(self) -> bool: + return False + + @classmethod + def read( + cls, file: FileHandle, gui: bool = True, *args, **kwargs, + ): + filename = file.filename + + mat_contents = sio.loadmat(filename) + + box_path = cls._unwrap_mat_scalar(mat_contents["boxPath"]) + + # If the video file isn't found, try in the same dir as the mat file + if not os.path.exists(box_path): + file_dir = os.path.dirname(filename) + box_path_name = box_path.split("\\")[-1] # assume windows path + box_path = os.path.join(file_dir, box_path_name) + + if not os.path.exists(box_path): + if gui: + video_paths = [box_path] + missing = [True] + okay = MissingFilesDialog(video_paths, missing).exec_() + + if not okay or missing[0]: + return + + box_path = video_paths[0] + else: + # Ignore missing videos if not loading from gui + box_path = "" + + if os.path.exists(box_path): + vid = Video.from_hdf5( + dataset="box", filename=box_path, input_format="channels_first" + ) + else: + vid = None + + nodes_ = mat_contents["skeleton"]["nodes"] + edges_ = mat_contents["skeleton"]["edges"] + points_ = mat_contents["positions"] + + edges_ = edges_ - 1 # convert matlab 1-indexing to python 0-indexing + + nodes = cls._unwrap_mat_array(nodes_) + edges = cls._unwrap_mat_array(edges_) + + nodes = list(map(str, nodes)) # convert np._str to str + + sk = Skeleton(name=filename) + sk.add_nodes(nodes) + for edge in edges: + sk.add_edge(source=nodes[edge[0]], destination=nodes[edge[1]]) + + labeled_frames = [] + node_count, _, frame_count = points_.shape + + for i in range(frame_count): + new_inst = Instance(skeleton=sk) + for node_idx, node in enumerate(nodes): + x = points_[node_idx][0][i] + y = points_[node_idx][1][i] + new_inst[node] = Point(x, y) + if len(new_inst.points): + new_frame = LabeledFrame(video=vid, frame_idx=i) + new_frame.instances = (new_inst,) + labeled_frames.append(new_frame) + + labels = Labels(labeled_frames=labeled_frames, videos=[vid], skeletons=[sk]) + + return labels + + @classmethod + def _unwrap_mat_scalar(cls, a): + """Extract single value from nested MATLAB file data.""" + if a.shape == (1,): + return cls._unwrap_mat_scalar(a[0]) + else: + return a + + @classmethod + def _unwrap_mat_array(cls, a): + """Extract list of values from nested MATLAB file data.""" + b = a[0][0] + c = [cls._unwrap_mat_scalar(x) for x in b] + return c diff --git a/sleap/io/format/text.py b/sleap/io/format/text.py new file mode 100644 index 000000000..f72ab4773 --- /dev/null +++ b/sleap/io/format/text.py @@ -0,0 +1,39 @@ +from .adaptor import Adaptor, SleapObjectType +from .filehandle import FileHandle + + +class TextAdaptor(Adaptor): + @property + def handles(self): + return SleapObjectType.misc + + @property + def default_ext(self): + return "txt" + + @property + def all_exts(self): + return ["txt", "log"] + + @property + def name(self): + return "Text file" + + def can_read_file(self, file: FileHandle): + return True # FIXME + + def can_write_filename(self, filename: str) -> bool: + return True + + def does_read(self) -> bool: + return True + + def does_write(self) -> bool: + return True + + def read(self, file: FileHandle, *args, **kwargs): + return file.text + + def write(self, filename: str, source_object: str): + with open(filename, "w") as f: + f.write(source_object) diff --git a/tests/io/test_formats.py b/tests/io/test_formats.py new file mode 100644 index 000000000..72e04e391 --- /dev/null +++ b/tests/io/test_formats.py @@ -0,0 +1,108 @@ +from sleap.io.format import dispatch, adaptor, text, genericjson +import pytest +import os + + +def test_text_adaptor(tmpdir): + disp = dispatch.Dispatch() + disp.register(text.TextAdaptor()) + + filename = os.path.join(tmpdir, "textfile.txt") + some_text = "some text to save in a file" + + disp.write(filename, some_text) + + read_text = disp.read(filename) + + assert some_text == read_text + + +def test_json_adaptor(tmpdir): + disp = dispatch.Dispatch() + disp.register(genericjson.GenericJsonAdaptor()) + + filename = os.path.join(tmpdir, "jsonfile.json") + d = dict(foo=123, bar="zip") + + disp.write(filename, d) + + read_dict = disp.read(filename) + + assert d == read_dict + + assert disp.open(filename).is_json + + +def test_invalid_json(tmpdir): + # Write an "invalid" json file + filename = os.path.join(tmpdir, "textfile.json") + some_text = "some text to save in a file" + with open(filename, "w") as f: + f.write(some_text) + + disp = dispatch.Dispatch() + disp.register(genericjson.GenericJsonAdaptor()) + + assert not disp.open(filename).is_json + + with pytest.raises(TypeError): + disp.read(filename) + + +def test_no_matching_adaptor(): + disp = dispatch.Dispatch() + + with pytest.raises(TypeError): + disp.write("foo.txt", "foo") + + err = disp.write_safely("foo.txt", "foo") + + assert err is not None + + +def test_failed_read(): + disp = dispatch.Dispatch() + disp.register(text.TextAdaptor()) + + # Attempt to read hdf5 using text adaptor + hdf5_filename = "tests/data/hdf5_format_v1/training.scale=0.50,sigma=10.h5" + x, err = disp.read_safely(hdf5_filename) + + # There should be an error + assert err is not None + + +def test_missing_file(): + disp = dispatch.Dispatch() + disp.register(text.TextAdaptor()) + + with pytest.raises(FileNotFoundError): + disp.read("missing_file.txt") + + +def test_hdf5_v1(tmpdir): + filename = "tests/data/hdf5_format_v1/centered_pair_predictions.h5" + disp = dispatch.Dispatch.make_dispatcher(adaptor.SleapObjectType.labels) + + # Make sure reading works + x = disp.read(filename) + assert len(x.labeled_frames) == 1100 + + # Make sure writing works + filename = os.path.join(tmpdir, "test.h5") + disp.write(filename, x) + + # Make sure we can read the file we just wrote + y = disp.read(filename) + assert len(y.labeled_frames) == 1100 + + +def test_json_v1(tmpdir, centered_pair_labels): + filename = os.path.join(tmpdir, "test.json") + disp = dispatch.Dispatch.make_dispatcher(adaptor.SleapObjectType.labels) + + disp.write(filename, centered_pair_labels) + + # Make sure we can read the file we just wrote + y = disp.read(filename) + assert len(y.labeled_frames) == len(centered_pair_labels.labeled_frames) From 383a845782a9b4af35c9987667a85cdf3b33aae0 Mon Sep 17 00:00:00 2001 From: Nat Tabris Date: Thu, 16 Jan 2020 16:36:57 -0500 Subject: [PATCH 03/11] Update frame load request delay from recent avg. --- sleap/gui/video.py | 37 ++++++++++++++++++++++++++++++------- 1 file changed, 30 insertions(+), 7 deletions(-) diff --git a/sleap/gui/video.py b/sleap/gui/video.py index e5196d7bb..6c4c031a6 100644 --- a/sleap/gui/video.py +++ b/sleap/gui/video.py @@ -11,8 +11,17 @@ >>> vp.addInstance(instance=my_instance, color=(r, g, b)) """ +from collections import deque -FORCE_REQUEST_AFTER_TIME_IN_SECONDS = 1 + +# FORCE_REQUESTS controls whether we emit a signal to process frame requests +# if we haven't processed any for a certain amount of time. +# Usually the processing gets triggered by a timer but if the user is (e.g.) +# dragging the mouse, the timer doesn't trigger. +# FORCE_REQUESTS lets us update the frames in real time, assuming the load time +# is short enough to do that. + +FORCE_REQUESTS = True from PySide2 import QtWidgets, QtCore @@ -65,10 +74,14 @@ class LoadImageWorker(QtCore.QObject): load_queue = [] video = None _last_process_time = 0 + _force_request_wait_time = 1 + _recent_load_times = None def __init__(self, *args, **kwargs): super(LoadImageWorker, self).__init__(*args, **kwargs) + self._recent_load_times = deque(maxlen=5) + # Connect signal to processing function so that we can add processing # event to event queue from the request handler. self.process.connect(self.doProcessing) @@ -87,12 +100,21 @@ def doProcessing(self): frame_idx = self.load_queue[-1] self.load_queue = [] - # print(f"\t{frame_idx} starting to load") # DEBUG - try: + + t0 = time.time() + # Get image data frame = self.video.get_frame(frame_idx) - except: + + self._recent_load_times.append(time.time() - t0) + + # Set the time to wait before forcing a load request to a little + # longer than the average time it recently took to load a frame + avg_load_time = sum(self._recent_load_times) / len(self._recent_load_times) + self._force_request_wait_time = avg_load_time * 1.2 + + except Exception as e: frame = None if frame is not None: @@ -115,9 +137,10 @@ def request(self, frame_idx): since_last = time.time() - self._last_process_time - if since_last > FORCE_REQUEST_AFTER_TIME_IN_SECONDS: - self._last_process_time = time.time() - self.process.emit() + if FORCE_REQUESTS: + if since_last > self._force_request_wait_time: + self._last_process_time = time.time() + self.process.emit() class QtVideoPlayer(QWidget): From 0265f353b0641bb4488882b08cf8c855d08a0371 Mon Sep 17 00:00:00 2001 From: Nat Tabris Date: Thu, 16 Jan 2020 16:53:34 -0500 Subject: [PATCH 04/11] Bug fix, zoom to fit wasn't running for new frames --- sleap/gui/app.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/sleap/gui/app.py b/sleap/gui/app.py index 25a3fca72..8f6509056 100644 --- a/sleap/gui/app.py +++ b/sleap/gui/app.py @@ -980,9 +980,6 @@ def plotFrame(self, *args, **kwargs): self.player.plot() - if self.state["fit"]: - self.player.zoomToFit() - def _after_plot_update(self, player, frame_idx, selected_inst): """Called each time a new frame is drawn.""" @@ -999,6 +996,9 @@ def _after_plot_update(self, player, frame_idx, selected_inst): if selected_inst is not None: player.view.selectInstance(selected_inst) + if self.state["fit"]: + player.zoomToFit() + # Update related displays self.updateStatusMessage() self.on_data_update([UpdateTopic.on_frame]) From 015afcff9eaf6425135a09217b83e997e9d7ac19 Mon Sep 17 00:00:00 2001 From: Nat Tabris Date: Fri, 17 Jan 2020 05:49:51 -0500 Subject: [PATCH 05/11] Add h5 file used in adaptor tests. --- .../centered_pair_predictions.h5 | Bin 0 -> 1600656 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 tests/data/hdf5_format_v1/centered_pair_predictions.h5 diff --git a/tests/data/hdf5_format_v1/centered_pair_predictions.h5 b/tests/data/hdf5_format_v1/centered_pair_predictions.h5 new file mode 100644 index 0000000000000000000000000000000000000000..bf92b4592cabf3bce63092488f385db95b94fd6e GIT binary patch literal 1600656 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®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⁡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

l>4V) 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

a~iu5Ml+z({+k;)i(-c?al4A6_x6^pBM~AZ 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 z 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 !ZpZ?1nK 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 Dn+|%` literal 0 HcmV?d00001 From 6a69f20a9fc802f20d715c7ed25e98ccacbbe453 Mon Sep 17 00:00:00 2001 From: Nat Tabris Date: Fri, 17 Jan 2020 09:29:19 -0500 Subject: [PATCH 06/11] Slightly thicker track lines (1.5 -> 2) --- sleap/gui/slider.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sleap/gui/slider.py b/sleap/gui/slider.py index 33ce33c71..18909630a 100644 --- a/sleap/gui/slider.py +++ b/sleap/gui/slider.py @@ -106,7 +106,7 @@ def visual_width(self): def get_height(self, container_height): if self.type == "track": - return 1.5 + return 2 height = container_height # if self.padded: height -= self.top_pad + self.bottom_pad From 9ed075a0925a2e62bbb0c00764f167e05eb62a42 Mon Sep 17 00:00:00 2001 From: Nat Tabris Date: Fri, 17 Jan 2020 09:30:04 -0500 Subject: [PATCH 07/11] Bug fix for changing track w/in selected range. --- sleap/gui/commands.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sleap/gui/commands.py b/sleap/gui/commands.py index d754513cd..45d5e0812 100644 --- a/sleap/gui/commands.py +++ b/sleap/gui/commands.py @@ -1453,7 +1453,7 @@ def do_action(context: CommandContext, params: dict): # Determine range that should be affected if context.state["has_frame_range"]: # If range is selected in seekbar, use that - frame_range = tuple(*context.state["frame_range"]) + frame_range = tuple(context.state["frame_range"]) else: # Otherwise, range is current to last frame frame_range = ( From 8c9074637e1d8e3a08a1c4f4a6bd99c315975773 Mon Sep 17 00:00:00 2001 From: Nat Tabris Date: Wed, 22 Jan 2020 13:27:44 -0500 Subject: [PATCH 08/11] Add "dummy" option to VideoLoader. Returns dummy frames if set; used when we don't need frame images in the prediction pipeline. --- sleap/nn/utils.py | 9 +++++++-- tests/nn/test_utils.py | 9 +++++++++ 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/sleap/nn/utils.py b/sleap/nn/utils.py index 39831f991..777a9bf07 100644 --- a/sleap/nn/utils.py +++ b/sleap/nn/utils.py @@ -309,6 +309,7 @@ class VideoLoader: dataset: str = None input_format: str = None grayscale: bool = False + dummy: bool = False chunk_size: int = 32 prefetch_chunks: int = 1 frame_inds: Optional[List[int]] = None @@ -367,8 +368,12 @@ def _load_video(self, filename) -> "Video": ) def load_frames(self, frame_inds): - local_vid = self._load_video(self.video.filename) - imgs = local_vid[np.array(frame_inds).astype("int64")] + if self.dummy: + dummy_shape = (len(frame_inds), *self._shape[1:]) + imgs = np.zeros(dummy_shape, dtype="int8") + else: + local_vid = self._load_video(self.video.filename) + imgs = local_vid[np.array(frame_inds).astype("int64")] return imgs def tf_load_frames(self, frame_inds): diff --git a/tests/nn/test_utils.py b/tests/nn/test_utils.py index 8701a77a5..488ae1da7 100644 --- a/tests/nn/test_utils.py +++ b/tests/nn/test_utils.py @@ -1,4 +1,5 @@ from sleap.nn.utils import VideoLoader +import numpy as np def test_grayscale_video(): @@ -7,3 +8,11 @@ def test_grayscale_video(): vid = VideoLoader(filename="tests/data/videos/small_robot.mp4", grayscale=True) assert vid.shape[-1] == 1 + + +def test_dummy_video(): + vid = VideoLoader(filename="tests/data/videos/small_robot.mp4", dummy=True) + + x = vid.load_frames([1, 3, 5]) + assert x.shape == (3, 320, 560, 3) + assert np.all(x == 0) From ec98962b2966580dd8175770aab5817d77578ae3 Mon Sep 17 00:00:00 2001 From: Nat Tabris Date: Wed, 22 Jan 2020 13:40:47 -0500 Subject: [PATCH 09/11] Add tracking-only ui to sleap-track. If sleap-track is given labels file as data_path and tracking policy but no models, then it will run the tracker on the previously generated predictions. This is a better interface than having to call sleap.nn.tracking to retrack. Resolves issue #260. --- sleap/nn/inference.py | 129 ++++++++++++++++++++++++++++-------------- sleap/nn/predicted.py | 25 ++++++++ 2 files changed, 113 insertions(+), 41 deletions(-) create mode 100644 sleap/nn/predicted.py diff --git a/sleap/nn/inference.py b/sleap/nn/inference.py index 32d7e3d48..3e123267c 100644 --- a/sleap/nn/inference.py +++ b/sleap/nn/inference.py @@ -47,6 +47,7 @@ class Predictor: * "confmap": Instance of `peak_finding.ConfmapPeakFinder` * "paf": Instance of `paf_grouping.PAFGrouper` * "tracking": Instance of `tracking.Tracker` + * "previous_predictions": `predicted.PredictedInstancePredictor` Note: the pipeline will be determined by which policies are given. """ @@ -77,15 +78,27 @@ def predict( if self.has_grayscale_models: video_kwargs["grayscale"] = True + is_dummy_video = False + if "tracking" in self.policies and "previous_predictions" in self.policies: + if not self.policies["tracking"].uses_image: + # We're just running the tracker for previous predictions + # and this tracker doesn't use the images, so we'll load + # "dummy" images. + is_dummy_video = True + video_ds = utils.VideoLoader( - filename=video_filename, frame_inds=frames, **video_kwargs + filename=video_filename, + frame_inds=frames, + dummy=is_dummy_video, + **video_kwargs, ) predicted_frames = [] for chunk_ind, frame_inds, imgs in video_ds: + predicted_instances_chunk = self.predict_chunk( - imgs, chunk_ind, video_ds.chunk_size + imgs, chunk_ind, video_ds.chunk_size, frame_inds=frame_inds ) sample_inds = np.arange(len(imgs)) @@ -100,9 +113,12 @@ def predict( return predicted_frames - def predict_chunk(self, img_chunk, chunk_ind, chunk_size): + def predict_chunk(self, img_chunk, chunk_ind, chunk_size, frame_inds=None): """Runs the inference components of pipeline for a chunk.""" + if "previous_predictions" in self.policies: + return self.policies["previous_predictions"].get_chunk(frame_inds) + if "centroid" in self.policies: # Detect centroids and pull out region proposals. centroid_predictor = self.policies["centroid"] @@ -306,7 +322,6 @@ def frame_list(frame_str: str): action="append", help="Path to saved model (confmaps, pafs, ...) JSON. " "Multiple models can be specified, each preceded by --model.", - required=True, ) parser.add_argument( @@ -350,10 +365,14 @@ def frame_list(frame_str: str): @classmethod def cli_args_to_policies(cls, args): policy_args = util.make_scoped_dictionary(vars(args), exclude_nones=True) - return cls.from_paths_and_policy_args(args.models, policy_args) + return cls.from_paths_and_policy_args( + model_paths=args.models, policy_args=policy_args, args=args, + ) @classmethod - def from_paths_and_policy_args(cls, model_paths: List[str], policy_args: dict): + def from_paths_and_policy_args( + cls, model_paths: List[str], policy_args: dict, args: dict + ): policy_args["region"]["merge_overlapping"] = True inferred_box_length = 160 # default if not set by user or inferrable @@ -369,35 +388,55 @@ def from_paths_and_policy_args(cls, model_paths: List[str], policy_args: dict): # Load the information for these models loaded_models = dict() - for model_path in model_paths: - training_job = job.TrainingJob.load_json(model_path) - inference_model = model.InferenceModel.from_training_job(training_job) - policy_key = model_type_policy_key_map[training_job.model.output_type] - loaded_models[policy_key] = dict( - job=training_job, inference_model=inference_model - ) + if model_paths: + for model_path in model_paths: + training_job = job.TrainingJob.load_json(model_path) + inference_model = model.InferenceModel.from_training_job(training_job) + policy_key = model_type_policy_key_map[training_job.model.output_type] + + loaded_models[policy_key] = dict( + job=training_job, inference_model=inference_model + ) - # Add policy classes which depend on models - for policy_key, policy_model in loaded_models.items(): - training_job = policy_model["job"] - inference_model = policy_model["inference_model"] + # Add policy classes which depend on models + for policy_key, policy_model in loaded_models.items(): + training_job = policy_model["job"] + inference_model = policy_model["inference_model"] - if policy_key == "confmap" and "paf" not in loaded_models.keys(): - # Use topdown class when we have confmaps and not pafs - policy_class = POLICY_CLASSES["topdown"] - else: - policy_class = POLICY_CLASSES[policy_key] + if policy_key == "confmap" and "paf" not in loaded_models.keys(): + # Use topdown class when we have confmaps and not pafs + policy_class = POLICY_CLASSES["topdown"] + else: + policy_class = POLICY_CLASSES[policy_key] - policy_object = policy_class( - inference_model=inference_model, **policy_args[policy_key] - ) + policy_object = policy_class( + inference_model=inference_model, **policy_args[policy_key] + ) - policies[policy_key] = policy_object + policies[policy_key] = policy_object - if training_job.trainer.bounding_box_size is not None: - if training_job.trainer.bounding_box_size > 0: - inferred_box_length = training_job.trainer.bounding_box_size + if training_job.trainer.bounding_box_size is not None: + if training_job.trainer.bounding_box_size > 0: + inferred_box_length = training_job.trainer.bounding_box_size + + # No models specified so see if we're using previous predictions + else: + try: + previous_labels = Labels.load_file( + args.data_path, video_callback=[os.path.dirname(args.data_path)], + ) + from .predicted import PredictedInstancePredictor + + policies["previous_predictions"] = PredictedInstancePredictor( + labels=previous_labels, + ) + print(f"Using previous predictions from {args.data_path}") + args.data_path = previous_labels.videos[0].filename + print(f"Setting video to {args.data_path}") + except Exception: + # We weren't able to read file as Labels object + pass if "topdown" in policies: policy_args["region"]["merge_overlapping"] = False @@ -492,22 +531,30 @@ def predict_subprocess( def check_valid_policies(cls, policies: dict) -> bool: has_topdown = "topdown" in policies - + has_previous = "previous_predictions" in policies + has_tracker = "tracking" in policies non_topdowns = [key for key in policies.keys() if key in ("confmap", "paf")] - if has_topdown and non_topdowns: - raise ValueError( - f"Cannot combine topdown model with non-topdown model" - f" {non_topdowns}." - ) + if has_previous: + if not has_tracker: + raise ValueError( + f"No tracker specified for running on previous predictions" + ) - if non_topdowns and "confmap" not in non_topdowns: - raise ValueError("Must have CONFIDENCE_MAP model.") + else: + if has_topdown and non_topdowns: + raise ValueError( + f"Cannot combine topdown model with non-topdown model" + f" {non_topdowns}." + ) - if not has_topdown and not non_topdowns: - raise ValueError( - f"Must have either TOPDOWN or CONFIDENCE_MAP/PART_AFFINITY_FIELD models." - ) + if non_topdowns and "confmap" not in non_topdowns: + raise ValueError("Must have CONFIDENCE_MAP model.") + + if not has_topdown and not non_topdowns: + raise ValueError( + f"Must have either TOPDOWN or CONFIDENCE_MAP/PART_AFFINITY_FIELD models." + ) return True diff --git a/sleap/nn/predicted.py b/sleap/nn/predicted.py new file mode 100644 index 000000000..55a113cbe --- /dev/null +++ b/sleap/nn/predicted.py @@ -0,0 +1,25 @@ +import attr + + +@attr.s(auto_attribs=True) +class PredictedInstancePredictor: + """ + Returns chunk of previously generated predictions in format of Predictor. + """ + + labels: "Labels" + video_idx: int = 0 + + def get_chunk(self, frame_inds): + video = self.labels.videos[self.video_idx] + + # Return dict keyed to sample index (i.e., offset in frame_inds), value + # is the list of instances for that frame. + return { + i: [ + inst + for lf in self.labels.find(video=video, frame_idx=int(frame_idx)) + for inst in lf.instances + ] + for i, frame_idx in enumerate(frame_inds) + } From cbec811fd271f9f19564302fd56fdf9d89766341 Mon Sep 17 00:00:00 2001 From: Nat Tabris Date: Thu, 23 Jan 2020 08:39:17 -0500 Subject: [PATCH 10/11] Add predicted_instances access to Labels class. --- sleap/io/dataset.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/sleap/io/dataset.py b/sleap/io/dataset.py index 23346361e..b6e5b31ab 100644 --- a/sleap/io/dataset.py +++ b/sleap/io/dataset.py @@ -26,6 +26,9 @@ LabeledFrame, Track, make_instance_cattr, + PointArray, + PredictedPointArray, + PredictedInstance, ) from sleap.io import pathutils @@ -507,6 +510,11 @@ def user_instances(self): """Returns list of all user (non-predicted) instances.""" return [inst for inst in self.all_instances if type(inst) == Instance] + @property + def predicted_instances(self): + """Returns list of all user (non-predicted) instances.""" + return [inst for inst in self.all_instances if type(inst) == PredictedInstance] + def instances(self, video: Video = None, skeleton: Skeleton = None): """ Iterate over instances in the labels, optionally with filters. @@ -1156,6 +1164,7 @@ def save_file( Returns: None. """ + # Make sure that all directories for path exist os.makedirs(os.path.dirname(filename), exist_ok=True) From c656e0f488f0027f7a4ef36b8e37fe5b7e50ad13 Mon Sep 17 00:00:00 2001 From: Nat Tabris Date: Thu, 23 Jan 2020 13:12:22 -0500 Subject: [PATCH 11/11] Add back abspath() lost in merge. --- sleap/io/dataset.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sleap/io/dataset.py b/sleap/io/dataset.py index b99e80d93..6bd600791 100644 --- a/sleap/io/dataset.py +++ b/sleap/io/dataset.py @@ -1167,6 +1167,8 @@ def save_file( Returns: None. """ + # Convert to full (absolute) path + filename = os.path.abspath(filename) # Make sure that all directories for path exist os.makedirs(os.path.dirname(filename), exist_ok=True)