第11章 对象
对象不是一个名称,而是认知系统对多个元素、属性和关系进行组织后形成的稳定认知结构。
在前面的章节中,我们已经建立了“感觉—感知—感知元素”的基础结构。
感知系统接收到的并不是天然带有名称的“苹果”“鸡蛋”“杯子”或者“汽车”,而是一系列不断变化的信息:
颜色
轮廓
位置
距离
压力
温度
运动
声音
形变
摩擦
这些信息首先以感知元素的形式进入系统。
但是,如果认知系统只能保存大量相互独立的感知元素,那么它仍然无法真正理解环境。
例如,系统同时获得:
白色
椭圆
光滑
桌面
10cm
滚动
压力增加
这些只是信息。
当系统把它们组织起来以后,才可能形成:
对象:鸡蛋
因此,本章要解决的问题不是:
“对象是什么?”
而是:
对象是如何从感知元素中形成的?
这也是模拟人的认知系统与传统数据识别系统之间的重要区别。
11.1 对象不是名称
在传统软件中,对象往往从名称开始。
例如:
Egg
然后程序建立:
Egg
├── color
├── weight
├── size
└── hardness
这种方式非常适合已经明确知道对象是什么的工程系统。
但是,如果机器第一次看到一个陌生物体:
?
它并不知道这个对象叫:
Egg
甚至不知道它是不是一个独立对象。
它只能获得:
元素A
元素B
元素C
元素D
因此,认知系统不能把:
名称
作为对象存在的前提。
应该反过来:
感知元素
↓
元素关系
↓
属性结构
↓
状态结构
↓
对象结构
↓
对象身份
↓
名称
所以:
名称是对象认知形成之后的一种符号表达,而不是对象形成的起点。
11.2 对象的形成
对象的形成不是一个瞬间完成的动作。
例如人在桌面上看到一个鸡蛋。
视觉系统首先可能获得:
白色区域
椭圆轮廓
边缘
亮度变化
位置
空间大小
随后这些元素产生关系:
白色
+
椭圆
+
封闭轮廓
+
连续区域
形成一个相对稳定的视觉结构。
如果再结合:
三维形状
空间位置
运动状态
触觉反馈
重量
表面触感
对象结构进一步稳定。
于是:
感知元素
↓
元素组合
↓
元素关系
↓
属性候选
↓
对象候选
↓
稳定对象
这就是对象形成的基本过程。
11.3 对象边界
对象形成的第一个问题,是:
哪些元素属于这个对象?
这是对象认知中非常重要的问题。
例如桌面上放着一个鸡蛋:
桌面
鸡蛋
杯子
手机
视觉系统接收到的是一个连续场景。
但认知系统必须把场景分解为不同的对象:
Object A
Object B
Object C
Object D
因此,对象必须具有某种边界。
这个边界并不一定是物理上的绝对边界。
例如:
一辆汽车
可以包括:
车身
车轮
车窗
车门
后视镜
但是人在某些认知任务中又可以把汽车整体作为一个对象。
所以对象边界具有:
感知边界
功能边界
空间边界
认知边界
任务边界
这说明:
对象边界不是单纯由几何形状决定,而是与认知任务有关。
11.4 对象身份
当对象形成以后,系统还需要解决:
这个对象是谁?
例如:
桌面上有两个鸡蛋。
它们具有很多共同属性:
白色
椭圆
光滑
大小相近
重量相近
如果系统只根据属性,就可能认为它们是同一个对象。
但实际上:
Egg A
Egg B
是两个不同的实例。
因此必须建立:
Object Identity
即:
对象身份用于区分“属于同一类的对象”和“同一个具体对象”。
可以表示为:
Object Class
↓
Egg
↓
Individual Object
├── Egg A
└── Egg B
这与后面的:
Group Class
Individual Class
存在重要联系。
11.5 对象不是属性的简单集合
如果说:
鸡蛋
=
白色
+
椭圆
+
光滑
仍然不够。
因为对象不仅具有属性,还具有属性之间的关系。
例如:
鸡蛋
├── 颜色:白
├── 形状:椭圆
├── 表面:光滑
├── 重量:50g
├── 硬度:低
└── 承受压力:有限
但更重要的是:
压力增加
↓
形变增加
压力增加
↓
破损概率增加
这些不是单独属性,而是:
属性之间的动态关系。
因此对象应该表示为:
Object
├── Elements
├── Attributes
├── States
├── Relations
└── Changes
11.6 对象属性的来源
对象属性并不是全部直接存在于传感器数据中。
例如:
压力传感器
可以直接获得:
Pressure = 2N
但是:
Hardness = Low
可能不是传感器直接输出的。
它可能来自:
压力
+
形变
+
接触面积
+
反馈变化
经过匹配后形成:
Hardness Candidate
因此:
对象属性可以是直接感知的,也可以是由多个感知元素经过认知计算形成的。
可以分为:
第一类:直接属性
例如:
颜色
温度
距离
压力
重量
第二类:组合属性
例如:
硬度
粗糙度
稳定性
柔软程度
第三类:动态属性
例如:
滑移趋势
破损风险
稳定程度
运动趋势
第四类:认知属性
例如:
可抓取
危险
脆弱
适合搬运
不可触碰
因此对象属性具有不同层次。
11.7 对象状态
对象不是永远处于同一个状态。
例如鸡蛋:
完整
经过抓取:
接触
随后:
被抓取
如果压力过大:
形变
最终可能:
破损
因此:
Object State
应该成为对象结构的重要部分。
可以表示为:
Egg
↓
State
├── Rest
├── Contact
├── Grasped
├── Deformed
└── Damaged
但是状态本身也可能发生变化:
Rest
↓
Contact
↓
Grasped
↓
Deformed
因此对象状态不能被理解为一个永远不变的标签。
11.8 对象是动态结构
这是本理论非常重要的一点。
传统数据模型容易表示:
Object
{
color: white,
weight: 50g
}
但是现实中的对象是动态的。
例如:
Egg(t1)
和:
Egg(t2)
可能不同。
在:
t1
时:
压力 = 0
状态 = 静止
在:
t2
时:
压力 = 1N
状态 = 接触
在:
t3
时:
压力 = 2N
状态 = 抓取
在:
t4
时:
压力 = 3N
状态 = 形变
因此:
Object(t)
比:
Object
更符合动态认知系统。
对象不是一张静态数据表,而是:
在时间中持续变化的认知结构。
11.9 对象关系
对象不会孤立存在。
例如:
鸡蛋
在
盘子
上。
这里存在:
Egg
↓
On
↓
Plate
又例如:
手
抓住
鸡蛋
形成:
Hand
↓
Grasp
↓
Egg
又例如:
鸡蛋
靠近
桌面
形成:
Egg
↓
Near
↓
Table
因此对象之间可以形成:
空间关系
时间关系
接触关系
运动关系
所属关系
操作关系
因果关系
于是一个完整场景可以表示为:
Hand
│
Grasp
↓
Egg
│
On
↓
Plate
这已经不再是单个对象,而是一个对象关系结构。
11.10 对象与场景
多个对象以及它们之间的关系,可以形成场景。
例如:
桌面
├── 鸡蛋
├── 杯子
├── 手机
└── 手
关系:
Egg → On → Table
Cup → On → Table
Phone → On → Table
Hand → Near → Egg
于是:
Objects
+
Relations
+
States
+
Changes
形成:
Scene
因此可以建立:
Element
↓
Object
↓
Relation
↓
Scene
这一步非常重要,因为人的认知通常不是只认知一个对象,而是在场景中认知对象。
11.11 对象的稳定性
本章定义对象时使用了一个关键词:
稳定认知结构。
为什么要强调“稳定”?
因为感知元素一直在变化。
例如:
颜色亮度变化
位置变化
压力变化
角度变化
如果每一个变化都被认为是一个新对象,那么认知系统将无法稳定工作。
一个鸡蛋从:
桌面
移动到:
手中
它的:
位置
状态
压力
速度
都发生了变化。
但是我们仍然认为:
还是同一个鸡蛋。
因此对象认知必须具备:
变化中的稳定性
即:
对象允许属性、状态和位置发生变化,但在一定条件下仍保持对象身份的连续性。
这是对象认知非常重要的能力。
11.12 对象连续性
对象连续性可以理解为:
Object(t1)
≈
Object(t2)
≈
Object(t3)
虽然:
Attribute(t1)
≠
Attribute(t2)
但:
Identity(t1)
=
Identity(t2)
例如:
t1:
鸡蛋在桌面
t2:
鸡蛋被拿起
t3:
鸡蛋移动
t4:
鸡蛋被放下
对象属性一直变化:
Position(t)
Pressure(t)
State(t)
Velocity(t)
但是对象身份仍然保持。
因此:
对象认知的关键不是保持属性不变,而是在属性变化中保持身份连续。
11.13 对象变化与对象消失
对象还存在一个重要问题:
什么时候对象已经不是原来的对象?
例如:
鸡蛋
↓
破碎
↓
蛋液
这是简单的属性变化,还是对象身份变化?
这不能只通过:
color
weight
shape
判断。
需要综合:
结构变化
状态变化
关系变化
功能变化
连续性
因此:
Object Identity
本身也是一个需要认知匹配的问题。
这说明:
对象不是认知系统的终点,对象本身仍然是动态认知过程的一部分。
11.14 从对象到对象属性
现在可以重新理解“对象属性”。
对象回答:
“我们正在面对哪个稳定的认知结构?”
属性回答:
“这个对象具有什么特征?”
例如:
Object
=
Egg
属性:
Color = White
Shape = Oval
Weight = 50g
Hardness = Low
Surface = Smooth
但是动态认知进一步要求:
Pressure(t)
Deformation(t)
Slip(t)
DamageRisk(t)
因此对象与属性之间的关系应该是:
Object
↓
Attributes
↓
Attribute States
↓
Attribute Changes
↓
Object State
这正好连接到后面的动态属性理论。
11.15 对象的认知结构
到这里,可以给对象建立一个理论模型:
Object
{
Identity
Elements
Attributes
States
Relations
Changes
Time
Context
}
其中:
Identity
回答:
是不是同一个对象?
Elements
回答:
这个对象由哪些感知元素支持?
Attributes
回答:
这个对象具有什么属性?
States
回答:
这个对象现在处于什么状态?
Relations
回答:
这个对象与其他对象是什么关系?
Changes
回答:
这个对象正在发生什么变化?
Time
回答:
这些变化发生在什么时候?
Context
回答:
这个对象处于什么环境和任务情境?
11.16 对象不是终点,而是认知的中间结构
到这里,我们必须避免一个新的误区。
不能认为:
感知元素
↓
对象
↓
结束
对象只是认知系统中的一个中间层。
完整过程应该是:
感觉
↓
感知
↓
感知元素
↓
认知元素
↓
对象
↓
属性
↓
状态
↓
关系
↓
动态变化
↓
认知匹配
↓
认知
所以对象的作用是:
把大量离散、变化的感知元素组织成为一个能够被持续追踪、描述、比较和进一步认知的结构。
11.17 鸡蛋案例:对象是怎样形成的
现在重新看机器人抓鸡蛋。
机器人最开始并不是:
Egg = true
而是:
视觉:
白色
椭圆
轮廓
位置
空间:
桌面
高度
距离
触觉:
接触
压力
运动:
静止
这些元素经过组织:
白色
+
椭圆
+
封闭轮廓
+
空间位置
+
尺寸
+
接触状态
形成:
Object Candidate
进一步结合已有认知:
历史对象
+
经验
+
属性匹配
+
当前元素
形成:
Egg Object
此时系统才可以开始进一步处理:
Egg
├── Shape
├── Weight
├── Hardness
├── Friction
├── PressureTolerance
└── DamageRisk
然后进入下一层:
压力变化
+
摩擦变化
+
滑移变化
+
形变变化
最终才产生:
抓取压力应该如何调整?
因此:
抓取动作并不是直接对“鸡蛋名称”执行,而是对鸡蛋这个动态对象及其动态属性进行认知匹配。
这正是本理论区别于简单“对象识别 + 动作执行”的地方。
11.18 本章核心结论
本章可以得到六个基本结论。
第一
对象不是名称。
名称只是对象的符号表达。
第二
对象不是单个元素。
对象是多个元素经过组织后形成的结构。
第三
对象不是属性的简单集合。
对象还包括状态、关系、变化、时间和上下文。
第四
对象具有动态性。
属性可以变化,状态可以变化,位置可以变化,但对象身份可以保持连续。
第五
对象具有稳定性。
这种稳定性不是“所有数据不变”,而是:
在持续变化的信息中保持对象认知的连续性。
第六
对象是认知匹配的基础,而不是认知的终点。
最终结构为:
感知元素
↓
元素组织
↓
对象
↓
对象属性
↓
对象状态
↓
对象关系
↓
动态变化
↓
认知匹配
↓
认知
因此,本章建立的核心定义是:
对象是认知系统对多个感知元素、属性、状态、变化及其关系进行持续组织后形成的、具有身份连续性和结构稳定性的认知结构。
而下一章将进一步进入一个非常关键的问题:
对象形成以后,我们究竟如何描述“对象具有什么”?
这将进入第12章 对象属性。