每天进步一点点------Sobel算子(3)基于彩色图像边缘差分的运动目标检测算法
摘 要: 针对目前常用的运动目标提取易受到噪声影响、易出现阴影和误检漏检等情况,提出了一种基于Sobel算子的彩色边缘图像检测和帧差分相结合的检测方法。首先用Sobel算子提取视频流中连续4帧图像的彩色边缘图像,然后将边缘图像进行隔帧差分相与,提取出较精确的运动目标边缘轮廓。提取的轮廓经过一系列的形态学操作填充,可得到完整的运动目标。实验结果表明,该方法对运动目标边缘轮廓提取准确,抗噪
摘 要: 针对目前常用的运动目标提取易受到噪声影响、易出现阴影和误检漏检等情况,提出了一种基于Sobel算子的彩色边缘图像检测和帧差分相结合的检测方法。首先用Sobel算子提取视频流中连续4帧图像的彩色边缘图像,然后将边缘图像进行隔帧差分相与,提取出较精确的运动目标边缘轮廓。提取的轮廓经过一系列的形态学操作填充,可得到完整的运动目标。实验结果表明,该方法对运动目标边缘轮廓提取准确,抗噪能力强,且鲁棒性好。
关键词: 彩色边缘检测; 隔帧差分; 运动目标提取
运动目标检测是目标识别、跟踪的难点和关键环节,目标提取的好坏直接影响处理结果。而在运动目标检测中遇到最多的问题是提取的前景不准确,受环境影响噪声较多,且阴影难消除。很多文献也提出了改进方法,常用的经典算法有:背景差分、混合高斯背景模型、帧差法等。背景差分[1]首先构建一个背景图像,然后利用当前帧图像与背景图像相减,得到差分图像,通过阈值分割来提取目标。混合高斯模型[2]使用K个(基本为3~5个)高斯模型来表征图像中各个像素点的特征,在新一帧图像获得后更新混合高斯模型, 用当前图像中的每个像素点与混合高斯模型匹配,如果成功,则判定该点为背景点, 否则为前景点。混合高斯背景模型检测运动目标易出现阴影,而对阴影的去除目前存在较大困难。帧差法通过视频流中相邻两帧或3帧图像相减,根据差分图像来检测目标。常用的相邻差分法检测目标存在两帧目标重叠部分不易检测、出现虚假目标等问题。一般来说,图像的边缘信息不易受噪声和亮度突变的影响。本文提出一种边缘差分的思想,将传统Sobel算子边缘检测应用到彩色图像边缘检测,将边缘检测与帧间差分相结合,很好地克服了阴影以及噪声的影响,经形态学处理最后得到较为清晰准确的运动目标。
1 边缘检测
边缘检测算法的基本步骤为:滤波、增强、检测和定位。经典的检测算法主要采用梯度算子,常用的梯度算子有Sobel算子、Prewitt算子、Canny算子、Laplacian算子和LOG算子[3]等。
1.1 Sobel算子检测边缘
Sobel算子把重点放在接近于模板中心的像素点,是边缘检测器中最常用的算子之一。
1.1.1 Sobel算法原理
由于图像边缘附近的亮度变化比较大,因此把那些邻域内灰度超过某个值的像素点当作边缘点。算法的主要步骤如下。
(1)分别将两个方向模板沿着图像从一个像素移动到另一像素,并将像素的中心与某个像素位置相重合;
(2)将模板内的系数与其图像上相对应的像素值相乘;
(3)将所有相乘的值相加;
(4)将两个卷积的最大值赋给图像中对应模板中心位置的像素作为该像素新的灰度值;
(5)选取合适的阈值TH,若新像素灰度值≥TH,则判断该像素点为图像边缘点。
1.1.2 Sobel算子彩色图像边缘检测的实现和改进
本文算法针对彩色图像,建立水平方向和垂直方向的彩色分量图[5],具体步骤如下。
(1)遍历一幅彩色图像,取图像上像素的颜色值;
(2)将像素的R、G、B灰度值分别赋给水平方向和垂直方向彩色分量图对应像素的R、G、B值;
(3)分别计算原图像中像素的R、G、B分量在水平和垂直方向与模板(掩膜)卷积的累加值,卷积模板选用上述Sobel核,Sobel算子使用权重2的思想是通过突出中心点的作用而达到平滑的目的;
(4)将累加值除以某个权重,取绝对值赋给上述分量图的R、G、B值;
(5)用式(1)计算该像素的R、G、B梯度值,赋给原图像对应的R、G、B值,得到彩色边缘图像。
Sobel算子利用像素的上、下、左、右邻域的灰度值加权算法,算法利用图1(a)所示的模板分别与图1(b)和图1(c)所示的两个核做卷积,一个核对垂直边缘影响最大,而另一个核对水平边缘影响最大。该方法不但产生较好的检测效果,而且对噪声具有平滑作用,可以提供较为精确的边缘,因此选用Sobel算子进行边缘检测,结合后面的帧差分,可以得到准确、良好的边缘轮廓图像[6]。
2.2 边缘检测与差分相结合
本文算法的流程如图2所示。
用本文提出的改进Sobel算子彩色图像边缘检测方法从视频流中提取连续的4帧图像,得到它们的边缘图像,然后用上述4帧差分的思想作边缘图像的隔帧差分,得到准确、噪声很小的运动目标边缘轮廓。
2.3 形态学处理
2.3.1 腐蚀运算
腐蚀是指用某种形状的基元对一个图像进行探测,以便找出在图像中能够放下该基元的区域。集合A被集合B腐蚀,表示为AΘB,其定义为
每天进步一点点------Sobel算子(3)基于彩色图像边缘差分的运动目标检测算法的更多相关文章
- 每天进步一点点------Sobel算子(1)
void MySobel(IplImage* gray, IplImage* gradient) { /* Sobel template a00 a01 a02 a10 a11 a12 a20 a21 ...
- 基于模糊Choquet积分的目标检测算法
本文根据论文:Fuzzy Integral for Moving Object Detection-FUZZ-IEEE_2008的内容及自己的理解而成,如果想了解更多细节,请参考原文.在背景建模中,我 ...
- 【计算机视觉】基于局部二值相似性模式(LBSP)的运动目标检测算法
基于局部二值相似性模式(LBSP)的运动目标检测算法 kezunhai@gmail.com http://blog.csdn.net/kezunhai 本文根据论文:Improving backgro ...
- 【计算机视觉】基于样本一致性的背景减除运动目标检测算法(SACON)
SACON(SAmple CONsensus)算法是基于样本一致性的运动目标检测算法.该算法通过对每个像素进行样本一致性判断来判定像素是否为背景. 算法框架图 由上图可知,该算法主要分为四个主要部分, ...
- 基于COCO数据集验证的目标检测算法天梯排行榜
基于COCO数据集验证的目标检测算法天梯排行榜 AP50 Rank Model box AP AP50 Paper Code Result Year Tags 1 SwinV2-G (HTC++) 6 ...
- 每天进步一点点------Sobel算子(2)
转载 http://blog.csdn.net/tianhai110 索贝尔算子(Sobel operator)主要用作边缘检测,在技术上,它是一离散性差分算子,用来运算图像亮度函数的灰度之近似值. ...
- 基于Shading Model(对光照变化一定不变性)的运动目标检测算法
光照模型(Shading Model)在很多论文中得到了广泛的应用,如robust and illumination invariant change detection based on linea ...
- 五种基于RGB色彩空间统计的皮肤检测算法
最近一直在研究多脸谱识别以及如何分辨多个皮肤区域是否是人脸的问题 网上找了很多资料,看了很多篇文章,将其中基于RGB色彩空间识别皮肤 的统计算法做了一下总结,统计识别方法主要是简单相比与很多其它基于 ...
- 【计算机视觉】基于Shading Model(对光照变化一定不变性)的运动目标检测算法
光照模型(Shading Model)在很多论文中得到了广泛的应用,如robust and illumination invariant change detection based on linea ...
随机推荐
- [ZJOI2011] 最小割 - 最小割树
最小割树裸题 建树后,以每个点为根跑DFS求出距离矩阵,然后暴力回答询问即可 #include <bits/stdc++.h> using namespace std; #define i ...
- SpringMVC流程图示
- Linux - pip 安装使用说明
简介 pip类似RedHat里面的yum,安装Python包非常方便.本节详细介绍pip的安装.以及使用方法 方案一 wget https://bootstrap.pypa.io/get-pip.py ...
- JS高级---沙箱小案例
沙箱小案例 substr截取, 从指定的字段开始截取 (function () { var str="小白喜欢小黑"; str=str.substr(2); console.log ...
- JDBC——抽取工具类
目的:简化书写 分析: 1.注册驱动 2.获取连接对象 3.释放资源 1.注册驱动 2.获取连接对象 需求:不想传递参数,还能保证工具类的通用性解决方案:配置文件 jdbc.properties ur ...
- Jmeter-基础实战
一.测试需求:测试20个用户访问web网站在负载达到30QPS时的平均响应时间 QPS:Query Per Second 每秒查询率.是一台查询服务器每秒能够处理的查询次数.在因特网上,作为域名系统服 ...
- crontab定时的使用
//查看所有定时 crontab -l修改$ crontab -e //增加定时 //关闭定时 //删除定时$ crontab -r /sbin/service crond start //启动服务 ...
- Codeforces Round #601 (Div. 2) E1 Send Boxes to Alice (Easy Version)
#include <bits/stdc++.h> using namespace std; typedef long long ll; ; int a[N]; int n; bool pr ...
- 在GPU上训练数据
在GPU上训练数据 模型搬到GPU上 数据搬到GPU上 损失函数计算搬到GPU上
- Learning to See in the Dark论文阅读笔记
这是一篇图像增强的论文,作者创建了一个数据集合,和以往的问题不同,作者的创建的see in the dark(SID)数据集合是在极其暗的光照下拍摄的,这个点可以作为一个很大的contribution ...