徐健+唐思宇+邹佳琳+周帅+陈新荣+周宇昕
摘 要:本课题基于图像处理的方法研究教室的人员分布状态。首先介绍了图像采集硬件,通过嵌入式摄像头采集教室的图像信息,然后利用一系列图像方法进行处理。文章对教室图像做了灰度化和二值化处理,进行了中值滤波,再对图像作了二值化形态学分析和运算,通过腐蚀和膨胀算法,获得了可以对人员分布作有效分析的图像。文章最后对人员密度算法方案作了对比,分别用像素统计法和特征识别法进行了统计分析,均能达到了教室人员密度分析的效果。
关键词:人员分布;形态学算法;腐蚀;膨胀;像素统计
中图分类号:TP751 文献标志码:A 文章编号:2095-2945(2017)35-0042-04
Abstract: It studies the distribution of classroom personnel through image processing in this paper. The image information of the classroom is collected by the embedded camera, and it is analyzed by a series of processing algorithms. The collected image is firstly processed by the grayscale and binarization algorithms, and the median filtering is also used. Then it is continued to be processed by binarization morphological algorithms including the corrosion and expansion methods and it becomes the image which can be analyze effectively for the personnel distribution. Finally, the personnel density algorithm is analyzed and compared and the pixel statistics and feature recognition methods are respectively applied which all achieves the basic effect of classroom personnel density analysis.
Keywords: distribution of personnel; morphological algorithms; corrosion; expansion; pixel statistical
隨着教育教学活动的深入,高校越来越重视对教室资源的配给和管理。为此通过引入信息采集手段,及时掌握教室的学生人员数量和资源利用情况,收集教室有效信息,并继而对教学楼资源做有效的引导和配置。在信息收集中,一个重要的环节是统计当前各个教室的人员情况,即估算出教室的人员密度。本文基于STM32硬件获取教室图像数据,首先进行图像的初步处理,然后通过对图像进行形态学分析和处理,对图像中人员数量进行估计,并阐述了其教室人员密度算法的实现过程。
1 硬件基础概述
本设计以STM32F4开发板为硬件底层基础,结合电源模块、按键模块、ATK-OV2640彩色摄像头模块、4.3寸TFTLCD液晶显示屏模块,还有教室灯光控制模块,系统模块图如图1所示:
ATK-OV2640是ALIENTEK推出的一款200W像素高清彩色摄像头,其核心采用了OmniVision公司的1/4寸CMOS UCGA(1632*1232)图像传感器OV2640。该摄像头模块具有高灵敏度、低压的特点,适合嵌入式应用;具备标准的SCCB接口,兼容IIC接口;支持压缩图像,可以输出JPEG图像数据;集成有源晶振,无需外部提供时钟;ATK-OV2640摄像头所有的配置,都是通过SCCB (Seril Camera Control Bus)总线实现的,它的信号线构成如下:第一个是用来传输时钟的SIO_C,另一个是用来传输数据的SIO_D。OV2640 的数据输出,是在行参考信号和像素时钟的控制下,有序输出的,默认的行像素输出时序,如图 2所示。
2 图像处理算法
所进行的图像处理算法包括:(1)图像预处理,完成彩色图像转灰度化图像、灰色图像转黑白二值图像;(2)图像的滤波处理;(3)对二值黑白图像作形态学处理,获得可进行人员分布分析的最终图形。
2.1 彩色图像灰度化和二值化
彩色图像的灰度化可以减少图像的数据处理量。灰度算法中应用最普遍的算法是加权平均法。根据YUV的颜色空间中,Y的分量的物理意义是点的亮度,由该值反映亮度等级,Y与R、G、B三个参数可以构成一定的关系,即:
Cray(i,j)=0.299×R(i,j)+0.587×G(i,j)+0.114×B(i,j)
其中,Cray(i,j)代表的就是亮度Y的值,也就是灰度化之后的灰度值。灰度值范围是0~255,形成256阶灰度值。
在实际的二值化过程中,采用动态阈值迭代法,在保证速度的基础上,尽可能的保存更多原有的图像信息。迭代法是基于逼近的思想,首先设置一个初始化静态阈值Value;将所有像素点的灰度值参考这个阈值分为两类,第一类高于这个阈值,第二类低于这个阈值;分别对第一类和第二类的像素点求平均值,得到Average1和Average2后取平均值作为新的静态阈值;然后重复上述过程,直到第N次迭代的阈值和第N-1次迭代的阈值的差控制在一定的范围之内时方可结束。程序代码如下:endprint
while ( Value != New_Value)
{
double Sum1=0, Sum2=0, W1=0, W2=0,Avg1=0,Avg2=0;
Value = New_Value;
for(i=0; i { for(j=0; j { if( Cam_Data[i][j] < Value) { Sum1= Cam_Data[i][j]+Sum1; W1++; } if( Cam_Data[i][j] > Value) { Sum2= Cam_Data[i][j]+Sum2; W2++; } } } Avg1=Sum1/W1; Avg2=Sum2/W2; New_value=(Avg1+Avg2)/2; return New_value; } 动态阈值的大小会随着现场灰度的采样值不断的变化,适用性比较强。 2.2 滤波降噪处理 本系统中采用的是中值滤波的方法。将灰度化之后的图像,以3*3的矩阵为一个基本的单元,分别读出这9个元素的灰度值,并按照从小到大的顺序排列。比如,灰度值按照从小到大的顺序排列之后为0,2,3,3,4,6,10,19,97,然后将重新排序的9个数字按照顺序依次填入一个新的3*3矩阵中,最中间的元素即为中值。 2.3 形态学算法处理 二值形态学对二值化后的图像进行形态学处理,基本的形态学算法采用腐蚀(使区域缩小)和膨胀(使区域扩大),一般通过创建一个n*n的小矩阵作为结构元进行分析处理。 腐蚀:如图5所示,对原图5(a)建立如图5(b)的结构元,在原图上平移结构元,以结构元中心为参考点,逐个扫描图像像素点,若原图能完全包含结构元所含像素(黑色),则参考点扫描到的像素点计为黑色,否则为白色。如图5(c)所示,是腐蚀的样图结果。结构元参考点可以不是中心,这样腐蚀的效果也会发生变化。 经过图像的腐蚀算法之后,可以消除很多没有意义的噪点,但是也使得很多重要的边缘细节消失。如图6所示,图像中人物的轮廓虽然都在,但是有的部分被腐蚀的没有特征。接下来通过膨胀算法增强人物信息。 膨胀操作时,同样用结构元的参考点逐个扫描图像像素点,若结构元中的像素(黑色)与像素点存在重合则扫描到的点计为黑色,否则为白色。如图7是对腐蚀后的图6作的膨胀操作,使得目标更加明显。 利用腐蚀和膨胀对图像进行处理,可以在基本不改变目标形状的情况下,将背景物中的毫无意义小黑点消除。 3 人员密度检测 3.1 像素统计与特征识别 在进行图像处理之后,基本有人存在的地方会留下一块黑斑。有两种方案可以大致估计出教室的人数。 方案1:像素统计法 只要读出教室内部黑色像素点的个数,然后再通过测试得出每个学生所占的像素点的个数,就可以初步判断教室的人数。但实际情况因为摄像头摆放的位置是教室的前方,教室前排的学生所占的像素点数一定多于教室后排学生所占的像素点数。为此,把教室划分为了6个区域,如图8所示。每个区域的学生所占的像素点数就相差不大了。 方案2:特征识别法 特征識别法不同于像素统计法,关键是计算连通域的大小,即计算区域内出现的所有黑斑的面积。只有当黑斑的面积满足一定的条件,才可以判别为人。仍然对教室进行区域划分,并对像素连通的区域按下法标记: (1)从第一行扫描像素点,记录下连续“黑点串”(即连通域)的起点坐标和终点坐标,它的面积就是终点坐标与起点坐标的差。 (2)从第二行开始,同样记录连续“黑点串”的起点坐标和终点坐标,并计算面积。若此“黑点串”与上一行的某个“黑点串”在横坐标上有公共部分,则认为这两个“黑点串”是连通的,将其面积相加。 (3)直到最后一行识别结束。记录下所有的连通域及其面积。 3.2 人员密度分析 分别对像素统计法和特征识别法的测试数据展开分析。 像素统计法: (1)因为教室左右是对称的,摄像头拍到的画面也是对称的,即A/B区域对称。因为A/B区域原则上采集到的数据也是一样的,所以将A/B区域划分为一类,采集一组数据。 (2)分别在A区域安排1个人,2个人,3个人,4个人,测得不同情况下A区域黑色像素点总数。 (3)重复上述过程,在C区域,和E区域测得不同人数时,黑色像素点的总个数。 实验数据如表1所示: 特征识别法: (1)跟像素统计法类似,因为A/B区域原则上采集到的数据也是一样的,因此将A/B区域划分为一类,采集一组数据。 (2)分别在A区域安排1个人,2个人,3个人,4个人,如果连通域的面积符合设定的范围,则可以判定为人,此时记录这个连通域的面积。若符合的连通域的面积大于一个指定值,则都记录下来,取其平均值。 (3)重复上述过程,在C区域,和E区域测得不同人数时,符合既定范围的连通域的面积,并求其平均值。实验数据如表2所示: 经过不断地实践分析,发现将像素识别法分区域处理的方案已经基本可以满足设计的预期,并且这种方法的算法简单,处理的速度要快于特征识别法。因为像素统计法只进行了一次屏幕的扫描,而特征识别法不仅进行了多次的屏幕的扫描,还有比较和标记的过程,处理速度稍微慢了一点。 4 结束语 本课题通过摄像头对教室内部的图像进行采集,经过算法研究基本估计出教室学生人数,从而得到人员分布情况,取得了一定效果。论文在图像获取和人员分析算法上取得了初步经验,仍有很大的研究空间。课题可以应用于特定场合对人群进行统计分析,从而对资源或者公共设施进行高效合理的分配,有着很好的应用前景。 参考文献: [1]刘洋,薛向阳,路红,等.一种基于边缘检测和线条特征的视频字符检测算法[J].计算机学报,2005,28(3):427-432. [2]拉斐尔C.冈萨雷斯,等.数字图像处理(第三版)[M].阮秋琦,等译.电子工业出版社,2017.