• 标签: #CLIP #Image2Text #Text2Image #OpenAI
  • 创建时间:2023-04-21 00:17:52

基本原理

  1. CLIP是一个图像分类模型。
  2. 准备训练数据:准备大量的文本描述和图片的训练对,然后把进行对比训练。
  3. 文本描述和图片的训练对的数据获取:从互联网上获得400Million的图像文本数据对。这个 规模大致和GPT-2的数据规模相当。

    1. 好处1:数据获取容易。传统的做法会对图像进行分类,以ImageNet为例,获得图片后需要人工进行分类标注,这个周期长成本高。

    2. 好处2:迁移能力强。过去是精确分类一张图片,这样当出现一个未包含的图片的时候,在已知图片分类里就找不到对应的答案了。而CLIP因为训练的素材里面的描述是文本性的(而不是一两个单词的简单分类名称),因此它获得了更好的泛化能力。
  4. 因为有了这么大的数据,所以需要更好大量的算力,以及优质的算法。
    1. Text Encoder采用的是Transformer。
    2. Image Encoder采用的是Vision Transformer。
    3. 整个计算在256个V100 GPU上训练2周(12天),得出了ViT-L/14@336px模型。
  5. CLIP的设计初衷是为了能够做到零样本迁移(Zero-Shot)到下游数据集上的,也就是说,希望训练完的模型,在遇到一个完全没有见过的图片训练集的时候,可以进行高效的分类。为了达到这个零样本学习的能力:
    1. 研发人员摒弃了传统的数据集,因为传统的数据集通常是建立在明确分类基础上的,所以当一个新分类的图片出现的时候,这个模型就不知所措了。
    2. 把一般的分类换成一个描述性的文本,则可以比较好的解决这个问题。这里列出了他们准备文本描述的模板,通过这些模板,可以把一个带有歧义的单词,变成一个有意义的图像描述,比如论文里举例:boxer,当只提到这个词的时候,我们可能以为它是个拳击手,但是当结合了模板A photo of a {label}, a type of pet.(其中{label}替换成boxer)那么boxer就可以被理解为一种狗(其中在生成数据的时候,比如a type of pet部分也是可以自动拼进去的,比如图片本来就来自牛津词典宠物图片集,那么自然就可以增加这样的分类信息,这会进一步让图像识别变得更加精准)。
  6. 主要用途:图像搜索(基于文本)、自然语言描述图像等。
  7. 限制:参考论文P18(6. Limitations)
  8. 结果:CLIP在Zero-Shot的情况下,在大部分常见数据集上都比特定训练的模型表现的好。在一些特别的模型基础上,Zero-Shot可能不一定有很好的效果,但是进行Few-shot则比特定训练的模型表现要好,因此模型具备很强的迁移能力。
  9. 引发的思考:
    1. 数据量大,就可以获得不一样的研究方法和模型效果。其实CLIP用到的方法并不新鲜,前人也有用过类似的方法,但是因为没有采用这么大的数据量,所以没有达到SOTA的效果。
    2. 模型的输入输出都变成了token,也可以理解都都是文本,它和NLP领域的GPT模型带来的颠覆性相似。
    3. 因为是一般性的文本描述,而不是特定分类描述,所以模型具备了多模态的特性。
    4. 因为是一般性的文本描述,所以模型可以用于自然语言描述图像。
  10. 这个项目的训练方法没有开源,但是训练结果的模型开源了。

基于CLIP延展的项目

  1. StyleCLIP:变化发型、眼睛等。
  2. CLIPDrawCLIPDraw: Exploring Text-to-Drawing Synthesis through Language-Image Encoders 可以通过CLIP绘制一些蜡笔画。
  3. Paper:Open-Vocabulary Object Detection Using Captions 基于字幕的开放词汇目标检测 目标检测。
  4. Contrastive Language-Image Forensic Search 基于文本对视频中的内容进行检索。

参考资料

  1. Paper: Learning Transferable Visual Models From Natural Language Supervision 从自然语言监督中学习可迁移的视觉模型

    1. CLIP 论文逐段精读【论文精读】
  2. OpenAI | CLIP: Connecting text and images CLIP:连接文本和图像

转载请注明出处:https://www.cnblogs.com/volnet/p/openai-clip.html

OpenAI CLIP 关键点 - 连接图像和文字的更多相关文章

  1. 在OCR文字识别软件选项卡中怎么设置图像和文字

    PDF是广泛使用的文档格式.在ABBYY Finereader中,PDF文档的显示不会因电脑不同而有差异,可加密保护,非常适合在电子存档中进行保存.下面给 大家讲解如何在PDF选项设置图像和文字. 图 ...

  2. Matlab绘图基础——给图像配文字说明(text对象)

      text对象 (1)text(x坐标,y坐标,'string')在图形中指定位置(x,y)显示字符串string.(2)Editing有效值为on/off,off时,用户在执行GUI操作时无法直接 ...

  3. opencv图像加文字与运行时间

    //获取推断时间 vector<double>layterTimings; double freq = getTickFrequency() / 1000; //得到ms double t ...

  4. 机器学习进阶-案例实战-图像全景拼接-图像全景拼接(RANSCA) 1.sift.detectAndComputer(获得sift图像关键点) 2.cv2.findHomography(计算单应性矩阵H) 3.cv2.warpPerspective(获得单应性变化后的图像) 4.cv2.line(对关键点位置进行连线画图)

    1. sift.detectAndComputer(gray, None)  # 计算出图像的关键点和sift特征向量 参数说明:gray表示输入的图片 2.cv2.findHomography(kp ...

  5. OpenAI Java SDK——chatgpt-java-v1.0.3更新支持GPT-3.5-Turbo,支持语音转文字,语音翻译。

    简介 chatgpt-java是一个OpenAI的Java版SDK,支持开箱即用.目前以支持官网全部Api.支持最新版本GPT-3.5-Turbo模型以及whisper-1模型.增加chat聊天对话以 ...

  6. [ javascript css clip ] javascript css clip 的奇思妙想之文字拼接效果

      语法: clip : auto | rect ( number number number number ) 参数: auto : 对象无剪切 rect ( number number numbe ...

  7. Zybo智能小车识别图像中的文字

    智能小车识别图像中的文字 [TOC] 运行平台 这次的内容是基于Xilinx公司的Zybo开发板以及其配套的Zrobot套件开发 Zybo上面的sd卡搭载了Ubuntu12.04LTS的linux版本 ...

  8. javacpp-opencv图像处理之1:实时视频添加文字水印并截取视频图像保存成图片,实现文字水印的字体、位置、大小、粗度、翻转、平滑等操作

    欢迎大家积极开心的加入讨论群 群号:371249677 (点击这里进群) javaCV图像处理系列: javaCV图像处理之1:实时视频添加文字水印并截取视频图像保存成图片,实现文字水印的字体.位置. ...

  9. 使用 Python 识别并提取图像中的文字

    1. 介绍 介绍使用 python 进行图像的文字识别,将图像中的文字提取出来,可以帮助我们完成很多有趣的事情. 2. 必备工具 tesseract-ocr 下载地址: https://github. ...

  10. 《Hierarchical Text-Conditional Image Generation with CLIP Latents》阅读笔记

    概括 模型总述 本篇论文主要介绍DALL·E 2模型,它是OpenAI在2022年4月推出的一款模型,OpenAI在2021年1月推出了DALL·E模型,2021年年底推出了GLIDE模型. DALL ...

随机推荐

  1. idea导入数据库

    yml文件(在启动项文件(main)里,eg:springbook文件里面) sh-bean里org.example.sh.beans的Category类   CategoryDAO名字要和Categ ...

  2. 5G如何加速无人快递?5G智能网关新应用

    网上购物已经是现代生活的主流消费方式之一,伴随网购的繁荣,物流快递行业也进入到一个最火热的时期.而在这之中,有限的快递配送能力和日益增长的配送需求的矛盾持续凸显,因此无人快递车一类的创新应用也应运而生 ...

  3. 安装mysql8.0

    安装repo源 参考mysql官方文档 参考文章 redhat7通过yum安装mysql5.7.17教程:https://www.jb51.net/article/103676.htm mysql r ...

  4. oralce 11g 数据库及客户端client等的下载安装

    下载地址:https://www.oracle.com/cn/database/technologies/microsoft-windows.html

  5. vs调试导入功能时莫名自动结束调试

    新装了vs2022,默认下图所示的地方打勾,导致调试文件导入功能时触发了自动结束调试,真是坑爹~~

  6. 从零开始,开启属于你的 RTE 漫游之旅!丨漫游指南 x 即将启航

    什么是「开发者漫游指南」? 「开发者漫游指南」邀请热爱前端开发.关心音视频领域发展.希望进入音视频行业.乐于和大家一起交流成长的小伙伴,通过「开发者漫游指南」与社区共同成长,帮助更多的开发者在实时音视 ...

  7. ZGC 最新一代垃圾回收器[NO]

    ​ZGC(The Z Garbage Collector)是JDK 11中推出的一款低延迟垃圾回收器,ZGC可以说源自于 Azul System 公司开发的C4收集器[基本不用调优]它的设计目标包括: ...

  8. 2.Web开发基础

    Web开发基础 目录 Web开发基础 1.网络基础 2.OSI模型 应用层: 表示层: 会话: 传输层: 网络层: 数据链路层: 物理层: 3.通信子网:(数据通信) 4.资源子网:(数据处理) 5. ...

  9. Python 霸榜的一周,又有什么新 AI 力作呢?「GitHub 热点速览」

    GPT 带火了一波语言模型,LLaMA 和 Alpaca 也在持续发力.依旧是各类 GPT 后缀霸榜 GitHub trending 的一周,为此特推部分专门收录了两个比较不错的 GPT 应用.而作为 ...

  10. 随机服务系统模拟—R实现(三)

    M/M/c随机服务系统的模拟 M/M/1服务系统:(1)队列长度没有限制:(2)顾客到达的时间间隔和服务时间均服从指数分布:(3)服务台数量为c. 一.M/M/c随机服务系统的模拟 在M/M/c排队系 ...