关于图像处理的空车位监控方法的探讨

2017-02-27 03:11刘圃卓林杰华娄晓博
软件 2017年1期
关键词:空车车位像素点

刘圃卓,林杰华,娄晓博,王 婉,王 雪,王 勇

(吉林大学通信工程学院,吉林 长春 130012)

关于图像处理的空车位监控方法的探讨

刘圃卓,林杰华,娄晓博,王 婉,王 雪,王 勇

(吉林大学通信工程学院,吉林 长春 130012)

利用MFC编程软件实现基于视频的停车场空车位监控,通过一些简单的图像处理算法,即可实现停车位的自动识别并输出判断结果到LED显示屏。通过每个摄像头内的不同车位,人工设定其判断范围、比较阈值等参数,即可以实现在有遮挡物、阳光、相邻车位影响等情况下输出低误判率的结果,指引司机找到空车位。

方法与技术;车位监控;图像处理;Sobel

0 引言

随着社会的发展,私家车数量剧增,在公共场所例如商场、车站、旅游景区的停车场也随之变大,车主在寻找车位时往往很盲目,总是在停车场中逛来逛去,即浪费车主的时间,也影响停车场秩序。目前出现了一些空车位监控系统,例如基于传感器系统,有红外传感器,声波传感器等,通过给每个车位安装传感器来进行监控,但这种方法需要每个车位都安装传感器,前期投入及后期维护成本大,而且也不能把车位的具体位置提供给车主,效果不明显。基于蓝牙的车位监控系统,虽然可以将车主引导到车位,但设备成本较大,且需要车主进行连接,不是很方便。本软件利用现有停车场监控摄像头去监控车位是一种非常经济有效的方法,目前已有相关软件、论文实现,但是本方法用一个摄像头可以同时监控多个车位,算法简单,只对目标区域进行判断运算量小,且不受到天气,相对固定的遮挡物的影响,而且当摄像头斜拍摄时仍可以进行判断。

1 相关方法的对比分析

目前在国内已有基于视频停车场空车位监控方法的实现。采用背景与待测图像的方差、背景与待测图像的线性相关度、待测图像的边缘密度三种算法综合判断车位[1],虽然能准确判断车位,不受天气、车辆颜色干扰,但要求摄像头只能垂直拍摄,当相邻车位相互影响时也无法判断。基于统计的方法计算出现次数最多的像素作为背景,关注选定范围内像素只发生变化的情况,采用减背景法得到差分图像的累积变化值方差以及权衡校正因子的值,综合这两个值判定是否有车[2],此方法虽可以将空车位信息详细的提供给车主,但也无法处理相邻车位有影响的情况,当摄像头倾斜拍摄时无法判断。还有基于先验算法,通过设定目标区域,采用均值、方差等作为判断依据,虽然可以减少运算量,但仍无法解决移动障碍物遮挡的问题。在国外提出一种基于属性的组合方法采用自适应背景减法、前景物体检测和识别方法、特征提取算法[3],这种方法可以处理光线变化及阴影,更准确的判断,但采用自适应算法导致运算量增大,判断时间较长,虽然可以处理相邻车位有影响的情况,当车身遮挡,而不是车阴影遮挡时同样不能正确判断。

基于以上提出的各种困难,本方法可以解决,通过划定区域、以及简单的算法减少运算量,通过对不同位置的摄像头、及不同车位设定不同阈值,可以解决光线、阴影、车位间的相互影响,提高判断准确率。

2 方法的组成

如图1是本方法流程,方法的实现利用MFC进行编程。对于停车场摄像头采集的视频可以利用监控软件自动定时截图例如KMPLYER,保存到文档后,利用这个方法编辑的软件打开第一张图片即可自动执行空车位判断。

图1 流程Fig.1 Software process

2.1 定义CDib类进行数字图像处理

由于MFC未提供对DIB的支持,使用Dib函数实现过程比较麻烦,所以定义一个设备无关类CDib,里面封装了关于Dib处理所需的基本成员变量及成员函数,例如获取图高度、大小、每个像素所占字节数等,此处封装的函数参考于Visual C++数字图像处理技术详解[4]。由于本方法最后的判断是基于像素点的白黑数量进行判断,并不需要彩色图,通过24位图进行8位图转换后,可以使后续操作变得简单。

2.2 利用Sobel算子进行轮廓提取

使用轮廓提取算法,实现图像的分割,因为当停车位空时,白色的停车位线与周围环境差别较大,当停车后车身轮廓同样会与周围环境有区别,所以使用边缘检测法可以将图像较好的分割出来,利用图像一阶导数的极值来提取边缘,当图像中变化缓慢的区域,相邻灰度变化不大,所以梯度幅值较小可以认为趋于0,当在图像边缘时,灰度变化剧烈所以梯度幅度较大,所以可将图像边缘分割出来,就可以实现车位或车轮廓的分割。对于图像f(x,y)它的梯度为:它的幅度为:

用差分代替微分,并利用区域模版和图像卷积近似计算出梯度值GX和GY可以采用不同的模版,所以会出现多种结果。Sobel算子是利用局部差分寻找边缘算子,但考虑3*3的范围处理,采用如下模版。

表1 Sobel模版Tab.1 Sobel template

其数学表达式为:

用差分代替一阶偏导:

将每个像素点分别与这两个核卷积,比较后将较大值作为该像素点的灰度值。

还有很多种边缘检测法例如Roberts、Prewitt、Krish,它们通过改变卷积核数目或模版值。通过比较采用Sobel算法,既实现了将所要的轮廓分割出来,也避免了轮廓的线的过粗或者不清晰。边界跟踪法也可以将物体的轮廓分割出来,从一点出发搜寻物体轮廓上的其他像素点直到起始边界点为止。

以上几种方法对比,由与判断方法是根据目标区域内停车后像素点的变化个数来进行判断,既要考虑到能将车的轮廓尽可能多的提取,又要避免其它物体轮廓的干扰,采取Sobel算法更有利于后期判断。

图2 Sobel处理效果Fig.2 Sobel treatment effect

图3 边界跟踪法效果Fig.3 The effect of boundary tracking method

2.3 图像旋转、二值化,灰度膨胀的实现

由于每个摄像头采集的图像的角度并不固定,对接下来图像分区带来不必要的麻烦,先对图像进行旋转,旋转至停车位边框有任意一条边与屏幕平行即可。旋转角度的设置根据具体采集的图片设定。二值化后将灰度图转为黑白图,此处的比较阈值根据摄像头采集到的图像设定,要考虑到周围环境的影响,设定一个可以将车的轮廓尽量多的变白,空车位的地面或者是遮挡物尽量变黑的阈值。执行灰度膨胀,可以将车轮廓范围变大,进而进一步将停车后的白色像素点数量增加。

2.4 车位分区编号,并计算白色像素点的个数

对每一个车位判断区域进行限制大小并编号,这个区域需要根据摄像头采集到的图像对每个车位进行单独设定,在选定区域内执行循环。当执行旋转操作后,实际操作的车为必然有一边将与屏幕平行,再在车位轮廓内截取适当大小区域作为此车位的判断区域。对于平行四边形情况,长方形操作类似,用y表示纵坐标,x表示横坐标。直线可以表示为斜截式:y=ax+b,A、B(纵坐标的起点值和终点值)为常数,定义flag记录白色像素点的数目,对一个车位的循环过程如图4。

图4 Fig.4

因为有时车位不是标准的平行四边形,而且没有必要对整个车位轮廓完整的划分,只截取车位内的一部分区域来进行像素点的累加,所以会出现a′和b′两个常数。上述循环就是对一个车位的划分,对所采取的图片内要进行判断的车位逐个划分并用不同的标志例如flag1、flag2等,就可以实现对不同车位的判断。

2.5 车位是否为空的判断及结果的输出

通过上一个函数会得到很多个标志变量,但每一个车位周围环境情况的不同,例如柱子的遮挡、旁边车位停车后对当前车位的判断影响、或者光线以及异物的影响,要对每一个车位是否有车的判断阈值进行单独设定。如图5中对车位进行分区编号,对于分区没有必要完整的选取整个车位,例如对于2号车位,由于1号车位停车后会遮挡一部分2号车位,所以选取的区域要离右边边界稍远一点,可以降低误判率,具体选定区域的面积大小,可以根据实际情况进行调整,使误判率降到最低。

在图5中假设对3号车位进行判断,先要对2号车位的flag2进行判断,2号车位的空或者不空将会影响到3号车位的判断,所以对这两种情况要设定不同的阈值。此时光线在10号车位,当对图片进行处理后会出现一道白色,图中用红圈圈出,所以在设定判断阈值时对阳光能够照射到的区域将光线的影响考虑到。

用字库卡控制LED屏幕,将空车位号显示,当判断为空时就在要显示的字符串里增加字符,调用ActiveX控件中的Microsoft communication control实现与LED的串口通讯,即可输出结果,当实际应用中可以利用WiFi模块就可以实现无线通信。

图5 Fig.5

3 软件测试结果

图6 使用流程Fig.6 Using process

图7 软件界面Fig.7 Software interface

对于第一个测试中两次误判是在同一车位,无车时判为有车,当过两分钟阳光略微移动后,无错判。本方法对有有人经过或有很大障碍物在车位上时也判为不可以停车,当有车停在两个车位中间时,两个车位同时判为不可停车。通过LED显示空闲车位车号,并显示所在位置用箭头指示,如图8所示。

表2 测试结果Tab.2 Test results

图8 LED结果显示Fig.8 LED display

4 结论

此方法可以对有遮挡物,阳光,及车位间有相互影响的停车位进行较准确的判断,对于整个停车场通过对车位的编号分区,通过一定数量的摄像头在实现安全监控的同时可以进行空车位的管理,而且可以将空车位信息较详细的提供给车主,即有效的减少了司机寻找空车位的时间,也减少了停车场管理设备的资金投入,有较大的实用性。但本方法对于车停入车位后完全遮挡相邻车位的情况,无法准确判断,解决的途径是对于这样被遮挡的车位用其它可以采集到的摄像头去判断,或者提高摄像头高度。

[1] 罗小巧, 姜龙, 瞿少成, 等. 基于视频的停车场车位监控算法研究[J]. 电子测量技术, 2012, 35(2): 33-36. LUO X Q, JIANG L, QU S C, et al. Parking lot parking monitoring algorithms based on video[J]. Electronic measurement techniques, 2012, 35(2): 33-36. (in Chinese)

[2] 熊俊. 基于多摄像头协同模式的智能停车场管理系统的研究与应用[D]. 杭州: 杭州电子科技大学, 2009. XIONG J. Based on multi-camera coordination model of the research and application of intelligent parking lot management system[D]. Hangzhou: Hangzhou university of electronic science and technology, 2009. (in Chinese)

[3] MASMOUDI I, WALI A, JAMOUSSI A, et al. Vision based System for Vacant Parking Lot Detection: VPLD[J]. Computer Vision Theory and Applications, 2014, 3: 5-8.

[4] 刘海波, 沈晶, 岳振勋, 等. Visual C++数字图像处理技术详解[M]. 北京: 机械工业出版社, 2013. LIU H B, SHEN J, YUE Z X, et al. Digital image Pocessing Using Visual C++[M]. Beijing: China Machine PRESS, 2013.

About the Empty Car Control Method of Image Processing

LIU Pu-zhuo, LIN Jie-hua, LOU Xiao-bo, WANG Wan, WANG Xue, WANG Yong
(Communication Engineering of Jilin university, Changchun 130012, China)

Utilize MFC programming software to achieve monitoring based on the video of empty parking spaces in the parking lot.Through some simple image processing algorithm, the parking spaces can be identified automatically and displayed on the LED screen. Set the range of judgment, comparison threshold and other parameters according to different parking spaces in each camera, thus to be implemented in a shelter, sunlight and adjacent parking influence case and output result at a low misjudgment rate, which can lead the driver to find an empty parking space.

Methods and techniques; Parking space monitoring; Image processing; Sobel

TP317.4

A

10.3969/j.issn.1003-6970.2017.01.026

本文著录格式:刘圃卓,林杰华,娄晓博,等. 关于图像处理的空车位监控方法的探讨[J]. 软件,2017,38(1):123-126

猜你喜欢
空车车位像素点
为了车位我选择了环保出行
我自己找到一个
以翻车机空车线为例对自动防溜系统的分析和思考
基于5×5邻域像素点相关性的划痕修复算法
一个车位,只停一辆?
火车翻车机空车调车系统的优化改进
基于逐像素点深度卷积网络分割模型的上皮和间质组织分割
多阶段空车调整方法在车流推算系统中的应用研究
基于时间约束的铁路空车调配系统可靠性分析