NeurIPS'22|Hinton团队开源:用一个统一的接口处理四大视觉任务
论文链接:https://arxiv.org/pdf/2206.07669v2.pdf源码链接:https://github.com/google-research/pix2seq
简介
本文提出了一种将四个看似不同的视觉任务(目标检测,实例分割,关键点检测,图像描述)统一在单个像素到序列界面中的方法。本文方法是对在目标检测任务中使用的Pix2Seq模型到一系列任务的扩展。
本文框架
本文方法提出一种对于四个关注任务的序列接口,即所有任务的描述和输出都表示为若干离散令牌组成的序列。
- 目标检测:一个物体由五个离散令牌表示,。每次训练样本时多个物体随机采样序列化后形成最终令牌。
- 实例分割:这里预测实例掩码的多边形描述,并将多边形描述为一序列的坐标,并将坐标转为离散令牌。这里每次采样训练图片对应的开始点的开始令牌是随机的。如果存在相同实例的多个多边形,通过一个分割令牌聚集每个多边形的表示序列。
- 关键点检测:类似地,这里也是用一系列坐标表示关键点检测结果,。这里为了简洁省略了关键点类别标签。如果某个关键点被遮挡,相应的坐标令牌被一个特别的令牌取代。
- 图像描述:直接预测离散的文本令牌。
统一的架构和损失函数
与Pix2Seq方法只关注单一任务不同的是,****以一个任务的prompt为条件,直接为单个目标检测任务产生输出token,以便模型可以产生适应于关注任务的输出。在训练期间,模型将prompt和期望的输出连接到单个序列中,利用token加权方案确保****只被训练来预测期望的输出,而不是prompt令牌。在推理过程中,prompt是给定的,并且是固定的,所以****只需要产生序列的其余部分。类似于Pix2Seq方法,训练目标是最大化基于图像的令牌和之前的令牌的似然性。
多个任务的训练
- 数据混合。合并不同任务的图像和相应输出序列。优点是构建很简单,但很难加入图像增广。
- 批混合。采样不同任务的图像,经适合当前任务的增广处理,合并令牌化的输出序列得到图像-序列对。这种方法可以独立地为了一个任务计算损失和梯度,并以合适的权重融合不同任务的梯度。
本文方法考虑使用批混合策略。
推断
实验
图4给出了如何选择合适的各任务损失函数加权系数。这里使用贪心策略。图4(a)给出了搜素目标检测与实例分割间权重比例的搜索结果。可以看出在一个较广的范围内,两个任务的性能都接近峰值。之后实验简单选择2:8的权重比例。加入图像描述任务后,在9:1的权重比例下是对当前任务是较合适的。加入关键点检测后发现权重能设置的较小,这里选择为0.01。
部分图片可视化结果:
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。