自动驾驶汽车:人工智能最具挑战性的任务

news2024/11/26 7:18:45

据说,自动驾驶汽车是汽车行业梦寐以求的状态,将彻底改变交通运输业。就在几年前,对自动驾驶汽车的炒作风靡一时,那么到底发生了什么呢?这么多公司吹嘘到2021年我们将迎来的无人驾驶汽车革命在何处?事实证明,制造自动驾驶汽车比想象的难得多。让我们了解一下自动驾驶汽车的发展现状、它作为当代最具挑战性任务之一的原因,以及我们可以为此做些什么。  

自动驾驶汽车的发展现状

自动驾驶汽车前景广阔:它们将改变我们的道路,创造更安全的驾驶体验。毕竟,统计数据表明,90%以上的交通事故都是人为失误造成的。早在2015年或2016年,许多汽车制造商就宣布了在未来几年让全自动商用车上路的重大计划,但我们早已超过他们最初的预期时间。对于汽车产业而言,这是个激动人心的时刻,但炒作却远远超出现实。那么,全自动驾驶汽车到底已取得哪些进展呢?利用SAE(国际汽车工程师学会)广为接受的驾驶自动化分级,有助于我们评估自 动驾驶汽车的进展情况。自动化可分为五个级别,从0级(无自动化)到5级(全自动化)。

  • 0级:无自动化(驾驶员完全控制汽车)
  • 1级:驾驶员协助
  • 2级:部分自动化
  • 3级:条件自动化
  • 4级:高度自动化
  • 5级:全自动化(自动驾驶汽车)

目前,大多数售出的汽车至少都处于1级水平,即可以提供一些辅助驾驶功能。这些功能包括车道辅助或自适应巡航控制。特斯拉Autopilot级别为2级,这意味着它可以控制方向盘和速度,但驾驶员仍然需要密切关注情况,随时准备手动驾驶。本田在2021年3月推出一款已经达到3级水平的车型——Legend Sedan,该车型仅在非常特定的条件下才需要驾驶员手动驾驶。至于4级,有几家公司在这方面取得了进展:通用汽车、戴姆勒和谷歌的进展都值得注意。例如,谷歌Waymo在特定的地理围栏内(即美国亚利桑那州的某些郊区和其他几个受控地点)可实现全自动驾驶。我们预计这项技术将于2024年和2025年得到应用。目前,市场上还没有自动驾驶水平达到5级的汽车,各公司在认识到全自动驾驶与生俱来的巨大挑战后,纷纷推迟了其部署时间表。这种渐进式发展的一个积极结果是,汽车将逐步提升自动化水平,而不是一蹴而就,从而帮助建立客户的信任感。很难说我们什么时候会迎来无人驾驶汽车的革命。我们与其做出更多可能无法实现的预测,不如专注于解决实现具体目标的挑战。  

制造自动驾驶汽车为什么如此具有挑战性?

归根结底,问题在于,制造出能适应各种情况的全自动驾驶汽车极其困难。这比汽车专家在开始预测时认识到的情况要复杂得多,因此,各公司要么推迟时间表、要么出售自动驾驶汽车部门,要么改进研制方法。我们来谈谈自动驾驶汽车项目如此困难的原因:

  • 世界太复杂。自动驾驶汽车必须在一个高度复杂的世界中行驶,其中包括各种道路、路牌、行人、其他车辆、建筑物等等。
  • 人类难以捉摸。自动驾驶汽车不仅需要了解驾驶员,还需要能够预测人类行为,而我们知道,人类行为相对而言不可预测。
  • 技术太昂贵。自动驾驶汽车必须安装有关硬件(比如摄像头、激光雷达系统和雷达)用于捕捉外部世界信息,并帮助汽车做出决策。但这种硬件还需要显著改进,才能提供汽车所需的详细数据水平。它的性价比也不是很高。
  • 训练必须全面。我们需要针对各种可能发生的情况(例如,雪或雾等极端天气)对自动驾驶汽车进行训练;但要预测汽车可能遇到的所有情况却非常困难。
  • 没有犯错的余地。自动驾驶汽车直接影响着驾驶员和乘客的安全,生死攸关。自动驾驶系统必须非常准确。

 

数据是关键

要解决上述挑战,就要从它们的根源入手。为此,我们需要了解自动驾驶汽车的工作原理。自动驾驶汽车要依靠人工智能(AI),尤其是计算机视觉模型,使汽车能够“看到”周围的世界,然后根据所看到的情况做出决定。数据通过汽车上的硬件(如前所述,摄像头、激光雷达、雷达和其他类型的传感器数据)捕获,并用作模型的输入。例如,要让汽车对道路上的行人做出反应,就需要汽车之前看到过表示这种情况的传感器数据。换言之,汽车需要使用代表所有可能的场景和情况的数据予以训练。想想乘坐汽车的经历,不难理解,道路上会发生各种各样的情况,因此就要有大量训练数据。仅行人一方面,就需要在训练数据中包括儿童和成人、坐轮椅的人、婴儿车的婴儿以及其他意想不到的场景示例。例如,我们还希望自动驾驶模型能够将实际行人与标志牌上的人脸图片区分开来。可以看出,看似简单的用例很快就会变得复杂。不仅汽车需要大量的训练数据,这些训练数据还需要进行准确的标注。AI模型无法只是看着行人的图像就能理解看到的是什么;我们还需要有清晰的标签,说明图像的哪一部分包括行人。由于这种复杂性,就需要为自动驾驶汽车AI模型提供许多不同类型的标注数据:

  • 激光雷达和雷达数据点云标注:识别并跟踪场景中的对象
  • 2D标注(包括相机数据的语义分割):使模型理解各像素所属类别
  • 视频对象和事件跟踪:帮助模型理解场景中的对象如何随时间移动
  • 等等

数据标注几乎没有出错的余地,也不容缺少关键用例。最终,自动驾驶汽车的数据采集和标注是个非常耗时的资源密集型过程,但很多公司在一开始并未完全认识到这一点。这就是导致自动驾驶上市时间延迟、性能堪忧以及仍未推广的原因。不过,这些问题也是汽车制造商为取得成功而需要解开的关键难题。  

准确性、多样性和效率是确保安全的关键

为进一步了解自动驾驶汽车数据的关键考虑因素,我们找来了澳鹏数据科学家杨晓瑞(音译),她专门从事计算机视觉研究。

准确性准确感知周围环境,检测并预防危险,对自动驾驶汽车顺利完成运输任务至关重要。数据应该足够准确,这样AI模型才能从中学习,只有对障碍物的位置进行精确推断才能做出合理的决策。例如,如果模型无法准确检测到在最近车道上沿水平方向移动的卡车,就往往导致错误的刹车,从而让用户体验大打折扣。

多样性场景:实际环境的天气可能多种多样:下雨、下雪、有雾;不同光照条件:晴天、黑夜、大雨前的阴天等。自动驾驶汽车应该能够应对所有场景。因此,训练数据既要包括常见的情况,还要包括罕见的情况。

各种模式:传感器在不同环境中表现不一。例如,由于物理特性,激光雷达在雨天或雪天的性能会下降。从直观上看,相机在晚上无法像在白天看得那么远。因此,大多数公司在困难的环境感知情况下仍然使用多种类型的传感器来互相补充。

效率当各公司在一个新的国家/地区或城市用自动驾驶汽车进行试验时,数据的效率对整个试验的进展至关重要。如果没有按时准备好标注的训练数据,项目延迟风险就会增加。一个好的数据合作伙伴应该能借助先进的感知模型及时提供数据,并为其他耗时的任务节省时间。  

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1213469.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

LeetCode(18)整数转罗马数字【数组/字符串】【中等】

目录 1.题目2.答案3.提交结果截图 链接: 12. 整数转罗马数字 1.题目 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。 字符 数值 I 1 V 5 X …

javaweb---maventomcat使用教程

文章目录 今日内容0 复习昨日1 Maven1.0 引言1.1 介绍1.2 下载1.3 安装1.3.1 解压1.3.2 配置环境变量1.3.3 测试 1.4 仓库1.5 Maven配置1.5.1 修改仓库位置1.5.2 设置镜像 2 IDEA - MAVEN2.1 idea关联maven2.2 创建java项目2.3 java项目结构2.4 pom2.5 导入依赖2.5.1 查找依赖2…

【Hello Go】Go语言基础类型

Go语言基础类型 基础类型命名变量变量声明变量初始化变量赋值匿名变量 常量字面常量常量定义iota枚举 基础数据类型分类 fmt包的标准输入输出格式说明输入类型转换类型取别名 基础类型 命名 Go语言中的命名遵循下面的几个规则 必须以字母或者是下划线开头不能使用Go语言中的…

C/C++---------------LeetCode第1394.找出数组中的幸运数

找出数组中的幸运数 题目及要求暴力算法哈希算法在main里使用 题目及要求 在整数数组中,如果一个整数的出现频次和它的数值大小相等,我们就称这个整数为「幸运数」。 给你一个整数数组 arr,请你从中找出并返回一个幸运数。 如果数组中存在…

过滤器模式 rust和java的实现

文章目录 过滤器模式实现 过滤器模式实现javarustjavarust rust代码仓库 过滤器模式 过滤器模式(Filter Pattern)或标准模式(Criteria Pattern)是一种设计模式,这种模式允许开发人员使用不同的标准来过滤一组对象&…

C++ opencv基本用法【学习笔记(九)】

这篇博客为修改过后的转载,因为没有转载链接,所以选了原创 文章目录 一、vs code 结合Cmake debug1.1 配置tasks.json1.2 配置launch.json 二、图片、视频、摄像头读取显示2.1 读取图片并显示2.2 读取视频文件并显示2.3 读取摄像头并写入文件 三、图片基…

C# 之 选择并调用文件[winform]

winform 之 选择并调用文件 在 form.cs[设计] 文件中选择一个button, 然后设置一个点击函数 将下方内容复制到函数中执行 private void push_btn_Click(object sender, EventArgs e){ // 1. 打开文件管理器选择文件OpenFileDialog openFileDialog1 new OpenFileDialog(); /…

【数电】IEEE754浮点数

IEEE754浮点数 1.组成及分类2.计算(1)符号位(2)阶码(3)尾码(4)实际计算公式 1.组成及分类 (1)组成 IEEE754浮点数由三部分组成:符号位、阶码和尾码。 (2)分类 根据数据位宽分为三类:短浮点数、长浮点数和…

PHP项目学习笔记-萤火商城-增加一个模块(表涉及到的操作和文件)

背景 是在store的后台添加一个页面,显示的如满意度调查的页面 在router.config.js里面配置一个新的菜单 路径:yoshop2.0-store\src\config\router.config.js 代码如下,很简单,定义了这菜单点击的时候进入的页面,和下面…

Donut 中,video组件层级失效、同层渲染失效、z-index设置无效解决办法

微信小程序转安卓之后,z-index设置的层级关系失效,video组件总是处在最上层解决办法: 很重要的设置! 同层渲染要开 xweb,project.miniapp.json中勾选此设置 感谢腾讯官方大佬 黄嘉敏

【Git】的分支与版本

前言 Git 的分支是指将代码库从某一个特定的提交记录开始的一个独立的开发线,也可以理解为是一种代码开发的并行方式。分支在 Git 中的使用非常广泛,它可以让多人在同一个代码库中并行开发,同时也能够很方便地进行代码版本控制和管理。 Git …

PM2学习

目录 PM2简介 pm2的主要特性 PM2安装 启动PM2项目 查看应用列表(查看当前机器执行的所有进程) 查看某个应用详情 重启 停止 删除 日志查看 负载均衡 监控CPU/内存 内存使用超过上限自动重启 监听代码变化/自动重启 PM2简介 PM2是常用的node…

什么是OpenCL?

什么是OpenCL? 1.概述 OpenCL(Open Computing Language 开放计算语言)是一种开放的、免版税的标准,用于超级计算机、云服务器、个人计算机、移动设备和嵌入式平台中各种加速器的跨平台并行编程。OpenCL是由Khronos Group创建和管理的。OpenCL使应用程序…

modbus-RTU是一种比较简单、可靠的协议

modbus-RTU是一种比较简单、可靠的协议 RTU, 是modbus中的一种应用层协议,在OSI的第七层 数据格式 应用

[C国演义] 第二十章

第二十章 最长回文子序列让字符串成为回文串的最少插入次数 最长回文子序列 力扣链接 单个数组讨论子序列 ⇒ dp[i] -- 以nums[i]为结尾的所有子序列中, 回文子序列的最长长度. 然后讨论 最后一个位置的归属情况 但 又要满足 回文结构 ⇒ 二维dp ⇒ dp[i][j] -- 区间[i, j]内…

类加载器(classloader)

作者:ZeaTalk 链接:https://www.zhihu.com/question/49667892/answer/690161827 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 类加载器(classloader) 先从类加载器…

【数据结构】直接插入排序

👦个人主页:Weraphael ✍🏻作者简介:目前正在学习c和算法 ✈️专栏:数据结构 🐋 希望大家多多支持,咱一起进步!😁 如果文章有啥瑕疵 希望大佬指点一二 如果文章对你有帮助…

第八章:枚举

系列文章目录 文章目录 系列文章目录前言一、枚举总结 前言 类可以作为常量使用。 一、枚举 枚举是一组常量的集合。可以这里理解: 枚举属于一种特殊的类, 里面只包含一组有限的特定的对象。 枚举的实现方式自定义类实现枚举使用 enum 关键字实现枚举…

MySQL 分库分表与 TiDB(平凯数据库),如何选择?

随着互联网行业的飞速发展,数据量不断增长,传统的关系型数据库已经无法满足大规模数据处理的需求。为了解决这一问题,分库分表和分布式数据库应运而生。本文将对比分析 MySQL 分库分表和 TiDB 这两种解决方案,帮助大家更好地选择适…

自动化测试和手工测试有什么不同以及自动化测试和手工测试应用范围的对比

一、初识自动化测试 如果以前没有做过自动化测试,那么就不了解自动化测试,可能会觉得自动化测试比较神秘,但是,我们在日常的计算机操作中,可能会碰到一些自动化处理的过程,这些过程和自动化测试比较接近。 …