分享
基于OpenCV的车位实时检测系统分析_马宁.pdf
下载文档

ID:2250059

大小:366.78KB

页数:4页

格式:PDF

时间:2023-05-04

收藏 分享赚钱
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,汇文网负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
网站客服:3074922707
基于 OpenCV 车位 实时 检测 系统分析 马宁
基于 OpenCV的车位实时检测系统分析马宁(苏州大学,江苏苏州215100)摘要:为了解决我国私家车数量不断增加,停车难的问题,基于 OpenCV 和卷积神经网络,使用霍夫变换等多种算法实现了对车位的检测与统计。通过多次测试表明,该系统准确率达 90%以上,能够在一般设备上流畅运行,且能够实时显示数据,具有较好的适应性,能为停车场管理提供及时有效的分析数据,缓解停车难问题。关键词:OpenCV车位检测卷积神经网络停车难中图分类号:TP274文献标识码:A文章编号:2095-0748(2023)01-0082-031车位检测简介自改革开放以来,我国国民经济不断提高,公民可支配收入也不断提高,对普通家庭来说,汽车不再是遥不可及的奢侈品。越来越多的家庭购买了一辆汽车,条件好的家庭甚至更多。据调查,2003 年,我国私家车拥有量不足 600 万辆;2014 年超过 1 亿辆;2019年底,突破 2 亿辆,达到 2.07 亿辆。汽车的普及固然给民众生活带来了方便,也带来了堵车、停车难、环境污染等问题。当下许多小区、商场、景区都修建了停车场,大部分停车场都使用了自动化停车系统,但费用较高,受环境限制多,难以满足露天停车场的需求,且仍需要人工辅助管理;而一些资金不充裕、车位不充裕或者因环境限制不能安装自动化停车系统的停车场也需要及时统计车位信息,方便游客停车。另一方面,过去十年,我国私家车数量翻了一倍,停车场建设节奏却相对落后。据国家发改委估计:当前缺口已升至 8 000 万个左右。加强停车场建设迫在眉睫,而另一方面,停车场建设费用过高,导致很多中小企业无力承担,其余社会资本也持观望态度,不愿加强投资。“不算利息,静态收回建设成本需 30 多年。”1其中自动化停车系统虽然不是最贵的部分,但若能减少开支,也将减少大量成本,加速停车场建设。因此针对以上需求,开发一种价格低廉、智能、受环境限制小、方便管理的车位实时监测系统迫在眉睫。2开发环境简介2.1Python3 简介Python3 是一种广泛使用的解释性语言,它提供了高效的高级函数功能以及简单强大的面向对象功能。python 语言逻辑清晰,代码简洁,对中文有较好的支持,且内置了多种常用数据类型,拥有大量功能强大的第三方库,如 Numpy、Pandas、OpenCV、Django 等等。经过几代的更新与迭代,Python 功能越来越完善。在 2021 年 10 月,语言流行指数排行榜 Tiobe 将Python 加冕为最受欢迎的编程语言,是 20 年来首次将其置于 Java、C 等老牌编程语言之上,可见其火热程度。本文使用解释器版本为 Python3.7,IDE 为 Py-charm2021。2.2OpenCV简介OpenCV 是一个基于 Apache2.0 发行的机器视觉和机器学习开源库,它具有良好的兼容性,可以运行在 Linux、Windows、Android 和 Mac OS 等多个操作系统上。它整体由 C语言和 C+语言构成,同时提供了Python、Ruby、MATLAB 等编程语言的拓展接口,能够使用多种语言完成开发工作,其内置了大量图像处理和计算机视觉领域的通用算法,可以实现物体识别、人脸识别、动作识别、运动跟踪等多种功能,是图像处理、机器视觉领域重要的软件库2-3。本文使用 OpenCV版本为 4.5.3.56。2.3CNN简介人类的视觉系统在大脑可视皮层是分级处理的,大脑的处理视觉信息的工作过程是一个不断迭代、不断抽象的过程。首先从瞳孔摄入的原始图像开始,再由大脑皮层某些细胞发现物体的边缘和方向;然后由大脑判定眼前物体的大致形状,进行抽象化;接着大脑进一步进行判定物体的属类;最后通过分析出的信息,得出结论。CNN 网络全称卷积神经网络,是受人类视觉神经系统启发而开发出的深度学习模式。它可分为卷积层、池化层和全连接层,其中卷积层用来提取图像中的局部特征;池化层用来大幅降低参数量级;全连接层用来输出结果。卷积神经网络能够较好地处理像素和音视频等有稳定的效果且对数据没有额外的特征工程要求的数据信息,是深度学习的经典算法,被广泛应用于计算机视觉、自然语言处理等领域。3车位检测的设计与实现3.1流程系统设计流程大致可分为预处理,车位划分,CNN收稿日期:2022-04-12作者简介:马宁(2001),男,陕西岐山人,苏州大学电气工程及其自动化专业本科在读。总第 223 期2023 年第 1 期现代工业经济和信息化Modern Industrial Economyand InformationizationTotal 223No.1,2023DOI:10.16525/ki.14-1362/n.2023.01.030技术创新2023 年第 1 期模型构建与训练,车位识别等阶段。预处理阶段将对信息进行处理,只保留其中的有效信息;车位划分阶段将车位提取出来,分别保存作为样本;模型训练阶段将训练二分类模型识别停车位上是否有车;最后对视频的实时监测,并标记空位、统计数量,实时显示。3.2预处理首先导入所需的停车场监控视频,该视频下载自网络,采用该视频的理由是光线充足,样本量大,交通环境相对不复杂,利于设计和训练。视频的本质是一组连续的图像,当图像变化超过 24 帧/s 以上时,根据人眼的视觉暂留原理,会在大脑中产生的连续的画面。因此对于视频的处理的本质就是对图像的处理。又因为视频拍摄机位固定不动,所以对整个视频的车位划分可以简化到对单帧图像的车位划分,大大提升了效率4-5。为了方便后期处理,首先要进行背景过滤,目的是过滤掉图像中无关的背景信息,方便后续的识别,方法是定义掩模,设置最大阈值和最小阈值,将阈值区间外的信息转化为零值信息。第二步要进行二值化处理,将图像转化为灰度图。这是因为灰度图只保留了亮度信息,省略了大量无关信息,有效降低了后期运算量。第三步进行 Canny边缘检测,该方法分为四个步骤:高斯滤波、计算梯度值和梯度方向、过滤非最大值、双阈值检测法。它可以有效确定真实的和潜在的边缘,能够较好地检测出大部分所需边界6。因为停车场的边界不规则,外部的楼顶、道路信息不属于停车场范围,需要过滤掉,所以第四步需要沿停车场路径设置 8 个节点,用来框选停车场的图像,使用零点信息图像覆盖掉不需要的部分,仅保留停车场区域。至此预处理阶段的工作就完成了。见图1、图 2。3.3车位划分通过观察可以发现,停车场车位由横竖不同的直线构成,可以通过检测这些直线,进一步划分区域。方法是使用霍夫变换,霍夫变换是一种广泛应用在计算机视觉的一种特征检测算法,用来找出图形中的某些特征,霍夫变换通过给定的要辨别的形状的种类,接着在参数空间中通过投票机制来决定物体的形状,并过滤掉间隔过大或过小的物体,来获取到较为准确的结果。图像中某些裂痕或其他线段可能会被误认为车位线,而车位线基本呈竖直或水平方向,可以通过计算线段斜率来进一步剔除不合规的线段,提高准确率。接着对停车位进行区域划分,通过观察可以发现,停车场的车位可分为 17 列,可以将相近横坐标的车位线分类到同一集合,再按纵坐标将各个集合中的车位线从下到上进行排序,并通过哈希算法判断是否出现重复的线段,若出现则将其剔除。这样做的目的是后续处理时,对整个停车场的处理可以看做对 17个区域的单独处理,更方便模型训练和数量统计。但是此时算法获得的车位线集合仍然不够理想,这是因为部分车辆遮挡线段,造成霍夫变换识别不准确。为了解决这一问题,需要将各个车位线集合的横线长度统一取其众数,并将所有线段的起始横坐标点设为各个车位线集合的最左值,接着将单个车位线集合中所有的竖线合并成同一条竖线。这样划分的车位就更加准确和统一。可以看到划分的结果基本符合预期,接着将获得的车位坐标信息写入 pickle 文件,用以保存。最后按划分好的车位线集合裁切车位,由于图像像素值过小,所以在保存前需要将其进行放大操作,最后保存到测试集文件夹中,用作下一步的模型训练与测试中。见下页图 3。3.4CNN网络训练获得车位图像后将其按照 70%、30%的比例划分为训练集、测试集,再将其按照有无车辆占据车位分别划分为占据集和非占据集,用于后续模型训练。本次模型训练使用 VGG16 网络,VGGNet 是牛津大学和谷歌 DeepMind 于 2014 年合作研发的神经网络,由 13 层卷积层+3 层全连接层而组成。卷积层是图 1原始图像图 2预处理结果马宁:基于 OpenCV的车位实时检测系统分析83现代工业经济和信息化第 13 卷图 3车位划分结果卷积神经网络的核心,卷积过程本质是基于一个小矩阵,也就是卷积核,在图像的每层像素矩阵上不断按步长扫描过去,扫到的数值与卷积核对应位置的数相乘,然后相加求和,全部扫完就会生成一个新的矩阵。卷积核相当于一个过滤器,用于提取图像特征,卷积核一般有 3*3 和 5*5 大小,通常使用是 3*3 大小的,训练效果更好。全连接层指的是第 n-1 层和第 n 层的各个节点之间都有连接,即第 n 层的节点的激活函数输入是第 n-1 层所有节点的加权,用来把前边提取到的特征综合起来。在整个卷积神经网络中起到“分类器”的作用。由于数据集规模较小,为了得到较好的模型,第三步进行数据增强操作。数据增强按照使用方法可分为线上增强和线下增强,其中线下增强适用于规模较小的数据集,能够有效增加其的大小。增强的倍数取决于转换图片的个数,比如对所有图片进行旋转操作,将使数据集增加一倍。常用的数据增强有两种,有监督和无监督,常用的是有监督数据增强型,它是基于现有的数据集,通过分析数据的完备性,采用一定的规则对现有数据进行扩充。有监督数据增强又可以细分为单样本数据增强和多样本数据增强,在实际应用中,单样本数据增强使用更多。最后将训练集的数据导入模型,进行训练。所有程序运行完成后得到的测试集的准确率达 91.4%,准确 率基 本 符 合 预 期。后 续 可 以 将 VCC16 改 为ResNet50,以进一步提高准确率,但 ResNet50 的训练速度相较 VCC16 较慢,从效率角度考虑,最终选择了VCC16。最后将训练好的模型保存,用于下一步操作。3.5基于视频的车位检测首先导入视频,将视频逐帧提取,并对逐帧画面用已经训练好的模型进行测试。并对每帧的车辆数据进行统计,在视频左上角显示车位总数和剩余空位。此时视频较为卡顿,可以在后续优化中使用多线程或多 GPU进行处理,提高速度。见图 4。4结果程序会对视频进行实时处理和检测,视频中未被占据的车位都被标记为绿色,被占据的车位没有任何标记,通过对绿色矩形的计数,在左上角实时显示车位总数和剩余车位。此时视频某些时段对某些区域出现了误标记,比如将停车场的引导线区域被标记为空停车位,或者将帐篷标记为占用车位。可以通过修改CNN 模型进一步改善。其余区域的检测和统计基本符合预期,当车辆离开车位,视频中便以绿色进行标记,同时空位加一;当车辆进入车位,视频的绿色标记便消失,同时空位减一。实现了对停车位信息的处理和检测。5结语通过对 OpenCV 和卷积神经网络实现了对停车场车位的占用情况进行了实时监测和统计,可以部署到较为开阔的停车场,方便管理。此外,该系统还可以进一步优化,以提高速度,适应更复杂的场景,从而为停车场管理提供更加有效、及时的数据。参考文献1人民日报.停车场建设需要再发力(深度观察)N,2020-7-8.2周亚凌.基于 OpenCV的交通车流量检测系统D.北京:北京邮电大学,2015.3张铭璐,何小东.基于 OpenCV的车流量统计算法的研究J.电脑知识与技术,2016,12(19):169-170.4冯云鹏,张娜,马融.使用 OpenCV 技术实现的交通检测系统J.计算机系统应用,2011,20(5):105-108;121.5庄一玮.基于机器视觉的车位状态检测研究D.西安:长安大学,2017.6赵明瑞.基于机器视觉的停车场车位状态检测方法研究D.沈阳:沈阳建筑大学,2021.(编辑:赵婧)(下转第 89 页)图 4车位检测结果842023 年第 1

此文档下载收益归作者所有

下载文档
你可能关注的文档
收起
展开