Podcast Script (zh)
[0.120-12.438] SPEAKER_01: 麻省理工自动驾驶研究想收集大量自然场景下的 驾驶数据。 采集数据用的这个箱子,丹叫它Ryder。 丹负责硬件,包括嵌入式系统,迈克尔负责
[12.518-23.292] SPEAKER_01: 大量软件,包括数据管道和设备上的 数据卸载。 我来介绍下Ryder和传感器的细节。 车里装了三个摄像头,线缆都接回后备箱, Ryder就放那儿。
[23.372-39.675] SPEAKER_01: 让系统在多辆车、各种天气下可靠运行几个月, 需要满足很多设计规格。 最后,我们有多路传感器数据流。 包括三个摄像头输入。 还有IMU、GPS和所有原始CAN消息。
[39.755-46.384] SPEAKER_01: 都来自车辆本身。 这些数据卸载后要可靠采集、同步并后处理。 数据。
[46.684-63.172] SPEAKER_03: 首先,这里有台单板计算机,运行着专门为此定制的 Linux系统。 它集成了所有摄像头、传感器、GPS、CAN和IMU。 全部存到板载固态硬盘上。 蜂窝通信和背对背通信的组件。
[63.252-78.138] SPEAKER_03: 好了,我们开始吧。 开始吧。 先看看系统本身。 好了,我们开始吧。 这里有单板计算机、传感器集成和电源系统。 固态硬盘直接连到单板计算机上。 单板计算机顶部有块传感器集成板。
[78.218-92.338] SPEAKER_03: 可以看到实时时钟、电池备份和CAN收发器。 这块板背面有GPS接收器和IMU。 CAN控制电源板监测整车CAN信号并判断。 系统该开启还是关闭。 开始吧。 开始吧。 开始吧。
[92.418-100.800] SPEAKER_03: 系统开启后,降压转换器将12伏电压降压。 降到5伏,给单板计算机运行。 板载4G无线连接监测Ryder健康状况。
[100.880-109.877] SPEAKER_03: 比如驱动器剩余容量、温度和电源信息。 摄像头通过这个USB集线器连到Ryder。 我们需要这个盒子。 这个盒子至少得做三件事。
[109.957-117.294] SPEAKER_03: 一是录三个摄像头,记录CAN遥测数据,然后 最后能在车上长期存这些数据。 驾驶员能开几个月,不用我们卸载。
[117.594-128.635] SPEAKER_01: 说到几十万英里的数据量, 每十万英里未压缩数据就是十万英里数据量。 数据量很大。 数据量很大。 那大概100PB的视频数据。
[128.715-142.127] SPEAKER_01: 另一个关键怎么存这些数据,既在设备上 还要顺利卸到几千台机器上,再处理。 用我们正在用的计算机视觉和深度学习算法。 关键是在车上压缩。
[142.427-158.590] SPEAKER_03: 这是罗技C920网络摄像头。 最高1080p,每秒30帧。 哇。 哇。 哇。 哇。 我们选这些摄像头,主要是它们可以板载H.264压缩。 这样就把处理任务从单板计算机移到了摄像头。 单板计算机就能做得更精简轻量。
[158.670-171.176] SPEAKER_03: 只用一台轻量单板电脑来运行所有传感器。 这是商店能买到的原版罗技C920。 这两个同款C920,但装了定制的摄像头外壳。 专门为这个应用场景设计。
[171.256-178.918] SPEAKER_03: 这样就能装上CS型镜头,在车里用变焦镜头。 还有鱼眼镜头,让车内视野更广。 这是鱼眼镜头。 这是变焦镜头。
[179.218-193.140] SPEAKER_01: 还有CS型和C型。 这些都是标准接口,常用于工业相机。 工业相机在自动驾驶车辆里用得多。 我们测试了这些摄像头,在夏天的热车里。 看会怎么样。
[193.440-199.929] SPEAKER_03: 想看看它们能不能扛住夏季高温。 一个夏日。 想看看它们夏天还能不能扛住高温。 而且还能按需运行?
[200.229-202.725] SPEAKER_01: 我们把相机放进烤面包机。
[203.025-206.078] SPEAKER_03: 这是一台科学烤面包机。
[206.378-208.374] SPEAKER_01: 温度升到了多少度?
[208.674-219.334] SPEAKER_03: 相机在58到75度之间循环,差不多是最高温度。 华氏150度。 汽车夏天能达到的最高温度。 我们还把温度调到127度,就想看看相机怎样。
[219.414-229.410] SPEAKER_03: 长期高温之后会怎样。 这些相机后来依然完美运行。 能智能自动开关机,开始录制。 系统能自动结束录制,也是关键。 因为人们只是开普通车。
[229.490-237.291] SPEAKER_03: 没法指望他们手动开始和结束录制。 所以Rider智能判断汽车何时运行、何时 关闭,自动开始和停止录制。
[237.591-240.563] SPEAKER_01: 那Rider怎么知道什么时候开启?
[240.863-255.203] SPEAKER_03: 我们通过CAN决定系统何时开关。 CAN活跃时,汽车运行,就开启系统。 CAN不活跃时,就关闭系统并结束录制。 这让我们能触发一些CAN消息。 比如,他们靠近车解锁时立刻开始录像,
[255.283-258.371] SPEAKER_03: 就可以做到。 或者启动车、挂挡行驶等等。
[258.671-275.217] SPEAKER_01: 车价是系统的一千倍左右。 所以这些车都值十万美元以上。 设计系统时得保证布线不伤车。 那出故障时会有哪些问题? 最大问题是摄像头线松了。 线松了,系统会反复重启那个子系统。
[275.517-288.546] SPEAKER_03: 重启不了就彻底停止录制。 只要线还松着,Rider下次就不启动。 所以我们发现线松可能导致丢数据。 系统一开始就要求所有视频流完美同步录制。 如果传感器没录上,我们会尝试
[288.626-292.573] SPEAKER_03: 所以线松会导致我们可能丢失部分数据。 记录一些数据。
[292.873-308.351] SPEAKER_01: 系统一开始就要求所有视频流完美同步录制。 现在,如果哪个系统没录上传感器数据,我们就尝试 要是系统没录到传感器数据,我们就再试。 再次重启系统。 如果还不行,它会关机。
[308.431-320.888] SPEAKER_01: 要理解驱动程序在系统中的行为,视频 很重要。 所以一个摄像头坏了,整个系统就废了。 05. 系统怎么工作? 06. 驱动程序怎么工作? 07.
[320.968-328.514] SPEAKER_01: 采集多数据流的系统,数据流 必须完美同步。 同步从设计之初就是重中之重。
[328.814-337.393] SPEAKER_03: Rider内置实时时钟,精度达百万分之二, 能记录时间戳。 跑一个半小时,各个子系统的时钟 大约会漂移7毫秒。
[337.473-340.561] SPEAKER_03: 跟现代电脑的时钟比,这个误差很小。
[340.861-349.405] SPEAKER_01: 数据卸载后,第一件事就是确保时间戳 正确,以便同步。 数据管道第一步就是同步数据。 就是用时间戳。
[349.485-360.421] SPEAKER_01: 它来自每个传感器数据的实时时钟。 用这个时间戳对齐数据。 视频每秒30帧,和GPS等信号完美对齐。 等等。
[360.501-375.294] SPEAKER_01: 还有IMU、CAN消息等其他传感器。 频率远高于30赫兹。 所以我们用不同的同步方案。 但总的来说,从一开始就同步。 但总的来说,从一开始就同步。 但总的来说,从一开始就同步。 从硬件设计到软件设计,一直同步。
[375.374-391.015] SPEAKER_01: 管道很关键,因为我们要分析人们在这些 半自动驾驶车里的行为,人与技术互动,意味着用 来自面部、身体和前视摄像头的数据,并同步 与GPS、IMU和车辆遥测消息一起
[391.095-404.785] SPEAKER_01: 来自CAN总线。 视频流压缩非常消耗CPU或GPU资源。 视频流压缩非常消耗CPU或GPU资源。 这个President是我额外加上去的。 帮它周围的部件,只加从那里出来的newié。
[404.865-411.691] SPEAKER_01: 视频流压缩挺耗CPU或GPU。 这个President就是主房间这里看到的。 但在 analoguseum。
[411.991-424.021] SPEAKER_02: 从换下的Rider盒子里拿到硬盘后, 我们把硬盘本地连电脑,再远程拷到服务器上, 服务器存着我们所有数据。 然后检查数据一致性,修复原始数据,为 同步做准备。
[424.321-434.677] SPEAKER_01: 所以,我们不远程卸载数据。 数据存在Rider上,等受试者、驾驶员、车主回来 给我们卸载。 所以我们取出硬盘换掉,再从硬盘上卸载数据。
[434.757-438.599] SPEAKER_01: 能讲下像素从相机到集群的过程吗?
[438.899-447.594] SPEAKER_02: 嗯,相机先按配置设置记录原始图像数据 从Rider盒子。 然后原始图像在相机上压缩成H.264格式, 再通过USB传输。
[447.674-460.784] SPEAKER_02: 然后它无线传到Rider盒子单板电脑。 然后它存到固态硬盘视频文件里,一直保留到 NDS受试者每半年卸载一次,FT则每月一次。 之后它连到本地电脑,和远程服务器同步,然后
[460.864-466.773] SPEAKER_02: 先经初筛算法移除损坏数据或 修复系统问题。 然后以30帧每秒同步,可用于不同
[466.853-471.462] SPEAKER_02: 检测算法或手动标注。 所以深度学习视觉背后,真正重要的是
[471.762-480.364] SPEAKER_01: 同步清理杂乱数据,确保拿到任何 异常数据。 然后输出数据,管线末端得到干净数据集,其中
[480.444-487.433] SPEAKER_01: 多路传感器流完美同步,既能分析也能 用于标注,以改进各种 检测任务神经网络模型。
[487.513-498.391] SPEAKER_01: 所以Rider在30多辆车收集了数十万英里 数据。 数十亿个视频。 视频帧。 视频帧。 所以这些海量数据都用H.264压缩
[498.471-503.022] SPEAKER_01: 差不多300TB数据 当然,还能再改进 那下一步呢?
[503.322-513.701] SPEAKER_03: Rider的一大改进是换用另一款单板计算机,尤其是 Jetson TX2 它有更多传感器扩展,计算能力更强,甚至 可以用Jetson开发实时系统
[514.001-525.936] SPEAKER_01: 开车收集大量数据时,关键是你意识到 大部分驾驶过程很无聊 理解驾驶行为或训练模型处理边缘情况,都没趣 模型之类的 没什么有趣的事
[526.016-538.185] SPEAKER_01: 所以未来步骤之一是基于数据发现 目前我们知道哪些部分有意思,哪些没意思 我们想设计车载算法,实时处理视频 数据,判断是否要保留,如果不是,
[538.265-552.234] SPEAKER_01: 就丢掉 这样就能更高效只收集对边缘 情况有用的部分,用于训练模型或理解人类行为 半自动驾驶时人的行为是未知领域——不论谁在驾驶。 半自动驾驶包括车辆自动驾驶和人类驾驶。
[552.314-572.030] SPEAKER_01: 研究初期先保存所有数据。 分析姿势、视线、活动、手机使用、减速、自动驾驶使用等。 理解基础后,能选择性采集某些时段数据。 这需要实时处理数据,Dan说相邻TX2负责。 相邻TX2具备的能力。
[572.110-591.269] SPEAKER_01: TX2的能力越来越有用。 这些都是MIT自动驾驶研究的一部分。 目前收集超32万英里,每天新增500到1000英里。 车队持续增长,不断加入新车。 正努力加入特斯拉Model3、凯迪拉克CT6超级巡航等。 我们工作的一个重要指导原则。
[591.349-601.751] SPEAKER_01: 是设计安全、半自动、全自动驾驶所需的数据收集。 不仅要记录前方道路,还有各种传感器。 我们一直在扩大,增加新车。
[601.831-614.950] SPEAKER_01: 正在添加特斯拉Model3、凯迪拉克CT6超级巡航等。 我们工作的一个核心驱动原则。 这就是设计安全、半自动、全自动驾驶所需的数据收集吗?
[615.030-629.057] SPEAKER_01: 车辆需要记录的不只是前方道路,还有各类传感器。 收集外部环境信息。 我们需要丰富的内部传感器信息。 驾驶员在做什么? 他们的面部、目光、认知负荷和身体姿态。
[629.137-643.861] SPEAKER_01: 他们的活动。 我们真的相信自动驾驶。 自动驾驶车辆。 自动驾驶车辆需要了解监管人员如何行动。 他们的行为。 我们怎么保持他们的注意力。 让目光保持在道路上。 让他们成为系统的高效监管人员。