基于机器视觉与RFID智能引导停车场①
2017-07-19范道尔吉贾成果刘晨燕
高 通, 范道尔吉, 贾成果, 刘晨燕
(内蒙古大学电子信息工程学院, 呼和浩特 010021)
基于机器视觉与RFID智能引导停车场①
高 通, 范道尔吉, 贾成果, 刘晨燕
(内蒙古大学电子信息工程学院, 呼和浩特 010021)
随着城市化进程以及人民生活水平的提高, 私家车的数量在近几年不断攀升, 导致出现了大型停车场中找车难、服务差的问题. 这对智能停车场的自动化程度以及服务质量要求越来越高. 传统智能停车场以管理与检测为主, 在车辆引导以及用户服务方面有所缺失. 为此, 本文将在嵌入式平台下, 建立一个基于机器视觉的空位检测, 人性快捷的RFID智能引导, 以及完善管理系统和便民的微信公众服务的现代一体化停车场.
机器视觉; 嵌入式Linux; RFID; 云平台; 车位引导; 图形用户界面
近年来, 随着国家机动车拥有量以及出行率的提高, 以及停车场的复杂化, 导致了停车场的车位统计与寻找车位的难题. 传统的智能停车场已经无法满足用户的人性化体验以及互联网+时代的更高要求. 目前有许多人在研究智能停车场的设计问题, 潘正军提出了基于RFID智能管理系统的设计与实现[1], 郭稳涛的RFID平台实现停车场智能管理的研究[2]. 但是给出的解决方案缺乏完整性与全自动化性, 本系统以图像处理技术与RFID技术为核心, 通过图像处理检测车位可以使用较少的摄像头检测大量区域. 利用RFID进行用户信息记录与人性化的车位引导, 这增加了用户体验与产品的一体化, 实现了检测-登记-引导-计费的全自动化智能停车场. 最后使用微信云平台进行附近停车场车位显示与车位预约, 可以让用户提前了解出行信息, 更适应信息时代的发展.
1 停车场系统架构
1.1 总体设计框图
传统停车场主要在于收费、计费, 但在安全性、运行效率以及人性化服务等方面有待提高, 本文所设计停车场在传统停车场之上增加了自动空位检测, 路径引导以及云服务. 为了增强本文说服力, 笔者模拟停车场的实验环境, 在基于Linux的Cortex-A8处理器的嵌入式平台上建立前台管理系统, 使用Qt图形界面作为管理界面, 用户进入停车场将用户信息以及车位信息写入RFID标签, 同时记录在A8中的Sqlite数据库中, 当用户经过停车场岔路口时, 路边的基于Linux的S3C2440处理器为核心的引导牌将通过车内RFID. 标签的位置信息, 通过路径引导算法将用户引导到合适车位, 用户离开停车场时, 前台管理系统将通过Sqlite记录的信息进行自动结算, 完成快捷的计费功能,在高峰期时, 用户可以关注停车场的微信公众号, 里面有停车场空位信息的实时显示, 方便用户的出行.
图1 系统总体框图
1.2 停车场入口管理系统
智能停车场的前台管理系统在保留传统停车场的所有功能前提下, 增加更智能化的收费计费服务, 本系统在用户进入停车场时将空闲的车位信息记录到RFID标签, 并将标签信息、车位信息当前时间写入到数据库中, 系统采用‘一车一卡一位’的方式, 将所有信息建立在一个数据平台上, 将各个子系统统一为一个完整的智能停车场管理系统.
该系统的特点如下:
1. 空位检测准确, 信息更新及时
2. RFID透明计费, 使用安全放心
3. 图形界面方便快捷
4. GPRS上传信息至云平台
入口管理系统结构如图2所示. 停车场管理系统分为四个部分进行设计: 利用RFID标签记录用户信息;利用图像处理检测空位信息; 利用GPRS提供云服务;利用图形界面方便软件操作. 进行模块化划分有利于将一个复杂的问题简单化, 并且利于调试, 可以更高效的分析问题.
1.3 入口管理系统实验界面
Qt图形界面管理平台是协调其余几个程序的核心,是项目成功的关键, 软件界面如图3所示.
图2 停车场入口管理系统
图3 前台管理界面
图3界面是前台管理系统的图形界面, 左侧是经过OpenCV图像处理的空位信息显示图, 右侧有三个文本框, 第一个为用户离开停车场的消费信息, 第二个为进入停车场的位置分配信息, 第三个为用户进入停车场的写卡成功提示框. 下方的三个按键完成: 写卡、 读卡、 结算三个核心功能.
在数据库的选择上经过了慎重考虑, 目前较为流行的数据库有DB2, sql server, MySql等, 但是这些数据库都较为庞大, 不适合嵌入式平台下使用, 只能采用轻量级数据库, 鉴于Sqlite数据库, 麻雀虽小, 五脏俱全,其速度甚至快于MySql, 又与Qt支持的很好, 编译后大小为2 MB, 很适合在嵌入式平台下使用.
通过这一软件管理平台可以实现停车场一系列复杂的管理, 为停车场一体化服务提供了保障.
2 基于机器视觉的空位检测
2.1 空位检测概述
停车场智能管理[3]中重要的一项就是自动空位检测, 在停车场环境中空位检测可以使用超声波传感器,压力传感器等方式, 相比之下使用图像处理的方式可以在较少数量的摄像头检测到大量车位信息, 并可以在空位检测的同时加强停车场的安全保障, 比如进行可疑人员监测等.
本系统通过摄像头采集图像信息, 通过图像处理的方式进行空位判断, 硬件层面本系统使用Cortex-A8嵌入式平台, 算法使用了强大的计算机视觉库OpenCV(Open Source Computer Vision Labrary), 这是一个基于开源发行的跨平台计算机视觉库[4]. 它实现了图像处理和计算机视觉方面的很多通用算法, 已成为计算机视觉领域最有力的研究工具之一[5].
本文提出的基于图像处理的空位检测技术主要工作包括以下几点:
1. 获取停车场各停车位没有车辆停放时的图像;
2. 在嵌入式平台上获取来自摄像头的图像, 并进行图像预处理: 对图像进行滤波去噪, 并将图像由RGB图像转成灰度图;
3. 图像特征提取: 将获取的停车场灰度图根据停车位的所在位置进行准确标记, 截取停车位所在区域,根据车辆丰富的线条状信息, 提取车辆轮廓, 并和没有车辆停放时的停车场的相同位置图像进行比较, 设定阈值, 若比较结果大于此值, 则认为此停车位有车辆停放. 根据图像处理结果, 对车位车辆停放信息和停车位位置进行标记, 并将统计信息发送给入口处的管理系统.
2.2 空位检测算法
2.2.1 图像预处理
利用一些相关的图像处理技术, 对图像进行滤波去噪, 并灰度化, 以便后面更好的提取车辆轮廓信息.本系统所用摄像头性能较差, 在视频图像快速过渡时,容易产生脉冲噪声(椒盐噪声), 因此采用中值滤波器,滤波后效果见图4.
图4 中值滤波
随后, 将滤波后的图片进行灰度化, 然后进行特征提取, 特征提取是空位检测的关键技术, 是在前面灰度图的基础上对图像中车位所在区域进行处理, 主要包括车位位置标定、目标前景检测、图像阈值化、图像形态学运算、图像轮廓查找、图像轮廓面积计算等工作.
停车位位置标定是确定各停车位在此图像中的具体像素坐标, 本文考虑到摄像头安装以后位置不变的特点, 第一次确定停车位像素坐标时采用人工计算的方法, 将计算出来的停车位像素坐标存放在一个二维数组中, 在后面的处理中, 利用OpenCV视觉库提供的ROI区域设定来标记此停车位, 这样以后的每次处理中就会在图像中只针对此区域进行处理, 大大减少了处理数据量, 节省了时间. 目标区域标记效果如图5所示.
图5 目标区域标定
2.2.2 目标前景检测
目标前景检测的目的是判断之前标定的停车位内有没有车辆停放. 具体做法是将此停车位图像和最初没有车辆停放的图像中此停车位的区域像素做绝对值减法, 这样像素相同的区域的像素值将变成0, 而车辆停放区域会有不同的像素值, 从而确定是否有车辆停放. 前景检测结果见图6, 图中依次分别代表有车辆停放的情况以及没有车辆停放的原始图片信息. 第三幅图中灰色区域为检测出来的车辆轮廓信息.
图6 目标前景检测
将前面做完前景检测的图像进行二值化. 随后对目标进行形态学处理, 最基本的形态学处理包括图像腐蚀和图像膨胀, 可以简化图像数据, 保持轮廓基本数据形状特性, 并去除不相关的结构. 本文采用闭运算对检测到的车辆轮廓进行形态学处理, 图像形态学处理效果见图7.
2.2.3 特征生成与模式分类
轮廓查找的目的是将前面形态学处理后的车辆轮廓进行像素坐标标记[6], 将轮廓的坐标信息保存在一个轮廓树里面(在OpenCV中是一个指向CvSeq的指针, 这个指针会自动指向轮廓树的首地址). 轮廓树里面实际是保存了一系列的点坐标, 这些点就是轮廓在图像中的曲线的点的坐标. 由于有些车辆的颜色和停车位地面比较接近, 所以处理后的图像会有部分区域被判断为地面, 就会出现局部呈现“空洞”的状态(但这并不会影响车辆总体轮廓的判断), 所以这里只提取最外面轮廓.
图7 形态学闭操作
轮廓面积计算是在前面查找到的轮廓的基础上,计算此轮廓的像素面积. OpenCV中使用contourArea这个函数实现轮廓面积的计算. 将轮廓曲线的坐标值输入, 将计算出此轮廓内所有像素点的数量. 此轮廓大小即为车位特征, 随后进行分类器的设计, 对于车位信息,只有两个模式类, 即空闲与非空闲, 设定合适阈值, 若计算出来的轮廓面积除以此车位的总面积的结果大于此值, 则认为此车位有车辆停放, 若小于该值(可能是有垃圾或者车辆正在进入/驶出), 则认为此车位没有车辆停放, 由于本应用中每隔5秒检测一次, 对于正在进入/驶出的车辆, 可以大大降低被误判的概率.
整体的设计流程图见图8, OpenCV具有优秀的执行速度, 拥有很强的实际应用能力, 在实际中可以通过将摄像头安装于云台之上, 让一个摄像头采集大量区域的空位信息, 从而降低成本.
图8 空位检测流程图
最后, 通过上述图像处理技术判断出空位信息, 将空位统计信息(空位所在区域、空位号等)传送给入口管理系统, 管理系统就可以按照空位信息进行车位分配.
3 基于RFID的路径引导
3.1 RFID技术概述
RFID即射频识别技术, 这是现在较为流行的通信技术, 它通过射频信号经过一系列握手识别特定目标然后读写相关数据, 而不需要进行直接接触. 其工作框图如图9所示.
图9 RFID工作框图
RFID系统工作时先有阅读器通过天线发送一定频率的射频信号, 标签接收到射频信号后回传信息给阅读器, 无源标签利用阅读器提供的电磁能, 被阅读器激活后将内部的EPC编码及用户区信息发送给阅读器,有源标签内部有电池, 可以利用自身能量将信息发送给阅读器, 识别距离较远. 计算机可以对阅读器进行一系列控制来间接控制标签.
3.2 系统需求分析
本设计从RFID的特性出发, 建立模型, RFID无源标签的识别距离最大可为10米, 若进一步设计阅读器的天线, 调整其主瓣宽度, 天线增益, 方性函数, 可让其对固定方位的目标进行远距离识别, 车身多为金属, 但驾驶员左侧的车窗为绝缘体, 适合电磁波的传输, 将停车场的阅读器放在驾驶员的左侧, 在阅读器后面几米出可以放置显示屏幕进行车辆引导.
设计简图见图10, 图中当车辆进入岔路口时, RFID阅读器读取驾驶员的标签信息, 通过快速查询数据库,找到与之匹配的位置坐标, 并对该位置与当前岔路口所在位置进行比对, 将路径引导提示信息显示到LCD显示器上, 驾驶员获得路径信息, 可以更方便的寻找车位.
图10 车位引导示意图
3.3 路径引导算法的实现
本设计的核心在于如何快速有效进行路径引导,因此必须具备轻量级算法的特点, 该算法将停车场的平面图建立坐标系(100*100), 每个车位, 岔路口均为一个坐标值. 把车位坐标与岔路口坐标做差, 得到车位处于岔路口的什么位置, 如果x坐标差小于10, 会提示”在您的左侧或右侧, 请注意”, 如果y坐标差小于10, 会提示”前行一小段距离”, 然后根据驾驶员RFID中记录的车位信息与提示语句进行组合, 形成人性化的提示语句, 在LCD屏幕上进行显示. 这样, 在实际进行停车场引导的时候, 每个引导牌只需要一个岔路口坐标值, 就可以利用此坐标对全部车辆进行指引. 数据库需要建立了坐标信息表, 表中记录了所有车位的坐标值. 路径引导算法步骤见图11.
同时为了在驾驶员离开岔路口之前引导信息已经显示在LCD屏幕上, 可以将阅读器放在岔路口前方, 这样可以预先感知车辆的到来, 数据库索引使用Hashtable这样可以强化执行效率.
QT程序实现路径引导的关键代码如下所示:
图11 路径引导算法
图12 软件设计流程
3.4 路径引导实验设计
本系统的主控平台为ARM9, 型号为S3C2440, 将ARM9移植了Linux操作系统, 并安装了Sqlite数据库与QTE4.7. 阅读器通过串口与ARM9进行连接, 通过扩展串口驱动, 获得串口操作的系统调用, ARM9可以通过高速运算实时检测周围的标签. RFID有固定的指令帧格式, 包括命令帧, 响应帧, 通知帧. 按照一定的逻辑顺序发送指令, 当监测到标签时, 发送select指令, 锁定标签的EPC编码, 然后进一步发送读卡指令获得指定用户区的信息. 这时, 将用户区编码写入Linux共享内存[7],共享内存是不同进程间通信的常用办法, 来协调程序的进行. 最后Qt图形化程序检测到共享内存中的数据显示不同的图像进行引路[8].
路径导向标识牌放在进入停车场的岔路口, 让RFID阅读器实时监测过往车辆, 当发现过往车辆到来时, 连接ARM9的显示器显示正确的引导信息. 软件设计流程如图12所示.
路径引导算法可以将基础语句按照不同的车位坐标进行组合, 实现了人性化提示语句, 完成了引导的工作[9], 这么做的优点是让驾驶员体验宾至如归的感觉,较之传统的停车场, 给用户更加温馨的体验. 硬件效果见图13.
图13 引路牌硬件效果图
4 基于云平台的微信公众服务
4.1 智能停车场的云服务概述
近年来随着网络技术的快速发展, 以及互联网的大范围普及, 网上冲浪, 网上购物已经成为当代居民不可缺少的生活方式[10]. 云计算(cloud computing)是以互联网为基础的相关服务的使用, 增加, 交付模式, 一般涉及通过互联网来提供动虚拟的易扩展资源.
智能停车场的微信公众服务可以让用户在任意时间、任意地点了解停车场的空位情况, 并进行位置预约等相关服务, 同时它也可以将多个智能停车场互联形成一个整体, 可以获取用户地理位置推荐最近距离停车场, 对停车场的整体发展以及用户的快捷服务有巨大贡献.
4.2 软件设计与实现
本系统将使用云服务器来作为后台服务器, 接收停车场空位信息, 以及将空位信息实时传达给用户[11].使用PHP的套接字与GPRS远程通信. 将远程的Cortex-A8处理器发送过来的空位信息保存在MySql数据库中,并将之显示在网页中. 软件设计流程如图14所示.
图14 软件设计流程图
公众号界面见图15. 界面中红色代表位置被占用,绿色代表空闲. PHP程序通过GPRS每10s传过来的数据进行解析获得有效数据, 并将之存放在MySql数据库中. 同时PHP搭配HTML完成网页显示的功能. PHP查询数据库, 并将颜色变量传给HTML, HTML根据变量的值显示车位信息. 选择微信公众号可以方便用户, 同时可以便于用户意见反馈, 更容易实现用户与开发者的互动, 形成良性循环[12].
图15 微信公众号界面
5 结语
现有智能停车场在重点在于车位检测与用户管理,但缺乏用户的人性化体验. 本设计针对目前国内停车场车位引导系统功能的缺失, 所引起车主寻找车位难和找车难的问题, 提出了一种适用大型停车场的智能停车场管理系统解决方案. 采用了机器视觉的空位检测技术, 人性化的车辆引导系统, 以及便民的微信公众服务, 完成了一体化的现代化智能停车场雏形, 其所采用的RFID智能引导可以使管理与引导合二为一, 给用户更加温馨的使用体验, 这可以为智能停车场的发展起到启迪与引导作用.
1潘正军, 张屹. 基于RFID的智能停车场管理系统设计与实现. 电脑知识与技术, 2015, 11(14): 234–236, 251.
2郭稳涛, 何怡刚. RFID平台实现停车场智能管理的研究.自动化仪表, 2010, 31(11): 34–37. [doi: 10.3969/j.issn.1000-0380.2010.11.011]
3Teodorović D, Lučić P. Intelligent parking systems.European Journal of Operational Research, 2006, 175(3):1666–1681. [doi: 10.1016/j.ejor.2005.02.033]
4Yan GJ, Yang WM, Rawat DB, et al. SmartParking: A secure and intelligent parking system. IEEE Intelligent Transportation Systems Magazine, 2011, 3(1): 18–30. [doi:10.1109/MITS.2011.940473]
5罗超. 走进智慧新时代——2015年我国停车场市场调查.CPSE第十五届安博会. 深圳, 中国. 2015. 136–137.
6王月雅. 2012年中国停车场管理系统市场规模分析及发展预测. 中国安防, 2013, (8): 73–79.
7唐辉. 基于RFID的智能停车场管理系统关键技术研究[硕士学位论文]. 武汉: 武汉理工大学, 2008: 30–40.
8毛星云, 冷雪飞. OpenCV3编程入门. 北京: 电子工业出版社, 2015: 93–95.
9许信顺, 贾智平. 嵌入式Linux应用编程. 北京: 机械工业出版社, 2007.
10高聚银. 基于云平台的智能家居系统设计与实现[硕士学位论文]. 哈尔滨: 哈尔滨工业大学, 2013: 10–20.
11Jang BT, Kim DH, Yoo JJ, et al. Intelligent parking guidance apparatus and method: US, US7825827B2. 2010-11-02.
12Yan GJ, Olariu S, Weigle MC, et al. SmartParking: A secure and intelligent parking system using NOTICE. Proc. of the 11th International IEEE Conference on Intelligent Transportation Systems. Beijing, China. 2008. 18–30.
Parking Lot Based on Machine Vision and RFID Intelligent Guidance
GAO Tong, FAN Dao-Er-Ji, JIA Cheng-Guo, LIU Chen-Yan
(Department of Electronic Engineering, College of Electronic Information Engineering, NeiMongol University, Hohhot 010021, China)
With the urbanization and the improvement of people’s living standards, the number of private cars in recent years has been increasing. It is difficult to find cars in parking lots, and the service is poor, which poses more demands on the automation of the intelligent parking lots and the service quality. Mainly serving for management and testing functions, traditional intelligent parking lots are inadequate in the vehicle guidance and customer service. To this end, this article builds an intelligent parking lot in embedded platform, which offers machine vision-based space detection, human intelligent RFID smart guide, and a complete management system and convenient WeChat public services.
machine vision; embedded Linux; RFID; cloud platform; parking guidance; GUI
高通,范道尔吉,贾成果,刘晨燕.基于机器视觉与RFID智能引导停车场.计算机系统应用,2017,26(7):71–77. http://www.c-sa.org.cn/1003-3254/5825.html
2016-10-14; 收到修改稿时间: 2016-11-21