如何通过轨迹信息判断驾驶人是否为同一人?

2023-10-27

轨迹识别问题旨在验证传入的轨迹是否是由所要求的人员产生, 即给定一组单独的人员历史轨迹(例如行人,出租车司机)以及由特定人员生成的一组新轨迹,判定两组轨迹是否由同一个人员生成。这个问题在许多实际应用中都很重要,例如出租车驾驶人员身份认证、汽车保险公司风险分析以及危险驾驶识别等。

轨迹识别的现有工作除了需要轨迹数据之外,还需要其他来源的数据,如传感器、摄像头等,但这些数据无法普遍获得且成本较高。此外,目前的工作只能局限于已有的人员身份识别,无法扩展至未经训练的人员。

为了应对这些挑战,在这项工作中,我们首次尝试通过提出一种新颖而有效的框架时空孪生网络(ST-SiameseNet),仅从观察到的轨迹数据匹配人员身份。对于每个人员,我们从他们的轨迹中提取特征,来预测每个人轨迹的相似性。

一、问题背景


线上打车在现代社会越来越多地被应用,甚至说成为主流。根据纽约出租车协会数据显示(图1),截止2020年6月,纽约市每天有超过10万人次使用打车服务,线上打车服务占比超过70%。然而,随着行业从业人员的增加,从业人员就显得鱼龙混杂,经常会有安全事故被报道(图2)。尽管现在的平台会对司机进行实名认证,但仍会发生李代桃僵的事情。
在这里插入图片描述

图1 打车服务各类型占比

在这里插入图片描述

图2 线上打车服务安全事故报道案例

如图3所示,除了出租车安全认证之外,这项技术在汽车的保险行业也有着发展前景,比如投保人与肇事者是否是同一人,或者该驾驶员是否有危险驾驶行为,例如酒驾等。于是我们提出了“Human Mobility Signature Identification”,即通过轨迹信息的挖掘,进而分析驾驶人的驾驶行为,最终判断驾驶人是否是同一人。
在这里插入图片描述

图3 驾驶人员身份识别应用场景

驾驶人员身份识别问题有很多相关工作,然而前期工作仍存在诸多问题。

1)很多工作在识别司机的身份时,除GPS轨迹之外还需要额外的数据,例如车载的摄像机,方向盘和刹车的传感器等,这类数据成本高昂,很难普遍获取。
2)一些工作利用传统的聚类或者多分类模型去识别司机身份,但这类方法识别数量有限,无法满足现实中识别百万级司机身份的需要。
3)就我们所知,前期工作普遍存在泛化性不足的问题,模型面对训练集外的司机往往束手无策。

基于以上问题,我们提出了基于时空孪生神经网络的轨迹识别模型。该模型只依赖于GPS轨迹信息,可处理大规模驾驶员的识别问题,并且有较强的泛化能力,可识别未在训练集出现的驾驶员身份。

二、背景知识


首先,我们介绍一些相关的背景知识。我们提出了基于时空孪生神经网络的轨迹识别模型(ST-SiameseNet),那么什么是Siamese Network呢?Siamese是“孪生,连体”的意思,SiameseNetwork就如同字面的意思,是孪生神经网络,这一过程是通过共享权重实现的。将两个实体输入到同一个神经网络中,随后映射到新的空间,从而计算两个输入的相似度,从而判断二者是否属于同一个实体。基本模型框架如图4所示:
在这里插入图片描述

图4 Siamese Network

之所以将孪生神经网络引用至我们的模型,是因为其适合用于大规模实体的相似度判断。其学习的内容是实体间的相似度,因此未被训练过的数据仍然可以被拿来判断是否相似。

孪生神经网络已经解决了上述的后两个问题,即分类数量和泛化性。那么接下来就要解决第一个问题,数据成本。我们采用了易于获得的GPS行驶轨迹作为数据源。每个GPS点由经纬度和时间构成,一条轨迹则由一组GPS点构成。轨迹数据具有很强的时序性,因此,我们引入LSTM来学习轨迹特征。

为进一步挖掘轨迹数据的特征,我们从GPS数据中提取出司机的个人偏好,如最经常出现的位置、出发及结束时间、平均路程长度等等。与此同时,我们根据驾驶轨迹的状态,将轨迹分为了两类,例如出租车轨迹可分为载客轨迹与空车轨迹,私家车轨迹可分为上下班通勤以及日常生活轨迹等。

三、解决方案


在模型实现中,我们将出租车司机身份识别作为应用。GPS数据采自于2016年7月深圳出租车行驶记录,我们共筛选出2197位司机在10个工作日的GPS数据。
在这里插入图片描述

图5 模型流程图

图5展示了我们模型的基本流程。首先,我们将获得的GPS数据转化为一个个对应的格子,使得经纬度信息转化为更适合计算机处理的x,y坐标及对应的时间ID。而后,我们根据出租车是否载客将出租车轨迹分为载客轨迹与空车轨迹,并且从轨迹中提取了司机的个人偏好,如经常出现的位置、出车收车时间、平均寻客路程及时间、平均载客路程及时间、每日接单数量等。

为识别出租车司机身份,需要对一名司机两天的轨迹或者两名司机一天的轨迹进行比较,用以判断这些轨迹是否产生于同一个人。为此,我们选取了一个工作日内的5条空车轨迹和5条载客轨迹,这个数据的选择覆盖了所收集的司机的情况。图6显示了ST-SiameseNet模型具体框架:
在这里插入图片描述

图6 ST-SiameseNet模型框架图

从整体来看,模型目的在于判断两天的轨迹是否属于同一个司机,所以在模型输入中等概率的选择同一个司机不同天,或者不同司机不同天的数据,即输入数据的正负样本概率相同。

区别于传统孪生神经网络只共享一个神经网络,我们将其扩展至共享三个神经网络,即LSTMD,LSTMs和FCN。前两个模块分别学习载客轨迹和空车轨迹特征,FCN模块学习司机行为偏好。由此,我们得到6个embedding对应模型的6个输入。最后,通过embeddings后经由全卷积网络获得非相似度。其中数值越接近1,不是同一人的可能性越大。

四、实验结果


我们在2197名司机10天的轨迹数据上验证了方法的有效性。表1在对比不同模型中,我们采用了500位司机的前5天作为训练数据,另外的197位司机的后5天作为测试数据,保证了数据的充足性和独立性。

在这里插入图片描述

表1 不同模型实验效果验证表

对于SVM,由于无法输入轨迹信息,所以输入数据为司机个人偏好特征信息,经过绝对值相减后输入SVM,获得非相似度。对于FNN,区别在于是否包含个人偏好特征,两个输入GPS数据连接成一个大的数据输入FCN中,获得非相似度。这个对比旨在获取神经网络在提取特征方面的能力。对于Naïve Siamese,与我们提出的模型相比,只有一个FCN网络,而输入的GPS数据首尾相连组成一个长数据,通过FCN和embeddings后得到非相似度。

最后对比结果可以看到,我们提出的模型结构在各个指标上都有着优异的表现。而在同类模型的对比中,加入个人偏好的模型要比不加入偏好的模型性能表现要好,这也证明了除去轨迹特征外,司机的个人偏好对于相似度识别也有贡献。

此外,我们对模型泛化能力,也进行了轨迹天数与司机数量两方面的测试。图7是固定了500位司机,以工作日为变量的结果;图8是固定为5天的工作量,以司机数量为变量的结果。以图7为例,所有的数据集总共包含697位司机10个工作日的轨迹数据,其中500名司机作为训练集,197名司机为验证和测试集,假设训练集采用了头3天的数据做训练,那么验证集和测试集则使用剩余的后7天作为测试,以此类推。图8逻辑同理。
在这里插入图片描述

图7 500名司机工作日实验效果

在这里插入图片描述

图8 5天工作量司机数量实验效果

从上面的两幅图可以看出,随着训练天数和训练人数的增加,模型的泛化能力得到了提升,有效的避免了过拟合的问题。而且模型性能的拐点分别出现在5天的训练天数和500位司机的训练数量,之后的测试集结果增长不明显。说明500位司机和5个工作日的训练数量就能够获得较好性能的模型。

我们还进一步对比了轨迹运行模式与司机偏好特征对模型的影响。首先对比了运行模式对模型的影响,图9展示了不同运行模式下的测试准确率,粉色线包含了空车模式和载客模式,灰线仅包含了空车模式,黄线仅包含了载客模式。可以看出即使只包含有单一的运行模式,在一定程度上能够判断轨迹是否属于同一位司机。空车模式轨迹的准确率普遍高于载客模式轨迹的准确率,这与人的直觉是一致的,因为载客时司机无法选择目的地,而空车时不同司机会有不同的策略寻找乘客,因此可以更好的体现司机的特征。当两种运行模型同时作用于模型时,我们得到了最好的结果(粉色线)。与图7图8趋势一致,随着司机数量及训练天数的增加,模型的测试准确率有了提高。
在这里插入图片描述

图9 运行模式对比

图10对比了司机个人偏好在模型训练中的作用。红色线展示了轨迹数据及个人偏好作为输入时的测试集准确率,棕色线展示了只有轨迹数据的测试准确率,紫色线代表只有个人偏好特征作为输入的测试准确率。同图7图8趋势一致,随着司机数量及训练天数的增加,模型的测试准确率有了提高。在对比三种输入中,我们发现如果只使用司机的个人偏好特征作为输入,模型得到了较差的结果,这说明高度抽象的特征虽然在一定程度上可以识别司机,但也损失了很多其他有效信息。而单纯使用轨迹数据作为输入(棕色线),其准确率仍低于我们的模型(红色线),很可能是因为模型在处理轨迹数据时,很难获取全局的统计信息,比如平均寻客路程与时间,平均载客路程及时间等。当轨迹信息与个人偏好特征结合起来时,我们的模型得到了最优结果。
在这里插入图片描述

图10 个人偏好特征对比

论文原文链接:https://www.aminer.cn/pub/5f03f3b611dc830562232050?conf=kdd2020.
论文源码:https://github.com/huiminren/ST-SiameseNet.



作者:JUST团队-任慧敏
文章来源:“京东数科技术说”微信公众号
原文链接:https://mp.weixin.qq.com/s/u4DNEWPqYRYhYz-XN-XQpA.
更多技术干货欢迎关注“京东数科技术说”微信公众号,我们只凭技术说话!


在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何通过轨迹信息判断驾驶人是否为同一人? 的相关文章

  • js复制图片,支持jpg和png

    直接上关键代码 copy jpg url jpg 示例 复制图片 支持jpg png 传入图片url即可 function copy jpg url var canvas document createElement canvas 创建一个
  • unity 延迟等待执行

    关于unity延迟执行网上也有很多了 我这里只是封装下 让写代码变得更加优雅 使用更加方便 一个问题想要表述清楚 读者也能看明白 无非3个点 What 要说的是什么 How 怎么用你这个东西 什么情况下有用 Why 为什么要这么做 这么做有
  • 3天快速了解区块链技术 day01

    文章目录 区块链技术与应用相关概念 关于作者 作者介绍 前言 一 区块链基础概念 1 1 区块链历史 1 2 区块链和区块的定义 1 3 区块链分类 1 4 区块链价值 1 5 区块链应用领域 1 6 区块链特点 1 7 区块链关键技术 二
  • 使用cJSON解析JSON字符串

    JSON学习 使用cJSON解析 使用cJSON解析JSON字符串 一 为何选择cJSON 我们在使用JSON格式时 如果只是处理简单的协议 可以依据JSON格式 通过对字符串的操作来进行解析与创建 然而随着协议逐渐复杂起来 经常会遇到一些
  • Altium Designer 18 速成实战 第四部分 PCB库的设计(七)3D PCB封装的创建

    Altium Designer 18 速成实战 第四部分 PCB库的设计 七 3D PCB封装的创建 目录 一 3D元件体绘制3D PCB封装 1 放置3D元件体 2 绘制成下图所示 3 根据下图 图来自百度 调整属性 二 3D元件体绘制3
  • 修改weblogic控制台路径

    我们在使 weblogic控制台时 出于安全的考虑需要对weblogic的console进行设置 修改默认的访问路径 有两种方法 任选一种都可以 一 在web控制台进行修改 先使用默认的ip 端口 console登录到weblogic控制台
  • Basic Level 1074 宇宙无敌加法器 (25分)

    题目 地球人习惯使用十进制数 并且默认一个数字的每一位都是十进制的 而在 PAT 星人开挂的世界里 每个数字的每一位都是不同进制的 这种神奇的数字称为 PAT数 每个 PAT 星人都必须熟记各位数字的进制表 例如 0527 就表示最低位是
  • Ubuntu 14.04 将其他盘挂载到/home的子目录下

    Ubuntu 14 04 将其他盘挂载到 home的子目录下 当安装完Ubuntu系统 由于当时没有注意 分配的分区空间太小 经过一段时间安装了各式各样的软件后 常常会遇到 home目录下空间不够的情况 这时除了卸载软件以及重装系统以外 还
  • MDK 编译错误:multiply defined (重复定义)

    这个代码实现很简单 出现重复定义首先检查了自己的头文件 发现没问题 后来经过师兄的点拨 发现他提示后面有 表示有两个头文件key1 c和key c 马上检查了工程 果然发现有两个 c文件 删除一个即可解决问题
  • 广度优先探索例题java_LeetCode:广度优先搜索(BFS)算法(常见面试题)

    今天推荐一道常见的面试算法题 比较实用也比较常见 一 认识广度优先搜索算法 广度优先搜索 BFS 算法是图的一种遍历方法 它的核心思想是从图的某一个节点开始 依次遍历相邻节点 再从这些相邻节点继续向外层节点遍历 直到连通图的所有节点均被访问
  • Django-项目构建(一)

    环境 python3 Django2 window10 工具 pycharm 构建项目前期准备工作 安装python3 Django2 等 略 一 使用git Bash Here 打开git bash Here 构建项目命令 django

随机推荐

  • java取html中的table_从一段html的table标签中按列提取信息

    我们平时经常会遇到提取某个html中某个table的信息 比如 我们要提取出序号 登记编号 出质人等等 我的思路是先通过正则锁定该table 在通过Jsoup来按列解析内容 我将提取信息的过程抽取出了一个方法 其中内含Jsoup和Regex
  • idea配置使用git以及ssh key的介绍使用

    文章目录 1 Git GUI 的使用 2 ssh key 的介绍和使用 安装ssh key 3 idea中配置并使用git idea配置git 1 Git GUI 的使用 首先先将 git gui 汉化一下 把msgs文件夹copy到 Gi
  • 本地把虚拟光驱传到服务器,将文件传到服务器

    将文件传到服务器 内容精选 换一换 监控数据上报功能可以将系统中采集到的监控数据写入到文本文件 并以FTP或SFTP的形式上传到指定的服务器中 使用该功能前 管理员需要在FusionInsight Manager页面进行相关配置 监控数据上
  • windows服务程序中创建用户进程

    最近碰到个问题 需要在服务中检测用户桌面的情况 但是服务程序都是SYSTEM账户下运行 属于Session0 不能检测到用户桌面的情况 所以就需要另启一个用户进程来获取这些信息 然后发送给服务 所以就用到了 CreateProcessAsU
  • 卷积神经网络系列之卷积/池化后特征图大小怎么计算??

    1 卷积后的大小 W 矩阵宽 H 矩阵高 F 卷积核宽和高 P padding 需要填充的0的个数 N 卷积核的个数 S 步长 width 卷积后输出矩阵的宽 height 卷积后输出矩阵的高 width W F 2P S 1 向下取整 h
  • 小米路由器mini 安装openWrt+更新源+挂载U盘+安装python

    刚刚入手一个小米路由器mini 本来就是打算装openWrt的 想试试玩玩看 刷openwrt的基本流程是参考的如下博主的文章 http www right com cn forum thread 147929 1 1 html 没有遇到什
  • BUUCTF [极客大挑战 2019]FinalSQL

    极客大挑战 2019 FinalSQL 操作 脚本 总结 操作 打开题目 又是这个鬼 跟着他的流程走 点按钮 让我们试试别的 告诉我们对了 但是不是这张表 埋坑 怀疑这个地址是存在sql注入的 经过fuzz 发现过滤了空格 union之类的
  • DOM方式实现Excel导入

    DOM解析Excel 在我们的工作场景中经常会遇到数据录入的需求 有些批量数据录入太麻烦 就需要用到批量导入的方式来提高效率 这就涉及到读取Excel数据的技术 Appache Poi提供了DOM解析和SAX解析两种方式 本篇主要记录自己工
  • Windows Terminal 安装gsudo插件

    Gsudo Windows下类似于linux的sudo 可用于提权 新建 Windows Terminal 标签页时可以用于新建有管理员的页面 或者直接sudo将当前页面提权 需要在安装过程中把sudo命令和gsudo命令建立关联 Powe
  • elasticsearch python连接池吗_了解Elasticsearch及其与Python的对接实现

    什么是 Elasticsearch 但我们想查数据的时候就免不了搜索 搜索就离不开搜索引擎 百度 谷歌都是一个非常庞大复杂的搜索引擎 他们几乎索引了互联网上开放的所有网页和数据 然而对于我们自己的业务数据来说 肯定就没必要用这么复杂的技术了
  • 使用的工具

    文档 devdocs 开发知识 css tricks css技巧分享 开发工具 可以检测前端代码规范的工具 sonarlint 还未用过 样式工具 collect ui 用来查看设计的ui界面参考 其他工具 虚拟号码生成 https sms
  • CentOS8配置yum/dnf镜像源

    Centos8 dnf命令 DNF意思是 Dandified Yum 这是下一代的yum软件包管理器 Yum的派生 Centos8开始使用dnf工具来管理软件包 它可以在基于RPM的Linux发行版上安装 更新和删除软件包 它会自动计算依赖
  • MATLAB克劳特算法,克劳特(Crout)(LU)分解法求解线性方程组的matlab实现

    克劳特 Crout LU 分解法求解线性方程组的matlab实现 由会员分享 可在线阅读 更多相关 克劳特 Crout LU 分解法求解线性方程组的matlab实现 3页珍藏版 请在人人文库网上搜索 1 1 克劳特 Crout LU 分解法
  • c语言课程主要目的和内容,C语言程序设计课程教学大纲

    C语言程序设计课程教学大纲 C语言程序设计课程教学大纲 一 本课程的性质 目的和任务 1 课程的性质 本课程是计算机科学与技术专业的一门重要的专业基础课程 它既可以为其它专业课程奠定程序设计的基础 又可以作为其它专业课程的程序设计工具 2
  • OpenWRT 增加内核模块及应用方法

    进入package目录 创建模块目录 cd mcp branches V1 1 beta1 mcp package mkdir example 进入example目录 创建Makefile文件和代码路径 cd example touch M
  • VMware虚拟机Linux系统根目录空间扩充操作

    VMWare虚拟机安装的应用多了 导致根目录空间不足 有没有办法可以将根目录空间进行扩充呢 经过搜集各各资料 顺利解决问题 把服务器的空间由6G扩成8G 现将执行全过程总结如下 以 供分享 首先 介绍下大体的解决思路 要想扩充 必须要有一块
  • 最完整的分布式架构设计图谱

    我们身处于一个充斥着分布式系统解决方案的计算机时代 无论是支付宝 微信这样顶级流量产品 还是区块链 IOT 等热门概念 抑或如火如荼的容器生态技术如 Kubernetes 其背后的技术架构核心都离不开分布式系统 为什么要懂分布式架构设计 系
  • CF::B. Odd Swap Sort

    题目大意 有多组测试数据 每组测试数据为一个长度为n的正整数数组 问是否可以通过任意此特定操作 每次操作可以选择挨着的一个为奇数 一个为偶数的两个数交换 使数组变为不严格的升序数组 如果可以的话输出 YES 否则输出 NO time lim
  • git 代码管理工具3

    团队协作分支开发模式 一个好的 github 项目一般都有多个分支 master dev release分支 新建分支 branch git branch branch1 切换到目标分支 git checkout branch1 在本地的b
  • 如何通过轨迹信息判断驾驶人是否为同一人?

    轨迹识别问题旨在验证传入的轨迹是否是由所要求的人员产生 即给定一组单独的人员历史轨迹 例如行人 出租车司机 以及由特定人员生成的一组新轨迹 判定两组轨迹是否由同一个人员生成 这个问题在许多实际应用中都很重要 例如出租车驾驶人员身份认证 汽车