人体运动检测是指在输入视频图像中却东运动人体的位置、尺度大小和姿态的过程、
人体跟踪是指在视频图像序列中确定各帧间的人体彼此对应关系的过程。
可以采用 低通滤波去噪、背景差分、形态学图像处理、区域连通性分析等一系列的处理方法,将运动物体从视频图像中提取出来,然后采用人体高宽及其比值的特征进行人体识别。
检测到人体后,可以采用Camshift算法和卡尔曼滤波算法进行人体的跟踪。
运动目标检测常用的方法:背景减除法,帧间差分法、光流法级统计学方法、
帧间差分法:帧间差分法是在图像序列中,将相邻两帧图像或相隔几帧的两幅图像的像素值相减并且阈值化来提取图像中的运动区域。其主要优点是算法实现简单,但对场景光线的变化不太敏感,受目标阴影的影响也不太大。问题是“当目标表面存在大的灰度均匀的区域时,在目标的上述区域产生”空洞“:目标运动速度越大,检测出的区域就比实际的区域越大,而当目标运动很缓时,往往检测到得区域很小,甚至无法检测到目标运动。
背景差分法:利用当前图像与背景图像的差分来检测运动区域,即将每一帧图像与背景图像相减,若差值大于某一阈值就判为出现运动目标,相减的结果直接给出运动目标的位置、大小、形状等信息。使用差分法需要对背景帧进行不断的更新以保持与实际背景的精确近似。
光流计算法:光流是图像中各像素点运动的速度分布,它是一种顺时速度场,即向量场。每一个向量表示了景物中一个点在图像中位置的瞬时变化。光流法是利用运动目标在图像序列间,即随着时间变化的特性,通过计算帧间像素的位移来提取人的运动。其优点是光流不仅携带了运动目标的运动信息,而已还携带了有关景物三维结构的丰富信息,能够检测独立运动的对象,而不需要预先知道场景的任何信息。既实用于静止的运动的背景,也适用于摄像机运动的情况,有很好的适应性。但是其缺点也是明显的,这种方法采用迭代的求解计算,所需计算时间长,无法满足实时的要求,并且该方法受噪声影响比较大,因而它多适用于图像噪声比较小,目标运动速度不大的情况。
统计学方法:是基于像素的统计特性从背景中提取运动信息。它首先计算背景像素的统计信息)如,颜色灰度边界等),使用个体的像素或一组像素的特征来建立一个较为高级的背景模型,而且背景的统计值可以动态的更新,通过比较当前背景模型的统计值,图像中每一个像素被分成前景or背景。但是基于统计的方法涉及大量的计算和变换,对现有的硬件设备要求较高。
目标跟踪
视觉跟踪算法主要分为4类:基于区域的跟踪、基于特征的跟踪、基于变形模板的跟踪和基于模型的跟踪。
图像的去噪声处理:
空间域图像平滑:
1邻域均值滤波 (用几个像素的平均值来代替每个像素的灰度。有4邻域和8邻域。对加性噪声的处理比较有效,但是会造成高频的图像边缘部分出现模糊现象,而且模糊程度与邻域模板的大小成正比。)
2中值滤波 (一种非线性信号处理方法。将一个包含奇数个像素的模板在图像上一次移动,将模板内所有像素点的灰度值进行排序,然后再取中间值作为中间像素点的灰度值,它对孤立的噪声像素印制能力很强,由于它不是简单的取均值,so产生的模糊比较少,它在消除噪声的同时又保持了图像的细节。但窗口不易太大,否则图像的边缘信息也会受到损失。)
3空间域低通滤波 (图像信息一般集中在低频部分,噪声在高频部分)
频域低通滤波
形态学图像处理
进行前景检测后在检测到得人体区域会有孔洞产生,因此采用形态学图像处理的方法填补目标
区域的小的孔洞。
开运算可以消除图像中小于结构元素的细节部分,平滑对象的轮廓,断开狭窄的连接,并可以使物体的局部形状保持不变;
闭运算也可以平滑对象的轮廓,但与开运算不同的是,闭运算可以将狭窄的缺口连接起来,,并填充比结构元素小的孔洞和缝隙。
(采用闭运算来消除运动目标中小的孔洞)
区域连通性分析
当某一联通区域的面积大于一定阈值时,认为有目标出现。
Camshift算法的人体跟踪
camshift算法即连续自适应的Mean shift算法。是一种基于目标颜色的概率图,以概率图质心为特征点进行跟踪的算法。这个算法具有较强的稳定性,能够对快速运动的物体进行很好的检测。