
在人机协作的工作环境中,准确地理解与推理工作场景至关重要。传统方法往往依赖静态感知技术,难以处理动态变化的场景信息。随着深度学习和大语言模型的进步,结合场景大模型与知识图谱的多模态推理技术,将为环境理解提供更强的动态感知和智能推理能力。
本研究的目标是提出一种结合场景大模型(Scene-LLM)与知识图谱的动态工作环境理解方法,利用深度学习的图像处理、物体检测和推理能力,优化人机协作的效率和安全性。具体目标包括:
知识图谱是机器人了解工人与工件之间关系的重要凭依,所以第一步需要构建工人任务的知识图谱。(融合持续学习和推理的思想)
知识图谱的结构(表格的形式表示关系和实体的类型****)通常是由实体(Nodes)和关系(Edges)组成的图。在人机协作工作环境,本方案构建的知识图谱的结构包括以下几个主要组件:
Nodes
工件:每个工件都作为一个节点,节点包含工件的属性(如形状、尺寸、材质等,也可以包括多角度的图片),注:工件不一定是单独的零件,可以是装配体,也因此,整个装配任务可以被组织为一个树状的装配流程
工具:每种工具作为一个节点,节点包含工件的属性(如形状、尺寸、材质等,也可以包括多角度的图片)。
人员:描述工人或操作人员的节点,包含技能、工作任务等信息。
Edges
包含(Part-of):表示某个工件是另一个工件的组成部分。
依赖(Depends-on):描述任务或工具之间的依赖关系。例如,某个装配任务依赖于特定工具或工件。
执行(Performs):表示人员与任务之间的执行关系,指示某个人员执行特定的任务。
有选择地更新(亮点)
场景语义化的核心目标是从原始场景数据中提取出有意义的实体(如工件、工具等)和它们之间的关系,并为这些实体和关系赋予语义标签,并输出给下游的推理模块生成任务。
主要分为以下几个步骤:
场景数据采集
全局的像素级特帧点云 M
由一系列点构成,每个点都由顶点位置,法向向量,置信度数量,颜色和概念向量(concept vector)组成
想要生成这样的像素级特征点云M
,首先需要进行帧(单张输入图片)预处理:通过一系列输入的深度图片获取顶点法相maps和相机方位,再通过计算获得每张图片中每个像素的语义上下文嵌入。其中,语义上下文的嵌入是通过结合局部和全局的CLIP features获得的。
然后再进行特征融合:通过相机的方位将每个帧的顶点和法相图映射到全局坐标系。对于帧$X_{t}$中的每个像素$(u,v)_t$,都在全局的点云图中具有相应的点$P_k$
以下是将不同帧$X_t$中的特征集合在M
中特征点的公式:
通过ConceptFusion的预处理和语义上下文嵌入,就获得了精确的场景语义点云信息。
场景Token化:由于场景语义点云的信息过于密集,导致信息长度不可控,不利于输入大模型,所以使用Scene-LLM中的体素均匀下采样方法,将图像数据转化为统一的tokens格式,确保数据可以与prompt一起输入Scene-LLM模型进行推理,同时也便于将场景进行动态更新。
具体来说,这里首先将空间分为具有尺寸x×y×z的固定分辨率体素网格,其中x,y,z代表沿着各个轴的素数。由于这种固定的分辨率,在不同场景中的体素数量有所不同。其次,对于每个体素,使用K近邻(KNN)方法将所有包含的点聚类。每个点的特征包括语义属性和空间坐标。由此可以获得特征的体素网格:
其中D是语义特征的维度,而3是空间坐标的维度。
最后,计算可见性映射V∈{0,1} x×y×z,表明每个体素中的点存在(1)或不存在(0)。仅使用可见体素的特征用作视觉tokens。这种 hybrid-representation 通过均匀地采样点云信息设置来保留密集的空间信息,同时促进了语义特征空间的动态更新。
语义体素网络的动态更新可以通过如下方式实现:为了更新场景以状态t的 $f^{vox}_t$ 到状态t + 1,我们首先从当前的摄像头视图渲染3D 帧。该帧的语义特征F被投影到3D点的特征映射Fˆ,并将其体素化为F^^{Vox}并且生成 visibility map Vˆ。然后使用以下方式更新语义体素网络
如此便可以确保3D场景的语义表示与任何场景状态变化保持同步。
Scene-LLM生成语义空间信息
CLIP(Contrastive Language-Image Pre-training)是一种基于对比学习的模型,旨在同时处理图像和文本数据,并将它们映射到一个共享的特征嵌入空间中。其训练过程包括对图像和文本对的学习,其中每一对图像和文本(如图像的描述)都会被处理成特征向量,图像由视觉编码器(通常是卷积神经网络或视觉Transformer)处理,文本则通过一个Transformer模型编码。模型的核心思想是通过对比学习的方式优化图像和文本之间的关系,使得正确配对的图像和文本在共享的嵌入空间中距离较近,而不相关的图像和文本则距离较远。这一过程通过对比损失函数(如InfoNCE)进行优化,模型逐渐学习到图像和文本之间的语义对应关系。CLIP在大规模图像-文本数据集上进行训练,通常涉及数百万对图像-文本配对,从而使其能够进行跨模态推理。训练完成后的CLIP能够在零-shot的情况下执行任务,即在没有专门训练的情况下处理新的计算机视觉和自然语言处理任务,如通过文本描述检索相关图像,或者根据图像检索相关文本。
想要比对裁剪图和物品的文字描述,可以通过使用预先使用CLIP预训练好的ViT图编码器和Transformer 文字编码器,分别用于编码物体的裁剪图和知识图谱中对于每一个工件的描述(并不需要每次识别都进行编码,可以预编码之后保存用于后续每次对比)。再使用裁剪图和文字的特征向量进行似然性评估,找到最贴合裁剪图的文字特征向量并由此获得裁剪图对应的具体工件或者工具序号。
语义空间最终输出:场景中所有关键的工具、零件的标签(ID和专业名称)+精确位置坐标(场景中有啥,在哪)
基于知识图谱的推理和任务生成方法在智能系统中扮演着关键角色,特别是在需要理解复杂场景和动态调整任务的应用中。
在获取了语义空间的信息后,知识图谱的应用主要分为以下几个步骤:
通过工人的手部位置+语义空间的信息->判断当前正在装配的工件(检索/搜索过程)+工人在用的工具
正在装配的工件+工人在用的工具+知识图谱->判断下一步需要装配的零件以及需要的工具,并据此生成机器人需要执行的具体任务(比如抓取某区域的关键物体并放置到特定位置,更具体一些?)
具体任务可能包括以下几种:
GRASP
任务描述:机器人需要抓取某一特定区域(
生成任务:结合语义空间的信息,系统会确定物体的精确位置(例如,某个工件的位置),并且会根据工件的形状、尺寸、重量等属性选择适当的抓取策略和工具。系统会向机器人发送抓取任务,指示其准确抓取目标物体。
PLACE
任务描述:机器人将物体放置到指定位置(
生成任务:根据知识图谱和工人正在装配物体的位置,推理出工件的目标位置,例如,物体需要放置在某个工作台上的特定位置。
示例:将抓取的零件放置到工人需要的位置上,确保其放置的位置正确。
GOTO
任务描述:机器人末端移动到指定位置(
生成任务:一般用于机器人执行完PLACE
,
通过结合[[DINO]]和grounded-pretraining,可以使用人类输入(例如类别名称或转介表达式)检测任意对象
Open-Vocab. Det
an open-set object detector that can detect any objects with respect to an arbitrary free-form text prompt. The model was trained on over 10 million images, including detection data, visual grounding data, and image-text pairs. It has a strong zero-shot detection performance. However, the model needs text as inputs and can only detect boxes with corresponding phrases.
什么是feature fusion?
- 在多模态领域,feature fusion 特指将不同模态的特征(如视觉、文本、音频等)进行融合的技术。CLIP 应该被看作是 Middle Fusion 的一种形式, 在特征提取后就进行融合对齐 #### large-scale grounded pre-train for concept generalization Reformulating **object detection** as a **phrase grounding task** and introducing **contrastive training** between object regions and language phrases on large-scale datahttps://github.com/facebookresearch/dino/tree/main
# Emerging Properties in Self-Supervised Vision Transformershttps://juejin.cn/post/7224738994825789496
https://www.youtube.com/watch?v=h3ij3F3cPIk&t=1005s
DI+NO(蒸馏+No Label)
具体来说,DINO 是使用一种称为“无监督自蒸馏”的方法,该方法通过自监督学习来学习模型的知识表示。在这个方法中,模型使用自身的输出来生成“伪标签”,然后使用这些伪标签来重新训练模型,从而进一步提高模型的性能和泛化能力。
https://blog.csdn.net/xbinworld/article/details/83063726
重点idea就是提出用soft target来辅助hard target一起训练,而soft target来自于大模型的预测输出。这里有人会问,明明true label(hard target)是完全正确的,为什么还要soft target呢?
hard target 包含的信息量(信息熵)很低,soft target包含的信息量大,拥有不同类之间关系的信息(比如同时分类驴和马的时候,尽管某张图片是马,但是soft target就不会像hard target 那样只有马的index处的值为1,其余为0,而是在驴的部分也会有概率。)[5]
这样的好处是,这个图像可能更像驴,而不会去像汽车或者狗之类的,而这样的soft信息存在于概率中,以及label之间的高低相似性都存在于soft target中。但是如果soft targe是像这样的信息[0.98 0.01 0.01],就意义不大了,所以需要在softmax中增加温度参数T(这个设置在最终训练完之后的推理中是不需要的)
关于DINO中发生的涌现
https://juejin.cn/post/7280436457142501388
DINO之前的工作
We have also seen emerged two properties that can be leveraged in future applications: the quality of the features in k-NN classification has a potential for image retrieval. The presence of information about the scene layout in the features can also benefit weakly supervised image segmentation.
https://blog.csdn.net/h661975/article/details/135116957
loss: ITC (Image Text Contrastive)
1 | # image_encoder - ResNet or Vision Transformer |
Cross_entropy_loss:
CLIP 本质上是全局图像嵌入,不利于像素对齐特征提取。
OK-Robot- What Really Matters in Integrating Open-Knowledge Models for Robotics
Creating a general-purpose robot has been a longstanding dream of the robotics community.
当前想要实现这一目标的系统脆弱、封闭,并且在遇到未见过的情况时会失败。即使是最大的机器人模型通常也只能部署在以前见过的环境中 [5, 6]。在机器人数据很少的环境中,例如在非结构化的家庭环境中,这些系统的脆弱性会进一步加剧。
虽然大型视觉模型显示出语义理解 、检测以及将视觉表示与语言联系起来的能力并且与此同时,机器人的导航、抓取和重新排列等基本机器人技能已经相当成熟。
但是将现代视觉模型与机器人特定基元相结合的机器人系统表现非常差。
这可能是因为单纯将多个不确定性的系统组合在一起会导致准确率急剧恶化。
所以我们需要一个将VLM和机器人primitives(导航,抓取,放置)结合在一起的细致框架,即OK-Robot。
Pick up A (from B) and drop it on/in C”, where A is an object and B and C are places in a real-world environment such as homes
负责空间重建,识别物体大致位置,机器人导航
用到的方法:
ACDC- Automated Creation of Digital Cousins for Robust Policy Learning
数字孪生(DT)作为现实世界非常精确的映射虽然可以用于高精度的训练但是生产DT资产过于繁琐且没有泛化性,不能做到zero-shot。
数字表亲(DC)通过比对模型特征,从模型库中选择类似的表亲模型,用于重建场景训练机械臂。让机械臂针对不同第一次见的场景具有泛化性。
(a)它减少了手动微调的需要,以保证一定的保真度,从而能够完全自动化地创建数字表亲,(b)它通过提供一组增强的场景来训练机器人策略,从而有助于更好地应对原始场景中的变化。
ACDC is our automated pipeline for generating fully interactive simulated scenes from a single RGB image, and is broken down into three steps:
(1) an extraction step, in which relevant object masks are extracted from the raw input image
(2) a matching step, in which we select digital cousins for individual objects extracted from the original scene
(3) a generation step, in which the selected digital cousins are post-processed and compiled together to form a fully-interactive, physically-plausible digital cousin scene.