【问题标题】:How can I calculate Intersection Over Union in Detectron2?如何计算 Detectron2 中的交集?
【发布时间】:2021-01-30 16:25:45
【问题描述】:

我正在使用 Detectron2 进行对象检测。我已经注册了 pascalvoc 数据集并训练了一个检测模型。如何计算我的测试数据集的平均 IOU?我知道detection2有一个用于计算IOU的预定义函数,即detectron2.structures.pairwise_iou

我在 csv 文件中有测试图像的基本实况边界框。 csv 文件包含(文件名、宽度、高度、类、xmin、ymin、xmax、ymax)。如何解析 IOU 函数中的两个边界框并将其显示在 google colab 中。

这是我生成预测边界框的代码

from detectron2.utils.visualizer import ColorMode
import random

dataset_dicts = DatasetCatalog.get('/content/test')
for d in random.sample(dataset_dicts, 5):    
    im = cv2.imread(d["file_name"])
    outputs = predictor(im)
    v = Visualizer(im[:, :, ::-1], metadata=microcontroller_metadata, scale=0.8)
    v = v.draw_instance_predictions(outputs["instances"].to("cpu"))
    plt.figure(figsize = (14, 10))
    plt.imshow(cv2.cvtColor(v.get_image()[:, :, ::-1], cv2.COLOR_BGR2RGB))
    plt.show()

【问题讨论】:

    标签: python-3.x deep-learning computer-vision google-colaboratory detectron


    【解决方案1】:

    您可以通过

    访问边界框和类
    outputs["instances"].pred_boxes.tensor.cpu().numpy()
    outputs["instances"].pred_classes.cpu().numpy()
    

    现在你必须做什么:

    1. 根据图片进行推理
    2. 从 csv 文件中加载图片的基本事实
    3. 将推理的类别和边界框与地面实况 (= IoU) 进行比较

    【讨论】:

    • 你能告诉我如何解析这两个 numpy 数组,即。 detectron2.structures.pairwise_iou(boxes1:detectron2.structures.boxes.Boxes, box2:detectron2.structures.boxes.Boxes) → torch.Tensor 中的基本事实和预测器
    • 我真的不明白你的意思,但是:地面实况数据是如何存储在你的 csv 中的?您必须将 csv 中的正确图片与您推断的图片配对,然后将正确的类别 bbox 与基本事实 bbox 和类别配对
    【解决方案2】:

    你需要按照亚历山大所说的去做。 因此,假设对于给定的图像,您有地面实况框。这些可以表示为N,4 numpy 数组。我们称之为bboxes_gt。假设您的预测为您提供M 边界框。

    现在您可以将bboxes_gt 转换为Box oobject,然后使用structures.pairwise_iou() 以pariwise 方式计算所有IOU。这将为您提供一个包含所有这些 IOU 的 N,M 矩阵。它看起来像这样:

    bboxes_gt = structures.Boxes(torch.Tensor(bboxes_gt))
    bboxes_pred = outputs["instances"].pred_boxes
    IOUs = structures.pairwise_iou(bboxes_gt, bboxes_pred)
    

    【讨论】:

      猜你喜欢
      • 2020-12-04
      • 1970-01-01
      • 2012-02-11
      • 2012-11-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-26
      • 2021-12-22
      相关资源
      最近更新 更多