opencv案例06-基于opencv图像匹配的消防通道障碍物检测与深度yolo检测的对比

news2024/11/16 16:38:52

基于图像匹配的消防通道障碍物检测

技术背景

消防通道是指在各种险情发生时,用于消防人员实施营救和被困人员疏散的通道。消防法规定任何单位和个人不得占用、堵塞、封闭消防通道。事实上,由于消防通道通常缺乏管理,导致各种垃圾,物品以及车辆等障碍物常常出现在消防通道中,堵塞消防通道,当险情发生时,将对人们的生命财产带来巨大危害。因此,对消防通道的障碍物进行检测就显得尤为重要。

传统的消防通道障碍物检测主要依靠人工安全检查,指定专门工作人员定期到特定消防通道查看消防通道是否堵塞,此种方法虽然简单易行,不需要依靠复杂设备,但是该方法的缺点一是不能及时发现消防通道是否堵塞,受人工检查的周期影响大;二是较大地依赖工作人员的专业素质和工作态度,主观性强。

消防通道障碍物检测属于图像处理和智能安防领域。
采用固定摄像头,获取清空消防通道障碍物时的背景场景图像与实时监测场景图像,将背景场景图像作为匹配的模板图像,通过对模板图像与实时监测场景图像之间在指定区域内进行图像匹配,判断指定区域内是否存在障碍物,并予以报警。如下图,红色框内不能方有堆积物。有的话就报警提示
在这里插入图片描述

系统按一定时间间隔采集消防通道内指定监测区域的实时场景图像并进行匹配,既能保障系统能够实时检测到障碍物并予以报警,及时保障通道的畅通性,同时也降低了系统开销;另外基于特征的图像匹配用于消防通道障碍物检测,使得通道堵塞判定更加准确有效。

整体的流程图:

在这里插入图片描述

在这里插入图片描述
为了实现上述流程,需要执行一下几个重要步骤:
步骤1,在需要检测的通道架设摄像头,通过摄像头采集通道场景图像;
步骤2,摄像头检测通道系统部署过程中,保存背景模板图像形成背景模板图像集,并设置通道的重点检测区域;
步骤3,对背景模板图像集以及待匹配图像进行降噪预处理;
步骤4,计算每张背景模板图像集中的背景模板图像与待匹配图像的匹配度;
步骤5,计算待匹配图像与背景模板图像集的匹配度,根据背景模板图像集的匹配度与阈值的比较结果,判断当次检测待匹配图像中障碍物是否存在,障碍物存在则报警。

单张背景模板图像同待匹配图像之间的匹配主要包括如下过程:

首先需要在背景模板图像和待匹配图像的指定区域中进行特征点的提取。考虑到消防通道场景中光线问题,采用对光照变化具有一定抗干扰性的Harris角点作为特征点,该类特征点是有灰度图像的二阶导数计算而来,通常存在于图像中像素邻域内出现多个方向上的灰度变化的像素点上,因此能够很好的表示图像中的灰度值的变化范围,而光照变化对图像灰度值的影响在邻域范围内通常很小,因此Harris角点对光照具有一定的稳定性。

图像中像素点x的邻域指的是以x为中心,上下左右相邻的若干的像素组成的像素集。根据S2中获得的指定区域的边界点序列PSeq,在背景模板图像和待匹配图像中生成mask区域(即边界点包围的区域)。在背景模板图像和待匹配图像中的mask区域中分别提取出角点集BackCornerSet(背景角点集)和TestCornerSet(测试角点集)。其中BackCornerSet中有Nb个角点,而TestCornerSet中有Nt个角点。角点的个数根据图像内容不同会有较大变化,因此暂用Nb和Nt表示。角点集中包含各个角点的坐标,用于对各角点在图像中进行定位。

其次需要对背景模板图像和待匹配图像中的各个角点进行特征描述符的提取。所谓特征描述符是指对各个特征点所在像素点的特性进行描述的属性。各像素点最基本的属性是灰度值,但使用灰度值作为特征描述符不仅表示过于简单,而且忽略了该像素点同相邻像素点的关系,使得它并不能有效的表示特征的属性。通常采用特征点所在像素点的邻域内的特性来作为特征描述符。本发明采用以特征点所在像素点为中心的15×15大小的邻域,能够很好地涵盖特征点与影响较大的相邻像素点。对邻域内的像素点计算一阶梯度构成的向量作为特征点的特征描述符,一阶梯度能够减弱光照影响,使得该特征描述符对于光照也有一定的稳定性。部署过程结束后,图像匹配的场景便固定了,因此指定区域内的背景通常不会出现较为明显的旋转和尺度变化,因此一阶梯度作为特征描述符基本能够满足要求。针对的是根据角点集BackCornerSet和TestCornerSet中各角点的坐标分别在背景模板图像和待匹配图像中定位出各个角点,并根据各角点的邻域可计算得到背景模板图像和待匹配图像的特征描述符集BackDescriptorSet(背景特征描述符集)和TestDescriptorSet(测试特征描述符集)。

然后对背景模板图像和待匹配图像中提取出的特征描述符集进行匹配。匹配过程中,本发明采用欧式距离来计算两个特征描述符之间的相似度。对BackCornerSet和假设A为BackCornerSet中的任意一角点,B为TestCornerSet中的任意一角点,计算A到B1、B2、…、BNt各角点对应的特征描述符的相似度,选出相似度最大的角点Bj(j的可能取值为1到Nt之中任意整数),则A角点至Bj角点单向匹配;计算B到A1、A2、…、ANb各角点对应的特征描述符的相似度,选出相似度最大的角点Aj(j的可能取值为1到Nb之中任意整数),则B角点至Aj角点单向匹配。当且仅当A角点至B角点单向匹配的同时B角点至A角点也单向匹配的时候,A角点和B角点匹配,则A角点与B角点为一个匹配对。对BackCornerSet和TestCornerSet中角点进行匹配后,得到包含Q个匹配成功的匹配集MatchPairs。

最后需要对匹配对进行修正。匹配成功的匹配集MatchPairs中可能存在有同一角点同时匹配上多个角点的情况,同时也可能存在误匹配的焦点对,因此我们需要对MatchPairs进行修正。由于摄像头固定的情况下,获取的图像中指定区域内的背景内容不会发生较大变化,因此可以认为背景模板图像中的检测到的角点与在待匹配图像中的相应位置的匹配的角点之间的相对位移应该很小。基于这个原理,计算MatchPairs中各匹配对的两个角点的相对位移,如果位移偏差大于阈值Δs,则认为该匹配对为误匹配对。Δs的阈值可以设为5个像素(以适应物理环境的变化如摄像头抖动造成的图像内容偏移)。
对MatchPairs中的误匹配对进行删除操作,完成MatchPairs的修正。修正后的MatchPairs中含有Q*个匹配对。

基于深度学习的障碍物检测研究

YOLO是一种端到端的图像检测框架,其核心过程就是将整张图片作为网络的输入,可以在输出层直接得到物体的检测边界框,并标注其检测到得所属类别。YOLO使用了网格而非传统的滑动窗口,首先将一幅图片分成S * S个网格,每个网格需要预测一个中心点落在这个网格当中的物体;每个网格需要预测B个边界框(boundingbox),每个边界框都要回归一个位置信息,包括x,y,w,h,分别代表坐标信息和尺寸信息,同时还要再输出一个置信度值(confidencescore)。

效果如下图所示:
在这里插入图片描述
基于深度检测比opencv 的效率和准确度要高,但是深度安全通道检测有一个弊端 就是 必须要提前明确通道里会放哪些障碍物,这个就很容易被吐槽了,意味着你的模型到实际生产过程中需要不断对新的障碍物去训练识别。当然,这个也要看你自己的业务场景了。如果你的障碍物是固定的,那深度检测肯定是你的不二选择了。

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

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

相关文章

1688API技术解析,实现关键词搜索淘宝商品(商品详情接口等)批量获取,可高并发

要使用1688API接口采集商品详情,可以按照以下步骤进行: 获取API接口权限:申请1688的app key和app secret,并获取access_token。 编写API请求代码:使用Python等编程语言,编写API请求代码。以下是一个Python…

【陈老板赠书活动 - 11期】- 【MySQL从入门到精通】

![ 陈老老老板🦸 👨‍💻本文专栏:赠书活动专栏(为大家争取的福利,免费送书) 👨‍💻本文简述:生活就像海洋,只有意志坚强的人,才能到达彼岸。 👨‍…

【数据分享】2006-2021年我国省份级别的集中供热相关指标(免费获取\20多项指标)

《中国城市建设统计年鉴》中细致地统计了我国城市市政公用设施建设与发展情况,在之前的文章中,我们分享过基于2006-2021年《中国城市建设统计年鉴》整理的2006—2021年我国省份级别的市政设施水平相关指标、2006-2021年我国省份级别的各类建设用地面积数…

无涯教程-Android - ToggleButton函数

ToggleButton将已选中/未选中状态显示为按钮。它基本上是一个带有指示灯的开/关按钮。 Toggle Button ToggleButton属性 以下是与ToggleButton控件相关的重要属性。您可以查看Android官方文档以获取属性的完整列表以及可以在运行时更改这些属性的相关方法。 Sr.No.Attribute…

【高性能计算】opencl语法及相关概念(四):结合opencv进行图像高斯模糊处理

目录 高斯模糊简介主函数:host端设备端函数:mywork.cl效果图对比 高斯模糊简介 高斯模糊是一种常用的图像处理技术,用于减少图像中的噪点和细节,并实现图像的平滑效果。它是基于高斯函数的卷积操作,通过对每个像素周围…

单片机-如何让数码管动态显示

数码管硬件图 1、数码管 连接 74HC245 芯片 单片机IO口输出难稳定,需要数码管与单片机连接需要增加驱动电路, 使用 74HC245 abcdefgDP并联导出 74HC245 对数码管进行驱动,P0 是输出电流 来驱动各个段的 驱动芯片 增加电阻 是为了防止电流…

WPF实战项目十四(API篇):登录注册接口

1、新建UserDto.cs public class UserDto : BaseDto{private string userName;/// <summary>/// 用户名/// </summary>public string UserName{get { return userName; }set { userName value;OnPropertyChanged(); }}private string account;/// <summary>…

【论文阅读】自动驾驶中车道检测系统的物理后门攻击

文章目录 AbstractIntroduction 论文题目&#xff1a; Physical Backdoor Attacks to Lane Detection Systems in Autonomous Driving&#xff08;自动驾驶中车道检测系统的物理后门攻击&#xff09; 发表年份&#xff1a; 2022-MM&#xff08;ACM International Conference on…

2023开学季图书馆荐八一新书《乡村振兴战略下传统村落文化旅游设计 》中大许少辉博士后著

2023开学季图书馆荐八一新书《乡村振兴战略下传统村落文化旅游设计 》中大许少辉博士后著

图像扭曲之旋转

源码&#xff1a; void twirl(cv::Mat& src,cv::Mat& dst,double angle,double radius) {dst.create(src.rows, src.cols, CV_8UC3);dst.setTo(0);int radius2radius*radius;int cx src.cols / 2;int cy src.rows / 2;int distance,distance2 0;for (int h 0; h &…

2023年信息安全管理与评估任务书模块一网络平台搭建与设备安全防护

全国职业院校技能大赛 高等职业教育组 信息安全管理与评估 任务书 模块一 网络平台搭建与设备安全防护 比赛时间 本阶段比赛时长为180分钟。 赛项信息 竞赛阶段 任务阶段 竞赛任务 竞赛时间 分值 第一阶段 网络平台搭建与设备安全防护 任务1 网络平台搭建 9:00- 12:00 …

JavaExcel:自动生成数据表并插入数据

故事背景 出于好奇&#xff0c;当下扫描excel读取数据进数据库 or 导出数据库数据组成excel的功能层出不穷&#xff0c;代码也是前篇一律&#xff0c;poi或者easy excel两种SDK的二次利用带来了各种封装方法。 那么为何不能直接扫描excel后根据列的属性名与行数据的属性建立S…

C 语言控制台打印不同颜色字体方法

方法 1&#xff0c;使用 printf 格式化打印&#xff0c;该方法在 visual Studio 中生效&#xff0c;在 Dev C 中未生效 示例代码&#xff1a; #include <stdio.h>#define CLOUR_ON "\033[41;37m" #define CLOUR_OFF "\033[0m"int…

GIT命令只会抄却不理解?看完原理才能事半功倍!

系列文章目录 手把手教你安装Git&#xff0c;萌新迈向专业的必备一步 GIT命令只会抄却不理解&#xff1f;看完原理才能事半功倍&#xff01; 系列文章目录一、Git 的特征1. 文件系统2. 分布式 二、GIT的术语1. 区域术语2. 名词术语1. 提交对象2. 分支3. HEAD4. 标签&#xff0…

Unity UI与粒子 层级问题Camera depth Sorting Layer Order in Layer RenderQueue

Unity游戏开发中&#xff0c;模型、界面、特效等&#xff0c;需要规划好layer的概念&#xff0c;涉及到摄像机&#xff08;Camera&#xff09;、画布&#xff08;Canvas&#xff09;、Shader等相关内容。 在 Unity 中&#xff0c;渲染顺序是由多个因素共同决定的&#xff0c;大…

java八股文面试[多线程]——线程间通信方式

多个线程在并发执行的时候&#xff0c;他们在CPU中是随机切换执行的&#xff0c;这个时候我们想多个线程一起来完成一件任务&#xff0c;这个时候我们就需要线程之间的通信了&#xff0c;多个线程一起来完成一个任务&#xff0c;线程通信一般有4种方式&#xff1a; 通过 volat…

详解IP协议

在介绍IP协议之前&#xff0c;先抛出一个概念&#xff1a;IP地址的作用——定位主机&#xff0c;具有将数据从主机A跨网络传输到主机B的能力&#xff0c;有了TCP提供的策略&#xff0c;例如滑动窗口、拥塞控制等&#xff0c;IP去执行它&#xff0c;所以我们通常叫TCP/IP协议&am…

阿里云centos9stream安装宝塔+vscode(code-server)集成云端开发环境

一、 安装宝塔面板 官网 https://www.bt.cn/new/download.htm 题外话&#xff1a;虽然感觉现在宝塔没以前好用了&#xff0c;而且有centos7、8 mysql编译导致OOM服务器挂掉无法ssh登录的情况&#xff0c;但他还是远程管理服务器的好选择&#xff0c;提示宝塔只支持最新的centos…

基于广义正态分布算法优化的BP神经网络(预测应用) - 附代码

基于广义正态分布算法优化的BP神经网络&#xff08;预测应用&#xff09; - 附代码 文章目录 基于广义正态分布算法优化的BP神经网络&#xff08;预测应用&#xff09; - 附代码1.数据介绍2.广义正态分布优化BP神经网络2.1 BP神经网络参数设置2.2 广义正态分布算法应用 4.测试结…

[管理与领导-60]:IT基层管理者 - 扩展技能 - 3 - 通过面试招到合适的人选

目录 前言&#xff1a; 一、招聘 1.1 什么是招聘 1.2 招聘 VS 招募 1.3 甄选 1.4 招聘中的重要原则 1.5 招聘的本质 1.6 人才匹配的维度 1.7 人员招聘中的误区 二、面试 2.1 何为面试 2.2 为什么面试 2.3 面试的注意事项 2.4 面试的误区 2.5 如何进行面试 前言…