[0068] 以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
[0069] 其中,附图仅用于示例性说明,表示的仅是示意图,而非实物图,不能理解为对本发明的限制;为了更好地说明本发明的实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;对本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。
[0070] 本发明实施例的附图中相同或相似的标号对应相同或相似的部件;在本发明的描述中,需要理解的是,若有术语“上”、“下”、“左”、“右”、“前”、“后”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此附图中描述位置关系的用语仅用于示例性说明,不能理解为对本发明的限制,对于本领域的普通技术人员而言,可以根据具体情况理解上述术语的具体含义。
[0071] 如图1所示为本发明的用于在室内停车场的车辆定位方法的流程图。所述方法包括:
[0072] (1)位置标定:建立停车场的三维世界坐标系,对停车场内的车库编号做位置标定,并存储每个车位编号的三维世界坐标,记为大写字母加w下标,如Xw;制作停车场的电子地图,标记车位编号在二维地图坐标系下的二维坐标,记为小写字母,比如x。
[0073] (2)图像采集:利用汽车上的车载摄像头拍摄周围的车库图片,可以是前方的车载记录仪获取前方柱子或者墙上的车位号标记,也可以两边的摄像头可以获取到地上的车位号信息。
[0074] (3)编号识别:对采集到的图像进行处理,选择有效的四个车位编号图像分割和识别。
[0075] 所述编号识别方法流程如图2所示,其中包括如下步骤:
[0076] ①图像预处理:对图像去噪,二值化和形态学操作处理。在具体实施方式中,可以高斯模糊来降低噪声,开操作和加权来强化对比度,二值化和Canny边缘检测来找到物体轮廓,用先闭后开操作找到整块的矩形位置;
[0077] ②有效区定位:基于颜色特征、几何特征和纹理特征综合检测图片中的车位编号位置,符合特征的若干区域作为候选区,选择轮廓尺寸较大的几个作为有效位置区域,也就是距离最近的几个车位编号位置,然后将其从图像中分离出来。在具体实施方式中,可以用传统特征提取方法,根据车位编号的颜色、几何、纹理特征做检测获得候选区:颜色特征可以是深色底浅色字和浅色底深色字两种组合,几何特征可以是矩形或者四边形,纹理特征可以是一位字母加三位数字的规则排列独特纹理特征;也可以使用深度网络的方法,自己标定数据集训练目标检测网络(Yolo或者其他)实现自动提取特征获得候选区,考虑到深度学习的方法有更好的鲁棒性这里选择训练深度网络的方法获得候选区。对得到的候选区做进一步分析、评判,将候选区轮廓以及宽高比做筛选得到有效区,并选择面积较大的几个区域做识别。具体的流程是:首先根据采集的车位编号图片做标记使用名为LabelImg的程序制作数据集,并训练网络,然后使用训练好的网络识别采集的图片,得到框出候选区的图像,然后对候选区做筛选选择有效区,这里设定4个区域作为有效区便于之后的位置解算,最后就是将选定的4个有效区从图片分割出来;
[0078] ③字符分割:将多个有效区同步处理进行字符分割,分割得到单个字符图像。具体的实施方案是,字符分割可以使用垂直投影和水平投影结合法,利用二值化图片的像素分布直方图直方图的波峰波谷分析,找出相邻字符的分界点进行分割,也可以选择连通域分割法,寻找连续有文字的块,若长度大于某阈值则认为该块有两个字符组成,需要分割。其中以连通域分割法为例,具体实施流程是首先进行灰度化操作,然后使用Canny算子边缘检测并膨胀,再使用skimage.measure模块中标记连通区域的方法实现字符分割,最后提取出单个字符图像用于识别;
[0079] ④字符识别:识别得到的单个字符字符图像,将结果组合,实现车位编号识别任务。具体的实施方法是,可以选择基于模板匹配算法,首先将分割后的字符二值化并将其尺寸大小缩放为字符数据库中模板的大小,然后与所有的模板进行匹配,选择最佳匹配作为结果;也可以选择基于机器学习算法——支持向量机(SupportVector Machine,SVM)的分类算法,训练两个SVM分类器,一个SVM用来识别大写字母(如B),另一个SVM用来识别数字;也可以选择基于深度神经网络的方法,把图像输入网络,由网络自动实现特征提取直至识别出结果。以卷积神经网络(CNN)的方法为例,具体实施流程是首先用数字和字母图片数据集训练一个CNN并保存权重数据,然后使用该网络去识别分割后的每个字符图像,将结果存储在数组中输出即得到完整得编号。
[0080] (4)位置解算:将识别的车库编号传给存储器,读取相应的二维地图坐标和三维世界坐标,根据几何投影算法得到摄像机的位置,也就是汽车的位置,从而实现定位,位置解算算法的流程如图3。所述的几何投影算法,是根据得到的多个点的三维世界坐标和二维图像坐标得到相机的三维位置坐标的算法,具体实施流程是:
[0081] ①读取多个车位编号的二维地图坐标(记为点集R={r1,r2,...,rn})和三维世界坐标(记为点集Pw={pw1,pw2,...,pwn});
[0082] ②根据点集Pw中多点的空间坐标利用距离公式计算得任意两点之间的空间距离,根据对应的二维坐标r和余弦定理以及三角形相似定理计算得任意两点与相机光心夹角的余弦值;
[0083] ③根据小孔成像模型和余弦定理构造约束方程,参数求解计算得多个点在当前相机坐标系下的三维坐标(记为点集Qc={qc1,qc2,...,qcn});
[0084] ④根据多点世界坐标系下的三维坐标点(Pw)和当前相机坐标系下的三维坐标(Qc),利用SVD算法,求解如下公式得到相机旋转矩阵R和平移向量t;
[0085]*
[0086] t=μq‑Rμp其中
[0087] ⑤根据如下公式求得相机在世界坐标下的坐标位置(记为Ow)。
[0088] Ow=‑R‑1t
[0089] 如图4所示为本发明提出的一种停车场管理系统功能模块图,该系统包括停车场云服务中心和车载终端两部分。其特征在于:所述云服务中心包括数据存储模块、通信模块、连接管理模块、入库管理模块、出库管理模块、车位管理模块、定位模块、导航模块、空车位查找模块;车载终端包括通信模块,地图处理显示模块,图像采集识别模块。其中数据存储和计算是基于云的云计算和云存储,可以支持多终端的云交互操作,将一定区域的(城市区域)的所有停车场电子云地图进行汇总,提供接口支持车载地图或者百度高德地图的访问;通信模块是与其他接口通讯模块,比如服务中心的通信模块要与地图接口、车载移动终端、手机端终端程序等通讯,车载通讯模块要和服务中心,手机等的信息交互;连接管理模块是用来处理外来系统发来的各种请求来保证系统的安全性,比如连接停车场地图请求,汽车入库请求,出库请求等,对连接进行安全性认证,然后转接给相应的功能模块;定位模块是根据上述提出的定位方法实现车辆的定位,提供给导航模块导航;导航模块是对接收每帧图的定位处理,结合该停车场的电子地图,在地图上描点标记当前位置,实现汽车跟踪;出/入库管理模块是负责汽车驶出/入停车场的任务调度,通过调用其他功能模块实现出/入库任务;车位管理模块是记录车位的使用与空闲状态,具体的,根据入库的停车请求将相应车位表示已停车,根据出库请求,将相应车位表示空闲;空车位查找模块负责查找空车位任务,具体是通过查找存储模块中车位数据找到空闲的车位,其中在入库和车端发出找空车位请求回被调用;车载终端的地图处理显示模块负责将接收到的地图数据进行处理,显示到汽车的显示屏上;图像采集识别模块是调用摄像头采集车身周围的图像信息,然后根据所述的识别方法识别周围的车位编号情况在上传给服务中心。
[0090] 所述停车场管理系统可以实现在室内环境下车辆的定位和导航功能,以及车辆进出停车场导航地图切换和位置快恢复功能,此外,该系统还支持反向寻车功能,即通过手机向云服务器发出寻车请求,根据手机所匹配的汽车,找到相应的车位编号,调用手机摄像头进行定位和导航,从而找到车位。
[0091] 为了更好的应用本发明,需要的基础工作有,首先针对当前区域的停车场制作数字化地图,建立停车场的三维世界坐标系,对停车场内的车库编号做位置标定,并存储每个车位编号的三维世界坐标,记为点集Pw={pw1,pw2,...,pwn};制作停车场的电子地图,标记并存储车位编号在二维地图坐标系下的二维坐标,记为点集R={r1,r2,...,rn}。并且将停车场的地图接口提供给服务中心,使得服务中心能够调用停车场数据。
[0092] 当车牌号为渝A12345的乘用车有停车需求时,向服务中心发送停车请求,搜索附近停车场空位情况并选择最近且有空闲车位的停车场;汽车到达停车场入口,进行车辆导航入库任务,流程如图5所示:
[0093] (1)汽车向服务中心发出停车请求,包括车辆身份(外来暂停车辆)、当前位置以及入库请求;
[0094] (2)停车场服务中心通信模块接收步骤(1)的汽车用户请求进行连接管理,确认后将车辆身份和位置信息转发给入库管理模块,将停车场的电子地图传给车端并为其推荐车位,车端加载停车场电子地图,通过地图处理显示模块处理进而在电子屏展示给司机;
[0095] (3)入库管理模块将车辆信息传给数据存储模块,并向车端发送定位请求,车端调用图像采集识别模块,采集环境的图像,对其根据所述的识别算法进行车位编号的识别:具体步骤是首先用检测网络得到候选区的图像,然后选择4个有效区分割出来;然后对4个有效区同步处理,进行灰度化操作,使用Canny算子边缘检测并膨胀,再使用skimage.measure模块中标记连通区域的方法实现字符分割并提取出单个字符图像用于识别;最后是使用训练好的cnn识别字符,将结果存储在数组中输出得到完整的车位编号;
[0096] (4)车端图像采集识别模块重复读取图像序列,直到识别到有效的四个车位编号;
[0097] (5)将编号信息传给服务中心的定位模块,其根据多个车位编号,读取相应的3D世界坐标和2D图像坐标计算当前位置;具体步骤是将识别的四个车库编号传给存储器,读取相应的二维地图坐标(记为点集{r1,r2r3,r4})和三维世界坐标(记为点集{pw1,pw2,pw3,pw4}),根据点集中多点的空间坐标利用距离公式计算得任意两点之间的空间距离,根据对应的二维坐标r和余弦定理以及三角形相似定理计算得任意两点与相机光心夹角的余弦值;根据小孔成像模型和余弦定理构造约束方程,参数求解计算得多个点在当前相机坐标系下的三维坐标(记为点集{qc1,qc2,qc3,qc4});根据多点世界坐标系下的三维坐标点(Pw)和当前相机坐标系下的三维坐标(Qc),利用SVD算法,求解得到相机旋转矩阵R和平移向量t;‑1
然后根据公式Ow=‑R t求得相机在世界坐标下的坐标位置(记为Ow),即求得汽车当前的位置坐标;
[0098] (6)定位模块将当前位置发送给导航模块,其根据当前位置,以及推荐车位的位置形成路径规划,将位置和路径传给汽车,显示在电子地图;
[0099] (7)重复定位和导航行驶直到汽车到达目标位置;
[0100] (8)若目标位置车位空闲,则结束导航任务;否则,车端发送找空闲车位请求,服务中心调用空车位查找模块,找到最近的空闲车位并将编号和位置发送给导航模块;
[0101] (9)重复(8)生成导航路径,结合定位功能对汽车导航行驶直到找到空闲车位;
[0102] (10)车端发送确认停车请求,并将车位信息(车牌号和停车位编号)传给服务中心,车位管理模块更新对应的车位状态为占用,且对应的车牌号是渝A12345,入库任务结束。
[0103] 因此顺利为汽车找到了停车位。随后车主也可以通过手机找到自己的汽车,具体流程类似车辆的导航,调用手机的摄像头,通过上述的车位编号识别方法识别当前环境的编号信息找到有效的四个编号发送给服务中心来结算位置,并调用导航模块指挥车主找到汽车。随后便是汽车要离开停车场,图6所示即车辆驶出停车场导航出库任务的流程图:
[0104] (1)汽车端向服务中心发送出库请求,服务中心处理请求,调用出库管理模块;
[0105] (2)出库管理模块调用车位管理模块将对应的车位状态改为空闲,同时调用通讯模块,将停车场电子地图、出口位置及导航路径传输给汽车;
[0106] (3)车端将接受的信息显示在车载显示屏上,并调用图像采集处理模块,使用所述的识别算法识别环境中的车位编号信息,重复读取图像序列直到得到四个有效的车位编号;
[0107] (4)车端将车位编号发送给服务中心,并调用定位和导航模块,进行位置解算定位和位置路径信息导航,直到汽车到达停车场出口;
[0108] (5)到达出口,服务中心将该停车场的出口位置标记到汽车导航地图,用其和卫星定位数据融合,快恢复导航功能,出库任务结束。
[0109] 最后说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本技术方案的宗旨和范围,其均应涵盖在本发明的权利要求范围当中。