引言
美团自动车配送路线不仅覆盖城市郊区的机动车道、辅路和非机动车道,还包括小区和园区道路,路况多样且场景复杂度高。道路整体偏窄而且遮挡盲区较多。尤其是非机动车道经常有杂物,植被伸进路内,行驶路面条件一般,坑洼较多,雨后雪后容易形成积水。对感知环境识别能力有较大挑战。配送路线两边常有密集车辆和非机动车临时停靠,需要处理车辆起步、行人横穿、车辆逆行等路况。在居民区和校园场景有大量和非机动车、行人博弈场景,对感知障碍物检测,跟踪的准确度和稳定性要求较高。
为了实现自动车配送的商业落地,需要有一个可以根据上述业务场景持续迭代效果的感知系统。为此我们建立了“数据建设—通用系统—场景处理能力”技术迭代方法,即通过建设高效的数据流水线和模型流水线提升数据累积质量,数据利用率和模型迭代效率,从而提升系统数据驱动的能力和通用性,进而支持更多的场景,收集更多的数据。
本文主要从道路场景、交通场景以及天气场景3个角度介绍美团自动车配送场景对感知带来的挑战,以及我们是如何搭建一个相对通用系统来实现持续迭代感知效果的目标。
道路场景
美团自动车配送道路场景包括机动车道、非机动车道、居民区道路以及校园道路。
机动车道:和Robotaxi道路场景类似,因为自动配送车相对其他机动车辆车速较慢,大部分时间需要在最右侧车道行驶。
非机动车道:通常行驶道路狭窄,部分非机动车道没有和机动车道设置隔栏,经常有机动车辆停靠或占道行驶。
居民区:行驶道路两侧会有较多临时停靠车辆,和行人、非机动车交互也较多,场景内障碍物分布更密集。
校园:非结构化道路多,经常有密集人群和非机动车群场景。
左右滑动查看更多
辅路和非机动车道较窄,植被等障碍物会伸进路内,对自动配送车行驶造成影响。同时两边经常有大量共享单车停靠。感知需要提供稳定的可行驶区域检测来补充高精地图的不足,而且还需要识别行驶边界的语义信息,减少不必要的绕行,提升通行效率。
左右滑动查看更多
路面异物在自动配送场景下出现频率高,自动配送车如果处理不当,就会带来行驶安全隐患。这些障碍物大小形状各异,感知不仅要保证其检测距离而且要提供稳定的输出。对于某些障碍物,感知需要提供额外的语义信息才能让决策模块采取合适的通行策略。受到激光雷达分辨率的限制,激光视觉融合的方法在路面异物的检测中起到了关键的作用。
左右滑动查看更多
配送路线上经常有车辆临时停靠,同时小区出入口多。为了保证行驶的安全性,感知需要在传感器视野有较大遮挡导致的盲区下更早的输出障碍物并且预测其意图。如何在观测质量欠佳,甚至是没有观测的极限情况下做出预测,这对感知提出了更高的要求。
左右滑动查看更多
信号灯识别在自动配送场景下也有很多新的挑战,例如移动红绿灯的识别无法依赖高精地图的信息; 非机动车道行驶中树木遮挡经常会对信号灯识别造成较大困难,需要辅助场景的推理才能正常通行; 过路口时需要看人行道灯等。
左右滑动查看更多
交通场景
在机动车道的交通场景和Robotaxi类似。但是在上述其他道路场景中,自动配送车需要面对更多交通场景带来的挑战:在配送路线的两端,经常需要在拥堵场景下和机动车进行交互;行驶路线两侧会有较多临时停靠车辆,车辆起步/倒车场景对障碍物速度和运动状态估计有更高的要求;在一些情况下,需要辅助以视觉语义信号,例如车门是否开启、车灯颜色、车轮方向等,才能为下游更早的提供可以用于决策的信息。
左右滑动查看更多
在非机动车道上,自动配送车周围的非机动车/行人和静态障碍物距离近,感知不仅需要识别狭窄的可行驶区域,同时还要对非机动车/行人有更准确的检测和分割,避免对下游障碍物的速度和运动状态估计产生影响。
左右滑动查看更多
自动车配送场景中有较多的行人交互,尤其是在居民区和校园场景,经常需要在密集的人群和自行车群中穿行,对障碍物检测、分类和追踪等基础感知能力在准确度和稳定性上有更高的要求。
左右滑动查看更多
天气场景
自动车配送需要支持全天候运营。在不同的天气场景下,各类的传感器的效果都会有一些劣化,例如激光雷达在雨雪雾的天气中会产生大量噪点。除了独立噪点需要在检测中滤除外,有的噪点会和障碍物产生粘连,导致检测结果形状的不稳定。在恶劣天气中如何保持检测结果的稳定性是感知需要解决的主要问题。
左右滑动查看更多
虽然自动配送场景多样且复杂,但是如果每个场景都可以收集到足够多高质量的标注数据,我们就可以把其拆解为一个或多个子任务并通过数据驱动的方式解决。通常一个感知工程师解决新问题最直接的方式是在原有模型的结果之后增加更细粒度的模型,修改或者补充前序阶段的感知结果。但随着解决的问题数量的持续增加,系统就不可避免的会变得越来越复杂。除了需要从顶层视角对系统进行定期重构外,如何搭建一个更通用且易于维护的系统对感知可持续迭代至关重要。
感知通用系统建设
为了应对如此复杂的场景,承载数目众多的模型和复杂的算法逻辑,支持多人协同开发、快速响应路测问题,我们搭建了一个可迭代、可扩展、数据驱动的感知系统。该系统包括线上和线下部分。
线上系统在车端部署,包括4大模块:
1)视觉感知,基于摄像头的障碍物检测和语义分割,输出图像中障碍物2D框的位置、类型和语义信息,例如车灯类型、车门是否开启等;
2)激光感知,基于激光雷达的障碍物检测,输出3D点云中障碍物的位置、类型、形状和速度信息;
3)信号灯感知,根据2D图像,输出车行驶方向上信号灯的位置和类型。以及在有遮挡或者成像不清时,会根据环境信息进行相关推理;
4)融合感知,融合上游模块的结果结合时序信息,输出障碍物的最终位置、类型、形状、速度信息和属性信息。同时对一些特殊区域和障碍物提供专门处理,例如可行驶区域检测、遮挡区域检测、施工区域、地面异物检测等。
线下部分包括数据流水线、模型流水线、感知评估体系以及感知研发工具。
数据流水线
自动配送车每天会产生大量的数据,包含路上运营的各种场景和长尾问题。如何高效地处理和利用这些数据,提取分布均衡且有针对性的训练数据,帮助感知解决问题呢?自动化的数据流水线起到了关键的作用。数据流水线包括三个主要部分:数据平台、标注工具和计算平台。
1)数据平台:车辆产生的数据被回收之后存储到数据平台。数据平台在存储和管理数据外,提供简单的筛选交互功能。工程师可以根据数据产生的时间、位置、车辆行驶状况以及各种标签筛选数据(如“雨雪天气”、“繁忙路段”、“校园场景”、“有异形工程车”等等)。筛选出来的数据可以被创建为标注任务。
2)标注工具:处理和数据标注相关的任务,包括标注数据预处理和标注任务的管理。标注方法包括人工标注和智能标注。智能标注来自离线感知流水线。离线感知可以被理解为线上感知的加强版。因为不受车端计算资源的限制,离线感知通过更大的模型、更多的时序信息输出和人工数据标注质量类似的感知结果。自动生成的数据标注会写回到数据平台,用于模型训练和算法评估。为了应对数据量大、标注规则多、版本多的问题带来的数据集对齐问题,我们开发了数据集管家,方便开发人员使用数据。
3)计算平台:大计算量的任务如模型训练、智能标注和数据挖掘都发生在计算平台上。和生成智能标注类似,离线感知被用来做数据挖掘,生成数据场景的标签和发现bad case。这些标签被写回数据平台用于数据筛选。为了保证挖掘引擎的正确性,一部分数据会被抽检做人工校验来调整数据挖掘的算法。数据挖掘还会生成伪标签供模型训练和蒸馏使用。经过评估与测试,算法最终部署到车端流水线。基于新版算法的数据又被采集,从而形成数据闭环。
模型训练流水线
在场景丰富、标注数据多样的自动配送场景,模型训练是一个冗长而繁琐的过程。在开发迭代中,如何保证算法的快速开发,各个模型的相互协同,需要好的迭代工具和自动化的流程。我们开发了统一的模型训练框架,从而可以复用分布式工具、模型加速库和可视化工具。模型训练难免要反复于“训练”和“评估”;为了减少耗时,部署前往往要进行模型加速和压缩,如果加速之后精度损失过大,则可能需要调整模型结构、重新训练;单个模型的效果需要在端到端的评测中验证,各种测试通过才能发版。针对这个多任务的长链条,我们借助Jenkins构建了任务的自动化服务:当用户启动一个任务后,服务可以自动完成一系列的工作流。用户可以通过配置文件调整任务列表和触发条件。最后可以让工程师一键启动从模型训练到端到端评测中间的所有任务,只有在需要人判断的时候干预。
自动化任务流和数据闭环结合,可以实现模型的自动更新。数据集更新触发模型迭代任务,自动进行模型训练、加速、评估。对于通过测试的模型,自动部署到车端,从而实现基于数据的模型自动迭代。
感知评估体系
客观且可量化的感知效果评估是感知系统可以持续迭代的关键。感知评估体系由3种主要方式构成:精度测试,回归测试和性能测试。不同的评估方式使用的数据,标注方式和测试目标不一样,具体区别见下表。每一个工程师开发的功能上线前都需要经过完整的评估流程和结果分析,确保效果符合预期才能和入主线。
总结
通用的线上系统,自动化的数据流水线闭环,高效的模型流水线,完善的评估体系,以及丰富的数据,帮助感知不断迭代,逐步具备处理各种场景的能力。但是配送场景复杂,车端计算资源有限,既要给下游决策提供准确稳定的障碍物和环境信息,又要兼顾系统的可维护性,感知能力提升还任重而道远。