以uniad为例,聊一聊端到端模型下,系统架构工程师如何发挥自己重要角色,一方面uniad开创性的提出了以planning为导性的网络模型,这也是模型由开环到闭环的重要转变,另一方面,保留了传统各个技术模块显性输出,分析框架上,大家也比较熟悉。系统工程师都比较清楚,性能&问题拆分都是从规控执行侧逐步往上拆分,所以uniad可以说是二者的一个混合中间过渡阶段,是进行一些思考不错的参考方案。
首先,我们先从目前系统架构的工作职责,审视一下基于网络架构的变和不变的
不变的是
用户是无感的:产品体验是不care 技术的
功能逻辑是不变的:adas还是adas,NOA 还是NOA,该降级还得降级
法规行业标准是不变的:这个不赘述了
安全冗余 依旧是要求的
变的是
如何满足功能逻辑,比如激活,退出功能,变道时间,导航信息,人机交互策略等如何重新适配 故障诊断如何实现:比如车道线不清楚,如果没有车道线的输出如何判断,或者模型对车道线的容忍度高了,怎么量化和标定 如何确定性能边界:传统规则 60km/150m 弯道即可确定性能边界ok,基于网络的是否可以 安全冗余等要求:planning的冗余逻辑,lidar& rader&视觉的冗余可靠性怎么设计和验证,暂时无思路 整个网络,但是依旧有感知,规控等技术模块独立链接,可以分开调试,这是不变的 变的是拆解到各个网络,关注的元素变了,元素的性能要求变了,上下游的影响链路变了 变得是如何鲁棒性验证,比如延迟的影响分析,现在一个网络直接级联过去........ 重点引入感知信息的无损传递,然而有无损传递,就要求下游有效的过滤和筛选 如何debug问题:从Control-planning-decision&prediction-perception的链路,肯定是变了 如何优化问题且保证问题解决有效性:基于规则的逻辑和性能,是可确定性分析验证的,且对其他模块影响也是可分析和可控的,但是基于网络的,解释性差,如何验证问题优化不会对其他模块带来负面影响 不变的就是我们的基础能力,重点来阐述变在哪里,以及如何变 ,毕竟唯一不变的东西就是变化,那么好,我们就要抓住主要矛盾和矛盾的主要方面 主要矛盾转变,基于规则的优化算法变为数据驱动的网络模型,也就是基于数学方法论论证的设计方式,转变为数据驱动的模型拟合!本质上说是可论证方法变为实验验证的方法 数据代替人的建模能力,依赖数据和算力暴力拟合或者学习 信息的无损传递,其实就是线性化到非线性的转变,规则大部分都只适合线性系统,EKF、 QP求解等大部分都是非线性系统进行线性化处理,非线性系统的低维线性化必然会带来损失,而模型本质就是高维拟合和分类,天然优势就在非线性系统 闭环论证变为经验开环拟合(学习)为主,经验开环底层逻辑为注意力机制 那么好,本质上来说,是只要历遍ODD内的所有场景,二者都可以设计出符合预期的产品,现实情况是规则根据自己的边界设计ODD,模型通过数据拓展ODD,规则的ODD是上限, 模型的ODD是数据 进入正题,就从矛盾的主要方面对uniad进行系统性分析 无损传递&有效滤除: 要实现高维信息的无损传递到决策,再有效滤除到执行端,其实挑战在决策规划,最终的执行器是两维信息,高维无损信息传递给决策规划,信息是无损了,但是更多的是无效信息,无损隐藏的要求是更多的信息给你,性能应该更好,这就对下游带来更大的挑战。本质上来说模型就是一个类似人的注意力的非线性分类和滤波器,举个例子说走路上,大部分的环境你是没印象的,甚至你会盯着某个短裙长腿妹很长时间,甚至娃名字都想好了,但是不影响你安全通过路口。 无损传递并不是降低感知的性能要求,只是对感知的要求有变化,更意味者决策规划要进一步挖掘感知和自身的能力,释放整个系统潜力 既然感知是无损传递,决策规划是后处理,依然有这个划分,那么双方依旧需要一些性能指标的拆分 既然留了传输接口和可视化,那么元素和性能现阶段我们依旧需要或者可以列出来,逐步迭代 重新定义无损:何为无损,足够下游做正确的决策需要信息传达下去即为无损,对下游无用的信息即为噪声,所以是何为无损,够不够损,依旧跟下游模型策略有关系 元素:属性是否足够,比如障碍物六自由度信息,长宽高等,障碍物是否还需要其他信息 范围:是否整个探测区域范围元素要求都需要无损?还是不同场景重点关注场景不一样,比如拥堵路邻邻车道车根本就不care 整体关联性:车辆&车辆、车辆&车道线&路沿、自车&他车相对位置关系组成的整体观感,这是无损很重要的一个点,或者说如何学习和理解整个交通流,才是端到端的关键能力 逆向推演,如果有最终的决策执行,反向拆分到感知,其实能得到对整个决策有影响的只是感知的部分区域和信息 感知给出完备的元素,相互关系,但是不同距离的性能可以降低 规控需要解决的是各种注意力机制提升非线性拟合能力和判断能力,弥补感知无法给出视角范围内足够精准稳定的局限性,提升鲁棒性 规控要有基于自身视觉的场景理解能力,能够在无效噪声信息中,利用多方信息交叉验证,提取有效信息,实现更高的性能天花板的同时具备鲁棒性,比如在传统规则后处理试图对障碍物通过交通流的物理特性进行校验和滤波,发现几乎不现实,但是如果用模型的话,可以天然融入处理好 控制出身的同学都知道,即使很轻微的正反馈的干扰,也会导致系统逐渐发散,大家都经历过,上车调试前看规划曲线很正常,但是一闭环就画龙,开环的评测和闭环反馈是有本质区别的,也是端到端必然面临的挑战 预测&决策&规划&控制的闭环影响依旧是存在的,预测会影响决策,规划和控制的稳定性也会影响决策,这是基本的稳定链路环路,核心点还是决策,既要保证顺序传递链路决策的合理性,即规划执行合理舒适无风险,又要随时准备规划或者预测异常时,能够足够快进行调整。这是基本的能力,在这个基础上,需要考虑博弈和交互等更加复杂的场景,这些在网络设计中依然是重点要考虑的 如何从现在感知(开环)的训练和评测迁移到感知到规划&控制的闭环,也是难点之一,以往的数据遮挡、或者异性特征,都可以从测评直接得出,但是感知到规划,如何验证闭环的稳定性,从工具和评测都会有很大差异 如何训练出适合控制器执行的轨迹,也就是整个端到端的输出,叠加规则和后处理也好,但是最好在网络里面有这个注意力机制起作用,能够从原理上有约束力,然后依旧需要规则的安全 校验 控制端最好也针对轨迹的新特性做一定的调整,依旧是一个系统工程,没有理上游底层算法特性变了,输出轨迹没有任何改变 核心点,还是轨迹的连续性和稳定性和安全性,需要规划和控制系统性优化 模型输出轨迹,是不知道控制需求的,这个需要将控制的需求体现在训练里面 控制关心的轨迹点上各个元素的精度,模型如何体现精度 是否需要增加一个适配层,做一些滤除和调整,实现更好的闭环? 如何设计合理和验证的整体闭环稳定性(目前对模型的技术基础尚不了解,提出问题待日后完善) uniad 是开环验证,如图,每次轨迹都从车身原点出来,每次更新都重新刷新轨迹,没有历史的连续性,控制无法进行稳定闭环跟踪。控制是一个物理过程,是时间维度的连贯性,举个简单的例子,跟踪有误差,控制需要有误差积累的反馈然后动态调整,如图所示的轨迹,显然达不到。之所以开环看起来很稳定,每次循环都刷新轨迹,只能保证单次合理性,能够看起来合理是因为驾驶员本身做了正确的操作,只是驾驶员操作的单次映射而已。 参考 开环端到端自动驾驶:从入门到放弃 (https://zhuanlan.zhihu.com/p/669454065 ):不受到累计误差的影响。再难的路, 0.5s后 human driver总会给你正确答案 关于ego status: 英伟达最新!CVPR 2024 | 开环端到端自动驾驶中自车状态(Ego Status)是你所需要的一切吗? (https://zhuanlan.zhihu.com/p/685494828 ):该文章不敢苟同,没有了图像输入,依旧有轨迹输出,应该反思的不是用不用ego status,而是训练验证方法论的问题,很明确的一个点,ego status是必须要有的,分歧点或者难点是如何使用他。腿不好不要嫌弃路不平 控制需要连续的轨迹去跟踪,这块可以参考传统adas基于车身坐标系下的轨迹的拼接和stich的原理 实际训练其实是可以参考自车走过的路径的,将未来一段时间的自车轨迹标定出来进行训练 最好是复用现有的感知的能力,所谓的无损信息传递,并非是现有的接口信息不需要,而是远远不够 去掉或者大幅减少感知后处理,包括障碍物和车道线等,不要阻挡无损传递的通路 可以认为模型有自己的整体关联性视感:更多的关注车道线&障碍物的相对关系,障碍物等交通流的相对关系、道路结构拓扑图 的结构关系 无损信息提取,拥有整体视感阅读能力和聚焦能力,也就是如何发挥注意力机制,从整体视感上,抓住重点信息 从感知到出规划轨迹,是有更明显的时空关联关系,最终输出是低纬度有约束的信息,从控制角度来说是多输入单输出系统,意味着存在更多冗余信息可以交叉验证,是挑战也是挖掘潜力的重要的点。 高维噪声的评估和过滤能力,比如高频和偶发的车道线和障碍物的抖动,现有滤波处理会带来刻板画龙或者点刹,模型我相信会有更好处理能力 对输入指令分类处理能力,如何设计,人类其实就有很强的分类组合能力 障碍物直接输出带3条预测轨迹,带概率,将预测跟感知信息一同处理能够尽可能的损失预测的信息 障碍物的性能指标在不同的距离和相对位置关系的要求可以进一步下降,下游通过综合无损信息和噪声信息进行滤除 传统的单点滤波:障碍物前高频小幅跳动,偶发一帧跳变,速度,加速度,位置的白噪声 不敏感 不同场景有聚焦区域:能够有意训练出真正影响功能的区域,重点关注 关联性滤除:无关紧要的障碍物滤除,比如邻邻车有个横向位置,这种就直接不管;能够根据周围车交通流将不符合物理规律的异常检测滤除 关联性优化&鲁棒&泛化:根据障碍物&车道线&路沿等,综合安全和灵活性给出合理的轨迹 轨迹是连续的,跟车身解耦的,且车身画龙等非预期时,依旧是一个解耦车身且车辆有能力跟踪 通过对uniad在没有网络模型的基础上,从系统工程的角度进行了一些思考,分析出一些认为关键的或者不同的方案迭代要注意的设计要点,接下来会进一步学习逐渐完善系统工程的分析、闭环和验证工作: transformer、注意力机制等底层的模型网络 因为人其实是三重冗余:学习的开环经验,开环经验的微调, 紧急异常执行 按照经验打一个角度基本上就能过,这就是习惯,或者程序化的 发现新车不一样,需要微调一下,这就是人的泛化或者鲁棒能力,其实是另外一套监控体系 再然后发现这车太不一样了,要撞马路牙子了,会条件反射猛打,这属于安全机制 对应到车上就是adas&AES,但是少adas的冗余监控,这恰恰是用网络模型我们要思考的 首发!小米雷军两会上就汽车数据安全问题建言:关于构建完善汽车数据安全管理体系的建议