RACV2021观点集锦 | 视觉transformer 从主干encoder 到任务decoder: 现状与趋势
low/high level的视觉任务都有相应的transformer刷榜。然而,火热研究的背后,真正深层次的问题有没有得到解决,真正的难点有没有得到突破,仍然值得冷静的思考和讨论
CV里面Decoder的部分可能是被忽略了,大家都在关注Encoder部分。其实Transformer是个完整的Encoder-Decoder架构,特别在Decoder上面,它有cross-attention会使得它这个模型相当的灵活。
它们变成序列到序列的范式
比如说第一个机器翻译任务 that’s good,我们就在前面加一个任务的描述,就是translate English to German,加了这个之后的序列,就输入到T5。然后T5就输出对应的德语。再比如说我们要做Summarization,就在输入序列前面就加个Summarize,然后冒号,它就输出对应的摘要。
Decoder part is neglected in CV.
PIX2SEQ: 用于目标检测的语言建模框架
https://github.com/gaopengcuhk/Stable-Pix2Seq
The neural net perceives an image and generates a sequence of tokens that correspond to bounding boxes and class labels
现有方法:精心设计的框架
大多数现有的方法都是使用精心设计和高度定制的框架,在模型结构和损失函数的选择方面需要大量的先验知识,比如NMS、ROI Pooling等等
作者认为:
如果神经网络知道对象在哪里以及对象是什么,那么我们只需要教它读出它们(即语言生成任务) 。通过学习“描述”对象,模型可以在像素观察的基础上,学习“语言”的生成,从而产生有用的对象表示。
In essence, we cast object detection as a language modeling task conditioned on pixel inputs, for which the model architecture and loss function are generic and relatively simple, without being engineered specifically for the detection task.
每个对象(bounding box)都可以描述成 [ y m i n , x m i n , y m a x , x m a x , c ] [y_{min},x_{min},y_{max},x_{max},c] [ymin,xmin,ymax,xmax,c]。
对于坐标 x , y x,y x,y来说,其被离散成 [ 1 , n b i n s ] [1,n_{bins}] [1,nbins]。这里的 n b i n s n_{bins} nbins代表着可能的坐标数值。
对给定图像,序列化多个对象描述。同时对象的顺序于任务本身无关,所以使用随机排序策略。
总结了五大价值和优点
它用图的节点和边分别来表示所有概念以及概念之间的关系,这个概念可以是实体,例如视觉物体,也可以是抽象的概念、词汇→Transformer可以表示万事万物。
对每个节点的特征做投影,在投影的空间里去比较节点之间的相似度,用这个相似度来刻画节点之间的关系
现在在CV
和NLP
中都有大量基于Transformer
的模型,而且也可以利用Transformer
进行跨模态的结合。
同时,CV
相比NLP
需要解决更广泛的问题范畴,事实上CV
可以看作是Speech+NLP
的结合,它涉及信号处理、感知和认知多个层次的任务。