机器人感知:探索 Grounded SAM2 的潜力

人工智能
在本文中,我们专注于使用摄像头进行物体检测和分割。摄像头捕捉图像,算法识别这些帧中的物体,提供边界框和分割掩码。

机器人感知涉及使用摄像头、激光雷达和雷达等传感器收集环境数据,算法处理这些数据以解释周围环境。这使得机器人能够检测物体,并支持状态估计、定位、导航、控制和规划等功能,从而执行复杂任务。

在本文中,我们专注于使用摄像头进行物体检测和分割。摄像头捕捉图像,算法识别这些帧中的物体,提供边界框和分割掩码。这些信息通过指示要避开的物体位置和理解哪些区域是可通行的,帮助机器人进行导航。

创建手动注释的可驾驶表面语义分割数据集

在深度学习之前,实现准确的感知是具有挑战性的,限制了机器人的能力。深度学习的出现改善了基于摄像头的感知,但需要大量的数据收集、手动注释和模型重新训练以识别新物体。视觉语言模型(VLMs)通过将视觉输入与文本描述相结合,彻底改变了这一领域,实现了开放词汇物体检测和分割。VLMs可以识别各种类别的物体,包括训练期间未遇到的物体,减少了手动数据注释和模型重新训练的需求。这一进步显著增强了机器人理解和与环境交互的能力。

现在让我们探索VLMs在开放词汇(OV)物体检测和分割中的强大功能。我的实验简单地旨在确定OV模型是否能够检测到我的形状异常的机器人。

我的机器人SHL-1

我尝试的第一个OV工具是YOLO-World,这是第一个基于流行的YOLO-v8工具的实时开放词汇物体检测模型。与所有其他YOLO模型一样,YOLO-World非常快。与其他YOLO不同,它可以通过定义新类别来检测训练集中未见的物体。在测试我的机器人之前,我测试了一张更受欢迎的机器人图片,本田的人形机器人Asimo。

# Load model
model = YOLO("yolov8x-worldv2.pt")

# Define custom classes
model.set_classes(["robot"])

# Execute prediction for specified categories on an image
results = model.predict("https://upload.wikimedia.org/wikipedia/commons/0/05/HONDA_ASIMO.jpg")

# Show results
results[0].show()

YOLO-World成功检测到了人形机器人Asimo

接下来,我用我的机器人SHL-1的图片尝试了YOLO-World,但模型无法检测到形状异常的机器人。YOLO-World通过实现更简单的架构实现了即使在CPU上也能实时推理,但代价是无法检测到更广泛的分布外物体。

然后,我安装并测试了Grounded SAM 2【https://github.com/IDEA-Research/Grounded-SAM-2】,这是一个基于Meta流行的Segment Anything Model 2(SAM 2)【https://ai.meta.com/sam2/】的更复杂和更大的VLM。与YOLO-World不同,在YOLO-World中你指定类别名称,而在Grounded SAM 2中你可以用更复杂的文本进行提示。在我的第一个实验中,我只使用了提示“robot”来匹配为YOLO-World指定的类别。

# setup the input image and text prompt for SAM 2 and Grounding DINO
# VERY important: text queries need to be lowercased + end with a dot
TEXT_PROMPT = "robot."
IMG_PATH = "robot_almost_back_closer_180/left/left_50.png"

inference(TEXT_PROMPT, IMG_PATH)

Grounded SAM 2可以检测到SHL-1,但也错误地检测到了附近的滑板车

请注意,与YOLO-World不同,Grounded SAM 2(G-SAM2)还可以执行分割。模型能够检测到SHL-1,但也将附近的滑板车误认为机器人。抱歉,G-SAM2,在我们开发出自主滑板车之前,我们不能将它们视为机器人。

如前所述,G-SAM2可以以类似于我们提示大型语言模型(LLMs)的方式进行提示,尽管短语要短得多。在我的下一个测试中,我使用了提示“6轮机器人”。

TEXT_PROMPT = "6-wheeled robot."
IMG_PATH = "robot_almost_back_closer_180/left/left_50.png"

inference(TEXT_PROMPT, IMG_PATH)

Grounded SAM 2能够将SHL-1识别为六轮机器人,并正确判断滑板车没有六个轮子。

新的提示奏效了。模型对人类语言有足够的理解,能够识别出SHL-1是一个机器人并且有六个轮子,而滑板车只有两个轮子。然而,尽管配备了新提示的G-SAM2可以在其他图像中一致地检测到SHL-1,但它有时会错过带有激光雷达的支架,如下例所示。

TEXT_PROMPT = "6-wheeled robot."
IMG_PATH = "robot_almost_back_closer_180/left/left_58.png"

inference(TEXT_PROMPT, IMG_PATH)

有时Grounded SAM 2会错过带有激光雷达的支架

但不用担心,有一个提示可以解决这个问题:“带有激光雷达的六轮机器人。”

TEXT_PROMPT = "6-wheeled robot with mounted LiDAR."
IMG_PATH = "robot_almost_back_closer_180/left/left_58.png"

inference(TEXT_PROMPT, IMG_PATH)

为Grounded SAM 2提供更精确的提示可以提高其性能

在这个简短的实验中,我们探索了视觉语言模型的力量,特别是测试了Grounded SAM 2模型。VLMs通过显著减少扩展机器人能力所需的工作,正在彻底改变机器人感知,从繁琐的手动数据收集、标注和模型训练转向简单的提示工程。此外,与YOLO-World等较小的模型相比,这些大型模型的能力和准确性显著提高,尽管代价是需要更多的计算能力。

完整代码:https://github.com/carlos-argueta/rse_prob_robotics

责任编辑:赵宁宁 来源: 小白玩转Python
相关推荐

2020-09-14 14:32:06

AI机器人人工智能

2021-05-21 14:11:15

机器人系统技术

2021-05-10 13:05:01

机器人人工智能系统

2024-03-13 10:47:45

机器人

2021-08-06 06:31:53

Facebook开源机器人开发平台

2020-10-15 15:42:00

人工智能

2021-03-25 09:25:55

机器人人工智能系统

2023-09-07 16:29:54

人工智能

2015-12-10 21:49:32

IM机器人

2021-06-11 16:50:12

人工智能AI机器人

2021-04-02 10:32:23

机器人人工智能系统

2021-07-22 10:17:55

加密机器人加密货币机器人

2015-07-28 09:36:11

机器人

2021-08-19 15:44:20

机器人人工智能机器学习

2020-04-28 10:16:25

机器人索尼传感器

2015-10-26 14:29:52

2017-03-28 12:21:21

机器人定义

2022-07-28 11:26:41

人工智能机器人

2012-03-08 09:42:16

开源软件Linux
点赞
收藏

51CTO技术栈公众号