直方图比较法识别车位占用状态

1,           车位占用状态识别原理

灰度直方图是灰度级的函数,描述图像中该灰度级的像素个数(或该灰度级像素出现的频率):其横坐标是灰度级,纵坐标表示图像中该灰度级出现的个数(频率)。一维直方图的结构表示为:

直方图可以用来描述不同的参数和事物,如物体的色彩分布,物体的边缘梯度模版以及目标位置的当前假设的概率分布。如下图左侧为彩色图像,右图为其灰度直方图。

不同图像的直方图形态不同,因此可用于比较图像是否变化,以及变化的幅度大小。个人理解,直方图比较存在以下优势:

2        抗抖动。相机如果发生轻微抖动或偏转,不会大幅改变图片直方图的整体分布形态,因此可不必重新校准模板。

2        简单易行。不需要较复杂的机器学习,只需一幅模板图片,就可以判断当前场景是否发生明显变化。

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 测试样本

2        16个空车位图片作为车位空闲的模板。参见图5-1

2        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,           测试小结

本次测试结果较为理想,说明采用图片直方图比较法来判断车位是否被占用具有可行性。以下为参考意见:

2        测试表明无车比对值在0.9以上,有车比对值在0.5以下,因此分水岭较宽,可视实际环境在0.6~0.8之间调整。一般建议设置阈值为0.7.

以下为注意事项:

2        必须注意裁剪区域的设置。一般应尽可能大地包含车辆停放时影响到的所有区域。以降低有车停放时图片与模板的相关性。如此可以降低阈值,降低人员等无关进入车位区域的影响。

2        车位施工后,必须重新设置模板图和裁剪区域。

9,           下一步工作

2        取得更多的现场图片进行测试验证。如水泥地面、光照偏强或偏弱等环境。

2        研究梯形裁剪是否能改善阈值。

2        研究直方图其它算法是否能改善阈值。

2        研究车位设备移动带来的影响,如雪糕桶、车位支架等。

时间: 2024-08-02 22:31:24

直方图比较法识别车位占用状态的相关文章

怎么查看Windows下端口的占用状态

安装apache时,有时会出现端口被占用的情况,这时可以先查看下哪些端口已经被占用了,就可以用这个命令: netstat -an 查看本机的端口占用情况: 如果输入此命令时提示”不是内部命令或者外部命令“等问题,只需要进入到系统的system32文件夹下即可,命令是:cd c:\WINDOWS\system32\ 此时再输入命令即可解决.

车牌识别行业发展趋势

停车场一卡通受到冲击 近几年,停车场车牌识别逐渐发展成熟,对传统的停车场一卡通系统形成巨大的冲击.相对一卡通,车牌识别有着明显的优势: 首先,一卡通管理系统的卡片成本太高,2014年国内汽车销量已超过2300万量,每一辆汽车都有可能配置到至少一张卡片,以一张卡片成本5元计算,那么纯卡片成本就超过上亿元.卡片丢失似乎成了家常便饭,物业.工程商.厂家都在为这种事情不停地售后维护.特别是物业管理者,需要不停地注册.注销.换卡等,耽误了大量的人力和资金成本.免卡的车牌识别系统优势不言而喻. 其次,当计算

NB-IoT和5G两者关系你知道了多少 二者对物联网有什么影响

通讯中的5G,即第五代移动电话行动通信标准,也称第五代搜索移动通信技术.NB-IoT,即基于蜂窝的窄带物联网(Narrow Band Internet of Things, NB-IoT)成为万物互联网络的一个重要分支,很多人并不理解5G和NB-IOT到底存在什么关系,今天我们就来看看5G和NB-IOT的关系. 5G技术带来的绝不仅仅是更快的网速,而是将万物智能互联成为可能其实,而NB-IoT是5G商用的前奏和基础,因此,NB-IoT的演进更加重要,例如支持组播.连续移动性.新的功率等级等等,只

使用嵌入式开发板实现对车位锁控制的流程及程序实现

随着城市化进程的加快,新能源汽车呼之欲出.在笔者所在的城市,力帆和长安等公司都先后推出了可供市民租用的电动汽车.在享受租车所带来的便利的同时,汽车的充电就成了一个难题,在城市道路和停车场安装充电桩成为解决这个问题的一个有效的手段.汽车充电时,需要有一个可用于停靠的车位,并且这个车位只能在汽车充电的时候使用,在其他时间都不能被占用.也就是说,每个充电的车位需要有一个车位锁,当有汽车充电的时候,车位锁打开,否则车位锁关闭. 本文用嵌入式开发板实现了对车位锁开关的控制,可供相关项目的开发人员参考. 一

YOLOv3模型识别车位图片的测试报告(节选)

1,YOLOv3模型简介 YOLO能实现图像或视频中物体的快速识别.在相同的识别类别范围和识别准确率条件下,YOLO识别速度最快. 官网:https://pjreddie.com/darknet/yolo/ 知乎:https://zhuanlan.zhihu.com/p/25236464 YOLO有多种模型,包括V1,V2,V3,其中V3识别准确率最高,但对硬件要求也高.还有tiny模型.也可针对特定识别物体类别进行训练,获得应用需要的专用模型. 本次测试采用V3模型.对实际车场图片进行批量检测

Oracle的直方图

1 直方图的含义 在Oracle数据库中,CBO会默认认为目标列的数据在其最小值LOW_VALUE和最大值HIGH_VALUE之间均匀分布的,并且会按照这个均匀分布原则来计算对目标列施加查询条件后的可选择率以及结果集的Cardinality,进而据此来计算成本值并选择执行计划.但目标列的数据是均匀分布这个原则并不总是正确的,在实际的系统中,我们很容易就能看到一些目标列的数据分布是不均匀的,甚至是极度倾斜.分布极度不均衡的.对这样的列如果还按照均匀分布的原则去计算可选择率与Cardinality,

hiho_1048_状态压缩2

题目大意 用1x2的单元拼接出 NxM的矩形,单元可以横放或者纵放,N < 1000, M <= 5. 求不同的拼接方案总数. 分析 计算机解决问题的基本思路:搜索状态空间.如果采用dfs进行搜索,则可以将当前搜索的位置(i, j)作为状态,而不保存棋盘的占用情况,每次扩展时进行判断是否可行.这样可以得到最后的结果,但当然会超时.     (1) 参考hiho_1048中的提示,可以知道在搜索的时候按照固定的顺序可以大幅度剪枝(通过将无序的搜索变成有序的搜索来实现).然后可以对中间结果进行保存

端口占用问题——netstat命令

1.查看所有的端口占用情况 C:\>netstat -ano 协议 本地地址            外部地址   状态           PID(进程号) TCP 127.0.0.1:1434 0.0.0.0:0 LISTENING 3236 2.查看指定端口的占用情况 C:\>netstat -aon|findstr "9050" 协议 本地地址            外部地址    状态           PID TCP 127.0.0.1:9050 0.0.0.0

hibernate(二)一级缓存和三种状态解析

序言 前一篇文章知道了什么是hibernate,并且创建了第一个hibernate工程,今天就来先谈谈hibernate的一级缓存和它的三种状态,先要对着两个有一个深刻的了解,才能对后面我要讲解的一对多,一对一.多对多这种映射关系更好的理 --WH 一.一级缓存和快照 什么是一级缓存呢? 很简单,每次hibernate跟数据库打交道时,都是通过session来对要操作的对象取得关联,然后在进行操作,那么具体的过程是什么样的呢? 1.首先session将一个对象加入自己的管理范围内,其实也就是把该