
用自然语言指挥AI完成图像识别,VisionAgent让编程更简单!
核心内容:
VisionAgent工具库的介绍和功能特点
VisionAgent如何用自然语言指令控制AI进行图像处理
安装和使用VisionAgent的步骤指南
最近啊,我发现了一个超酷炫的工具库——VisionAgent[1],它能让你用自然语言指挥 AI 去完成各种图像识别任务,简直不要太方便!这个工具是开源的,我知道很多人会问有没有线上 demo 可以体验的。有的,在 这里
以前,咱们要搞个图像识别,比如数数图片里有多少罐可乐,那得自己吭哧吭哧写一大堆代码,调参调到头秃。现在有了 VisionAgent,你只需要告诉它:“嘿,帮我数数这张图里有几罐可乐!”,剩下的就交给它了!
VisionAgent 到底是个啥?
简单来说,VisionAgent 就是一个能让你用“人话”来指挥 AI 进行图像处理的工具库。它背后的大佬是现在最火的大语言模型(LLM),比如 Anthropic 的 Claude-3.5 和 OpenAI 的 o1。
这些 LLM 就像是 VisionAgent 的“大脑”,负责理解你的指令,然后生成相应的代码来完成任务。你只需要动动嘴皮子,就能让 AI 帮你搞定图像识别,是不是很神奇?
VisionAgent 能干啥?
VisionAgent 的本事可大了!它能帮你:
•数数:数图片里的人头、可乐罐、汽车等等。
•识别物体:识别图片里的各种物体,比如猫、狗、桌子、椅子等等。
•跟踪物体:在视频里跟踪某个物体,比如跟踪视频里的小狗。
•生成代码:直接生成可以运行的图像处理代码,你可以拿来学习或者自己修改。
怎么用 VisionAgent?
想用 VisionAgent,首先你得安装它:
pip install vision-agent
然后,你得准备好 Anthropic 和 OpenAI 的 API 密钥:
export ANTHROPICAPIKEY="your-api-key"export OPENAIAPIKEY="your-api-key"
搞定这些,你就可以开始玩转 VisionAgent 了!
例子 1:数人头
想知道一张图片里有多少人?简单!
from visionagent.agent import VisionAgentCoderV2from visionagent.models import AgentMessage# 创建一个 VisionAgent 实例agent = VisionAgentCoderV2(verbose=True)# 让 VisionAgent 生成代码来数人头codecontext = agent.generatecode( [ AgentMessage( role="user", content="Count the number of people in this image", media=["people.png"] # 假设你有一张名为 people.png 的图片 ) ])# 把生成的代码保存到文件里withopen("generatedcode.py", "w") as f: f.write(codecontext.code + "n" + code_context.test)
运行这段代码,VisionAgent 就会生成一个名为generated_code.py的文件,里面就是数人头的代码啦!你可以直接运行这个文件,或者自己修改一下。
例子 2:直接用 VisionAgent 的工具
VisionAgent 不仅能生成代码,它还提供了一系列好用的工具,你可以直接拿来用。
比如,你想在一张图片里找出所有人,并把他们框出来:
import visionagent.tools as Timport matplotlib.pyplot as plt# 加载图片image = T.loadimage("people.png")# 检测图片里的人dets = T.countgdobjectdetection("person", image)# 把检测结果(框框)画在图片上viz = T.overlayboundingboxes(image, dets)# 保存结果T.saveimage(viz, "peopledetected.png")# 显示结果plt.imshow(viz)plt.show()
这段代码会生成一张名为people_detected.png的图片,里面的人都被框出来啦!
例子 3:视频处理
VisionAgent 还能处理视频!比如,你想在一段视频里跟踪某个物体:
import visionagent.tools as T# 从视频里提取每一帧和对应的时间戳framesandts = T.extractframesandtimestamps("people.mp4") # 假设你有一个名为 people.mp4 的视频frames = [f["frame"] for f in framesandts]# 在每一帧里跟踪 "person"tracks = T.countgdsam2videotracking("person", frames)# 把跟踪结果(分割掩码)画在每一帧上viz = T.overlaysegmentationmasks(frames, tracks)# 把处理后的视频保存下来T.savevideo(viz, "people_detected.mp4")
这段代码会生成一个名为people_detected.mp4的视频,里面的人都被跟踪并标记出来啦!
想用其他的 LLM?
VisionAgent 默认使用 Anthropic Claude-3.5 和 OpenAI o1,但你也可以换成其他的 LLM。
只需要修改visionagent/configs目录下的config.py文件就行。比如,你想只用 Anthropic,就把anthropicconfig.py复制成config.py:
cp visionagent/configs/anthropicconfig.py vision_agent/configs/config.py
同类工具?
这里就不给大家横向对比其他同类型工具了,因为 VisionAgent 本身就是一个集成工具,它把 LLM 当做大脑,然后调用各种视觉工具包来处理视觉任务。所以,VisionAgent 的强大之处在于它的“大脑”,也就是 LLM 的选择,实际上也没看见类似的工具
[](javascript:void (0);)





