第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章对场景进行了结构化定义。
场景不是单个对象,也不是对象的简单集合,而是:
多个对象及其属性、状态和关系,在特定时间与空间条件下形成的整体结构。
本章建立了五个核心结构:
场景元素
↓
场景对象
↓
场景属性
↓
场景状态
↓
场景关系
其中:
场景元素是场景的基本信息结构。
场景对象是参与当前场景的具体对象实例。
场景属性描述对象以及场景整体的特征条件。
场景状态描述某一时间点上的场景当前状态。
场景关系负责连接场景中的对象以及对象与环境之间的结构关系。
最终形成:
场景
=
对象集合
+
属性集合
+
状态集合
+
关系集合
+
时间
+
空间
场景又与前面的理论形成完整连接:
基础类
↓
对象
↓
对象属性
↓
对象状态
↓
对象关系
↓
场景
↓
动态结构
↓
行为
↓
动作
↓
场景变化
因此,本章最核心的理论结论是:
场景是机器对现实世界局部整体结构的结构化表达;对象构成场景的主体,属性描述对象与环境特征,状态描述当前条件,关系建立场景内部连接,而时间与空间规定场景存在的边界。
进一步可以得到:
机器对现实世界的认知不能停留在“对象识别”层面,而必须从对象进入场景,从对象属性和状态进入对象关系,再从对象关系形成整体场景结构。
由此:
对象认知
↓
关系认知
↓
场景认知
↓
结构认知
成为机器从局部对象认知走向整体世界认知的重要路径。
而场景一旦具有时间连续性,就会进一步产生:
场景形成
↓
场景变化
↓
场景转换
↓
场景消解
↓
新场景形成
这将成为下一阶段动态场景理论的直接基础。