基于图像识别与用户偏好的智能车位推荐方法与流程

文档序号:22111785发布日期:2020-09-04 15:09阅读:365来源:国知局
基于图像识别与用户偏好的智能车位推荐方法与流程

本发明涉及停车场车位推荐技术,具体是一种基于图像识别与用户偏好的智能车位推荐方法。



背景技术:

目前现有的大型停车场往往都提供车位引导的功能,设有能够引导车辆顺利进入目的车位的指示系统。在停车场引导车辆停入空车位的智能泊车引导系统称之为车位引导系统,它由智能电脑系统对车位进行检测,通过显示屏显示空车位信息,司机通过该信息,实现轻松停车。

然而,当前部分大型停车场使用超声波技术对车位进行检测,需要在各个车位安装探测器,这无疑增加了系统的成本。部分停车场采用hog特征提取的方法对车位状态图片进行分类,需要将图片分成若干个小的单元,还需要对比归一化等操作,处理起来较复杂。

同时,大部分停车场对于车位分配的方法是:对于当前需要泊车的用户,随机的分配一个空闲车位给该车主,而没有考虑到不同用户的偏好和需求,造成用户的满意度和体验较差,且没有设定用户对车位评分的环节,体现的服务意识还不够,而且通过停车场显示屏告诉车主位置信息,引导的细节不够充分和清楚,车主可能不知道自己当前的方位,可能会在前进的过程中遇到未知的障碍点(有的甚至是不可经过的点),不利于车主了解整个停车场的分布结构,为后续的寻找车辆制造了不必要的麻烦。



技术实现要素:

本发明的目的是正对现有技术的不足,而提供一种基于图像识别与用户偏好的智能车位推荐方法。这种方法可以降低成本,可依据当前用户偏好为当前用户方便、准确、高效地推荐适合的泊车位置,同时使得当前用户快速的找到泊车位置。

实现本发明目的的技术方案是:

一种基于图像识别与用户偏好的智能车位推荐方法,包括车辆定位系统,所述车辆定位系统包括通过网络互连的车载终端、4g网络模块和远程监测中心终端,所述方法包括如下步骤:

1)确定当前用户车辆位置:结合gps和googleearth的车辆定位软件,车载终端将gps当前用户车辆定位信息数据经4g网络模块与远程监测中心终端进行数据传输,远程监测中心终端接收到当前用户车辆定位信息数据后,确定当前用户车辆的位置坐标,并在googleearth中对移动车辆实现定位跟踪;

2)车位状态图像识别:车辆定位系统对停车场的现场图片进行采集,并进行车位状态图像识别,找到空闲车位,包括:

2-1)灰度化图像:对于彩色的rgb图像的像素矩阵,将rgb三个分量平均,得到灰度后的对应位置(i,j)的像素值:f(i,j)=(r(i,j)+g(i,j)+b(i,j))/3;其中,(i,j)表示对应像素点的横坐标i和纵坐标j;

2-2)去噪:采用小波阈值的图像对灰度化后的图像去噪,在经过小波变换后,图像噪声主要集中在高频子带,图像的能量大多处于低频子带,设定过滤的阈值,对小波系数进行处理,保留有效的信号系数,再对处理后的小波系数逆变换,得到去噪的结果;

2-3)基于卷积神经网络的图像分类:将步骤2-1)、2-2)预处理后的图像作为输入,输入到具有三层卷积网络结构的cnn网络中,所述cnn网络中每层网络都包括卷积、激活和池化操作,其中,预设定的卷积核大小为5*5,卷积核的深度与卷积后的featuremap即特征图像深度相同,池化操作为最大值池化即max-pooling,激活函数为relu函数,在三层网络之后设定一个全连接层即fclayer,采用softmax函数将分类结果和训练集匹配,判断停车场的对应车位是否被占用;

2-4)对于车牌号的识别:对于车牌号的识别还需要进行字符的分割,对于停车场现场图片灰度化后的车牌矩形框截取字符图块,利用步骤2-3)中的cnn网络和训练集进行训练,实现字符识别,设定每隔一段时间间隔对停车场的现场车位图像进行采集,以此来实现车位状态的数据实时更新,同时实现对车位状态表中数据的更新,车位状态表包括当前车位的转态是否为空闲,若不是,则要记录所停车的车牌号;

3)推荐车位:车位本身包括许多特征信息:泊位是否靠近电梯口、停车场入口到泊位的行驶距离、停车后从停车场入口到车位的步行时间和步行距离、泊位两侧占用情况包括一侧、两侧、两侧有障碍物否、泊位尺寸的大小、泊位离视频监视器的位置、出入泊位的车道宽度等,实际应用中,由于并不是车位的每个特征都是用户所关注的,所以首先选择出泊车位的较优特征,即对于泊车位的特征向量集合位d,采用遗传算法从中选取d个较优特征,其中,d<d,过程如下:

3-1)染色体的初始化:将所有泊车位的特征描述为由0和1字符组成的字符串,其中0表示该特征没被选取,1表示该特征被选取,最终的目标是得到d个1的一条染色体,初始化一个1*d维的列向量作为初始染色体,列向量的每一维都是0,采用随机数的操作将其中d个随机为1,重复这个步骤n次,可以得到有n条染色体的初始种群m(t=0);

3-2)计算染色体的适应度函数:采用预先定义的适应度函数即所要求的目标函数最优化,计算每条染色体的适应度值f(m);

3-3)基于适应度的选择:按照选择概率密度p(f(m))对种群的染色体进行采样,依据采样得到的染色体繁殖下一代染色体,组成新一代的种群m(t+1),具体的选择过程如下:

3-3-1)计算出所有染色体适应度之和

3-3-2)由每个染色体个体的相对适应度大小,即得到一个新的划分区间

3-3-3)在所有di组成一个0-1的区域,通过随机一个0到1的数字m确定m所位于的区间dk,从而确定出被筛选出的染色体,重复选择n次,可以得到n条染色体;

3-3-4)交叉:交叉的意义是产生新一代的个体,过程为:

3-3-4-1)随机选取两条染色体;

3-3-4-2)设置交叉点j;

3-3-4-3)确定两两互换交叉点之后的基因序列,例如,对于步骤3-3-3)选择的011101和111001两条染色体,假设交叉点位置k=2,则交叉后得到的新的个体为:011001和111101;

3-3-5)变异:对于当前种群m(t)中的每一条染色体,依据设定的变异概率决定它是否变异,若是,随机地选取该染色体的一个基因进行变异,如果该基因是0则变为1,反之亦然;

3-3-6)重复迭代:在经过上述选择、交叉和变异后,上一代的种群m(t)更新为下一代m(t+1),重复步骤3-3-2)-步骤3-3-5),直到种群得到的染色体的适应度达到预先设定的阈值,则算法终止,输出适应度最大的染色体,取出其中标号为1的基因所对应的特征集合,就是最终特征选择的结果,然后采用基于协同过滤的算法来实现车位推荐,首先设定一个用户-车位评价表,包括用户历史停车信息、对应的泊车位和对应的评价打分,用户对所使用的停车位满意度进行打分,打分分数为0-5分,通过用户-车位评价表,可以得到用户对该停车场历史使用过的各种不通车位的满意度得分,假设:

x表示停车位的特征向量,大小为d维的列向量,x=(x(1),x(2),.....,x(nm)),其中,nm为车位总个数;

θ表示用户偏好的特征向量,大小为d维的列向量,θ=(θ(1)(2),.....,θ(nu)),其中,nu为停车用户总个数;

r(i,j):表示用户j对编号为i的车位的评价,0表示没有做出评价,1表示做出了评价;

y(i,j):表示用户j对编号为i的车位的评价得分,当且仅当r(i,j)=1时有定义;

为代价函数,目标是函数:的最优化,

当给定了变量x=(x(1),x(2),.....,x(nm)),即对于泊车位,如果知道它们的特征向量组,就可使用特征向量组训练每个停车用户的参数,只需要对进行最优化求解,

同样的,当给定了变量θ=(θ(1)(2),.....,θ(nu)),即对于每个用户,如果知道它的偏好特征向量,可使用偏好特征向量训练每个车位的参数,只需要对进行最优化求解,

考虑同时学习出这两个参数,即同时采用梯度下降算法,更新两个参数,

即:不断地迭代,最终可以得到最优的θ,x;

4)路线规划和导航:假设用户当前的车辆定位为(xstart,ystart),经过上述步骤1)-步骤4)得到的目标车位的坐标为(xend,yend),为了寻求这两点之间的一条最短路径时,可行的方法是将停车场表示成一个二维的网格,采用实际1平方米对应图中1个点的比例,将停车场的每一个车位抽象成网格图中的一个点,此外,将图中的标杆、柱子、护栏等不可通过的部分在网格图中标记为不可经过的点,这样,问题转化为求从用户的位置坐标(xstart,ystart)到(xend,yend)的最短路线,条件是避开一些有障碍物的不可经过的点,采用改进的dijkstra和bfs算法相结合,首先定义:

搜索区域:停车场的搜索区域被划分成一个二维的数组,数组中的每个元素对应一个小网格,将网格的中心点表示为搜索区域节点;

openlist:将规划路径过程中所有待检测的节点存放于openlist中,对于已检测过的网格则存放于closelist中;

父节点:在路径规划中用于回溯的节点,编程时,表示双向链表中的父结点的指针;

路径排序:往哪个节点移动由以下公式确定:f(n)=g+h,g代表的是从初始位置a沿着已生成的路径到指定待检测格子的移动代价,h指定待测格子到目标节点b的估计移动开销;

启发函数:设h为启发函数,也被认为是一种试探,由于在找到唯一路径前,不确定在前面会不会出现障碍物,因此采用传统的曼哈顿距离作为h的计算方法,也就是横纵向走的距离之和,实施过程步骤为:

step1.把起点ustart加入openlist;

step2:包括:

step2-1:遍历openlist链表,查找f(n)最小值所对应的节点,把该节点作为当前待处理的节点ucurrent,移到closelist链表中;

step2-2:对ucurrent的8个相邻方格即上、下、左、右、左上、右上、左下和右下方格分别进行检查,如果它是不可达的状态或它处在closelist中,直接跳过,否则,假设u'为ucurrent某个方向的邻接方格,进行如下操作:

step2-2-1:如果openlist中没有u′,把u′加入openlist中,并且把当前ucurrent设置为它的父亲;

step2-2-2:如果当前openlist已存在该节点u',需要检查这条路径即经由当前网格ucurrent到达u'是否更近,如果更近,把u'的父节点设置为当前方格ucurrent,并更新u'的g值和f值;step2-3:搜索停止的两种情况:

1)把终点uend加入到了openlist中,此时路径已经找到了,跳出循环;

2)查找终点uend失败,并且此时openlist为空的,此时表示没有可行的路径方案;

step3:重复step2,直到跳出循环,此时,从终点开始,每个方格沿着父节点的方向移动直至回溯到起点ustart,形成最终的路径序列{ustart,...,uend},依据这个路径用户自动导航进入停车位,同时对推荐进行评价,使得之后的推荐更加的贴近用户的真实需求。

本技术方案中,不需要对车位的特征向量x进行初始化,对于每个车位,可以通过收集到的若干用户的历史停车习惯,自动的学习到x自身的每个特征的取值,当然,用户可以选择系统推荐,或者系统随机分配空闲车位的方法,当遇到一个新用户的时候,即冷启动的时候,可以让其随机的选择一个空闲车位,这样他在下次选择车位的时候就会拥有自己的停车数据,就可以使用上述模型进行推荐了。

这种方法可以降低成本,可依据当前用户偏好为当前用户方便、准确、高效地推荐适合的泊车位置,同时使得当前用户快速的找到泊车位置。

附图说明

图1为实施例中车位状态表中各个字段的示意图;

图2为实施例中用户车位评价表的内容示意图;

图3为实施例方法的流程示意图。

具体的实施方式

下面结合附图和实施例对本发明的内容作进一步的阐述,但不是对本发明的限定。

实施例:

参照图3,一种基于图像识别与用户偏好的智能车位推荐方法,包括车辆定位系统,所述车辆定位系统包括通过网络互连的车载终端、4g网络模块和远程监测中心终端,所述方法包括如下步骤:

1)确定当前用户车辆位置:结合gps和谷歌地图即googleearth的车辆定位软件,车载终端将gps当前用户车辆定位信息数据经4g网络模块与远程监测中心终端进行数据传输,远程监测中心终端接收到当前用户车辆定位信息数据后,确定当前用户车辆的位置坐标,并在谷歌地图中对移动车辆实现定位跟踪;

2)车位状态图像识别:车辆定位系统对停车场的现场图片进行采集,并进行车位状态图像识别,找到空闲车位,包括:

2-1)灰度化图像:对于彩色的rgb图像的像素矩阵,将rgb三个分量平均,得到灰度后的对应位置(i,j)的像素值:f(i,j)=(r(i,j)+g(i,j)+b(i,j))/3;其中,(i,j)表示对应像素点的横坐标i和纵坐标j;

2-2)去噪:采用小波阈值的图像对灰度化后的图像去噪,在经过小波变换后,图像噪声主要集中在高频子带,图像的能量大多处于低频子带,设定过滤的阈值,对小波系数进行处理,保留有效的信号系数,再对处理后的小波系数逆变换,得到去噪的结果;

2-3)基于卷积神经网络的图像分类:将步骤2-1)、2-2)预处理后的图像作为输入,输入到具有三层卷积网络结构的cnn网络中,所述cnn网络中每层网络都包括卷积、激活和池化操作,其中,预设定的卷积核大小为5*5,卷积核的深度与卷积后的featuremap即特征图像深度相同,池化操作为最大值池化即max-pooling,激活函数为relu函数,在三层网络之后设定一个全连接层即fclayer,采用softmax函数将分类结果和训练集匹配,判断停车场的对应车位是否被占用;

2-4)对于车牌号的识别:对于车牌号的识别还需要进行字符的分割,对于停车场现场图片灰度化后的车牌矩形框截取字符图块,利用步骤2-3)中的cnn网络和训练集进行训练,实现字符识别,本例设定每隔10s对停车场的现场车位图像进行采集,以此来实现车位状态的数据实时更新,同时实现对如图1所示的车位状态表中数据的更新,车位状态表包括当前车位的转态是否为空闲,若不是,则要记录所停车的车牌号;

3)推荐车位:车位本身包括许多特征信息:泊位是否靠近电梯口、停车场入口到泊位的行驶距离、停车后从停车场入口到车位的步行时间和步行距离、泊位两侧占用情况包括一侧、两侧、两侧有障碍物否、泊位尺寸的大小、泊位离视频监视器的位置、出入泊位的车道宽度等,实际应用中,由于并不是车位的每个特征都是用户所关注的,所以首先选择出泊车位的较优特征,即对于泊车位的特征向量集合位d,采用遗传算法从中选取d个较优特征,其中,d<d,过程如下:

3-1)染色体的初始化:将所有泊车位的特征描述为由0和1字符组成的字符串,其中0表示该特征没被选取,1表示该特征被选取,最终的目标是得到d个1的一条染色体,初始化一个1*d维的列向量作为初始染色体,列向量的每一维都是0,采用随机数的操作将其中d个随机为1,重复这个步骤n次,可以得到有n条染色体的初始种群m(t=0);

3-2)计算染色体的适应度函数:采用预先定义的适应度函数即所要求的目标函数最优化,计算每条染色体的适应度值f(m);

3-3)基于适应度的选择:按照选择概率密度p(f(m))对种群的染色体进行采样,依据采样得到的染色体繁殖下一代染色体,组成新一代的种群m(t+1),具体的选择过程如下:

3-3-1)计算出所有染色体适应度之和

3-3-2)由每个染色体个体的相对适应度大小,即得到一个新的划分区间

3-3-3)在所有di组成一个0-1的区域,通过随机一个0到1的数字m确定m所位于的区间dk,从而确定出被筛选出的染色体,重复选择n次,可以得到n条染色体;

3-3-4)交叉:交叉的意义是产生新一代的个体,过程为:

3-3-4-1)随机选取两条染色体;

3-3-4-2)设置交叉点j;

3-3-4-3)确定两两互换交叉点之后的基因序列,例如,对于步骤3-3-3)选择的011101和111001两条染色体,假设交叉点位置k=2,则交叉后得到的新的个体为:011001和111101;

3-3-5)变异:对于当前种群m(t)中的每一条染色体,依据设定的变异概率决定它是否变异,若是,随机地选取该染色体的一个基因进行变异,如果该基因是0则变为1,反之亦然;

3-3-6)重复迭代:在经过上述选择、交叉和变异后,上一代的种群m(t)更新为下一代m(t+1),重复步骤3-3-2)-步骤3-3-5),直到种群得到的染色体的适应度达到预先设定的阈值,则算法终止,输出适应度最大的染色体,取出其中标号为1的基因所对应的特征集合,就是最终特征选择的结果,然后采用基于协同过滤的算法来实现车位推荐,首先设定一个用户-车位评价表,如图2所示,包括用户历史停车信息、对应的泊车位和对应的评价打分,用户对所使用的停车位满意度进行打分,打分份数为0-5分,通过用户-车位评价表,可以得到用户对该停车场历史使用过的各种不通车位的满意度得分,假设:

x表示停车位的特征向量,大小为d维的列向量,x=(x(1),x(2),.....,x(nm)),其中,nm为车位总个数;

θ表示用户偏好的特征向量,大小为d维的列向量,θ=(θ(1)(2),.....,θ(nu)),其中,nu为停车用户总个数;

r(i,j):表示用户j对编号为i的车位的评价,0表示没有做出评价,1表示做出了评价;

y(i,j):表示用户j对编号为i的车位的评价得分,当且仅当r(i,j)=1时有定义;

为代价函数,目标是函数:的最优化,

当给定了变量x=(x(1),x(2),.....,x(nm)),即对于泊车位,如果知道它们的特征向量组,就可使用特征向量组训练每个停车用户的参数,只需要对进行最优化求解,

同样的,当给定了变量θ=(θ(1)(2),.....,θ(nu)),即对于每个用户,如果知道它的偏好特征向量,可使用偏好特征向量训练每个车位的参数,只需要对进行最优化求解,

考虑同时学习出这两个参数,即同时采用梯度下降算法,更新两个参数,

即:不断地迭代,最终可以得到最优的θ,x;

4)路线规划和导航:假设用户当前的车辆定位为(xstart,ystart),经过上述步骤1)-步骤4)得到的目标车位的坐标为(xend,yend),为了寻求这两点之间的一条最短路径时,可行的方法是将停车场表示成一个二维的网格,采用实际1平方米对应图中1个点的比例,将停车场的每一个车位抽象成网格图中的一个点,此外,将图中的标杆、柱子、护栏等不可通过的部分在网格图中标记为不可经过的点,这样,问题转化为求从用户的位置坐标(xstart,ystart)到(xend,yend)的最短路线,条件是避开一些有障碍物的不可经过的点,采用改进的dijkstra和bfs算法相结合,首先定义:

搜索区域:停车场的搜索区域被划分成一个二维的数组,数组中的每个元素对应一个小网格,将网格的中心点表示为搜索区域节点;

openlist:将规划路径过程中所有待检测的节点存放于openlist中,对于已检测过的网格则存放于closelist中;

父节点:在路径规划中用于回溯的节点,编程时,表示双向链表中的父结点的指针;

路径排序:往哪个节点移动由以下公式确定:f(n)=g+h,g代表的是从初始位置a沿着已生成的路径到指定待检测格子的移动代价,h指定待测格子到目标节点b的估计移动开销;

启发函数:设h为启发函数,也被认为是一种试探,由于在找到唯一路径前,不确定在前面会不会出现障碍物,因此采用传统的曼哈顿距离作为h的计算方法,也就是横纵向走的距离之和,实施过程步骤为:

step1.把起点ustart加入openlist;

step2:包括:

step2-1:遍历openlist链表,查找f(n)最小值所对应的节点,把该节点作为当前待处理的节点ucurrent,移到closelist链表中;

step2-2:对ucurrent的8个相邻方格即上、下、左、右、左上、右上、左下和右下方格分别进行检查,如果它是不可达的状态或它处在closelist中,直接跳过,否则,假设u'为ucurrent某个方向的邻接方格,进行如下操作:

step2-2-1:如果openlist中没有u',把u'加入openlist中,并且把当前ucurrent设置为它的父亲;

step2-2-2:如果当前openlist已存在该节点u',需要检查这条路径即经由当前网格ucurrent到达u'是否更近,如果更近,把u'的父节点设置为当前方格ucurrent,并更新u'的g值和f值;step2-3:搜索停止的两种情况:

1)把终点uend加入到了openlist中,此时路径已经找到了,跳出循环;

2)查找终点uend失败,并且此时openlist为空的,此时表示没有可行的路径方案;

step3:重复step2,直到跳出循环,此时,从终点开始,每个方格沿着父节点的方向移动直至回溯到起点ustart,形成最终的路径序列{ustart,...,uend},依据这个路径用户自动导航进入停车位,同时对推荐进行评价,使得之后的推荐更加的贴近用户的真实需求。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1