自动驾驶落地,究竟被什么绑住了脚?
自动驾驶汽车的行驶范围将不再局限于测试跑道或是平静的郊区街道,它们出现在美国的纽约、旧金山以及匹兹堡等地,参与到真实世界的交通中去,也进驻欧洲、韩国、新加坡和日本等国家,在人类的包围中磨练自身的技能,还准备用它们的机器人系统完善混乱、无秩序的街道交通。
在类似波士顿这样的城市学会如何开车是非常具有挑战性的,那里有颇具创意的左转弯以及貌似随意的让行规则。不过,与发展中国家中司机的侵略性驾驶方式以及城市错综复杂的道路相比,这些都不足为惧了。跟那些对交通信号、警示和限速标志没有一点尊重意识的司机比起来,Patriots 橄榄球队(球队以横冲直撞的打法著称)的球迷看起来都算是正常人了。
全世界范围内,有许多道路没有车道,交叉路巨大而混乱。在这样的地方,行人的动作支配着道路的交通状况,每个司机都需要根据其他人的行为当场调整自己的驾驶策略,根本不会考虑到交通规则对自己的约束。
这些不正规的交通系统存在于许多地区,造成了严重损失。根据 2013 年世界卫生组织的最新数据,全世界有 50 个国家拥有这种极度危险的道路,其中有 44 个国家位于非洲或中东地区。2013 年,这些国家的交通事故死亡人数接近 25 万,占当年世界交通事故死亡人口总量的五分之一。
然而,事实是这些可以受益于自动驾驶汽车的地区不可能在短期内获得这种技术。
「很多我们现在正在自动驾驶领域做的工作可能并不会在第三世界国家成功落地。」密歇根大学福特自动驾驶汽车中心主任 Ram Vasudevan 说道。
不守交规的人类车辆,无所畏惧的行人,随时发生的混乱状况
自动驾驶技术需要理解道路上每一个人和每一样事物的行动意图和行驶轨迹,包括车辆、自行车、行人、建筑工人、玩耍的孩童、宠物,甚至是玩具枪意外发出的飞镖。在驾驶环境中,人们遵循着一套既定的规则,而自动驾驶汽车在环境中的期望行为则需要受到法律的约束。
所制定的交通规则越少,意图的预测能力就越重要。因为有人可能会做出一些意想不到的举动,所以汽车不能单纯地依赖共通的准则支配自己的行为。例如,只有在道路上其他人都遵守车道线规则的情况下,司机把车辆停放在车道线内才有用,如若不然,还是会存在危险。
与郊区以及美国城市相比,中东和非洲国家的驾驶环境是比较随意的。在黎巴嫩,看到车辆行驶在错误的车道上,闯红灯,甚至是出于恶作剧的心理,无视交通法规在宽阔的马路上呈「Z 字」前行,这些都是很常见的。
「这里没有规矩,一切都是可能的。」美国贝鲁特大学的计算机视觉专家及工程教授 Daniel Asmar 说道,「人们可以很好地应对这样的情况,哪怕他们也会因此变得沮丧或是向对方狂按喇叭。」而对于电脑来说,这样混乱的情况是非常巨大的挑战。
Vasudevan 认为,即便是在相对有序的环境中,突发混乱也会造成交通堵塞甚至事故的发生,例如自动驾驶汽车在高速公路上并道的时候犹豫的时间过长。这可能是汽车软件的原因,为了安全起见不愿在超速车的前面合并,或是需要更多的时间掌握周围场景及其他车辆的意图。如果把车放在一条不存在或是可以忽略指示路牌、交通信号以及让车规则的道路上,通常需要一定的反应时间来提升系统的性能以应对当前境遇。
更重要的是,自动驾驶汽车还需要地图数据的支持,而世界上许多地区都还无法提供这样的信息。自动驾驶技术需要覆盖一切街道信息的详细地图,包括通过街道的限制高度、因临时施工而设置的绕行道路以及街道标志与交通信号在三维空间中的精确位置。自动驾驶车队已经在一些城市中行驶,不断捕获数据,并对其进行更新升级,研制了这样的地图。
- java枚举类型enum的使用
- (66) 理解synchronized / 计算机程序的思维逻辑
- 用Python搭建一个校园维基网站(一)
- (67) 线程的基本协作机制 (上) / 计算机程序的思维逻辑
- 制作Aspose CHM文档的过程记录
- 用python搭建一个校园维基网站(二)—— 可编辑内容的首页的创建
- Django博客教程(四):让 django 完成翻译—迁移数据库模型
- Calendar类中add/set/roll方法的区别
- 如何构建一个分布式爬虫(理论篇)
- Python微型Web框架Bottle源码分析
- VirtualBox相关问题总结
- Java 枚举7常见种用法
- ALI的Tensorflow炼成与GAN科普
- LaTeX内容总结
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- linux定时任务的一些相关操作汇总
- Linux nohup命令原理及实例解析
- 基于centos7快速安装mysql5.7教程解析
- Centos8下django项目部署 nginx+uwsgi的教程
- 3分钟短文:Laravel把数据验证的手伸向“请求体”
- 「Redis」字符串
- Elasticsearch:pipeline aggregation 介绍
- Qt音视频开发32-Onvif网络设置
- 3分钟短文:说说Laravel模型关联关系最单纯的“一对一”
- Redis 缓存性能实践及总结
- 如何优雅的在react-hook中进行网络请求
- Git commit emoji 食用指南
- 编译安装 ProtoBuf 扩展
- 一键搭建 KMS 服务
- vuepress-theme-yur 使用教程