计算机视觉/视频分析

利用 NVIDIA AI Blueprint 搭建视频搜索和摘要智能代理

本文最初于 2024 年 7 月 29 日发布,但已根据 NVIDIA AI Blueprint 信息进行了大量修改。

传统的视频分析应用及其开发工作流通常基于功能固定的、有限的模型构建,这些模型旨在仅检测和识别一组预定义的对象。

借助 生成式 AI 、NVIDIA NIM 微服务和基础模型,您现在可以使用更少的模型构建具有广泛感知和丰富上下文理解的应用程序。

新型生成式 AI 模型,即视觉语言模型(VLM),为 视觉 AI 智能体 提供支持,这些智能体可以理解自然语言提示并执行视觉问答。通过结合 VLM、LLM 和最新的 Graph-RAG 技术,您可以构建功能强大的视觉 AI 智能体,从而实现对视频的长篇理解。

这些可视化 AI 智能体将部署在工厂、仓库、零售商店、机场、交叉路口等地。它们将帮助运营团队利用从自然交互中生成的更丰富的见解做出更明智的决策。

在本文中,我们将向您展示如何使用 NVIDIA AI Blueprint for Video Search and Summarization 无缝构建 AI 智能体,以实现长篇视频理解。您可以申请 早期访问 该新 AI Blueprint。

发布用于视频搜索和摘要的 NVIDIA AI Blueprint

视频 1. 使用视觉语言模型构建视觉 AI 智能体

NVIDIA AI Blueprint由 NVIDIA NIM 提供支持,是规范生成式 AI 用例的参考工作流。NVIDIA NIM 是一套微服务,包括行业标准 API、领域特定代码、优化的推理引擎和企业运行时。它提供多个 VLM,用于构建视觉 AI 智能体,该智能体可以处理实时或存档的图像或视频,使用自然语言提取可操作的见解。

新的 AI Blueprint 为视频搜索和摘要 加速了视觉 AI 智能体的开发,提供了使用 VLM、LLM 和最新的 RAG 技术的长篇视频理解方法。

为与智能体交互,我们提供了一组易于使用的 REST API,可启用视频摘要、交互式视频问答,以及直播中的自定义提醒,以查找特定事件。这些 REST API 可用于将智能体集成到您自己的应用中,并由参考 UI 用于快速测试。

Blueprint 中使用的模型可以来自包含模型预览 API 和可下载 NIM 微服务的 NVIDIA API Catalog 。例如,AI Blueprint 使用 NVIDIA 托管的 Llama-3_1-70b-instruct NIM 微服务作为 NVIDIA NeMo Guardrails、Context-Aware RAG (CA-RAG) 和 Graph-RAG 模块的 LLM。您可以从 API Catalog 中选择各种不同的 LLM 和 VLM,包括 NVIDIA 托管或本地部署的 LLM。

用于视频搜索和摘要的视觉人工智能代理

构建能够理解长篇视频的视觉 AI 智能体需要将 VLM 和 LLM 与数据存储集成在一起。Blueprint 提供了组合所有这些组件的方法,以实现可扩展的 GPU 加速视频理解智能体,这些智能体可以执行多项任务,例如摘要、问答以及检测直播视频中的事件。

Blueprint 由以下组件组成:

  • 流处理程序: 管理与其他组件(例如 NeMo Guardrails、CA-RAG、VLM 管道、分块和 Milvus Vector DB)的交互和同步。
  • NeMo Guardrails: 过滤掉无效的用户提示。它利用 LLM NIM 微服务的 REST API。
  • VLM pipeline – 解码流处理器生成的视频块,使用基于 NVIDIA Tensor RT 的视觉编码器模型为视频块生成嵌入,然后利用 VLM 为用户查询生成每个块的响应。它基于 NVIDIA DeepStream SDK。
  • VectorDB: 存储每个块的中间 VLM 响应。
  • CA-RAG 模块: 从每个块的 VLM 响应中提取有用信息,并将其聚合以生成单个统一摘要。CA-RAG(Context Aware-Retrieval-Augmented Generation)使用 LLM NIM 微服务的 REST API。
  • Graph-RAG 模块: 捕捉视频中存在的复杂关系,并将重要信息存储在图形数据库中,作为节点和边的集合。然后,LLM 会对其进行查询,以提供交互式问答。
A diagram shows the architecture of the visual search and summarization agent. It includes the data flow of how videos are processed and used to generate summaries, alerts and Q&A.
图 1. 汇总视觉 AI 智能体的高层架构

以下是有关视频提取和检索流程的更多信息,以及 Blueprint 如何进行总结、问答以及对直播和长视频的实时提醒。

视频提取 

要对视频进行总结或执行问答,必须构建能够捕获所有重要信息的视频综合索引。为此,我们需要结合 VLM 和 LLM 来生成密集描述和元数据,以构建视频的知识图形。这个视频提取工作流由 GPU 加速,并可使用更多 GPU 进行扩展,从而缩短处理时间。

VLM 工作流和 CA-RAG

如今,大多数 VLM 只接受有限数量的帧,例如 8/10/100 帧。它们也无法为更长的视频准确生成字幕。对于更长的视频(如长达一小时的视频),采样帧可能相距 10 秒,甚至更长。这可能导致某些细节被忽略,或者动作无法识别。

此问题的解决方案是,从长视频中创建较小的块,使用 VLM 单独分析这些块以生成密集描述,然后汇总和汇总结果,为整个文件生成单个摘要。提取过程的这一部分是 VLM 管道和 CA-RAG 模块。

这种分块和字幕策略也可应用于直播。Blueprint 包括从 RTSP 服务器接收串流数据的串流管道。NVIDIA AI 蓝图会根据用户配置的数据块持续时间持续生成视频块片段。然后,VLM 管道会生成这些数据块的字幕。

NVIDIA AI Blueprint 继续从 VLM 工作流中收集说明。当根据用户配置的摘要持续时间处理足够的数据块时,收集的数据块将发送到 CA-RAG 进行摘要和聚合。蓝图继续处理后续数据块。然后使用 HTTP 服务器发送事件将摘要流式传输到客户端。

知识图形和 Graph-RAG 模块

为了捕获 VLM 生成的复杂信息,在视频提取过程中,会使用 LLM 构建和存储知识图谱。使用 LLM 将密集描述转换为一组节点、边缘和相关属性。该知识图谱存储在图形数据库中。通过使用 Graph-RAG 技术,LLM 可以访问这些信息以提取用于汇总、问答和警报的关键见解,并超越 VLM 自身的能力。

Diagram shows orange and purple circles connected by action words. Worker carrying box, worker dropped box, person inspects restricted zone, and box near pallets are some examples.
图 3. 来自短仓库视频的知识图

视频检索 

提取视频后,CA-RAG 和 Graph-RAG 模块背后的数据库包含有关视频中发生的对象、事件和描述的大量信息。这些信息可以被大型语言模型(LLM)用于多项任务,包括摘要、问答和警报。

对于每个任务,Blueprint 都提供了简单的 REST API,可调用这些 API 与您的应用集成。此外,蓝图还提供了一个参考 UI,使您能够快速试验 Blueprint 的功能,并使用多个配置选项调整智能体。

总结 

通过 API 将视频文件上传至代理后,请调用 summarize 端点以获取视频摘要。Blueprint 会处理所有繁重的工作,同时提供大量可配置参数。

提交 summarize 请求时,系统会提供用于调整输出的提示。此提示用于控制 VLM 密集字幕和基于 LLM 的描述聚合,以生成最终摘要。

  • 提示 (VLM): 提示 VLM 生产密集字幕。您可以调整此提示,以准确告知 VLM 应注意的对象、事件和操作类型。
  • 描述摘要(LLM): 用于组合 VLM 描述的 LLM 提示。它可以用来控制描述的细粒度程度以及要包含的细节级别。
  • 摘要聚合(LLM): 根据聚合说明生成最终摘要输出。此提示应调整为指定输出格式、摘要长度以及应包含在输出中的任何关键信息的列表。

除了提示配置之外,根据您的用例调整视频分块策略也很重要。根据摘要是通过视频文件还是通过直播进行,有几个不同的选项。

视频文件

  • chunk_duration:整个视频被分割成 chunk_duration 长度的片段, N (依赖 VLM 的)帧从此数据块中采样并发送到 VLM 进行推理。数据块的持续时间应足够小,以便 N 帧可以捕获事件。
  • chunk_overlap:如果事件发生在数据块的交叉路口,则采样帧可能无法捕获完整的事件,并且模型无法检测到它。NVIDIA AI Blueprint 通过使用滑动窗口方法来缓解此问题,其中 chunk_overlap 是数据块之间的重叠持续时间。 (默认值:0)。

  • chunk_duration:与视频文件类似,实时流分为 chunk_duration 的多个片段,并发送至 VLM 进行推理。数据块的持续时间应足够小,以便 N 帧能够捕获事件。
  • summary_duration:用户想要生成摘要的持续时间。此选项允许用户控制应生成摘要的流的持续时间。例如,如果 chunk_duration 为 1 分钟,tg_11 为 30 分钟,则将流分成 1 分钟的块进行 VLM 推理。30 个块的 VLM 输出经过聚合,可为用户提供 30 分钟的简洁摘要。

这些只是指南,必须针对特定用例调整实际参数。这需要在准确性和性能之间进行权衡。较小的 chunk 大小可以提供更好的描述,但处理时间更长。

常见问题解答 

在视频提取过程中构建的知识图可以被 LLM 查询,提供视频的自然语言界面。这使用户能够在输入视频中提出开放式问题,并获得聊天机器人体验。在参考 UI 中,此功能在视频提取后可用。

用于助力问答的 LLM 是可配置的,可以在部署后通过 Blueprint 配置进行调整。它让您能够选择最适合本地部署的模型,或将其指向部署在云端的 LLM。

LLM 检索知识所需信息的提示是可调整的,并且可以进行调整,以提高响应的准确性。

警报 

除了视频文件之外,Blueprint 还可以接受视频直播作为输入。对于直播用例,通常必须了解某些事件何时近乎实时地发生。为此,Blueprint 支持注册直播,并设置警报规则以监控直播。这些警报规则采用自然语言,用于在发生用户定义的事件时触发通知。

例如,可以为设置在森林中的摄像头设置警报规则,以检测动物何时出现或火灾是否爆发。当流被注册且警报规则被设置后,代理会监控流。如果代理检测到任何警报规则为真,则会触发可通过 API 接收的通知。

视频 2. 构建用于视频搜索和摘要的视觉 AI 智能体

开始使用 

使用 NVIDIA AI Blueprint 构建强大的基于 VLM 的 AI 智能体 ,用于视频搜索和摘要。REST API 提供了将此工作流和 VLM 集成到现有客户应用中的便捷方式。立即申请 抢先体验此 AI Blueprint ,并访问 Visual AI 智能体论坛 了解技术问题。

 

标签