检测解决"是什么",规则解决"算不算"
视觉模型输出的是逐帧的观察证据;是否构成一起值得介入的事件,由规则策略在时间轴上做出最终判定。两者职责分离,各自独立演进。
Technical resource · Rule engine
AI 巡检的价值不在于"看见了什么",而在于"何时值得打扰一个人"。本文深入解析 LingMind 规则引擎的七种判定策略——它们如何用时间维度驯服视觉检测固有的抖动,在什么场景下使用,以及如何配置。
Summary
单帧视觉检测天然是抖动的:遮挡、光照、角度与运动模糊都会让置信度在告警线附近反复横跳。直接把单帧结果当告警,得到的不是智能巡检,而是告警疲劳。
视觉模型输出的是逐帧的观察证据;是否构成一起值得介入的事件,由规则策略在时间轴上做出最终判定。两者职责分离,各自独立演进。
明火需要"看见即报",人员滞留需要"满时才报",安全帽缺失需要"先见人、后断帽"。LingMind 把这些判定模式沉淀为七种可组合的策略,而不是一个万能阈值。
所有策略都是确定性状态机,基于帧时间戳而非处理时刻推进。历史视频重放会得到完全一致的结果,每一次状态迁移都记录原因,供事后审计与参数调优。
Shared foundation
无论选择哪种策略,证据进入判定前的处理方式是一致的。这三块基石决定了整套规则引擎的工程品质。
每个采样帧的观察被归为三类:确认命中、确认未命中、未知。目标被遮挡、检测质量不足、画面丢失,都归入未知。未知既不加分也不清零——由"未知保持时长"参数决定状态是继续保留还是复位重估。看不清画面时系统选择沉默,而不是猜测。
所有时长、窗口与衰减都基于帧自身的采集时间戳推进,与处理快慢无关。网络抖动、计算排队、离线补传都不会改变判定结果;同一段视频在任何时候重放,得到完全相同的告警序列。
每条规则对每个判定对象维护一个显式生命周期:观察 → 疑似 → 确认命中 → 解除中 → 解除。状态占用内存有上界,与视频时长无关,适合数月不间断运行;每次迁移附带原因码,告警可以逐条追溯到当时的证据链。
强证据可以配置为越过中间阶段直达"确认命中"或"解除",由各策略的参数开关控制。
Strategy map
先把判定问题归类,再选策略:事件是瞬时的还是持续的?证据是强还是弱?关心的是出现、缺失、越界还是数量?
| 策略 | 判定逻辑 | 典型场景 |
|---|---|---|
| 瞬时滞回Instant hysteresis | 单帧即可判定,触发与解除使用分离阈值,防止临界抖动 | 明火、烟雾、明显入侵等高置信瞬时事件 |
| 持续时长Continuous duration | 状态持续满设定时长才确认,观测中断显式暂停而非清零 | 人员滞留、车辆占道、施工超时 |
| 窗口共识Window consensus | 滑动时间窗内按质量加权投票,共识达标才确认 | 远距离小目标、间歇可见的缺陷与异物 |
| 证据累积Evidence accumulator | 证据强度按时间积分,弱信号缓慢累积、随时间衰减 | 渗漏渐变、烟雾渐浓等缓慢发展的异常 |
| 可观测缺失Observable absence | 先确认"人可见",再判定"物持续未见",反向规则 | 安全帽、反光衣等佩戴合规检测 |
| 轨迹变迁Track transition | 基于同一目标的跨帧跟踪,判定进入、离开与越线 | 电子围栏、越线闯入、离岗与逆行 |
| 场景聚合Scene aggregate | 对区域内目标集合整体判定,而非逐个目标 | 区域人数超限、人群聚集、密度预警 |
Strategy 01 · Instant hysteresis
有一类事件,出现一帧就足以成立——明火、爆炸性烟雾、翻越围栏的瞬间。对它们套用"持续 N 秒才告警"的约束,等于放弃处置窗口。但直接单帧判定又有另一个风险:置信度在阈值附近上下浮动时,告警会反复触发又反复撤销。瞬时滞回用一对分离的阈值解决这个矛盾:进入容易,退出难。
| 参数 | 含义 | 示例值 |
|---|---|---|
| 匹配阈值 | 置信度达到该值立即确认命中 | 0.75 |
| 释放阈值 | 必须低于该值才解除,且必须小于匹配阈值 | 0.40 |
| 未知保持时长 | 看不清的持续时间超过该值才复位状态 | 1,500 ms |
示例:夜间材料堆场禁行区。火焰检测置信度升至 0.78,超过匹配阈值 0.75,即时告警;随后的 0.5~0.6 区间波动高于释放阈值 0.40,告警保持,不会闪烁。两阈值之间的缓冲带(0.40–0.75)就是抗抖动的空间。
Strategy 02 · Continuous duration
"有人在禁区"和"有人在禁区徘徊了三十秒"是完全不同性质的事件。前者可能是路过的投影、误检的一帧;后者几乎必然是真实滞留。持续时长策略要求目标状态连续保持满设定时长才确认告警,天然过滤瞬时误检。它的关键细节是对观测中断的处理:目标被立柱遮挡两秒,计时暂停而不是清零——重新可见后从暂停处继续,避免"遮挡绕过"。
| 参数 | 含义 | 示例值 |
|---|---|---|
| 确认时长 | 持续满足满该时长后确认命中 | 30,000 ms |
| 解除时长 | 状态消失满该时长后解除告警 | 5,000 ms |
| 未知保持时长 | 遮挡/丢帧超过该值,状态复位重新计时 | 10,000 ms |
| 最大断流间隔 | 两次有效证据之间允许的最大间隙 | 2,000 ms |
示例:高铁天窗期线路禁入监测。人员在禁入区域持续出现 30 秒即确认告警,告警记录从首次可见时刻起算;被信号机遮挡 2 秒计时暂停,遮挡消失后继续累计。反过来,巡检员正常穿越通道 8 秒即离开,不构成事件。
Strategy 03 · Window consensus
远距离小目标——百米外的接触网吊弦、轨道上的细小异物——单帧置信度往往只有 0.4~0.6,任何单一阈值都会顾此失彼:调高了漏报,调低了误报。窗口共识的策略是让时间窗内的多个样本投票:每个样本按画面质量加权,窗口内的加权共识均值超过阈值才确认;一帧极高质量、极高置信的样本则可以越过投票直接确认。杂乱背景下偶发的一帧高分同样会被后续低分样本稀释,不会单独触发告警。
| 参数 | 含义 | 示例值 |
|---|---|---|
| 窗口时长 | 参与投票的样本时间范围 | 5,000 ms |
| 最小有效样本数 | 窗口内至少要有这么多可观测样本才允许确认 | 4 |
| 加权均值阈值 | 质量加权的共识均值达到该值确认命中 | 0.55 |
| 强匹配阈值 | 单个高质量样本达到该值直接确认 | 0.90 |
| 忽略下限 | 低于该置信度的样本不参与投票 | 0.15 |
| 释放阈值 | 共识均值低于该值解除告警 | 0.30 |
| 最大样本数 | 窗口保留样本的上限,系统级约束为 60 | 30 |
示例:无人机航拍接触网吊弦异常检测。5 秒窗口内累积 8 个有效样本,其中运动模糊的 0.35 样本权重被压低、对焦清晰的 0.62 样本权重正常,加权均值 0.58 ≥ 0.55,确认告警。若其中某帧出现 0.93 的清晰特写,则立即确认,不再等待窗口收敛。三者关系恒定:释放阈值 < 加权均值阈值 < 强匹配阈值。
Strategy 04 · Evidence accumulator
有些异常不是"发生"的,而是"长成"的:隧道壁的渗水从湿斑到滴漏需要数日,烟雾从一缕到成片需要数分钟。这类信号每一帧都很弱,但方向一致、持续存在。证据累积策略把观察强度转化为一个随时间积分的数值:弱阳性按速率缓慢累加,弱阴性按速率缓慢抵消,时间本身还会带来指数衰减——昨天的弱证据不会无限透支今天的判定。数值越过匹配线确认告警,跌回释放线解除。它像一颗缓慢充能的电池,充到满才放电。
| 参数 | 含义 | 示例值 |
|---|---|---|
| 匹配值 / 释放值 | 累积值越过匹配线确认,跌回释放线解除 | 1.0 / 0.2 |
| 累积上下限 | 累积值的取值范围 | 0 ~ 2.0 |
| 弱阳性速率 | 单位时间正向证据的累积速率 | 0.03 /s |
| 弱阴性速率 | 单位时间反向证据的抵消速率 | 0.05 /s |
| 半衰期 | 累积值随时间衰减一半所需的时长 | 30,000 ms |
| 未知行为 | 看不清时累积值是"保持"还是"继续衰减" | 衰减 |
| 强信号直通 | 强阳性立即命中、强阴性立即解除的开关 | 开启 |
示例:隧道渗漏水监测。白天每帧仅有 0.2~0.3 的微弱湿斑置信度,按每秒 0.03 缓慢累积,配合 30 秒半衰期的遗忘,断续出现的弱证据在十余分钟后累积越过匹配值 1.0,确认渗漏事件;夜间画面完全干燥的阶段以 0.05/s 抵消并在数分钟内跌回释放线,事件闭环。
Strategy 05 · Observable absence
安全帽合规检测是典型的反向规则:告警条件不是"看见了违规物",而是"该存在的东西持续看不见"。直接实现它有个致命陷阱:画面里根本没有人的时候,安全帽当然也"看不见"——朴素做法会对着空场地疯狂告警。可观测缺失策略引入了"可观测性"前提:只有当人员本身被持续检出、且在人员可见的前提下目标物持续未见,缺失才成立。它还处理了两个现场细节:其一,一旦确认佩戴,本跟踪周期内锁定合规——工人戴好帽子之后偶尔的遮挡或误检不会再次打断他;其二,遮挡或转头造成的"疑似看见"只按弱证据缓慢累积,而推断性的出现证据不被采信,只有被真实观察到的出现才能解除告警。
| 参数 | 含义 | 示例值 |
|---|---|---|
| 缺失确认时长 | 人可见而物未见持续满该时长,确认缺失 | 3,000 ms |
| 确认上限时长 | 缺失计时的封顶值,防止极端长计时 | 30,000 ms |
| 强出现立即解除 | 清晰看见佩戴时是否立即解除告警 | 开启 |
| 弱出现累积 | 开关、阈值与半衰期:疑似看见的证据缓慢累积,达到阈值才视为佩戴 | 开启 · 0.6 · 1,500 ms |
| 解除延时 | 出现确认后维持满该时长才正式解除 | 1,000 ms |
| 未知保持时长 | 完全看不清超过该值,状态复位重估 | 8,000 ms |
示例:工地出入口安全帽检测。工人进入画面 0.5 秒后头部可见但持续未见安全帽,计时从人可见时刻起算,3 秒后确认缺失并告警;随后工人从口袋取出帽子戴上,清晰可见的佩戴画面令强出现立即生效,1 秒解除延时后事件闭环,且该工人在本次跟踪周期内不再因头部瞬时遮挡被重复打扰。
Strategy 06 · Track transition
越线、闯入、离岗、逆行,本质都不是"画面里有个目标",而是同一目标与区域、警戒线的关系发生了变化。这要求判定建立在跨帧跟踪之上:系统必须确认第 30 帧的行人和第 45 帧的行人是同一个人,"进入危险区"这个结论才成立。轨迹变迁策略把跟踪连续性作为硬性前提——目标因遮挡断跟后重新出现,不能直接沿用断跟前的区域关系;关系变化需要在确认时限内保持稳定才成立;告警触发后进入重复告警冷却期,目标在边界附近徘徊不会刷出成串重复告警。
| 参数 | 含义 | 示例值 |
|---|---|---|
| 确认时限 | 关系变化需在该时限内确认,超时视为不确定 | 2,000 ms |
| 最短稳定时长 | 关系需持续稳定的最短时间,过滤边界抖动 | 1,000 ms |
| 重复告警冷却间隔 | 告警解除后经过该间隔,同类事件才能再次触发 | 10,000 ms |
| 未知保持时长 | 跟踪丢失超过该值,状态复位重新观察 | 3,000 ms |
示例:接触网带电区域闯入防护。行人目标被跨帧持续跟踪,轨迹连续且与带电区域的关系稳定为"内部"满 1 秒,确认闯入并联动声光警示;告警后 10 秒冷却期内,同一个人在边界内外徘徊不会重复触发。检测框压线导致的"半进半出"抖动被最短稳定时长吸收。
Strategy 07 · Scene aggregate
"站台上聚集了超过五十人"——这条规则的判定对象是区域内的目标集合,任何一个个体都不违规、集合整体才违规。逐目标判定在这里完全失效。场景聚合策略每帧接收区域当前的完整成员清单而非增量变化:人数、指定对象的组合、密度都可以作为判据;成员来来去去,判定只看当前时刻的整体状态是否持续满足条件。由于状态只保存"现在的成员",无论运行多久,占用都有上界。
| 参数 | 含义 | 示例值 |
|---|---|---|
| 确认时长 | 集合条件持续满足满该时长后确认 | 60,000 ms |
| 解除时长 | 条件消失满该时长后解除 | 20,000 ms |
| 未知保持时长 | 画面不可用超过该值,状态复位 | 5,000 ms |
| 最大实体数 | 单区域跟踪实体上限,系统级约束为 1,000 | 200 |
示例:高峰期站台聚集预警。划定站台候车区域,当前在场人数 ≥ 50 持续 60 秒即确认聚集预警并推送客运调度;列车离站、人数回落并持续 20 秒后自动解除。个别乘客进出引起的瞬时人数波动被时长参数自然平滑。
Selection guide
现场配置一条巡检规则时,按顺序回答三个问题,答案会直接指向一种策略。拿不准时,优先保证误报可控——漏报可以靠加密巡检频次弥补,告警疲劳则会摧毁整个系统的公信力。
近距离、大目标、光照稳定,说明证据强,可以偏向快速策略(瞬时滞回、持续时长);远距离、小目标、遮挡频繁,说明证据弱,应偏向统计型策略(窗口共识、证据累积),让时间和质量加权去抵消单帧的不确定性。
安全类事件(闯入带电区、明火)宁可误报不可漏报,阈值下探、时长缩短,并开启强信号直通;运营类事件(聚集、占道)告警疲劳代价更高,时长上浮、阈值保守,宁可晚三十秒确认。
Configuration workflow
规则策略不要求使用者理解任何算法。在巡检方案配置中,一条规则由"检测什么 + 在哪检测 + 如何判定"三部分组成,策略与参数就是第三部分的选择题与填空题。
选择相机与视频流,在画面上绘制区域或警戒线,作为规则的空间作用域。
从已启用的人、车、火、烟、PPE、设施缺陷等模型对象中选择规则的目标。
按上文的三问法选择策略,系统会呈现该策略的全部参数与合法取值范围。
参考同场景的模板参数起步;所有时长、阈值均可在运行中调整,调整即时生效于新证据。
用历史视频回放校验误报与漏报。因为判定基于事件时间,回放结果与当时线上一致,调参后重放即可对比前后差异。
规则上线后,每条告警都携带完整证据链与判定原因,作为下一轮调参的依据。
Scope
七种策略与文中参数均为当前版本规则引擎的真实能力与真实配置项;示例数值为说明性配置,实际取值应结合现场验证确定。
规则策略消除的是时间维度的抖动,不能修复检测模型本身的系统性缺陷。对象在画面中完全无法被检出时,任何判定策略都无法凭空产生告警。
窗口共识的窗口样本上限(60)、场景聚合的实体数上限(1,000)等为平台级资源约束,单个规则的参数不可突破,以保证长期运行的资源确定性。