[
  {
    "path": "README.md",
    "content": "# Awesome-CLIP\n\n- [Awesome-CLIP](#awesome-clip)\n  - [Train](#train)\n  - [Improvement \\& Innovation](#improvement--innovation)\n  - [Data](#data)\n  - [Distillation](#distillation)\n  - [Loss](#loss)\n  - [Zero-Shot \\& Few-Shot \\& Classification](#zero-shot--few-shot--classification)\n  - [Retrieval](#retrieval)\n  - [Detection](#detection)\n  - [Segmentation](#segmentation)\n  - [Captioning](#captioning)\n  - [Generation](#generation)\n  - [Video](#video)\n  - [Other](#other) \n\n\n## Train\n\n\n| Title | Abstract | Intro | Useful Links |\n|:----| :---:| :----: | :---:|\n|2022|\n| [![Star](https://img.shields.io/github/stars/Sense-GVT/DeCLIP.svg?style=social&label=Star)](https://github.com/Sense-GVT/DeCLIP) <br> **SUPERVISION EXISTS EVERYWHERE: A DATA EFFICIENT CONTRASTIVE LANGUAGE-IMAGE PRE-TRAINING PARADIGM** <br>| 本文提出一种创新的CLIP训练方式--Data efficient CLIP (DeCLIP)，来解决CLIP训练对文本-图像pair数据量的需求.  核心思想就是增加对图像-文本对的supervision(增加更多约束)，更有效地学习通用的视觉特征. 作者增加了以下监督：1.每个模态内的self-supervision;2.跨模态的多视图supervision(数据增强后的view);3.来自其他相似对的最近邻supervision.  实验证明，与base CLIP相比，更少的训练数据取得了更高的表现.  <br><br>🧟‍♂️:Nearest-Neighbor Supervision处设计了一个FIFO的队列，个人觉得借鉴了MoCo的思想，很有意思👍 |<img src=\"./images/DeCLIP.png\"  width=\"640px\"/>| [[Github](https://github.com/Sense-GVT/DeCLIP)] <br> [[Paper](https://arxiv.org/pdf/2110.05208)] |\n|2023|\n| **Less is More: Removing Text-regions Improves CLIP Training Efficiency and Robustness** <br>| CLIP没有区分嵌入在图像中的文本区域的视觉语义和意义. 当嵌入区域中的文本与图像的视觉外观不匹配时，这可能导致不鲁棒性. 文章提出两种有效的方法来提高CLIP训练的效率和鲁棒性：1. 在保持相同数量的优化步骤的同时增强训练数据集；2.过滤掉图像中包含文本区域的样本.  在ImageNet和CoCo等数据集上测试，文章方法提高了Clip在下游任务的分类和检索准确率.  |<img src=\"./images/LessisMore.png\"  width=\"640px\"/>| [[Paper](https://arxiv.org/pdf/2305.05095)] |\n| [![Star](https://img.shields.io/github/stars/UCSC-VLAA/CLIPA.svg?style=social&label=Star)](https://github.com/UCSC-VLAA/CLIPA) <br> **CLIPA: An Inverse Scaling Law for CLIP Training** <br>| 文章提出了一个令人惊讶的发现，即CLIP训练存在inverse scaling law，即使用的图像/文本编码器越大，可以用于训练的图像/文本tokens的序列长度越短. 此外，减少图像/文本tokens长度的策略，在确定这种缩放定律的质量方面起着至关重要的作用. 文章在有限的资源下成功训练了Clip. |<img src=\"./images/CLIPA.png\"  width=\"640px\"/>| [[Github](https://github.com/UCSC-VLAA/CLIPA)] <br> [[Paper](https://arxiv.org/pdf/2305.07017)] |\n| [![Star](https://img.shields.io/github/stars/UCSC-VLAA/CLIPA.svg?style=social&label=Star)](https://github.com/UCSC-VLAA/CLIPA) <br> **CLIPA-v2: Scaling CLIP Training with 81.1% Zero-shot ImageNet Accuracy within a $10,000 Budget; An Extra $4,000 Unlocks 81.8% Accuracy** <br>| 在CLIPA基础上，验证了full resolution 的token微调模型时，inverse scaling law也适用;同时验证各种不同训练参数下模型的能力，包括模型大小、数据和training schedule. |<img src=\"./images/CLIPA-v2.png\"  width=\"640px\"/>| [[Github](https://github.com/UCSC-VLAA/CLIPA)] <br> [[Paper](https://arxiv.org/pdf/2306.15658)] |\n| [![Star](https://img.shields.io/github/stars/facebookresearch/flip.svg?style=social&label=Star)](https://github.com/facebookresearch/flip) <br> **Scaling Language-Image Pre-training via Masking** <br>| 文章提出了一种简单而有效的CLIP训练方法---FLIP（Fast Language-Image Pre-training）.该方法只需要在训练时随机Mask掉一部分图像. 实验证明，与标准CLIP详细，该方法在训练速度和模型精度方面都有提升. 文章受到MAE的启发. 引入masking，使模型在“how carefully we look at a sample pair” 和 “how many sample pairs we can process”之间做trade-off. 因为Vit encoder只用于visible patches，当mask掉一部分图像时，可以节约相应的显存，这样降低了计算量，可以使用更大的batchsize，对contrastive loss更加友好.  同时，masking作为一种形式的噪声和正则化可以提高鲁棒性.  |<img src=\"./images/flip.png\"  width=\"640px\"/>| [[Github](https://github.com/facebookresearch/flip)] <br> [[Paper](https://arxiv.org/pdf/2212.00794)] |\n| [![Star](https://img.shields.io/github/stars/LijieFan/LaCLIP.svg?style=social&label=Star)](https://github.com/LijieFan/LaCLIP) <br> **Improving CLIP Training with Language Rewrites** <br>| 在CLIP训练过程中，只对图像数据做了数据增强，而文本数据保持不变. 针对此问题，作者提出了Language augmented CLIP (LaCLIP), 利用LLM的上下文学习能力，重新描述训练集的captions，增加文本的多样性. 实验表明，在下游zero-shot任务上，性能有明显提升.|<img src=\"./images/LaCLIP.png\"  width=\"640px\"/>| [[Github](https://github.com/LijieFan/LaCLIP)] <br> [[Paper](https://arxiv.org/pdf/2305.20088)] |\n| [![Star](https://img.shields.io/github/stars/zjukg/Structure-CLIP.svg?style=social&label=Star)](https://github.com/zjukg/Structure-CLIP) <br> **Structure-CLIP: Towards Scene Graph Knowledge to Enhance Multi-modal Structured Representations** <br>|CLIP在结构化的文本-图像匹配上表现不够，如通过clip score并不能区别一张图是人咬狗和狗咬人. 作者认为造成这个问题的原因是CLIP在学习多模态场景中的representations时未能充分利用结构化知识.  文章提出 Structure-CLIP ，一个端到端的框架，通过集成场景图知识来增强多模态结构化表示. <br><br>🧟‍♂️: 1.增加难例负样本; 2. 实际工作中个人也想过类似方法，大概是通过分析负责描述的词性等，利用最短依赖路径等方法拆分句子，然后做enhance.| <img src=\"./images/Structure-CLIP.png\"  width=\"640px\"/> | [[Github](https://github.com/zjukg/Structure-CLIP)] <br> [[Paper](https://arxiv.org/pdf/2305.06152)] |\n| [![Star](https://img.shields.io/github/stars/mertyg/vision-language-models-are-bows.svg?style=social&label=Star)](https://github.com/mertyg/vision-language-models-are-bows) <br> **WHEN AND WHY VISION-LANGUAGE MODELS BEHAVE LIKE BAGS-OF-WORDS, AND WHAT TO DO ABOUT IT?** <br>|  尽管VLM在下游任务表现不错，但对模型如何学习类别和属性的组合关系，目前尚不清楚.  文章首先提出一个Attribution, Relation, and Order(ARO) 的benchmark，系统评估VLM理解不同类型的关系、属性和顺序信息的能力. 然后对使用VLM实现的检索任务和对比预训练做了深刻解析，提出解释了几个问题. 最后提出NegCLIP提高模型对 attributes and relations的理解.  <br><br>🧟‍♂️: ICLR 2023 Oral，初看觉得没什么意思，但精读后收获很多. 比如实际工作中，利用clip实现多模态检索，虽然clip不能很好的学习object和对应属性的关系，但通过触发key words，依旧可以获得很好的表现. 文章对此做了解读. 以及NegCLIP，方法直接简单，其实实际工作中常用类似方法. 总之是一篇值得细品的文章👍| <img src= \"./images/NegCLIP.png\"  width=\"640px\"/> | [[Github](https://github.com/mertyg/vision-language-models-are-bows)] <br> [[Paper](https://openreview.net/pdf?id=KRLUvxh8uaX)] |\n|2024|\n| [![Star](https://img.shields.io/github/stars/YichaoCai1/CLAP.svg?style=social&label=Star)](https://github.com/YichaoCai1/CLAP) <br> **CLAP: Isolating Content from Style through Contrastive Learning with Augmented Prompts** <br>|直接使用[作者的回答](https://www.zhihu.com/question/660698707/answer/3550999896)： 从causality理论出发，CLAP旨在提升pretrained VLM在distribution shift场景下的generalization能力，CLAP仅需在text modality用较小成本去fine-tune CLIP模型，可以使pretrained representations更聚焦于content（object）本身，从而提升模型zero-shot/few-shot表现, 以及domain adaptation和adversarial resilience的能力.  |<img src=\"./images/CLAP.png\"  width=\"640px\"/>| [[Github](https://github.com/YichaoCai1/CLAP)] <br> [[Paper](https://arxiv.org/pdf/2311.16445)] |\n| [![Star](https://img.shields.io/github/stars/apple/ml-tic-clip.svg?style=social&label=Star)](https://github.com/apple/ml-tic-clip) <br> **TIC-CLIP: CONTINUAL TRAINING OF CLIP MODELS** <br> |随着数据的不断积累和更新，如何低成本的训练模型，与最新的数据同步. 文章提出一种简单的rehearsal-based的方案，与标准的预训练方法相比，提速2.5x. | <img src=\"./images/TIC-CLIP.png\"  width=\"640px\"/>| [[Github](https://github.com/apple/ml-tic-clip)] <br> [[Paper](https://arxiv.org/pdf/2310.16226)] |\n| [![Star](https://img.shields.io/github/stars/facebookresearch/MetaCLIP.svg?style=social&label=Star)](https://github.com/facebookresearch/MetaCLIP) <br> **DEMYSTIFYING CLIP DATA[MetaCLIP]** <br>|文章揭示了CLIP训练数据的管理方法，提出CLIP数据管理算法，来简化和产生高质量的训练数据.  并且介绍了Metadata-Curated Language-Image Pre-training (MetaCLIP)---CLIP pro版.  <br><br>🧟‍♂️:建议大规模数据集管理食用，数据质量比数量重要得多～| | [[Github](https://github.com/facebookresearch/MetaCLIP)] <br> [[Paper](https://arxiv.org/pdf/2309.16671)]|\n| [![Star](https://img.shields.io/github/stars/dsam99/pc_clip.svg?style=social&label=Star)](https://github.com/dsam99/pc_clip) <br> **FINETUNING CLIP TO REASON ABOUT PAIRWISE DIFFERENCES** <br> |文章提出PC-CLIP (Pairwise Comparison CLIP)，提高CLIP推理差异的能力. 具体而言，借助LLM得到图片之间差异的文本描述，text encoder将上述描述编码，同时image encoder分别编码两张图片，计算image embedding的差异，对齐两个模态的差异. | <img src=\"./images/PC-CLIP.png\"  width=\"640px\"/>| [[Github](https://github.com/dsam99/pc_clip)] <br> [[Paper](https://arxiv.org/pdf/2409.09721)] |\n| **FFF: Fixing Flawed Foundations in contrastive pre-training results in very strong Vision-Language models** <br> |噪声和Caption的质量对VLM模型的训练十分重要. 文章首先研究分析了影响训练的两个因素：负样本的错误分配，以及质量的Caption和多样性较低. 针对以上问题，作者提出了一种基于图像-文本、图像-图像和文本-文本的positive pair的相似性挖掘算法，减少训练数据中由于语义相似的图像或是相似描述而产生的false negative的数量.  额外的，作者建议使用sigmoid loss训练.  | <img src=\"./images/FFF.png\"  width=\"640px\"/>| [[Paper](https://arxiv.org/pdf/2405.10286)] |\n\n\n## Improvement & Innovation\n\n\n| Title | Abstract | Intro | Useful Links |\n|:----| :---:| :----: | :---:|\n|2022|\n| [![Star](https://img.shields.io/github/stars/FlagAI-Open/FlagAI.svg?style=social&label=Star)](https://github.com/FlagAI-Open/FlagAI) <br> **AltCLIP: Altering the Language Encoder in CLIP for Extended Language Capabilities** <br>|文章提出一个概念上简单而有效的方法来训练一个强大的双语/多语多模态表示模型. 使用预训练的多语言文本编码器XLMR替换Clip的文本编码器，通过两阶段的训练模式(Teacher Learning; Contrastive Learning)对齐文本和图像表征. | <img src=\"./images/AltCLIP.png\"  width=\"640px\"/> | [[Github](https://github.com/FlagAI-Open/FlagAI)] <br> [[Paper](https://arxiv.org/pdf/2211.06679)] |\n|2023|\n| [![Star](https://img.shields.io/github/stars/google-research/big_vision.svg?style=social&label=Star)](https://github.com/google-research/big_vision) <br> **CLIPPO: Image-and-Language Understanding from Pixels Only** <br>| 文章对使用纯基于像素的模型进行文本和图像的多模态学习进行探索。CLIPPO是一个单独的视觉 Transformer，它处理视觉输入或文本，或两者一起，所有都呈现为 RGB 图像（文本在空白图像上渲染，作为纯图像处理）. 所有模态都使用相同的模型参数，包括低级特征处理；也就是说，不存在特定于模态的初始卷积、tokenization 算法或输入嵌入表. CLIPPO仅用一个任务训练--对比学习. | <img src=\"./images/CLIPPO.png\"  width=\"640px\"/> | [[Github](https://github.com/google-research/big_vision)] <br> [[Paper](https://arxiv.org/pdf/2212.08045)] |\n| [![Star](https://img.shields.io/github/stars/SunzeY/AlphaCLIP.svg?style=social&label=Star)](https://github.com/SunzeY/AlphaCLIP) <br> **Alpha-CLIP: A CLIP Model Focusing on Wherever You Want** <br>|Clip无法关注到局部区域，针对此问题，文章提出一个增强版本的CLIP，名为Alpha-CLIP. Alpha-CLIP带有一个辅助alpha通道来提示注意区域，并通过构造数百万个RGBA区域-文本对进行了微调。Alpha-CLIP不仅保留了CLIP的视觉识别能力，而且可以精确控制图像内容的重点. 它证明了在各种任务中的有效性，包括但不限于开放世界识别、多模态大语言模型和条件2D /3D生成. 它具有强大的潜力，可作为图像相关任务的通用工具. | <img src=\"./images/Alpha-CLIP.png\"  width=\"640px\"/> | [[Github](https://github.com/SunzeY/AlphaCLIP)] <br> [[Paper](https://arxiv.org/pdf/2312.03818)] |\n| [![Star](https://img.shields.io/github/stars/OFA-Sys/Chinese-CLIP.svg?style=social&label=Star)](https://github.com/OFA-Sys/Chinese-CLIP) <br> **Chinese CLIP: Contrastive Vision-Language Pretraining in Chinese** <br>|文章提出中文CLIP预训练模型，并给出了两阶段预训练法: 1.将预训练Clip的图像编码器固定，使用中文RoBERTA替换文本编码器，训练RoBERTA; 2.文本、图像编码器同时训练.| <img src=\"./images/Chinese-CLIP.png\"  width=\"640px\"/> | [[Github](https://github.com/OFA-Sys/Chinese-CLIP)] <br> [[Paper](https://arxiv.org/pdf/2211.01335)] |\n| [![Star](https://img.shields.io/github/stars/baaivision/EVA.svg?style=social&label=Star)](https://github.com/baaivision/EVA) <br> **EVA-CLIP: Improved Training Techniques for CLIP at Scale** <br>|大力出奇迹. | <img src=\"./images/EVA-CLIP.png\"  width=\"640px\"/> | [[Github](https://github.com/baaivision/EVA)] <br> [[Paper](https://arxiv.org/pdf/2303.15389)] |\n|2024|\n| [![Star](https://img.shields.io/github/stars/baaivision/EVA.svg?style=social&label=Star)](https://github.com/baaivision/EVA) <br> **EVA-CLIP-18B: Scaling CLIP to 18 Billion Parameters** <br>|大力出奇迹. | <img src=\"./images/EVA-CLIP-18B.png\"  width=\"640px\"/> | [[Github](https://github.com/baaivision/EVA)] <br> [[Paper](https://arxiv.org/pdf/2402.04252)] |\n| [![Star](https://img.shields.io/github/stars/xmed-lab/CLIP_Surgery.svg?style=social&label=Star)](https://github.com/xmed-lab/CLIP_Surgery) <br> **ACloser Look at the Explainability of Contrastive Language-Image Pre-training** <br>|文章发现了CLIP的可解释性有两个问题：1.可视化结果和人的感知是反的；2.可视化有非常多的噪声响应. 针对上述问题，文章阐述了原因，并给出一个train-free的解决方法. <br><br>🧟‍♂️:工作上遇到一个问题，使用clip做相似对对比，cos相似度基本都在0.2+，这篇论文给了答案，同时Cam图的结果提升也很大.👍 | <img src=\"./images/CLIP_Surgery.png\"  width=\"640px\"/> | [[Github](https://github.com/xmed-lab/CLIP_Surgery)] <br> [[Paper](https://arxiv.org/pdf/2304.05653)]  [[知乎](https://www.zhihu.com/question/595372017/answer/2982207851)]|\n| [![Star](https://img.shields.io/github/stars/beichenzbc/Long-CLIP.svg?style=social&label=Star)](https://github.com/beichenzbc/Long-CLIP) <br> **Long-CLIP: Unlocking the Long-Text Capability of CLIP** <br>| CLIP的文本token长度被限制为77，而研究表明实际有效长度甚至不到20. 这使得CLIP无法处理详细的描述,限制了其在图像检索和文本到图像生成方面的应用. 本文提出Long-CLIP作为CLIP的即插即用替代方案，它支持长文本输入，保留甚至超越其zero-shot的泛化能力，并调整CLIP潜在空间，使其易于取代CLIP，而无需在下游框架中进行任何进一步的调整.| <img src=\"./images/Long-CLIP.png\"  width=\"640px\"/> | [[Github](https://github.com/beichenzbc/Long-CLIP)] <br> [[Paper](https://arxiv.org/pdf/2403.15378)]|\n| [![Star](https://img.shields.io/github/stars/apple/ml-mobileclip.svg?style=social&label=Star)](https://github.com/apple/ml-mobileclip) <br> **MobileCLIP: Fast Image-Text Models through Multi-Modal Reinforced Training** <br>| 文章提出了mobile版的CLIP，与标准的ViT-B/16 CLIP相比，速度提升2.3倍，在38个测试集上accuracy平均提高2.9%. 与标准CLIP相比，训练效率提升10-1000倍. 主要的一些点包括: 文本/图像encoder的重新选择和设计、借助CoCa对训练集生成多个caption进行数据集增强、多个大模型（CLIP）的Model ensembling，以及基于此设计的loss.| <img src=\"./images/MobileCLIP.png\"  width=\"640px\"/> | [[Github](https://github.com/apple/ml-mobileclip)] <br> [[Paper](https://arxiv.org/pdf/2311.17049)]|\n| [![Star](https://img.shields.io/github/stars/deepglint/RWKV-CLIP.svg?style=social&label=Star)](https://github.com/deepglint/RWKV-CLIP) <br> **RWKV-CLIP: A Robust Vision-Language Representation Learner** <br>| 本文从数据和模型架构的角度进一步探讨了 CLIP.  同时为了解决噪声数据的问题，提高从互联网爬取的大规模图像-文本数据的质量，作者借助LLM，提出了一个多样化的描述生成框架；此外，作者将RWKV引入VLM中，将 Transformer 的有效并行训练与 RNN 的高效推理相结合. 实验证明其在多个下游任务中实现了最先进的性能.  <br><br>🧟‍♂️: RWKV架构是国人（chinese）原创的，通过高效的线性扩展解决了 Transformer 中的内存瓶颈和二次扩展问题，同时保留了并行训练和强大扩展性的表现特性. 关于RWKV 可查阅[RWKV: Reinventing RNNs for the Transformer Era](https://arxiv.org/pdf/2305.13048)| <img src=\"./images/RWKV-CLIP1.png\"  width=\"640px\"/> <br> <img src=\"./images/RWKV-CLIP2.png\"  width=\"640px\"/> | [[Github](https://github.com/deepglint/RWKV-CLIP)] <br> [[Paper](https://arxiv.org/pdf/2406.06973)]|\n| [![Star](https://img.shields.io/github/stars/raytrun/mamba-clip.svg?style=social&label=Star)](https://github.com/raytrun/mamba-clip) <br> **CLIP-Mamba: CLIP Pretrained Mamba Models with OOD and Hessian Evaluation** <br>| 利用CLIP方式训练Mamba . | | [[Github](https://github.com/raytrun/mamba-clip)] <br> [[Paper](https://arxiv.org/pdf/2404.19394)]|\n| [![Star](https://img.shields.io/github/stars/yossigandelsman/clip_text_span.svg?style=social&label=Star)](https://github.com/yossigandelsman/clip_text_span) <br> **INTERPRETING CLIP’S IMAGE REPRESENTATION VIA TEXT-BASED DECOMPOSITION** <br>|  ICLR 2024 (Oral Presentation) 文章通过分析各个模型组件如何影响特征来研究 CLIP 的图像编码器.  作者将图像的representation分解为各个image patches, model layers和 attention heads的总和，并使用 CLIP 的文本表示来解释各个部分.  通过自动查找跨越其输出空间的文本表示来描述每个attention heads的角色，发现attention heads有特定属性角色（例如位置或形状）.  通过解释图像块，发现了 CLIP 中出现的空间定位. 最后作者利用这种理解从 CLIP 中删除虚假特征并创建强大的零样本图像分割器.  <br><br>🧟‍♂️: 比较新颖，通过文本的分解（比如一些属性等）来研究CLIP的图像编码器，分析其不同模块的角色作用.  很多地方值得学习，比如整体的一些实验结论、各个实验如何设计，还得多看几遍. | <img src=\"./images/clip_text_span.png\"  width=\"640px\"/> | [[Github](https://github.com/yossigandelsman/clip_text_span)] <br> [[Paper](https://arxiv.org/pdf/2310.05916)]|\n| **Modeling Caption Diversity in Contrastive Vision-Language Pretraining** <br>| 一张图片可以有多种描述，CLIP将图像和文本映射到单个vector上，这种方式限制了其用多种描述表达图像的能力. 针对这个问题，作者提出Llip, 将图片到文本的representation function实现为一对多的映射. Llip的图像编码器输出一组visual mixture tokens（register）作为K，V，通过从文本描述中获取的context作为条件Q，使用类似transformer的multi-head cross-attention方法生成最终的表示. 作者使用与MetaCLIP相同的数据集进行预训练，实验证明，Llip在多种任务山优于CLIP和Siglip，即使他们使用了大型编码器. | <img src=\"./images/Llip.png\"  width=\"640px\"/> | [[Paper](https://arxiv.org/pdf/2405.00740)]|\n| [![Star](https://img.shields.io/github/stars/wuw2019/LoTLIP.svg?style=social&label=Star)](https://github.com/wuw2019/LoTLIP) <br> **LoTLIP: Improving Language-Image Pre-training for Long Text Understanding** <br>| 提升language-image pre-training models对长文本的理解能力，作者提出LoTLIP. 作者团队首先对100 million的数据，重新用长文本进行描述. 然后训练模型. 作者发现这样简单粗暴的方式可以提升模型对长文本的理解，但在短文本上的表现却产生了退化. 为解决短文本退化问题，作者在transformer block的[CLS]后加入M个可学习的corner tokens，同时使用注意力掩码机制，限制[CLS]和corner tokens之间的交互，以确保收集的特征的多样性. 实验证明，在长文本图像检索任务上，LoTLIP击败了Long-CLIP，提高了 11.1%. | <img src=\"./images/LoTLIP.png\"  width=\"640px\"/> | [[Github](https://github.com/wuw2019/LoTLIP)] <br> [[Paper](https://arxiv.org/pdf/2410.05249)]|\n\n\n## Data\n\n\n| Title | Abstract | Intro | Useful Links |\n|:----| :---:| :----: | :---:|\n|2024|\n| [![Star](https://img.shields.io/github/stars/apple/ml-veclip.svg?style=social&label=Star)](https://github.com/apple/ml-veclip) <br> **VeCLIP: Improving CLIP Training via Visual-enriched Captions** <br>| 针对网络爬虫的文本-图像数据对，进行caption重写。使用LLaVA生成caption，然后与爬虫得到的描述（AltTexts）做融合，送入Vicuna-1.1得到重写后的caption.  |<img src=\"./images/VeCLIP.png\"  width=\"640px\"/>|  [[Github](https://github.com/apple/ml-veclip)] <br> [[Paper](https://arxiv.org/pdf/2310.07699)] |\n| [![Star](https://img.shields.io/github/stars/hammoudhasan/SynthCLIP.svg?style=social&label=Star)](https://github.com/hammoudhasan/SynthCLIP) <br> **SynthCLIP: Are We Ready for a Fully Synthetic CLIP Training?** <br>| 使用全合成文本图像对训练 CLIP 模型，与先前依赖于真实数据的方法有显著区别，SynthCLIP 实现了与在真实数据集上训练的 CLIP 模型相媲美的性能.  |<img src=\"./images/SynthCLIP.png\"  width=\"640px\"/>|  [[Github](https://github.com/hammoudhasan/SynthCLIP)] <br> [[Paper](https://arxiv.org/pdf/2402.01832)] |\n\n\n\n## Distillation\n\n\n| Title | Abstract | Intro | Useful Links |\n|:----| :---:| :----: | :---:|\n|2023|\n| [![Star](https://img.shields.io/github/stars/microsoft/Cream.svg?style=social&label=Star)](https://github.com/microsoft/Cream/tree/main/TinyCLIP) <br> **TinyCLIP: CLIP Distillation via Affinity Mimicking and Weight Inheritance** <br>|文章提出了一种面向大规模语言图像预训练模型的跨模态蒸馏方法:TinyCLIP. TinyClip包括两个核心技术: affinity mimicking and weight inheritance. 基于多级渐进式方案进行affinity mimicking和Weight inheritance，完成Clip模型的压缩及性能保真，在速度和准确度上做了较好的平衡. | <img src=\"./images/TinyCLIP.png\"  width=\"640px\"/> | [[Github](https://github.com/microsoft/Cream/tree/main/TinyCLIP)] <br> [[Paper](https://arxiv.org/pdf/2211.01335)] |\n|2024|\n| [![Star](https://img.shields.io/github/stars/winycg/CLIP-KD.svg?style=social&label=Star)](https://github.com/winycg/CLIP-KD) <br> **CLIP-KD: An Empirical Study of CLIP Model Distillation** <br>|文章核心目的是利用一个大型的教师CLIP模型来监督一个小型的学生CLIP模型，使得学生CLIP模型可以在保持轻量的前提下显著提升性能. 文章从关系、特征、梯度和对比模式的角度来检验CLIP-知识蒸馏的有效性 . 最后的消融实验表明，使用简单的MSE进行特征蒸馏实现了最好的蒸馏性能. | <img src=\"./images/CLIP-KD.png\"  width=\"640px\"/> | [[Github](https://github.com/winycg/CLIP-KD)] <br> [[Paper](https://arxiv.org/pdf/2307.12732)] |\n\n\n\n## Loss\n\n\n| Title | Abstract | Intro | Useful Links |\n|:----| :---:| :----: | :---:|\n|2022|\n| [![Star](https://img.shields.io/github/stars/goel-shashank/CyCLIP.svg?style=social&label=Star)](https://github.com/goel-shashank/CyCLIP) <br> **CYCLIP: Cyclic Contrastive Language-Image Pretraining** <br>|Clip的目标函数仅使用了跨模态的对比loss，对于单个模态内部和跨模态的i2t、t2i的对称性约束稍显不足，可能会导致图像和文本之前的inconsistent predictions. 如果对称化两个不匹配的图像-文本对之间的相似性以及图像-图像对和文本-文本对之间的相似性，则可以消除图像和文本空间中的不一致（看图片更好理解）. 论文提出了cross-modal consistency和in-modal consistency两种loss，与标准clip相比，在下游的zero-shot分类任务中，准确率有10% − 24%的提升. | <img src=\"./images/AltCLIP.png\"  width=\"640px\"/> | [[Github](https://github.com/goel-shashank/CyCLIP)] <br> [[Paper](https://arxiv.org/pdf/2205.14459)] |\n|2023|\n| [![Star](https://img.shields.io/github/stars/google-research/big_vision.svg?style=social&label=Star)](https://github.com/google-research/big_vision) <br> **SigLip:Sigmoid Loss for Language Image Pre-Training** <br>|文章提出了一种用于语言图像预训练（SigLIP）的简单成对 Sigmoid 损失. 与使用 Softmax 归一化的标准对比学习不同，Sigmoid 损失仅对图像-文本对进行操作，并且不需要对归一化的成对相似性进行全局视图.  Sigmoid 损失同时允许进一步扩大批量大小，同时在较小的批量大小下也能表现更好. | <img src=\"./images/SigLip.png\"  width=\"640px\"/> | [[Github](https://github.com/google-research/big_vision)] <br> [[Paper](https://arxiv.org/pdf/2303.15343)] |\n\n\n\n## Zero-Shot & Few-Shot & Classification\n\n\n| Title | Abstract | Intro | Useful Links |\n|:----| :---:| :----: | :---:|\n|2021|\n| [![Star](https://img.shields.io/github/stars/gaopengcuhk/CLIP-Adapter.svg?style=social&label=Star)](https://github.com/gaopengcuhk/CLIP-Adapter) <br> **CLIP-Adapter: Better Vision-Language Models with Feature Adapters** <br>| CLIP Adapter是一个为few-shot classfication任务设计的一个插入式模块.在冻住的clip特征上添加一个残差连接的微调器，使得CLIP能更好地应对分类等下游任务.|<img src=\"./images/CLIP-Adapter.jpg\"  width=\"640px\"/>| [[Github](https://github.com/gaopengcuhk/CLIP-Adapter)] <br> [[Paper](https://arxiv.org/pdf/2110.04544)] |\n| **CMA-CLIP: Cross-Modality Attention CLIP for Image-Text Classification** <br>| 利用CLIP分类. 作者认为CLIP的训练仅涉及全局图像和文本特征，因此没有对图像块和文本标记之间的细粒度关系进行建模. 这种关系在精细训练的分类任务中非常有用，特别是在只有一小部分图像块或文本标记与分类任务相关的情况下. 并且训练集中不可避免的存在噪声数据.  针对上述问题，作者提出了Cross-Modality Attention CLIP (CMA-CLIP)，实验主要使用社媒和电商领域数据集.  具体的，1.提出sequence-wise 模块来捕获图像块和文本标记之间的细粒度关系，做法就是把clip编码后的图像和文本拼到一起组成新的embedding，送到后续的网络中; 2.设计了modality-wise attention模块，学习各模态的权重，这里直接用了《Multimodal Keyless Attention Fusion for Video Classification》中的Keyless Attention；3. task specific modality-wise attentions， 其实就是多头做multi-task.  整体没啥可说的地方.| <img src=\"./images/CMA-CLIP.png\"  width=\"640px \"/>| [[Paper](https://arxiv.org/pdf/2112.03562)] |\n| [![Star](https://img.shields.io/github/stars/KeremTurgutlu/clip_art.svg?style=social&label=Star)](https://github.com/KeremTurgutlu/clip_art) <br> **CLIP-Art: Contrastive Pre-training for Fine-Grained Art Classification** <br>| 文章主要解决两个挑战：实例检索和细粒度艺术品属性识别. 主要是训练数据生成+CLIP微调， 没太多可说的东西.|<img src=\"./images/CLIP-Art.png\"  width=\"640px\"/>| [[Github](https://github.com/KeremTurgutlu/clip_art)] <br> [[Paper](https://openaccess.thecvf.com/content/CVPR2021W/CVFAD/papers/Conde_CLIP-Art_Contrastive_Pre-Training_for_Fine-Grained_Art_Classification_CVPRW_2021_paper.pdf)] |\n|2022|\n| [![Star](https://img.shields.io/github/stars/gaopengcuhk/Tip-Adapter.svg?style=social&label=Star)](https://github.com/gaopengcuhk/Tip-Adapter) <br> **Tip-Adapter: Training-free Adaption of CLIP** <br>|为了提高Clip的few-shot能力，文章提出一种免训练的方法，名为Tip-Adapter. 通过从少样本监督中构建query-key缓存模型来获取适配器的权重. 通过缓存模型，与传统的finetune方法相比，Tip-Adapter表现出极高的效率. |<img src=\"./images/Tip-Adapter.png\"  width=\"640px\"/>| [[Github](https://github.com/gaopengcuhk/Tip-Adapter)] <br> [[Paper]( https://arxiv.org/pdf/2207.09519)]  |\n| [![Star](https://img.shields.io/github/stars/ZiyuGuo99/CALIP.svg?style=social&label=Star)](https://github.com/ZiyuGuo99/CALIP) <br> **CALIP: Zero-Shot Enhancement of CLIP with Parameter-free Attention** <br>| 文章出发点是如何在不finetune的情况下，提升clip在下游任务上的zero-shot能力.文章提出了一种parameter-free的注意力模块(CALIP)，引导视觉和文本表示相互交互，并通过注意力探索跨模式信息特征.通过这种方式，图像与文本两个模态特征相互感知，以实现更好的自适应零样本对齐.|<img src=\"./images/CALIP.png\"  width=\"640px\"/>| [[Github](https://github.com/ZiyuGuo99/CALIP)] <br> [[Paper](https://arxiv.org/pdf/2209.14169)]  |\n| [![Star](https://img.shields.io/github/stars/KaiyangZhou/CoOp.svg?style=social&label=Star)](https://github.com/KaiyangZhou/CoOp)   <br> **CoOp: Learning to Prompt for Vision-Language Models** <br>| 受NLP领域prompt learning的启发，文章提出了Context Optimization(CoOp)，用于将类CLIP式的视觉语言模型迁移到下游图像识别任务.具体而言，CoOp将预训练模型参数freeze，使用可学习向量对提示的上下文单词进行建模.作者在11个下游任务上验证CoOp的有效性，结果显示CoOp的性能明显好于原始预训练模型如CLIP.|<img src=\"./images/CoOp.png\"  width=\"640px\"/>| [[Github](https://github.com/KaiyangZhou/CoOp)] <br> [[Paper](https://arxiv.org/pdf/2109.01134)] |\n| [![Star](https://img.shields.io/github/stars/KaiyangZhou/CoOp.svg?style=social&label=Star)](https://github.com/KaiyangZhou/CoOp)   <br> **CoCoOp: Conditional Prompt Learning for Vision-Language Models** <br>|针对CoOp泛化性差的问题，即:学习到的上下文对数据集中unseen classes的泛化性不好.文章提出Conditional Context Optimization (CoCoOp)，在CoOp基础上，引入一个轻量级的网络，名为Meta-Net:为每张图像生成input-conditional tokens. input-conditional tokens与 CoOp中的learnable vectors叠加，共同参与训练.大量实验表明，对于unseen classes，CoCoOp 比 CoOp 的泛化能力要好得多，甚至显示出超越单个数据集的可迁移性， 并产生更强的领域泛化性能 |<img src=\"./images/CoCoOp.png\"  width=\"640px\"/>| [[Github](https://github.com/KaiyangZhou/CoOp)] <br> [[Paper](https://arxiv.org/pdf/2203.05557)] |\n| [![Star](https://img.shields.io/github/stars/LightDXY/FT-CLIP.svg?style=social&label=Star)](https://github.com/LightDXY/FT-CLIP)   <br> **CLIP Itself is a Strong Fine-tuner:Achieving 85.7% and 88.0% Top-1 Accuracy with ViT-B and ViT-L on ImageNet** <br>| 文章通过一系列试验，验证使用不同超参数finetune clip后在下游分类任务的表现.  |<img src=\"./images/FT-CLIP.png\"  width=\"640px\"/>| [[Github](https://github.com/LightDXY/FT-CLIP)] <br> [[Paper](https://arxiv.org/pdf/2212.06138)] |\n|[![Star](https://img.shields.io/github/stars/xmed-lab/CLIPN.svg?style=social&label=Star)](https://github.com/xmed-lab/CLIPN)   <br> **CLIPN for Zero-Shot OOD Detection: Teaching CLIP to Say No** <br>| 文章的motivation是通过向CLIP提供positive的语义提示和negative的语义提示，以此让CLIP拥有区分OOD（Out-of-distribution）和ID（in-distribution）样本的能力。具体来说,文章设计了一个可学习的\"否定\"提示及一个针对\"否定\"的文本编码器,以捕捉图像中的否定语义.|<img src=\"./images/CLIPN.png\"  width=\"640px\"/>| [[Github](https://github.com/xmed-lab/CLIPN)] <br> [[Paper](https://arxiv.org/pdf/2308.12213v2)] |\n|[![Star](https://img.shields.io/github/stars/muzairkhattak/multimodal-prompt-learning.svg?style=social&label=Star)](https://github.com/muzairkhattak/multimodal-prompt-learning)   <br> **MaPLe: Multi-modal Prompt Learning** <br>|诸如CLIP的VLM模型，对文本提示很敏感，需要仔细选择prompt才能发挥良好作用.  针对下游任务，近期比较常用学习提示作为文本输入的方案（learn prompts）微调CLIP.  作者认为只在单个branch中使用提示来调整 CLIP的表示并不是最优的，因为它不允许灵活地动态调整下游任务的两个表示空间.  为解决这个问题，作者提出了MaPLe，在image和text两个分支都进行prompt learning，提高两个模态的表征一致性. 与CoCoOp 相比，MaPLe 表现出了良好的性能，在 11 个不同的图像识别数据集性能平均明显提升. |<img src=\"./images/MaPLe.png\"  width=\"640px\"/>| [[Github](https://github.com/muzairkhattak/multimodal-prompt-learning)] <br> [[Paper](https://arxiv.org/pdf/2210.03117)] |\n|2023|\n| [![Star](https://img.shields.io/github/stars/linyq2117/TagCLIP.svg?style=social&label=Star)](https://github.com/linyq2117/TagCLIP) <br> **TagCLIP: A Local-to-Global Framework to Enhance Open-Vocabulary Multi-Label Classification of CLIP Without Training** <br>|CLIP在开放词汇分类任务上表现出众，但在多标签分类任务表现不足，因为CLIP的图像编码器中的token经过训练以捕获全局特征，以此区分由对比损失监督的不同文本描述，这对于单标签分类非常有效. 多标签分类恰恰相反，全局特征往往由最突出的类别主导，而 softmax 操作的对比性质加剧了这种情况.  针对以上问题，作者提出TagCLIP ，无需额外训练提升CLIP 的多标签分类能力.  具体而言，1. 作者假设并实验证明，CLIP的图像编码器最后一层的attention操作破坏了空间信息，即前面的CLIP特征保有spatial information ，因此TagCLIP忽略最后一个self-attention操作来维持spatial information.  2.提出一种local-to-global 的方法，即首先经过patch级的分类得到粗标签(很巧妙，输入的text prompt为标签，CLIP的text encoder当作分类器，基于contrastive loss得到的相似度矩阵即为score)，然后使用dual-masking attention refinement（DMAR）优化分类score（直接借助Vit，因为self-attention学习了图像patch之间的关系，可直接用来refine patch之间的相似度），最后经过class-wise reidentification (CWR) 模块得到最终结果（patch对应原图区域送到CLIP，变成一个单标签分类问题，做double check）.|<img src=\"./images/TagCLIP.png\"  width= \"640px\"/>| [[Github](https://github.com/linyq2117/TagCLIP)] <br> [[Paper](https://arxiv.org/pdf/2312.12828)] |\n| [![Star](https://img.shields.io/github/stars/linzhiqiu/cross_modal_adaptation.svg?style=social&label=Star)](https://github.com/linzhiqiu/cross_modal_adaptation) <br> **Multimodality Helps Unimodality: Cross-Modal Few-Shot Learning with Multimodal Models** <br>| 文章阐述了一个观点，人类可以通过学习一个物体的多个维度知识，来增强对该物体的视觉理解. 如人们可以通过阅读有关狗的内容并听它们的叫声来在视觉维度区分狗.  基于此，作者提出了一种跨模式使用的简单策略：将来自不同模态的样本做为额外的小样本数据.  本质上就是将n-shot的问题转为（n+1）shot. 这种简单的策略可以通过简单的线性分类器产生全面的 SOTA 结果.  <br><br>🧟‍♂️:  看完这篇文章有点迷糊，不知道在干嘛...个人理解虽然数据是来自不同模态，但其描述的本质都是一个东西，而例如CLIP这样的VLM模型，其本质就是将不同模态特征映射到一个空间上，所以虽然是不同模态的数据，但其本质是一个. 因此文章将不同模态的样本做为额外的小样本数据 ，本质就是增加了小样本数据，因此可以提升表现. 个人粗浅的理解. |<img src=\"./images/cross_modal_adaptation.png\"  width= \"640px\"/>| [[Github](https://github.com/linzhiqiu/cross_modal_adaptation)] <br> [[Paper](https://arxiv.org/pdf/2301.06267)] |\n|2024|\n| [![Star](https://img.shields.io/github/stars/TJU-sjyj/AMU-Tuning.svg?style=social&label=Star)](https://github.com/TJU-sjyj/AMU-Tuning) <br> **AMU-Tuning: Effective Logit Bias for CLIP-based Few-shot Learning** <br>| 提出了一种名为AMU-Tuning的方法，用于改进基于CLIP模型的小样本学习性能. 该方法通过分析关键组件——logit特征、logit预测器和logit融合——来学习有效的logit偏差，并通过利用辅助特征、多分支训练的特征初始化线性分类器以及基于不确定性的融合策略，将logit偏差有效地整合到CLIP中，以提高小样本分类的准确性. |<img src=\"./images/AMU-Tuning.png\"  width=\"640px\"/>| [[Github](https://github.com/TJU-sjyj/AMU-Tuning)] <br> [[Paper](https://arxiv.org/pdf/2404.089588)] |\n| [![Star](https://img.shields.io/github/stars/SegoleneMartin/transductive-CLIP.svg?style=social&label=Star)](https://github.com/SegoleneMartin/transductive-CLIP) <br> **Transductive Zero-Shot and Few-Shot CLIP** <br>| 将转导推理（Transductive Inference）引入到VLM中，改进小样本分类问题.  具体做法是利用支持集（support set）中可用的监督（label）来预测查询样本（query）的类别.  <br><br>🧟‍♂️: 转导推理（Transductive Inference）是一种通过观察特定的训练样本，进而预测特定的测试样本的方法.  文章中的公式很多，个人没有完全读懂... |<img src=\"./images/transductive-CLIP.png\"  width=\"640px\"/>| [[Github](https://github.com/SegoleneMartin/transductive-CLIP)] <br> [[Paper](https://hal.science/hal-04534868v1/document)] |\n| [![Star](https://img.shields.io/github/stars/The-Shuai/DeIL.svg?style=social&label=Star)](https://github.com/SegoleneMartin/The-Shuai/DeIL) <br> **DeIL : Direct-and-Inverse CLIP for Open-World Few-Shot Learning** <br>| 针对开放世界少样本学习-Open-World Few-Shot Learning (OFSL)问题，作者引入Direct-and-Inverse的概念 ，提出了一种创新的方法DeIL，借助CLIP解决OFSL问题.  DeIL由以下几个模块构成，1. DeIL-Pretrainer：使用CLIPN计算目标图片不属于label类别的概率（Inverse-phase），找到噪声图片，然后利用CLIP修正噪声图片的label（Direct-phase） ; 2. 数据增强模块：借助DALL-E ，对改正后的训练数据集做增强; 3. DeIL-Adapter ：CLIP+Adaptor分类器，loss包括两部分，分类器直接预测的分类损失以及使用 CLIPN 的逆向推理后选择的负样本正样本的对比损失.  注意的是，在推理阶段，仅需要 DeIL-Adapter 内的分类器.... <br><br>🧟‍♂️:  真的绕|<img src=\"./images/DeIL.png\"  width=\"640px\"/>| [[Github](https://github.com/SegoleneMartin/The-Shuai/DeIL)] <br> [[Paper](https://openaccess.thecvf.com/content/CVPR2024/papers/Shao_DeIL_Direct-and-Inverse_CLIP_for_Open-World_Few-Shot_Learning_CVPR_2024_paper.pdf)] |\n\n\n\n## Retrieval\n\n\n| Title | Abstract | Intro | Useful Links |\n|:----| :---:| :----: | :---:|\n|2021|\n| [![Star](https://img.shields.io/github/stars/ArrowLuo/CLIP4Clip.svg?style=social&label=Star)](https://github.com/ArrowLuo/CLIP4Clip) <br> **CLIP4Clip: An Empirical Study of CLIP for End to End Video Clip Retrieval** <br>| 文章提出了 CLIP4Clip 模型，以端到端的方式将 CLIP 模型的知识迁移到视频语言检索任务上，研究了三种相似度计算方法：无参数型、顺序型和紧密型.  文章从大量的实验中得出以下结论：1. 对于视频文本检索任务，只用一张图像来进行视频编码是不够；2.  在大规模的视频-文本训练集上进行预训练，可以提高性能，特别是对于零样本预测的能力；3.使用预训练的CLIP，对于小数据集，最好不要引入新参数，视频帧采用平均池化的方式；对于大数据集，最好引入更多参数，以学习大型数据集的时间依赖性； 4.作者给出了最佳超参数设置. |<img src=\"./images/CLIP4Clip.png\"  width=\"640px\"/>  | [[Github](https://github.com/ArrowLuo/CLIP4Clip)] <br> [[Paper](https://arxiv.org/pdf/2104.08860)] |\n|2022|\n| [![Star](https://img.shields.io/github/stars/mzhaoshuai/CenterCLIP.svg?style=social&label=Star)](https://github.com/mzhaoshuai/CenterCLIP) <br> **CenterCLIP: Token Clustering for Efficient Text-Video Retrieval** <br>| 利用CLIP进行文本-视频检索任务，由于视频时域的连续性，会产生很多同质化的token，增加了计算成本. 为了减少冗余视频token的数量，作者提出a multi-segment token clustering算法，找到最具代表性的token并丢弃非必要的. 具体而言，将视频分片，每片单独聚类，且只保留簇的center tokens. 将所有center tokens拼接组成新的visual sequence送如入transformer进行训练. |<img src=\"./images/CenterCLIP.png\"  width=\"640px\"/>  | [[Github](https://github.com/mzhaoshuai/CenterCLIP)] <br> [[Paper](https://arxiv.org/pdf/2205.00823)] |\n|2023|\n| [![Star](https://img.shields.io/github/stars/ABaldrati/CLIP4Cir.svg?style=social&label=Star)](https://github.com/ABaldrati/CLIP4Cir) <br> **Composed Image Retrieval using Contrastive Learning and Task-oriented CLIP-based Features** <br>| 使用clip进行检索. 分为两步：1.微调clip的text encoder 和image encoder；2.设计一个combiner，将两个模态特征fusion，用这个特征做retrieval. |<img src=\"./images/CLIP4Cir1.png\"  width=\"640px\"/>   <img src=\"./images/CLIP4Cir2.png\"  width=\"640px\"/>| [[Github](https://github.com/ABaldrati/CLIP4Cir)] <br> [[Paper](https://arxiv.org/pdf/2308.11485)] | \n| [![Star](https://img.shields.io/github/stars/aneeshan95/Sketch_LVM.svg?style=social&label=Star)](https://github.com/aneeshan95/Sketch_LVM) <br> **CLIP for All Things Zero-Shot Sketch-Based Image Retrieval, Fine-Grained or Not** <br>| 将CLIP应用于零样本草图检索任务（ZS-SBIR）,针对细粒度的检索做出改进. 主要包括1. prompt learning; 2. 引入一个正则项，使跨类别（数据集）的相对距离一致（最小化每个类别对之间的相对距离分布之间的KL散度）；3. patch shuffling，草图-图片数据对分成NxN的patch，随机做相同的shuffle. 作者认为打乱的草图应该更接近具有相同排列顺序打乱的图片，远离不同排列的图片. 这种permutation-invariance 有助于模型细粒度的理解.  通过这些设计，我与之前最先进的技术相比，性能显着提高了 26.9%.| <img src=\"./images/Sketch_LVM.png\"  width=\"640px\"/>| [[Github](https://github.com/aneeshan95/Sketch_LVM)] <br> [[Paper](https://arxiv.org/pdf/2303.13440)] |\n| **NLLB-CLIP – train performant multilingual image retrieval model on a budgett** <br>|  挑战使用$1000解决多语言图像检索模任务. 作者借助CLIP的图像编码器和\"No Language Left Behind\" (NLLB) 模型的文本编码器，在自建的数量级10w+支持200+语言的文本-图像数据集上做了实验， 最终在特定任务上取得了不错的效果.|  | [[Paper](https://arxiv.org/pdf/2309.01859)] |\n|2024|\n| **JINA CLIP: Your CLIP Model Is Also Your Text Retriever** <br>| 传统的text embedding模型，在文本到文本检索中出色，但无法执行cross-modal任务. 诸如Clip之类的模型，有效地对齐图像和文本嵌入，但由于其训练方法和上下文限制，因此未针对文本到文本检索进行优化. 文章提出了一种新颖的多任务对比训练方法，在单个模型中实现了state-of-the-art的文本到文本和文本到图像检索能力. |<img src=\"./images/JINA-CLIP.png\"  width=\"640px\"/>   | [[huggingface](https://huggingface.co/jinaai/jina-clip-v1)] <br> [[Paper](https://arxiv.org/pdf/2405.20204))] |\n\n\n## Detection\n\n\n| Title | Abstract | Intro | Useful Links |\n|:----| :---:| :----: | :---:|\n|2022|\n| [![Star](https://img.shields.io/github/stars/tensorflow/tpu.svg?style=social&label=Star)](https://github.com/tensorflow/tpu) <br> **OPEN-VOCABULARY OBJECT DETECTION VIA VISION AND LANGUAGE KNOWLEDGE DISTILLATION** <br>|本文针对开放词汇目标检测任务，提出ViLD. 通过视觉和语言知识蒸馏的训练方法, 将预训练的开放词汇图像分类模型（教师）中的知识提炼到两级检测器（学生）中. ViLD包括ViLD-text和ViLD-image两部分. 两部分都借助CLIP. 在ViLD-text中，将类别标签使用CLIP文本编码器编码，得到文本embedding, 然后用于对检测到的区域进行分类; ViLD-image则利用蒸馏的方法，训练一个Mask RCNN，使其检测框的embedding与CLIP的图像embedding对齐，同时利用CLIP文本embedding对框分类. 与 ViLD-text 相比，ViLD-image从base和noval类别中提取知识，因为proprals网络可以检测包含新对象的区域，而ViLD-text只从基本类别中学习. 预测阶段，将Mask RCNN提取的region embedding与所有类别embedding(base类别、novel类别、背景等）计算相似度判断分类. | <img src=\"./images/ViLD.png\" width=\"640px\"/> | [[Github](https://github.com/tensorflow/tpu/tree/master/models/official/detection/projects/vild)] <br> [[Paper](https://arxiv.org/pdf/2104.13921)] |\n| [![Star](https://img.shields.io/github/stars/microsoft/RegionCLIP.svg?style=social&label=Star)](https://github.com/microsoft/RegionCLIP) <br> **RegionCLIP: Region-based Language-Image Pretraining** <br>|虽然CLIP在zero-shot和transfer learning settings这样的图片分类任务上表现不俗，但如果直接将CLIP应用到目标检测这种识别图像区域的任务上，表现很差. 原因是存在domain shift，CLIP基于image-text pair的数据集训练，建立的是图片整体和文本描述的联系，与文本没有做局部、细粒度的对齐 . 为了解决这个问题，本文提出regionCLIP ，将图片局部与对应描述对齐，在特征空间实现region-text 对齐. 实验证明，在下游检测任务上，与CLIP相比性能明显提升.  <br><br>🧟‍♂️: pretrain期间显式对齐图像区域和文本标记，有个点，无需人工标注region区域caption，使用的是伪标签，具体做法，建立一个object类别候选池，通过预训练的CLIP，可以将region（RPN提取）与object match起来，然后利用固定的prompt模版生成caption，比如region是一只狗，描述就是 a photo of dog.  这里如果借助LLaVa等模型生成caption，效果会不会更好？当然pretrain成本也会更高，需要balance. | <img src=\"./images/regionCLIP.png\" width=\"640px\"/> | [[Github](https://github.com/microsoft/RegionCLIP)] <br> [[Paper](https://arxiv.org/pdf/2112.09106)] |\n| [![Star](https://img.shields.io/github/stars/allenai/reclip.svg?style=social&label=Star)](https://github.com/allenai/reclip) <br> **ReCLIP: A Strong Zero-shot Baseline for Referring Expression Comprehension** <br>| 借助CLIP的zero-shot能力解决REC问题，提出ReCLIP.  主要包括两个关键部分: 1. Isolated Proposal Scoring (IPS) , 通过crop proposals 和 模糊除当前proposal两种方式，提取局部区域，送入CLIP算一个score，两种方式分数相加; 2.  Spatial Relation Resolver: 因为CLIP处理空间关系能力比较弱，作者利用NLP的一些基本方法，借助spaCy，通过Semantic Trees等规则，计算proposals的最终得分.  注意的是，上述两个模块的输入描述非原始描述，经过了拆分，如noun chunk .|<img src=\"./images/ReCLIP.png\"  width=\"640px\"/>| [[Github](https://github.com/allenai/reclip)] <br> [[Paper](https://arxiv.org/pdf/2204.05991)] |\n|2023|\n| [![Star](https://img.shields.io/github/stars/songrise/CLIP-Count.svg?style=social&label=Star)](https://github.com/songrise/CLIP-Count) <br> **CLIP-Count: Towards Text-Guided Zero-Shot Object Counting** <br>|文章提出一个端到端的框架--CLIP-Count，借助CLIP的多模态和zero-shot的能力来预测密度图，使用文本引导零样本数量计算.  为了将CLIP的image-level能力迁移到下游关注局部的密集任务上，提出patch-text contrastive loss，对齐text和patch的特征空间; 同时， 为了将textual information引入到密dense image features以进行文本引导计数，作者设计了a hierarchical patch-text interaction模块，实现两个模态的deep fusion.  实验表明，该方法人在群计数数据集表现出了sota的准确性和普遍性.  |<img src=\"./images/CLIP-Count.png\"  width=\"640px\"/>| [[Github](https://github.com/songrise/CLIP-Count)] <br> [[Paper](https://arxiv.org/pdf/2305.07304)] |\n| [![Star](https://img.shields.io/github/stars/wenwenyu/TCM.svg?style=social&label=Star)](https://github.com/wenwenyu/TCM) <br> **Turning a CLIP Model into a Scene Text Detector** <br>|将CLIP应用到文本检测任务上 , 作者提出名为TCM的文本检测框架，可以轻松插入现有的检测器. 该方法类似DBNet，模型输出一个HeatMap来回归出box.  主要改进点,1. prompt部分，Predefined  Prompt（“Text”） +  Learnable Prompt（CoOp方法 ） + conditional cue （两层feed-forward网络组成的language prompt generator，输入为clip 编码的图像embedding）. 关于为什么需要增加conditional cue ，作者认为虽然Predefined  Prompt和Learnable Prompt有效果，但如果使用场景的数据分布不一致，模型可能会受到有限的小样本或开放式场景的泛化能力的影响.  2. visual prompt : 文本-图像两个模态信息交互，从CLIP的图像编码器中恢复局部性特征，捕获细粒度信息以响应粗文本区域; 3.. 设计instance-language matching方法来对齐图像嵌入和文本嵌入，鼓励图像编码器从跨模式视觉语言先验中显式细化文本区域. |<img src=\"./images/TCM.png\"  width=\"640px\"/>| [[Github](https://github.com/wenwenyu/TCM)] <br> [[Paper](https://arxiv.org/pdf/2302.14338)] |\n| [![Star](https://img.shields.io/github/stars/tgxs002/CORA.svg?style=social&label=Star)](https://github.com/tgxs002/CORA) <br> **CORA: Adapting CLIP for Open-Vocabulary Detection with Region Prompting and Anchor Pre-Matching** <br>| 借助VLM解决OVD问题，作者认为存在两个难点需要解决，1.VL使用整图训练，用到OVD任务存在分布不匹配问题；2. 如何对没见过类别的定位. 文章针对以上问题，提出一个 DETR 风格的框架，名为CORA.  使用Region prompting来减轻整体到局部的分布差距；Anchor Pre-matching 通过类感知匹配机制学习可泛化的对象定位.  具体而言，Region prompting嵌在Region Classifier模块，该模块主要过程如下：图片经过CLIP 的image encoder （ResNet结构）的1-3层提取特征，经过RoIAlign转为区域特征，再经过CLIP 的image encoder最后一层，之后与可学习的Region Prompts逐元素加法得到Region Embedding. Anchor Pre-Matching使用CLIP分类模型作为指标，为每一个groundtruth分配相同标签的anchor box集合, 目的是为了实现一个能定位潜在物体的网络. |<img src=\"./images/CORA.png\" width=\"640px\"/>| [[Github](https://github.com/tgxs002/CORA)] <br> [[Paper](https://arxiv.org/pdf/2303.13076)] |\n| [![Star](https://img.shields.io/github/stars/zqhang/AnomalyCLIP.svg?style=social&label=Star)](https://github.com/zqhang/AnomalyCLIP) <br> **ANOMALYCLIP: OBJECT-AGNOSTIC PROMPT LEARNING FOR ZERO-SHOT ANOMALY DETECTION** <br>|借助VLM解决零样本异常检测任务(ZSAD)，但VLM 更多地关注于前景目标，不关心图像中的异常/正常. 本文提出AnomalyCLIP,  提升CLIP在ZSAD任务上的表现.  作者认为，学习与对象无关的文本提示，无论其前景对象如何，都可以捕获图像中的正常和异常特征.  AnomalyCLIP设计了object-agnostic的可学习的prompt模版（2个通用的与对象无关的文本提示模板，[object] & [damaged][object]）, 来学习正常和异常的情况. 使用glocal context optimization，将global和fine-grained的异常语义纳入与对象无关的文本提示学习中.  最后利用textual prompt tuning和DPAM在CLIP的text和local visuals 空间进行prompt学习.  |<img src=\"./images/AnomalyCLIP.png\"  width=\"640px\"/>| [[Github](https://github.com/zqhang/AnomalyCLIP)] <br> [[Paper](https://arxiv.org/pdf/2310.18961)] |\n|2024|\n|**TaskCLIP: Extend Large Vision-Language Model for Task Oriented Object Detection** <br>|本文提出基于VLM的两阶段面向任务的目标检测框架--TaskCLIP. 在第一阶段，TaskCLIP对每个场景执行常规的目标检测。 同时，借助LLM，将任务可供性（affordance，个人理解，任务可以用来干什么）解析为几个描述合适对象的共同属性的形容词; 第二阶段，使用VLM作为预训练的backbone，匹配图像和文本embedding。 由此产生的相似度矩阵可以指导合适检测目标的选择.  标准的VLM模型侧重于名词短语与视觉embedding的对齐，针对抽象形容词等抽象概念支持不够，作者设计了transformer-based aligner模块，在VLM基础上校准视觉和文本embedding. 为了进一步缓解训练样本不平衡造成的高FN，作者专门设计了分组选择机制. 通过充分利用通用目标检测器的可用知识，确保选择最合适对象的所有实例. 具体实现上，作者使用COCO-Tasks数据集，检测器分别实验了Faster RCNN和YOLOv8，VLM模型使用CLIP（ViT+RoBERTa），任务的视觉特征属性用ChatGPT生成. 整个框架可以在单个4090.  上进行训练和部署. |<img src=\"./images/TaskCLIP.png\"  width=\"640px\"/>| [[Paper](https://arxiv.org/pdf/2403.08108v2)] |\n\n\n## Segmentation\n\n\n| Title | Abstract | Intro | Useful Links |\n|:----| :---:| :----: | :---:|\n|2021|\n| [![Star](https://img.shields.io/github/stars/warmspringwinds/segmentation_in_style.svg?style=social&label=Star)](https://github.com/warmspringwinds/segmentation_in_style) <br> **Segmentation in Style: Unsupervised Semantic Image Segmentation with Stylegan and CLIP** <br>|文章介绍了一种方法，可以在没有人类监督的情况下自动将图像分割成语义上有意义的区域. 一旦发现了某个类别，就会创建一个包含生成图像和相应分割掩模的合成数据集.使用生成数据集训练分割模型，并且能够推广到真实图像.  <br><br>🧟‍♂️:  多少带点抽象. 个人理解本文主要工作就是自动生成分割数据集，具体而言，借助stylegan2，利用systhesis network的feature map作为分割的mask图(作者主要使用第7和第9层的feature map.  使用 StyleGan 的早期层会产生更粗糙但语义更有意义的clusters. 后面的层会产生更精细的簇，但语义含义更少).  不同的区域如何与类别对应起来？拿人脸举例（FFHQ），作者利用k-means，对生成的feature map聚类，同时，对于很少出现的类别（比如胡子、眼镜等），使用属性编辑的方法（latent控件施加偏移），然后借助CLIP对图片分类（a person with a beard）. 这样作者获得了N个簇心及其特征和图片，再次利用CLIP，就可以计算出每个簇心 对应的类别，即mask区域类别.  个人感觉不太靠谱.....首先是stylegan生成的图片内容和质量，与实际场景有gap，应用范围有限；再次，latent空间各个属性解纠缠并不完全；最后，利用clip做细粒度的分类，效果可能不好，相似分也可能分不开. 具体效果未尝试. |<img src= \"./images/segmentation_in_style.png\"  width=\"640px/\">| [[Github](https://github.com/warmspringwinds/segmentation_in_style)] <br> [[Paper](https://arxiv.org/pdf/2107.12518)] |\n|2022|\n| [![Star](https://img.shields.io/github/stars/raoyongming/DenseCLIP.svg?style=social&label=Star)](https://github.com/raoyongming/DenseCLIP) <br> **DenseCLIP: Language-Guided Dense Prediction with Context-Aware Prompting** <br>| 文章提出一种新的框架，将clip的预训练知识迁移到下游分割、目标检测等密集任务. 作者将CLIP 中的图像-文本匹配问题转换为像素文本匹配问题，并使用像素-文本匹配问题，使用像素-文本匹配得分(pixel-text score maps)来指导密集预测模型的学习.  通过进一步使用图像中的上下文信息来提示语言模型，促进模型更好地利用预训练的知识. |<img src=\"./images/DenseCLIP.png\"  width=\"640px\"/>| [[Github](https://github.com/raoyongming/DenseCLIP)] <br> [[Paper](https://arxiv.org/pdf/2112.01518)] |\n| [![Star](https://img.shields.io/github/stars/chongzhou96/MaskCLIP.svg?style=social&label=Star)](https://github.com/chongzhou96/MaskCLIP) <br> **Extract Free Dense Labels from CLIP** <br>| 文章利用CLIP解决语义分割任务.  作者的失败经验证明，不要破坏预训练CLIP中的 visual-language association至关重要---别微调.  作者通过分析CLIP的图像编码器，认为Transformer 层的输出代表了整个图像的综合表示. 因此， 在预训练CLIP基础上，作者只简单修改了图像编码器的结构，1.移除query 和 key特征layer；2. 将value特征层和最后一个线性层重新构造为两个各自的 1×1 卷积层. 作者将修改后的网络命名为MaskCLIP.  为了进一步提高MaskCLIP的性能，作者提出了两种细化策略，即key smoothing and prompt denoising. 最后，为了摆脱CLIP模型结构的限制，作者又提出MaskCLIP+，将MaskCLIP的predictions 作为伪标签，使用self-training方式训练.  | <img src=\"./images/MaskCLIP.png\"  width=\"640px\"/>| [[Github](https://github.com/chongzhou96/MaskCLIP)] <br> [[Paper](https://arxiv.org/pdf/2112.01071)] |\n|2023|\n| [![Star](https://img.shields.io/github/stars/MendelXu/SAN.svg?style=social&label=Star)](https://github.com/MendelXu/SAN) <br> **Side Adapter Network for Open-Vocabulary Semantic Segmentation** <br>| 使用VLM解决语义分割任务. 作者提出一种端到端的框架，名为Side Adapter Network(SAN). SAN主要有MLP和ransformer层构成，具有双分支结构，分别预测mask proposals和attention biases .  SAN利用预训练的CLIP，freeze掉 CLIP的参数，只用作分类器使用.  将浅层 CLIP 特征融合到 SAN，其他更深的特征与attention biases相结合以进行mask识别. 这里有个点需要注意，原始的CLIP模型只能通过[CLS] token进行图像级的识别.  作者希望在不改变 CLIP 模型参数的情况下，实现精确的mask识别. 借鉴MaskCLIP，使用一组 shadow [CLS] token, 起名 [SLS] tokens，通过attention biases，[SLS]token的特征逐渐演化以适应mask预测，并且通过比较[SLS]标记和CLIP 文本特征之间的相似度得到mask的类别预测.  |<img src=\"./images/SAN.png\"  width=\"640px\"/>| [[Github](https://github.com/MendelXu/SAN)] <br> [[Paper](https://arxiv.org/pdf/2302.12242)] |\n| [![Star](https://img.shields.io/github/stars/linyq2117/CLIP-ES.svg?style=social&label=Star)](https://github.com/linyq2117/CLIP-ES) <br> **CLIP is Also an Efficient Segmenter: A Text-Driven Approach for Weakly Supervised Semantic Segmentation** <br>| 仅使用图像级标签来定位不同类别，而无需进一步训练，本文探索CLIP在弱监督语义分割任务上的潜力.   文章提出一种新的框架，名为CLIP-ES .通过针对CLIP的设计，改进了传统弱监督语义分割 的三个阶段. 1. 在GradCAM中引入softmax函数，使类别互斥，并定义背景集来实现与类别相关的背景抑制，改进CAM 图的冗余和不完整性.  同时提出sharpness-based prompt selection 和 synonym fusion的方法，通过设计特定的文本输入，可以继承CLIP 的多种优点；2. 使用Vit中的attention，attention map是class-agnostic, 但CAM是class-wise，因此提出了class-aware attention-based affinity (CAA)模块来改进初始化的CAMs；3.改进的CAMs作为伪标签，可能存在噪声，因此提出confidence-guided loss (CGL)，忽略伪标签中的噪声来训练最终的分割模型. |<img src=\"./images/CLIP-ES.png\"  width=\"640px\"/>| [[Github](https://github.com/linyq2117/CLIP-ES)] <br> [[Paper](https://arxiv.org/pdf/2212.09506)] |\n| [![Star](https://img.shields.io/github/stars/bytedance/fc-clip.svg?style=social&label=Star)](https://github.com/bytedance/fc-clip) <br> **Convolutions Die Hard: Open-Vocabulary Segmentation with Single Frozen Convolutional CLIP** <br>| 利用CLIP解决开放词汇分割任务. 目前比较常规的方案多为two-stage，即生成mask和mask分类. 本文提出single-stage的方法，命名为FC-CLIP（Frozen Convolutional CLIP）.  FC-CLIP 基于预训练的CLIP（本文使用CNN-based的CLIP.  实验证明，当扩大输入分辨率时，ViT-based 的 CLIP 特征变得更加嘈杂，而 CNN-based 的特征更加平滑并且泛化能力更好），主要由3个模块组成: : class-agnostic mask generator, in-vocabulary classifier和out-of-vocabulary classifier.  作者借鉴Mask2Former，使用pixel decoder and mask decoder来生成类别无关的mask.  out-of-vocabulary classifier仅在测试推理时使用.  在CLIP的文本特征基础上，对两类classifier进行几何集成来获得最终的类别预测.  FC-CLIP在性能和基准测试上均取得了SOTA的结果. |<img src=\"./images/FC-CLIP.png\"  width=\"640px\"/>| [[Github](https://github.com/bytedance/fc-clip)] <br> [[Paper](https://arxiv.org/pdf/2308.02487)] |\n| [![Star](https://img.shields.io/github/stars/jiaosiyu1999/MAFT.svg?style=social&label=Star)](https://github.com/jiaosiyu1999/MAFT) <br> **Learning Mask-aware CLIP Representations for Zero-Shot Segmentation** <br>| 利用CLIP解决零样本分割，作者发现CLIP 对不同的mask proposals不敏感，并且倾向于对同一图像的各种mask proposals产生相似的预测(比如一张图上有人、汽车、房子等，不同的mask区域与相同的文本描述，比如一个人，相似度很接近).  原因是CLIP通过图像-文本对进行训练的，使其对像素级信息（例如背景噪声）不敏感，并导致大量误报. （CLIP里比较 老生常谈的问题，不同domain的 gap）.  本文提出Mask-aware CLIP Fine-tuning 的方法，简称MAFT. 使 CLIP 对不同的mask proposals敏感.  包括使用Image-Proposals CLIP Encoder（在CLIP图像编码器基础上做了针对性优化，如把mask proposals以attention bias形式注入， 中间feature map的repeat以同时获得所有proposals的分类）；使用mask-aware loss来最小化 mask proposals的 IoU 分数与 IP-CLIP Encoder 分类分数之间的距离；最后为了继承CLIP的zero-shot能力，使用frozen CLIP 来蒸馏.  本文提出的方案可以无缝插入大多数现有方法，而无需在微调过程中引入任何新参数. |<img src=\"./images/MAFT.png\"  width=\"640px\"/>| [[Github](https://github.com/jiaosiyu1999/MAFT)] <br> [[Paper](https://arxiv.org/pdf/2310.00240)] |\n| [![Star](https://img.shields.io/github/stars/ZiqinZhou66/ZegCLIP.svg?style=social&label=Star)](https://github.com/ZiqinZhou66/ZegCLIP) <br> **ZegCLIP: Towards Adapting CLIP for Zero-shot Semantic Segmentation** <br>| 本文针对零样本的语义分割，提出一种简单高效的单阶段方法，直接将 CLIP 的零样本预测能力从图像级别扩展到像素级别，取名为ZegCLIP. 主要概括为三种优化设计. 1.fine-tune训练CLIP的图像编码器会丢失zero-shot能力，对训练的类别过拟合，因此使用Deep Prompt Tuning (DPT) 替代fine-tune; 2.使用Softmax这类Exclusive Loss时，pixel必须属于已有类别中的一种，当应用于zero-shot的类别时，class space与训练时不同，会导致未见过的类别结果不准确，因此作者使用Non-mutually Exclusive Loss，基于BCE的focal loss + dice loss; 3. 引入图像-文本的Relationship Descriptor (RD)，在匹配来自CLIP的text-patch embedding之前将image-level prior合并到text embedding中，可以显着防止模型过度拟合所看到的类. 基于基于以上设计，ZegCLIP 展示了卓越的性能，在“inductive”和“transductive”零样本设置下都大大优于最先进的方法.  |<img src=\"./images/ZegCLIP.png\"  width=\"640px\"/>| [[Github](https://github.com/ZiqinZhou66/ZegCLIP)] <br> [[Paper](https://arxiv.org/pdf/2212.03588)] |\n| [![Star](https://img.shields.io/github/stars/facebookresearch/ov-seg.svg?style=social&label=Star)](https://github.com/facebookresearch/ov-seg) <br> **Open-Vocabulary Semantic Segmentation with Mask-adapted CLIP** <br>| 作者发现，目前基于CLIP的two-stage开放词汇语义分割方案，性能瓶颈是预训练的CLIP模型，因为它在mask图像上表现不佳. 因此，作者使用CLIP在mask-文本pair数据集上进行微调. 首先是收集训练集，利用MaskFormer提取现有文本-图像数据集的mask proprals，并且提取文本描述的名词（nouns），利用CLIP做match，对mask proprals和名词做出最佳匹配. 虽然这么做，数据集不可避免存在噪声，但作者认为嘈杂但多样化的数据集可以更好地保留CLIP的泛化能力. 接着文章着手解决如何有效finetune CLIP. mask图像和自然图像的最大区别是，mask图像中的背景像素被mask，导致许多空白区域. 送入CLIP会生成许多zero-tokens，这些token不仅不包含任何有用的信息，而且还会给模型带来域分布偏移（因为自然图像中不存在此类标记）并导致性能下降，为解决这个问题，作者提出mask prompt tuning，用learnable prompt tokens替换zero tokens. 利用这个方法，可以显著提高CLIP在mask图像上的性能. |<img src=\"./images/OVSeg.png\"  width=\"640px\"/>| [[Github](https://github.com/facebookresearch/ov-seg)] <br> [[Paper](https://arxiv.org/pdf/2210.04150)] |\n|2024|\n| [![Star](https://img.shields.io/github/stars/wusize/CLIPSelf.svg?style=social&label=Star)](https://github.com/wusize/CLIPSelf) <br> **CLIPSELF: VISION TRANSFORMER DISTILLS ITSELF FOR OPEN-VOCABULARY DENSE PREDICTION** <br>| 利用CLIP解决开放词汇分割任务，解决CLIP的domain shift问题. 作者首先分析了CNN-based和Vit-based两种CLIP的region-language对齐能力，设计了两种实验，crop图片和从feature map中extract局部的特征，分别做分类任务. 结果表明CNN-based的CLIP，使用局部特征分类可取得不错的效果，证明CNN-based的CLIP在分割任务上有更高的潜力. 因为Vit-based的CLIP缺少局部归纳偏差，feature map更倾向于全局编码. 居于这个结论，作者决定优化Vit-based的CLIP，提出了自蒸馏的方法，名为CLIPSelf. 使用CLIP的图像编码器，将图片剪裁为mxb的patch，teacher特征通过ROIAlign与student对齐，最大化对应区域特征的余弦相似度进行蒸馏训练. 使用region能力提升的CLIP，作者在多个密集任务上实现了SOTA. |<img src=\"./images/CLIPSelf.png\"  width=\"640px\"/>| [[Github](https://github.com/wusize/CLIPSelf)] <br> [[Paper](https://arxiv.org/pdf/2310.01403)] |\n| [![Star](https://img.shields.io/github/stars/Jittor/JSeg.svg?style=social&label=Star)](https://github.com/Jittor/JSeg) <br> **Exploring Regional Clues in CLIP for Zero-Shot Semantic Segmentation** <br>| 文章提出CLIP-RC (CLIP with Regional Clues)来解决CLIP在零样本语义分割任务上的domain shift（image->region）问题. 【整个论文看的有点晕...】CLIP-RC主要包括三个创新，1.引入Region-Level Bridge (RLB)连接image和pixel的特征表示(个人理解就是把图像特征、deep prompt tokens和[CLS] token做了拼接送入网络，做了信息的interaction)；2.Region Alignment Module (RAM): 图像编码器做了修改，重新对齐text-image，同时在RLB基础上，充分利用各种信息;3.Recovery Decoder with Recovery Loss (RDL），训练时使用，减轻零样本学习中的过拟合, 个人理解可以算一个正则项.  |<img src=\"./images/CLIP-RC.png\"  width=\"640px\"/>| [[Github](https://github.com/Jittor/JSeg)] <br> [[Paper](https://openaccess.thecvf.com/content/CVPR2024/papers/Zhang_Exploring_Regional_Clues_in_CLIP_for_Zero-Shot_Semantic_Segmentation_CVPR_2024_paper.pdf)] |\n| [![Star](https://img.shields.io/github/stars/wangf3014/SCLIP.svg?style=social&label=Star)](https://github.com/wangf3014/SCLIP) <br> **SCLIP: Rethinking Self-Attention for Dense Vision-Language Inference** <br>| 作者通过实验分析，认为CLIP分割性能不佳是由patch representation的空间错位引起的，而不是提取密集视觉特征的失败. 认为问题来自self-attention，并针对性的提出Correlative Self-Attention (CSA)模块，通过local token之间的pairwise相关性来确定注意力分数，促使每个local token更关注自身以及与其共享相似信息的位置. 将修改后的CLIP取名为SCLIP (Segmentation-adapted CLIP model) ，SCLIP优于现有方法，在给定预训练CLIP 模型的情况下，既不需要微调，也不需要任何附加参数，这验证了视觉语言模型在密集预测任务中的良好可迁移性. |<img src=\"./images/SCLIP.png\"  width=\"640px\"/>| [[Github](https://github.com/wangf3014/SCLIP)] <br> [[Paper](https://arxiv.org/pdf/2312.01597)] |\n| [![Star](https://img.shields.io/github/stars/dogehhh/ReCLIP.svg?style=social&label=Star)](https://github.com/dogehhh/ReCLIP) <br> **Learn to Rectify the Bias of CLIP for Unsupervised Semantic Segmentation && ReCLIP++: Learn to Rectify the Bias of CLIP for Unsupervised Semantic Segmentation** <br>| 作者认为，当CLIP应用在pixel-level相关任务上，会出现unexpected bias. 以前的工作没有对这种bias显示建模，因此本文对显示的对bias建模，并修正它，以提高CLIP在无监督语义分割上的表现. 首先作者设计了”Query“和”Reference“两种文本输入，“Query”是手动设计（如a photo of dog），“Reference”则采用prompt learning的方式. 两者经过frozen CLIP文本编码后作为分类器，分别代表了原始CLIP的分割能力和CLIP bias对类别的偏好. 同时将CLIP图像编码器中的positional embedding投影为positional logits，来表示CLIP的空间偏好bias. 然后从原始CLIP中减去space和class偏好，完成对CLIP的rectify. 在此基础上利用Gumbel-Softmax（通过引入 Gumbel 随机噪声对 softmax 进行变换，从而得到一个“近似” one-hot 的向量）产生mask，最后利用mask-text做对比学习训练. 额外的，为了进一步提高分割表现，使用了DeepLab V2作为学生网络进行蒸馏训练. <br><br>🧟‍♂️: 抽象且合理，个人理解本质就是解决CLIP的 domain shift, 显示建模，削弱CLIP globa和 关注“突出类别”的特性. |<img src=\"./images/ReCLIP.png\"  width=\"640px\"/>| [[Github](https://github.com/dogehhh/ReCLIP)] <br> [[Paper](https://openaccess.thecvf.com/content/CVPR2024/papers/Wang_Learn_to_Rectify_the_Bias_of_CLIP_for_Unsupervised_Semantic_CVPR_2024_paper.pdf)] <br> [Paper](https://arxiv.org/pdf/2408.06747)] |\n| [![Star](https://img.shields.io/github/stars/wysoczanska/clip_dinoiser.svg?style=social&label=Star)](https://github.com/wysoczanska/clip_dinoiser) <br> **CLIP-DINOiser: Teaching CLIP a few DINO tricks for open-vocabulary semantic segmentation** <br>| 文章提出CLIP-DINOiser，利用self-supervised特征的质量来改善MaskCLIP特征图的噪声，同时利用DINO来指导CLIP如何extract定位信息 |<img src=\"./images/CLIP-DINOiser.png\"  width=\"640px\"/>| [[Github](https://github.com/wysoczanska/clip_dinoiser)] <br> [[Paper](https://arxiv.org/pdf/2312.12359)] |\n| [![Star](https://img.shields.io/github/stars/mc-lan/ClearCLIP.svg?style=social&label=Star)](https://github.com/mc-lan/ClearCLIP) <br> **ClearCLIP: Decomposing CLIP Representations for Dense Vision-Language Inference** <br> | 利用CLIP解决语义分割任务，会生成具有错误分割区域的噪声分割图. 为解决这个问题，作者重新审视了CLIP的架构，通过实验得出如下结论：1.分割图中存在的噪声主要源自残差连接；2.CLIP中的high-level监督强调残差潜在空间中的全局特征方向，使得局部特征向量难以区分并导致残差特征中的噪声. 针对上述问题，作者提出CLearCLIP，在vanilla CLIP上，删除残差连接，采用self-self注意力，丢弃前馈网络（FFN）. 调整后的架构，增强了attention的输出，从而为开放词汇语义分割任务提供更清晰的representation.  <br><br>🧟‍♂️: 可以结合CLIPSurgery看～ |<img src=\"./images/ClearCLIP.png\"  width=\"640px\"/> | [[Github](https://github.com/mc-lan/ClearCLIP)] <br> [[Paper](https://arxiv.org/pdf/2407.12442)] |\n\n\n\n\n## Captioning\n\n\n| Title | Abstract | Intro | Useful Links |\n|:----| :---:| :----: | :---:|\n|2021|\n| [![Star](https://img.shields.io/github/stars/rmokady/CLIP_prefix_caption.svg?style=social&label=Star)](https://github.com/rmokady/CLIP_prefix_caption) <br> **ClipCap: CLIP Prefix for Image Captioning** <br>| 作者提出了CLIPCap模型来生成image captions.具体而言，借助CLIP提取图像embeadding，训练一个mapping network，为每一个caption生成前缀.直接和caption embedding 做结合（concatenation），形成新的embedding，送入GPT-2生成captions. |<img src=\"./images/ClipCap.png\"  width=\"640px\"/>| [[Github](https://github.com/rmokady/CLIP_prefix_caption)] <br> [[Paper](https://arxiv.org/pdf/2111.09734)] |\n|2022|\n| [![Star](https://img.shields.io/github/stars/DavidHuji/CapDec.svg?style=social&label=Star)](https://github.com/DavidHuji/CapDec) <br> **CapDec: Text-Only Training for Image Captioning using Noise-Injected CLIP** <br>| 文章认为，Clip模型的训练，就是将抽取的文本和图片特征尽可能相似. 基于这个观察，只需要设计一个decoder，仅利用文本数据学习如何将文本特征“翻译”到文本，即可实现图片captioning.  <br><br>🧟‍♂️:脑洞很大，又很合理，喜欢这篇文章~👍|<img src=\"./images/CapDec.png\"  width=\"640px\"/>| [[Github](https://github.com/DavidHuji/CapDec)] <br> [[Paper](https://arxiv.org/pdf/2211.00575)] |\n|2023|\n| [![Star](https://img.shields.io/github/stars/dhg-wei/DeCap.svg?style=social&label=Star)](https://github.com/dhg-wei/DeCap) <br> **DECAP: DECODING CLIP LATENTS FOR ZERO-SHOT CAPTIONING VIA TEXT-ONLY TRAINING** <br>|文章提出一个简单的框架来实现Zero-shot Captioning. clip的 text encoder作为输入，使用text-only数据训练一个text decoder。同时，为了解决多模态对比学习中的modality gap问题，作者将 image embedding 送入 text decoder 中解码，实现 Zero-shot Captioning.  |<img src=\"./images/DeCap.png\"  width=\"640px\"/>| [[Github](https://github.com/dhg-wei/DeCap)] <br> [[Paper](https://openreview.net/pdf?id=Lt8bMlhiwx2)] |\n| [![Star](https://img.shields.io/github/stars/j-min/CLIP-Caption-Reward.svg?style=social&label=Star)](https://github.com/j-min/CLIP-Caption-Reward) <br> **Fine-grained Image Captioning with CLIP Reward** <br>| 开源图像描述生成的数据集中，文本描述通常描述最显着的常见对象.  因此使用这些数据训练的图像描述生成模型，往往会忽略图像之间的的特定和详细细节.  本文为了生成更具描述性和独特的描述，使用CLIP的图像文本相似度作为描述生成模型的reward，同时，文章还提出一种 CLIP 文本编码器finetune的策略，以改进文本编码器的语法能力. |<img src=\"./images/CLIP-Caption-Reward.png\"  width=\"640px\"/>| [[Github](https://github.com/j-min/CLIP-Caption-Reward)] <br> [[Paper](https://arxiv.org/pdf/2205.13115)] |\n\n\n## Generation\n\n\n| Title | Abstract | Intro | Useful Links |\n|:----| :---:| :----: | :---:|\n|2021|\n| **CLIPDraw: Exploring Text-to-Drawing Synthesis through Language-Image Encoders** <br>| 文章提出根据自输入文本描述合成新颖图画的算法--CLIPDraw. CLIPDraw基于矢量笔划而不是像素图像进行操作，这一限制使绘图偏向于更简单的人类可识别形状. 随机初始化一组B´ezier curves参数，其经过渲染程序生成图片，做增广后与文本描述分别经过CLIP编码，最小化二者cos距离，更新B´ezier curves参数，经过N轮迭代，得到新颖的绘图. | <img src=\"./images/CLIPDraw.png\"  width=\"640px\"/>  | [[Code](https://colab.research.google.com/github/kvfrans/clipdraw/blob/main/clipdraw.ipynb)] <br> [[Paper](https://arxiv.org/pdf/2106.14843)] |\n| [![Star](https://img.shields.io/github/stars/gnobitab/FuseDream.svg?style=social&label=Star)](https://github.com/gnobitab/FuseDream) <br>**FuseDream: Training-Free Text-to-Image Generation with Improved CLIP+GAN Space Optimization** <br>| 作者使用CLIP+GAN的方法来实现文生图任务（BigGan）.该方法在现成的GAN的latent空间中进行优化，以找到通过CLIP模型测量的给定输入文本实现最大语义相关性得分的图像. 作者发现在GAN空间中优化CLIP分数存在优化问题，像Adam 这样的优化器无法产生令人满意的结果. 因此作者提出FuseDream，通过三个关键技术改进CLIP+GAN的文生图方法. 1.通过增加图像扰动来增强CLIP分数的鲁棒性；2. 提出一种新颖的初始化和超参数化策略，使其有效地在GAN空间中的非凸区域进行优化；3.一种组合生成技术，通过利用一种新颖的双层优化公式，可以组合多个图像以扩展GAN空间并克服data-bias. | <img src=\"./images/FuseDream.png\"  width=\"640px\"/>  | [[Code](https://github.com/gnobitab/FuseDream)] <br> [[Paper](https://arxiv.org/pdf/2112.01573)] |\n|2022|\n| [![Star](https://img.shields.io/github/stars/pschaldenbrand/StyleCLIPDraw.svg?style=social&label=Star)](https://github.com/pschaldenbrand/StyleCLIPDraw) <br> **StyleCLIPDraw: Coupling Content and Style in Text-to-Drawing Translation** <br>| 在CLIPDraw基础上，文章提出文本描述+艺术风格参考图生成图片的方法---StyleCLIPDraw. 遵循风格和内容应同时生成的原则，将二者耦合在一起，整个流程十分清晰，首先定义drawing representation，将其通过渲染程序即可生成光栅化的图片（这里使用DiffVG），这个框架的目标就是优化drawing representation. 光栅化后的图片做增广，经CLIP后通过最小化文本和图片特征的距离来学习内容，同时光栅化后的图片与风格参考图片利用VGG计算感知损失，学习风格，二者同时加入训练. | <img src=\"./images/StyleCLIPDraw.png\"  width=\"640px\"/>  | [[Github](https://github.com/pschaldenbrand/StyleCLIPDraw)] <br> [[Paper](https://arxiv.org/pdf/2106.14843)] |\n| [![Star](https://img.shields.io/github/stars/hila-chefer/TargetCLIP.svg?style=social&label=Star)](https://github.com/hila-chefer/TargetCLIP) <br> **Image-based CLIP-Guided Essence Transfer** <br>| StyleGAN与CLIP结合实现人脸的风格迁移. <br><br>🧟‍♂️: 略读了一下，之前做过一段时间的Gan，对StyleGan还是比较了解的.  CLIP之前，基于StyleGan做一些人脸属性编辑，方法基本大同小异，效用encoder把图片映射到latent空间，然后在这个latent空间对这个向量做一些手脚，比如可以某个方向偏移、额外利用一些分类、或者做fusion等.  本文依旧是latent空间去加一个shift vector，文章称作essence vector，然后利用CLIP 的image encoder去施加监督. 文章给的生成case看着效果还可以，具体还需要测试. | <img src=\"./images/TargetCLIP.png\"  width=\"640px\"/>  | [[Github](https://github.com/hila-chefer/TargetCLIP)] <br> [[Paper](https://arxiv.org/pdf/2110.12427)] |\n| [![Star](https://img.shields.io/github/stars/yael-vinker/CLIPasso.svg?style=social&label=Star)](https://github.com/yael-vinker/CLIPasso) <br> **CLIPasso: Semantically-Aware Object Sketching** <br>| SIGGRAPH 2022 (Best Paper Award) 一种将图像中的物体转换为草图的方法，允许不同层次的抽象.  <br><br>🧟‍♂️关键词: 显着性引导的初始化(a saliency-guided initialization)、基于局部注意力图（based on the local attention maps）、B´ezier curves（贝塞尔曲线是通过一组控制点（P0...Pn）来定义的，P0和Pn是曲线的起点和终点,中间控制点通常不在曲线上）. 首先通过显著图初始化草图的初始点(通过热力图)，然后去迭代更新B´ezier curves 参数（那一组点），通过一个[rasterizer](https://dl.acm.org/doi/pdf/10.1145/3414685.3417871)绘制出草图，借助CLIP计算loss，更新那一组点 ，直到收敛| <img src=\"./images/CLIPasso.png\"  width=\"640px\"/>  | [[Github](https://github.com/yael-vinker/CLIPasso)] <br> [[Paper](https://arxiv.org/pdf/2202.05822)] |\n| [![Star](https://img.shields.io/github/stars/HFAiLab/clip-gen.svg?style=social&label=Star)](https://github.com/HFAiLab/clip-gen) <br> **CLIP-GEN: Language-Free Training of a Text-to-Image Generator with CLIP** <br>| CLIP-GEN是一个Language-Free 的文本生成图像的方法，它不依赖图文训练样本，通过预训练CLIP模型的强大表征能力，只需要图片数据就可以训练出一个文本生成图像的模型。该方法的基本原理是：CLIP-GEN 首先会训练一个 VQ-GAN，把图片映射到离散空间（CodeBook）；然后再训练一个conditional transformer（GPT2），把CLIP的图像embedding 映射到VQ-GAN的离散空间（CodeBook）；由于在 CLIP中，文本和图像共享一个特征空间，在 inference 的时候直接使用CLIP文本特征替换，即可以实现将文本生成图像. | <img src=\"./images/CLIP-GEN.png\"  width=\"640px\"/>  | [[unofficial Github](https://github.com/HFAiLab/clip-gen)] <br> [[Paper](https://arxiv.org/pdf/2203.00386)] |\n| [![Star](https://img.shields.io/github/stars/cyclomon/CLIPstyler.svg?style=social&label=Star)](https://github.com/cyclomon/CLIPstyler) <br> **CLIPstyler: Image Style Transfer with a Single Text Condition** <br>| 无需参考图，通过文本描述实现风格迁移. 文章提出带有多视图增强的patch-wise文本图像匹配loss. 具体而言，对输出图片随机crop，然后对patch做随机扰动得到不同的views. 借助CLIP，计算每个patch和风格描述的CLIP loss. 作者发现，通过应用这种patch-wise的CLIP损失，可以将样式转移到内容图像的每个局部区域. 同时为了防止patch的过渡风格化，又提出了一种新的阈值正则化，以便具有异常高分数的补丁不会影响网络训练. 作者通过大量的实验结果证实了图像风格的成功转移，具有反映语义查询文本的真实纹理.| <img src=\"./images/CLIPstyler.png\"  width=\"640px\"/>  | [[Github](https://github.com/cyclomon/CLIPstyler)] <br> [[Paper](https://arxiv.org/pdf/2112.00374)] |\n| [![Star](https://img.shields.io/github/stars/EleutherAI/vqgan-clip.svg?style=social&label=Star)](https://github.com/EleutherAI/vqgan-clip) <br> **VQGAN-CLIP: Open Domain Image Generation and Editing with Natural Language Guidance** <br>| 结合VQGAN和CLIP，作者提出VQGAN-CLIP实现文生图，无需额外训练. 整个过程十分直观，目标是优化latent空间向量，VQGAN生成的图片经过增广，最小化CLIP计算文本和图像的相似度. done! | <img src=\"./images/VQGAN-CLIP.png\"  width=\"640px\"/>  | [[Github](https://github.com/EleutherAI/vqgan-clip)] <br> [[Paper](https://arxiv.org/pdf/2204.08583)] |\n| [![Star](https://img.shields.io/github/stars/justinpinkney/clip2latent.svg?style=social&label=Star)](https://github.com/justinpinkney/clip2latent) <br> **clip2latent: Text driven sampling of a pre-trained StyleGAN using denoising diffusion and CLIP** <br>| 这个领域早期的论文大同小异，这里简单概述下自己的理解. 基于一个原则，CLIP的文本和图像共享一个特征空间，是对齐的. 具体实现百花齐放. 本文利用StyleGan（优点之一生成图片高分辨率），所以只要找到clip embedding和latent z的映射，即可实现文生图. 作者使用diffusion来找到这个映射关系. StyleGan部分则是使用了mapping network解耦后的18x512特征(印象里这个领域的论文称这个向量为w^*)，理论上，与1x512的latent z相比，各种属性解耦，且表达能力更强. 在训练好这个“映射网络”之后，直接用CLIP的文本特征替换，即可实现文生图. | <img src=\"./images/clip2latent.png\"  width=\"640px\"/>  | [[Github](https://github.com/justinpinkney/clip2latent)] <br> [[Paper](https://arxiv.org/pdf/2210.02347)] |\n|2023|\n| [![Star](https://img.shields.io/github/stars/tobran/GALIP.svg?style=social&label=Star)](https://github.com/tobran/GALIP) <br> **GALIP: Generative Adversarial CLIPs for Text-to-Image Synthesis** <br>| 为了实现高保真、高效、快速、可控的文生图效果，本文提出Generative Adversarial CLIP--GALIP. GALIP将Gan技术与CLIP相结合，在生成器和判别器中都利用了CLIP. 整个框架主要包括三个部分，CLIP的文本编码器、基于CLIP的判别器和CLIP赋能的生成器. 生成器由frozen的CLIP-Vit和mate generator(Mate-G)组成. Mate-G又由bridge feature predictor (Bridge-FP)、 prompt predictor,和image generator组成. 利用上述设计，Mate-G充分利用CLIP的理解能力和泛化性，同时加入随机噪声增加，生成了高质量逼真的复杂图像. 类似的，frozen的CLIP-Vit和mate discriminator(Mate-D)构成了判别器, Mate-D包括CLIP feature extractor(CLIP-FE)和Quality Assessor. CLIP-FE从CLIP-ViT的不同layer抽取特征，与CLIP编码后的文本特征融合后经过Quality Assessor计算对抗损失. GALIP仅需要约3%的训练数据和6%的可学习参数，实现了与大型预训练自回归和扩散模型相当的结果, 在此基础上实现了约120倍的合成速度，继承了GAN 的平滑潜latent空间. | <img src=\"./images/GALIP.png\"  width=\"640px\"/>  | [[Github](https://github.com/tobran/GALIP)] <br> [[Paper](https://arxiv.org/pdf/2301.12959)] |\n|2024|\n| **CLIP4Sketch: Enhancing Sketch to Mugshot Matching through Dataset Augmentation using Diffusion Models** <br>| 文章提出一种生成不同类型草图的方法，名为CLIP4Sketch.  该方法利用DDPM来生成草图，使用CLIP 和 Adaface 分别提取输入参考图片的embedding，二者fusion后与草图风格的文本描述embedding再次fusion，作为扩散模型的条件，精确控制人物身份和草图的风格. 作者利用CLIP4Sketch生成数据，并训练人脸识别模型，验证了该方案的有效性.  | <img src=\"./images/CLIP4Sketch.png\"  width=\"640px\"/>  | [[Paper](https://arxiv.org/pdf/2408.01233)] |\n| [![Star](https://img.shields.io/github/stars/royg27/CLIPAG.svg?style=social&label=Star)](https://github.com/royg27/CLIPAG) <br> **CLIPAG: Towards Generator-Free Text-to-Image Generation** <br>| 本文在VLM上深入研究了感知对齐梯度(PAG). 作者首先证明原始的CLIP不具备感知对齐梯度，然后为了让CLIP拥有PAG，使用了对抗性训练（adversarial training）和随机平滑（randomized smoothing）的方式是图像编码器具备PAG的能力. 实验证明，使用对抗训练的方式微调CLIP图像编码器后，与输入文本表现出最高的一致性.  作者将微调后的CLIP起名为CLIPAG. 接着作者利用“即插即用”的方式，替换一些其他文生图框架中的CLIP，如CLIPDRaw、CLIPStyle等，基于CLIPAG的框架生成的图片在各方面都优于原始CLIP.  最后，作者提出了一种无需生成器的文生图方案，利用CLIPAG的PAG能力，无需额外的生成器，迭代更新图像的pixels以更好地与文本描述对齐，实现文生图.  <br><br>🧟‍♂️: 感知对齐梯度（PAG）是指在鲁棒图像分类模型中观察到的一个有趣的属性，其中它们的输入梯度与人类感知一致并构成语义. 看完这篇文章，get到一些新知识, 最后的无需生成器的文生图方案很有想象力，nice～| <img src=\"./images/CLIPAG.png\"  width=\"640px\"/>  | [[Github](https://github.com/royg27/CLIPAG)] <br> [[Paper](https://arxiv.org/pdf/2306.16805)] |\n| **Text-to-Image Generation Via Energy-Based CLIP** <br>| 将Joint Energy Models引入VLM，将二者结合，改进CLIPAG生成图像不真实的问题同时，减轻JEM的可扩展性和稳定性问题. 作者提出CLIP-JEM，通过像素空间优化实现高分辨率文本到图像的生成. CLIP-JEM使用两个目标来微调CLIP：生成目标和判别目标. 针对生成目标，引入基于CLIP空间中余弦相似度的图像文本能量函数, 训练CLIP为真实的图像文本对分配低能量值，为其他图像文本对分配高能量值. 判别性则采用与CLIPAG相同的contrastive adversarial loss. 与CLIPAG、CLIP相比，LIP-JEM显示出对对抗性示例的鲁棒性和对图像质量的更高敏感性. | <img src=\"./images/CLIP-JEM.png\"  width=\"640px\"/>  |[[Paper](https://arxiv.org/pdf/2408.17046)] |\n\n\n\n\n## Video\n\n\n| Title | Abstract | Intro | Useful Links |\n|:----| :---:| :----: | :---:|\n|2022|\n| [![Star](https://img.shields.io/github/stars/OpenGVLab/efficient-video-recognition.svg?style=social&label=Star)](https://github.com/OpenGVLab/efficient-video-recognition) <br> **Frozen CLIP Models are Efficient Video Learners** <br>| 作者认为针对视频识别任务，端到端的训练、微调模型的效率不高，此外，如果想要借助CLIP的强大zero-shot能力，但却要微调模型，会导致灾难性遗忘.  预训练图像模型的端到端微调并不总是理想的选择，这需要更有效的学习策略来将知识从图像转移到视频，本文提出Efficient Video Learning (EVL) ，直接将CLIP模型参数freeze，训练一个高质量视频识别模型.  使用轻量级的 Transformer frozen CLIP提取视频帧的空间特征作为KV送入decoder，同时作者设计了local temporal 模块来学习帧间的时域关系.|<img src=\"./images/efficient-video-recognition.png\"  width= \"640px\"/>| [[Github](https://github.com/OpenGVLab/efficient-video-recognition)] <br> [[Paper](https://arxiv.org/pdf/2208.03550)] |\n| [![Star](https://img.shields.io/github/stars/microsoft/XPretrain.svg?style=social&label=Star)](https://github.com/microsoft/XPretrain) <br> **CLIP-VIP: ADAPTING PRE-TRAINED IMAGE-TEXT MODEL TO VIDEO-LANGUAGE ALIGNMENT** <br>| 本文提出CLIP-ViP，一个基于预训练CLIP的视频-语言模型.  为了弥合图像和视频数据集之间的domain gaps，作者首先引入域内辅助数据生成方法. 然后提出了一种新颖的Video Proxy机制(额外的toekn)，使ViT模型能够同时用于图像和视频编码. 最后，作者提出了一种全Omnisource Cross-modal Learning（OCL）方法，该方法可以从视频文本和图像文本对中联合学习跨模态分布. |<img src=\"./images/CLIP-ViP.png\"  width= \"640px\"/>| [[Github](https://github.com/microsoft/XPretrain)] <br> [[Paper](https://arxiv.org/pdf/2208.03550)] |\n|2023|\n| [![Star](https://img.shields.io/github/stars/alibaba-mmai-research/CLIP-FSAR.svg?style=social&label=Star)](https://github.com/alibaba-mmai-research/CLIP-FSAR) <br> **CLIP-guided Prototype Modulating for Few-shot Action Recognition** <br>| 文章提出名为CLIP-FSAR的框架，将CLIP引入小样本动作识别任务（few-shot action recognition）. CLIP-FSAR充分利用了 CLIP 模型的多模态知识，并设计了视频-文本对比loss来模拟原始CLIP的训练模式，以及prototype modulation来生成可靠的原型.|<img src=\"./images/CLIP-FSAR.png\"  width= \"640px\"/>| [[Github](https://github.com/alibaba-mmai-research/CLIP-FSAR)] <br> [[Paper](https://arxiv.org/pdf/2303.02982)] |\n| [![Star](https://img.shields.io/github/stars/muzairkhattak/ViFi-CLIP.svg?style=social&label=Star)](https://github.com/muzairkhattak/ViFi-CLIP) <br> **Fine-tuned CLIP Models are Efficient Video Learners** <br>| 文章探索如何将CLIP的强大能力从图片域迁移到视频域.  提出Video Fine-tuned CLIP (ViFi-CLIP)，证明其可以弥合从图像到视频的domain gap . 针对数据量不足以全量微调的情况，提出了bridge and prompt 的方法来减小上述gap.  <br><br>🧟‍♂️: 《Frozen CLIP Models are Efficient Video Learners》 vs  《Fine-tuned CLIP Models are Efficient Video Learners》，打一架吧～|<img src=\"./images/ViFi-CLIP.png\"  width= \"640px\"/>| [[Github](https://github.com/muzairkhattak/ViFi-CLIP)] <br> [[Paper](https://arxiv.org/pdf/2212.03640)] |\n|2024|\n| [![Star](https://img.shields.io/github/stars/Visual-AI/FROSTER.svg?style=social&label=Star)](https://github.com/Visual-AI/FROSTER) <br> **FROSTER: FROZEN CLIP IS A STRONG TEACHER FOR OPEN-VOCABULARY ACTION RECOGNITION** <br>|本文的研究课题是开集动作识别（open-vocabulary action recognition），具体来说就是测试集中的视频动作类别与训练集动作类别基本没有重叠或重叠程度很小，因此这需要模型具备较高的泛化性能. 目前视频领域主流的做法是基于图像-文本对预训练的模型（主要是CLIP）先在视频数据集上进行fine-tuning，然后再进行测试集的验证. 通过实验探索，我们发现：尽管fine-tuning可以让CLIP具备不错的视频特征提取的能力，但这也会让它失去大规模预训练所得到的泛化性能.  具体的表现就是，那些在闭集（closed-set）场景下优秀的视频分类器们，一到了开集场景下实验性能便大大缩水，甚至不如原先的预训练CLIP模型了. 因此如何让视频模型在fine-tuning的同时还能保持住预训练的知识，成为了本文的研究重点.  作者认为一个基于CLIP的开集动作识别模型应该具备以下特点：1.由于CLIP预训练是没有使用视频数据集的，因此模型需要学习视频域的相关知识（video-specific），用于弥补CLIP在时域建模方面的不足; 2模型需要能保持住预训练CLIP的能力，这对于泛化性能力的保持很重要.   作者提出了一种新的结构FROSTER用来同时实现以上两个目标：针对第一点（时域建模），直接采用cross-entropy loss对finetune模型进行监督. 针对第二点（泛化性特征保持），将frozen clip作为teacher模型对fine-tune模型的特征进行蒸馏，借此希望预训练的能力能够得到很好地保持. 蒸馏过程类似于一个正则化项，确保fine-tune特征不会偏离frozen clip的特征太远. 因为有两个不同的目标，我们需要在它们之间平衡特征学习. |<img src=\"./images/FROSTER.png\"  width=\"640px\"/>| [[Github](https://github.com/Visual-AI/FROSTER)] <br> [[Paper](https://hal.science/hal-04534868v1/document)] <br> [知乎](https://zhuanlan.zhihu.com/p/681708426) |\n| [![Star](https://img.shields.io/github/stars/XiaoBuL/OmniCLIP.svg?style=social&label=Star)](https://github.com/XiaoBuL/OmniCLIP) <br> **OmniCLIP: Adapting CLIP for Video Recognition with Spatial-Temporal Omni-Scale Feature Learning** <br>| 文章提出OmniCLIP，将CLIP用于视频识别. 在视频识别任务上，作者认为时间信息的融合应该是全方位的，包括空间、时间和时空. 基于这个观点，OmniCLIP 重点学习涵盖空间、时间和动态时空尺度的综合特征，作者将其称为omni-scale features.  OmniCLIP使用Parallel Temporal Adapter (PTA) 模块增强 CLIP 在时间建模方面的能力，以及Self-Prompt Generator (SPG) 模块来处理不同空间尺度上对象的动态交互和不规则运动. 实验证明，OmniCLIP 在HMDB51等数据集上表现优异. | <img src=\"./images/C2P-CLIP.png \" width=\"640px\"/> | [[Github](https://github.com/chuangchuangtan/XiaoBuL/OmniCLIP)] <br> [[Paper](https://arxiv.org/pdf/2408.06158)] |\n\n## Other\n\n\n| Title | Abstract | Intro | Useful Links |\n|:----| :---:| :----: | :---:|\n|2021|\n| [![Star](https://img.shields.io/github/stars/stanislavfort/OpenAI_CLIP_adversarial_examples.svg?style=social&label=Star)](https://github.com/stanislavfort/OpenAI_CLIP_adversarial_examples) <br> **Adversarial examples for the OpenAI CLIP in its zero-shot classification regime and their semantic generalization** <br>| 一篇比较有意思的博客，作者实验证明，对抗样本（Adversarial Examples）存在于CLIP中，在零样本分类机制中，CLIP 的对抗样本非常容易找到. [Adversarial Examples](https://arxiv.org/pdf/1312.6199)：对输入样本故意添加一些人无法察觉的细微的干扰，导致模型以高置信度给出一个错误的输出. | <img src=\"./images/adversarial.png\" width=\"640px\"/>  | [[Github](https://github.com/stanislavfort/OpenAI_CLIP_adversarial_examples)] <br> [[Blog](https://stanislavfort.com/blog/OpenAI_CLIP_adversarial_examples/)] |\n|2022|\n| [![Star](https://img.shields.io/github/stars/Sense-GVT/DeCLIP.svg?style=social&label=Star)](https://github.com/Sense-GVT/DeCLIP) <br> **Democratizing Contrastive Language-Image Pre-training: A CLIP Benchmark of Data, Model, and Supervision** <br>| 文章提出CLIP-benchmark，是第一个对CLIP及其变体进行评估、分析和测试的基准. 同时，作者提出三个观点，1.数据质量对性能有很大影响；2..某些supervision对卷积网络（ConvNets）和视觉变换器（ViT）有不同的影响. 适当的supervision可以有效地提高CLIP的性能; 3.减少文本编码器可以降低训练成本，但对最终性能影响不大.  此外，作者将DeCLIP与FLIP结合，得到一个性能较好的CLIP变体: DeFILIP.|| [[Github](https://github.com/Sense-GVT/DeCLIP)] <br> [[Paper](https://arxiv.org/pdf/2203.05796)] |\n| [![Star](https://img.shields.io/github/stars/IceClear/CLIP-IQA.svg?style=social&label=Star)](https://github.com/IceClear/CLIP-IQA) <br> **Exploring CLIP for Assessing the Look and Feel of Images** <br>| 借助CLIP做IQA，文章实验证明，CLIP 捕获了有意义的priors，可以很好地推广到不同的感知评估 . | <img src=\"./images/CLIP-IQA.png\" width=\"640px\"/> | [[Github](https://github.com/IceClear/CLIP-IQA)] <br> [[Paper](https://arxiv.org/pdf/2207.12396)] |\n| [![Star](https://img.shields.io/github/stars/GuyTevet/MotionCLIP.svg?style=social&label=Star)](https://github.com/GuyTevet/MotionCLIP) <br> **MotionCLIP: Exposing Human Motion Generation to CLIP Space** <br>| 本文提出MotionCLIP，一种 3D 人体运动auto-encoder，具有特征空间解缠结、与高度语义的文本描述特征对齐的特性. MotionCLIP将人体运动流形与 CLIP 空间对齐，隐式地将 CLIP 极其丰富的语义知识注入到流形中. 文章同时证明，尽管 CLIP 从未见过运动域，但MotionCLIP 提供了前所未有的文本到运动的能力，允许域外操作、解纠缠的编辑和抽象语言规范的能力. | <img src=\"./images/MotionCLIP.png\" width=\"640px\"/> | [[Github](https://github.com/GuyTevet/MotionCLIP)] <br> [[Paper](https://arxiv.org/pdf/2203.08063)] |\n| [![Star](https://img.shields.io/github/stars/deeptibhegde/CLIP-goes-3D.svg?style=social&label=Star)](https://github.com/deeptibhegde/CLIP-goes-3D) <br> **CLIP goes 3D: Leveraging Prompt Tuning for Language Grounded 3D Recognition** <br>| 文章提出了一个名为 CG3D（CLIP Goes 3D）的新预训练框架，该框架使用自然语言监督来训练 3D 编码器，同时还注入了CLIP zero-shot能力. | <img src=\"./images/CLIP-goes-3D.png\" width=\"640px\"/> | [[Github](https://github.com/deeptibhegde/CLIP-goes-3D)] <br> [[Paper](https://arxiv.org/pdf/2303.11313)] |\n| [![Star](https://img.shields.io/github/stars/microsoft/PersonalizedFL.svg?style=social&label=Star)](https://github.com/microsoft/PersonalizedFL) <br> **FedCLIP: Fast Generalization and Personalization for CLIP in Federated Learning** <br>| 利用联邦学习训练CLIP. | <img src=\"./images/PersonalizedFL.png\" width=\"640px\"/> | [[Github](https://github.com/microsoft/PersonalizedFL)] <br> [[Paper](https://arxiv.org/pdf/2302.13485)] |\n| [![Star](https://img.shields.io/github/stars/VicenteVivan/geo-clip.svg?style=social&label=Star)](https://github.com/VicenteVivan/geo-clip) <br> **GeoCLIP: Clip-Inspired Alignment between Locations and Images for Effective Worldwide Geo-localization** <br>|作者受到 CLIP 启发，实现了图像-GPS 的对齐，基于此模型，可实现图片-地点检索的能力.  比较有意思的论文～| <img src=\"./images/GeoCLIP.png\" width=\"640px\"/> | [[Github](https://github.com/VicenteVivan/geo-clip)] <br> [[Paper](https://arxiv.org/pdf/2309.16020v2)] |\n|2024|\n| [![Star](https://img.shields.io/github/stars/MrChenFeng/CLIPCleaner_ACMMM2024.svg?style=social&label=Star)](https://github.com/MrChenFeng/CLIPCleaner_ACMMM2024) <br> **CLIPCleaner: Cleaning Noisy Labels with CLIP** <br>| 文章首次提出利用 VL模型进行样本选择来解决噪声标签学习 (LNL) 问题.  作者使用CLIP，借助其天然的多模态和zero-shot能力，提出一种CLIPCleaner的方法来进行样本选择，并从理论和经验上证实了其有效性（大量公式警告） . | <img src=\"./images/CLIPCleaner.png\" width=\"640px\"/> | [[Github](https://github.com/MrChenFeng/CLIPCleaner_ACMMM2024)] <br> [[Paper](https://www.arxiv.org/pdf/2408.10012)] |\n| [![Star](https://img.shields.io/github/stars/chuangchuangtan/C2P-CLIP-DeepfakeDetection.svg?style=social&label=Star)](https://github.com/chuangchuangtan/C2P-CLIP-DeepfakeDetection) <br> **C2P-CLIP: Injecting Category Common Prompt in CLIP to Enhance Generalization in Deepfake Detection** <br>| 文章涉及AIGC 检测方向，提出一种能够识别各种伪造图像的方法.  首先作者通过实验分析CLIP，认为CLIP 可以通过识别相似的概念来检测深度伪造品. 基于此，引入类别通用提示CLIP（Category Common Prompt CLIP）--C2P-CLIP，它将类别通用提示集成到文本编码器中，将类别相关概念注入到图像编码器中，从而增强检测性能.  实验证明，此方案在UniversalFakeDetect 和GenImage 上取得了SOTA的效果.| <img src=\"./images/C2P-CLIP.png\" width=\"640px\"/> | [[Github](https://github.com/chuangchuangtan/C2P-CLIP-DeepfakeDetection)] <br> [[Paper](https://arxiv.org/pdf/2408.09647)] |\n\n"
  }
]