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

移动式起重机是建筑施工中使用的重要设备。 遵守正确的操作程序对于防止事故很重要。 然而,其中存在人为错误的因素。 这里我将举一个例子来说明计算机视觉(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小时监控起重机活动,无需人工干预。 这样可以防止可能导致设备损坏和生产时间损失的事故,从而节省金钱和时间。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

躬行践履始玉成,行而不辍终致远 | 中创算力季度优秀员工表彰大会

蓬勃发展,根基在人。在中创发展的道路上,有初心不改的领导者、有披星戴月的业务标杆、也有默默坚守的员工,他们扎根中创,用努力、拼搏、坚持,在中创的历程上镌刻下 属于自己的一份印记! 为了表彰优秀&…

【吉林大学Java程序设计】第9章:并发控制

第9章:并发控制 1.线程的基本概念2.线程的创建与启动3.线程的调度与优先级线程的状态线程的生命周期线程控制的基本方法线程优先级 4.线程的协作多线程存在的问题同步区域(临界区)生产者与消费者问题(互斥与同步问题)哲…

618必抢清单:内存升级国货更强,DDR5劲爆大白菜

随着数字时代的加速发展,平时在PC上玩游戏、办公的时候,电脑性能对我们的影响越来越打。相比于CPU、显卡等硬件,内存对于电脑性能的重要性也很高,而且可以通过更低的成本来升级。内存就像是电脑的神经网络,影响着CPU数…

【机器学习300问】119、什么是语言模型?

语言模型(Language Models)是自然语言处理(NLP)的重要组成部分,它的目的是量化一段文本或一个序列的概率。简单讲就是你给语言模型一个句子,它给你计算出特定语言中这个句子出现的概率。这样的概率度量可以…

Node-red win11安装

文章目录 前言一、安装node.js和npm二、安装Node-red三、 运行Node-red 前言 Node-RED 是一种编程工具,用于以新颖有趣的方式将硬件设备、API 和在线服务连接在一起。 它提供了一个基于浏览器的编辑器,只需单击一下即可将调色板中的各种节点轻松连接在…

麒麟移动运行环境(KMRE)——国内首个开源的商用移固融合“Android生态兼容环境”正式开源

近日,由麒麟软件研发的KMRE(Kylin Mobile Runtime Environment,麒麟移动运行环境)在openKylin(开放麒麟)社区正式发布,为Linux桌面操作系统产品提供了高效的Android运行环境解决方案。这也是国内…

2024年【电工(高级)】考试内容及电工(高级)考试试题

题库来源:安全生产模拟考试一点通公众号小程序 电工(高级)考试内容考前必练!安全生产模拟考试一点通每个月更新电工(高级)考试试题题目及答案!多做几遍,其实通过电工(高…

Codesys 编程实现随机数字+仿照rand()原理+代码下载

目录 一、C语言中rand()随机数的演示及问题 二、同样的原理,在Codesys中实现随机数 三、codesys在线仿真验证功能 四、代码下载 一、C语言中rand()随机数的演示及问题 (1)只用rand(…

降噪领夹麦克风哪个牌子好?揭秘无线领夹麦克风哪个降噪好

相信很多新手视频创作者都有一个疑问:为什么别人的视频或者直播音质这么清晰,几乎没什么噪音呢?其实最主要的就是麦克风的原因,相机或手机内置的麦克风是无法提供高质量的音频记录以及很好的指向性的。 想要拍摄出来的视频作品拥有…

亚马逊跟卖ERP系统,怎样提升新手卖家选品的质量与效率!

今天给新手卖家推荐一款实用ERP系统,相信新手卖家在碰到最难的问题应该就是选品了吧,那我们该如何快速解决我们找品难找品慢的问题呢,现在有一套专门为跟卖打造的一款全功能erp系统,从我们选品上传,到我们采购&#xf…

XSS学习(绕过)

学习平台&#xff1a;xss.tesla-space.com XSS学习&#xff08;绕过&#xff09; level1level2level4level5level6level7level8level9level10level11level12 level1 应该没有过滤 https://xss.tesla-space.com/level1.php?name<script>alert(1);</script> leve…

修改以太网卡mac地址

原生以太网卡与PCIe以太网卡 以Intel 原生以太网卡与PCIe以太网卡为例&#xff1a; Intel原生以太网卡和PCIe以太网卡在系统中实现网络连接时&#xff0c;涉及到与系统总线&#xff08;如PCIe总线&#xff09;的连接方式和性能差异。 Intel 原生以太网卡 定义&#xff1a;所…

大模型应用开发技术:Multi-Agent框架流程、源码及案例实战(一)

LlaMA 3 系列博客 基于 LlaMA 3 LangGraph 在windows本地部署大模型 &#xff08;一&#xff09; 基于 LlaMA 3 LangGraph 在windows本地部署大模型 &#xff08;二&#xff09; 基于 LlaMA 3 LangGraph 在windows本地部署大模型 &#xff08;三&#xff09; 基于 LlaMA…

celery使用 Zookeeper 或 kafka 作为broker,使用 mysql 作为 backend

背景介绍: 先贴上celery官方文档:Celery - Distributed Task Queue — Celery 5.4.0 documentation xxx项目中单点环境运行celery + redis,使用流畅,不做过多介绍。 切换高可用环境时,客户redis使用的是cluster集群,官方文档中并没有对redis cluster的支持,查看githu…

视频合成渲染服务解决方案,数字人+PPT+视频云剪辑

在金融理财领域&#xff0c;一个生动、直观、专业的视频&#xff0c;往往能够在海量信息中脱颖而出&#xff0c;帮助客户更好地理解产品、把握市场动态。然而&#xff0c;传统的视频制作方式往往周期长、成本高、难以适应快速变化的市场需求。 美摄科技&#xff0c;作为行业领…

eclipse maven打包报错: 致命错误: 在类路径或引导类路径中找不到程序包 java.lang的解决

还是上来帖张图&#xff1a; 1、系统之前是运行在mac上的&#xff0c;打包一切正常&#xff0c;但是现在在win11的eclipse打包就报错了。 2、致命错误: 在类路径或引导类路径中找不到程序包 java.lang&#xff0c;上面的问题应该是找不到java中的jar中的class导致。 解决&…

python安装目录文件说明----Dlls文件夹

在Python的安装目录下&#xff0c;通常会有一个DLLs文件夹&#xff0c;它是Python标准库的一部分。这个文件夹包含了一些动态链接库&#xff08;Dynamic Link Libraries&#xff0c;DLL&#xff09;&#xff0c;这些库提供了Python解释器和标准库的一些关键功能。以下是对这个文…

JAVA面试(六)

缓存 MemcachedredisRedis常见数据类型和使用Redis缓存持久化RDB-快照AOF-追加文件 Redis数据过期机制惰性删除定期删除 Redis缓存淘汰策略&#xff08;8种&#xff09;算法LRU &#xff08;Least Recently Used&#xff09;&#xff1a;最近最少使用LFU&#xff08;Least Freq…

宕机了, redis如何保证数据不丢?

前言 如果有人问你&#xff1a;"你会把 Redis 用在什么业务场景下&#xff1f;" 我想你大概率会说&#xff1a;"我会把它当作缓存使用&#xff0c;因为它把后端数据库中的数据存储在内存中&#xff0c;然后直接从内存中读取数据&#xff0c;响应速度会非常快。…

手机录屏怎么操作?3个小技巧,轻松录屏

在数字化时代&#xff0c;手机录屏功能已逐渐成为我们日常生活和工作中不可或缺的工具。无论是为了记录游戏过程、制作教程&#xff0c;还是为了留存重要的视频通话&#xff0c;手机录屏都能发挥巨大的作用。本文将详细介绍手机录屏的3个功能、录屏小技巧等&#xff0c;帮助您更…