Skip to content

请问作者是否知道预测的图片效果,如何修改检测框的颜色。 #46

@lixinru77

Description

@lixinru77

在demo.py里面,跳转到predict.py的run_on images函数里面,应该是这个函数来生成检查框的:visualizer = Visualizer(image, self.metadata, instance_mode=self.instance_mode)。但是我尝试修改了:/home/anaconda3/envs/detr/lib/python3.9/site-packages/detectron2/utils/visualizer.py和/mnt/newmy/DPText-DETR/adet/utils/visualizer.py的color函数都无法改变预测的颜色。更难受的是我debug或者直接运行demo.py都无法得到预测的结果,只有通过终端才能实现预测的结果。

颜色visualizer.py函数:
def overlay_instances(self, ctrl_pnts, scores, alpha=0.4):
# colors = [(0,0,1), (0,1,0), (1,0,0), (1,1,0), (1,0,1), (0,1,1)]
color = (0, 1, 0)
for ctrl_pnt, score in zip(ctrl_pnts, scores):
polygon = self._ctrl_pnt_to_poly(ctrl_pnt)
# color = random.choice(colors)
self.draw_polygon(polygon, color, alpha=alpha)
# self.draw_circle(polygon[0], 'w', radius=3) # vis the start point
# self.draw_circle(polygon[0], 'g', radius=2)

            self.draw_circle(polygon[0], (1.0, 1.0, 1.0), radius=3)  # 白色
            self.draw_circle(polygon[0], color, radius=2)  # 绿色

            text = "score: {:.2f}".format(score)
            # self.draw_text(text, polygon[0], horizontal_alignment="left")
            # you can also visualize the predicted point drift between decoder layers.

预测的predict.py函数:
def run_on_image(self, image):

    if self.vis_text:
        visualizer = TextVisualizer(image, self.metadata, instance_mode=self.instance_mode, cfg=self.cfg)
    else:
        visualizer = Visualizer(image, self.metadata, instance_mode=self.instance_mode)

    if "bases" in predictions:
        self.vis_bases(predictions["bases"])
    if "panoptic_seg" in predictions:
        panoptic_seg, segments_info = predictions["panoptic_seg"]
        vis_output = visualizer.draw_panoptic_seg_predictions(
            panoptic_seg.to(self.cpu_device), segments_info
        )
    else:
        if "sem_seg" in predictions:
            vis_output = visualizer.draw_sem_seg(
                predictions["sem_seg"].argmax(dim=0).to(self.cpu_device))
        if "instances" in predictions:
            instances = predictions["instances"].to(self.cpu_device)
            vis_output = visualizer.draw_instance_predictions(predictions=instances)

    return predictions, vis_output

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions