皮带跑偏检测算法的几种实现方式与难点解析

一、背景

皮带是矿山生产中重要的输送设备,由于设备、环境等原因,皮带易发生跑偏,给企业带来经济损失与安全隐患。现有的皮带跑偏检测方法主要分为人工巡检法与机器视觉检测法。人工巡检存在漏检问题,对于长距离、复杂环境下的皮带跑偏检测并不适用。机器视觉检测法分为边缘检测与目标检测两种方法。

在机器视觉检测方法中,对于前者,利用边缘检测算子提取皮带边缘,然后通过检测边缘与标定区域之间的位置关系判定是否发生皮带跑偏。当光线或皮带物料发生变化时,边缘检测鲁棒性不足。对于后者,利用目标识别算法识别裸露的皮带托辊。根据检测区域内托辊的数量判定是否发生皮带跑偏。由于托辊颜色、形态各异,且受到运行环境因素影响,托辊易被物料覆盖,此外受到暗光因素的影响,存在漏检,引发误报。

因此,在实际工程应用中,现有皮带跑偏检测算法存在较为严重的误报问题。因此,如何提高皮带跑偏检测算法的准确率是工程应用面临的一大难题。

二、难点解析

目前,皮带跑偏检测算法的核心问题为准确率不足,AI机器视觉检测难点主要体现在以下三个方面。

1、光线变化且暗光条件目标特征难以辨别

皮带现场运行环境光线变化复杂,且容易出现暗光。基于目标检测的皮带跑偏检测需实时识别托辊目标。若出现暗光,托辊特征呈现暗黑色,导致轮廓或纹理辨别不清。对此,易造成托辊目标检测的漏报,系统基于某一侧托辊数量降低,误判为皮带跑偏

如上左图,暗光导致的皮带右侧托辊纹理等特征辨别不清;如上右图,光线问题导致皮带右侧托辊只有一小部分漏出形状为三角形,可用特征较少,容易造成检测目标的漏报。

2、粉尘或环境造成检测目标遮挡

皮带运行工况复杂,输送物料多呈现颗粒状或粉状。若在下料口,物料卸至皮带容易出现粉尘,从而遮挡检测目标。此外,现场皮带托辊处存在人为引入的异物易造成托辊的遮挡。因此,粉尘或异物遮挡易造成托辊检测目标的漏报。

如上左图,粉尘造成皮带遮挡,难以辨别托辊特征;如上右图,皮带下方两个托辊中间引入了木板异物,造成了左侧托辊的遮挡。可识别的特征较少,容易出现托辊漏报,引起皮带偏离检测误报。

3、远距遮挡造成的小目标难以检测

小目标是皮带检测检测难点之一。在煤矿、金矿等井下作业场景,摄像头安装位置、距离、画质易受到环境因素影响。表现为托辊辨别不清或出现遮挡,在远距离场景,托辊目标较小,可用特征较少,因此,可能出现漏报。

如上左图,画质与距离问题导致皮带右侧托辊目标较小;如上右图,摄像头安装视角导致皮带右侧托辊不可见。对此,系统无法识别托辊,造成目标检测漏报,从而引发皮带跑偏系统的误判。

三、解决方案

1、传统方法边缘检测

传统边缘检测方法使用边缘检测算子计算每个像素点的梯度强度与方向,并通过梯度强度阈值对边缘检测点进行过滤。如下图,原始图经过边缘检测算法得到边缘图,通过选取合适的阈值对非皮带边缘进行过滤。受光线变化以及背景噪声的影响,阈值难以选取。因此,难以获取稳定、高精度的皮带边缘。

2、深度学习目标检测

深度学习目标检测通过检测皮带两侧的托辊个数判断是否发生皮带偏离。当一侧的托辊个数小于阈值时,判定皮带向该侧发生了偏离。由于暗光、遮挡、远距、环境等问题造成托辊不可见或只有少部分特征可见,造成托辊漏检。该方式受外界环境影响大,工程应用中偏离检测鲁棒性不足。

在工程实践中,以上两种方法均不能适应复杂多变生产工况,原因是环境因素易造成边缘检测失稳或托辊漏检。在难点分析中,光线变化、托辊遮挡等复杂条件下均可不同程度辨别皮带边缘特征。因此,从直觉上,皮带边缘特征更具鲁棒性。而传统图像处理方式,在边缘检测上鲁棒性不足。受到车道线检测的启发,将皮带边缘检测转化为车道线检测问题。

3、深度学习边缘检测

通过深度学习识别皮带边缘,并判断与皮带无偏区域的位置关系判定是否皮带偏离。模型的输入为原始图像,输出为皮带边缘像素点。由于皮带边缘所占像素少,为了更好的利用边缘的上下文信息,对边缘在宽度方向上扩充,得到如下右图的二值化图,其中白色实线为需要预测的皮带边缘。

分割模型采用yolov5-instance segmentation,网络结构如下图,在head中输出分割区域与分割区域类别。

偏离判定方法:如下图蓝色区域为皮带偏离无偏区域,红色线为检测到的皮带边缘,红色线与标定区域右侧存在交点,判定为皮带发生偏离。

在工程实践中,本方案提出的皮带偏离检测方法,更具鲁棒性,对环境的敏感性较低,在皮带边缘可辨别的情况下能够模型能够准确稳定检测。适用于室内、室外矿山、砂石厂、煤矿带式输送机皮带跑偏检测。


http://www.ppmy.cn/ops/25368.html

相关文章

Java安全之Mojarra JSF反序列化

JavaServer Faces,新一代的Java Web应用技术标准,吸收了很多Java Servlet以及其他的Web应用框架的特性。JSF为Web应用开发定义了一个事件驱动的、基于组件的模型。 其中常用的是Sun(现在的Oracle)发布的Mojarra和Apache发布的MyF…

声明式事务(@Transactional)使用时需要注意的坑

前言 上两篇文章已经详细分析了申明式事务的实现原理,知道了底层原理之后,现在就可以开始使用申明式事务去简化我们的代码了。但是在使用Transactional注解的时候也会经常遇到一些问题,有些问题不仔细测试观察的话还不容易发现,比…

Liunx磁盘管理(上)

一.硬盘类型 机械硬盘(HDD) 机械硬盘(HDD)是一种存储设备,使用旋转磁盘和读/写磁头来存储和检索数据。以下是机械硬盘的基本结构: 盘片(Platters):机械硬盘通常由多个盘…

【More Effective C++】条款27:要求或禁止在堆中产生对象

要求在堆中建立对象 方法:禁止使用隐式的析构函数,引进专用的伪析构函数,用来访问真正的析构函数 弊端:该类不能被继承和被包含 解决方案: 析构函数声明为protected; 包含UPNumber对象的类可以修改为包…

redis集群搭建

redis集群搭建 1. 工程准备2. 基于Dockerfile构建2.1 拷贝工程到工作目录2.2 安装依赖包2.3 解压redis安装包、编译、安装2.4 拷贝配置文件到安装目录 3. 配置文件3.1 redis1.conf3.2 redis2.conf 4. 启动redis5. 创建redis集群6. 验证redis7. springboot应用集成redis7.1 配置…

【国标语音对讲】EasyCVR视频汇聚平台海康/大华/宇视摄像头GB28181语音对讲配置

一、背景分析 近年来,国内视频监控应用发展迅猛,系统接入规模不断扩大,涌现了大量平台提供商,平台提供商的接入协议各不相同,终端制造商需要给每款终端维护提供各种不同平台的软件版本,造成了极大的资源浪…

OpenResty 安装及lua-resty-redis

目的: 需要记录用户真实IP 访问量 1. 下载openresty: https://openresty.org/download/openresty-1.25.3.1.tar.gz2. 编译安装 ./configure --help | more 可以查看configure 可选参数 # 1、安装前置依赖 yum install -y readline-devel pcre pcre-…

Procise使用之PL端流程(1)

PL端 纯PL端的流程其实和vivado的步骤相似,也是新建工程,创建verilog文件,添加约束以及生成bit位流。 不同的是,约束文件不是.xdf而是UCF文件格式,约束内容也包括管脚和时钟约束(只能手动编写约束&#x…

【数据结构】第二章 线性数据结构.线性表.顺序表

第二章 线性数据结构.线性表.顺序表 [1] 线性表的定义和基本操作 1. 基本定义 线性表是具有相同数据类型的 n(n≥0) 个数据元素的有限序列,其中n为表长。 当 n 0 时,线性表是一个空表。 若用L命名线性表,则其一般表示为: L ( a 1 , a …

在 React Router v5 中,写子路由,父级路由如果加了exact属性,就显示不了子组件

在 React Router v5 中,当你在父级路由上使用 exact 属性时,它意味着该路由只有在其 path 完全匹配当前 URL 时才会被激活。这意味着,如果父级路由精确匹配了,React Router 就不会继续向下查找子路由,因为 exact 限制了…

Python 全栈体系【四阶】(三十七)

第五章 深度学习 八、目标检测 3. 目标检测模型 3.1 R-CNN 系列 3.1.1 R-CNN 3.1.1.1 定义 R-CNN(全称 Regions with CNN features) ,是 R-CNN 系列的第一代算法,其实没有过多的使用“深度学习”思想,而是将“深度学习”和传统的“计算…

【skynet】 网络编程之回显服务器

写在前面 skynet 提供了一套 tcp 的 API ,本文将给出简单的回显服务器实现,以及讲解。 文章目录 写在前面编译 skynet服务框架agent_mgragent 注意事项源代码agent_mgr 服务agent 服务配置文件 编译 skynet 拉取 skynet 工程 git clone https://githu…

基于KubeAdm搭建多节点K8S集群

环境准备 说明配置系统CentOS 7.x系列CPU4核及以上内存8G及以上机器数量最少两台(一主节点一工作节点) 安装docker(主节点工作节点) 先安装yml yum install -y yum-utils device-mapper-persistent-data lvm2设置阿里云镜像 …

Leetcode—2639. 查询网格图中每一列的宽度【简单】

2024每日刷题&#xff08;121&#xff09; Leetcode—2639. 查询网格图中每一列的宽度 实现代码 class Solution { public:int func(int num) {if(num 0) {return 1;}int len 0;while(num ! 0) {len;num / 10;}return len;}vector<int> findColumnWidth(vector<ve…

【论文笔记 | 异步联邦】PORT:How Asynchronous can Federated Learning Be?

1. 论文信息 How Asynchronous can Federated Learning Be?2022 IEEE/ACM 30th International Symposium on Quality of Service (IWQoS). IEEE, 2022&#xff0c;不属于ccf认定 2. introduction 2.1. 背景&#xff1a; 现有的异步FL文献中设计的启发式方法都只反映设计空…

jupyter notebook设置代码自动补全

jupyter notebook设置代码自动补全 Anaconda Prompt窗口执行 pip install jupyter_contrib_nbextensionsjupyter contrib nbextensions install --userpip install jupyter_nbextensions_configuratorjupyter nbextensions_configurator enable --user按如下图片设置 卸载jed…

VBA代码解决方案第十三讲:如何利用VBA在单元格中录入公式

《VBA代码解决方案》(版权10028096)这套教程是我最早推出的教程&#xff0c;目前已经是第三版修订了。这套教程定位于入门后的提高&#xff0c;在学习这套教程过程中&#xff0c;侧重点是要理解及掌握我的“积木编程”思想。要灵活运用教程中的实例像搭积木一样把自己喜欢的代码…

【数据结构】顺序表专题

前言 本篇文章我们来进行有关顺序表的专题训练&#xff0c;让我们一起来看一下有关顺序表的算法题 &#x1f493; 个人主页&#xff1a;小张同学zkf ⏩ 文章专栏&#xff1a;数据结构 &#x1f4dd;若有问题 评论区见 &#x1f389;欢迎大家点赞&#x1f44d;收藏⭐文章 1.移除…

图像处理ASIC设计方法 笔记19 连通域标记ASIC系统设计

目录 核心的模块有:标记ASIC的工作流程如下:该芯片的系统结构具有如下特点:P131 第6章 连通域标记与轮廓跟踪 本章节讲述了多值分割图像连通域标记芯片的系统设计 多值分割图像连通域标记芯片(以下简称"标记芯片",也称"标记 ASIC"),完成图像连通域标…

安防监控/智能分析EasyCVR视频汇聚平台海康/大华/宇视摄像头国标语音GB28181语音对讲配置流程

一、背景分析 近年来&#xff0c;国内视频监控应用发展迅猛&#xff0c;系统接入规模不断扩大&#xff0c;涌现了大量平台提供商&#xff0c;平台提供商的接入协议各不相同&#xff0c;终端制造商需要给每款终端维护提供各种不同平台的软件版本&#xff0c;造成了极大的资源浪…