MugheesMehdi07/langvio
A powerful AI library that bridges Large Language Models (LLMs) with video processing frameworks like YOLO, enabling seamless integration of vision and language for advanced video understanding, object detection, and contextual analysis.
它解决的问题
分析图像和视频通常意味着为每个任务编写检测或跟踪代码。Langvio 消除了这一步骤:你用英语提问,例如“数一下所有红色汽车”或“找到穿黄色衣服的人”,它会返回解释和标注媒体。它结合了用于理解查询的语言模型和用于检测和跟踪对象的视觉模型,因此同一个工具可以处理计数、属性搜索、空间问题和视频摘要。
工作原理
Langvio 运行一个由两个协作部分组成的流水线。Qwen-VL 语言处理器将你的查询解析为目标、属性和任务参数,然后解释检测结果。Qwen-VL 视觉处理器在图像和采样的视频关键帧中定位对象,归一化边界框,并移除重复检测。对于视频,关键帧上的检测通过标签、框重叠和预测运动关联为轨迹;框通过 CPU 光流在关键帧之间传递,插值作为回退。描述性查询(如“戴眼镜的人”)会对照详细裁剪区域进行检查,包括每个视频轨迹的多个视图。
一个查询(如“这个停车场里有多少辆车?”)会经过查询解析、对象定位(或视频的关键帧定位)、轨迹关联和裁剪匹配,然后生成解释。结果包括标注的图像或视频、自然语言解释以及带有摘要的结构化检测数据。
Langvio 默认通过托管 OpenAI 兼容 API(OpenRouter)使用 API 密钥运行。如果未设置密钥且已安装本地额外组件,它会通过 HuggingFace 回退到在进程中加载 Qwen2.5-VL 权重。语言和视觉处理器独立解析其后端。使用 YOLO-World v2 和 ByteTracker 的旧路径仍可用于经典开放词汇检测。
适用人群
希望询问视觉媒体问题而无需编写定制检测管道的开发者和研究人员。它适合通过 CLI 或 Flask Web 应用进行快速实验,并通过 Python API 集成到更大的应用程序中。任何熟悉 Python 3.10-3.12 且拥有 OpenRouter API 密钥或足够计算资源运行本地视觉语言模型的人。
亮点
- 自然语言查询:“数一下汽车”、“找到所有红色物体”、“桌子上有什么?”
- 支持图像和视频,基于关键帧的跟踪、光流和插值回退
- Qwen-VL 同时驱动查询解析/解释和对象定位,处理器可独立配置
- 默认托管 API(OpenRouter),未设置密钥时本地进程内推理作为回退
- 属性匹配用于描述性查询,使用裁剪和多个轨迹视图
- 视频摘要:估计不同对象、峰值同时计数、运动模式、中心线交叉
- 标注输出图像/视频,带有边界框和跟踪轨迹,以及 Flask Web 界面
- 通过 YAML 配置可扩展;旧版 YOLO-World + ByteTracker 路径仍可用
相关
- 项目
- 项目
- 项目
- 项目