AI个人学习
和实操指南
讯飞绘镜

Vision Agent:解决多种视觉目标检测任务的视觉智能体

综合介绍

Vision Agent 是由 LandingAI(吴恩达团队) 开发的一个开源项目,托管在 GitHub 上,旨在帮助用户快速生成解决计算机视觉任务的代码。它利用先进的代理框架和多模态模型,通过简单的提示即可生成高效的视觉AI代码,适用于图像检测、视频跟踪、对象计数等多种场景。该工具不仅支持快速原型开发,还能无缝部署到生产环境,广泛适用于制造业、医疗、农业等领域。Vision Agent 的设计理念是将复杂的视觉任务自动化,开发者只需提供任务描述,就能获得可运行的代码,极大降低了视觉AI开发的门槛。目前,它已获得超过3000次星标,社区活跃度高,持续更新中。

Vision Agent:解决多种视觉目标检测任务的视觉智能体-1


 

适用示例可以参考 Agentic Object Detection:无需标注和训练的视觉目标检测工具

Agentic Object Detection:无需标注和训练的高级目标检测工具-1

 

功能列表

  • 代码自动生成:根据用户输入的任务描述,生成针对图像或视频的视觉AI代码。
  • 对象检测与计数:支持在图像或视频中检测特定对象并计数,如人数统计。
  • 视频帧分析:从视频中提取帧并进行对象跟踪或分割。
  • 可视化工具:提供边界框叠加和分割掩码的图像/视频可视化功能。
  • 多模型支持:集成多种开源视觉模型,用户可根据需求切换。
  • 自定义工具扩展:允许用户添加新工具或模型,满足特定任务需求。
  • 部署支持:生成代码支持快速原型验证和生产环境部署。

 

使用帮助

如何安装与使用

Vision Agent 是一个基于 Python 的库,用户需要通过 GitHub 获取源码并在本地环境中安装。以下是详细的安装和使用流程:

安装流程

  1. 环境准备
    • 确保你的电脑已安装 Python 3.8 或更高版本。
    • 安装 Git,以便从 GitHub 克隆仓库。
    • 可选:建议使用虚拟环境(如 venv 或 conda)以隔离依赖。
  2. 克隆仓库
    打开终端,运行以下命令获取 Vision Agent 源码:

    git clone https://github.com/landing-ai/vision-agent.git
    cd vision-agent
  1. 安装依赖
    在仓库目录下,安装所需依赖:

    pip install -r requirements.txt
    

    如果需要使用特定模型(如 Anthropic 或 OpenAI),需额外配置 API 密钥,详见后文。

  2. 验证安装
    运行以下命令检查是否安装成功:

    python -c "import vision_agent; print(vision_agent.__version__)"
    

    如果返回版本号(如 0.2),说明安装完成。

使用主要功能

Vision Agent 的核心功能是通过提示生成代码并执行视觉任务。以下是主要功能的详细操作步骤:

1. 生成视觉AI代码
  • 操作步骤
    1. 导入 Vision Agent 模块:
      from vision_agent.agent import VisionAgentCoderV2
      agent = VisionAgentCoderV2(verbose=True)
      
    2. 准备任务描述和媒体文件。例如,统计图像中的人数:
      code_context = agent.generate_code([
      {"role": "user", "content": "Count the number of people in this image", "media": ["people.png"]}
      ])
      
    3. 保存生成的代码:
      with open("count_people.py", "w") as f:
      f.write(code_context.code)
      
  • 功能说明:输入图像路径和任务描述后,Vision Agent 会自动生成包含对象检测和计数逻辑的 Python 代码。生成的代码依赖内置工具,如 countgd_object_detection
2. 对象检测与可视化
  • 操作步骤
    1. 加载图像并运行检测:
      import vision_agent.tools as T
      image = T.load_image("people.png")
      dets = T.countgd_object_detection("person", image)
      
    2. 叠加边界框并保存结果:
      viz = T.overlay_bounding_boxes(image, dets)
      T.save_image(viz, "people_detected.png")
      
    3. 可视化结果(可选):
      import matplotlib.pyplot as plt
      plt.imshow(viz)
      plt.show()
      
  • 功能说明:此功能可检测图像中的指定对象(如“person”),并在图像上绘制边界框,适用于质量检查、监控等场景。
3. 视频帧分析与跟踪
  • 操作步骤
    1. 提取视频帧:
      frames_and_ts = T.extract_frames_and_timestamps("people.mp4")
      frames = [f["frame"] for f in frames_and_ts]
      
    2. 运行对象跟踪:
      tracks = T.countgd_sam2_video_tracking("person", frames)
      
    3. 保存可视化视频:
      viz = T.overlay_segmentation_masks(frames, tracks)
      T.save_video(viz, "people_tracked.mp4")
      
  • 功能说明:从视频中提取帧,检测并跟踪对象,最后生成带分割掩码的可视化视频,适合动态场景分析。
4. 配置其他模型
  • 操作步骤
    1. 修改配置文件以使用其他模型(例如 Anthropic):
      cp vision_agent/configs/anthropic_config.py vision_agent/configs/config.py
      
    2. 设置 API 密钥:
      在环境变量中添加密钥:

      export ANTHROPIC_API_KEY="your_key_here"
      
    3. 重新运行代码生成任务。
  • 功能说明:Vision Agent 默认支持多种模型,用户可根据需求切换,提升任务效果。

操作流程示例:计算咖啡豆填充百分比

假设你有一张装有咖啡豆的罐子图像,想计算填充百分比:

  1. 编写任务描述并运行:
    agent = VisionAgentCoderV2()
    code_context = agent.generate_code([
    {"role": "user", "content": "What percentage of the jar is filled with coffee beans?", "media": ["jar.jpg"]}
    ])
    
  2. 执行生成的代码:
    生成的代码可能是:

    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}%")
    
  3. 运行代码获取结果。

注意事项

  • 确保输入的图像或视频格式正确(如 PNG、MP4)。
  • 如果遇到依赖问题,可尝试更新 pip install --upgrade vision-agent
  • 社区支持:如需帮助,可加入 LandingAI 的 Discord 社区咨询。
未经允许不得转载:首席AI分享圈 » Vision Agent:解决多种视觉目标检测任务的视觉智能体
zh_CN简体中文