Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
jiajia131 opened this issue Apr 26, 2024 · 9 comments
Open

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

jiajia131 opened this issue Apr 26, 2024 · 9 comments

Comments

@jiajia131
Copy link

./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
Copy link
Author

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

@junjiehe96
Copy link
Owner

junjiehe96 commented Apr 26, 2024

你好,阈值确实没有被用到,可以将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
Copy link

你好,阈值确实没有被用到,可以将 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
Copy link
Author

jiajia131 commented May 16, 2024

你好,阈值确实没有被用到,可以将 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
Copy link

你好,阈值确实没有被用到,可以将 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
Copy link
Author

你好,阈值确实没有被用到,可以将 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
Copy link

你好,阈值确实没有被用到,可以将 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

好的感谢

1 similar comment
@niuma345
Copy link

你好,阈值确实没有被用到,可以将 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
Copy link

你好,阈值确实没有被用到,可以将 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数据集,可以求教一下您吗

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants