首页 理论 架构 工程 文档 白皮书 著作 研究 案例 下载 博客 关于 开始使用 →

第10章 场景的结构化定义

第10章 场景的结构化定义

10.1 场景的定义

前面的世界结构理论已经建立了:

世界
↓
基础类
↓
对象
↓
属性
↓
状态
↓
关系
↓
动态结构

但是,机器在现实环境中面对的并不是一个个彼此孤立的对象。

机器通常面对的是:

一个空间
+
多个对象
+
对象属性
+
对象状态
+
对象之间的关系
+
当前正在发生的活动

例如,机器面对一张桌子上的鸡蛋:

桌面
+
鸡蛋
+
机械手
+
机械手的位置
+
鸡蛋的位置
+
鸡蛋的状态
+
机械手与鸡蛋的距离
+
鸡蛋与桌面的关系

这些内容共同构成机器当前面对的现实结构。

因此,本章对**场景(Scene)**进行结构化定义。

场景是指在特定时间和空间范围内,由多个场景元素及其对象、属性、状态和关系共同形成的具有整体意义的现实结构。

可以表示为:

Scene
=
Elements
+
Objects
+
Attributes
+
States
+
Relations

其中:

  • Scene 表示场景;
  • Elements 表示场景元素集合;
  • Objects 表示场景对象集合;
  • Attributes 表示对象及场景相关属性;
  • States 表示当前状态;
  • Relations 表示对象之间以及对象与环境之间的关系。

因此,场景不是单个对象。

也不是对象的简单集合。

而是:

多个对象在特定时间、空间、状态和关系条件下形成的整体结构。

例如:

机械手01
+
鸡蛋01
+
桌面01
+
位置关系
+
接近关系
+
当前状态
↓
抓取场景

因此,场景是机器把现实世界局部结构进行整体组织的重要形式。


10.2 场景的边界

场景必须具有一定边界。

如果没有边界,机器将无法判断哪些对象属于当前场景,哪些对象属于其他场景。

例如机器正在执行鸡蛋抓取任务。

当前核心场景可以是:

机械手01
+
鸡蛋01
+
桌面01

而远处的:

椅子01
墙壁01
窗户01

虽然也存在于现实环境中,但可能并不是当前任务的核心场景对象。

因此,场景边界可以由以下因素共同决定:

空间范围
+
时间范围
+
对象范围
+
关系范围
+
行为范围
+
任务范围

例如:

厨房空间
+
当前时间
+
厨师
+
锅
+
炉具
+
食材
+
烹饪关系
+
烹饪行为
↓
烹饪场景

场景边界不是永远固定的。

随着行为变化,场景范围也可能发生变化。

因此:

场景边界
↓
可以动态变化

10.3 场景元素

**场景元素(Scene Element)**是构成场景的基本信息单元。

场景元素可以是:

对象
+
属性
+
状态
+
关系
+
事件
+
行为信息

因此,场景元素的概念比场景对象更加广泛。

例如:

鸡蛋01

是场景对象。

而:

鸡蛋01
位置 = 桌面中央
状态 = 完整

则形成多个场景元素。

又例如:

机械手01 → 接近 → 鸡蛋01

其中:

接近关系

也是场景中的一个结构元素。

因此:

场景元素是机器描述当前场景所需要的基本结构信息。

可以表示为:

SceneElement
{
    type
    value
    source
    state
    time
}

其中:

  • type 表示元素类型;
  • value 表示元素具体内容;
  • source 表示元素来源;
  • state 表示元素当前状态;
  • time 表示元素对应的时间。

场景元素可以形成:

场景元素集合
↓
场景结构

因此:

Scene
↓
SceneElements

是场景结构化表达的第一层。


10.4 场景对象

**场景对象(Scene Object)**是当前场景中实际参与场景结构的具体对象实例。

场景对象来自前面的对象实例理论。

例如:

鸡蛋类
↓
鸡蛋01

当鸡蛋01进入某个具体场景:

厨房01
↓
鸡蛋01

鸡蛋01就成为该场景的场景对象。

因此:

基础类
↓
对象实例
↓
场景对象

场景对象不是一种新的基础类。

例如:

鸡蛋类

仍然是基础类。

鸡蛋01

仍然是对象实例。

只有当鸡蛋01参与当前场景时,它才具有:

场景对象

这一结构身份。

同一个对象也可以在不同时间进入不同场景:

鸡蛋01
↓
厨房场景

之后:

鸡蛋01
↓
餐桌场景

因此:

场景对象是对象实例在特定场景中的结构化参与形式。


10.5 场景对象集合

一个场景通常包含多个对象。

因此可以定义:

O_scene =
{
O₁,
O₂,
O₃,
...,
Oₙ
}

其中:

  • O_scene 表示当前场景对象集合;
  • O₁...Oₙ 表示场景中的具体对象;
  • n 表示对象数量。

例如烹饪场景:

厨师01
锅01
炉具01
鸡蛋01
西红柿01
食用油01

形成:

场景对象集合

但场景对象数量并不能决定场景意义。

例如:

锅01
鸡蛋01
西红柿01

只是对象集合。

只有进一步建立:

锅01 → 放置 → 炉具01
厨师01 → 操作 → 锅01
锅01 → 处理 → 鸡蛋01

才能形成具有明确意义的烹饪场景结构。

因此:

场景对象是场景结构的成员,但场景意义来自对象及其属性、状态和关系的整体组织。


10.6 场景属性

**场景属性(Scene Attribute)**是用于描述场景对象或者场景整体特征的信息。

对象属性通常描述对象自身。

例如:

鸡蛋01
颜色 = 白色
重量 = 50g
大小 = 中等

这些属于对象属性。

而场景属性可以进一步描述:

场景位置
场景面积
环境温度
光照
空间范围
时间

例如:

厨房场景
温度 = 25℃
时间 = 12:30
空间 = 厨房区域

因此可以区分:

对象属性
↓
描述对象

以及:

场景属性
↓
描述场景整体条件

二者共同参与场景认知。

场景属性可以影响对象行为。

例如:

环境温度过高
↓
影响食材状态

或者:

空间狭窄
↓
限制机械手运动

因此:

场景属性不仅描述环境,还可能成为动态结构变化和行为形成的条件。


10.7 场景状态

**场景状态(Scene State)**是指某一时间点上场景整体所处的状态。

对象具有自己的状态:

鸡蛋 = 完整
锅 = 空
炉具 = 关闭

这些对象状态共同影响场景整体状态。

例如:

鸡蛋 = 未处理
锅 = 空
炉具 = 关闭

可以描述当前场景:

烹饪准备状态

经过动作:

开启炉具
+
放锅
+
加入食材

场景状态变成:

烹饪进行状态

进一步:

食材完成
+
烹饪结束

场景进入:

烹饪完成状态

因此:

场景状态
=
场景对象状态
+
场景关系状态
+
场景行为状态

场景状态是动态的:

SceneState(t)
↓
Action
↓
SceneState(t+1)

这与前面的对象状态变化理论相连接。


10.8 场景关系

**场景关系(Scene Relation)**是指场景中对象之间、对象与环境之间以及场景结构成员之间形成的空间、操作、使用、控制、所属、因果等关系。

例如:

鸡蛋01
↓
位于
↓
桌面01

以及:

机械手01
↓
接近
↓
鸡蛋01

这些都是场景关系。

场景关系可以表示为:

R_scene =
{
R₁,
R₂,
R₃,
...,
Rₘ
}

其中:

  • R_scene 表示场景关系集合;
  • R₁...Rₘ 表示场景中的具体关系;
  • m 表示关系数量。

场景关系是场景结构最重要的连接机制之一。

没有关系:

对象A
对象B
对象C

只是对象集合。

有关系之后:

对象A
↓
关系
↓
对象B
↓
关系
↓
对象C

才形成结构。


10.9 场景关系的基本类型

场景关系可以继承对象关系的基本分类,同时根据场景需要扩展。

空间关系

左
右
上
下
前
后
内部
外部
接触
相邻
远离

例如:

鸡蛋01
↓
位于
↓
桌面01

操作关系

机械手01
↓
抓取
↓
鸡蛋01

使用关系

厨师01
↓
使用
↓
锅01

控制关系

控制器01
↓
控制
↓
机械手01

因果关系

炉具01
↓
加热
↓
锅01

进一步:

锅温升高
↓
导致
↓
食材状态变化

所属关系

锅01
↓
属于
↓
厨房01

这些关系共同形成场景关系网络。


10.10 场景结构

综合场景元素、对象、属性、状态和关系,可以建立场景结构:

Scene
{
    elements
    objects
    attributes
    states
    relations
}

可以进一步形式化为:

S(t)
=
{
O(t),
A(t),
St(t),
R(t),
E(t)
}

其中:

  • S(t) 表示时间 t 的场景;
  • O(t) 表示场景对象集合;
  • A(t) 表示场景属性集合;
  • St(t) 表示场景状态集合;
  • R(t) 表示场景关系集合;
  • E(t) 表示场景元素集合。

因此,一个场景不是:

对象列表

而是:

对象
+
属性
+
状态
+
关系
+
时间
+
空间

共同构成的结构。


10.11 场景的时间结构

场景具有时间属性。

同一个对象在不同时间可以处于完全不同的场景状态。

例如:

T1
鸡蛋在桌面

T2:

机械手接近鸡蛋

T3:

机械手抓取鸡蛋

T4:

鸡蛋离开桌面

因此:

S(T1)
↓
S(T2)
↓
S(T3)
↓
S(T4)

这说明场景不是一个永久固定的数据对象,而是:

某一时间范围内现实结构的状态表达。

场景的时间结构使机器能够理解:

之前发生了什么
↓
现在发生什么
↓
接下来可能发生什么

10.12 场景的空间结构

场景必须具有空间结构。

空间结构回答:

对象在哪里?
对象之间距离如何?
对象之间有什么位置关系?
活动发生在哪个区域?

例如:

厨房
├── 炉具
├── 水槽
├── 操作台
└── 冰箱

在更具体的场景中:

鸡蛋01
→ 位于 → 操作台01

锅01
→ 位于 → 炉具01

机械手01
→ 位于 → 鸡蛋01附近

因此:

空间
↓
对象位置
↓
空间关系
↓
场景结构

空间关系变化会直接导致场景变化。


10.13 场景结构的形成

场景不是凭空产生的。

其形成过程可以表示为:

现实感知
↓
场景元素提取
↓
对象确定
↓
属性确定
↓
状态确定
↓
关系确定
↓
场景结构形成

例如机器观察一个桌面:

桌面
+
鸡蛋
+
机械手

首先识别:

鸡蛋01 → 鸡蛋类
机械手01 → 机械手类
桌面01 → 桌面类

然后确定:

鸡蛋01 → 位于 → 桌面01
机械手01 → 接近 → 鸡蛋01

再确定状态:

鸡蛋01 = 完整
机械手01 = 可执行

于是形成:

当前抓取场景

因此:

场景是机器将多个现实感知结果按照对象、属性、状态和关系进行结构化组织后的整体表达。


10.14 场景与对象的区别

必须严格区分:

对象

和:

场景

对象回答:

“这是什么个体?”

场景回答:

“这些对象当前共同构成什么现实结构?”

例如:

鸡蛋01

是对象。

而:

鸡蛋01
+
锅01
+
炉具01
+
厨师01
+
加热关系
+
烹饪状态

构成场景。

因此:

对象 → 个体
场景 → 整体

对象可以独立存在。

场景则强调对象之间的整体关系。


10.15 场景与动态结构的区别

场景与第9章的动态结构也需要区分。

动态结构强调:

结构如何形成
↓
如何变化
↓
如何消解

场景强调:

某一时间和空间范围内
↓
当前有什么
↓
对象是什么
↓
状态如何
↓
关系如何

因此:

场景
↓
描述当前世界局部结构

而:

动态结构
↓
描述结构随时间的形成与变化

二者结合:

场景
↓
动态变化
↓
新场景
↓
动态变化
↓
新场景

形成连续世界运行。


10.16 场景与类的关系

场景中的对象来自基础类。

例如:

机械手01 → 机械手类
鸡蛋01 → 鸡蛋类
桌面01 → 桌面类

场景本身也可以进一步进行类别抽象。

例如大量观察到:

机械手
+
目标物
+
操作台
+
接近
+
抓取

可以抽象为:

机械抓取场景类

因此:

基础类
↓
对象
↓
场景
↓
场景类

场景类并不替代基础类。

它是在更高层次上描述:

什么样的对象、关系、状态和行为共同构成某一种场景。


10.17 场景与认知

机器认知的一个重要对象就是当前场景。

认知过程可以表示为:

感知
↓
场景元素
↓
场景对象
↓
场景属性
↓
场景状态
↓
场景关系
↓
场景结构
↓
认知

例如机器发现:

机械手
+
鸡蛋
+
桌面

通过关系识别:

机械手 → 接近 → 鸡蛋
鸡蛋 → 位于 → 桌面

通过状态识别:

鸡蛋 = 完整

最终形成:

当前场景
=
机械手接近桌面上的完整鸡蛋

机器真正需要认识的不是孤立的“鸡蛋”这个对象,而是:

鸡蛋
+
位置
+
状态
+
周围对象
+
对象关系
+
当前活动

因此:

场景是机器从孤立对象认知走向整体结构认知的重要载体。


10.18 场景的结构化模型

综合本章,可以建立场景的完整结构模型:

场景
│
├── 场景元素
│
├── 场景对象
│   ├── 对象01
│   ├── 对象02
│   └── 对象03
│
├── 场景属性
│   ├── 空间
│   ├── 时间
│   └── 环境属性
│
├── 场景状态
│   ├── 对象状态
│   ├── 环境状态
│   └── 行为状态
│
└── 场景关系
    ├── 空间关系
    ├── 操作关系
    ├── 使用关系
    ├── 控制关系
    └── 因果关系

可以进一步抽象为:

Scene
=
ElementSet
+
ObjectSet
+
AttributeSet
+
StateSet
+
RelationSet

这成为机器场景知识的基本结构。


10.19 场景结构的核心特征

根据前面的理论,可以确定场景具有以下基本特征。

第一,整体性

场景不是孤立对象的集合,而是对象及其关系形成的整体。

第二,时空性

场景必须具有时间和空间条件。

第三,状态性

场景中的对象和环境都具有当前状态。

第四,关系性

对象通过关系形成场景结构。

第五,动态性

场景可以随着对象、状态和关系变化而变化。

第六,可识别性

具有稳定结构特征的场景可以被机器识别和分类。

第七,可转换性

一个场景可以通过行为和动作转换为另一个场景。

因此:

场景A
↓
行为
↓
动作
↓
状态变化
↓
关系变化
↓
场景B

这为后面的动态场景理论提供基础。


10.20 本章总结

第10章对场景进行了结构化定义。

场景不是单个对象,也不是对象的简单集合,而是:

多个对象及其属性、状态和关系,在特定时间与空间条件下形成的整体结构。

本章建立了五个核心结构:

场景元素
↓
场景对象
↓
场景属性
↓
场景状态
↓
场景关系

其中:

场景元素是场景的基本信息结构。

场景对象是参与当前场景的具体对象实例。

场景属性描述对象以及场景整体的特征条件。

场景状态描述某一时间点上的场景当前状态。

场景关系负责连接场景中的对象以及对象与环境之间的结构关系。

最终形成:

场景
=
对象集合
+
属性集合
+
状态集合
+
关系集合
+
时间
+
空间

场景又与前面的理论形成完整连接:

基础类
↓
对象
↓
对象属性
↓
对象状态
↓
对象关系
↓
场景
↓
动态结构
↓
行为
↓
动作
↓
场景变化

因此,本章最核心的理论结论是:

场景是机器对现实世界局部整体结构的结构化表达;对象构成场景的主体,属性描述对象与环境特征,状态描述当前条件,关系建立场景内部连接,而时间与空间规定场景存在的边界。

进一步可以得到:

机器对现实世界的认知不能停留在“对象识别”层面,而必须从对象进入场景,从对象属性和状态进入对象关系,再从对象关系形成整体场景结构。

由此:

对象认知
↓
关系认知
↓
场景认知
↓
结构认知

成为机器从局部对象认知走向整体世界认知的重要路径。

而场景一旦具有时间连续性,就会进一步产生:

场景形成
↓
场景变化
↓
场景转换
↓
场景消解
↓
新场景形成

这将成为下一阶段动态场景理论的直接基础。

Leave a Reply

Your email address will not be published. Required fields are marked *