用泳池里已有的摄像头画面,自动发现“水里的人突然不见了”或“水里的人一动不动”,几秒内提醒救生员去看一眼。它是救生员的助手,不替代救生员。
每一步都在本地完成,画面不上传。
目标检测模型(YOLO)在每一帧里找出水面上的人,只看泳池水域,岸上的人不参与。
给每个人一个编号并持续跟踪,知道谁在游、游到哪、速度多快。
用“10 秒预警、20 秒报警”这类救生行业通行的时间规则,判断是不是需要人过去看。
预警只提示值班人员;报警才应触发现场处置。
原来稳定被跟踪的人不见了,且原位置附近没有别人游过来接替。
同一个位置几乎不动(脸朝下漂浮、瘫软等)。站在浅水区、扶着池壁的人不算。
画面冻结、断流、镜头被遮挡时,系统只会暂停计时并提示“画面异常”,不会误当成“没人”。
系统在真实泳池录像上实时运行的画面:绿框=检测到的人,蓝线=自动识别出的水面范围,上方是状态条,下方是事件记录。



这段视频是怎么做的:画面是真实录像,检测、跟踪和报警规则是真实运行的。第 11 秒起,演示时点了“模拟沉没”:程序把一位游泳者从画面里合成去掉,并让引擎看不见他,约 12 秒后出现预警,约 25 秒后报警。紫色圈和“模拟目标”标的就是这个人为设定的位置。这是在演示报警规则,不代表真实溺水时的检测效果。
如实列出:已经验证的、只验证了一部分的、还没有验证的。
无溺水的真实泳池录像(11 段,2 个机位)
在这些录像上没有误报警(参数在同一批录像上调过,有“自己考自己”的成分)
模拟“瘫软不动”时,从发生到报警的中位用时(人为注入的模拟,只验证规则)
| 项目 | 状态 | 说明 |
|---|---|---|
| 检测水面上的人 | 小样本验证 | 人工核对的少量画面里漏检很少,但样本小;最远端的小目标仍会漏。 |
| 正常游泳时不乱报警 | 部分验证 | 31.6 分钟无溺水录像 0 次报警;录像时间还太短,真实误报率现在不能下结论,需要更长的连续录像。 |
| “不动”规则 | 模拟验证 | 人为注入的不动目标报警率 83%(为避免浅水区站立误报,贴着池壁的人不判“不动”,这是已知盲区)。 |
| “消失”规则 | 模拟验证 | 模拟沉没的检出率在 37%~81% 之间波动,样本少、波动大。 |
| 真实溺水 / 潜水画面 | 未验证 | 目前没有任何真实溺水或模拟救援演练录像,检测器在这类画面上的表现未知。 |
| 边缘设备(RK3588)运行 | 未验证 | 模型转换和板端速度尚未实测;在带显卡的电脑上已可实时运行。 |