运动目标检测与阴影去除及源代码
- 格式:doc
- 大小:274.50 KB
- 文档页数:2
尊敬的读者:今天我将要和大家共享的主题是“运动目标控制与自动追踪系统openmv和stem32代码”。
这是一个非常有趣和突破性的主题,它涉及到了计算机视觉、控制系统和编程等多种领域的知识。
我将通过对这个主题的深度和广度的探讨,让大家对这个主题有一个更全面、深入的了解。
1. 什么是运动目标控制与自动追踪系统openmv和stem32代码?在开始深入讨论之前,我们首先要了解一下什么是运动目标控制与自动追踪系统openmv和stem32代码。
这个系统是指通过openmv和stem32代码来实现对运动目标的控制和自动追踪。
openmv是一种基于Python的嵌入式视觉识别模块,它可以实现在嵌入式系统上进行图像处理和分析。
而stem32是一种嵌入式系统开发板,它可以通过编程来实现对外部设备的控制。
将这两者结合起来,就可以实现对运动目标的控制和自动追踪。
2. 运动目标控制与自动追踪系统的原理接下来,我们来看一下运动目标控制与自动追踪系统的原理。
系统会通过openmv模块来获取目标物体的图像信息,然后对图像进行处理和分析,从而得到目标物体的位置和运动方向。
系统会通过stem32的编程来实现对云台或者机器人等装置的控制,使其朝向目标物体,并实现自动追踪。
整个过程涉及到了图像处理、控制系统和编程等多个方面的知识。
3. 如何实现运动目标控制与自动追踪系统了解了系统的原理之后,我们接着来看一下如何实现运动目标控制与自动追踪系统。
我们需要利用openmv模块来获取目标物体的图像信息,并进行图像分析,得到目标物体的位置和运动方向。
我们需要通过stem32的编程来实现对装置的控制,使其朝向目标物体并进行追踪。
整个过程需要对图像处理算法、控制系统和编程进行结合和应用,才能实现对目标物体的精准控制和自动追踪。
4. 我对运动目标控制与自动追踪系统的个人观点和理解让我来跟大家共享一下我对运动目标控制与自动追踪系统的个人观点和理解。
1绪论1.1 课题研究背景及意义运动目标检测是图像处理与计算机视觉的一个分支,在理论和实践上都有重大意义,长久以来一直被国内外学者所关注。
在实际中,视频监控利用摄像机对某一特定区域进行监视,是一个细致和连续的过程,它可以由人来完成,但是人执行这种长期枯燥的例行监测是不可靠,而且费用也很高,因此引入运动监测非常有必要[1]。
它可以减轻人的负担,并且提高了可靠性。
概括起来运动监测主要包括三个内容[2]:运动目标检测,方向判断和图像跟踪。
运动目标检测是整个监测过程的基础,运动目标的提取准确与否,直接关系到后续高级过程的完成质量。
1.2 国内外研究现状运动目标检测在国外已经取得了一些的研究成果[3],许多相关技术已经开始应用到实际系统中,但是国内研究相对落后 ,与国外还有较大差距。
传统的视频目标提取大致可以分两类 ,一类以空间同性为准则 ,先用形态学滤波器或其他滤波器对图像作预处理;然后对该图像的亮度、色度或其他信息作空间上的分割以对区域作边缘检测;之后作运动估计,并合并相似的运动区域以得到最终的提取结果。
如光流算法、主动轮廓模型算法。
此类方法结果较为准确但是运算量相对较大。
另一类算法主要以时间变化检测作为准则 ,这类算法主要通过帧差检测图像上的变化区域和不变区域 ,将运动物体与静止背景进行分割。
此类方法运算量小,提取结果不如前类方法准确。
此外,还有时空结合方法、时空亮度梯度信息结合的方法等等[4]。
本文将围绕以时间变化监测为基础的方法展开分析和讨论。
1.3 本文结构第1章介绍了本文的研究意义及国内外发展状况;第2章分为四个部分详细讲述了运动目标检测的方法,介绍了背景提取与更新算法,检测算法,阈值选取,形态学滤波等;第三章对全文作出了总结。
2 运动目标检测的一般过程2.1 背景提取与更新算法在进行运动目标检测时,一个很重要的步骤就是区分出运动目标和背景范围,常见的一种情况是摄像机处于静止状态并且焦距也是固定的。
基于边缘特征的运动车辆阴影消除方法摘要:针对道路交通车辆检测问题,提出了一种利用边缘特征与垂直投影结合的运动车辆阴影消除方法。
先用混合高斯背景模型提取出背景,利用背景差检测出运动车辆区域,再用区域填充去掉目标区域的噪声,最后利用边缘特征与垂直投影结合,消除阴影。
关键词:混合高斯背景;背景差;车辆检测;边缘特征;阴影消除0 引言近年来,随着计算机视觉的快速发展,智能交通领域得到了蓬勃发展,基于视频的运动车辆检测越来越受到关注。
运动目标的分割是计算机视觉领域的重要课题之一,可应用于视频监控、运动分析、目标识别等领域,然而在运动车辆检测过程中,车辆阴影会对车辆识别造成影响,为了更好地理解运动车辆信息,需要对运动车辆的阴影进行检测和消除,以获得更好的目标分割结果[12]。
杨丹、余孟泽[3]“车辆视频检测及阴影去除”,采用基于背景差与帧间差的方法来检测运动视频中车辆,结合色彩及阴影统计信息建立阴影模型,去除阴影,但是该方法没有考虑到车辆相互遮挡的情况。
李晶晶、管业鹏等[4]“复杂背景下的运动目标分割与阴影消除”,任朝栋、张全法等[2]“快速消除车辆阴影的多阈值图像分割法”,该方法是将灰度化的当前图像与背景差分,再用正、负两个阈值对其二值化,分割深色和浅色来消除阴影,但是当车辆的颜色与阴影颜色相近时不能分割出目标和阴影。
邓亚丽,毋立芳等[5]“一种有效的图像阴影自动去除算法”,提出一种基于颜色统计特性的阴影去除方法,利用阴影的特征来对阴影进行去除。
白向峰、李艾华等[6]“基于颜色和梯度差估计器的运动阴影检测”,提出的一种基于梯度差估计器并融合亮度和归一化颜色特征的阴影检测方法。
刘怀愚、李璟等[7]“基于多特征的运动车辆阴影消除方法”,提出利用边缘特征的阴影消除方法。
1 运动车辆检测1.1 混合高斯模型背景提取运动车辆的检测首先要提取实时的背景,混合高斯模型对复杂场景的背景提取具有良好的应用。
混合高斯模型是对每一个像素定义K 个状态来表示其所呈现的颜色。
运动目标检测方法概述摘要:随着社会的发展,人们获取的信息途径越来越多,单纯的依靠人类的五官已不能及时的将我们获取的海量信息进行甄别和判断,因此计算机技术基础上发展的图像处理技术为我们生活、工作中的信息处理提供了很大的帮助,其在社会中的作用也越来越凸显。
其中,运动目标检测技术是整个图像处理技术的基础性环节,直接关系到后续信息处理的成败。
本文主要介绍了目标检测的常用算法的原理以及它们的优缺点,并对其中的帧间差分法和背景减除法进行了仿真实验,以验证其优缺点。
关键词:运动目标检测算法;帧间差分法;背景减除法中图分类号:tp391 文献标识码:a 文章编号:1007-9599 (2012)23-0000-031 引言运动目标检测技术是图像处理技术中的关键基础技术[1],利用运动目标检测技术可以对视频图像中感兴趣的目标进行实时地检测、识别、提示报警,是进一步视频图像处理的重要依据。
运动目标检测技术已经广泛应用于智能视频监控、犯罪预防、智能分辨、自动制导等安防、军事领域[2]。
运动目标检测是将运动目标从视频序列图像背景中分离出来。
各类实际应用需求的不断增多,大大地推动了运动目标检测技术的发展,产生了许多成熟的目标检测算法。
一般我们会把运动目标检测区分为动态环境下和静态环境下,由于动态环境处理较为复杂,所以本文主要介绍静态环境下的目标检测算法。
2 运动目标检测常见方法静态环境下的运动目标检测是指将视频序列中的图像分割为背景图像和前景图像[1],提取其中存在变化的区域为前景图像,即运动目标或称感兴趣区域,而没有发生变化的区域为背景图像。
能否准确地检测出监控场景中的运动目标直接影响了后续目标跟踪和行为分析等效果的好坏,因为目标检测提取出来的像素是后续处理分析的主要对象,是分析与处理的基础。
虽然,在视频监控场景中,监控环境情况十分复杂,但每个运动图像都具有独特的可供计算机识别的特点,计算机利用这些特点就可以将前景图像检测出来。
【Matlab】运动⽬标检测之“光流法”光流(optical flow)1950年,Gibson⾸先提出了光流的概念,所谓光流就是指图像表现运动的速度。
物体在运动的时候之所以能被⼈眼发现,就是因为当物体运动时,会在⼈的视⽹膜上形成⼀系列的连续变化的图像,这些变化信息在不同时间,不断的流过眼睛视⽹膜,就好像⼀种光流过⼀样,故称之为光流。
光流法检测运动物体的原理:⾸先给图像中每个像素点赋予⼀个速度⽮量(光流),这样就形成了光流场。
如果图像中没有运动物体,光流场连续均匀,如果有运动物体,运动物体的光流和图像的光流不同,光流场不再连续均匀。
从⽽可以检测出运动物体及位置。
应⽤背景:根据图像前景和背景的运动,检测视频的变化,空间运动物体在观察成像平⾯上的像素运动的瞬时速度,是利⽤图像序列中像素在时间域上的变化以及相邻帧之间的相关性来找到上⼀帧跟当前帧之间存在的对应关系,从⽽计算出相邻帧之间物体的运动信息的⼀种⽅法。
可以⽤来检测运动抖动物体关键技术:当⼈的眼睛观察运动物体时,物体的景象在⼈眼的视⽹膜上形成⼀系列连续变化的图像,这⼀系列连续变化的信息不断“流过”视⽹膜(即图像平⾯),好像⼀种光的“流”,故称之为光流(optical flow)。
编程处理中:matlab中有现成的!!函数function [fx, fy, ft] = computeDerivatives(im1, im2)if size(im2,1)==0im2=zeros(size(im1));end% Horn-Schunck original methodfx = conv2(im1,0.25* [-11; -11],'same') + conv2(im2, 0.25*[-11; -11],'same');fy = conv2(im1, 0.25*[-1 -1; 11], 'same') + conv2(im2, 0.25*[-1 -1; 11], 'same');ft = conv2(im1, 0.25*ones(2),'same') + conv2(im2, -0.25*ones(2),'same');% derivatives as in Barron% fx= conv2(im1,(1/12)*[-180 -81],'same');% fy= conv2(im1,(1/12)*[-180 -81]','same');% ft = conv2(im1, 0.25*ones(2),'same') + conv2(im2, -0.25*ones(2),'same');% fx=-fx;fy=-fy;% An alternative way to compute the spatiotemporal derivatives is to use simple finite difference masks.% fx = conv2(im1,[1 -1]);% fy = conv2(im1,[1; -1]);% ft= im2-im1;也有现成的实例:Affine optic flow - File Exchange - MATLAB CentralEstimate optical flow using Horn-Schunck method - MATLAB调⽤系统对象vision.OpticalFlow后产⽣的混合矩阵数据如何处理 – MATLAB中⽂论坛Estimate optical flow using Lucas-Kanade method - MATLABLucas-Kanade Tutorial Example 1 - File Exchange - MATLAB Central1.⾸先是假设条件:(1)亮度恒定,就是同⼀点随着时间的变化,其亮度不会发⽣改变。
1 运动目标检测
混合高斯模型使用K 个高斯模型来表征图像中各个像素点的特征,在新一帧图像获得后更新混合高斯模型,用当前图像中的每个像素点与混合高斯模型匹配,如果成功匹配则判定该点为背景点, 否则为前景点。
首先,可以采用以下方法来判定当前像素是否与混合高斯背景模型中的第i
高斯分布相匹配:
()()()
,,1,2,3,...,t i t i t if I T i K
μ⎧-<=⎪⎨⎪⎩匹配不匹配
else
[1] 其中,()()
,,i t i t T λσ=,λ为方差系数,该值取2.5时,具有最
优效果。
如果当前像素点与混合高斯背景模型中的第i 个高斯模型相匹配,则更新此高斯分布的权值()
,1k t ϖ+,期望μ和方差2
σ,
其更新方法如下所示:
()()()
(
),1,,1i t i t i t ϖ=ϖ+βϖ+- [2]
()()()()()()()
()
()()()
(
)
()
,1,,1,2
2
22,1,,1,,,,i t i t i t i t i t i t i t i t i t I x y I x y μ=μ+αμσ
σ
αμσ
++++-⎛⎫=+-- ⎪⎝
⎭
[3]
其中:
()()()()
(
)2,1,,,i t i t i t I x y α=βημσ+,
如果当前的像素值(),I x y 找不到一个与之匹配的高斯分布,则可以认为在K 个高斯模型的集合中出现了新的高斯分布,此时,用新的高斯分布替换到原来混合高斯背景模型中权值最小的高斯分布,然后可以用当前像素值初始化
μ
,用一个较大
的初始值初始化2
σ,再用一个较小值初始化ϖ,然后更新其他高斯分布的权值
()
,1k t ϖ+:
()()()
,1,,1k t k t k t ϖϖβϖ++=- [4] 由上述过程可以发现,与当前像素匹配的高斯分布权重增
加了,而不匹配的高斯分布的权重则降低了。
然后对权值W 进
行归一化处理:
()()
(
)
,,,1
1,2,3,...,i t i t K k t k i K ϖϖϖ===∑ [5] 更新完每个高斯分布的权值,均值和方差后,按照混合高斯分布的原理,背景点应该具有较大的权值ϖ和较小的方差
2σ。
因此可以对()
(),2
,i t i t ϖσ或者()
,(,)i t i t ϖσ的值进行排序,从排序后的K 个
高斯分布中选取前B 个分布作为背景对应的高斯分布,其中B 的取值为:
1arg min b b k k B T ϖ=⎛⎫
=> ⎪
⎝⎭
∑ [6]
其中,T 为背景选取的阈值,T 的取值一般与当前背景的复杂程度有关系,很多文献中T 的取值为0.7。
如果在阈值T 范围内,没有一个高斯分布与当前像素匹配,
则认为该点是前景点,反之该点为背景点,一般可以认为混合
高斯模型中,权重最大的高斯分布与当前背景最为接近,即权
重最大的高斯分布的均值μ即可认为是当前背景的像素值。
2 阴影去除算法
2.1 RGB 阴影模型及阴影除去算法
2.1.1 RGB 阴影模型
观察发现,阴影只是改变了当前像素的亮度,因此阴影在RGB 空间上对像素点的影响主要有以下两个方面:1.当前像素点在有阴影时,其像素点RGB 分量的值比没有阴影时要小;2.
当前像素点在有阴影时,其RGB 分量上像素值的减少量相同。
因此,可以得到基于RGB 空间的阴影模型:
,,::::r r g g b b r g b r g b
S B S B S B S S S B B B <<<⎧⎪⎨=⎪⎩ [8]
其中,r
B ,g
B
,b
B 为当前背景像素点上的RGB 三个分量的值,r S ,
g
S ,b S 为当前检测图像序列中像素点的RGB 值。
根据本文提到的混合高斯模型建模方法,可以建立当前背景模型,得到当前的背景图像,对于当前t+1时刻的像素点(),I x y 来说,当前的背景为t 时刻权值最高的高斯分布的期望值t μ,因此,在RGB 空间下,上述公式可表述为:
,1,,1,,1,,1,,1,,1,,,::r t r t g t g t b t b t r t r t g t g t b t b t
I I I I I I μμμμμμ++++++<<<⎧⎪⎨==<⎪⎩ [9]
或:
,,1,,1,,1
,,,0g t g t r t r t b t b t s r t
g t b t s
I I I K K μμμμμμ+++---⎧===⎪
⎨⎪>⎩ [10]
在实验中发现,对于像素点1t I +来说,由于受到光照变化和
建模误差的影响,其并不能完全满足上述公式,因此上述公式
仅为理论表达式。
所以对于误差的估算直接影响到了去除阴影
的效果。
2.1.2 RGB 阴影模型误差分析
根据RGB 阴影模型原理不难看出,RGB 空间上阴影误差主要有两种误差构成,一种为环境变化引起的误差,可称之为环境误差Φ,还有一种为在建模过程中产生的误差,可称之为模型误差∆,下面对这两种误差进行详细的分析:
(1) 环境误差主要是由于当前环境下光线的变化,如强光下和弱光下,其对图像有着不同的影响。
还有图像采集系统的不同,例如用不同的摄像机对图片进行采集时,其图像亮度与
颜色可能会发生变化。
一般情况下,环境误差主要产生与光线的变化,在强光下,其背景像素的值不稳定,所以需要一个较大值Φ,在弱光下时,环境误差影响较小,可以将环境误差Φ设为一个较小值。
一般情况,Φ的取值范围在[0,0.2]之间。
(2) 对于模型误差来说,它是由于在建模过程中,背景模型的像素值与真实背景像素值之间的差值决定的,差值越大,模型误差越大,差值越小,模型误差越小。
对于背景建模来说,其模型方差越大,背景模型的稳定性也就不好,其与真实背景点的差值也就越大。
因此,选取RGB 三个分量中方差最小的一个背景模型来估计当前背景模型的模型误差:
,,,,i t m
i i t
i r g b δδμ-∆=
= [11]
其中
,i t
μ,
,i t
δ为当前背景像素点的均值与方差,m δ为r,g,b
通道中的最小方差。
根据上述分析,上述公式变形,可以得到:
,,,1
,,|
|,,i t i t s i i t
I K i r g b μμ+--<∆+Φ= [12]
其中,,,i t m
i i t
δδμ-∆= ,误差 Φ可根据上述对环境误差的描述
进行调节。
3 结果
(a)原图 (b)未除阴影 (c)去除阴影
(a)原图 (b)未除阴影 (c)去除阴影
需要C,C++源代码或讨论可加QQ:447886938!。