1.背景

当我们打开导航,开车驶向目的地的过程中,有时候会碰到这样的问题:前方明明没有路,可能在施工封闭,可是导航仍然让我们往前开车,以至于我们无法顺利到达目的地。全国道路千千万,每天都有巨量的道路变得不可通行,那么如何动态的识别出哪些道路走不通了呢?

图中所示即为因封路事件导致的导航路线改变

道路不通往往导致该条道路汽车流量突然降低。监控汽车流量的变化是挖掘封路事件的重要指标。但是,目前业务中遇到的一个重要问题是,针对汽车无法通行的封路事件,行人、自行车可能都可以穿行,这些行人、自行车等的噪声流量大大削弱了道路流量变化。

因此,如果能够对行人、自行车、汽车的轨迹进行分类,就可以对道路流量的噪声进行过滤,仅仅关注汽车流量,流量随着封路事件的变化将更为显著,从而便于道路封闭的挖掘。本文主要针对非机动车、机动车分类探索轨迹分类问题。

2.样本获取与标签制定

由于轨迹数据缺少原始真值,我们将用户导航模式作为轨迹分类的伪标签。例如当时用户采用汽车导航,其轨迹对应的标签即为汽车。由于汽车导航数据远远多于非机动车,不同伪标签样本比例差异巨大,存在严重的样本不平衡问题。此外,用户导航模式与用户实际出行方式可能并不一致。比如有些用户可以根据汽车导航步行到达目的地。下文介绍的标签-概率混合贝叶斯模型将分析并试图解决上述2个问题。

3.特征分析

可以将轨迹分类相关特征划分为5类。分别是:

  • 轨迹概况特征集,包括轨迹耗时、轨迹长度、轨迹开始时间等。

  • 速度相关特征集,包括最大速度、平均速度、速度标准差等。

  • 时间相关特征集,包括道路末端等待红灯时间,调头时间,左转时间等。

  • 行为相关特征集,包括调头行为,往复活动,左转减右转时间等。

  • 用户画像特征集,包括用户职业、有车概率。

下面以轨迹开始时间特征为例,解释该特征的物理意义。其概率密度函数如下所示(drv,汽车;byc,自行车;wlk,步行):

早晨(5:00~10:00)汽车轨迹概率较高,可能是早高峰导致。

午时(11:00~13:00)自行车轨迹概率较高,可能是由于外卖送餐。

傍晚(17:00~20:00)步行、自行车概率均较高,可能是由于下班散步以及外卖送餐。

4.贝叶斯模型的概率分布视角

选择基于贝叶斯分类器进行改进的原因如下:

  • 贝叶斯分类器属于生成模型,依赖于条件概率密度函数,具有明确的统计学意义。此外,如前面提到的条件概率图示,通过观察不同轨迹、标签的概率密度函数,能够逐个分析、说明特征的有效性。

  • 贝叶斯分类器可以表示为:

  • 通过增添、删减、改动特征的概率密度函数,可以快速完成贝叶斯分类器的迭代改进。并且相较于决策树,贝叶斯分类器不会对某一个特征的变动过于敏感。

  • 贝叶斯分类器最终输出为概率值,可以作为置信度。

4.1 标签-概率混合贝叶斯模型

当前轨迹分类问题为样本不平衡(Data Unbalanced)标签不准确(Noisy Label)问题。

Tanaka等人基于卷积神经网络提出了伪标签损失函数,通过交叉熵损失函数与伪标签损失函数的迭代优化完成了错误标签的修正[2]。受此启发,贝叶斯模型同样能够建立伪标签损失函数完成样本清洗。

我们基于贝叶斯分类器的分类结果,提出基于伪标签极大似然估计的伪标签损失函数,完成错误样本清洗,再迭代完成贝叶斯分类。该模型的迭代流程如下图所示。

标签-概率混合优化贝叶斯模型迭代流程。

4.2 联合概率密度函数计算

由于贝叶斯分类器假设各变量相互独立,因此不可避免的会对一些场景下的样本产生错误预测。例如,外卖骑手以及快递员应当被判定为非机动车。这种类型轨迹长度可能较长(超过10公里),最大速度适中(小于50公里每小时)。在假设行驶距离与最大速两个特征相互独立的情况下,容易错误地把外卖骑手以及快递员的行驶轨迹判定为汽车。

自行车轨迹行驶距离以及最大速度联合概率密度函数

汽车轨迹行驶距离以及最大速度联合概率密度函数

但是,行驶距离与最大速两个维度的特征并不相互独立。上图构建了针对汽车轨迹这两个维度的联合概率密度函数,可以发现,对汽车轨迹而言,行驶距离越长,最大速可能越高,当汽车行驶距离超过10公里时,其最大速度小于50公里每小时的可能性很低。因此,通过构建行驶距离与最大速度两个维度的联合概率密度函数,替换两个独立概率的相乘,可以帮助解决长距离非机动车轨迹被误判为汽车的问题。

4.3 基于贝叶斯的轨迹分类实验结果

评测团队抽样约100条数据并人工标记真值。最终模型分类效果如表所示。

5.深度学习模型的图像编码视角

由于轨迹数据缺少原始真值,我们将用户导航模式作为轨迹分类的伪标签。例如当时用户采用汽车导航,其轨迹对应的标签即为汽车。本次基于深度学习的探索不考虑标签噪声的问题。

5.1 轨迹信息的两种观察方式

深度学习的优势在于能够从原始数据中学习到有效信息,无需人工挖掘特征。针对轨迹数据的特点,存在两种观察轨迹的方式,分别是时间序列与空间分布。

时间序列:轨迹当中的GPS点数据随时间推移依次上传至数据库中。轨迹数据天然具备时间序列属性。因此,可以采用TCN或RNN构建模型,学习轨迹中的时间序列信息,完成轨迹分类。

空间分布:将轨迹数据绘制在地图中,则轨迹构成图片中的一条线。如果能够将速度、方向、等待时间编码到线的颜色当中,则能够采用CNN从轨迹图像中学习到有效信息[3]。

图左侧大概率为快递员轨迹,图右侧大概率为汽车轨迹。GPS点的空间分布能够为轨迹分类提供有效信息。因此,我们采用空间分布模式构建模型,探索基于深度学习的轨迹分类。

轨迹颜色编码:从GPS点中获取的主要信息为速度、方向、等待时长。将这3个维度的信息进行轨迹颜色编码有2种方式,分别是RGB编码与HSV编码。其中HSV即色相(Hue)、饱和度(Saturation)、亮度(Value)。

由于方向信息为0~360度的角度值,与HSV色彩空间种的色相H完全一致。因此,本文采用HSV色彩空间对速度、方向、等待时长进行编码,编码方式为速度:V,方向:H,时长:S。编码后将轨迹缩放为256×256的图片。对地图轨迹的编码结果如下图所示。


5.2 双流神经网络模型

基于编码生成的轨迹图片依然缺失一些重要信息,包括将轨迹缩放至256×256图片的缩放因子,以及GPS点所在的位置。可以将轨迹匹配结果中通过国道、省道、城市快速路等不同类型道路的比例构造出特征集表征GPS点所在的位置信息,加入缩放因子构造一个一维静态特征向量。

将卷积神经网络学习到的特征向量以及该一维特征向量合并,最终通过全连接层完成轨迹分类。最终卷积神经网络选择ResNet50结构。

5.3 基于深度学习的轨迹分类实验结果

评测团队抽样约100个样本,人工标记真值。

如上表所示,以人工标记标签为真值验证深度学习模型,深度学习模型能够取得有效的轨迹分类精度,但是最终分类效果弱于提出的贝叶斯模型。可能的原因有如下几点:

  • ResNet50并不是学习轨迹图像的最优模型。

  • 仅采用8月17日的样本训练模型,样本多样性不足。

  • 所选择的特殊场景样本分布与深度学习中的训练集样本分布差异巨大。

6.小结

轨迹分类对于准确及时地挖掘道路封闭事件具有重要意义。本文从给予概率密度分布的贝叶斯模型视角与基于轨迹点图像编码的深度学习视角分别探索了轨迹分类可能的技术方案。未来轨迹分类模型还可以从聚焦应用场景,优化应用以及拓展上游数据,优化特征两个方面进行改进。

参考文献

[1].Frénay B, Verleysen M. Classification in the presence of label noise: a survey[J]. IEEE transactions on neural networks and learning systems, 2013, 25(5): 845-869.

[2].Tanaka D, Ikami D, Yamasaki T, et al. Joint optimization framework for learning with noisy labels[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2018: 5552-5560.

[3].Liu Y, Wang X, You W. Non-intrusive Load Monitoring by Voltage-Current Trajectory Enabled Transfer Learning[J]. IEEE Transactions on Smart Grid, 2018.

也许你还想看

  • 深度学习在高德ETA应用的探索与实践

  • 机器学习在高德用户反馈信息处理中的实践

  • 深度学习在道路封闭挖掘方案的探索与实践

招聘

阿里巴巴高德地图在线引擎和安全运维中心团队长期招聘机器学习算法、C++、Java 资深工程师/技术专家/高级专家,职位地点:北京。欢迎投递简历到 gdtech@alibaba-inc.com,邮件主题为:姓名-应聘团队-应聘方向。

机器学习在高德地图轨迹分类的探索和应用相关推荐

  1. Android实现高德地图轨迹回放

    Android实现高德地图轨迹回放 写在前面 准备 官方文档解读 创建应用: 地图api引入: 权限添加 效果展示 过程实现 地图初始化 定位 显示标记点 点平滑移动 添加呼吸点 写在结尾 写在前面 ...

  2. 高德地图轨迹回放功能

    一.介绍        在项目过程中,需要对自己设备产品输出的定位信息进行验证.通过路跑测试获取到了一组经纬度数据.这时需要验证这组数据是否是实际路跑测试的轨迹,就用到了高德地图的轨迹回放功能.下面将 ...

  3. android高德地图轨迹偏纠,GitHub - YangHaoyi/DrawTraceDemo: 高德地图轨迹回放带定位纠偏加彩虹渐变线...

    DrawTraceDemo 高德地图轨迹回放带定位纠偏加彩虹渐变线 由于高德自身持续定位存在偏移状况,故摒弃了高德自身的定位点,改用自定义marker点作为定位点 加注轨迹纠偏函数,根据时间判定此次移 ...

  4. 高德地图-轨迹回放(二)

    利用高德地图作轨迹回放的另一种方法是利用官方api覆盖物中的AMap.Polyline来做,官方给出的例子中也是此原理实现的. 实现地图轨迹的主要函数如下 function track(){map.c ...

  5. 高德地图轨迹回放_高德地图上线了一个新功能….

    文.路人甲TM 德地图这两天刚上线了一个叫做「家人地图」的功能,所谓家人地图顾名思义,就是你可以通过高德地图组建一个家人圈,在这个圈子里面你可以看到你的家人在什么位置,当你的家人到达什么位置的时候自动 ...

  6. 高德地图轨迹PHP,高德地图JSAPI轨迹重复绘制

    介绍一个基于高德地图JSAPI轨迹展示案例: 说明: 1.定时接口取数据刷新轨迹: 2.轨迹坐标数量较大: 3.轨迹点位信息需要展示,如时间.速度.多少点位: 4.避免地图重新渲染,只刷新坐标: 使用 ...

  7. 高德地图轨迹回放_高德上线“家人地图”功能

    鞭牛士 7月14日消息,高德今日上线了"家人地图"功能,可以让家人随时看到彼此的位置,特别是针对空巢老人家庭,子女忙于工作,父母独自在家,老人有没有出门,外出去到了哪里,有没有偏离 ...

  8. 高德地图轨迹回放、路径规划以及计算面积(超详细!!)

    主要涉及到高德地图的路径规划.区域规划以及轨迹回放功能. 一.基础设置:地图 //创建地图var map = new AMap.Map('map',{zoom:17,//视角级别//中心点坐标// p ...

  9. android高德地图轨迹,android-高德地图:实时轨迹实现

    /** * 高德地图参数样式设置 */ private void initAMap() { myLocationStyle = new MyLocationStyle();//初始化定位蓝点样式类my ...

最新文章

  1. python selenium 文件上传_Python+Selenium学习--上传文件
  2. 香港理工大学计算机系石杰明老师组招收全奖博士生、博士后
  3. linux下新文件权限设置之umask的理解
  4. python3语法手册_Python3 学习手册每日更新
  5. Java 摄氏和华氏之间的转换
  6. C++ Primer 5th笔记(3)字符串、向量和数组:字符串
  7. python提高文件读取速度_Python提高了HDF5文件的读取速度
  8. [Windows Phone] 自己动手实现Telerik公司的LayoutTransform动画效果
  9. #iOS问题记录# 关于UITableViewcel的分割线去掉问题
  10. 3.Shell 编程从入门到精通 --- 编程基础的基本元素
  11. malformed utf-8 characters, possibly incorrectly encoded
  12. linux 安装 yum
  13. HTML5 3D棒球游戏截图
  14. LaTex 表格的单元格划横线,分成两部分
  15. com.apple.Boot.plist 和SMBIOS.plist 的设置
  16. 网线水晶头制作及标准接法教程,运维必备硬技能
  17. 2019年全国职业院校技能大赛中职组“网络空间安全”正式赛卷及其“答案”
  18. 简单的小升初摇号小程序
  19. 大数据缺省值插补方法(回归填补[stochastic regression imputation],聚类填补,。。)
  20. 堆糖瀑布流完整解决方案(jQuery)

热门文章

  1. MySQL too many connections 解决方法
  2. android图片视频图片封装,Android图片、视频资源选择库(支持图片/视频/仿微信拍照、拍视频)...
  3. Ubuntu中添加万能五笔
  4. 软件测试模式-敏捷测试
  5. 基于深度学习的行人重识别研究综述
  6. EndNote使用笔记
  7. 陪伴程序员的一条龙、一骑士 36 岁了
  8. [转]如何在word文档里面的小方框内打钩
  9. Snagit捕获快捷键
  10. java phash算法 图片_图片相似度——hash算法简介