直方图比较法识别车位占用状态
Posted jack kwok
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了直方图比较法识别车位占用状态相关的知识,希望对你有一定的参考价值。
1, 车位占用状态识别原理
灰度直方图是灰度级的函数,描述图像中该灰度级的像素个数(或该灰度级像素出现的频率):其横坐标是灰度级,纵坐标表示图像中该灰度级出现的个数(频率)。一维直方图的结构表示为:
直方图可以用来描述不同的参数和事物,如物体的色彩分布,物体的边缘梯度模版以及目标位置的当前假设的概率分布。如下图左侧为彩色图像,右图为其灰度直方图。
不同图像的直方图形态不同,因此可用于比较图像是否变化,以及变化的幅度大小。个人理解,直方图比较存在以下优势:
² 抗抖动。相机如果发生轻微抖动或偏转,不会大幅改变图片直方图的整体分布形态,因此可不必重新校准模板。
² 简单易行。不需要较复杂的机器学习,只需一幅模板图片,就可以判断当前场景是否发生明显变化。
2, 影响因素
2.1 光照的影响
车位的光照情况如果发生变化,显然会改变相机拍摄图片的整体。比如,灯光亮度变亮或变暗,灯光照射角度变化,灯光部分遮挡等。
2.2 无关区域的影响
车位相机拍摄的图片并不只包含车辆停放的划线区域,还包括走道、车场建筑、设施、四周其它车位等无关区域,这些无关区域可统称为“背景”。由于背景本身也可能在时刻发生变化,因此为准确探知车位区域的变化,就需要将背景去除,即裁剪。
准确定义车位检测区域增加了部署工作量,但可以提高比对准确率。车位区域可以采用简单的矩形,或更为精确的多边形来加以标识。
3, 裁剪方法
3.1 矩形裁剪
矩形裁剪法简单易行,但由于镜头拍摄原因,图片上的车位并非矩形。矩形区域只能取车辆停放时受影响的大部分区域。
3.2 多边形裁剪
相机图片中的车位更接近于梯形或多边形。因此采用多边形裁剪可以更为准确地比对停车前后的图像变化。
4, 比较参数的选择
opencv中的compareHist函数是用来计算两个直方图相似度,计算的度量方法有4个,分别为Correlation ( CV_COMP_CORREL )相关性,Chi-Square ( CV_COMP_CHISQR ) 卡方,Intersection ( method=CV_COMP_INTERSECT )交集法,Bhattacharyya distance ( CV_COMP_BHATTACHARYYA )常态分布比对的Bhattacharyya距离法。
compareHist函数返回一个数值,相关性方法范围为0到1,1为最好匹配;卡方法和Bhattacharyya距离法是值为0最好;而交集法为值越大越好。
5, 测试方案
5.1 测试样本
² 16个空车位图片作为车位空闲的模板。参见图5-1
² 16个空车位图片分别与34个有车或无车、同一车位或不同车位的车位图片进行直方图比对。参见图5-2。其中
- 9个图片中停有车辆
- 以10.146.39.43 (2).jpg图片亮度为127,10.146.39.43 (2)-br177.jpg和10.146.39.43 (2)-dr77.jpg分别是10.146.39.43 (2).jpg图片亮度增加到177和减少到77的加工图。参见图5-3
图5-1 16个空车位图片(模板)
图5-2 34个测试图片
图5-3 中间为原图,左中右亮度分别为177、127、77
5.2 参数
5.2.1 车位裁剪矩形形状
在配置文件plateImage.ini中定义每个模板图片要裁剪的停车位矩形的形状。
5.2.2 比较参数
本次测试compareHist函数计算两个直方图相似度的度量方法取:Correlation ( CV_COMP_CORREL )相关性。
5.3 运行步骤
1) 取一个模板图片M,按M配置的停车位矩形的形状裁剪出局部图像M1
2) 取一个车位图片N,按M配置的停车位矩形的形状裁剪出局部图像N1
3) 计算M1和N1的直方图关联度R
4) 循环重复步骤2,遍历所有车位图片
5) 循环重复步骤1,遍历所有模板图片
6, 测试数据
完整数据参见:实验数据\\图像比对测试结果3 -直方图.xls
7, 测试数据分析
ü 16个模板图片与自己比对,符合度均为1.
ü 同一个车位,9个有车图片与无车模板图片的比对,符合度均在0.5以下。见表7-1
ü 同一个车位,7个无车图片与无车模板图片的比对,符合度均在0.9以上。见表7-2
ü 不同车位之间,无车图片与无车模板图片的比对,符合度可高达0.98,也可低至0.08. 见图7-3、图7-4.
ü 同一个车位,光照度变亮对图片符合度影响很大,而变暗则影响较小。见表7-5
车位图片模板 |
车位图片 |
是否有车 |
匹配度 |
imgs1/10.146.39.76 (2).jpg |
10.146.39.76.jpg |
1 |
0.488465 |
imgs1/10.146.39.43 (2).jpg |
10.146.39.43.jpg |
1 |
0.334856 |
imgs1/10.146.39.93 (2).jpg |
10.146.39.93.jpg |
1 |
0.284679 |
imgs1/10.146.39.86.jpg |
10.146.39.86 (2).jpg |
1 |
0.278037 |
imgs1/10.146.39.74 (2).jpg |
10.146.39.74.jpg |
1 |
0.256283 |
imgs1/10.146.39.145.jpg |
10.146.39.145 (2).jpg |
1 |
0.202147 |
imgs1/10.146.39.113 (2).jpg |
10.146.39.113.jpg |
1 |
0.149606 |
imgs1/10.146.39.117.jpg |
10.146.39.117 (2).jpg |
1 |
0.110738 |
imgs1/10.146.39.35 (2).jpg |
10.146.39.35.jpg |
1 |
0.018167 |
表7-1 有车图片与无车模板图片的比对
车位图片模板 |
车位图片 |
是否有车 |
匹配度 |
imgs1/10.146.39.134 (2).jpg |
10.146.39.134.jpg |
#N/A |
1 |
imgs1/10.146.39.94 (2).jpg |
10.146.39.94.jpg |
#N/A |
1 |
imgs1/10.146.39.135 (2).jpg |
10.146.39.135.jpg |
#N/A |
0.999838 |
imgs1/10.146.39.92 (2).jpg |
10.146.39.92.jpg |
#N/A |
0.99911 |
imgs1/10.146.39.118 (2).jpg |
10.146.39.118.jpg |
#N/A |
0.99845 |
imgs1/10.146.39.122 (2).jpg |
10.146.39.122.jpg |
#N/A |
0.98421 |
imgs1/10.146.39.123 (2).jpg |
10.146.39.123.jpg |
#N/A |
0.937074 |
表7-2 无车图片与无车模板图片的比对
10.146.39.94 (2).201x295x461x729-Roi.jpg 10.146.39.118 (2).201x295x461x729-Roi.jpg
图7-3 无车图片与无车模板图片的比对,符合度可高达0.98
10.146.39.122 (2).261x109x413x623-Roi 10.146.39.74 (2).261x109x413x623-Roi
图7-4 无车图片与无车模板图片的比对,符合度可低至0.08
车位图片模板 |
车位图片 |
是否有车 |
匹配度 |
imgs1/10.146.39.43 (2).jpg |
10.146.39.43 (2)-br177.jpg |
#N/A |
0.001783 |
imgs1/10.146.39.43 (2).jpg |
10.146.39.43 (2)-dr77.jpg |
#N/A |
0.999997 |
表7-5 光照度变亮和变暗对图片符合度的影响
8, 测试小结
本次测试结果较为理想,说明采用图片直方图比较法来判断车位是否被占用具有可行性。以下为参考意见:
² 测试表明无车比对值在0.9以上,有车比对值在0.5以下,因此分水岭较宽,可视实际环境在0.6~0.8之间调整。一般建议设置阈值为0.7.
以下为注意事项:
² 必须注意裁剪区域的设置。一般应尽可能大地包含车辆停放时影响到的所有区域。以降低有车停放时图片与模板的相关性。如此可以降低阈值,降低人员等无关进入车位区域的影响。
² 车位施工后,必须重新设置模板图和裁剪区域。
9, 下一步工作
² 取得更多的现场图片进行测试验证。如水泥地面、光照偏强或偏弱等环境。
² 研究梯形裁剪是否能改善阈值。
² 研究直方图其它算法是否能改善阈值。
² 研究车位设备移动带来的影响,如雪糕桶、车位支架等。
以上是关于直方图比较法识别车位占用状态的主要内容,如果未能解决你的问题,请参考以下文章