ALBEF paper : http://arxiv.org/abs/2107.07651 BLIP paper : http://arxiv.org/abs/2201.12086 BLIP code : https://github.com/salesforce/BLIP ALBEF 网络结构如下,这篇算得上BLIP/BLIP2的前身了,其三个Loss一直延续至今(当然MLM变成了LM)。具体三个Loss的介绍可以看BLIP2 - JJJYmmm Blog,有以下几个特别点: ITC Loss采用了MOCO的形式,即通过一个momentum encoder来扩大负样本的数量,这也是多了一个momentum model的原因。论文还从模型蒸馏的角度对momentum model做了进一步改进,例如在计算ITC和MLM时引入了伪标签 这里对于文本理解任务,采用的是MLM而不是LM,可能是因为MLM任务相比于LM任务更简单,因为模型只需要预测被mask的单词即可 在计算ITC时得到的Image-Text Similarity可以挑选出hard negatives,专门去做ITM;这个方法
Repository:https://github.com/salesforce/LAVIS/tree/main/projects/blip2 预训练结构 第一阶段 网络结构如下图。 对于图像特征,采用DETR类似的思路,使用Learned Queries作为输入,Image Features作为cross attention的KVs,希望通过可学习的参数来抽取与文本更相关的视觉特征 对于文本特征,采用传统的Bert Encoder思路 对于多模态特征的融合,与双流模型不同,这里两个Encoder的self attention层是共享参数的,当然与单流模型也不同,因为FFN不共享参数,且视觉特征提取时还会走cross attention层 训练采用的三个Loss函数(ITG/ITM/ITC)主要参考之前的ALBEF工作。 Image-Text Contrastive : 这部分的目的主要是对齐图像特征和文本特征的单模态特征,计算方法类似CLIP。与ALBEF不同的是,这里的negative pairs直接采用in-batc方式得到,并没有像ALBEF那样借鉴MOCO得到一个较大
最近写的一个Multi-task框架~ 项目地址:https://github.com/JJJYmmm/Pix2SeqV2-Pytorch Simple PyTorch implementation of Pix2SeqV2. This project references moein-shariatnia's Pix2Seq and the paper A Unified Sequence Interface for Vision Tasks. Introduction Pix2Seq is a generalized framework for solving visual tasks proposed by Google. Essentially it treats visual tasks as language tasks, generating sequences of tokens by auto-regression, and obtaining the output of many visual tasks(e.g., object detection, seg
pix2seq implement by Pytorch source code : moein-shariatnia/Pix2Seq paper : http://arxiv.org/abs/2109.10852 这次解析的源码是非官方实现的Pix2Seq,项目地址如上。教程直接看作者的Readme或者Object Detection w/ Transformers Pix2Seq in Pytorch | Towards AI,总体还是比较详细的。 模型即训练源码基本没什么问题,不过推荐先看完原始论文,不然可能在一些细节方面卡住。代码问题主要出现在测试文件中,问题如下。 Issue 1 2023.8.30 Tokenizer类的max_len参数用于限制单张图片的Obejct个数 labels = labels.astype('int')[:self.max_len] bboxes = self.quantize(bboxes)[:self.max_len] 而get_loaders中的collate_fn,把max_len作为输入序列的最大长度,这两处地方出现了矛盾(
摘要 之前在SIFT算法中,有一个加速操作是使用图像金字塔,即不断对图像进行降采样。按照算法的思想表明:降采样后,标准差为$\sigma$的高斯模糊图像标准差会减半,得到标准差为$1/2\sigma$的高斯模糊图像。 这里我不知道该如何证明....网上也没有相关资料,所以暂时采用数值解去验证这个说法。 实验过程 代码贴在最后,主要思路是比较两张图像:一张是先降采样一倍再用$\sigma$高斯模糊的图像;另一张是先使用$2\sigma$进行高斯模糊,再在模糊的图像上进行一倍降采样。 首先可视化这两张图,肉眼查看之间的差距,确实差距还是挺小的。此处$\sigma=30$(忽略窗口的值,那里标错了~) 为了对比,这里把原图分别使用$\sigma$和$2\sigma$进行高斯模糊的结果也可视化了出来。这两张图就明显存在差异,这说明对高斯模糊过的图像降采样,确实会对其$sigma$产生影响。 接着最早的两张图做差并画出来,可以看到形成了一个类似边缘检测的图像。这说明“先降采样再$\sigma$高斯模糊”跟“先$2\sigma$高斯模糊再降采样”这两个操作不完全等价。 为什么看上去是边缘检
Axuanz
Updating as per fate.