【大模型开发实战篇】多模态之图片识别

多模态的定义

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

前排提示,文末有大模型AGI-CSDN独家资料包哦!

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

多模态大模型的特点

  • 跨模态理解: 多模态大模型能够理解不同模态数据之间的关系,例如将图像和文本联系起来,理解图像的内容并用文字描述出来。

  • 模态转换: 多模态大模型能够将一种模态的数据转换为另一种模态的数据,例如将文本描述转换为图像,或者将语音转换为文本。

  • 更强的泛化能力: 通过学习多种模态的数据,多模态大模型通常具有更强的泛化能力,能够更好地适应不同的任务和场景。

多模态大模型的应用

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

  • 图像和文本理解: 例如图像搜索、图像描述、视觉问答等。

  • 语音和文本理解: 例如语音识别、语音翻译、智能助手等。

  • 视频和文本理解: 例如视频描述、视频搜索、智能监控等。

  • 跨模态生成: 例如根据文本描述生成图像、根据图像生成文本描述等。

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 OpenAIimport base64import 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-0111beta

图像/视频理解

:具备卓越的多模态理解能力,可同时处理最多5张图像,最长支持2h 视频内容理解

16K

GLM-4V-Plus

图像/视频理解

:具备卓越的多模态理解能力,可同时处理最多5张图像,并支持30s视频内容理解

16K

GLM-4V

图像理解

:持单张图像理解,适用于复杂图像解析的场景

4K

GLM-4V-Flash

免费模型

:支持单张图像理解,适用于简单图像解析的场景

4K

GLM-4V-Plus模型支持最多5张图像的理解以及视频理解,GLM-4V模型只支持图片理解。支持url地址和base64。示例我们使用多轮图片对话形式。

多轮图片对话一

from zhipuai import ZhipuAIclient = ZhipuAI(api_key="") # 填写您自己的APIKeyresponse = 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") # 填写您自己的APIKeyresponse = 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)
import base64from zhipuai import ZhipuAIimg_path = "/Users/YourCompluter/xxxx.jpeg"with open(img_path, 'rb') as img_file:    img_base = base64.b64encode(img_file.read()).decode('utf-8')client = ZhipuAI(api_key="YOUR API KEY") # 填写您自己的APIKeyresponse = client.chat.completions.create(    model="glm-4v-plus-0111",  # 填写需要调用的模型名称    messages=[      {        "role": "user",        "content": [          {            "type": "image_url",            "image_url": {                "url": img_base            }          },          {            "type": "text",            "text": "请描述这个图片"          }        ]      }    ])print(response.choices[0].message)

读者福利:倘若大家对大模型感兴趣,那么这套大模型学习资料一定对你有用

针对0基础小白:

如果你是零基础小白,快速入门大模型是可行的。
大模型学习流程较短,学习内容全面,需要理论与实践结合
学习计划和方向能根据资料进行归纳总结

包括:大模型学习线路汇总、学习阶段,大模型实战案例,大模型学习视频,人工智能、机器学习、大模型书籍PDF。带你从零基础系统性的学好大模型!

😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓

请添加图片描述

👉AI大模型学习路线汇总👈

大模型学习路线图,整体分为7个大的阶段:(全套教程文末领取哈)

第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;

第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;

第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;

第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;

第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;

第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;

第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。

👉大模型实战案例👈

光学理论是没用的,要学会跟着一起做,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

在这里插入图片描述

👉大模型视频和PDF合集👈

这里我们能提供零基础学习书籍和视频。作为最快捷也是最有效的方式之一,跟着老师的思路,由浅入深,从理论到实操,其实大模型并不难

在这里插入图片描述

👉学会后的收获:👈

• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;

• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;

• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;

• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。

👉获取方式:

😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓

### 多模态图像识别概述 多模态图像识别是一种融合多种数据源的技术,旨在通过不同类型的输入来提高识别精度和鲁棒性。这些不同的模式可以包括视觉、听觉以及其他传感器的数据[^1]。 ### 技术原理 为了有效地处理来自多个模态的信息,通常采用特征提取的方法,从每种模态中获取有用的表示形式。对于图像而言,卷积神经网络(CNNs)被广泛应用用于捕捉空间结构;而对于文本或其他序列化信息,则可能使用循环神经网络(RNNs)、长短时记忆网络(LSTMs),或者更先进的Transformer架构来进行编码。 ```python import torch.nn as nn class MultiModalModel(nn.Module): def __init__(self, image_model, text_model): super(MultiModalModel, self).__init__() self.image_encoder = image_model # CNN-based model for images self.text_encoder = text_model # RNN/LSTM/Transformer based model for texts def forward(self, img_input, txt_input): img_features = self.image_encoder(img_input) txt_features = self.text_encoder(txt_input) combined_feature = torch.cat((img_features, txt_features), dim=1) return combined_feature ``` ### 实现方法 一种常见的做法是构建一个多分支的深度学习框架,在该框架下分别训练针对各个单一模态的任务模型,并最终将它们组合起来形成联合决策机制。这种策略不仅能够充分利用各单模态的优势,而且还可以通过对齐不同模态之间的语义关系进一步增强系统的性能表现。 ### 应用场景 #### 面部表情分析 利用摄像头捕获的人脸图片以及麦克风录制的声音片段作为输入,经过预处理后送入到预先训练好的多模态情感分类器中进行情绪状态预测。这有助于改善人机交互体验并提供更加个性化的服务。 #### 自动驾驶辅助系统 车辆周围的环境感知依赖于激光雷达点云图、相机拍摄的道路景象等多种传感设备所提供的异构数据流。借助强大的计算平台实时解析这些复杂而丰富的信号,从而做出安全可靠的行驶规划建议。 #### 医疗影像诊断支持工具 结合X光片、CT扫描结果与病人的电子健康记录共同构成完整的病例资料集。基于此建立起来的AI助手可以帮助医生快速定位病变位置并给出初步诊疗意见,大大提高工作效率的同时也减少了误诊率的发生概率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值