Opencv 使用掩码作为输入进行跟踪
我目前正在使用一个基于CNN的对象检测模块,该模块为我提供对象,然后我使用OpenCV作为跟踪输入。到目前为止,对象检测模块都是生成矩形的,但是我想转换到一个分割模块,比如为每个对象输出遮罩和矩形。遮罩是对象更精确的表示形式。OpenCV中的所有跟踪器都以矩形作为输入。有没有办法使用遮罩而不是盒子来跟踪对象。如果有助于跟踪对象,我可以将遮罩转换为轮廓 活动轮廓可以使用轮廓作为输入进行跟踪Opencv 使用掩码作为输入进行跟踪,opencv,image-processing,machine-learning,opencv-python,Opencv,Image Processing,Machine Learning,Opencv Python,我目前正在使用一个基于CNN的对象检测模块,该模块为我提供对象,然后我使用OpenCV作为跟踪输入。到目前为止,对象检测模块都是生成矩形的,但是我想转换到一个分割模块,比如为每个对象输出遮罩和矩形。遮罩是对象更精确的表示形式。OpenCV中的所有跟踪器都以矩形作为输入。有没有办法使用遮罩而不是盒子来跟踪对象。如果有助于跟踪对象,我可以将遮罩转换为轮廓 活动轮廓可以使用轮廓作为输入进行跟踪 因此,您可以使用cnn模型中的轮廓初始化第一帧,在后续帧中,您不需要调用昂贵的forward,但可以基于此模
因此,您可以使用cnn模型中的轮廓初始化第一帧,在后续帧中,您不需要调用昂贵的forward,但可以基于此模型将轮廓更新为新的轮廓。抱歉,OpenCV中没有针对活动轮廓模型的内置开箱即用解决方案 该分割模型广泛应用于计算机视觉问题(由提出)中,是其他基于能量(如,或)的分割模型的起点 因此,尝试在OpenCV上执行活动轮廓分割,有几种解决方案,但我认为您必须了解,以便能够根据应用程序的上下文正确设置参数 这里有一个很好的实现(有点模糊) 以及其他实施,这可以帮助您在理论和实施之间建立联系:
考虑用你的结果为OpenCV做出贡献。afaik在OpenCV中跟踪时没有内置的使用掩码的方法,但是代码是开源的,所以你可以对其进行调整。@Mika但是大多数方法都以矩形作为输入,只以x、y和w、h作为输出。你能解释一下我需要更改哪些部分吗?不,y抱歉,您必须自己理解代码,这在很大程度上取决于特定的跟踪方法。例如:在其中一种跟踪机制中,级联分类器是动态训练的。您可能可以在创建训练数据时使用掩码将对象与背景分离,并引入额外的随机/di不同的背景使得训练更好,跟踪更稳健。