junjiehe96 / FastInst

[CVPR2023] FastInst: A Simple Query-Based Model for Real-Time Instance Segmentation
MIT License
175 stars 16 forks source link

demo.py可视化,阈值没有发挥作用,掩码重叠 #45

Open jiajia131 opened 4 months ago

jiajia131 commented 4 months ago

./demo/demo.py --config-file .n/configs/coco/instance-segmentation/fastinst_R50-vd-dcn_ppm-fpn_x3_640.yaml --input /hy-tmp/datasets/coco/val2017/000000001818.jpg --output ./可视化结果 --confidence-threshold 0.5 --opts MODEL.WEIGHTS ./fastinst_R50-vd-dcn_ppm-fpn_x3_640_40.1.pth 000000001818

jiajia131 commented 4 months ago

000000565853 这样用demo.py跑出来和您论文里的图不一样。

junjiehe96 commented 4 months ago

你好,阈值确实没有被用到,可以将predictor.py改成

all_instances = predictions["instances"].to(self.cpu_device)
instances = Instances(all_instances.image_size)
thresholded_idx = np.array(all_instances.scores) >= confidence_threshold
instances.scores = all_instances.scores[thresholded_idx]
instances.pred_classes = all_instances.pred_classes[thresholded_idx]
instances.pred_masks = all_instances.pred_masks[thresholded_idx]
instances.pred_boxes = all_instances.pred_boxes[thresholded_idx]
niuma345 commented 3 months ago

你好,阈值确实没有被用到,可以将 predictor.py 改成

all_instances = predictions["instances"].to(self.cpu_device)
instances = Instances(all_instances.image_size)
thresholded_idx = np.array(all_instances.scores) >= confidence_threshold
instances.scores = all_instances.scores[thresholded_idx]
instances.pred_classes = all_instances.pred_classes[thresholded_idx]
instances.pred_masks = all_instances.pred_masks[thresholded_idx]
instances.pred_boxes = all_instances.pred_boxes[thresholded_idx]

请问这个怎么改呢,predictor.py 没有找到这个部分

jiajia131 commented 3 months ago

你好,阈值确实没有被用到,可以将 predictor.py 改成

all_instances = predictions["instances"].to(self.cpu_device)
instances = Instances(all_instances.image_size)
thresholded_idx = np.array(all_instances.scores) >= confidence_threshold
instances.scores = all_instances.scores[thresholded_idx]
instances.pred_classes = all_instances.pred_classes[thresholded_idx]
instances.pred_masks = all_instances.pred_masks[thresholded_idx]
instances.pred_boxes = all_instances.pred_boxes[thresholded_idx]

请问这个怎么改呢,predictor.py 没有找到这个部分

在第65行改成

if "instances" in predictions:
  # instances = predictions["instances"].to(self.cpu_device)

  #  阈值 -----------------------------------
  all_instances = predictions["instances"].to(self.cpu_device)
  instances = Instances(all_instances.image_size)
  thresholded_idx = np.array(all_instances.scores) >= self.confidence_threshold
  instances.scores = all_instances.scores[thresholded_idx]
  instances.pred_classes = all_instances.pred_classes[thresholded_idx]
  instances.pred_masks = all_instances.pred_masks[thresholded_idx]
  instances.pred_boxes = all_instances.pred_boxes[thresholded_idx]
  #   -----------------------------------

  vis_output = visualizer.draw_instance_predictions(predictions=instances)

然后还需要设置一下传入一个self.confidence_threshold

niuma345 commented 3 months ago

你好,阈值确实没有被用到,可以将 predictor.py 改成

all_instances = predictions["instances"].to(self.cpu_device)
instances = Instances(all_instances.image_size)
thresholded_idx = np.array(all_instances.scores) >= confidence_threshold
instances.scores = all_instances.scores[thresholded_idx]
instances.pred_classes = all_instances.pred_classes[thresholded_idx]
instances.pred_masks = all_instances.pred_masks[thresholded_idx]
instances.pred_boxes = all_instances.pred_boxes[thresholded_idx]

请问这个怎么改呢,predictor.py 没有找到这个部分

在第65行改成

if "instances" in predictions:
  # instances = predictions["instances"].to(self.cpu_device)

  #  阈值 -----------------------------------
  all_instances = predictions["instances"].to(self.cpu_device)
  instances = Instances(all_instances.image_size)
  thresholded_idx = np.array(all_instances.scores) >= self.confidence_threshold
  instances.scores = all_instances.scores[thresholded_idx]
  instances.pred_classes = all_instances.pred_classes[thresholded_idx]
  instances.pred_masks = all_instances.pred_masks[thresholded_idx]
  instances.pred_boxes = all_instances.pred_boxes[thresholded_idx]
  #   -----------------------------------

  vis_output = visualizer.draw_instance_predictions(predictions=instances)

然后还需要设置一下传入一个self.confidence_threshold

好的谢谢,我发现这个参数传不进去,直接在代码里给写死了哈哈哈哈

jiajia131 commented 3 months ago

你好,阈值确实没有被用到,可以将 predictor.py 改成

all_instances = predictions["instances"].to(self.cpu_device)
instances = Instances(all_instances.image_size)
thresholded_idx = np.array(all_instances.scores) >= confidence_threshold
instances.scores = all_instances.scores[thresholded_idx]
instances.pred_classes = all_instances.pred_classes[thresholded_idx]
instances.pred_masks = all_instances.pred_masks[thresholded_idx]
instances.pred_boxes = all_instances.pred_boxes[thresholded_idx]

请问这个怎么改呢,predictor.py 没有找到这个部分

在第65行改成

if "instances" in predictions:
  # instances = predictions["instances"].to(self.cpu_device)

  #  阈值 -----------------------------------
  all_instances = predictions["instances"].to(self.cpu_device)
  instances = Instances(all_instances.image_size)
  thresholded_idx = np.array(all_instances.scores) >= self.confidence_threshold
  instances.scores = all_instances.scores[thresholded_idx]
  instances.pred_classes = all_instances.pred_classes[thresholded_idx]
  instances.pred_masks = all_instances.pred_masks[thresholded_idx]
  instances.pred_boxes = all_instances.pred_boxes[thresholded_idx]
  #   -----------------------------------

  vis_output = visualizer.draw_instance_predictions(predictions=instances)

然后还需要设置一下传入一个self.confidence_threshold

好的谢谢,我发现这个参数传不进去,直接在代码里给写死了哈哈哈哈 demo.zip

niuma345 commented 3 months ago

你好,阈值确实没有被用到,可以将 predictor.py 改成

all_instances = predictions["instances"].to(self.cpu_device)
instances = Instances(all_instances.image_size)
thresholded_idx = np.array(all_instances.scores) >= confidence_threshold
instances.scores = all_instances.scores[thresholded_idx]
instances.pred_classes = all_instances.pred_classes[thresholded_idx]
instances.pred_masks = all_instances.pred_masks[thresholded_idx]
instances.pred_boxes = all_instances.pred_boxes[thresholded_idx]

请问这个怎么改呢,predictor.py 没有找到这个部分

在第65行改成

if "instances" in predictions:
  # instances = predictions["instances"].to(self.cpu_device)

  #  阈值 -----------------------------------
  all_instances = predictions["instances"].to(self.cpu_device)
  instances = Instances(all_instances.image_size)
  thresholded_idx = np.array(all_instances.scores) >= self.confidence_threshold
  instances.scores = all_instances.scores[thresholded_idx]
  instances.pred_classes = all_instances.pred_classes[thresholded_idx]
  instances.pred_masks = all_instances.pred_masks[thresholded_idx]
  instances.pred_boxes = all_instances.pred_boxes[thresholded_idx]
  #   -----------------------------------

  vis_output = visualizer.draw_instance_predictions(predictions=instances)

然后还需要设置一下传入一个self.confidence_threshold

好的谢谢,我发现这个参数传不进去,直接在代码里给写死了哈哈哈哈 demo.zip

你好,阈值确实没有被用到,可以将 predictor.py 改成

all_instances = predictions["instances"].to(self.cpu_device)
instances = Instances(all_instances.image_size)
thresholded_idx = np.array(all_instances.scores) >= confidence_threshold
instances.scores = all_instances.scores[thresholded_idx]
instances.pred_classes = all_instances.pred_classes[thresholded_idx]
instances.pred_masks = all_instances.pred_masks[thresholded_idx]
instances.pred_boxes = all_instances.pred_boxes[thresholded_idx]

请问这个怎么改呢,predictor.py 没有找到这个部分

在第65行改成

if "instances" in predictions:
  # instances = predictions["instances"].to(self.cpu_device)

  #  阈值 -----------------------------------
  all_instances = predictions["instances"].to(self.cpu_device)
  instances = Instances(all_instances.image_size)
  thresholded_idx = np.array(all_instances.scores) >= self.confidence_threshold
  instances.scores = all_instances.scores[thresholded_idx]
  instances.pred_classes = all_instances.pred_classes[thresholded_idx]
  instances.pred_masks = all_instances.pred_masks[thresholded_idx]
  instances.pred_boxes = all_instances.pred_boxes[thresholded_idx]
  #   -----------------------------------

  vis_output = visualizer.draw_instance_predictions(predictions=instances)

然后还需要设置一下传入一个self.confidence_threshold

好的谢谢,我发现这个参数传不进去,直接在代码里给写死了哈哈哈哈 demo.zip

好的感谢

niuma345 commented 3 months ago

你好,阈值确实没有被用到,可以将 predictor.py 改成

all_instances = predictions["instances"].to(self.cpu_device)
instances = Instances(all_instances.image_size)
thresholded_idx = np.array(all_instances.scores) >= confidence_threshold
instances.scores = all_instances.scores[thresholded_idx]
instances.pred_classes = all_instances.pred_classes[thresholded_idx]
instances.pred_masks = all_instances.pred_masks[thresholded_idx]
instances.pred_boxes = all_instances.pred_boxes[thresholded_idx]

请问这个怎么改呢,predictor.py 没有找到这个部分

在第65行改成

if "instances" in predictions:
  # instances = predictions["instances"].to(self.cpu_device)

  #  阈值 -----------------------------------
  all_instances = predictions["instances"].to(self.cpu_device)
  instances = Instances(all_instances.image_size)
  thresholded_idx = np.array(all_instances.scores) >= self.confidence_threshold
  instances.scores = all_instances.scores[thresholded_idx]
  instances.pred_classes = all_instances.pred_classes[thresholded_idx]
  instances.pred_masks = all_instances.pred_masks[thresholded_idx]
  instances.pred_boxes = all_instances.pred_boxes[thresholded_idx]
  #   -----------------------------------

  vis_output = visualizer.draw_instance_predictions(predictions=instances)

然后还需要设置一下传入一个self.confidence_threshold

好的谢谢,我发现这个参数传不进去,直接在代码里给写死了哈哈哈哈 demo.zip

你好,阈值确实没有被用到,可以将 predictor.py 改成

all_instances = predictions["instances"].to(self.cpu_device)
instances = Instances(all_instances.image_size)
thresholded_idx = np.array(all_instances.scores) >= confidence_threshold
instances.scores = all_instances.scores[thresholded_idx]
instances.pred_classes = all_instances.pred_classes[thresholded_idx]
instances.pred_masks = all_instances.pred_masks[thresholded_idx]
instances.pred_boxes = all_instances.pred_boxes[thresholded_idx]

请问这个怎么改呢,predictor.py 没有找到这个部分

在第65行改成

if "instances" in predictions:
  # instances = predictions["instances"].to(self.cpu_device)

  #  阈值 -----------------------------------
  all_instances = predictions["instances"].to(self.cpu_device)
  instances = Instances(all_instances.image_size)
  thresholded_idx = np.array(all_instances.scores) >= self.confidence_threshold
  instances.scores = all_instances.scores[thresholded_idx]
  instances.pred_classes = all_instances.pred_classes[thresholded_idx]
  instances.pred_masks = all_instances.pred_masks[thresholded_idx]
  instances.pred_boxes = all_instances.pred_boxes[thresholded_idx]
  #   -----------------------------------

  vis_output = visualizer.draw_instance_predictions(predictions=instances)

然后还需要设置一下传入一个self.confidence_threshold

好的谢谢,我发现这个参数传不进去,直接在代码里给写死了哈哈哈哈 demo.zip

好的感谢

niuma345 commented 3 months ago

你好,阈值确实没有被用到,可以将 predictor.py 改成

all_instances = predictions["instances"].to(self.cpu_device)
instances = Instances(all_instances.image_size)
thresholded_idx = np.array(all_instances.scores) >= confidence_threshold
instances.scores = all_instances.scores[thresholded_idx]
instances.pred_classes = all_instances.pred_classes[thresholded_idx]
instances.pred_masks = all_instances.pred_masks[thresholded_idx]
instances.pred_boxes = all_instances.pred_boxes[thresholded_idx]

请问这个怎么改呢,predictor.py 没有找到这个部分

在第65行改成

if "instances" in predictions:
  # instances = predictions["instances"].to(self.cpu_device)

  #  阈值 -----------------------------------
  all_instances = predictions["instances"].to(self.cpu_device)
  instances = Instances(all_instances.image_size)
  thresholded_idx = np.array(all_instances.scores) >= self.confidence_threshold
  instances.scores = all_instances.scores[thresholded_idx]
  instances.pred_classes = all_instances.pred_classes[thresholded_idx]
  instances.pred_masks = all_instances.pred_masks[thresholded_idx]
  instances.pred_boxes = all_instances.pred_boxes[thresholded_idx]
  #   -----------------------------------

  vis_output = visualizer.draw_instance_predictions(predictions=instances)

然后还需要设置一下传入一个self.confidence_threshold

好的谢谢,我发现这个参数传不进去,直接在代码里给写死了哈哈哈哈 demo.zip

您好,请问您是做的实例分割吗,我自己制作了一个coco格式的数据集,类别是1,我想用自己的数据集,但是不会注册coco数据集,可以求教一下您吗