Images Speak in Images: A Generalist Painter for In-Context Visual Learning
GitHub - baaivision/Painter: Painter & SegGPT Series: Vision Foundation Models from BAAI
可以做什么:

输入和输出都是图片,并且不同人物输出的图片格式相同,输入输出图片格式都是H×W ×3,具体大概是原始label像素值重新定义在了三个通道上。语义分割部分如下:

原文:

训练时,输入是同一任务的两对图片concatenation,每对图片是原始图片和相应的任务输出图片,即GT。对于第二张图片即输出图片GT做了随机掩码,比例75%,重建遮挡的这部分,这部分训练时用一个可学习的向量代替被遮挡的patch。然后送入Vit-L,24blosks。从这些blocks中随机选4个特征图concatenation,送入一个三层的head(1x1卷积,3x3卷积,1个线性层)把每个patch还原为原来大小,16x16x3。

由于输入两对图片concatenation,所以计算量大,所以作者降低计算量的办法是输入图片和输出图片分别平行的送入模型,然后三个blocks后相对应的patch相加。节省一半计算开销。
损失函数smooth-l1
任务提示,作者给了两种基线办法:从训练集里面选好的,和生成一个可学习的。

其他实验结果:

