Esempio n. 1
0
        img = cv2.imread(dic["file_name"], cv2.IMREAD_COLOR)[:, :, ::-1]
        basename = os.path.basename(dic["file_name"])

        vis = Visualizer(img, metadata)
        vis_pred = vis.draw_proposals_separately(
            proposal_by_image[dic["image_id"]], img.shape[:2],
            args.conf_threshold)

        predictions = create_instances(pred_by_image[dic["image_id"]],
                                       img.shape[:2])
        vis = Visualizer(img, metadata)
        pred = vis.draw_instance_predictions(predictions).get_image()
        vis_pred.append(pred)
        vis = Visualizer(img, metadata)
        gt = vis.draw_dataset_dict(dic).get_image()

        concat = vis.smart_concatenate(vis_pred, min_side=1960)
        vis = np.concatenate([pred, gt], axis=1)

        if args.show:
            webcv2.imshow(basename + ' - Press D for details', vis[:, :, ::-1])
            key = webcv2.waitKey()
            if key == 100:  # 'd'
                webcv2.imshow(basename, concat[:, :, ::-1])
                webcv2.waitKey()
        else:
            cv2.imwrite(os.path.join(args.output, basename), vis[:, :, ::-1])
            cv2.imwrite(
                os.path.join(args.output, basename) + '-proposals.jpg',
                concat[:, :, ::-1])
Esempio n. 2
0
        for range_name in ratios_ranges.keys():
            if not len(grouped_gt[range_name]) > 0:
                continue
            visualized = True

            vis = Visualizer(img, metadata, scale=scale)
            topk_boxes, topk_indices = vis.topk_iou_boxes(
                predictions.pred_boxes,
                Boxes([
                    BoxMode.convert(x["bbox"], BoxMode.XYWH_ABS,
                                    BoxMode.XYXY_ABS)
                    for x in grouped_gt[range_name]
                ]))
            topk_indices = topk_indices.reshape((-1, ))
            # Transform indices to list since shape 1 tensors will be regarded as scalars.
            vis.draw_dataset_dict({"annotations": grouped_gt[range_name]})
            vis_boxes = vis.draw_instance_predictions(
                predictions[topk_indices.tolist()])

            if args.show:
                webcv2.imshow(basename + "-boxes@" + range_name,
                              vis_boxes.get_image()[..., ::-1])
            else:
                save(vis_boxes.get_image()[..., ::-1], args.output, "boxes",
                     basename + "@%s.jpg" % range_name)

            vis_anchor = Visualizer(img, metadata)
            anchors = predictions.anchors.tensor[topk_indices]
            vis_anchor = vis_anchor.overlay_instances(
                boxes=anchors.reshape(-1, 4),
                labels=predictions.scores[topk_indices.reshape(-1).tolist()])