大模型开发实战篇4:多模态之图片识别

多模态的定义

在人工智能领域,模态指的是数据的不同形式或类型,例如文本、图像、音频、视频等。多模态则意味着模型能够处理和理解多种不同模态的数据。

大模型的多模态指的是那些能够处理和理解多种模态数据的大型人工智能模型。这些模型通常基于深度学习技术,通过学习不同模态数据之间的关联和规律,从而实现更强大的功能。

多模态大模型的特点

  • 跨模态理解: 多模态大模型能够理解不同模态数据之间的关系,例如将图像和文本联系起来,理解图像的内容并用文字描述出来。
  • 模态转换: 多模态大模型能够将一种模态的数据转换为另一种模态的数据,例如将文本描述转换为图像,或者将语音转换为文本。
  • 更强的泛化能力: 通过学习多种模态的数据,多模态大模型通常具有更强的泛化能力,能够更好地适应不同的任务和场景。

多模态大模型的应用

多模态大模型在很多领域都有广泛的应用,例如:

  • 图像和文本理解: 例如图像搜索、图像描述、视觉问答等。
  • 语音和文本理解: 例如语音识别、语音翻译、智能助手等。
  • 视频和文本理解: 例如视频描述、视频搜索、智能监控等。
  • 跨模态生成: 例如根据文本描述生成图像、根据图像生成文本描述等。

Hugging Face 平台上的多模态模型

Hugging Face 平台提供了丰富的多模态模型,例如:

  • CLIP: 一个由 OpenAI 开发的图像和文本理解模型,能够将图像和文本联系起来。
  • ALIGN: 一个由 Google 开发的图像和文本理解模型,具有强大的跨模态理解能力。
  • Visual-T5: 一个由 Google 开发的视觉问答模型,能够回答与图像内容相关的问题。

OpenAI的多模态功能非常丰富,文本、图片、语音、视频等都有。DeepSeek目前仅在文本模态,其他模态尚无。智普的多模态也做的挺好,功能也比较强大。本文通过OpenAI和智普的WebAPI演示图片识别功能,也俗称 图生文。

一、OpenAI的图片识别

使用OpenAI的Chat Complations接口,content的内容与普通的对话接口不一样,对话接口的content是一段文本,图生文的处理中,content是一组数组。

数组代表多组图片或提示词,prompt提示词使用type=“text”的text中,图片放type="image_url"的image_url里;若有多张图片则content的数组增加多个。

单轮图片URL对话一

from openai import OpenAI

client = OpenAI(api_key="xxx", base_url="https://vip.apiyi.com/v1")
model="gpt-4-turbo"


response = client.chat.completions.create(
  model=model,
  messages=[
    {
      "role": "user",
      "content": [
        {"type": "text", "text": "请描述下这张图片"},
        {
          "type": "image_url",
          "image_url": {
            "url": "https://p6.itc.cn/q_70/images03/20200602/0c267a0d3d814c9783659eb956969ba1.jpeg",
          },
        },
      ],
    }
  ],
  max_tokens=300,
)

print(response.choices[0])

返回:

Choice(finish_reason='length', index=0, logprobs=None, message=ChatCompletionMessage(content='这张图片是一张幽默风格的搞笑对比图,展示了两种不同类型的犬类形象。左边的图像是一只金毛色的狗,经过创意修改,被赋予了一副人类的肌肉健身身体,看起来非常壮实和强壮。右边的图像呈现了一只正常体型的柴犬坐着的样子,显得较为柔弱和平静。\n\n左侧的标题是“16岁的我”,下方的文字是我日常与一片云聊天,我不落地,人们轻轻的大腿。右侧的标题是“工作后的我”,下方的文字是好累好累,好想躺地洗澡,我不想洗澡,我在考虑小吃。\n\n这种对比图旨在幽默的比较了人在年轻时候的梦想与壮志与工作后可能的现实感受的差距', refusal=None, role='assistant', audio=None, function_call=None, tool_calls=None))

上面例子中图片是使用网络地址,也可以使用本地图片转base64。

单轮图片Base64对话二

from openai import OpenAI
import base64
import requests 

client = OpenAI(api_key="sk-xxxx", base_url="https://vip.apiyi.com/v1")  # 初始化 OpenAI 客户端
model="gpt-4-turbo"

image_path="./images/gdp_1980_2020.jpg"

# 实现 Base64 编码
def encode_image(path):
    with open(path, "rb") as image_file:
        return base64.b64encode(image_file.read()).decode('utf-8')

# 获取图像的 Base64 编码字符串
base64_image = encode_image(image_path)

# 构造请求的负载
messages = [
            {
                "role": "user",
                "content": [
                    {"type": "text", "text": "请提取图片中的文字"},
                    {"type": "image_url", "image_url": {"url": f"data:image/jpeg;base64,{base64_image}"}}
                ]
            }
        ]

response = client.chat.completions.create(
      model=model,
      messages= messages,
      max_tokens=1000
)

print(response.choices[0])

二、智普的图片识别

GLM-4V-Plus模型支持最多5张图像的理解以及视频理解,GLM-4V模型只支持图片理解。支持url地址和base64。

多轮图片对话一

from zhipuai import ZhipuAI
client = ZhipuAI(api_key="") # 填写您自己的APIKey
response = client.chat.completions.create(
    model="glm-4v-plus-0111",
    stream=False,
    messages=[
        {
            "role": "user",
            "content": [
                {
                    "type": "image_url",
                    "image_url": {
                        "url": "https://aigc-files.bigmodel.cn/api/cogview/202411181621355e276522adac433a_0.png"
                    }
                },
                {
                    "type": "image_url",
                    "image_url": {
                        "url": "https://aigc-files.bigmodel.cn/api/cogview/2024111816214822f9ee58eefa48bc_0.png"
                    }
                },
             {
                    "type": "image_url",
                    "image_url": {
                        "url": "https://aigc-files.bigmodel.cn/api/cogview/2024111816415481bfd2e6ef99445e_0.png"
                    }
                },
                {
                    "type": "image_url",
                    "image_url": {
                        "url": "https://aigc-files.bigmodel.cn/api/cogview/20241118164408b8bdfd6a63484cf3_0.png"
                    }
                },
            {
                    "type": "image_url",
                    "image_url": {
                        "url": "https://aigc-files.bigmodel.cn/api/cogview/20241118164507bfd683b3d8d84de8_0.png"
                    }
                },
                {
                    "type": "text",
                    "text": "图中的狗有什么区别"
                }
            ]
        }
    ]
)

# 输出结果
print(response)

多轮图片对话二

from zhipuai import ZhipuAI

client = ZhipuAI(api_key="YOUR API KEY") # 填写您自己的APIKey
response = client.chat.completions.create(
    model="glm-4v-plus-0111",  # 填写需要调用的模型名称
    messages=[
      {
          "content": [
              {
                  "image_url": {
                      "url": "https://cdn.bigmodel.cn/xxxxxx.png"
                  },
                  "type": "image_url"
              },
              {
                  "text": "图中有什么",
                  "type": "text"
              }
          ],
          "role": "user"
      },
      {
          "content": [
              {
                  "text": "这是一幅描绘自然风景的画,展现了一片宁静的湖泊,湖水呈现出深浅不一的蓝绿色调。湖边长着一棵盛开的樱花树,粉白色的花朵在阳光下显得格外鲜艳。树下有一位身穿蓝色衣服的人坐在船上,似乎正在享受这美好的时光。\n\n背景是连绵起伏的山脉,山体被绿色的植被覆盖,山顶则被云雾缭绕,增添了几分神秘感。远处还可以看到一座小亭子,它坐落在湖边的岩石上,与周围的自然环境和谐相融。\n\n整个画面给人一种宁静、和谐的感觉,仿佛置身于一个世外桃源之中。",
                  "type": "text"
              }
          ],
          "role": "assistant"
      },
      {
          "content": [
              {
                  "image_url": {
                      "url": "https://cdn.bigmodel.cn/xxxxxxx.jpeg"
                  },
                  "type": "image_url"
              },
              {
                  "text": "这个图与上面图有什么不一样",
                  "type": "text"
              }
          ],
          "role": "user"
      },
      {
          "content": [
              {
                  "text": "第一张图和第二张图在画面内容、构图、色彩等方面都有很大的不同,形成鲜明的对比。\n\n1.第一张图是风景画,主要描绘了自然风景,如樱花树、湖泊、山脉等,色彩丰富,充满春天的气息,而第二张图是描绘长城在冬季的风景照片,长城在白雪覆盖的山脉中蜿蜒盘旋,整体色调偏冷,给人一种寒冷、宁静的感觉。\n\n2.构图上,第一张图采用对称式构图,以樱花树为中心,两侧的景物相互呼应,形成平衡和谐的画面效果,第二张图则采用对角线构图,长城作为视觉引导线,引导观众的视线穿越整个画面,增加画面的深度和动态感。\n\n整体来看,这两张图在画面内容、色彩、构图和氛围上都呈现出明显的对比,一张是充满生机和色彩的春日风景画,另一张是宁静而神秘的冬日长城风景照。",
                  "type": "text"
              }
          ],
          "role": "assistant"
      },
      {
          "content": [
              {
                  "image_url": {
                      "url": "https://cdn.bigmodel.cn/xxxxxxx.jpeg"
                  },
                  "type": "image_url"
              },
              {
                  "text": "这个图与上一张图有什么区别",
                  "type": "text"
              }
          ],
          "role": "user"
      }
    ]
)
print(response.choices[0].message)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/972689.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

力扣 跳跃游戏 II

贪心算法,存下每一步的最远,去达到全局的最小跳跃次数。 题目 从题中要达到最少次数,肯定是每一步尽可能走远一点。但注意j被限制了范围,这种不用想每一步遍历时肯定选最大的num[i],但要注意,题中是可以到…

goland无法debug项目

1、其实个原因是因为正在使用的Delve调试器版本太旧,无法兼容当前的Go语言版本1.2。Delve是Go语言的一个调试工具,用于提供源码级别的调试功能。Go语言每隔一段时间会发布新版本,而相应的调试器Delve也可能会更新以提供新的特性或修复已知问题…

SpringAI系列 - ToolCalling篇(二) - 如何设置应用侧工具参数ToolContext(有坑)

目录 一、引言二、集成ToolContext示例步骤1: 在`@Tool`标注的工具方法中集成`ToolConext`参数步骤2:`ChatClient`运行时动态设置`ToolContext`参数三、填坑一、引言 在使用AI大模型的工具调用机制时,工具参数都是由大模型解析用户输入上下文获取的,由大模型提供参数给本地…

​实在智能与宇树科技、云深科技一同获评浙江省“人工智能服务商”、 “数智优品”​等荣誉

近日,浙江省经信厅正式公布《2024 年浙江省人工智能应用场景、应用标杆企业、人工智能服务商及 “数智优品” 名单》。 实在智能获评浙江省“人工智能服务商”,核心产品 “实在 Agent 智能体” 入选 “数智优品”。一同获此殊荣的还有宇树科技、云深处科…

【云安全】云原生-Docker(六)Docker API 未授权访问

Docker API 未授权访问 是一个非常严重的安全漏洞,可能导致严重的安全风险。 什么是 Docker API ? Docker API 是 Docker 容器平台提供的一组 RESTful API,用于与 Docker 守护程序进行通信和管理 Docker 容器。通过 Docker API,…

open-webui安装

docker安装openwebui 拉取镜像 docker pull ghcr.io/open-webui/open-webui:maindocker images启动 docker run -d -p 8346:8080 --name open-webui ghcr.io/open-webui/open-webui:maindocker ps查看端口占用 lsof -i:8346访问地址 http://ip:port http://127.0.0.1:8346

在ubuntu上用Python的openpyxl模块操作Excel的案例

文章目录 安装模块读取Excel数据库取数匹配数据和更新Excel数据 在Ubuntu系统的环境下基本职能借助Python的openpyxl模块实现对Excel数据的操作。 安装模块 本次需要用到的模块需要提前安装(如果没有的话) pip3 install openpyxl pip3 install pymysql在操作前,需…

SOME/IP--协议英文原文讲解8

前言 SOME/IP协议越来越多的用于汽车电子行业中,关于协议详细完全的中文资料却没有,所以我将结合工作经验并对照英文原版协议做一系列的文章。基本分三大块: 1. SOME/IP协议讲解 2. SOME/IP-SD协议讲解 3. python/C举例调试讲解 4.2 Speci…

基于YOLO11深度学习的果园苹果检测与计数系统设计与实现【python源码+Pyqt5界面+数据集+训练代码】

《------往期经典推荐------》 一、AI应用软件开发实战专栏【链接】 项目名称项目名称1.【人脸识别与管理系统开发】2.【车牌识别与自动收费管理系统开发】3.【手势识别系统开发】4.【人脸面部活体检测系统开发】5.【图片风格快速迁移软件开发】6.【人脸表表情识别系统】7.【…

【C++】 Flow of Control

《C程序设计基础教程》——刘厚泉,李政伟,二零一三年九月版,学习笔记 文章目录 1、选择结构1.1、if 语句1.2、嵌套的 if 语句1.3、条件运算符 ?:1.4、switch 语句 2、循环结构2.1、while 语句2.2、do-while 语句2.3、 for 循环2.4、循环嵌套…

mysql 学习15 SQL优化,插入数据优化,主键优化,order by优化,group by 优化,limit 优化,count 优化,update 优化

插入数据优化, insert 优化, 批量插入(一次不超过1000条) 手动提交事务 主键顺序插入 load 从本地一次插入大批量数据, 登陆时 mysql --local-infile -u root -p load data local infile /root/sql1.log into table tb…

玩转大语言模型——使用LM Studio在本地部署deepseek R1的零基础)教程

系列文章目录 玩转大语言模型——使用langchain和Ollama本地部署大语言模型 玩转大语言模型——三分钟教你用langchain提示词工程获得猫娘女友 玩转大语言模型——ollama导入huggingface下载的模型 玩转大语言模型——langchain调用ollama视觉多模态语言模型 玩转大语言模型—…

【复现DeepSeek-R1之Open R1实战】系列7:GRPO原理介绍、训练流程和源码深度解析

目录 4.6 GRPO训练过程4.6.1 GRPO原理4.6.2 设置参考模型4.6.3 从训练集中抽取问题4.6.4 旧策略模型生成G个输出4.6.5 对每个输出用奖励模型 RM 打分4.6.6 根据目标函数做梯度更新 【复现DeepSeek-R1之Open R1实战】系列博文链接: 【复现DeepSeek-R1之Open R1实战】…

STM32物联网终端实战:从传感器到云端的低功耗设计

STM32物联网终端实战:从传感器到云端的低功耗设计 一、项目背景与挑战分析 1.1 物联网终端典型需求 (示意图说明:传感器数据采集 → 本地处理 → 无线传输 → 云端存储) 在工业物联网场景中,终端设备需满足以下核心需…

R 语言科研绘图第 26 期 --- 密度图-基础

在发表科研论文的过程中,科研绘图是必不可少的,一张好看的图形会是文章很大的加分项。 为了便于使用,本系列文章介绍的所有绘图都已收录到了 sciRplot 项目中,获取方式: R 语言科研绘图模板 --- sciRplothttps://mp.…

Starlink卫星动力学系统仿真建模番外篇6-地球敏感器

地球敏感器:介绍、使用方法及相关算法 地球敏感器是航天器姿态控制系统中的重要传感器,用于确定地球相对于航天器的位置和方向。它在卫星、空间站和深空探测器等任务中广泛应用,主要用于姿态控制、轨道调整和导航。本文将介绍地球敏感器的基…

【含文档+PPT+源码】基于微信小程序的猎兔汽车保养维修美容服务平台的设计与实现

项目介绍 本课程演示的是一款基于微信小程序的猎兔汽车保养维修美容服务平台的设计与实现,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的 Java 学习者。 1.包含:项目源码、项目文档、数据库脚本、软件工具等所有资料 2.带你从零开始部…

斐波那契数列模型:在动态规划的丝绸之路上追寻斐波那契的足迹(上)

文章目录 引言递归与动态规划的对比递归解法的初探动态规划的优雅与高效自顶向下的记忆化搜索自底向上的迭代法 性能分析与比较小结 引言 斐波那契数列,这一数列如同一条无形的丝线,穿越千年时光,悄然延续其魅力。其定义简单而优美&#xff…

基于微信小程序的宿舍报修管理系统设计与实现,SpringBoot(15500字)+Vue+毕业论文+指导搭建视频

运行环境 jdkmysqlIntelliJ IDEAmaven3微信开发者工具 项目技术SpringBoothtmlcssjsjqueryvue2uni-app 宿舍报修小程序是一个集中管理宿舍维修请求的在线平台,为学生、维修人员和管理员提供了一个便捷、高效的交互界面。以下是关于这些功能的简单介绍: …

Linux环境开发工具

Linux软件包管理器yum Linux下安装软件方式: 源代码安装rpm安装——Linux安装包yum安装——解决安装源、安装版本、安装依赖的问题 yum对应于Windows系统下的应用商店 使用Linux系统的人:大部分是职业程序员 客户端怎么知道去哪里下载软件&#xff1…