在一条四车道的街道上,有两条车道被工人占用以修复路上的坑洞,其中一名工人左手举着停车标志,右手挥手示意汽车通过。如果是人类驾驶员,则会毫不犹豫地遵循手势或标志,不停地平稳前进。但是,对于自动驾驶汽车而言,则可能会停下,因为它未必能够理解标志或手势。
图片来源:Cruise
对于驾驶员、人类和计算机而言,每天都需要面对此类复杂情况。而在此类情况下,解读肢体语言是关键。如何在不影响交通的情况,让自动驾驶汽车安全、无缝地应对此类挑战呢?这需要自动驾驶汽车了解用于引导人类驾驶员应对意外情况的常见手势,以及行人处理事情时的手势和肢体语言。
全球的自动驾驶汽车开发人员多年来一直致力于让自动驾驶汽车了解一些基本手势,最初是理解自行车骑手发出的信号。一般而言,开发人员依靠机器学习提升汽车识别真实情况的能力以及提升其理解如何处理情况的能力。据外媒报道,对于Cruise而言,他们从由200多辆自动驾驶汽车构成的车队中收集了大量数据,而且此类汽车的学习速度很快,因为都在美国最复杂的驾驶环境之一——旧金山的街道上行驶。
不过,Cruise意识到机器学习模型不会总是有足够的训练数据,因为汽车在现实世界中看到重要手势的次数并不多。自动驾驶汽车需要从不同的角度、不同的距离以及不同的光照条件下识别出每一种情况,而此类情况结合又会产生无数的可能性。如果仅靠汽车的真实体验,则需要数年的时间来获取足够的信息。
于是,Cruise找到了一种创造性的解决方案——人类手势的动作捕捉技术。此种技术一般由游戏开发人员用于创造角色,Cruise一直在雇佣游戏开发人员模拟真实世界的细节,并捕捉数据以教会自动驾驶车辆理解手势。
图片来源:Cruise
首先,Cruise数据收集团队建立了一份完整的清单,列出人类利用身体与世界和他人互动的方式,比如打出租车、走路时打电话、或者在街道上行走时避开人行道施工等。一开始,Cruise自动驾驶汽车从可能会误解的指令开始,例如行人向朋友挥手。接着,Cruise团队测试在车辆附近,但没有指着车辆的手势,例如,停车人员在车辆旁边的车道上挥手示意车辆开进车库,建筑工人举着要求车辆暂时停下的牌子等。
最终,Cruise提出了一个列表,其中包含用手势传达的五个关键信息:停、走、左转、右转以及“不”(与车辆无关的常见动作,如自拍或取走背包等)。此外,Cruise采用了普遍接受的美国手势,并假设车辆靠右行驶。
创造此类数据集需要采用动作捕捉技术,一共有两种动作捕捉系统——光学与非光学系统。光学动作捕捉技术采用网格类结构上分布的摄像头,此类摄像头的视频流可用于定位演员全身套装上视觉标记的3D位置。此类系统有多个版本,能够捕捉非常详细的信息,包括面部表情。
不过,光学动作捕捉必须在工作室中采用复杂的多摄像头设置来完成。因此,Cruise采用了一种非光学、基于传感器的动作捕捉技术。该项技术依赖微机电系统(MEMS),携带方便、无线、不需要专门的工作室,因而具有很大的灵活性,可用于现实世界中。
图片来源:Cruise
Cruise的动作捕捉套装每个都含有19个传感器包,附着在身体的关键部位,如头部、胸部、臀部、肩膀、上臂、前臂和腿部。每个传感器包大约为一枚银币大小,包括一个加速计、一个陀螺仪和一个磁强计。此类设备被连接到一条包含电池组、控制总线和Wi-Fi收音机的皮带上,其中传感器数据可无线传输至运行专用软件的笔记本电脑上,供工程师实时查看和评估数据。
Cruise从工程团队雇佣了五位身体特征不一(身高、体重和性别)的志愿者,让他们将动作捕捉套装穿上,并将他们带往相对不受电子干扰的地方。每个工程师首先需要摆出T字姿势(站直,双脚并拢,两臂张开),以校准该动作捕捉系统。然后,工程师做出一个又一个手势,将清单上的姿势都做完,并且连续7天,一直重复做出此类姿势,有些情况下分别采用左右手做,有时双手一起做。Cruise还要求工程师做出力度不一的手势。例如,对在施工区超速行驶的车辆做出紧急停下的手势,力度可能会更强。最终,Cruise获得239段3秒的视频数据。
之后,Cruise将此类数据输入到机器学习模型中。首先,验证了所有的手势都被正确记录下来,没有额外的噪音,并且没有错误旋转的传感器提供了错误的数据。然后,工程师们通过软件运行手势序列,该软件可以确认序列中每一帧关节的位置和方向。由于此类位置最初是通过3D形式获取,该软件可以计算每个序列的多个2D视图,从而可以不断增加旋转,模拟10种不同的视点,从而扩展手势数据集。此外,Cruise还随意地利用身体的不同点模拟真实世界中被隐藏的某些点,然后增加旋转,以创造不同的视角。
上述做法除了提供不同的人从不同的角度所做出的各种各样的手势数据集,还可提供非常清晰的数据,即无论服装风格、颜色或光线条件如何,人体姿势的骨骼结构是一致的。此类数据可让Cruise更高效地训练机器学习系统。
图片来源:Cruise
一旦Cruise的汽车接受了动作捕捉数据的训练,就可以更好地驾驭城市驾驶中的各种场景。其中之一就是道路建设,采用手势识别系统,Cruise汽车将能够在理解手势的同时,安全地绕过多个工作人员。
此外,Cruise还计划扩大数据集,以让自动驾驶汽车更好地理解自行车骑手的手势,例如,左手向上,肘部呈90度,意味着骑手要右转;右臂垂直向外也表示此种意思。Cruise的自动驾驶汽车已经可以识别骑手,并自动减速为骑手腾出空间。但是,如果自动驾驶汽车能够了解手势的意思,就可以在为骑手留出足够空间的同时,来执行有一定含义的操作,让汽车无需停下,以造成不必要的交通堵塞。