首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

机器学习与模拟仿真打造安全城市

农历新年假期已经结束,无数的人从全国各地回到城市中,相信你已经感受到城市的道路交通一如既往的拥挤起来。根据统计数据,全球每年大约有125万人死于交通事故。2016年仅在美国道路交通事故就造成了超过4万人死亡,460万人受伤。随着科技的发展,通过科技的手段是否能够减少这些数字呢?

如今Unity与美国华盛顿州贝尔维尤市已达成合作,致力为打造安全的城市交通而努力。通过使用机器学习和仿真模拟,我们将识别出不安全的十字路口,降低事故发生的风险。在这篇文章中我们会介绍项目本身,谈谈基本的计算机视觉概念,展示Unity是如何创建模拟环境来训练计算机学习模型的。

项目介绍

Unity和贝尔维尤市的这次合作是”Video Analytics towards Vision Zero”(面向Vision Zero的视频分析)项目的一部分。这个项目名字很长,所以我们要把它切分为几个概念来理解。

Vision Zero是个多国家多主体合作的道路安全项目,目标是建设一个零死亡零重伤的高速公路交通系统。Video Analytics towards Vision Zero (面向Vision Zero的视频分析项目)则是贝尔维尤市提出的技术计划,旨在通过视频分析识别出“未遂事故”,从而发现并改造不安全的十字路口,使其能够避免再次发生事故。

这个计划的首要目标是建立一个计算机视觉系统,利用遍布城市各个十字路口的摄像机,识别出不安全的路口。通过识别视频流中的物体对象以及它们的行进轨迹。例如:汽车、行人、自行车等,该系统能为交通规划者提供事故发生的频率和原因,还能审查危险情况,生成更为准确的报告。这些数据能让城市管理者采取安全措施,例如重新设计交叉车道、调整红绿灯时间、使用更清晰的指示标志,以达到项目的目标:零伤亡。

本文将重点介绍目标识别任务,这是安全系统计划的首要任务。后文还会介绍Unity编辑器能够根据现实世界创建模拟环境。

训练计算机视觉模型

计算机视觉是人工智能的一部分,旨在从图像和视频中提取信息。过去五年间,计算机视觉领域有了长足的进步,如今已经广泛用于自动理解真实图像内容(图像识别)。在这次项目中用到的计算机视觉模型能够学习理解多个十字路口视频中的内容,及视频中所发生的事件。

要达到这样的理解层次需要检测、分类和跟踪图像中的不同要素。检测是指定位图像中各个目标或景物。分类则是提供检出部分所属的类型。此外在图像中的每个目标都作为独立个体被跟踪,这在处理图像序列或视频时非常重要。所有这些元数据都是为了让机器学习模型能从整体上理解图像信息。

使用现实世界的图像为计算机视觉模型提供自举数据是一种很常见的做法。最初的识别和分类元数据由人工使用专用工具完成,这个过程被称为注释(Annotation)。

下图是一个Vision Zero的注释工具示例截图:

图中的方框标记了街道上的每个行人,这些方框都是工具操作人员手动标记的,红色虚线所围起来的“目标区域”也是如此。

当这些图像被注释完成后,其部分数据集会用于训练机器学习模型,而一小部分剩余数据则用于评估该训练模型对于陌生场景的识别能力。

下图是数据在训练监督式模型时的处理过程:

计算机视觉应用的一大挑战是要有充足而有价值的训练数据和评估数据。这些数据通常来源于手动注释现实世界的图像和视频,这也是Video Analytic项目的第一阶段任务的重点。但这个过程费时费力,而注释标签的质量会受到操作人员的主观因素、操作过程的不一致性或其他人为因素的影响。

即使不考虑成本和时间,捕捉到的数据也仍受现实世界所提供数据的限制。如果你要训练模型识别自行车和公交车,你要等待它们在同一帧出现才能开始训练。如果你想要知道模型是否会受到天气影响,比如雪、雨、雾的影响,你还要找一位气象学家一同研究,在其指示下启动摄像机进行拍摄。

仿真模拟能很好克服这些限制。模拟环境能够完全控制环境内容,包括环境中每个元素的性质,它可以产生近乎无限的训练数据和评估数据,在各种复杂情况下做出绝对精准的注释,包括特定和过程化生成的场景,从而能对尽可能多的场景进行分析。

场景和情节

现在了解下计算机视觉仿真模拟的核心要素:场景和情节。

场景包含静态元素和动态元素,还有在模拟环境中建模的参数。静态元素包括建筑物、街道、植被等,动态元素包括汽车、行人、自行车等,而参数则包括天气情况、一天中的时间(太阳位置)、雾气。

情节是场景内元素的各种固定配置。例如:行人的位置、汽车的行驶路线、是否有雨、道路情况如何等。可以把情节看作是场景的一个实例。

在上图中上方三个画面分别是场景的独立元素:静态资源、动态资源和参数(这里的相应参数则是天气)。下方画面则是上图这些元素所组成的完整的场景情节。

在创建模拟数据时,我们通常会将给特定场景生成不同情节的过程称为情节变体(episode variation)。这个过程可以进行定制,从而创建一套完全反映现实世界的模拟场景,用于训练机器学习模型。

使用Unity模拟现实世界

考虑到收集现实世界数据的成本和限制,人们很自然会想到利用Unity引擎来生成模拟数据,从而替换并扩充现实世界的数据。近年来,由于图形处理硬件和渲染技术的进步、VR/AR的出现,Unity已经发展成为一个完整的3D建模工具,能够生成高度逼真的模拟环境。目前已经有不少项目利用Unity 强大的模拟功能进行开发。其中一个受到广泛认可的项目便是SYNTHIA。

SYNTHIA项目由巴塞罗那自治大学的计算机视觉中心(简称CVC)完全基于Unity开发,可制作一系列合成图像和视频,用于描绘多种复杂情况下的街景。CVC在近20年中一直是计算机视觉研究的先驱,其SYNTHIA数据集已经成为无人驾驶汽车感知系统研究者的重要数据。

在Vision Zero项目中,Unity会与CVC一同合作,为贝尔维尤市提供最好的技术和专业知识。CVC通过贝尔维尤市提供的图形和3D模型,利用Unit中集成的Otoy’s OctaneRender,创建了一系列场景,作为训练数据和评估数据提供给微软开发的计算机视觉模型进行训练。

首次模拟

Vision Zero的关注焦点是交叉路口的车辆和行人间的互动。这意味着为了生成出计算机视觉所需要的数据,很多情况下(即场景中物体的变化),适当的模拟数据需要在刁钻的摄像机角度中展现部分城市区域的高层次细节。

下面这个的视频是贝尔维尤市交叉路口(位于第116大道和第12大道)的画面。从视频中的第16秒可以看出,模拟环境的画面有着极高的仿真效果。

这些场景十分逼真,由于场景是使用Unity资源创建的,我们会得到完全零错误的元数据,也就是说场景中的所有物品的分类都是近乎像素级的,这对计算机视觉模型是很重要的数据。不仅如此,场景中的距离、高度和材质也都有着精确的信息,不需要人工注释就能收集到。

下图是来自上面视频一个获取深度元数据的案例。

灰色阴影代表着每个物体与摄像机之间的距离,颜色越深距离越近。由于天空是没有数据的,所以显示为纯黑色。

注意:因为我们有着图像中十分精细的信息,我们甚至能区分出树上的每一片树叶和建筑物表面的细节。

视频中的另一个截图显示的是语义分割(Semantic Segmentation)。

对比前面所介绍的人工图像注释工具,我们能很清楚看出模拟环境的质量和精确度很高。我们可以基于像素对各个部分进行语义分割而不仅是一个方框来进行粗略的物体检测。这里有很多种不同的物体,在图中以不同的颜色表示。它能区分汽车和公交车,街道和人行道。利用模拟环境生成的元数据十分强大,模型可以通过这些数据预测不同对象之间的重叠情况,这比手动注释的数据更为精确。

下一步我们要开始对情节变体进行实验:加入不同的车辆、更多的未遂事故和天气变化等。并生成一个全面的数据集,提供给计算机视觉模型进行训练。在项目规模扩大后,我们还会研究新建街道交叉路口的情况。

最初模型会关注高精度的语义分割。而后模型会检测物品的行动轨迹,实现完整的“未遂事故”检测模型,提供自动分析报告,这便是项目所要达到的目标。

Unity将大力支持微软评估计算机视觉模型性能的变化,根据需要改变模拟环境。基于不同团队的研究结果,包括CVC团队,我们将混合真实数据和模拟数据,确保模型能得到训练后的最佳结果。当项目有更多实质进展时,我们将会发布新的分享文章。

用Unity进行仿真模拟的未来

鉴于这个项目要解决技术上十分复杂的问题,它的最终目标,也就是提高城市的安全并拯救生命,成为了凝聚所有这些优秀团队的天然催化剂。Unity、CVC、贝尔维尤市分别代表了业界、学术界和政府,共同为实现这个目标而努力。

Unity位于这一切的中心,给予了其他合作伙伴许多帮助和支持。这非常符合Unity的核心价值观:使开发大众化、解决疑难难题、助力取得成功。在项目发展期间,我们取得了无价的知识,而这些知识也会反馈到Unity本身,让所有人获益。Unity的仿真模拟将会变得更强大且更易于使用,我们很高兴能为建立更安全的世界献上自己的一份力。

鸣谢

该项目的合作伙伴有:

Franz Loewenherz,贝尔维尤市首席交通运输规划师,视频分析计划主要负责人。

Antonio M. López教授,计算机视觉中心首席研究人员,巴塞罗那自治大学计算机科学系副教授,也是CVC中Jose A. Iglesias教授研究部门的科学家。

Ganesh Ananthanarayanan,微软研究院移动与网络部研究员。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180223A0FGAJ00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券