ingFang SC", Cambria, Cochin, Georgia, Times, "Times New Roman", serif;font-size: 15px;text-indent: 2em;letter-spacing: 0.1em;color: rgb(63, 63, 63);">最近啊,我发现了一个超酷炫的工具库—— ingFang SC", Cambria, Cochin, Georgia, Times, "Times New Roman", serif;font-size: inherit;color: rgb(183, 110, 121);">VisionAgent[1] ,它能让你用自然语言指挥 AI 去完成各种图像识别任务,简直不要太方便!这个工具是开源的,我知道很多人会问有没有线上 demo 可以体验的。有的,在这里
ingFang SC", Cambria, Cochin, Georgia, Times, "Times New Roman", serif;font-size: 15px;text-indent: 2em;letter-spacing: 0.1em;color: rgb(63, 63, 63);">以前,咱们要搞个图像识别,比如数数图片里有多少罐可乐,那得自己吭哧吭哧写一大堆代码,调参调到头秃。现在有了 VisionAgent,你只需要告诉它:“嘿,帮我数数这张图里有几罐可乐!”,剩下的就交给它了! ingFang SC", Cambria, Cochin, Georgia, Times, "Times New Roman", serif;font-size: 15px;color: rgb(63, 63, 63);"> ingFang SC", Cambria, Cochin, Georgia, Times, "Times New Roman", serif;padding-left: 12px;color: rgb(63, 63, 63);">VisionAgent 到底是个啥?
ingFang SC", Cambria, Cochin, Georgia, Times, "Times New Roman", serif;font-size: 15px;text-indent: 2em;letter-spacing: 0.1em;color: rgb(63, 63, 63);">简单来说,VisionAgent 就是一个能让你用“人话”来指挥 AI 进行图像处理的工具库。它背后的大佬是现在最火的大语言模型(LLM),比如 Anthropic 的 Claude-3.5 和 OpenAI 的 o1。 ingFang SC", Cambria, Cochin, Georgia, Times, "Times New Roman", serif;font-size: 15px;color: rgb(63, 63, 63);"> ingFang SC", Cambria, Cochin, Georgia, Times, "Times New Roman", serif;font-size: 15px;margin: 0.1em auto 0.5em;border-radius: 8px;box-shadow: rgba(0, 0, 0, 0.1) 0px 4px 8px;height: auto !important;" title="null" src="https://api.ibos.cn/v4/weapparticle/accesswximg?aid=104228&url=aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X3BuZy9vWHFHOEVUdkFlblFJOFpBYWljOUNwV1VwSGdaMEgzYVY3WTJKcXJ5Z2RGc082alZpY2xpYXY1VzlUb3gxbTI0UWFuUWdJWk1qUFBjT2pSSFpQZzhSSFgyUS82NDA/d3hfZm10PXBuZyZhbXA=;from=appmsg"/>
ingFang SC", Cambria, Cochin, Georgia, Times, "Times New Roman", serif;font-size: 15px;text-indent: 2em;letter-spacing: 0.1em;color: rgb(63, 63, 63);">这些 LLM 就像是 VisionAgent 的“大脑”,负责理解你的指令,然后生成相应的代码来完成任务。你只需要动动嘴皮子,就能让 AI 帮你搞定图像识别,是不是很神奇? ingFang SC", Cambria, Cochin, Georgia, Times, "Times New Roman", serif;padding-left: 12px;color: rgb(63, 63, 63);">VisionAgent 能干啥?VisionAgent 的本事可大了!它能帮你:
•识别物体 :识别图片里的各种物体,比如猫、狗、桌子、椅子等等。 •跟踪物体 :在视频里跟踪某个物体,比如跟踪视频里的小狗。 •生成代码 :直接生成可以运行的图像处理代码,你可以拿来学习或者自己修改。 怎么用 VisionAgent? 想用 VisionAgent,首先你得安装它:
pipinstallvision-agent 然后,你得准备好 Anthropic 和 OpenAI 的 API 密钥:
exportANTHROPIC_API_KEY="your-api-key" exportOPENAI_API_KEY="your-api-key"搞定这些,你就可以开始玩转 VisionAgent 了!
例子 1:数人头 想知道一张图片里有多少人?简单!
fromvision_agent.agentimportVisionAgentCoderV2 fromvision_agent.modelsimportAgentMessage # 创建一个 VisionAgent 实例 agent = VisionAgentCoderV2(verbose=True) # 让 VisionAgent 生成代码来数人头 code_context = agent.generate_code( [ AgentMessage( role="user", content="Count the number of people in this image", media=["people.png"] # 假设你有一张名为 people.png 的图片 ) ] ) # 把生成的代码保存到文件里 withopen("generated_code.py","w")asf: f.write(code_context.code +"\n"+ code_context.test)运行这段代码,VisionAgent 就会生成一个名为generated_code.py的文件,里面就是数人头的代码啦!你可以直接运行这个文件,或者自己修改一下。
例子 2:直接用 VisionAgent 的工具 VisionAgent 不仅能生成代码,它还提供了一系列好用的工具,你可以直接拿来用。
比如,你想在一张图片里找出所有人,并把他们框出来:
importvision_agent.toolsasT importmatplotlib.pyplotasplt # 加载图片 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") # 显示结果 plt.imshow(viz) plt.show()这段代码会生成一张名为people_detected.png的图片,里面的人都被框出来啦!
例子 3:视频处理 VisionAgent 还能处理视频!比如,你想在一段视频里跟踪某个物体:
importvision_agent.toolsasT # 从视频里提取每一帧和对应的时间戳 frames_and_ts = T.extract_frames_and_timestamps("people.mp4") # 假设你有一个名为 people.mp4 的视频 frames = [f["frame"]forfinframes_and_ts] # 在每一帧里跟踪 "person" tracks = T.countgd_sam2_video_tracking("person", frames) # 把跟踪结果(分割掩码)画在每一帧上 viz = T.overlay_segmentation_masks(frames, tracks) # 把处理后的视频保存下来 T.save_video(viz,"people_detected.mp4")这段代码会生成一个名为people_detected.mp4的视频,里面的人都被跟踪并标记出来啦!
想用其他的 LLM? VisionAgent 默认使用 Anthropic Claude-3.5 和 OpenAI o1,但你也可以换成其他的 LLM。
只需要修改vision_agent/configs目录下的config.py文件就行。比如,你想只用 Anthropic,就把anthropic_config.py复制成config.py:
cpvision_agent/configs/anthropic_config.pyvision_agent/configs/config.py 同类工具? 这里就不给大家横向对比其他同类型工具了,因为 VisionAgent 本身就是一个集成工具,它把 LLM 当做大脑,然后调用各种视觉工具包来处理视觉任务。所以,VisionAgent 的强大之处在于它的“大脑”,也就是 LLM 的选择,实际上也没看见类似的工具