def test_labels_predicted_hdf5(multi_skel_vid_labels, tmpdir): labels = multi_skel_vid_labels filename = os.path.join(tmpdir, "test.h5") # Lets promote some of these Instances to predicted instances for label in labels: for i, instance in enumerate(label.instances): if i % 2 == 0: label.instances[i] = PredictedInstance.from_instance( instance, 0.3) # Lets also add some from_predicted values for label in labels: label.instances[1].from_predicted = label.instances[0] # Try adding a node to the skeleton labels.skeletons[0].add_node("new node") # Save and compare the results Labels.save_hdf5(filename=filename, labels=labels) loaded_labels = Labels.load_hdf5(filename=filename) _check_labels_match(labels, loaded_labels) # Try deleting nodes from the skeleton node = labels.skeletons[0].nodes[-1] labels.skeletons[0].delete_node(node) node = labels.skeletons[0].nodes[-1] labels.skeletons[0].delete_node(node) # Save and compare the results Labels.save_hdf5(filename=filename, labels=labels) loaded_labels = Labels.load_hdf5(filename=filename) _check_labels_match(labels, loaded_labels)
def test_labels_hdf5(multi_skel_vid_labels, tmpdir): labels = multi_skel_vid_labels filename = os.path.join(tmpdir, "test.h5") Labels.save_hdf5(filename=filename, labels=labels) loaded_labels = Labels.load_hdf5(filename=filename) _check_labels_match(labels, loaded_labels)
def test_save_labels_and_frames_hdf5(multi_skel_vid_labels, tmpdir): # Lets take a subset of the labels so this doesn't take too long labels = multi_skel_vid_labels labels.labeled_frames = labels.labeled_frames[5:30] filename = os.path.join(tmpdir, "test.h5") Labels.save_hdf5(filename=filename, labels=labels, save_frame_data=True) loaded_labels = Labels.load_hdf5(filename=filename) _check_labels_match(labels, loaded_labels) # Rename file (after closing videos) for vid in loaded_labels.videos: vid.close() filerename = os.path.join(tmpdir, "test_rename.h5") os.rename(filename, filerename) # Make sure we open can after rename loaded_labels = Labels.load_hdf5(filename=filerename)
def test_hdf5_from_predicted(multi_skel_vid_labels, tmpdir): labels = multi_skel_vid_labels filename = os.path.join(tmpdir, "test.h5") # Add some predicted instances to create from_predicted links for frame_num, frame in enumerate(labels): if frame_num % 20 == 0: frame.instances[ 0].from_predicted = PredictedInstance.from_instance( frame.instances[0], float(frame_num)) frame.instances.append(frame.instances[0].from_predicted) # Save and load, compare the results Labels.save_hdf5(filename=filename, labels=labels) loaded_labels = Labels.load_hdf5(filename=filename) for frame_num, frame in enumerate(loaded_labels): if frame_num % 20 == 0: assert frame.instances[0].from_predicted.score == float(frame_num)
def test_labels_append_hdf5(multi_skel_vid_labels, tmpdir): labels = multi_skel_vid_labels filename = os.path.join(tmpdir, "test.h5") # Save each frame of the Labels dataset one by one in append # mode for label in labels: # Just do the first 20 to speed things up if label.frame_idx > 20: break Labels.save_hdf5(filename=filename, labels=Labels([label]), append=True) # Now load the dataset and make sure we get the same thing we started # with. loaded_labels = Labels.load_hdf5(filename=filename) _check_labels_match(labels, loaded_labels)