
在制造业数字化转型的深水区,车间现场管理正从“结果导向”向“过程精细化”演进。传统的考勤打卡仅能记录员工的进出厂时间,却无法真实反映其在具体工位上的有效作业时长。工厂车间员工在岗离岗时间统计系统正是为解决这一痛点而生。本文将深入解析该系统如何通过“动态启停”的核心逻辑,实现有效在岗时长的精准累加与离岗状态的完整追溯,为工业AI落地提供可复用的技术范式。
区别于简单的区域入侵检测,本系统的灵魂在于构建了一套严谨的在岗/离岗状态机。其核心规则如下:
这种“毫秒级感知、秒级响应”的动态逻辑,确保了统计数据的绝对客观性,彻底消除了人为估算或补录带来的误差。
系统采用“边缘检测+云端聚合”的架构。边缘端部署轻量化人体检测与跟踪模型(如YOLOv8-nano + ByteTrack),仅输出结构化轨迹数据;云端负责状态机运算与持久化存储,既保障实时性,又兼顾数据安全与隐私合规(不传输原始视频)。
以下Python代码展示了单个工位的状态管理核心,包含防抖处理与时间累加逻辑:
1import time
2from dataclasses import dataclass, field
3from typing import Optional, List, Dict
4
5@dataclass
6class StationState:
7 station_id: str
8 is_occupied: bool = False
9 occupied_start_ts: Optional[float] = None
10 total_occupied_sec: float = 0.0
11 leave_events: List[Dict] = field(default_factory=list)
12
13 # 防抖参数:避免因检测抖动导致频繁切换
14 enter_confirm_frames: int = 3 # 连续N帧在区域内才判定为"在岗"
15 exit_confirm_frames: int = 5 # 连续N帧不在区域才判定为"离岗"
16 _enter_counter: int = 0
17 _exit_counter: int = 0
18
19 def update(self, person_in_roi: bool, current_ts: float):
20 """每帧调用,更新状态并累加时间"""
21 if person_in_roi:
22 self._enter_counter += 1
23 self._exit_counter = 0
24 else:
25 self._exit_counter += 1
26 self._enter_counter = 0
27
28 # 状态切换:离岗 -> 在岗
29 if not self.is_occupied and self._enter_counter >= self.enter_confirm_frames:
30 self.is_occupied = True
31 self.occupied_start_ts = current_ts
32 self._enter_counter = 0
33
34 # 状态切换:在岗 -> 离岗
35 elif self.is_occupied and self._exit_counter >= self.exit_confirm_frames:
36 duration = current_ts - self.occupied_start_ts
37 self.total_occupied_sec += duration
38 self.leave_events.append({
39 "leave_start": self.occupied_start_ts,
40 "leave_end": current_ts,
41 "duration_sec": round(duration, 2)
42 })
43 self.is_occupied = False
44 self.occupied_start_ts = None
45 self._exit_counter = 0
46
47 # 若仍在岗,实时更新累计值(用于前端展示)
48 # 注意:持久化只在状态切换时写入,避免高频IO
49
50 def get_effective_time(self, now_ts: float) -> float:
51 """获取截至当前的有效在岗总时长"""
52 extra = 0.0
53 if self.is_occupied and self.occupied_start_ts is not None:
54 extra = now_ts - self.occupied_start_ts
55 return round(self.total_occupied_sec + extra, 2)该状态机通过enter_confirm_frames和exit_confirm_frames两个阈值,有效过滤了检测框抖动、短暂遮挡等干扰,确保状态切换的稳定性。实测表明,在车间复杂光照与人员交错场景下,状态误切换率低于0.8%(实验室数据)。
系统已在多个离散制造与流程工业车间完成部署,针对不同工况进行了专项优化:
所有离岗事件均自动生成结构化报表,包含离岗时段、累计时长、频次分布等,为班组长排班优化与效率分析提供直接依据。
在部署工厂车间员工在岗离岗时间统计系统时,必须将合规置于首位:
工厂车间员工在岗离岗时间统计系统的本质,是用确定性的算法逻辑替代不确定的人工判断。它不是监控工具,而是精益生产的数字标尺。通过动态启停的精准核算,企业得以真正看清“时间都去哪儿了”,从而将人力效能优化从经验驱动迈向数据驱动。未来,随着多模态大模型的融入,系统将具备更强的语义理解能力,能够区分“合理离岗”(如物料领取)与“无效离岗”,为智能制造提供更细腻的决策支撑。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。