随着 AI 驱动技术的不断发展,图像分析正变得日益复杂,从而能够从视觉数据中获得更深入的洞察分析。随着机器学习的进步,AI 可以处理上传的图像、提取元数据,并支持大规模的内容审核。这些分析工具还有助于定价、视觉优化和图像生成等应用程序的预测建模,从而提高工作流程的成本效益和效率。通过整合数据驱动的方法,AI 增强了自动化和决策能力,为智能视觉解读提供了新的可能性。
随着计算机视觉和先进 AI 的快速发展,企业和研究人员正在利用将基于图像的技术应用地更广泛的领域。从图像分类和 OCR(光学字符识别)到分割和视频分析,人工智能驱动的工具正在改变我们提取和分析视觉信息的方式。
在社交媒体等行业,AI 通过像素级图像分析来增强内容审核,确保合规性并提升用户参与度。企业还可以利用 Vision API 进行自动化文档处理,将扫描文件、Excel 表格和报告转换为结构化数据。这些应用程序能够简化工作流程,提高效率,并使组织能够从大规模视觉数据集中提取有意义的洞察分析。
这些用例凸显了人工智能驱动的图像分析在整个行业中日益重要的作用。在本教程中,我们重点关注将这些功能应用于 PowerPoint 演示文稿,利用先进的计算机视觉和 AI 模型,实现文本和图像上的交互式问答
大型语言模型 (LLM) 通过从海量非结构化文本数据集中提取智能洞察分析,彻底革新了机器学习领域。然而,传统的 LLM 通常难以处理图像分析,这使得从演示文稿中的图表、图示和视觉元素中提取洞察分析变得极具挑战性。
IBM® Granite Vision 3.2 大语言模型 (LLM) 通过将 AI 工具与先进的对象检测算法相结合,弥合了这一差距,使用户能够自动化多模态分析。本教程演示如何使用 AI 提取和分析 PowerPoint (.pptx) 文件中的文本图与像,并实现交互式问答,增强演示文稿的洞察分析,从而简化您的工作流程。
在本教程中,您将学习如何构建 AI 驱动的系统,该系统能够利用 PowerPoint 幻灯片中的文本和图像作为上下文,实时回答用户的查询。本教程将指导您完成以下内容:
PowerPoint 处理:从 .pptx 文件中提取文本和图片,以进行基于 AI 的分析。
基于文本的问答:使用 Granite Vision 根据提取的幻灯片文本生成答案。
基于图片的问答: 让 AI 分析幻灯片中的图片、图表和图示。
优化问题构建:学习如何设计有效问题,以获得准确且相关的 AI 回复。
本教程利用前沿 AI 技术,包括:
1. IBM Granite Vision:一个能够处理文本和图像的强大的视觉语言模型 (VLM)。
2. Python-PPTX:一个用于从 PowerPoint 文件中提取文本和图片的库。
3. Transformers:一个高效处理 AI 模型输入的框架。
在本教程结束时,您将能够:
1. 提取和处理 PowerPoint 内容(文本和图片)。
2. 使用 Granite Vision 3.2 模型对幻灯片内容进行 AI 驱动的问答。
3. 向 AI 提出富有洞察力的有关文本和图片的问题。
4. 通过使用人工智能驱动的解释,改善用户与演示文稿的交互。
本教程专为希望复用 AI 驱动的洞察分析来增强其演示文稿的 AI 开发人员、研究人员、内容创作者和商业专业人士而设计。
您需要一个 IBM Cloud 帐户 来创建 watsonx.ai 项目。
虽然您可以选择多种工具,本教程将引导您如何设置 IBM 帐户以使用 Jupyter Notebook。
使用您的 IBM Cloud 帐户登录 watsonx.ai。
2. 创建 watsonx.ai 项目。您可以在项目内部获取项目 ID。点击管理选项卡。然后,从常规页面中的详细信息部分复制项目 ID。您需要此 ID 来完成本教程。
3. 创建 Jupyter Notebook。
4. 将 PPTX 文件作为资产上传到 watsonx.ai
此步骤将打开一个笔记本环境,可在其中复制本教程中的代码。或者,您可以将此笔记本下载到本地系统并将其作为资产上传到您的 watsonx.ai 项目。本教程也可在 GitHub 上找到。
注意:本教程需要 GPU 基础架构来运行代码,因此建议按照本教程的演示使用 watsonx.ai。
在开始提取和处理 PowerPoint 内容之前,我们需要安装必要的 Python 库:
transformers:提供对 IBM Granite Vision 和其他 AI 模型的访问。
torch:一个深度学习框架,是高效运行模型所必需。
python-pptx:一个用于从 PowerPoint (.pptx) 文件中提取文本和图片的库。
运行以下命令来安装和升级这些软件包:
在此步骤中,我们将导入用于处理 PowerPoint 文件、处理图片以及与 IBM Granite Vision 模型交互所必需的库:
在此步骤中,我们将建立与 IBM Cloud Object Storage 的连接,以访问和检索存储在云中的 PowerPoint 文件。
您可以利用通过 boto3 库的分支提供的 python 支持,该分支具有充分利用 IBM Cloud Object Storage 的功能。请查阅官方文档以获取这些凭据。
ibm_boto3.client:创建一个客户端以与 IBM Cloud Object Storage 交互。
ibm_api_key_id:用于身份验证的 IBM Cloud API 密钥。
ibm_auth_endpoint:IBM Cloud 的身份验证端点。
endpoint_url:特定的云对象存储 (COS) 的存储端点。
注意:当您将文件作为资产上传到 watsonx.ai 时,该文件会自动存储在 IBM Cloud Object Storage 中。当您稍后将文件导入 Jupyter Notebook 时,watsonx.ai 会生成必要的凭据(API 密钥、身份验证端点和存储端点)并将其插入您的笔记本中。所提供的 IBM Cloud Object Storage 凭证可实现从存储器中检索文件的安全访问,从而实现 watsonx.ai 资产和笔记本环境之间的无缝集成以进行进一步处理。
通过配置此连接,我们可以无缝导入和处理存储在 IBM Cloud 中的 PowerPoint 演示文稿,以进行人工智能驱动的分析
在此步骤中,我们将指定 IBM Cloud Object Storage 存储桶和文件详细信息,以定位和检索用于处理的 PowerPoint 演示文稿 (.pptx)。
查看此官方文档,通过 IBM Cloud UI 获取存储桶配置的详细信息。
bucket:存储文件的 IBM Cloud Object Storage 存储桶的名称。
Object_key:要访问的 PowerPoint 演示文稿的确切文件名
在此步骤中,我们从 IBM Cloud Object Storage 下载 PowerPoint (.pptx) 文件,以便在本地进行处理。
cos_client.get_object():从指定的存储桶和对象键检索文件。
Streaming_body.read():将文件内容读取为字节流,以供进一步处理。
在此步骤中,我们将下载的 PowerPoint 文件 (.pptx) 存储在本地,以便进行处理。
pptx_path:定义将要保存演示文稿的本地文件名。
open(pptx_path, 'wb'):以二进制写入模式打开文件,以存储检索到的字节。
f.write(pptx_bits):将下载的文件内容写入新创建的 .pptx 文件。
在此步骤中,我们打印一条确认消息,以确保 PowerPoint 文件已成功保存。`print` 函数显示 .pptx 所在的文件路径。
在此步骤中,我们定义一个函数来处理 PowerPoint 文件 (.pptx) 并提取其内容:
slide_texts:存储从每张幻灯片中提取的文本。
slide_images:将提取的图片存储为 Python 成像库 (PIL) 图像对象,并附带其对应的幻灯片编号。
通过幻灯片迭代,提取包含文本内容形状中的文本和嵌入幻灯片中的图片。
该函数将文字和图片从 PPT 中分离出来,使聊天代理能根据提取的内容轻松回答用户的问题。
在此步骤中,我们调用函数从已保存的 PowerPoint 文件中提取文本和图片。
pptx_path:指定已下载的 PowerPoint 文件的本地路径。
extract_text_and_images_from_pptx(pptx_path):从幻灯片中提取文本和图片。
slide_texts:存储从所有幻灯片中提取的文本。
de_images:存储提取的图片。
在此步骤中,我们打印从每张幻灯片中提取的文本,以验证 PowerPoint 内容是否已正确处理。
enumerate(slide_texts):迭代提取的文本,并将每个文本与其各自的幻灯片编号相关联。
分隔符 ('-' * 40):帮助在视觉上区分不同幻灯片的内容。
在此步骤中,我们将确认并可视化从 PowerPoint 幻灯片中提取的图片。
len:统计提取出的图片总数。
img.show():打开每张提取出的图片以供评论。
您可以将 `.show()` 替换为 `.save('filename.png')`,以便将图片存储到本地。
在此步骤中,我们初始化 IBM Granite-Vision-3.2-2B 模型,用于基于人工智能驱动的文本和图片处理。
MODEL_NAME 指定要使用的预训练 Granite Vision 模型,而 torch.cuda.is_available() 用于检查是否有 GPU (CUDA) 可用于加速处理;否则,将默认使用 CPU。
在此步骤中,我们将加载 IBM Granite Vision 模型及其相应的处理器,以处理文本和图片输入。
AutoProcessor.from_pretrained(MODEL_NAME, Trust_remote_code=True):加载预训练处理器,以便将输入数据(文本和图片)格式化为模型所需的格式。
AutoModelForVision2Seq.from_pretrained(MODEL_NAME, trust_remote_code=True, ignore_mismatched_sizes=True).to(device):加载 Granite Vision 模型并将其传输到可用设备(GPU 或 CPU)。
其中,
trust_remote_code=True:确保与自定义模型实现兼容。
ignore_mismatched_sizes=True:防止因模型尺寸细微不一致时而出错。
注意:加载过程可能需要一段时间。
在此步骤中,我们创建了一个聊天函数,允许用户根据从 PowerPoint 幻灯片中提取的文本来提问。
其工作原理:
在此步骤中,我们创建了一个聊天功能,允许用户就从 PowerPoint 幻灯片中提取的单个图片进行提问。
其工作原理:
在此步骤中,我们调用了 chat_with_text 函数,允许用户就从 PowerPoint 幻灯片中提取的文本进行提问。
其工作原理:
输出
查询:整合对您的组织来说是竞争优势吗?
<|assistant|>
是的,整合对您的组织来说是一种竞争优势。它可以帮助您更快地行动并克服挑战,但也可能导致成本增加、效率低下、安全风险和用户体验不佳,最终危及组织在快速变化商业环境中的竞争力和能力。
根据演示文稿文本提问(或输入 'exit 退出):退出
当用户询问“整合对您的组织是一种竞争优势吗?”时,Granite Vision 模型使用提取的 PowerPoint 幻灯片文本来处理查询并生成回复。
该模型将“整合”视为一种业务概念,并从第 7 张幻灯片中提供了一种结构化答案,解释了其优势和风险。它强调了整合可以提升速度和解决问题的能力,但也指出了潜在弊端,如管理不当可能导致成本增加、效率低下、安全风险和体验差等。
这一回复展示了该模型解释提取的幻灯片文本,并生成与上下文相关且均衡的答案的能力
在此步骤中,我们调用 chat_with_images 函数,以便用户能够就从 PowerPoint 幻灯片中提取的图片进行提问。
其工作原理:
输出
根据演示图像提问(或键入 'exit' 退出):这是什么图片?
输入幻灯片编号(1 至 41)以查询其图片:2
模型响应:<|system|>
一个好奇的用户和人工智能助手之间的聊天。助手会对用户的问题提供有用、详细且礼貌的答案。
<|user|>
这是什么图片?
<|assistant|>
3D 模型
根据演示图片提问(或键入 'exit' 退出):解释这张图片
输入幻灯片编号(1 至 41)以查询其图片:2
模型响应:<|system|>
一个好奇的用户和人工智能助手之间的聊天。助手会对用户的问题提供有用、详细且礼貌的答案。
<|user|>
解释这张图片
<|assistant|>
这张图片是一个立方体的 3D 模型。
根据演示图片提问(或键入 'exit' 退出):您能解释一下这个图表吗?
输入幻灯片编号(1 至 41)以查询其图片:1
模型响应:<|system|>
一个好奇的用户和人工智能助手之间的聊天。助手会对用户的问题提供有用、详细且礼貌的答案。
<|user|>
您能解释一下这张图表吗?
<|assistant|>
这里是一个标题为“企业云市场从第一代到第四代的成熟度发展”的柱状图。x 轴衡量代数进展,而 y 轴绘制多年来的成熟度进展。从该图表中可以看出,随着产品更新换代,企业云市场日趋成熟。
根据演示图像提问(或输入 'exit' 退出):退出
当用户提出与图片相关的问题时,Granite Vision 模型会处理选定的图片,并根据其对视觉内容的理解生成回复。
对于问题“这是什么图片?”(幻灯片 2),该模型将图片识别为“3D 模型”,但只提供了极简描述。
对于“解释一下这张图片”(幻灯片 2),该模型优化了其回复,将其识别为“一个立方体的 3D 模型。”
对于“您能解释一下这张图表吗?”(幻灯片 1),该模型提供了对条形图的详细描述,解释了其标题、x 轴、y 轴和整体趋势,并指出了企业云成熟度是如何跨代演进的。
此步骤允许用户利用 IBM Granite Vision 模型进行智能分析和解释,与图表、图示和信息图等视觉元素进行交互
本教程演示了 IBM Granite Vision 解释图像的能力。