Part 2
分类逻辑:如何保证任务之间没有重叠
这套体系不按“某段视频涉及哪些物理现象”进行多标签罗列,而是把复杂视频拆成若干原子违规事件,并为每个原子事件指定唯一的根约束。
2.1 唯一归因原则
每个违规只按最先被违反、且能够直接证伪的最低层物理约束归类;不根据它同时影响了多少后续现象重复标注。
按判定对象分层
实体集合、几何、占据、轨迹、受力、冲量、材料、介质、物质收支、热状态、电磁、光传播和事件图分别对应不同判定对象。
按时间尺度分解
运动问题拆成轨迹合法性 P4、连续时间受力 P5 和瞬时冲量 P6,避免“运动、动量、能量”混成一个类别。
按根因而非后果
碰撞后速度异常归 P6,不再同时标成能量错误、因果错误和运动错误;这些只是同一根违规的不同描述。
2.2 原子违规是互斥分类的基本单位
violation_event = {
entities,
start_frame,
end_frame,
spatial_mask,
root_constraint,
subtype
}
一段视频可以包含多个原子违规,但每一个原子违规只能有一个 root_constraint。例如球穿过玻璃后速度异常、玻璃又以不合理方式变形,应拆成三个独立事件:
P3 · 空间占据违规
球与玻璃在同一时刻发生非法体积重叠。
P6 · 冲量违规
碰撞之后的速度或动量转移不符合瞬时接触过程。
P7 · 材料响应违规
玻璃的凹陷、断裂或恢复方式不符合其材料本构。
这不是三个类别对同一错误的重复描述,而是三个可被独立定位、拥有不同时间范围和空间 mask 的原子错误。
2.3 容易混淆的边界
P1 / P2 / P3
- P1:实体集合、身份或部件结构错了。
- P2:实体仍然存在,但几何、深度、尺度或投影错了。
- P3:实体和几何可各自正确,但相互占据或接触关系不允许。
P4 / P5 / P6
- P4:轨迹本身不连续,或违反关节自由度。
- P5:轨迹连续,但连续力与加速度不匹配。
- P6:错误集中在碰撞、爆炸等短时冲量事件。
P2 / P12
- P2:相机改变后,三维结构、深度或视差不一致。
- P12:三维结构正确,但阴影、反射、折射或成像错误。
低层约束 / P13
- 能由局部实体、几何、动力学或材料规律直接证伪时,优先使用 P1–P12。
- 只有低层状态均可能成立,而事件前提、顺序或结果链非法时,才使用 P13。
2.4 从根类别中正交拆出的属性
下列属性不再作为顶层任务,而是在同一个根任务内部枚举不同场景、对象和表现形式。这样既保持根任务互斥,又能保留足够细的覆盖和分析维度。
对象域 Object Domain
humananimalrobotvehiclerigid objectsoft bodyfluidgranular
人体关节反向弯曲仍归 P4;“人体”只是对象属性。
材料与介质 Material / Medium
rigidelasticplasticbrittleclothropeliquidgasparticles
用于枚举 P7、P8 等任务中的不同材料机制。
作用来源 Force / Driver
gravitysupportfrictiondragbuoyancyactuationelectromagnetic
“重力错误”是 P5 下的一种作用来源,不再单独成为顶层类。
时间尺度 Temporal Scale
single-frameshort transienttrajectory segmentlong-horizon
区分瞬时穿模、短时碰撞与长时动力学漂移。
空间范围 Spatial Extent
pointpartobjectinteraction regionscene-wide
描述 mask 应覆盖局部部件、整个物体还是全局场景。
违规表现 Failure Mode
missing responseexcessive responsewrong directionwrong magnitudewrong timingspurious response
同一个根任务可通过统一表现模式进行更细粒度分析。
2.5 推荐标注结构
root_class: P1–P13,严格单选
subtype: 类内细分类,层级单选
object_domain: human / animal / robot / rigid object / fluid / ...
material_medium: rigid / elastic / brittle / cloth / liquid / gas / ...
force_driver: gravity / support / friction / buoyancy / actuation / ...
failure_mode: missing / excessive / wrong direction / wrong timing / ...
mask: 时空区域
time_range: start_frame / end_frame