YOLOv5目标检测——基于YOLOv5的吊车安全监测

news2024/11/25 0:44:16

移动式起重机是建筑施工中使用的重要设备。 遵守正确的操作程序对于防止事故很重要。 然而,其中存在人为错误的因素。 这里我将举一个例子来说明计算机视觉(CV)如何帮助解决这个问题。

1、移动式起重机操作的安全问题

为简单起见,将移动式起重机分为 3 个部分:车身、支腿和吊臂:

移动式起重机的3个主要部分:臂架、车身(主车)、支腿(提供起重机稳定性的延伸4条支腿)

起重机可以处于 3 种可能的状态:移动、伸出支腿和张开吊臂:

左(移动状态)、中(伸长支腿)、右(张开臂架)

当起重机处于移动状态时,其臂架必须闭合,支腿必须缩回。 在起重机能够抬起吊臂并开始搬运重物之前,必须伸出支腿以增加起重机的稳定性。 最后,打开臂架状态是指臂架升起时的状态。 正确的顺序是停放起重机,均匀伸出支腿,然后再提升吊臂。 在起重机可以移动之前,执行相同的顺序。

问题在于起重机操作员没有遵循正确的顺序。 例如,他们在吊起臂架之前不使用支腿,或者在臂架仍打开或支腿仍伸出时驱动起重机。

在支腿伸出时驾驶起重机。 错误!

这可能非常危险! 一种后果可能是碰撞,但更危险的情况是起重机翻倒。

在这里插入图片描述

起重机翻倒是因为它没有伸出所有的支腿。

这个问题可以通过使用闭路电视摄像机来监控起重机的使用情况来解决。 随着深度学习的进步,我开发了一个人工智能管道,1. 检测起重机在框架内的位置,2. 跟踪起重机的运动,然后 3. 确定起重机的状态。

2、深度学习模型管线

下图是模型管线图。

模型管线

该管线从 YOLOv5 对象检测模型开始,模型检测 2 个类别:人和起重机(人员检测用于另一项任务)。 因为我想跟踪起重机的运动,所以我应用了 DeepSORT。 接下来,起重机的图像被裁剪出来并用作图像分类器的输入。 分类器输出 3 种可能的状态:移动、伸出支腿、打开吊杆。

3、数据采集

工作现场的视频片段被收集了四个月,之后经过处理以找到带有起重机的帧。 总共提取出34个视频片段,然后采样出各个帧。 我们总共标记了 2523 个帧用于训练数据集,2071 个帧用于验证。

数据收集和数据分割的时间表

4、物体检测和跟踪结果

我使用预先训练的权重并冻结模型的主干来微调模型。 我对所有模型大小进行了实验,发现 YOLOv5m 产生了最好的结果。

起重机的 mAP@0.5 为 0.953。 在 0.5 置信度下,起重机召回率为 0.95,在 0.5 置信度下,起重机精度为 0.96,F1 得分为 0.95。

YOLOV5训练日志

来自测试/验证集的预测帧样本

对于跟踪部分,使用了原始的 DeepSORT,并进行了较小的修改。 监控起重机的卡尔曼滤波器状态(速度 x、y、r 和 h)的运动情况。 起重机跟踪的准确度为 100%,可以在测试集的所有帧中正确跟踪和识别起重机。 这是因为场景中通常只有 1 个起重机,并且相对于帧速率而言,它的移动速度相当慢。

5、起重机状态分类器

起重机的图像已获取并分为 3 类(移动式、加长支腿式和开放式吊臂)。 数据集总数总结如下。

分配类别来训练分类器。 数量少且不平衡

存在类别不平衡的问题,其中大部分数据集由 open-boom 类别组成。 因为起重机在使用时会进入场景,大部分时间都处于开臂状态。 移动和伸出支腿状态的示例仅在起重机进入框架到达工作地点的短时间内可用。 班级不平衡会对监督学习产生负面影响。 此外,训练数据集数量较少,存在过拟合的风险。

所以我对起重机状态分类器进行了对比学习。 请查看我的另一篇关于使用三元组损失训练编码器将图像转换为向量表示,然后使用 SVM 对状态进行分类的文章。 该方法产生的模型比经典的多类图像分类器模型更准确。

6、起重机使用监控

为了监控起重机的使用情况,观察了两件事:起重机状态排序和起重机状态移动。 正确的起重机顺序总结如下。

起重机的正确使用顺序

对于顺序检查,起重机状态应始终处于移动伸出支腿打开臂架的状态。 分类器的预测存储在固定大小的 FIFO 缓冲区中。 缓冲器内存储的状态被共同用来确定起重机的实际状态。 这使得整体预测对于噪声或单个帧的错误预测更加稳健。

用于存储每个帧的预测起重机状态的 FIFO 缓冲区

一旦知道了起重机的状态,我就通过检查履带式起重机中边界框的 x、y、宽度和高度的卡尔曼速度矩阵来检查起重机是否静止。 如果起重机位于伸出的支腿或打开的吊臂中,则起重机应保持静止。

7、结束语

该系统的结果表明,它可以24小时监控起重机活动,无需人工干预。 这样可以防止可能导致设备损坏和生产时间损失的事故,从而节省金钱和时间。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1833147.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

室内外一体化定位系统的创新与应用

随着科技的飞速发展,人们对定位技术的需求日益增强。传统的定位技术主要依赖于室外环境,如GPS等卫星定位技术。然而,在室内环境下,由于信号遮挡和多径效应等问题,这些技术往往难以发挥有效作用。因此,室内外…

记录一次基于Vite搭建Vue3项目的过程

Vue2已经于2023年12月31日停止维护了,2024年算是vue3的崭新的一年,我们的项目也基本从vue2逐渐向着Vue3过渡,Vue3相较于vue2有更好的开发体验,和ts的自然融合使得项目的结构、功能拆分变得更加的清晰;组合式声明有种MV…

【吉林大学Java程序设计】第7章:对象的容纳

第7章:对象的容纳 1.数组 Arrays1.1 数组的创建、初始化和使用(1)数组的声明(2)数组初始化静态初始化动态初始化对象数组的初始化 (3)数组的使用 1.2 多维数组1.3 数组与数组的引用1.4 数组工具…

Python学习从0开始——Kaggle深度学习002

Python学习从0开始——Kaggle深度学习002 一、单个神经元1.深度学习2.线性单元示例 - 线性单元作为模型多个输入 3.Keras中的线性单元 二、深度神经网络1.层多种类型的层 2.激活函数3.堆叠密集层4.构建Sequential模型 三、随机梯度下降1.介绍2.损失函数3.梯度下降法1.梯度下降法…

Spring Boot 优雅关机时异步线程安全优化

个人名片 🎓作者简介:java领域优质创作者 🌐个人主页:码农阿豪 📞工作室:新空间代码工作室(提供各种软件服务) 💌个人邮箱:[2435024119qq.com] &#x1f4f1…

【Python】在运行中使用warnings.filterwarnings,可以忽略测试中遇到的问题

在 Python 中,warnings 是一个内置模块,用于发出有关程序执行的警告信息,这些警告信息通常是关于程序行为的潜在问题。 不过,这些问题通常不是致命的错误,只不过是展示我们代码中潜在的问题,或不推荐的做法…

红酒:家庭环境中如何创造理想的红酒储存环境

对于热爱品鉴红酒的人来说,如何在家庭环境中创造一个理想的红酒储存环境是至关重要的。理想的储存环境能够确保红酒的品质和口感长时间保持理想状态。下面云仓酒庄雷盛红酒将介绍一些在家庭环境中创造理想红酒储存环境的建议: 温度控制:红酒的…

2024年ERP软件公司排名前十!

在当今的商业环境中,ERP(企业资源规划)系统已成为企业日常运营不可或缺的一部分。然而,如何在这众多的ERP系统软件中筛选出最适合自己的一款,成为许多企业共同面临的挑战。今天,我将带大家盘点erp软件公司的…

生成式AI新篇章:亚马逊云科技助力重塑数字未来

编辑:阿冒 设计:沐由 “任何非常先进的技术,初看都与魔法无异。”对于这句话,想必科幻迷们应该不会感到陌生。这则广为人知的定律,是著名科幻小说作家亚瑟克拉克在《2001太空漫游》中提出的。 正因为如此,当…

知识图谱存在的挑战---隐私、安全和伦理相关和测试认证相关

文章目录 隐私、安全和伦理相关测试认证相关 隐私、安全和伦理相关 从部署拓扑结构而言,知识图谱技术以数据为核心、数据库为载体的方式来存储,有单机、云平台、集群及其组合的部署方式,结合大数据平台、云平台、业务系统、灾备、网络系统及其…

【代码随想录】【算法训练营】【第41天】 [416]分割等和子集

前言 思路及算法思维,指路 代码随想录。 题目来自 LeetCode。 day 40,休息,休息一下~ day 41,艰难的周一~ 题目详情 [416] 分割等和子集 题目描述 416 分割等和子集 解题思路 前提:是否可以将数组分为和相等的…

cloud_enum:一款针对不同平台云环境安全的OSINT工具

关于cloud_enum cloud_enum是一款功能强大的云环境安全OSINT工具,该工具支持AWS、Azure和Google Cloud三种不同的云环境,旨在帮助广大研究人员枚举目标云环境中的公共资源,并尝试寻找其中潜在的安全威胁。 功能介绍 当前版本的cloud_enum支…

VBA学习(2):Excel VBA初学者编写第一个宏

要在Excel中编写宏程序,首先需要了解VBA语言,而快速入门的技巧就是使用宏录制器。 宏录制器就像一台录音机,可以使用VBA监听和记录你在Excel中所做的一切操作。对于初学者来说,你可能不了解VBA,这里,我们会…

如何利用被动DNS(Passive DNS)加强网络安全

通过收集和分析被动DNS数据,可以帮助识别恶意站点,打击钓鱼和恶意软件,本文将介绍如何利用被动DNS(Passive DNS)加强网络安全。 在过去的一些年里,我们目睹了对DNS基础设施的攻击日益增多:对权…

【S32K 进阶之旅】 将 EB 配置生成的 MCAL 代码集成到 S32DS 中

本文介绍如何使用 S32DS 进行 AUTOSAR MCAL 工程的编译和调试,重点在于将 EB 配置生成的 MCAL 代码集成到 S32DS 中。 虽然配置过程较为繁琐,实操过一遍就会熟悉整个工程的框架。以后每次在 EB 中更新配置,生成代码的文件夹已经集成在 S32DS…

Selenium+Pytest自动化测试框架能碰撞出什么样的火花

前言 selenium自动化 pytest测试框架 本章你需要 一定的python基础——至少明白类与对象,封装继承 一定的selenium基础——本篇不讲selenium,不会的可以自己去看selenium中文翻译网 一、测试框架简介 测试框架有什么优点呢: 代码复用率高…

从多线程设计模式到对 CompletableFuture 的应用

大家好,我是 方圆。最近在开发 延保服务 频道页时,为了提高查询效率,使用到了多线程技术。为了对多线程方案设计有更加充分的了解,在业余时间读完了《图解 Java 多线程设计模式》这本书,觉得收获良多。本篇文章将介绍其…

《C++ Primer》导学系列:第 4 章 - 表达式

4.1 基础 4.1.1 基本概念 组合运算符和运算对象 组合运算符是指将两个或多个操作数结合在一起进行运算的符号。在C中&#xff0c;常见的组合运算符包括算术运算符&#xff08;如, -, *, /, %&#xff09;、关系运算符&#xff08;如<, >, <, >, , !&#xff09;…

docker-compose jira、bugzilla、zentao

参见文章&#xff0c;这里是对之前的内容进行了改动&#xff0c;主要讲怎么将zentao容器融入到已有的docker-compose.yml中 一、zentao镜像 从官网上拉取&#xff1a;https://hub.docker.com/r/easysoft/zentao/tags 可以选择自己想要的版本&#xff0c;这里我选择的是开源版…

工厂物料管理系统(数据库课设)

1.课设要求描述 ●实现物料的分类管理; ●实现部门和员工信息管理; ●实现物料的入库和领用管理; ●实现物料的转仓管理; ●创建触发器&#xff0c;实现物料入库和领用时相应物料库存的自动更新; ●创建触发器&#xff0c;实现转仓时转入仓库物料增加、转出仓库物料减少…