-
Notifications
You must be signed in to change notification settings - Fork 27
请问作者是否知道预测的图片效果,如何修改检测框的颜色。 #46
Description
在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