张珍军 于会山 邢敏敏 李岩
摘要:本设计运用MATLAB编程软件对摄像头采集的学生教学楼出入视频进行处理,并统计出入人数。本设计主要包括视频采集、帧处理、目标检测与统计3部分。视频采集部分主要是指摄像头采集出入视频,并用KMPlayer软件转化成帧格式,存放在指定文件夹下。用MATLAB软件对每一帧图像进行灰度变换、二值化处理、膨胀处理,以及连通区域检测与标记。重复处理所有帧,进行帧间差分与背景差分,识别目标并计数,从而完成统计人数的要求。
关键词:图像处理;目标识别;背景差分;人流量统计
1.统计研究概述
1.1国内外研究现状
传统的人流量统计方法,比如人工计数、红外式行人检测等方法存在着过程繁琐、精度低等缺点,已经不再适用于实际应用。随着科学技术的不断发展,视频监控设备被广泛应用于各个商场车站等场所,视频监控的应用节省了人力物力,而且可以保证高精度。因此,采用有效的行人检测技术成为当前研究的热点。人流量统计算法的核心是首先对运动目标进行检测,然后对目标进行跟踪,人们依靠不断发展的计算机技术对人流量统计的算法进行了进一步的研究。其中最关键的是图像处理技术,在目标检测之前,需要对图像进行去噪处理,一般进行差分、滤波等操作。
1.2本课题研究意义和目的
目前,由于人类活动范围的不断扩大,人们面临的异常或者突发事件越来越复杂,对于视频监控的需求越来越大,因此具有一定智能的计算机视觉系统成为监控技术的发展方向。智能监控的目的是使计算机对通过图像采集装置采集到的图像及其他辅助信息进行处理,辅助人们对环境进行感知、解释和理解。
2.总体方案设计
2.1算法实现
本流程主要包括摄像头视频采集部分,视频转化成帧格式并存储指定文件夹,然后对每一帧图像进行处理,完成灰度转化、二值化、膨胀腐蚀处理、连通区域检测与标记等过程,识别出目标区域并计算出人数。方向识别主要是通过检测中心坐标的位置变化判断进入还是出去,或者是前后两幅图像进行差分,判断中心点坐标。软件主要运用MATLAB进行编写程序,实现该算法,其过程如图1所示。
2.2软件的选择
MATLAB有丰富的数据库,MATLAB用法简单,程式结构强大,不像c语言等代码冗长,具有方便直观的特点,因此更加符合人们的编程思维。
2.3MATLAB与图像处理
图像处理的主要内容是根据主要的处理目标,其处理流程大致可以分为图像信息的描述、图像信息的处理、图像信息的分析、图像信息的编码以及图像信息的显示等主要内容。
3.视频采集与图像处理
3.1视频采集
目前视频采集多用摄像头进行采集数据,视频采集的目的就是将模拟量转换为数字量,不仅使视频存储更加方便,而且将视频按照数字文件的格式进行保存,压缩了存储空间,在后期处理中数字量比模拟量更加容易操作。本设计采用了摄像头采集视频,用于统计人流量。
3.2图像处理
图像格式是指存储图像的文件格式,包括.jpeg.bmp,.tiff.gif.png等。与图像格式的定义不同,图像类型是以图像数组中数值与颜色之间的关系不同而对图像进行的分类。图像类型主要分为4种:灰度图像、索引图像、二值图像以及RGB图像。
3.2.1灰度图像
灰度图像是一个数据矩阵,该矩阵的每一个元素对应图像中的一个像素点(pixel),元素的值代表一定范圍的灰度值。矩阵中的元素可以是浮点类型或是8位16位无符号整数值,而且由于存储类型不同,其取值范围有所不同。uint8类型的图像,取值范围为[0,255];uintl6类型的图像,取值范围为[0,65 535],double类型的图像,取值为浮点数。灰度图像很少和颜色映射表一起保存,因此一般不自带调色板,而使用系统默认的系统调色板。
3.2.2二值化
二值化图像的过程一般用于将目标从图像中分割出来,这种方法的使用有一定的限制,最适用的情况是图像中目标的颜色和背景的颜色有较大区别。待处理的图像必须要先转化为灰度图像,像素点的灰度值分布在0-255之间。常用的方法是设置一个合适的阈值T,根据阈值将图像数据0-255的灰度空间划分为两部分:大于T的像素群和小于T的像素群,将两部分像素群用0和1进行表示,分别表示目标和背景,这就是二值化的过程。二值化的结果是使图像呈现只有黑和白的视觉效果。
3.2.3形态学处理
数学形态学是新型的图像处理与分心的方法,1964年法国和德国的科学家在研究岩石的结构时建立的;形态学的应用几乎涵盖了图像处理的所有领域,在图像检测、生物医学图像分析、机器视觉等方面取得了非常成功的应用。
(1)结构元素(structure element)。设有两幅图像B,x。若x是被处理的对象,而B是用来处理x的,则称B为结构元素,又被称为刷子。结构元素通常是比较小的图像。分为B包含于x,B击中x,B击不中x,如图2所示。
(2)形态学操作时由一组形态学代数运算字组成的,它的基本运算有4个:
腐蚀(或侵蚀)-Eroding:把结构元素B平移a后,得到Ba,如果Ba包含于x,所有满足上述条件的a点组成的集合称作x被B腐蚀的结果。
膨胀(或扩张)-Dilating:可以看作腐蚀的对偶运算。把结构元素B平移a后,得到Ba,如果Ba击中x,所有满足上述条件的a点组成的集合称作x被B膨胀的结果。
开启(开运算)-Opening:先腐蚀后膨胀的过程成为开运算。它具有消除细小物体,在纤细出分离物体和平滑较大物体边界的作用。
闭合(闭运算)-Closing:先腐蚀后膨胀的过程称为闭运算。它具有填充物体内细小空洞,连接临近物体和平滑边界的作用。
3.2.4连通区域检测及标记
二值化的图像中包含多个黑白块时,需要选取其中感兴趣的部分进行分析。这时就需要对其中的各个部分进行标记,并以此为根据分理处索要分析的部分。MATLAB中连通区域检测与标记函数为L=bwlabel(BW,n)。
4.目标识别与计算
对于运动目标的检测首先要确定场景中存在运动的目标,这就要检测视频序列图像中的场景图像是否有变化。考虑到不同环境的检测方法不同,目前大多数目标识别算法是针对某一个确切问题而提出的,这样就简化了算法编程。
4.1目标识别的基本方法
区分视频目标检测算法的标准是被监测的场景与摄像头之间是否存在相对运动。当视频监视中的背景与摄像头之间位置保持不变时,可以运用背景差分的方法,并提取目标:当视频监视中的背景与摄像头之间位置相对变化时,背景差分的方法失效,可以用帧间差分的方法。另一种情况下,如果背景和目标在颜色等方面差别较大时,可以运用合适的阂值分割的方法,将目标提取出来,但是这种方法有一定的局限性。
4.2帧间差分法
帧间差分主要是对视频图像中相邻的两帧图像差分运算来获得运动目标的方法。当场景中出现异常物体时,帧与帧之间的差距较大,通过减法运算,得到两帧图像的亮度差,然后通过设定阈值来提取图像中的运动目标,通过判断前后帧的互相减法运算,判断物体移动方向。这种方法的优点是:算法简单容易实现,易于实施实时监控,程序设计简单易行。基于相邻图像的差分方法,由于间隔较短,因此对于光线的变化不明显。
4.3背景差分法
背景差分法是一种常用的运动检测的方法,原理是利用当前图像与背景图像的差分来检测运动目标。背景消减法的主要特点是:它适用于摄像机静止的情况,需要得到当前视频的背景图像或者为静止背景建立模型;可以获得关于目标运动区域完整精确的描述,提取的目标图像较为精确。
虽然这种方法可以提取完整的目标图像,但是在实际应用中存在许多问题。实际应用中不容易得到一副标准的图像背景。有一种简单的方法是,当场景中无任何目标时捕获图像作为背景,但是随着时间的变化,外界环境会发生变化,比如光照、噪声等。鉴于这种非自适应的背景图像估计方法的缺点,研究人员目前致力于开发不同的背景模型,进行背景的动态更新,以减少动态场景对目标检测带来的影响。本文主要是运用静止背景下的差分法,当然这种方法存在一定的局限性。本设计处理图像过程如图3所示。
4.4目标识别
将原始图像进行背景差分、二值化处理、连通区域检测并标记后,图像向竖直方向做投影,黑色区域在矩阵中用0表示,白色区域在矩阵中用1表示。判断中心線处为0时,表示出现目标,当d的范围小于一定值时计数,因此d的取值需要根据具体的图像序列选取,如果取值不恰当,可能会出现同一个目标重复计数,或者有的人通过门口没有计入。因此这种方法受到行走速度等方面的影响,存在一定的局限性。
5.图形界面设计GUI
5.1GUI简介
计算机可以实现图形图像显示和音频输出等功能,MATLAB的图像用户界面可以实现用户与计算机之间的人机交互。在一个功能完整的GUI上,可以实现图像显示、音频、视频输出等功能,很好地实现人机交互,其原理是先要编写相关组件的回调函数,这样在生成后的界面上,通过按键操作、光标定位、文字说明等实现对相关回调函数的调用,这样就选择了或者激活对象,控制计算机完成相关操作,例如,实现计算、绘图等功能。
5.2GUI界面设计
MATLAB提供了用于界面设计的工具箱GUIDE,完成一次界面设计需要完成两个过程,一方面是界面的组件布局,用户通过新建GUI文件,将需要的各种组件添加到窗口,并保存,这样就自动产生了FIG文件,文件中包括组件资源;另一个就是对组件进行编程,编写函数触发相应的过程,实现相应的功能,程序一般在M文件中进行初始化和编辑。
6.实验结果与分析
本设计应用MATLAB对摄像头采集的视频进行处理,可以检测特定情况下学生出入以及人流量的检测,但是还存在一些不足之处,比如使用范围单一,图像处理过程中存在误差,这些都会对统计结果造成影响。人流量统计是大型商场、购物中心、车站、展览馆、机场等公共场所在管理和决策方面不可缺少的数据。随着现代科技的发展,智能监控在生活中的应用越来越广泛,人们借助其对环境进行更深刻的认知和理解。相信随着计算机技术的不断发展,智能监控系统的智能化程度将越来越高。