当前位置: 首页 > news >正文

人员离岗监测摄像机智能人员睡岗、逃岗监测 Python 语言结合 OpenCV

在安全生产领域,人员的在岗状态直接关系到生产流程的顺利进行和工作环境的安全稳定。人员离岗监测摄像机的出现,为智能人员睡岗、逃岗监测提供了高效精准的解决方案,而其中的核心技术如AI识别睡岗脱岗以及相关的算法盒子和常见的安全生产AI算法发挥着关键作用。

AI识别睡岗脱岗技术是整个系统的核心。通过深度学习算法,系统能够对摄像机采集到的视频画面进行实时分析。它可以精准地识别出人员的姿势和动作,判断是否存在睡岗或脱岗现象。对于睡岗的识别,算法会分析人员的头部位置、身体姿态以及眼睛状态等多个因素。如果一个人长时间保持低头、闭眼且身体静止的状态,系统就会判定为睡岗。在脱岗监测方面,系统能够跟踪人员的运动轨迹,当人员离开指定工作区域并超过一定时间,就会触发脱岗报警。这种智能化的识别方式,极大地提高了监测的准确性和效率,有效避免了人工监测的主观性和疲劳问题。

import cv2
import mediapipe as mp
import time# 初始化mediapipe的人体姿态检测模块
mp_drawing = mp.solutions.drawing_utils
mp_pose = mp.solutions.pose
pose = mp_pose.Pose(static_image_mode=False, min_detection_confidence=0.5, min_tracking_confidence=0.5)# 定义一些用于判断睡岗的参数
EYE_THRESHOLD = 0.3  # 眼睛开合程度阈值,小于此值认为闭眼
HEAD_TILT_THRESHOLD = 10  # 头部倾斜角度阈值,超过此值认为低头幅度大
SLEEP_TIME_THRESHOLD = 5  # 连续满足睡岗条件的时间阈值(秒)# 用于记录状态的变量
prev_time = time.time()
sleep_count = 0# 打开摄像头
cap = cv2.VideoCapture(0)while cap.isOpened():ret, frame = cap.read()if not ret:break# 将图像从BGR格式转换为RGB格式(mediapipe要求的输入格式)image_rgb = cv2.cvtColor(frame, cv2.COLColorSpace.BGR2RGB)results = pose.process(image_rgb)if results.pose_landmarks:# 获取眼睛和头部相关的关键点坐标left_eye = [results.pose_landmarks.landmark[mp_pose.PoseLandmark.LEFT_EYE].x,results.pose_landmarks.landmark[mp_pose.PoseLandmark.LEFT_EYE].y]right_eye = [results.pose_landmarks.landmark[mp_pose.PoseLandmark.RIGHT_EYE].x,results.pose_landmarks.landmark[mp_pose.PoseLandmark.RIGHT_EYE].y]nose = [results.pose_landmarks.landmark[mp_pose.PoseLandmark.NOSE].x,results.pose_landmarks.landmark[mp_pose.PoseLandmark.NOSE].y]# 简单计算眼睛开合程度(这里只是简单示意,实际可以用更准确的方法)eye_distance = abs(left_eye[0] - right_eye[0]) + abs(left_eye[1] - right_eye[1])# 判断是否闭眼(基于简单阈值)is_eyes_closed = eye_distance < EYE_THRESHOLD# 计算头部倾斜角度(简单通过鼻子和眼睛相对位置大致判断,实际更复杂)head_tilt_angle = abs(nose[1] - (left_eye[1] + right_eye[1]) / 2)is_head_tilted = head_tilt_angle > HEAD_TILT_THRESHOLD# 如果既闭眼又低头,认为可能在睡岗,计数增加if is_eyes_closed and is_head_tilted:cur_time = time.time()if cur_time - prev_time > SLEEP_TIME_THRESHOLD:sleep_count += 1print("检测到可能睡岗,持续时间:", cur_time - prev_time)prev_time = cur_timeelse:prev_time = time.time()sleep_count = 0# 绘制人体姿态的关键点和连线mp_drawing.draw_landmarks(frame, results.pose_landmarks, mp_pose.POSE_CONNECTIONS)# 如果连续多次检测到睡岗情况,给出明确提示if sleep_count >= 3:cv2.putText(frame, "警告:检测到睡岗!", (50, 100), cv2.FONT_HERSHEY_SIMPLEX, 1, (0, 0, 255), 2)cv2.imshow('Sleep and Absence Detection', frame)if cv2.waitKey(1) & 0xFF == 27:  # 按Esc键退出breakcap.release()
cv2.destroyAllWindows()

算法盒子:智能监测的核心引擎

算法盒子是承载AI算法的关键设备,它相当于整个监测系统的“心脏”。算法盒子通常安装在靠近摄像机的位置,采用边缘计算技术,能够对视频数据进行快速处理。它内部运行的算法经过大量的数据训练,能够适应不同的工作场景和人员行为模式。与传统的云端计算相比,算法盒子的边缘计算方式减少了数据传输的延迟,确保了实时监测的可行性。而且,它还可以根据具体的安全生产要求进行定制化配置,如调整睡岗和脱岗的判定阈值,以满足不同企业和工作环境的特殊需求。

在人员离岗监测领域,有几种常见的安全生产AI算法值得深入了解。其中,目标检测算法用于在视频画面中快速定位人员的位置,这是后续行为分析的基础。基于卷积神经网络(CNN)的人体姿态估计算法可以精确地分析人员的身体姿态,从而判断是否存在睡岗行为。另外,轨迹跟踪算法能够记录人员的运动轨迹,对于脱岗监测至关重要。这些算法相互配合,形成了一个完整的智能监测体系。例如,在煤矿井下作业场景中,目标检测算法首先确定井下工人的位置,人体姿态估计算法实时监测工人是否有疲劳打盹的情况,轨迹跟踪算法则确保工人在规定的工作区域内活动,任何一种异常行为都能被及时发现并预警。

http://www.lryc.cn/news/503305.html

相关文章:

  • 【Spark】Spark数据倾斜解决方案、大表join小表及大表join大表优化思路
  • 探索 Cesium 的未来:3D Tiles Next 标准解析
  • 每日一站技術架構解析之-cc手機桌布網
  • prometheus监控之黑盒(blackbox)监控
  • 计算机网络之传输层协议TCP
  • 子查询与嵌套查询
  • GPT-SoVITS语音合成模型部署及使用
  • springboot423玩具租赁系统boot(论文+源码)_kaic
  • 【收藏】Cesium 限制相机倾斜角(pitch)滑动范围
  • Jenkins流水线初体验(六)
  • Azure OpenAI 生成式人工智能白皮书
  • Ubuntu22.04安装docker desktop遇到的bug
  • LLMC:大语言模型压缩工具的开发实践
  • 基于阿里云Ubuntu22.04 64位服务器Java及MySql环境配置命令记录
  • 第一课【输入输出】(题解)
  • 查看 Linux 进程运行所在 CPU 内核
  • ESP32外设学习部分--SPI篇
  • Tomcat的下载和使用,配置控制台输出中文日志
  • MySQL不能被其他地址访问,授权问题解决(8.x,,5.x)
  • 四、个人项目系统搭建
  • CV(4)--边缘提取和相机模型
  • SORT算法详解及Python实现
  • 图计算之科普:BSP计算模型、Pregel计算模型、
  • pytest入门一:用例的执行范围
  • 22. 正则表达式
  • Flink Python作业快速入门
  • 自定义函数库
  • FreeRTOS例程2-任务挂起恢复与使用中断遇到的坑!
  • L23.【LeetCode笔记】验证回文串(剖析几种解法)
  • FPGA 17 ,FPGA 与 SR-IOV虚拟化技术,高性能计算与虚拟化技术的结合(FPGA 与 SR-IOV 和 PCI,高性能计算与虚拟化的完美融合)