井下人员定位是我做了很多年的老话题。从早期的区域读卡,到后来的UWB精确定位,大家一直在往“更准”“更实时”两个方向卷。但真正接触过井下安全管理的朋友应该都有同感:单靠佩戴式定位设备,始终解决不了安全闭环的最后一公里——你能知道某个人到了哪条巷道、靠近了哪台设备,却不知道他当时是蹲着检修、站着休息,还是已经摔倒了十几秒没动。正是这个缺口,让我把技术方向转向了三维重构与微动作识别驱动的矿工无感定位:把井下已有的工业摄像仪作为主要感知源,通过三维重构建立起巷道的真实空间骨架,再叠加微动作识别,把传统的“人在哪”升级成“人在哪、在干什么、状态是否正常”。这套系统围绕的核心关键词就是视频驱动、空间感知和透明化安全管理,严格来说它不是把定位精度卷到厘米级,而是把人员定位从“数据”变成了“可理解的场景”,这是我认为未来矿山安全信息化真正值得投入的方向。
这篇内容适合正在做智慧矿山、安全信息化、视频AI落地的团队阅读,尤其是那些已经在井下部署了摄像仪、但还没把视频数据转化为结构化位置信息的朋友。我会从传统定位方案的瓶颈讲起,拆解视频无感定位的主干链路,再单独展开微动作识别在定位任务中的三重角色,最后把落地过程中我踩过的坑和系统的工程参数一并交代清楚。
1. 传统井下定位为什么卡在“精度—成本—体验”三角:从UWB和定位卡说起
要理解视频无感定位的价值,得先看看传统方案到底卡在哪里。过去十年,井下人员定位的主流方案无非是射频标签、UWB、惯导、以及它们的组合。UWB在开阔场景下能做到30厘米级甚至更高精度,这个数字在理想环境里很好看,但放到井下真实工况里,问题远没有参数表上那么简单。
1.1 主流井下定位方案的物理边界
我用一张表把几种典型方案的特性放在一起,方便对比:
| 方案 | 典型精度 | 核心短板 | 对安全管理的贡献 |
|---|---|---|---|
| 区域读卡/门禁 | 巷道级 | 只能判断“在哪片区域” | 考勤与区域管控 |
| UWB定位 | 0.3–1米(视距) | 需佩戴标签、基站部署密度高、金属遮挡严重 | 精确轨迹 |
| ZigBee/Wi-Fi | 3–10米 | 多路径干扰、跳变明显 | 粗略位置 |
| 惯导/航位推算 | 相对位置 | 长时间误差漂移 | 补盲、隧道内辅助 |
| 视频视觉定位 | 0.5–1.5米(视距) | 依赖光线、遮挡、算力投入 | 轨迹 + 姿态 + 行为语义 |
这里最要命的不是精度差值,而是佩戴式方案的物理前提:每个人都必须规范佩戴定位标签,标签得保证有电、不损坏、不被随意放置。做过井下信息化的人都知道,实际执行中“人卡分离”是个无解难题——卡在柜子里、挂在矿灯充电架上、被塞进工具箱里,诸如此类的情况屡禁不止。UWB再准,检测不到人身上,照样是白搭。另外,UWB基站在弯道、岔口、综采工作面这些金属结构物密集的地方,非视距误差会瞬间放大到好几米,轨迹抖动得像心电图。
1.2 视频无感定位的逻辑起点:把“人”而不是“标签”作为被追踪对象
视频方案的逻辑起点完全不同。它不假设任何穿戴设备,直接把画面里的人本身当成目标。井下安装的防爆摄像仪、巷道里的补光灯,本身就是透明化安全管理的基础设施,视频定位只是给这批硬件赋予了新的附加值:不新增佩戴负担、不依赖电池、不会出现人卡分离,同时还能拿到姿态信息和动作序列。
有人会质疑:视频方案会不会被光照和遮挡限制住?会,而且限制不小。但它和射频方案并不是替代关系,而是互补关系。关键岗位作业面、主要运输巷道、硐室出入口这些安全管理最关注的地方,往往也是视频覆盖最密集的地方。视频无感定位的价值,恰恰在这些核心区能被放到最大。至于死角,老实交给UWB或区域读卡兜底就好,没必要指望单个传感器解决所有问题。这也是我在设计系统时一直坚持的思路:视频负责“感知场景”,射频负责“补盲兜底”。
2. 视频无感定位的主干链路:从像素到井下坐标要跨越的四个环节
视频定位听起来很直观,但真正落地时,从摄像头画面到输出一个稳定的三维坐标,中间隔了整整一条算法链路。我把它拆成四个环节:相机标定与三维模型、目标检测与姿态估计、像素坐标到三维坐标的解算、跨相机持续跟踪。任何一个环节掉链子,后续定位都是空中楼阁。
2.1 相机标定与三维重构:给巷道建立“物理尺子”
第一件事是让系统知道“画面里的一个像素对应井下哪个真实位置”。这需要两方面的基础数据:相机自身的内部参数和外部位姿,以及巷道表面的三维结构。相机内参包括焦距、主点、畸变系数,一般用标定板离线标定即可。比较麻烦的是外参——井下巷道纹理稀少、白墙黑顶,自动找特征点很困难,我们团队的常规做法是在巷道里布置临时的编码标靶,利用巷道已有的激光点云或断面扫描数据辅助选点,再用多张照片联合求解每台相机的位姿。
有了内外参数,接下来是三维重构。这里我不建议一上来就上摄影测量级的精细重建,对定位任务来说,真正重要的是“地表面”和“关键结构面”。巷道地面不是理想平面,它有人行道、排水沟、斜坡和起伏,所以我们要做的是把巷道地面重构为一个带有高程信息的三角网格,精度控制在10厘米以内。这个精度对人员定位足够,因为人的脚底接地点的真实物理起伏本来就在几厘米到十几厘米之间。地面网格模型出来后,每台相机的成像几何就和三维空间牢牢绑定,后续所有像素坐标的逆投影都有了参照物。
2.2 目标检测与姿态估计:从“看到人”到“看到人的关节”
井下相机安装位置高,视野里的人相对较小,矿工又穿着统一的深色工服、戴安全帽,轮廓形态相对一致。目标检测环节我推荐用YOLO系列的模型,在边缘设备上要选轻量版本,同时注意带上多尺度特征,保证远处小人目标不被漏检。
只检测人的外接框还不够,定位需要更精确的地面接地点。这时要引入人体姿态估计,把脚踝、髋部、肩膀这些关键点解算出来。姿态估计分为自顶向下和自底向上两条路线。工况里人员稀疏、每帧人不多,我优先用自顶向下方案,比如HRNet、RTMPose这类模型,它们对角点位置更敏感,脚踝点的输出稳定性更好。为什么这么在意脚踝?因为后面坐标解算要用“脚底接地假设”,脚踝点位置直接决定定位坐标的精度。
2.3 从二维像素到三维坐标的解算:逆投影、接地点与误差放大逻辑
拿到脚踝关键点的像素坐标后,解算坐标的逻辑并不复杂:假设人的脚底贴着巷道地面,那么脚踝关键点所在的像素射线和地面网格的交点,就是人的真实落脚点。数学上就是一条射线与三角网格求交的过程,远没有工业界渲染那么玄妙。
但这里有个绕不开的误差放大规律:相机离目标越远,单个像素对应的地面尺寸越大,脚踝点的像素抖动会被放大成几十厘米甚至一米多的坐标跳变。所以单相机定位的精度本质上是“视距”的函数。30米视距内误差可以控制在1米左右,50米外就不好保证了。这也是为什么系统设计时要刻意把相机间隔控制在每30到50米一台,而不是为了省设备拉大间距。重叠区域的价值在这里就体现出来了:当两个相机同时看到一个人时,用多视图三角化代替射线接地求解,精度能再上一个台阶。
2.4 跨相机跟踪与轨迹拼接:让“同一个矿工”始终是同一个ID
定位系统输出的不能是一堆零散的“树桩点”,必须是一条连续轨迹,这就要求跨相机跟踪。常用的办法是检测框加外观特征,再配多目标跟踪框架做时序匹配,比如ByteTrack、DeepSORT这类方案。井下人员外观差异化小,纯外观特征在聚集场景里很不靠谱,所以我在系统里引入了微动作识别结果作为身份锚,这一步在第三章会详细展开。跟踪结果会经过卡尔曼滤波做坐标平滑,同时在遮挡消失期间用上一时刻的速度外推插值,轨迹短时断裂后还能自动衔接。
整个链路跑通之后,人的二维像素位置就变成了井下三维空间里有连续时间戳的轨迹点,并且每一个轨迹点都关联着一串动作类别标签。这些结构化数据进入中心平台,再叠加三维巷道模型,就构成了后面的透明化安全管理底座。
3. 微动作识别在定位任务中的三重角色:身份锚、轨迹纠偏与事件预警
微动作识别是这套系统的点睛之笔,但很多人对它的理解只停留在“识别跌倒、识别违章”这个层面。实际上,在视频无感定位里,动作识别承担着三个非常具体的工程任务,缺了它,系统精度和实用性都会大幅缩水。
3.1 角色一:跨相机与长时间遮挡下的“身份锚”
井下人员的工服、头盔同质化严重,两个人在画面里擦肩而过之后,再被追踪时ID很容易互换。传统的行人重识别靠衣服颜色和外观特征,在这里边几乎失效。微动作识别给出了另外一个特征维度:步态和动作习惯。每个人走路时的节奏、跨步幅度、蹲起速度都有细微差异,虽然达不到法庭级步态鉴定的水平,但配合时空约束(上一条轨迹的终点靠近下一条轨迹的起点)和速度约束,足以把ID误切换率压到一个可接受的水平。
我在实际项目里用过一组很直观的组合:外观特征算一个相似度,动作序列模式算另一个相似度,两者加权之后再和位置距离约束一起跑匈牙利匹配。动作序列模式我这边的经验是看“3秒窗口内的骨架姿态序列”,折算成步态周期特征。这样当你把两个目标ID合并或分裂时,置信度会稳健很多。
3.2 角色二:用动作类别修正接地点模型
第二个角色容易被忽略:定位解算时的误差往往不是随机噪声,而是由人的姿态造成的系统性偏差。同一个工人站着、蹲着、弯腰,他的脚踝点在画面里的位置关系会完全不同。假如系统一律用“髋部中点垂直向下投影”当接地点,蹲姿时坐标会偏出去半米甚至更多。所以我在系统中维护了一套姿态相关的接地点规则:站立时用脚踝均值点,蹲姿时直接用脚踝加脚跟位置,弯腰检修时用两脚中心点。
这部分就是微动作识别和定位精度的直接融合。动作分类网络输出的标签不但用于展示“人在干什么”,还会反馈到坐标解算模块,切换不同的接地模型。这也是我在和很多同行交流时发现他们最容易漏掉的优化点。很多人把动作识别和定位看成两条独立流水线,最后展示层数据拼在一起,白浪费了语义信息。
3.3 角色三:安全事件预警与报警规则设计
第三个角色才是大家最熟悉的事件预警。动作识别输出序列后,配合时间窗口和场景上下文,可以构建一系列贴合矿山安全管理的报警规则。我把常用的规则类型列一下:
| 事件类型 | 核心判断逻辑 | 报警延迟 | 典型误报原因 |
|---|---|---|---|
| 跌倒 | 髋部高度短时骤降、身体倾角突变 | 2–5秒 | 弯腰拾物、快速蹲下 |
| 长时间静止 | 同一坐标停留超过设定时长 | 可配置 | 工人正常休息、等人 |
| 禁区闯入 | 轨迹点进入周界区域 | 即时 | 相机切换导致轨迹跳变 |
| 攀爬/翻越 | 关键点带动腿部大幅上抬、身体重心抬高 | 3秒 | 检修行梯登高作业 |
| 单人单岗状态异常 | 单人在岗且长时间无操作动作 | 可配置 | 工人站立观察设备 |
报警设计的关键不是“识别算法有多准”,而是“规则上下文有多丰富”。比如跌倒检测,在皮带边巡检的跌倒和综采支架旁的跌倒,风险等级完全不同;同样一个蹲姿动作,出现在检修时段是正常作业,出现在交接班无人时段就可能有问题。动作识别提供的是低层语义,真正做出判断的,是叠加了空间区域、作业计划、时间班次的规则引擎。这个概念我习惯叫“语义化的定位”,比单纯的坐标告警高出一个维度。
4. 系统落地中的真实坑位:光照、粉尘、防爆约束与数据标注的取舍
算法链路只是一部分,真正让项目从Demo走向长期运行的是工程细节。这一章我不写理想化的架构图,直接讲落地现场最常见的问题和我们摸索出的对策。
4.1 光照、粉尘与防爆约束下的相机部署
井下视觉的先决条件是光。矿灯强光对相机的自动曝光影响极大——一个工人面朝相机时,矿灯会直接冲爆画面,自动曝光算法会立刻收缩进光量,结果人脸和身体全部变成一片死黑,检测模型直接失联。我们的解决方案是关闭自动曝光,把曝光时间、ISO、增益全部固定下来,目标是在矿灯直射时画面不过曝太多,在非直射时依然能分辨出人形轮廓。镜头要选宽动态范围的,并开启强光抑制,在固定场景参数的前提下做一次性调优。
相机安装高度和俯仰角要经过计算。太正对巷道会丢失远端信息,太侧斜会让行人姿态变形严重。综合几十个试点巷道的经验,我一般推荐相机装在巷帮或者顶部支架,安装高度2.8到3.5米,俯角20到30度,光轴沿巷道方向略倾斜,这样兼顾近处细节和远处覆盖。防爆要求也不能忽略:井下设备必须符合本安或隔爆认证,这直接限制了边缘终端的功耗外壳,也就限制了算力选型。
4.2 边缘算力与模型压缩的现实博弈
算力是矿山视频方案绕不开的紧箍咒。井下不能放一块动不动几百瓦的机房级显卡,常见选择是带NPU或低功耗GPU的边缘计算盒子,算力大概在十几到几十TOPS之间。在这个约束下,检测和姿态估计必须做INT8量化,动作识别网络也要压缩成轻量版本。我在几个项目里做过裁剪对比:浮点模型换成INT8量化后,检测框和关键点精度大约回退2%到4%,但推理速度能提升两倍以上,边缘端整体带宽占用也大幅下降。
模型部署下去之后,还要考虑风扇和散热。井下环境粉尘大,无风扇被动散热方案更可靠,但要注意热降频问题,夏天井下温度高的时候,模型推理延迟会明显爬升,需要给设备留出性能裕量,而不是让它满负荷跑在临界点上。
4.3 数据集构建与标注策略:自建井下场景是唯一的出路
公开数据集里的行人检测模型在井下表现不佳,原因很直白:公开数据的场景是城市街道、商场和校园,而井下环境是深色巷道、高噪声图像、大量安全帽和工服。我们做过一个对比测试,直接用开源检测模型跑井下低照度视频,召回率会跌到70%以下。后来自建了煤矿场景训练集,包含不同巷道光照、不同粉尘浓度、白天班与夜班班次,并把矿灯补光直射、逆光、人员聚集等困难情况单独作为分类,定向补样本,检测召回率才稳定到95%以上。
标注策略上,我强烈建议用“检测预标注 + 人工修正 + 主动学习”的打法。先用现有模型自动跑一批井下视频,生成初版标注,标注员只需要修正错漏,效率比从零画框高出好几倍。姿态关键点和动作序列的标注更费人力,可以考虑用合成数据:在三维巷道模型里放人形模型,渲染各种光照和姿态,做成仿真视频参与训练。这一步对微动作识别的泛化能力帮助非常大。
4.4 与既有定位系统、监控平台的对接问题
现实中几乎没有哪个矿是完全的“视觉净室”。很多矿已有UWB定位卡系统、第三方视频平台、人员考勤系统。落地时最容易踩的坑是“两套系统各说各话”:视觉轨迹显示在三维地图上,UWB轨迹显示在二维CAD图上,值班员根本来不及比对。我的建议是不要追求视觉彻底替换射频,而是做统一数据中台:两条轨迹通道都进时空数据库,用同一套人员ID做关联,在关键区域用可信度权重做融合。简单说,能用视频语义判断的场景以视觉为准,射频盲区或视频断线时以UWB为准,发生矛盾时按区域优先级仲裁。
这种做法听起来不“性感”,但稳定性非常好,而且客户接受度高。毕竟矿山安全上一旦报警飘忽,一线值班员很快就会失去对系统的信任,信任一旦没了,再好的算法也救不回来。
5. 透明化安全管理范式:从轨迹回放到时空一体化研判
最后回到系统最本质的意义:它到底改变了什么?我的理解是,它把安全管理者的信息获取方式,从“事后翻录像”和“只能看2D平面点”升级成了“三维时空场景里的实时推演”。这套范式的核心是三个字:可视、可溯、可预测。
5.1 三维时空底座:人员状态与场景状态叠加的“数字现场”
有了三维重构的巷道模型和实时人员轨迹,调度中心看到的将不再是割裂的视频墙和CAD平面图,而是一个统一的三维时空场景。人的位置以骨架化方式呈现在巷道模型里,每个骨架旁边带着工号、身份、动作标签、停留时长;点击任意轨迹点,可以回放到当时那台摄像机的原始画面;拖动时间轴,能够看到整个班组在过去四小时内的动线聚合。
“透明化”不是说要让管理者随时随地监控每个人的一举一动,而是把安全管理需要的要素透明化:作业是否超时、危险区域是否有滞留、巡检路线是否完整、单人单岗是否出现异常状态。这套表达方式对地面调度员非常友好,他们不用再看几十路视频凭经验续摊,而是直接盯着一张“数字现场图”做判断。
5.2 关键性能指标与验收口径
工程交付不能只讲架构漂亮,指标必须可量化。这里给出一版我们实际项目里的验收参考值,供同行参考:
| 指标项 | 参考值 | 说明 |
|---|---|---|
| 单相机定位精度 | ≤1.5米(30米视距内) | 多相机重叠区可到0.5米左右 |
| 人员检测召回率 | ≥95% | 常规光照下、正常作业姿态 |
| 轨迹跳变率 | ≤5% | 每百条关联轨迹中发生ID漂移的比例 |
| 动作识别准确率 | ≥85% | 覆盖走、跑、蹲、弯腰、跌倒、站立 |
| 报警时延 | ≤5秒 | 从事件发生到平台弹出告警 |
| 系统可用率 | ≥99.5% | 按月度统计,含网络中断排除 |
需要注意的是,验收时不要追求单一数字,要设计场景化用例。比如“皮带机头有工人蹲下超过30秒并接近转动部位”,这种复合场景能一次验证检测、定姿、动作、报警四条链路。现场只看PPT指标没有用,拉一段真实作业视频做端到端测试,比任何参数表都有说服力。
5.3 演进方向:从“定位”走向“工效与风险建模”
当前这套系统在定位层面已经很成熟,但我知道它的价值远不止于此。轨迹和动作数据积累三个月之后,可以做岗位工效分析:哪条巡检路线实际耗时和标准不一致、哪个作业区域人员过度聚集、哪个工序经常出现重复动作;再进一步,可以结合设备运行状态做风险耦合预测,比如某个闸室在特定时间段出现人员长时间停留,而设备振动数据同时异常,系统自动给出联合风险提示。
三维重构模型本身也在演进。现在井下三维模型主要依赖前期激光点云和相机标定结果,变化场景要靠人工更新。未来可以把在线视觉SLAM和语义分割纳入进来,让三维模型跟随巷道改造和作业面推进自动更新,这才是真正意义上的“数字矿山孪生体”。
我在实际项目中体会最深的一件事:这套系统的价值最后不在定位误差表里那几行数字,而在于安全管理人员的注意力分配方式被改变了。以前他们要在一堆“东西南北坐标点”里推断现场情况,现在系统直接把场景呈现在眼前。所谓无感定位,最终带给使用者的不是多了多少传感器,而是少了很多猜测。至于微动作识别,它的长期意义也不只是报警和纠偏,而是让机器终于开始理解矿工在井下“做什么”了——这扇门一旦打开,后续的应用空间比我写出来的要大得多。