做了半年多的电梯扶梯危险行为检测系统,如果把这段经历浓缩成一句给后来人的建议,我会说:这个项目的难点根本不在算法本身,而在怎么把“危险行为”这个模糊概念变成计算机可计算的规则。基于深度学习的电梯扶梯危险行为检测系统,看起来是目标检测加行为分类的组合,真正落地时却牵涉到摄像头视角、遮挡、边缘算力、误报率平衡等一系列问题。这篇文章把我从需求拆解、数据集构建、模型训练到部署联调踩过的坑都整理出来,给正在做类似项目的朋友一份可以直接参考的路线图。
无论你是在准备学位论文,还是接了一个真实场景的横向课题,这套系统的核心逻辑是相通的:先定义清楚要检测什么,再决定用什么技术方案,最后在算力约束下把性能磨到可用。下面我就按这个顺序,完整拆一遍这个系统的设计与实现。
1. 先弄清场景:电梯扶梯危险行为检测到底要管哪些事
很多第一次做这个项目的人,上来就找跌倒检测模型、打架识别模型,折腾半天发现现场根本跑不起来。问题出在大家把“危险行为检测”当成一个通用的图像分类任务,忽略了电梯和扶梯是两种完全不同的物理场景,行为定义、视角、光照、遮挡规律都不一样。
1.1 两类场景的差异决定了技术路线
扶梯场景的特点是长条形、斜面、顶部俯视摄像头,画面里同时能看到扶梯入口、梯级、出口,乘客从远处走过来到进入画面,再随梯级上升或下降,整个运动轨迹是连续且可预测的。摄像头装在入口或出口正上方,视角通常比较固定,拍到的都是人头、人肩和背部,人脸信息很少。这种视角对行人检测比较友好,因为目标尺寸变化有规律,离摄像头近的目标大、远的目标小。
电梯轿厢场景则完全不同,空间封闭、面积小、高度有限,摄像头一般装在轿厢顶部角落,斜向下拍。轿厢里往往有镜子、扶手、广告屏,反光和遮挡特别重,人贴人站着的时候目标互相遮挡非常严重。而且轿厢内的目标尺度变化不大,但姿态变化极其丰富——有人面朝摄像头,有人背对,有人蹲下,有人弯腰捡东西。这样一来,同一个行为在不同姿态下的视觉表现差异很大,模型很容易误判。
从技术路线上说,扶梯场景更依赖运动轨迹和速度判断,电梯场景更依赖人体姿态和空间位置判断。设计系统时不能拿一套逻辑硬套两个场景,后文会详细展开。
1.2 危险行为清单:哪些必须做,哪些建议做
我在实际项目中把危险行为分成三个等级,这个分级思路写论文的时候也可以用,直接对应需求分析章节。
| 等级 | 场景 | 行为类型 | 触发逻辑 | 说明 |
|---|---|---|---|---|
| 必做 | 扶梯 | 逆行 | 目标运动方向与梯级运行方向相反 | 扶梯逆行是事故率最高的行为,必须做 |
| 必做 | 扶梯 | 摔倒/跌倒 | 人体姿态由直立变为倒地,且长时间未起 | 俯视视角下跌倒检测是难点,需要前后帧联动 |
| 必做 | 电梯 | 长时间挡门 | 门区域被占用超过设定阈值 | 常见于搬家、等人场景,规则简单但很实用 |
| 建议做 | 扶梯 | 婴儿车/大件行李上梯 | 检测到目标类别异常 | 本质是目标检测任务,难度不高 |
| 建议做 | 电梯 | 剧烈运动/蹦跳 | 人体关键点位移幅度异常 | 轿厢蹦跳会影响安全,但误报率偏高 |
| 建议做 | 扶梯 | 探身/伸手 | 关键点越过扶手区域 | 对摄像头视角要求高,很多现场实现不了 |
| 可选 | 电梯 | 打架/聚集 | 多人目标速度突变、重叠度高 | 容易和正常社交行为混淆,谨慎上线 |
我的建议是:第一版系统优先保证“扶梯逆行+扶梯跌倒+电梯挡门”这三类,不仅因为它们的规则边界清晰,而且事故危害最大、监管也最关注。十几种行为一起做,数据标注量成倍增加,模型调参难度指数上升,最后每个行为都做不扎实,验收的时候反而被动。
还有一个容易被忽略的需求点:报警后的处置链路。检测到危险行为之后是弹窗提示、声音报警、联动梯控,还是截图推送给管理员?这决定了系统的响应时间预算和部署位置。我见过不少项目算法做得不错,最后因为告警太频繁没人处理,被甲方要求下线的。
2. 方案选型:检测-跟踪-判定三层架构为什么更稳
明确了要检测什么行为,接下来就是技术方案。刚接触这个方向的人可能会想:既然是行为识别,是不是要上视频理解模型,比如SlowFast或者TimeSformer,直接对视频片段做分类?这个思路在学术上没问题,但在电梯扶梯这种实时性要求高、算力有限的落地场景,我劝你谨慎。
2.1 为什么不用端到端行为识别模型
端到端视频行为识别的逻辑是输入一段连续帧,模型直接输出行为类别。听起来简单,实际部署有几个绕不开的问题。
第一个问题是时序窗口长度。行为识别模型通常要处理8帧、16帧甚至32帧的输入,对应边缘设备上几百毫秒的延迟。而扶梯逆行检测要求及时发现,最好在行为发生后的1到2秒内报警,留给推理的时间窗口非常紧。
第二个问题是计算量。视频理解模型的参数量和FLOPs远高于单帧目标检测器,在带GPU的边缘盒子上跑一跑还行,一旦换到低功耗的CPU或边缘NPU设备上,实时性基本没保障。
第三个问题,也是最容易被忽略的:端到端模型的行为类别和硬件绑定太死。现场相机角度稍微偏一点,或者换了一个光照完全不同的新站点,模型效果立刻衰减,再训一次代价很大。
所以我最终选择的是两阶段路线:先用目标检测模型把画面里的人检测出来,再用轻量级跟踪器做跨帧关联,最后交给一个独立的行为判定层去判断“这人是不是在做危险动作”。这样拆开之后,每一层都可以单独优化、单独换模型,工程上非常灵活。这个架构听起来多了一个环节,实际推理开销并不高,因为检测器只跑一帧,跟踪器和行为判定层的计算量都很小。
2.2 检测器选型与替代方案
检测器这一层我前后对比过好几个方案:早期的YOLOv5s、后来的YOLOv8s,还有YOLOX-S和RTMDet。最终主力用的是YOLOv8s,理由有三条:
- 检测精度和速度的平衡点合适。在640×640输入下,单帧推理在边缘GPU上大概20毫秒到30毫秒,满足实时监控的需求。
- 训练和部署生态成熟。官方预训练权重可以直接用,导出ONNX、TensorRT的流程透明,踩坑少。
- 对小目标和中目标的适应性好。扶梯场景里远端的行人体积很小,YOLOv8的检测头设计对这种尺度变化比较友好。
如果现场算力特别紧张,比如只能用CPU设备,可以考虑轻量版目标检测器如RTMDet-S或者YOLOv8n。代价是精度下降,对于跌倒这种小目标行为容易漏检。
还有一个值得提的替代方案:有些团队用基于人体关键点的姿态估计模型,比如RTMPose,直接检测人体骨骼点,再根据骨骼点角度和位置去判断行为。这种方法在电梯轿厢这种近景场景表现不错,因为人能占满画面的大部分区域,关键点容易测准。但在扶梯俯视场景就不太行了,摄像头拍到的人经常只有头和肩,关键点数量不够,姿态角度计算根本不可靠。
所以在我的系统方案里,扶梯场景以目标跟踪为主,电梯场景可以叠加关键点模型作为辅助。这个区别对待的设计,是经过实际数据验证的。
2.3 行为判定层的两种实现路径
跟踪器把同一行人在连续帧里的检测框关联起来之后,行为判定层一般有两种做法。
第一种是规则驱动。比如扶梯逆行,只要计算行人的运动方向向量,与扶梯运行方向做夹角判断,如果夹角超过一定阈值且持续多帧,就判定为逆行。扶梯跌倒则是检测框的高宽比突变,配合人体中心点的速度骤降,再多帧确认。这种方法的优势是没有额外训练成本、可解释性强、调试方便,缺点是规则写死了,遇到复杂情况容易漏。
第二种是轻量级分类模型。提取行人的轨迹特征,比如位置序列、速度序列、框高宽比序列,输入一个小型时序模型(比如TCN或单层LSTM)做二分类。这种方法比固定规则灵活,但需要额外标注和训练数据,如果项目周期短,不太划算。
我最终采用的是“规则为主、模型为辅”:扶梯逆行、挡门这类空间语义清晰的行为用规则判断,跌倒这类姿态突变的行为先用检测框形态变化触发候选,再用短时序模型做二次确认。这个组合在误报率和召回率之间找了一个比较实用的平衡点。
3. 数据与标注:模型上限在哪里,取决于你这一步
目标检测模型的上限,在数据准备阶段就定死了。很多团队模型训练效果差,第一反应是调参,实际上问题往往出在数据集本身。这个部分我不讲空话,直接分享我构建电梯扶梯危险行为数据集的过程。
3.1 数据从哪儿来
第一步是盘点可用数据。公开数据集里能直接用的不算多,COCO这种通用目标检测数据集里有行人类别,可以用来做预训练,但没有电梯扶梯视角的数据。有一些专门的行人跌倒检测数据集,不过大多是家庭或公共走廊场景的侧视角相机拍摄,和电梯扶梯的俯视视角差别很大。
所以自建数据采集是避不开的。我在实际项目中用模拟环境加真实场景结合的方式:真实场景方面,找合作的场地在电梯和扶梯出入口架设临时摄像头,录日常运行视频,重点是覆盖不同时段、不同光照、不同客流密度。模拟数据方面,组织人员在现场按脚本演示各种危险行为,比如假装逆行摔倒、用推车挡门、在轿厢里蹦跳,录下来之后切片标注。
这里有个很实际的经验:真实数据用于学习正常的客流模式和光照变化,模拟数据用于覆盖危险行为的正样本。两者比例我控制在7:3左右,真实数据为主,模拟数据填充正样本的不足。
还有一个好用的数据来源是商场或写字楼的监控录像,经脱敏处理后用于训练。这类数据一般能覆盖大量正常场景,从中硬挑出危险行为虽然耗时,但质量非常高。需要注意的是数据合规问题,脱敏和授权都要处理好,否则后患无穷。
3.2 标注规范与质量把控
数据标注是整个流程中最枯燥、最容易被低估的环节。电梯扶梯场景的标注有几个特殊难点,直接影响模型效果。
遮挡目标的标注策略:当行人被扶手、柱子或其他人挡住一半时,框怎么画?我的做法是只要目标可辨认、面积占比超过三分之一,就要标注完整的外接框;如果遮挡太严重且无法判断是否是行人,跳过不标。这里的关键是标注标准一定不能摇摆,否则标注人员会按照自己的理解自由发挥,训练集噪声大增。
小目标的标注:扶梯远端的行人可能只有三四十个像素高,人眼勉强能看出来。对于这种目标,我专门让标注人员放大到200%再标,宁可少标也不标错。
标注类别的定义也要细:危险行为的触发是复合事件,标注的时候不能只标“逆行”这一个类别,最好把人、扶梯、栏杆、推车这些元素分开标注。人由检测器负责,推车和栏杆可以协助判断行为,拆开之后灵活性更高。
质量把控我有几个土办法:一是双人交叉标注,同一个批次让两个人标,计算重叠度差异;二是每周随机抽取10%的标注结果让人复核,发现问题及时纠偏;三是用训练好的模型跑一遍训练集,把预测结果和标注结果不一致的样本挑出来人工审视。这三步做完,标注质量的可靠性会有明显提升。
3.3 数据增强与样本平衡
电梯扶梯场景的光照变化很大,白天有阳光直射,夜晚有低照度噪声,镜面反光也常见。如果训练数据不够多样,模型的鲁棒性会很差。
我在训练时用到了一组固定的在线增强策略:随机翻转、随机缩放、HSV颜色抖动、随机亮度对比度调整、马赛克增强。对于电梯轿厢这种环境相对固定的场景,马赛克增强可以模拟多人拥挤的效果,对提升拥挤场景的检测能力很有帮助。
样本不平衡是个更隐蔽的问题。电梯扶梯日常运行中,危险行为的出现频率非常低,如果训练集完全按真实分布来组织,模型会严重偏向“正常”类别,危险行为几乎学不到。解决方法是提高危险行为正样本的采样比例,把训练集中危险行为类别控制在30%到40%左右。这个比例需要根据实际误报和漏报情况不断调整,没有固定值。
还有一个细节:训练集和验证集的分割不能按照视频文件随机分,否则同一段视频的相邻帧会同时出现在训练集和验证集里,导致验证指标虚高。正确做法是按视频片段清洗分割,保证同一段视频只出现在一个集合里。
4. 训练与优化:把检测精度拉上去的关键操作
模型训练是这个系统里最依赖经验的环节。我第一次训练扶梯跌倒行为检测模型时,前期mAP一直卡在0.7左右,后来发现问题出在一个非常基础的细节上——图片尺寸设置混合不统一。
4.1 训练流程与超参数基准
我的训练流程分三步走:第一步,加载COCO预训练权重,冻结主干网络,只训练检测头,用一个较小的学习率跑20个epoch左右,让模型适应电梯扶梯场景的数据分布;第二步,解冻全部权重,降低学习率,接着训练到收敛;第三步,用难样本挖掘的方式对误检和漏检较多的数据做二次迭代训练。
一组经过多轮调试、效果稳定的基准超参数如下:
| 超参数 | 推荐值 | 说明 |
|---|---|---|
| 输入图像尺寸 | 640×640 | 兼顾小目标检测和推理速度 |
| 批大小 | 16 | 在单卡GPU上足够的显存利用率 |
| 初始学习率 | 0.001 | 解冻阶段可降到0.0001 |
| 学习率调度 | Cosine | 收敛更平稳 |
| 训练轮数 | 60-80轮 | 早停时机以验证集的mAP不再上升为准 |
| 置信度阈值 | 0.25训练 / 0.45推理 | 推理阈值高一些,压低误报 |
| NMS IoU阈值 | 0.45 | 标准配置 |
训练细节上有两个坑值得单独提醒。
第一个是分辨率对齐。训练时如果混用了不同分辨率的图片,模型会学到奇怪的尺度偏移,小目标漏检率特别高。我统一把所有训练图像先缩放到固定短边尺寸,再做随机裁剪到640×640,这样训练时看到的目标尺度分布基本一致。
第二个是类别权重。电梯扶梯场景中普通行人占绝大多数,危险行为样本少,如果类别不平衡不处理,模型会倾向于把所有目标都预测为普通行人。我给危险行为类别加了一个3倍左右的损失权重,实测对召回率的提升很明显。
4.2 难样本与负样本怎么处理
训练初期模型几乎把所有的正常行人误报成“逆行”或“跌倒”,这是最让人头疼的问题。解决这个问题的核心思路,是给模型喂足量的难负样本。
难负样本指的是那些看起来像目标行为但实际上不是的样本。比如乘客弯腰系鞋带,姿态上和跌倒前的瞬间非常相似;再比如乘客从扶梯出口转身往回走,运动轨迹上很像逆行。如果训练集里没有足够多这类数据,模型分不清边界,推理阶段必然疯狂误报。
我在处理难样本时专门做了一次负样本挖掘:先用训练好的模型跑在新采集的干净视频上,把所有置信度大于0.3但属于误报的检测结果裁剪出来,人工确认并纳入训练集,标记为对应的负类或最难类别。这个过程跑了两轮,误报率肉眼可见地降了下来。
负样本还有一个容易被忽视的来源——电梯内的广告屏。轿厢里的镜面广告屏会映射出乘客的虚影,模型可能把虚影当成另一个行人。我单独采集了大量有广告屏的场景数据,并把这些数据多次增强后混入训练集,增强模型对反射虚影的抵抗能力。
4.3 评估指标体系:不只看mAP
工程落地上最关键的指标不是mAP,而是误报率和漏报率的平衡。我在项目里建立了一套自己的评估口径:每天处理1000个真实班次视频,统计每个小时的误报次数和漏报次数,而不是只看验证集上的mAP曲线。
评估时我同时关注三个指标:检测召回率、误报次数/小时、报警响应时间。召回率决定了危险行为能不能被发现,误报率决定了这套系统值不值得用——如果一天误报几十次,管理员直接把报警功能关了,系统名存实亡。响应时间则由两段构成:模型推理时间加确认帧数乘帧间隔。比如确认帧数设置成5帧,每帧间隔100毫秒,仅确认逻辑就要500毫秒,如果再加上推理延迟,整条链路可能超过1秒。
有一种比较理想的配置:检测器推理控制在30毫秒以内,跟踪和行为判定不超过10毫秒,确认帧数根据行为类型动态设置,扶手逆行的确认帧数设置为3帧,跌倒设置为5帧,挡门设置为连续检测到10帧以上才开始计时。这套配置在延迟和误报之间比较平衡。
4.4 面向论文的实验设计建议
如果你打算把这个系统写成学位论文,实验部分的设计要提前规划。我建议做以下几组对比实验:
- 基础模型对比:同一数据集上对比YOLOv5s、YOLOv8s、YOLOX-S的mAP和推理速度,验证模型选择的合理性;
- 消融实验:分别去掉预训练权重微调、难样本挖掘、数据增强策略,量化每个模块对最终指标的贡献;
- 分场景评估:把扶梯和电梯两个子场景分开测试,分别给出误报率、召回率和响应时间,展示系统的场景适配能力;
- 时序判定对比:对比纯规则判定和规则加时序模型的方案在跌倒检测上的效果差异。
这几组实验做完,论文的实验章节基本就有血有肉了,同时它们也确实能指导工程调优,不是为做实验而做实验。
5. 部署落地:边缘盒子推理、时延控制与告警联动
算法在离线环境里跑通只完成了一半。真实监控场景的部署条件远比实验室复杂,网络带宽、设备算力、并发路数、告警联动,每一个环节都可能让项目翻车。
5.1 硬件选型与性能预算
电梯扶梯场景的摄像头数量往往不少,一个商场可能几十路甚至上百路。把所有视频流集中到中心服务器推理,网络带宽压力和服务器成本都非常大,所以主流方案是边缘计算:每台边缘设备就近接入几路摄像头,本地推理,只把告警信息和截图上传到中心平台。
边缘设备的选型,我建议先算算单路视频的推理预算。假设目标指标是每路视频单帧处理时间不超过50毫秒,那一个设备接4路视频就需要至少有200毫秒才能处理一轮全部视频帧。如果还用传统的光流、关键点模型,预算会被严重挤占。所以部署方案的硬件选型要以检测器加轻量级判定逻辑为主。
从实际经验看,带并行处理单元的嵌入式边缘设备,比如基于常见GPU架构的工业盒子,处理4路1080P视频流,YOLOv8s模型量化后可以达到单路实时处理的要求。如果设备算力再低一档,就要换YOLOv8n或者减小输入分辨率到480×480,看现场对精度要求是否能接受。
梯控联动是一个需要额外注意的点。部分现场要求检测到危险行为后,直接给扶梯或电梯控制器一个紧急停止信号,这时候系统责任就很重了——一旦误报导致急停,会让正常乘客受惊甚至受伤,所以梯控联动必须采用多帧确认加二次确认机制,并且保留人工接管通道。
5.2 模型转换量化与推理优化
模型训练在PyTorch框架下完成后,部署前要做转换。我的标准流程是:PyTorch导出ONNX,再用推理引擎做深度优化和量化,最后用优化后的推理后端接入视频流。
推理优化这件事,精度和速度的平衡要自己实测。FP16精度下,模型精度损失很小,速度能提升接近一倍;INT8量化之后速度更快,但精度会明显下降,需要准备校准集数据来降低量化误差。所谓校准集,就是从训练集中挑出几百张有代表性的图片,在量化过程中统计每层激活值的分布,让量化损失最小。这部分偷懒不得,校准集的质量直接决定INT8模型的实际效果。
我实际测过一组数据:在一台边缘GPU设备上,YOLOv8s的FP32推理大约需要40毫秒,FP16优化后提到25毫秒左右,INT8后可以到10到15毫秒。如果目标设备时延要求特别高,INT8基本是必选项。
推理日志也非常重要。部署之后要给检测结果加上时间戳、摄像头编号、目标轨迹坐标,这样出了问题才能回溯。我在系统里保留最近30天的解析后结果,排查误报时回放当时的检测状态,效率高很多。
5.3 告警联动与系统可靠性
告警环节我踩过的坑集中在两点:告警风暴和重复报警。
告警风暴是因为没有做去重。扶梯跌倒这种行为,确认之后如果还在持续触发,系统会每帧都产生新告警,一瞬间短信就能把管理员手机打爆。解决办法是给每个目标在告警后设置一个冷却时间,比如跌倒告警触发后,同一个跟踪目标在30秒内不再重复告警。
重复报警则是跟踪器丢失目标后重建了新的ID,同一件事被当成两次事件。解决方式是在行为判定层增加一个事件匹配逻辑,把短时间内发生位置接近的同类型告警合并。
系统可靠性方面,视频流断线重连、设备重启自动恢复、告警队列堆积处理,这些都需要在发布前做一轮完整的故障演练。我遇到过边缘盒子某路视频流因前端相机掉线导致内存持续上升的问题,排查了很久,最后是给视频解码增加超时重置机制解决的。这类问题在实验室环境几乎不会暴露,部署到现场频率立刻显现。
6. 高频问题与排查避坑经验清单
最后这部分,我把项目过程中遇到的高频问题整理成了一张速查表,都是别人文档里不太会写、但现场非常实用的经验。
6.1 误报与漏报的常见来源
| 现象 | 可能原因 | 处理方案 |
|---|---|---|
| 白天误报率高 | 阳光直射产生长影子被检测为行人 | 增加正午时段数据,标注影子场景,训练难负样本 |
| 夜间漏检严重 | 低照度下目标特征不明显 | 开启摄像头红外模式,或模型输入增加夜景增强预处理 |
| 镜面广告屏产生虚影 | 反射导致重复目标 | 训练集中加入广告屏反射样本,后期用ROI区域裁剪 |
| 弯腰行为误报跌倒 | 姿态与跌倒前高度相似 | 引入连续多帧校验,结合中心点速度判断 |
| 推婴儿车上扶梯漏报 | 婴儿车目标与行人重叠 | 单独标注婴儿车类别,降低NMS抑制阈值 |
| 电梯拥挤时漏检 | 相互遮挡导致跟踪中断 | 调整跟踪器的最大丢失帧数,启用轨迹外插 |
误报这个事,光调阈值解决不了全部问题。我的体会是:每减少一次误报,都要弄清楚模型为什么把它当成目标行为,然后回到数据和逻辑层去修,而不是简单拉高阈值一票否决。
6.2 多目标跟踪与遮挡处理
多目标跟踪在电梯扶梯场景里是另一个核心难点。扶梯入口处大量乘客短时间内同时进入画面,目标数量突变;轿厢内人贴人站立,跟踪器很容易把ID搞混。
我使用ByteTrack作为主力跟踪器,原因是它的关联策略对低分检测框比较宽容,遮挡后短暂消失的目标能在恢复后重新对上。关键调参项有三个:最大丢失帧数,设得太小目标消失几帧就断ID,设得太大容易把不同目标串联在一起;匹配IoU阈值,太低会引入大量错配,太高又会漏配;轨迹外插的帧数,扶梯场景下轨迹外插可以掩盖短暂的检测失败,但外插时间过长会产生明显的位置漂移。
还有一个小技巧:跟踪结果要加一个最短轨迹过滤,轨迹长度低于5帧的目标不做行为判定。这些目标往往是误检或者是快速穿过画面的行人,缺乏足够的信息来支撑可靠的行为判断。
6.3 几个值得记住的实操心得
踩过这么多坑,有几条经验我认为价值最高,单独分享出来。
第一,不要追求一次把模型训到完美,要建立一个持续的闭环迭代机制。每次现场误报和漏报事件都记录原因,定期整理成新的训练样本,一个月左右补一次训练集,重新微调模型,效果会持续改善。
第二,所有的报警判定都要“慢半拍”。危险行为的确认不要用单帧结果,至少要在连续3到5帧里保持稳定再触发报警。扶梯故障和事故之间差的就是那几百毫秒,用确认帧数换无误报,是值得的。
第三,现场部署前一定要做一套对抗样本测试。拿一些形状类似人的物体,比如清洁车上的水桶、人形立牌,在摄像头前晃一遍,看看模型会不会误检。这类测试能暴露很多数据集中根本没有覆盖到的盲区。
第四,论文里写设计方案的时候,除了算法流程,一定要把系统架构、数据流转、部署拓扑画清楚。审阅者特别关注你的系统是不是真的能落地,工程设计和算法创新同样重要。
最后分享一个选择上的建议:如果你现在还是项目初期,在排序检测需求时,先在能力范围内选两到三个最有代表性、最容易出效果的行为类型快速跑通一遍完整流程,后面再加行为种类就会顺手很多。真等系统上线跑稳定了再扩张,远远比前期铺开一大堆行为类别更稳妥。这个思路贯穿了我整个项目的实施过程,也是我认为这套电梯扶梯危险行为检测系统设计实现中,最值得后来者借鉴的一点。