视觉显著对象跟踪与交通标志识别
1. 场景中原始对象的检测
在某种程度上,显著性图已经是原始对象的一种明确表示,因为它只包含图像中有趣的部分。为了获得原始对象图,只需对显著性图进行阈值处理。
1.1 阈值设置
阈值是需要考虑的唯一开放参数。如果阈值设置过低,会将很多区域标记为原始对象,包括一些可能不包含任何有趣内容的区域(误报);而阈值设置过高,则会忽略图像中大部分显著区域,可能导致没有检测到任何原始对象。原始光谱残差论文的作者选择将图像中显著性大于图像平均显著性三倍的区域标记为原始对象。我们为用户提供了两种选择:可以实现这个阈值,或者通过将输入标志use_otsu设置为true来使用大津阈值法。
1.2 代码实现
def get_proto_objects_map(self, use_otsu=True): # 检索当前帧的显著性图,并确保将其转换为 uint8 精度,以便传递给 cv2.threshold saliency = self.get_saliency_map() if use_otsu: _, img_objects = cv2.threshold(np.uint8(saliency*255), 0, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU) else: thresh = np.mean(saliency)*255 _, img_object