Podcast Script (zh)
[0.120-12.473] SPEAKER_04: 今天请来的是Waymo工程总监、感知部门负责人。 他们最近自动驾驶里程超四百万英里,并且 这个成就鼓舞全球,展现了AI和优秀
[12.553-15.687] SPEAKER_04: 工程学的极致。热烈欢迎Sascha Arnoux。
[15.987-22.488] SPEAKER_02: 感谢Lex介绍。今天满座,谢谢。 很激动,感谢您给我这个机会。 分享我对自动驾驶的热情,并能
[22.568-27.177] SPEAKER_02: 分享Waymo过去十年的杰出工作。 详细讲讲我们最近的里程碑。
[27.477-28.475] SPEAKER_04: 谢谢。
[28.775-34.603] SPEAKER_02: 如大家所见,今天话题很多,有些偏技术, 有些偏背景,总之我有三个目标。
[34.683-44.342] SPEAKER_02: 想告诉大家。演示时请记住这几点。 第一个目标,介绍一些关于 自动驾驶领域的背景。 以及现状、造车条件,同时
[44.422-53.280] SPEAKER_02: 还有幕后视角和机器学习历史趣闻。 深度学习,还有这一切在Alphabet家族中 从Google到Waymo融合。另一个目标,当然,
[53.360-61.127] SPEAKER_02: 给大家提供当前有效技术的干货。 我们的自动驾驶车。课程里你听到很多,已听过。 很多关于深度学习技术、模型、架构。
[61.207-85.778] SPEAKER_02: 算法。我试着整合成连贯整体,这样你就能 看到各部分怎么组合,构建出今天的系统。 最后同样重要,像Lex说的,实际需要的远不止 算法来构建我们公司这样复杂的系统。 这确实很有帮助。 但显然,大家都知道,要让自己的自动驾驶车 上路真的很难。 但如果你有时间也想要,这个小家伙是个 夏威夷。 所以我总结这场辩论,深入谈谈我学到的 教训和竞争方面。
[85.858-93.717] SPEAKER_02: 我们的自动驾驶车,需要完整工业项目才能 实现,我试着加点色彩,希望能和 你本周听到的略有不同,我告诉你
[94.017-99.763] SPEAKER_05: 实际开展这样一个工业项目需要什么, 现实中,让机器学习达到生产级别,所以我们
[100.063-112.023] SPEAKER_02: 听到很多讨论,很多自动驾驶车内容,非常热门的话题, 而且理由充分,我肯定告诉你2017年是伟大的一年。 其实一年前,2017年1月,Waymo才独立。
[112.103-118.604] SPEAKER_02: 那是个重要里程碑,也证明了方案的稳健性。 这样我们就进入了产品化阶段。 产品化阶段,图片里看到的是
[118.684-127.066] SPEAKER_02: 我们最新一代的自动驾驶车,基于克莱斯勒 Pacifica。你看到一堆传感器,稍后我会解释。 这就是它们的功能和运作方式。
[127.146-137.806] SPEAKER_02: 这是最新最先进的。所以自动驾驶引起了广泛关注, 而且有充分理由。我个人相信, 你也会同意,这是非常重要的项目, 自动驾驶有潜力深刻改变
[137.886-146.384] SPEAKER_02: 我们对出行方式的看法,以及运送人和物的方式。 所以仅仅覆盖几个方面,我不想深入太多 细节。但安全是主要动机之一。
[146.464-156.297] SPEAKER_02: 美国94%的交通事故涉及人为错误, 很多错误由于分心和可避免的事。 所以安全是很大一部分,无障碍出行和便利性也是动机,
[156.377-164.654] SPEAKER_02: 自动驾驶技术有潜力使其 真正普及且更便宜,让更多人出行, 最后但同样重要的是效率,集体效率。所以我们不仅
[164.734-174.416] SPEAKER_02: 我每天花很多时间在车上,通勤特别长。 通勤时间长。这些时间本来可以做更有价值的事。 而不是在复杂路况里开车。除了交通,
[174.496-178.187] SPEAKER_02: 自动驾驶绝对能深刻改变我们
[178.487-183.595] SPEAKER_05: 对交通、停车、城市和设计的认识。所以 这话题特别让人兴奋。
[183.895-198.804] SPEAKER_02: 我们在Waymo的使命,就是彻底让 人和物移动得更安全便捷。这使命很棒,我们为此 已经努力了很久。 所以其实, 整个, 抱歉,整个, 所以其实,整个, 所以其实,整个,
[198.884-206.906] SPEAKER_02: 项目大概开始于十年前,2009年。 当时它是个谷歌 的项目,可能你听说过,叫Chauffeur。 那时候,要知道,
[206.986-219.550] SPEAKER_02: 深度学习还没兴起,至少这行是这样。 所以最初的目标是 这个项目要试着造出首个原型 用现成传感器来组装车辆 并判断自动驾驶是否可行 看看是否可能
[219.630-226.549] SPEAKER_02: 有个原型是一回事,但 它值不值得追求,这是 谷歌常这样处理问题 所以源于一个激进目标 设定激进目标
[226.629-231.156] SPEAKER_02: 团队的第一个里程碑 就是组装10个百英里环路,在北
[231.456-236.041] SPEAKER_05: 加州山景城周围,尝试弄清楚
[236.341-250.623] SPEAKER_02: 总共1000英里,看能否造一个 首个能自动驾驶这些环路的系统 请提供需要改写的原文。 所以他们不怕 所以团队不怕 这些环路非常激进 你可以想想 想想他们打算怎么做 所以你考虑那个。 你在考虑那个。 你在考虑那个。
[250.703-259.027] SPEAKER_02: 有些循环路线穿过圣克鲁斯山脉。 这是加州,我给你看一段视频,里面有很小的路。 有双向道路,还有带障碍的悬崖和复杂
[259.107-267.268] SPEAKER_02: 模式,比如有些路在高速上开,所以 还有一条最繁忙的高速,有些路线绕行 太浩湖在加州的内华达山脉,那里你可以
[267.568-278.202] SPEAKER_05: 遇到不同天气和路况 条件,这些路线绕桥走,湾区有 很多桥梁要穿过,有些甚至穿过了 密集城区,所以你可以看到开车过旧金山,你可以看到
[278.282-291.810] SPEAKER_05: 蒙特雷,有些中心区开车经过 如你所见,圣克鲁斯山脉被绕行 如视频所见,这些确实带来了密集城区的 挑战。 既然我答应了,这里你将 看到一些开车画面。
[291.890-302.480] SPEAKER_05: 它有点作用。 这里画质更好,所以你 看到圣克鲁斯提到的那些路 山区夜间驾驶,动物横穿街道 高速公路驾驶,以及经过 那是蒙特雷地区,很密集
[302.560-306.902] SPEAKER_05: 那里有个水族馆,很受欢迎 那是旧金山著名的伦巴底街
[307.202-314.005] SPEAKER_02: 你可能听说过,旧金山总是 带来它独特的挑战 在雾气和斜坡之间,还有急转弯
[314.305-321.387] SPEAKER_05: 那是在2010年 那十个循环全部成功完成 自主完成 那是八年前的事了 在成功推动下,团队
[321.467-330.511] SPEAKER_05: 决定,谷歌也决定自动驾驶 值得追求,并继续推进 技术及测试开发 这些年来我们一直在努力 并且非常努力地工作
[330.591-342.191] SPEAKER_05: 历史上,要多得多。 我觉得其他公司 一直靠安全驾驶员,让他们还坐在 方向盘后面。 就算车子在自动驾驶, 还有一个安全驾驶员 能随时接管并确保
[342.271-350.514] SPEAKER_05: 我们运营很安全。 我们一直在积累里程和知识, 并开发系统,多次迭代 贯穿这些年。 我们达到了一个重要里程碑,就像Lex说的,
[350.594-359.649] SPEAKER_05: 去年11月,我们首次 系统信心和成熟度达标了, 我们自信并证明了 移除安全驾驶员很安全。 可以想象,这是个重要里程碑,
[359.729-366.718] SPEAKER_05: 因为这需要很高的信心, 没有安全驾驶员备用 来在出问题时接管。 下面,我给大家看一段小视频。
[367.018-371.023] SPEAKER_02: 那次事件很快就拍下来了。 这个视频是早期尝试之一。
[371.323-379.589] SPEAKER_05: 从那以后,我们一直在做。 运营无人驾驶汽车,即自动驾驶。 在亚利桑那凤凰城扩展测试。 这里,视频正在播放。 这是我们的克莱斯勒Pacifica。
[379.669-387.494] SPEAKER_05: 这是我们的团队成员。 我们扮演乘客。 我们坐到了后座。 驾驶座上没有司机。 我们在运行叫车服务。 乘客只需按个按钮。
[387.574-394.296] SPEAKER_05: 应用知道去哪,车就出发。 驾驶座上没有人。 我们从受限地理区域开始。 在凤凰城附近的钱德勒。
[394.376-397.870] SPEAKER_05: 我们努力扩展测试。 自那以后,运营范围不断扩大。
[397.950-406.030] SPEAKER_05: 所以这不只是一辆车、一天的事。 我们不仅一直这样做,而且还要 持续扩大自动驾驶车队。 我们一直在那里部署, 争取尽快推出产品。
[406.110-410.394] SPEAKER_05: 我讲到2010年,现在是2018年,目标快到了。
[410.694-415.303] SPEAKER_02: 但这花了相当长的时间。 今天我想传达的一个关键想法
[415.603-427.076] SPEAKER_05: 就是反复强调:需要付出很多努力。 把一个演示或实验室能行的东西 变成你觉得安全上路、获得 所有数据,这需要多少努力。 谢谢。 直到达到那种理解的深度,
[427.156-438.292] SPEAKER_05: 技术完美到让你安全运营。 有句话叫:当你完成90%时, 其实还有90%的路要走。 技术的90%只用了10%的时间。 换句话说,你需要做到十倍。
[438.372-446.568] SPEAKER_05: 需要把技术能力提升十倍。 团队要扩十倍,让更多工程师一起合作。 研究人员一起协作。 传感器能力提升十倍。 系统整体质量提升十倍。
[446.648-451.872] SPEAKER_05: 还有测试实践,我们会看到很多。 项目中的方方面面。 这就是我们一直努力的方向。
[452.172-454.865] SPEAKER_02: 除了自动驾驶汽车
[455.165-465.895] SPEAKER_05: 我给你一个内部视角,关于崛起 深度学习的。 记住,我提到2009、2010年时 深度学习还没真正可用 行业里还没完全成熟。 那些年,实际上,它
[465.975-473.811] SPEAKER_05: 需要很多突破才能达到。 其中之一是算法突破 深度学习带给我们的。 我给你一点幕后视角 讲讲谷歌那些年的事。
[473.891-483.771] SPEAKER_05: 如你所知,谷歌致力于 我很早就接触了机器学习和深度学习。 你可能听过谷歌大脑,这是我们内部叫法。 谷歌大脑团队工作非常勤奋。
[483.851-498.946] SPEAKER_05: 他们引领研究前沿,众所周知。 同时,还领导开发工具和基础设施。 覆盖整个机器学习生态系统。 谢谢。 所以,谷歌大脑团队是个什么样的团队? 他们一直钻研深度学习和相关系统。 在谷歌和Waymo,帮助很多团队。
[499.026-513.935] SPEAKER_05: 大规模开发机器学习,直至成功。 推出成功产品。 所以他们一直在努力推动。 深度学习技术一直推动着领域发展。 在多个方向,从计算机视觉。 到语音理解,再到自然语言处理。 所有这些方向。
[514.015-524.884] SPEAKER_05: 你都能在谷歌产品里看到。 所以无论是谷歌助手还是谷歌相册。 语音识别,甚至谷歌地图。 深度学习在各领域的影响很明显。 其实,多年前我本人
[524.964-533.845] SPEAKER_05: 曾是街景团队的一员。 我当时负责一个内部项目。 我们叫它Street Smart。 我们做Street Smart的目标是 用深度学习和机器学习技术
[533.925-545.793] SPEAKER_05: 来分析街景图像。 如你所知,这个语料库庞大多样。 这样我们就能提取核心元素。 用于地图策略,并借此 打造更好的谷歌地图。 比如,那张图片里
[545.873-556.368] SPEAKER_05: 是一张街景全景图。 可以看到很多区域。 如果找到并正确定位,就会 大大地 帮你打造更好的地图。 所以很明显,门牌号 对地址定位很有用。
[556.448-569.059] SPEAKER_05: 街道名称,就算结合类似技术, Arial Views 帮您准确画出所有路线 并为它们命名 这两者结合,能 您进行高质量地址查询,这 是谷歌地图上的常见查询
[569.139-583.329] SPEAKER_05: 通用文本,更具体说, 商店外墙上的文字,能 你不仅能定位你可能 从别处获得的商家列表对应到实际位置, 还能直接建立部分本地列表 从零开始
[583.409-591.489] SPEAKER_05: 以及更多交通相关的模式, 不管是交通灯、交通标志, 然后用于导航ETA预测, 等等 这就是我们的使命
[591.789-601.773] SPEAKER_03: 如我所说,其中一个难点, 是规模化映射地址 所以你能想象,当我们有突破时 先得找对街道号码 从街景和建筑外墙
[601.853-603.687] SPEAKER_03: 这需要很多步骤
[603.987-612.648] SPEAKER_05: 还得找到号码在哪儿 你想想,在建筑外墙上 这是个语义难题 对吧? 街道号码和其他数字 有什么不同? 但显然得读出来,因为
[612.728-620.390] SPEAKER_05: 不理解的话,像素没用 外墙上的数字 然后要准确定位 这样才能放到谷歌地图 所以第一个深度学习应用 成功上线要追溯到
[620.470-624.672] SPEAKER_05: 2012年我们第一个系统上线 这真是第一个突破
[624.972-628.536] SPEAKER_03: 也是Alphabet的第一个突破 能读懂真实场景
[628.836-636.614] SPEAKER_05: 来看段视频说明这点。 你看,每个片段 都是车载视角。 到检测出的所有门牌号。 这里是圣保罗。 数据整合后,
[636.694-642.974] SPEAKER_05: 地址编排一致了。 另一个例子,情况类似。 巴黎那边图像更多。 所以门牌号画面更多。 通过三角测量,
[643.054-647.361] SPEAKER_05: 就能精确定位。 地图也更精准。 最后一个例子,
[647.441-654.906] SPEAKER_05: 南非开普敦,深度学习的成效 质量提升巨大。 很多国家超95%地址 都是用这方式标注。
[654.986-668.235] SPEAKER_05: 也在做类似事。 同样。 3D图像和汽车真实场景,工作很相似。 但在汽车上做更难。 因为要实时、快速、低延迟。 还得在嵌入式系统里完成。 所以汽车得完全自主。
[668.315-674.654] SPEAKER_05: 不能依赖谷歌数据中心。 延迟上,没时间来回传数据。 也不能靠连接保证安全。 所以要在车内部处理。
[674.734-685.452] SPEAKER_05: 这是一篇2014年的论文。 那篇论文用了略有不同的技术。 首次把深度学习用到受限实时环境。 开始产生影响,围绕行人检测。 所以要在车内处理。
[685.752-688.584] SPEAKER_03: 那篇论文可以追溯到很早以前。
[688.884-699.033] SPEAKER_05: 2014年,那一年第一次, 用了些略有不同的技巧。 成功把深度学习投入实际应用。 在那个受限的实时环境中。 开始产生影响,围绕行人。 检测。
[699.113-705.753] SPEAKER_05: 就像我说的,很多类比。 要正确驾驶那个场景,你得看到, 比如街景,得看交通灯。 得知道灯是红还是绿。
[706.053-716.539] SPEAKER_00: 这正是你能处理的关键。 显然,驾驶更有挑战。 不止实时处理那么简单。 我知道你有没有看到骑车的经过。 所以场景里会有真实事件。 你得检测它们。 要正确理解、解释和预测。
[716.839-727.322] SPEAKER_02: 同时,他明确地 举了个夜间驾驶的例子展示。 虽然你可以选何时 拍街景图片,并且在白天 和完美条件下进行。 但驾驶要你面对实际路况。
[727.402-729.015] SPEAKER_02: 你必须应对它。
[729.315-732.345] SPEAKER_05: 所以从一开始就存在。
[732.645-734.839] SPEAKER_03: 跨面板合作其实有不少。 我觉得。
[735.139-742.441] SPEAKER_00: 在真实的工作场景里。 这里我拿几篇街景完成的论文。 这些论文,如果你看过, 会发现直接能用到我们的一些事。 在汽车上。
[742.521-749.208] SPEAKER_00: 但这种合作, 在谷歌研究和Waymo之间, 历史上远不止街景。 覆盖了所有研究团队。 而且这种强大的合作还在继续。
[749.508-752.851] SPEAKER_05: 让我们始终走在最前沿。 能做的事。
[752.931-755.682] SPEAKER_05: 现在我们看了 事情怎么发展的。
[755.762-763.389] SPEAKER_05: 我想花更多时间 深入讲讲细节。 关于今天汽车里的情况。 以及深度学习到底怎么运作。
[763.689-766.254] SPEAKER_03: 影响了我们当前的系统。
[766.554-769.468] SPEAKER_05: 所以我认为在……期间
[769.768-775.213] SPEAKER_00: 如果我没看错光标, 我觉得这周里面, 你经历了主要部分。 你需要掌握这些才能造自动驾驶汽车。
[775.293-787.578] SPEAKER_00: 所以,你一定听过地图绘制。 以及地图绘制、地图绘制和地图绘制。 以及地图绘制、地图绘制和地图绘制。 所以把汽车放进这些地图里。 还要知道你在哪。 以很高的精度,
[787.658-795.924] SPEAKER_00: 感知,场景理解, 这是更高层次的语义理解。 关于场景里发生的事, 开始预测其他物体。 会在你周围干什么。 这样你就能更好地规划运动。
[796.004-806.432] SPEAKER_00: 还有机器人学方面。 说到底, 这辆车在很多方面就像一个机器人, 无论是传感器数据 还是乘客信息。 所以如果你有控制它的界面, 所有搞过硬件和机器人的人,
[806.512-809.646] SPEAKER_00: 都会同意我的看法,这世界不完美, 你得处理这些错误。
[809.726-811.815] SPEAKER_00: 你可能还聊过其他部分
[812.115-815.203] SPEAKER_03: 比如仿真和验证 对你构建的任何系统。
[815.283-820.588] SPEAKER_03: 很明显,机器学习和深度学习 正在越来越多地带来巨大影响。 这些领域我就不多讲了。
[820.888-825.915] SPEAKER_00: 但在接下来的几分钟里, 我会更关注感知部分, 这是自动驾驶汽车的核心任务。
[826.215-828.188] SPEAKER_01: 那么什么是感知?
[828.488-831.854] SPEAKER_05: 简单说,感知就是车里的一个系统,
[832.154-834.325] SPEAKER_03: 需要理解周围的世界。
[834.405-836.994] SPEAKER_03: 它主要通过两个输入来实现。
[837.074-840.847] SPEAKER_03: 第一是现场的先验信息。 比如,给你举个例子。
[841.147-844.212] SPEAKER_01: 必须重新计算就有点傻了。 道路的实际位置。
[844.512-854.963] SPEAKER_05: 交叉口的实际互联情况。 到了现场,每个交叉路口的情况。 因为这些都可以预先计算。 你可以提前计算好。 节省车载计算资源。 用于其他关键任务。
[855.263-862.565] SPEAKER_00: 这通常叫地图绘制工作。 但实际上,就是地图绘制。 它就是为了减少计算量。 汽车行驶时,车上要做的计算。
[862.865-867.996] SPEAKER_05: 另一个重要的输入,显然, 是传感器提供给你的信息。 一旦到达现场。
[868.296-873.299] SPEAKER_00: 传感器数据就是信号。 它会告诉你哪些和地图不符。 比如交通灯是红还是绿? 行人在哪儿?
[873.599-876.095] SPEAKER_03: 车在哪儿? 他们在干嘛?
[876.175-882.119] SPEAKER_03: 所以,像一开始那张图里看到的, 它会告诉你, 我们的自动驾驶车配了很全的传感器。
[882.419-887.608] SPEAKER_05: 包括视觉、雷达,还有后来那类, 这是我们三大类传感器。
[887.688-889.255] SPEAKER_05: 有一点要注意,
[889.335-893.003] SPEAKER_05: 它们设计成互补的,对吧? 所以它们设计上是互补的。
[893.303-899.270] SPEAKER_03: 首先在车上的布局互补。 所以我们不放同一个位置, 因为盲点是个大问题, 而且希望视野覆盖得好。
[899.570-902.182] SPEAKER_01: 另外,它们互补 在能力上,对吧?
[902.482-908.704] SPEAKER_00: 举个例子吧, 摄像头非常擅长 提供密集的信息,对吧? 好比一堆密集的信息。 它承载了很多语义信息,对吧?
[909.004-914.007] SPEAKER_03: 你可以亲眼看到,真的。 很多很多的细节, 但它们不太擅长提供深度信息,
[914.307-927.614] SPEAKER_00: 或者说,从相机获取深度信息更难、成本更高, 对吧? 所以像激光雷达这类系统, 会给出极好的、极好的, 当它击中物体时, 能给你非常准确的深度估算。 但显然它们会丢失 很多你在相机系统里能找到的
[927.914-932.964] SPEAKER_03: 语义信息。 所以这些传感器在设计上是互补的, 就各自的能力来说。
[933.044-942.482] SPEAKER_03: 不用说,传感器越好, 你的感知系统就越好,对吧? 所以这就是为什么在Waymo, 我们选择了内部自行设计传感器这条路。 还能增强现有的功能。
[942.782-946.288] SPEAKER_00: 因为走到底很重要。 要构建自动驾驶系统。 一个我们信赖的系统。
[946.588-953.507] SPEAKER_03: 这就是感知模块的作用。 它接收这两个输入。 然后构建场景表示,对吧? 所以归根结底, 你得明白,自然界中,
[953.807-959.275] SPEAKER_05: 感知才是真正的区分。 深刻区分要做什么。 在自动驾驶系统里,和
[959.575-963.406] SPEAKER_03: 比如低级驾驶辅助系统相比。 很多情况,比如用定速巡航,
[963.706-967.154] SPEAKER_05: 或者做很多低级驾驶辅助, 很多策略都围绕 不撞东西。
[967.454-976.056] SPEAKER_00: 看到移动物体,你会分组, 适当分割成移动物体块, 而且不去碰撞它们。 多数时候你已够好,对吧? 当驾驶座没司机时,显然,
[976.356-982.056] SPEAKER_03: 驾驶座没司机,显然, 挑战规模完全变了。 举个例子, 如果车道上有骑车人
[982.356-990.134] SPEAKER_00: 在右侧慢行, 旁边有辆汽车, 你要意识到可能 那车会想避让, 骑车人会突然转向, 你要预判这种行为, 以便正确决定 是减速,
[990.214-993.847] SPEAKER_00: 让车还是加速, 让车从你身后过。 这些行为远超出
[994.147-996.039] SPEAKER_03: 不撞东西的范畴,
[996.119-1000.321] SPEAKER_03: 还需深刻理解周围世界。 周围发生的一切。
[1000.401-1004.011] SPEAKER_03: 我用画面来描述。 稍后再说那个案例。 这种场景很常见。
[1004.091-1008.317] SPEAKER_03: 路边停着警车。 可能是拦下人了。 有个骑车的人。 要开车通过这段路。
[1008.397-1015.258] SPEAKER_03: 首先,你必须这么做。 基础操作,对吧? 然后看传感器数据。 理解点云和像素集合。 属于那个骑车人。
[1015.338-1019.447] SPEAKER_03: 发现现场两辆车。 警车和前面那辆车。 把警察当行人。
[1019.527-1021.361] SPEAKER_03: 这是基础理解层面。
[1021.441-1024.076] SPEAKER_03: 显然还不够。 要深入理解语义。
[1024.156-1027.824] SPEAKER_03: 显然还得理解。 警灯亮没亮。 你知道警车正变成电动车。
[1027.904-1038.611] SPEAKER_03: 现场还在执行任务。 如果你知道车停着。 显然,这信息很有用。 它能告诉你能否绕过去。 有一点你可能没注意到。 就是现场还有锥桶。 所以现场有锥桶。 比如它们会挡住你。
[1038.691-1050.454] SPEAKER_03: 如果你打算走那条路。 下一步,更接近行为预测。 显然,如果你也明白。 警车的车门其实开着。 突然间,你就能开始。 预期有人会。 从车里出来,对吧? 而你如何转向,即使你。
[1050.534-1057.023] SPEAKER_03: 决定转弯,或你的动作和使劲。 你所谓的动力服务。 有人下车会影响骑车人路线,安全驾驶要懂。
[1057.103-1063.685] SPEAKER_03: 等你深度理解了,才能预测实际行为。 再预测场景所有智能体轨迹,规划控制就能有策略。
[1063.765-1067.793] SPEAKER_03: 深度学习怎么在这个领域发挥作用,又怎么帮我们解决这些问题?
[1068.093-1071.843] SPEAKER_00: 还记得我说过吗?完成九成,还有九成要做。 所以这开始让我们困扰了。
[1072.143-1076.670] SPEAKER_03: 我还说过,机器人和传感器在现实里都不完美。 所以这是拼图的一大块。
[1076.970-1080.836] SPEAKER_00: 所以我希望传感器一直给我们完美数据和图像,好做深度学习。
[1081.136-1088.357] SPEAKER_03: 但可惜,事实不是这样。 比如这里,你看到有辆皮卡。 图像没显示,但排气管在冒烟。 废气还引发了火灾。
[1088.437-1095.658] SPEAKER_03: 还有激光点。 对行为预测或驾驶来说,不太相关。 所以那些点,安全驶过就好。 所以场景理解上,忽略它们很安全。
[1095.738-1103.179] SPEAKER_03: 所以过滤传感器的大量数据很重要,能减少计算量。 但也是安全操作的关键。 更微妙但重要的问题涉及反射。
[1103.259-1108.669] SPEAKER_03: 所以我们正在一个场景中驾驶。 这儿有辆车。 摄像头里,这辆车反射在公交车上。
[1108.969-1112.835] SPEAKER_00: 简单检测时,公交车与你同向很常见,所有物体都在动。
[1113.135-1115.271] SPEAKER_03: 那场景里突然就有两辆车。
[1115.351-1122.514] SPEAKER_03: 太关注那辆车,影响行为,就会犯错。 这里我展示一个视觉反射的例子。 但所有传感器都会受影响,只是程度不同。
[1122.814-1129.176] SPEAKER_00: 同样效果也会在激光雷达出现,比如高速上有个路牌。 它反射在前车的后窗上。 然后在路面上显示反射标志。
[1129.256-1132.181] SPEAKER_00: 你要明白路上看到的是自己的反射,别转向。
[1132.481-1136.184] SPEAKER_01: 别想着以65英里的速度躲开它。 所以这是个很复杂的挑战。
[1136.484-1140.988] SPEAKER_05: 假设我们能拿到好的传感器数据,然后用机器学习处理。
[1141.288-1145.061] SPEAKER_03: 顺便说,很多信号处理PC已经在用机器学习和深度学习。
[1145.361-1151.328] SPEAKER_00: 比如在反射空间,可以用技巧理解信号差异。 但有些问题,你得对场景有更高层次的理解。
[1151.628-1158.013] SPEAKER_03: 比如根据视野,那辆车不可能在公交车后面。 假设你有好的传感器数据。 经过过滤的传感器数据。
[1158.093-1161.657] SPEAKER_03: 通常,接下来就是在这类图像上做卷积。
[1161.737-1168.366] SPEAKER_03: 如果你不熟悉,卷积层其实是很流行的计算机视觉方法。 因为它把神经元和汽车连接起来。
[1168.446-1175.435] SPEAKER_03: 卷积核会逐层学习图像特征。 所以这些核只在图像的局部区域作用。 它们能识别线条。 识别轮廓。
[1175.515-1183.537] SPEAKER_03: 层数增加后,就能理解更高级的特征。 最后告诉你图像里发生了什么。 所以这是很常见的技术。 而且显然比全连接层更高效。 这样行不通。
[1183.617-1190.304] SPEAKER_03: 可惜很多先进技术其实都是二维卷积。 强调一下,它们是从图像发展来的。 而且通常需要很密集的输入。
[1190.604-1193.494] SPEAKER_05: 图像适合是因为像素密集。
[1193.794-1201.793] SPEAKER_00: 每个像素都紧挨着下一个。 没有太多空隙。 比如,如果你... 想象一下,对稀疏的激光点做平面卷积。 就会有很多空洞。 但效果不大。
[1202.093-1214.181] SPEAKER_03: 通常,我们先把传感器数据投到二维平面。 然后处理这些数据。 所以我们常用两种经典视图。 第一种是俯视图。 就是鸟瞰图,像谷歌地图那样。 很适合,比如绘制…
[1214.261-1221.702] SPEAKER_03: 绘制汽车和移动物体。 但它们不… 把图像和像素放到俯视图里很难。 所以还有另一种常见视图。 就是驾驶员视角。
[1221.782-1229.421] SPEAKER_03: 从驾驶员视角投影到平面。 利用图像上更好。 因为图像本来就是这么拍的。 我们没有用无人机。 比如,这里你会看到如何…
[1229.501-1233.970] SPEAKER_03: 如果传感器配准正确,如何同时用激光雷达和图像。 更好地理解场景。
[1234.050-1236.464] SPEAKER_03: 所以,第一种处理是分割。
[1236.764-1239.898] SPEAKER_00: 有像素或激光点时,就分组为对象。
[1240.198-1245.329] SPEAKER_03: 然后,用这些对象更好理解和处理。 可惜,开车遇到的对象大多没固定形状。
[1245.629-1248.043] SPEAKER_00: 比如雪。 但像植被或垃圾袋呢?
[1248.343-1252.766] SPEAKER_03: 没法提前知道它们长啥样。 所以,你得准备好应对任何形状。
[1253.066-1257.628] SPEAKER_00: 有种好技术是构建小卷积网络。 沿着传感器数据投影滑动网络。
[1257.928-1267.065] SPEAKER_03: 这就是滑动窗口方法。 比如,有像素级准确的雪检测器。 在图像上滑动它。 就能构建这些雪块的表示。 然后适当拖动它们。 效果很好。
[1267.365-1268.920] SPEAKER_01: 但计算上有点贵。
[1269.220-1276.708] SPEAKER_00: 就像——你记得吗?不知道你见过没。 就像老式矩阵打印。 就像打印机,得逐点打印一页。 所以它还行,就是有点慢。 但这个跟那个挺像的。
[1277.008-1282.499] SPEAKER_03: 不过它效果不错。 所以那个效果还行。 但你得清楚想用在画面的哪个地方。 为了保持效率。
[1282.799-1286.363] SPEAKER_01: 好在很多常见物体都有预设模型。 比如从上面看一辆车。
[1286.663-1297.428] SPEAKER_03: 它就是个长方形。 你可以用这个形状做参考。 大多数情况下。 在车道上。 在行驶的车道上。 它们方向都差不多。 不管是往前开还是对面来。 都会沿着车道走。 相邻街道也一样。
[1297.508-1303.312] SPEAKER_03: 所以能利用这些信息做更高效的深度学习。 比如文献里提到的单次多框检测。
[1303.612-1308.778] SPEAKER_00: 这里还是从卷积层开始。 但你只做一次卷积。 这像点阵打印和印刷机的区别。
[1309.078-1312.990] SPEAKER_03: 那样一次就能打印整页。 这只是个类比。 但我觉得这表达得很好。
[1313.290-1318.131] SPEAKER_00: 所以这里训练深度网络,直接接收整个传感器数据的投影。 输出编码了你先验信息的框。
[1318.431-1323.992] SPEAKER_03: 比如,我展示这东西怎么工作。 用于锥体检测。 所以,我们没有逐像素锥体检测的精度。
[1324.292-1328.854] SPEAKER_00: 但我们并不在乎那个。 我们只需知道某处有个锥体。 然后我们用一个先验框。
[1329.154-1336.259] SPEAKER_03: 显然,那张图也想展示这个。 因为它计算上便宜很多。 你显然可以在很广范围内运行。 即使有很多这样的。 那依然非常高效。
[1336.559-1341.446] SPEAKER_00: 这是获取数据的有效方式。 我们讨论过,记得吗,警车顶上的闪烁警灯。
[1341.746-1345.855] SPEAKER_03: 所以,就算路上正确检测并分割出车辆。
[1346.155-1359.358] SPEAKER_00: 很多车辆语义很特殊。 所以这页上,我展示了大量应急车辆的案例。 这些你得理解。 你要理解。 首先,它是辆应急车。 其次,看这辆应急车是否在运作。 校车其实不属于应急车辆。 但关键看校车是否亮灯。
[1359.438-1364.801] SPEAKER_00: 或者校车侧面是否伸出停车牌。 这些都有你需要理解的深层意思。 那你怎么处理这个问题?
[1365.101-1371.486] SPEAKER_03: 再说回深度学习。 一个做法是拿到那个图像块。 再建一个新的卷积塔。 然后在上面建一个分类器。
[1371.786-1383.491] SPEAKER_00: 本质上就是建一个校车分类器。 一个检测校车是否亮灯的分类器。 一个检测校车是否打开停车牌的分类器。 我确定效果会很好。 但这工作量很大。 而且车上用起来很贵。 因为得这么做。
[1383.571-1385.800] SPEAKER_00: 卷积层通常是神经网络最费钱的。
[1386.100-1392.822] SPEAKER_03: 所以更好的办法是用嵌入。 如果你不熟悉它。 嵌入就是向量表示。 能用深度网络学习。 这些表示带有对象的语义。
[1392.902-1395.734] SPEAKER_03: 比如给一辆车。 你可以构造一个向量。
[1396.034-1406.474] SPEAKER_00: 它会携带信息。 比如这车是校车。 车灯亮不亮。 停车标志开了没。 然后你又回到向量空间。 它小得多。 效率高很多。 你可以在里面操作。 用来做进一步处理。 这些嵌入确实存在。
[1406.554-1419.838] SPEAKER_00: 历史上,它们跟词嵌入关系更密切。 所以在典型文本里。 如果你能用单词构建这些向量。 由单词组成。 所以从每个单词中。 你构建一个表示词义的向量。 然后,如果你看这些词的序列。 并在向量空间里操作。
[1419.918-1428.114] SPEAKER_00: 你就能理解句子的语义。 所以看一个早期项目。 叫Word2Vec。 由谷歌NLP小组做的。 他们能构建这种东西。 他们发现了那个嵌入空间。
[1428.194-1441.246] SPEAKER_00: 其实有有趣的向量空间特性。 比如,你取国王的向量。 减去男人的向量。 加上女人的向量。 实际上你会得到一个向量。 离那个向量最近的词是queen。 本质上。 这展示了那些向量表示。 可以非常强大。
[1441.326-1443.195] SPEAKER_00: 它们的信息量很大。
[1443.275-1451.657] SPEAKER_00: 我们来谈谈行人。 我们聊过语义分割。 还记得逐像素分析的能力? 对于没有固定形状的东西。 我们讲过用形状先验。 但行人其实结合了。
[1451.957-1454.766] SPEAKER_01: 这些形状的复杂性。 以及那两种方法。
[1455.066-1461.230] SPEAKER_03: 有多个原因。 一个原因是它们显然能变形。 而且行人形状和姿态多样。 就像你在这里看到的。 我想这里有个家伙。
[1461.530-1464.943] SPEAKER_00: 一个踩滑板的人。 蹲着。 还有一些不常见的姿态,你得知道。
[1465.243-1468.389] SPEAKER_03: 你还得能回忆起来。 对行人的影响非常大。
[1468.689-1477.213] SPEAKER_00: 它们出现在很多不同的场合。 比如这里。 你要看到被遮挡的行人。 因为这是个好机会。 你在预测行为时。 那个人会从车里跳出来。 你得做好准备。
[1477.513-1480.821] SPEAKER_03: 最后,还有一点很重要。 预测行人行为确实很难。
[1481.121-1494.672] SPEAKER_00: 因为他们能往任何方向走。 有辆车正朝那个方向开。 你基本上可以肯定。 它不会突然大变。 一瞬间改变方向。 但如果是儿童。 那就更复杂了。 所以他们可能不会注意。 它们可能往任何方向跳。 你得做好准备。 所以形状上更难。
[1494.752-1505.470] SPEAKER_00: 召回方面更难。 而且预测也更难。 你要细致理解语义。 才能理解这点。 再举一个例子。 我们遇到的。 比如你走到十字路口。 有个视力障碍的人。 正在乱穿马路。 在人行道上。 在十字路口。
[1505.550-1508.394] SPEAKER_00: 你得理解这一切。 才知道要给他让行。
[1508.694-1512.397] SPEAKER_01: 非常明确。 所以路上的人。 也许你得给它让行。 给他。
[1512.697-1516.203] SPEAKER_03: 真不容易。 比如这里。 所以其实有。 我不知道这是不是真人。
[1516.503-1524.920] SPEAKER_00: 或者是个假人之类。 但我们开始了。 说实话,很像行人。 你大概会把它当行人。 但躺在皮卡斗里。 所以明显别让行。 给那个人。 对。 因为如果你想。
[1525.000-1527.333] SPEAKER_00: 还要35迈给行人让路。 比如。
[1527.633-1531.545] SPEAKER_03: 就是猛踩刹车。 对。 有追尾风险。 所以显然你得明白。 那个人。
[1531.845-1538.845] SPEAKER_00: 正和一辆卡车并行。 其实不在路上。 不让路也行。 这些都是语义丰富的例子。 你得理解。 显然有办法做到。 就是理解事物随时间变化。
[1538.925-1551.361] SPEAKER_00: 我们讨论的所有内容。 关于怎么用深度学习。 来解决一些问题。 是只基于帧的。 但要知道那人和卡车并行。 而不是闯马路的人。 在路口中间。 这种信息显然能获得。 如果你观察行为。 随时间推移。
[1551.441-1564.841] SPEAKER_00: 再说回嵌入。 所以有向量的话。 如果有这些对象的向量表达。 你可以随时开始并跟踪它们。 所以,这是一种常见的技术。 你可以用这个到达那里。 就是用循环神经网络。 这些本质上都是网络。 它会建立一个状态。 它会越来越好。
[1564.921-1577.125] SPEAKER_00: 随着它获得更多观察。 按顺序观察真实模式。 所以比如回到单词的例子。 我之前提到的。 你有一个单词。 你看到它的向量表示。 句子里的另一个单词。 你更清楚作者想表达什么。 第三个单词。 第四个单词。
[1577.205-1589.676] SPEAKER_00: 到句尾,你就完全理解了。 然后,你可以开始翻译了。 所以,这里有个类似的想法。 如果你有语义表示。 编码在嵌入中。 用于行人和下方车辆。 并随时间跟踪它。 然后构建状态。 越来越有意义。 你越来越接近。
[1589.756-1597.674] SPEAKER_00: 好的理解。 场景里发生的事。 所以我的观点是。 那些向量表示。 和循环神经网络结合。 是常见技术。 能帮你解决这个问题。
[1597.754-1609.645] SPEAKER_00: 说回重点。 当你完成90%时。 你还有90%要做。 所以。 要进入最后部分。 今天演讲的最后部分。 我想给你一点。 表达一些欣赏。 要真正搭建所需的一切。 一个大规模的机器学习系统。
[1609.725-1620.722] SPEAKER_00: 然后把它工业化。 所以到现在为止。 我们聊了很多算法的事情。 就像我之前说的。 算法已经是一个突破。 这些算法的效率 也是一个突破。 为了实现自动驾驶。 但真正实现目标,远不止算法。
[1621.022-1628.104] SPEAKER_01: 其实还需要更多。 第一步, 你需要提升十倍的是 标注工作。 所以我们聊的很多算法, 我们提到的, 都是监督学习。 意思是说。
[1628.404-1640.608] SPEAKER_00: 就算网络架构很强大。 而且你找对了。 它们算是有监督的。 你要给出。 要训练那个网络。 你需要一个代表性数据集。 高质量的标注数据。 它会映射输入。 到你希望预测的结果。 那是个行人。
[1640.688-1643.857] SPEAKER_00: 那是一辆车。 网络就会学习。 用有监督的方式。
[1644.157-1650.205] SPEAKER_03: 学习如何构建正确表示。 所以有很多。 很显然,无监督领域。 是个非常活跃的研究领域。
[1650.505-1653.117] SPEAKER_00: 我们团队。 Waymo的研究团队。 跟谷歌的合作。
[1653.417-1665.447] SPEAKER_03: 围绕那个领域。 但现在很多还是监督学习。 所以给你个数量级概念。 我代表。 在对数尺度上。 几个数据集的大小。 你可能熟悉ImageNet。 我觉得是1500万。 这样的标签。 范围。
[1665.527-1667.372] SPEAKER_03: 那个跳跃的家伙。
[1667.672-1677.427] SPEAKER_00: 代表几秒。 从出生到大学毕业。 希望很快到来。 所以那是。 更像一个历史小趣闻。 但第一个。 记住这个发现。 街道号码。 关于外观问题。 所以那时候。
[1677.507-1679.561] SPEAKER_00: 这花了我们几十亿。
[1679.861-1687.384] SPEAKER_01: 标注数据集。 实际上是为了训练网络。 所以那是很早期的阶段。 显然我们现在做得更好。 但只是让你了解规模。 所以能够放置。
[1687.684-1690.876] SPEAKER_00: 有标注操作。 产生大规模且高质量。 标注数据集。
[1691.176-1701.499] SPEAKER_01: 是你成功的关键。 这是拼图的重要部分。 我们可以做得更好。 不仅需要的数据更少。 而且我们还。 能生成这些数据集。 更高效地。 你可以用机器学习本身。 想个标签。
[1701.799-1712.227] SPEAKER_00: 再用操作员。 更重要的是用混合模型。 在你用标注员的地方。 差异越来越频繁修。 或者错误。 不用从头标全部。 所以结合起来。 这是个完整的主动学习空间。 你能更快完成。
[1712.527-1716.950] SPEAKER_01: 还是经常需要。 百万级别。 样本种类。 训练稳健方案。 另一部分是。
[1717.250-1720.860] SPEAKER_03: 计算能力。 再强调一次。 这算个历史趣闻。
[1720.940-1725.189] SPEAKER_03: 关于门牌号模型。 这里是检测模型。 这就是转录器模型。 很明显。
[1725.489-1729.854] SPEAKER_00: 其实不是比较。 它在这儿才有价值。 但看神经元数量。 或者每个神经元连接数。
[1730.154-1741.429] SPEAKER_01: 这两个参数很重要。 任何神经网络。 这让你了解规模大小。 很明显。 差好几个数量级。 跟人脑能做的比。 但开始有竞争力了。 甚至有时候。 在记忆空间上。 所以又是历史数据。
[1741.509-1744.574] SPEAKER_01: 但关键是。 你需要大量计算。 大量的计算。
[1744.874-1749.576] SPEAKER_03: 用来训练。 然后推断训练好的模型。 在实时环境下。 在现场。
[1749.876-1754.148] SPEAKER_01: 这需要大量投入。 非常可靠的工程。 还有基础设施开发。 才能达到那个规模。
[1754.448-1766.583] SPEAKER_00: 但谷歌这方面做得很好。 而且很明显。 我们Waymo能用谷歌基础设施。 以及各种工具。 来达成目标。 所以方法上。 在谷歌,这正在发生。 围绕TensorFlow。 你可能听说过它。 更像一种编程语言。
[1766.663-1778.101] SPEAKER_00: 用来编写机器学习。 以及代码编写。 网络架构。 但其实。 TensorFlow 也在演变。 或者说。 整个生态系统。 它能把所有部分整合。 进行大规模机器学习。 在 Google 和 Waymo。
[1778.181-1787.947] SPEAKER_00: 就像我说的。 它是一种语言。 让团队能协作。 共同工作。 这是一种数据表示。 你可以用它表示。 比如你的标签数据集。 或者训练批次。 这是一个运行时。 你可以部署。
[1788.027-1800.556] SPEAKER_00: 到 Google 数据中心。 能获得这种计算能力很好。 去获取那种计算能力。 另一部分就是加速器。 所以在早期。 为了大规模跑深度学习模型。 这样效率比较低。 随着时间的推移, GPU进入了混合部署。 而谷歌非常活跃。
[1800.636-1812.109] SPEAKER_00: 在开发方面。 一套非常先进的硬件加速器。 所以我们听说过TPU。 TensorFlow处理单元。 它们是 专有芯片组。 谷歌在数据中心部署的。 让你训练和推理。 更高效地处理深度学习模型。 而TensorFlow,
[1812.189-1821.700] SPEAKER_00: 让你大规模部署。 跨越这些组件。 非常重要的部分。 到那里了。 所以这个很好。 你真聪明。 我们做了一个智能算法。 我们能收集到足够的数据。 来训练它。 太好了。
[1821.780-1832.208] SPEAKER_00: 把它发布出去。 好吧。 自动驾驶系统挺复杂的。 这个系统很复杂,很难理解。 这个系统很复杂。 这需要大量测试。 我觉得最后一环。 你要覆盖的内容。 要大规模做机器学习。 而且有。
[1832.288-1843.505] SPEAKER_00: 很高的安全标准。 说的是你的测试程序。 所以我们有三部分。 我们用的。 为了放心。 我们的机器学习准备好了。 一个是真实路况驾驶。 另一个是模拟。 最后是结构测试。 我稍后再聊这个。
[1843.585-1854.013] SPEAKER_00: 说到真实路况驾驶。 显然。 躲不开。 要遇到各种情况。 观察理解你的行为。 就得开上路。 你看。 Waymo的里程一直在涨。 还在加速。 已经突破300万英里。
[1854.093-1863.813] SPEAKER_00: 2017年5月。 才过六个月。 到11月。 我们达到了四百万。 所以这是在加速。 显然。 每英里都不一样。 你关心的是里程。 那些带来新情况的里程。 以及重要情况。
[1863.893-1874.727] SPEAKER_00: 所以我们做的很明显。 在很多不同情况下驾驶。 所以那些里程都拿到了。 跨越20个城市。 多种天气条件。 以及多种环境。 对我来说不算多。 所以再看另一个数量级。 那是绕地球160圈。 好的。
[1874.807-1876.920] SPEAKER_00: 很难估计。 但大概有300年。
[1877.220-1879.193] SPEAKER_01: 人类驾驶经验。
[1879.493-1882.140] SPEAKER_00: 效果一样。 所以那个数据集里,可能有。
[1882.440-1886.747] SPEAKER_01: 你有三百年的经验。 你的机器学习能利用。 来学习该怎么做。
[1886.827-1896.965] SPEAKER_01: 更重要的是, 就是模拟能力。 很明显, 软件会定期更新。 所以每次出新版本, 你得重新驾驶。 四百万英里。 这不现实。 这太花时间。 所以模拟能力够好,
[1897.045-1906.228] SPEAKER_01: 让你能重播。 所有你开过的里程。 对新软件版本很关键。 让你判断新版本是否就绪。 甚至更重要。 你的能力是。 让里程更高效。 再调整一下。
[1906.528-1908.002] SPEAKER_03: 这是一张截图。
[1908.302-1920.297] SPEAKER_00: 说的是内部工具。 我们叫它“汽车工艺”。 它让我们能。 模糊或改参数。 针对实际开过的场景。 如果那些车在。 用不同速度跑。 如果多了一辆车。 出现在画面里。 或者有人横穿车头。
[1920.377-1925.880] SPEAKER_00: 你可以拿实际驾驶里程。 做基础。 再扩展出。 新的情况。 让自动驾驶系统去应对。 这招非常厉害。
[1926.180-1935.479] SPEAKER_01: 真正大幅翻倍。 每英里的影响。 你开车。 模拟也是一种方式。 大型项目。 你要覆盖的范围。 所以还有好几个数量级。 所以,借助谷歌的基础设施。
[1935.779-1937.056] SPEAKER_03: 我们可以。
[1937.356-1950.605] SPEAKER_00: 运行一个虚拟车队。 由两万五千辆车组成。 在数据中心全天候运行。 这些是软件栈。 模拟开车过程。 基于我们实际开过的原始里程。 或者修改后的里程。 这能帮我们理解软件的行为。 软件的行为。 再举一个数量级的例子。
[1950.685-1963.772] SPEAKER_00: 光去年一年。 我们开了25亿英里。 其中很多里程是在数据中心完成的。 记住,总共跑了400万英里。 一直到了2.5这个数。 所以这是三个数量级。 是一个扩展。 在你真正能理解的层面。
[1964.072-1965.964] SPEAKER_01: 系统是怎么运作的。
[1966.264-1978.015] SPEAKER_00: 但尾部很长。 有一个完整的尾部。 尾部情况很长一段。 那些极少发生的情况。 所以我们的方法。 我们决定处理这些问题。 就是自己建。 测试设施。 那就像一个城市的缩影。 还有各种驾驶场景。
[1978.095-1989.742] SPEAKER_00: 所以我们在一个90英亩的场地。 在这测试设施里进行。 在一座前空军基地上。 在加州中部。 我们搭建的。 用来测试。 汽车相关的东西。 真正尝试重现。 一个真实生活场景。 我们设置的地方。
[1989.822-2001.132] SPEAKER_00: 非常具体的场景。 不一定遇到过。 在常规驾驶中。 但我们要测试的。 并反馈到模拟中。 用相同策略再增强。 并注入到25亿英里驾驶数据中。 现在我来展示。 两个快速例子。 这样的测试。
[2001.212-2012.023] SPEAKER_00: 看看会发生什么。 并使用。 所有传感器数据。 注入到模拟中。 下一个例子马上来。 人们搬箱子。 所以说。 试着想象一下。 那种理解。 你需要的扎实理解。
[2012.103-2023.065] SPEAKER_00: 理解那里发生了什么。 巩固你的理解。 为了更有趣。 注意那辆车。 放在另一边。 模拟的。 别撞到那辆车。 所以驾驶复杂场景。 从感知到运动规划。 整个流程。
[2023.145-2032.563] SPEAKER_00: 保证我们可靠。 长期示例也一样。 我们搞定了吗? 活儿不少啊。 但愿如此。 其实没有。 还有很多有趣的事要做。 马上就来。 所以我时间不多。 给你两个大方向。
[2032.643-2042.058] SPEAKER_00: 第一,围绕。 扩大我们说的ODD。 也就是运营。 运营领域。 运营设计领域。 所以说。 扩大自动驾驶车队。 不只是地理上。 地理上就是。 进入。
[2042.138-2051.100] SPEAKER_00: 部署到市中心。 在不同天气下部署。 所以 就是今天早上或昨天 我们宣布了 我们会在旧金山扩大测试 比如 用Waymo汽车 这些车要应对城市环境 坡道
[2051.180-2059.414] SPEAKER_00: 雾 所以这方向显然很重要 我们得深入探索 机器学习会持续发挥关键作用 还有个方面 是巩固理解 所以 如果你没注意到 我来自法国 那是个著名的
[2059.494-2070.665] SPEAKER_00: 巴黎的星形广场环岛 就是星形广场 这看起来挺乱的。 但我开过很多次了。 没什么问题。 敲敲木头,但愿好运。 但这需要大量语义。 还有我自己的理解。 才能安全做到。 我原来有很多期待。
[2070.745-2082.694] SPEAKER_00: 对于人的行为。 我做了很多交流。 视觉手势。 基本就是为了那个。 安全完成那件事。 而这些需要大量。 更深入理解语义。 理解周围场景。 才能让自动驾驶车通过。 所以这是个例子。
[2082.774-2093.225] SPEAKER_00: 一个方向的例子。 好,回到我的目标。 希望我讲得够全面了。 至少给你指了个方向。 供你深入阅读。 还有一些调研。 关于这三个目标。 我今天要讲三点。 第一点是背景。 历史背景。
[2093.305-2104.128] SPEAKER_00: 在Google和Waymo。 还有它们有多深。 根源是什么。 回顾时间线。 第二点是让你。 把技术内容联系起来。 算法方案。 你可能已经聊过。 在课堂上。 结合实际案例。
[2104.208-2114.520] SPEAKER_00: 在生产系统中。 最后同样重要。 核心就是规模。 还有基础设施的建设。 我们的目标。 真要落地这个项目。 直到彻底消失。 在生产系统里。 最后一条推文。 那是有孩子的场景。
[2114.600-2118.373] SPEAKER_00: 在袋子上蹦跳。 像青蛙一样。 穿过这个场景。 我觉得时间还够。
[2118.673-2121.064] SPEAKER_04: 回答几个问题。
[2121.144-2137.249] SPEAKER_04: 我想了解。 从机器人技术看。 通常这些系统。 容易在交汇处失效。 在感知和规划之间。 所以规划器会有些假设。 关于完美世界。 这种感知做不到。 所以我在琢磨。 如果用模拟环境。
[2137.329-2142.216] SPEAKER_04: 也是要诱发这些感知错误。 或者这是不是真的很特别。
[2142.516-2154.047] SPEAKER_00: 用来做场景测试。 还有其他验证方法吗。 就感知来说。 模拟环境。 显然能让你。 模拟很多不同层次。 在堆栈里。 其中一个核心工程问题。 是正确设计堆栈。 这样才能隔离。
[2154.127-2156.855] SPEAKER_00: 并独立测试。 跟其他软件一样。 需要好的API。
[2157.155-2166.944] SPEAKER_01: 和分层。 所以我们有这些层。 在我们系统里。 感知和规划之间。 还有你测试感知的方式。 以及使用和调整。 输出。 感知系统的。 伴随它的错误。 所以理解它犯的错误。
[2167.024-2173.548] SPEAKER_01: 然后真实再现这些错误。 在你设计的新场景里。 你模拟器的一部分。 来真实测试你的规划端。 规划端的部分。
[2173.848-2188.235] SPEAKER_04: 非常感谢。 你提到了汽车。 作为一个复杂系统。 而且它得是个工业产品。 正在大规模构思。 你们有没有系统化的方法? 来创建架构。 嵌入式系统。 选择很多。 传感器和算法。
[2188.315-2195.501] SPEAKER_04: 每个问题都有多种方案。 这会创建不同接口。 每个元素之间。 你怎么选? 汽车里放哪种架构?
[2195.801-2207.088] SPEAKER_01: 任何复杂系统都适用。 软件栈。 所以是多种东西的组合。 首先呢。 这里我没多谈。 但就在那儿。 大量研究。 我们在Waymo做的。 但也和谷歌团队合作。 为了实际地。
[2207.168-2218.316] SPEAKER_01: 甚至理解。 什么模块。 我们手上有些资源。 甚至还能拿来玩。 还想出了那些生产系统。 还有另一部分。 明显就是你选的那个。 一直在生产中。 所以你说得对。 所以这里有两个关键因素。
[2218.396-2228.545] SPEAKER_01: 第一点。 坦白说,主要因素。 就在于你的能力。 所以那个搜索呢,实际上 它会。 需要很多人。 才能达到。 所以我试着说。 要真的做到。 第二个90%的那部分。
[2228.625-2238.844] SPEAKER_01: 是你壮大团队的能力。 从根本上说。 增加人手。 谁能有效参与。 在你的项目里。 就在那里。 我们需要韧性。 进入开发环境。 我们的测试。 确实很重要。
[2238.924-2246.447] SPEAKER_01: 为了壮大团队。 更大规模。 并且探索所有路径。 找到最佳方案。 到最后。 测试够不够稳。 就是评判标准。 它会告诉你。
[2246.747-2261.331] SPEAKER_04: 方法行不行。 感谢你的演讲。 所以汽车在做决定。 每一步。 方向和速度。 还有部分原因。 为什么要做模拟? 是为了让你测试这些决策。 在所有可能的场景里。 所以一旦自动驾驶汽车
[2261.411-2273.729] SPEAKER_04: 准备就绪 上路行驶, 你希望决策会 根据已有的理解, 针对每种情况。 这有可能, 或者你期望 实时做出新决策, 基于它看到的和理解到的,
[2274.029-2281.436] SPEAKER_01: 还有周围的一切。 说到底, 系统的目标 不是建一个库, 一个事件库。 你可以复现 一个一个来 记得编码 机器学习里的类比 容易过拟合
[2281.516-2291.572] SPEAKER_01: 如果碰到五种情况 你肯定能硬编码 要完美完成的事 那五种情况 但第六种情况出现 如果不做泛化 其实会失败 所以真正复杂的 在于你要做的事 提取核心原则
[2291.652-2301.267] SPEAKER_01: 让你安全开车 同时让算法 掌握这些原则 不要具体细节 任何情况都行 就像你说的。 参数这个空间。 我们就试着模糊一点。 用模拟器。 如果汽车稍微快一点呢?
[2301.347-2314.120] SPEAKER_01: 稍微慢一点。 但不是要列全所有可能。 并保证这些方面表现好。 但目标是更丰富多样。 学习这些通用原则。 系统会学这些。 或者编进系统里。 为了让汽车的表现 恰当还能泛化。 当新情况出现时。
[2314.420-2330.258] SPEAKER_04: 能再问几个问题吗? 演讲很精彩。 我有个问题就是 你提到困难。 识别积雪。 因为它可能有多种形状。 其中一件事是。 我马上想到的是。 我知道那只是个都市传说。 但那个传说是关于因纽特人的。
[2330.338-2348.312] SPEAKER_04: 他们大概有150个不同的词形容雪。 你提到了对象的嵌入表示。 你觉得呢? 一种方法可以是。 也许先建一个更宽泛的。 对象嵌入数组。 比如对雪这种东西。 我是说,如果你是。 很多种不同的雪。 其实对驾驶的影响。
[2348.392-2354.522] SPEAKER_04: 可能差别很大。 比如像一阵小雪。 或者如果是。 一场特别大的暴风雪。
[2354.822-2362.740] SPEAKER_01: 就像我们刚经历的那样。 对,我想从。 如果你从……看。 从算法角度看。 那可能说得通。 不过。 可能有些事。 对。 很难把握的界限。 就是走那个界限。
[2362.820-2369.785] SPEAKER_01: 算法上可行。 但也是什么呢? 车上计算可行。 对。 我想。 对你的评论有两点。 所以。 如果处理能力够。 处理每个点。 或者每个。
[2369.865-2381.198] SPEAKER_01: 达到很深的理解。 而且有足够的计算能力来做这件事。 但那样会很贵。 而且这事很难。 更重要的是。 拥有。 比如,这没意义。 预测每片雪花的动向。 对于路边看到的东西。 而且你得分组。
[2381.278-2392.983] SPEAKER_01: 这就是分割的意义。 你得分组。 把看到的东西归为语义对象。 这些对象可能会表现出。 整体行为。 然后在这个抽象层面推理。 为了有意义。 本质上就是驾驶。 是的,所以。 对,这是个中间状态。
[2393.283-2408.099] SPEAKER_04: 最后一个问题。 做好这一次。 感谢你的分享。 所以如果你用感知。 为了理解场景。 你担心对抗性样本吗? 或已经展示过的事。 或者你不信这是真实世界? 可能被使用的攻击。
[2408.399-2418.757] SPEAKER_01: 针对感知系统。 所以一般来说, 我觉得。 错误。 我是说错误可能发生。 而且,错误会发生。 每一个模型中。 所以,一个典型例子是。 这不是对抗性的。 是反射的情况。
[2418.837-2430.449] SPEAKER_01: 就像在车上贴贴纸一样。 在公交车上。 然后你说你很困惑。 你觉得那辆车。 那可不是车。 但不用在公交车上贴贴纸。 现实里这类例子很多。 所以真正的出路。 就是要有传感器。 它们互相补充。
[2430.529-2441.804] SPEAKER_01: 所以我特别想强调这点。 但实际上嘛。 不同的传感器。 或者不同系统。 不会犯同样的错。 所以它们互相补充。 这是很重要的冗余。 我们把它做到系统里。 另一个也一样。 即使有反射的时候。
[2441.884-2452.196] SPEAKER_01: 关键在于理解。 所以人类的方式。 不会上当。 可你知道。 这不可能发生。 像你知道的。 那车在公交上的倒影。 不可能。 透过公交能看到。 后面有辆真车。
[2452.276-2457.221] SPEAKER_01: 所以那种语义理解的水平。 会告诉你。 什么是真的,什么不是。 或者什么是错的。
[2457.521-2461.944] SPEAKER_04: 你堆栈里有个错误。 所以类似模式也适用。 非常感谢你。 谢谢。