从来没有见过的新物体,它也能进行很好地分割。
这是DeepMind研究出的一种新的学习框架:目标发现和表示网络(Object discovery and representation networks,简称Odin)
以往的自我监督学习(SSL)方法能够很好地描述整个大的场景,但是很难区分出单个的物体。
现在,Odin方法做到了,并且是在没有任何监督的情况下做到的。
区分出图像中的单个物体可不是很容易的事,它是怎么做到的呢?
能够很好地区分出图像中的各个物体,主要归功于Odin学习框架的“自我循环”。
Odin学习了两组协同工作的网络,分别是目标发现网络和目标表示网络。
目标发现网络以图像的一个裁剪部分作为输入,裁剪的部分应该包含图像的大部分区域,且这部分图像并没有在其他方面进行增强处理。
然后对输入图像生成的特征图进行聚类分析,根据不同的特征对图像中各个物体的进行分割。
目标表示网络的输入视图是目标发现网络中所生成的分割图像。
视图输入之后,对它们分别进行随机预处理,包括翻转、模糊和点级颜色转换等。
这样就能够获得两组掩模,它们除了剪裁之外的差异,其他信息都和底层图像内容相同。
而后两个掩模会通过对比损失,进而学习能够更好地表示图像中物体的特征。
具体来说,就是通过对比检测,训练一个网络来识别不同目标物体的特征,同时还有许多来自其他不相干物体的“负面”特征。
然后,最大化不同掩模中同一目标物体的相似性,最小化不同目标物体之间的相似性,进而更好地进行分割以区别不同目标物体。
与此同时,目标发现网络会定期根据目标表示网络的参数进行相应的更新。
最终的目的是确保这些对象级的特性在不同的视图中大致不变,换句话说就是将图像中的物体分隔开来。
那么Odin学习框架的效果究竟如何呢?
Odin方法在场景分割时,没有先验知识的情况下迁移学习的性能也很强大。
首先,使用Odin方法在ImageNet数据集上进行预训练,然后评估其在COCO数据集以及PASCAL和Cityscapes语义分割上的效果。
已经知道目标物体,即获得先验知识的方法在进行场景分割时,效果要明显好于其他未获得先验知识的方法。
而Odin方法即使未获得先验知识,其效果也要优于获得先验知识的DetCon和ReLICv2。
除此之外,Odin方法不仅可以应用在ResNet模型中,还可以应用到更复杂的模型中,如Swim Transformer。
在数据上,Odin框架学习的优势很明显,那在可视化的图像中,Odin的优势在何处体现了呢?
将使用Odin生成的分割图像与随机初始化的网络(第3列),ImageNet监督的网络(第4列)中获得的分割图像进行比较。
第3、4列都未能清晰地描绘出物体的边界,或者缺乏现实世界物体的一致性和局部性,而Odin生成的图像效果很明显要更好一些。
参考链接:
[1] https://twitter.com/DeepMind/status/1554467389290561541
[2] https://arxiv.org/abs/2203.08777
“