in videoalignment/datasets.py [0:0]
def annotate_connected_components(self):
graph_matrix = (
np.ones((len(self.gt_all_videos), len(self.gt_all_videos))) * np.inf
)
for p in self.gt_all_overlapping_pairs:
graph_matrix[
self.gt_all_videos.index(p["videos"][0]),
self.gt_all_videos.index(p["videos"][1]),
] = 1
graph_matrix[
self.gt_all_videos.index(p["videos"][1]),
self.gt_all_videos.index(p["videos"][0]),
] = 1
graph = csgraph_from_dense(np.ma.masked_invalid(graph_matrix))
ncc, labels = connected_components(graph, directed=False)
for video_i, label in enumerate(labels):
self.gt_all_videos[video_i]["label"] = int(label)
for i in range(len(self.gt_all_overlapping_pairs)):
if (
self.gt_all_videos[video_i]
in self.gt_all_overlapping_pairs[i]["videos"]
):
self.gt_all_overlapping_pairs[i]["label"] = int(label)
return ncc