ignores = ignore_categories(train_data) ds = COCODoomDataset(JSON, ROOT, batch_size=1, ignored_class_ids=ignores) net = fcnn.build(ds.num_classes) net.load_weights("checkpoint_best.h5") vis = Visualizer(ds.num_classes) writer = imageio.get_writer("COCODoomOutput_{}FPS_LVL{}.mp4".format(FPS, LVL), fps=FPS) for i, (X, [y]) in enumerate(ds.stream(shuffle=False, level=LVL, sparse_y=False)): image_restored = np.clip(X[0] * 255 + 50, 0, 255).astype("uint8") pred = net.predict(X)[0] delta = sparse_categorical_crossentropy(pred, y, ds.num_classes) gt = vis.colorify_mask(y) dt = vis.colorify_mask(pred) gt = set_title(gt, "Label") overlayed = overlay(image_restored.copy(), dt) overlayed = set_title(overlayed, "Detection overlayed") delta = set_title((delta*255).astype("uint8"), "Detection error") image_restored = set_title(image_restored, "Image") top = np.concatenate([image_restored, gt], axis=1) bot = np.concatenate([overlayed, delta], axis=1) display = np.concatenate([top, bot], axis=0) display = cv2.resize(display, (0, 0), fx=1.5, fy=1.5, interpolation=cv2.INTER_CUBIC) writer.append_data(cv2.cvtColor(display, cv2.COLOR_BGR2RGB))