码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • OpenAI CLIP 关键点 - 连接图像和文字


    • 标签: #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. CLIPDraw :CLIPDraw: 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

  • 相关阅读:
    设计模式java版本阅读笔记 一 创建型
    大数据学习的一些概念(值得背)
    集成elastic-job分布式调度定时任务
    长文讲解Linux内核性能优化的思路和步骤
    升级macOS系统到13之后git报错
    优思学院|揭秘六西格玛:七大迷思你不可不知!
    通过TeamViewer 进行连接三种不同的方式
    深入解析 const 关键字:指针、参数、返回值和类成员函数
    Sketch是什么软件,如何收费和获得免费版
    URLDNS利用链分析
  • 原文地址:https://www.cnblogs.com/volnet/p/openai-clip.html
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号