综合介绍
Vision Agent 是由 LandingAI(吴恩达团队) 开发的一个开源项目,托管在 GitHub 上,旨在帮助用户快速生成解决计算机视觉任务的代码。它利用先进的代理框架和多模态模型,通过简单的提示即可生成高效的视觉AI代码,适用于图像检测、视频跟踪、对象计数等多种场景。该工具不仅支持快速原型开发,还能无缝部署到生产环境,广泛适用于制造业、医疗、农业等领域。Vision Agent 的设计理念是将复杂的视觉任务自动化,开发者只需提供任务描述,就能获得可运行的代码,极大降低了视觉AI开发的门槛。目前,它已获得超过3000次星标,社区活跃度高,持续更新中。
适用示例可以参考 Agentic Object Detection:无需标注和训练的视觉目标检测工具
功能列表
- 代码自动生成:根据用户输入的任务描述,生成针对图像或视频的视觉AI代码。
- 对象检测与计数:支持在图像或视频中检测特定对象并计数,如人数统计。
- 视频帧分析:从视频中提取帧并进行对象跟踪或分割。
- 可视化工具:提供边界框叠加和分割掩码的图像/视频可视化功能。
- 多模型支持:集成多种开源视觉模型,用户可根据需求切换。
- 自定义工具扩展:允许用户添加新工具或模型,满足特定任务需求。
- 部署支持:生成代码支持快速原型验证和生产环境部署。
使用帮助
如何安装与使用
Vision Agent 是一个基于 Python 的库,用户需要通过 GitHub 获取源码并在本地环境中安装。以下是详细的安装和使用流程:
安装流程
- 环境准备
- 确保你的电脑已安装 Python 3.8 或更高版本。
- 安装 Git,以便从 GitHub 克隆仓库。
- 可选:建议使用虚拟环境(如
venv
或conda
)以隔离依赖。
- 克隆仓库
打开终端,运行以下命令获取 Vision Agent 源码:git clone https://github.com/landing-ai/vision-agent.git cd vision-agent
- 安装依赖
在仓库目录下,安装所需依赖:pip install -r requirements.txt
如果需要使用特定模型(如 Anthropic 或 OpenAI),需额外配置 API 密钥,详见后文。
- 验证安装
运行以下命令检查是否安装成功:python -c "import vision_agent; print(vision_agent.__version__)"
如果返回版本号(如 0.2),说明安装完成。
使用主要功能
Vision Agent 的核心功能是通过提示生成代码并执行视觉任务。以下是主要功能的详细操作步骤:
1. 生成视觉AI代码
- 操作步骤:
- 导入 Vision Agent 模块:
from vision_agent.agent import VisionAgentCoderV2 agent = VisionAgentCoderV2(verbose=True)
- 准备任务描述和媒体文件。例如,统计图像中的人数:
code_context = agent.generate_code([ {"role": "user", "content": "Count the number of people in this image", "media": ["people.png"]} ])
- 保存生成的代码:
with open("count_people.py", "w") as f: f.write(code_context.code)
- 导入 Vision Agent 模块:
- 功能说明:输入图像路径和任务描述后,Vision Agent 会自动生成包含对象检测和计数逻辑的 Python 代码。生成的代码依赖内置工具,如
countgd_object_detection
。
2. 对象检测与可视化
- 操作步骤:
- 加载图像并运行检测:
import vision_agent.tools as T image = T.load_image("people.png") dets = T.countgd_object_detection("person", image)
- 叠加边界框并保存结果:
viz = T.overlay_bounding_boxes(image, dets) T.save_image(viz, "people_detected.png")
- 可视化结果(可选):
import matplotlib.pyplot as plt plt.imshow(viz) plt.show()
- 加载图像并运行检测:
- 功能说明:此功能可检测图像中的指定对象(如“person”),并在图像上绘制边界框,适用于质量检查、监控等场景。
3. 视频帧分析与跟踪
- 操作步骤:
- 提取视频帧:
frames_and_ts = T.extract_frames_and_timestamps("people.mp4") frames = [f["frame"] for f in frames_and_ts]
- 运行对象跟踪:
tracks = T.countgd_sam2_video_tracking("person", frames)
- 保存可视化视频:
viz = T.overlay_segmentation_masks(frames, tracks) T.save_video(viz, "people_tracked.mp4")
- 提取视频帧:
- 功能说明:从视频中提取帧,检测并跟踪对象,最后生成带分割掩码的可视化视频,适合动态场景分析。
4. 配置其他模型
- 操作步骤:
- 修改配置文件以使用其他模型(例如 Anthropic):
cp vision_agent/configs/anthropic_config.py vision_agent/configs/config.py
- 设置 API 密钥:
在环境变量中添加密钥:export ANTHROPIC_API_KEY="your_key_here"
- 重新运行代码生成任务。
- 修改配置文件以使用其他模型(例如 Anthropic):
- 功能说明:Vision Agent 默认支持多种模型,用户可根据需求切换,提升任务效果。
操作流程示例:计算咖啡豆填充百分比
假设你有一张装有咖啡豆的罐子图像,想计算填充百分比:
- 编写任务描述并运行:
agent = VisionAgentCoderV2() code_context = agent.generate_code([ {"role": "user", "content": "What percentage of the jar is filled with coffee beans?", "media": ["jar.jpg"]} ])
- 执行生成的代码:
生成的代码可能是:from vision_agent.tools import load_image, florence2_sam2_image image = load_image("jar.jpg") jar_segments = florence2_sam2_image("jar", image) beans_segments = florence2_sam2_image("coffee beans", image) jar_area = sum(segment["mask"].sum() for segment in jar_segments) beans_area = sum(segment["mask"].sum() for segment in beans_segments) percentage = (beans_area / jar_area) * 100 if jar_area else 0 print(f"Filled percentage: {percentage:.2f}%")
- 运行代码获取结果。
注意事项
- 确保输入的图像或视频格式正确(如 PNG、MP4)。
- 如果遇到依赖问题,可尝试更新
pip install --upgrade vision-agent
。 - 社区支持:如需帮助,可加入 LandingAI 的 Discord 社区咨询。