一家合资公司打算开启新业务,踏足自动驾驶研发,不免想到首先借助两大集团的平台资源。新部门成立之前,公司选派了几人深入到本土集团的智驾部门进行实地学习(一个月?三个月),目的是弄清楚智驾部门的组织结构和工作内容,为成立新部门做好前期准备。这几位元老随后成为了新部门的核心主管。新部门成立不久,与德国智驾部门的联络也开始建立,设立了一个中德联合研发项目,派遣7人去往的德国集团的智驾部门进行实地开发(一年),目的是掌握智驾部门的技术体系和研发工具,为新部门的自研工作储备力量。我是7人小分队的成员之一。第一次出国的心情十分激动,对陌生的一切充满了期待。后来每到61儿童节,我都会想起那天,看到“世界很大”。刚开始我们住在酒店,一边适应当地时差,一边适应工作环境,一边也在适应食物口味。天空很蓝,窗外很静,街上人少。习惯晚上10点半睡觉的我,十分不太习惯此时的太阳还不睡觉。地理课本上的夏令时,原来是这样的。工作环境比国内要好一些,工位没有那么拥挤,周围也更加安静,适合专注地工作,我很喜欢这一点。不过,我在这里的工作内容发生了一些变化,和同行的另一名同事一起负责感知模块的工作。虽然定位和感知都有与激光雷达、摄像头打交道,但两者的技术栈内容相差还是挺大的。定位解决的核心问题是“我在哪里”,关注的是本体状态;而感知解决的核心问题是“周围是什么”,关心的是客体状态。我挺喜欢学习这件事儿,沿着问题找到答案的过程,总是充满了惊喜。说干就干,从零开始学习感知技术。第一次听到“learning by doing”这个词,是这边感知组的PM给我派任务的时候。当下版本的感知系统对目标物体的速度检测存在一些延迟和误判,让我尝试能不能利用毫米波雷达来改善速度检测的准确性。感知是一个多传感器融合的大系统。多传感器信息融合的方式有多种方案,简单地可以分为前融合和后融合。在很长一段时间里,大部分智驾系统采用的是后融合方案,即目标物层级的融合。这种方案在高速路工况下问题不大,可在复杂拥挤的城区道路,就完全不适用了,因为目标物太多,距离又很近,传统的目标物匹配算法遇到了很大的困难。于是,前融合的方案开始被大家广泛讨论。一种前融合思路是,把连续的三维空间分解成一定大小的网格离散空间。然后将激光雷达点云的距离信息、基于深度学习的像素语义分割信息和毫米波雷达的原始点云的速度信息,这三类数据投影到离散空间的网格内。最后,基于这个包含丰富语义信息的离散网格,生成目标物列表。这里的前融合主要体现在不同传感器原始数据的早期融合,使得每一个空间小网格具备了距离、语义、速度属性,为后续稠密目标物群的生成提供了丰富的信息输入。在ADAS领域,毫米波雷达算是一位老兵了,业界已经有十分成熟的产品,成本低,可靠性高,但存在的问题是在城市工况下的误检和漏检很多。在激光雷达和图像衬托下,它显得有些多余了,这可能也是感知组在前融合方案里不着急加入毫米波雷达的原因之一吧。不过,眼下棘手的速度检测问题,有必要重新思考一下毫米波雷达在前融合方案里的江湖地位了。为了解决这个问题,我开启了两条故事线。一条是研究毫米波雷达,查阅检测原理,研读核心算法,设计场景实验,测试性能表现,分析数据特征,找到内在规律;另一条是研究前融合框架,理解整条数据链路的处理过程,熟悉每个环节的具体内容,反向推理每个算法背后对应的实际问题,找到速度检测问题的突破点,设计融合毫米波雷达速度检测信息的路径。经过半年时间的不断摸索和调整,最终完成了毫米波雷达的前融合,且在实车上得到了性能验证。当在技术分享会上向大家展示实验结果时,我是又激动又兴奋。当德国同事通知我,他打算把我的这部分代码合并到主开发分支时,我是又自豪又感激。这半年期间,对桌盟友数次充当小黄鸭,帮助我厘清程序设计思路;德国同事不厌其烦地解答我的疑问,帮助我理解复杂的感知链路。没有这些支持,我很难在这样短的时间内积累如此多的感知算法知识。可是,全球新冠疫情的突然爆发,改变了原本平安喜乐的生活和工作。每天各种新闻报道铺天盖地,骇人的新增数字居高不下,我感受到了生存的威胁。每周一次出门大采购,回来拎着重重的购物袋。害怕遇到陌生人,更害怕路边突然摇下的车窗,发出指向自己的怒吼。整日待在房间里,不是躺在床上,就是躺在沙发上,窗外的蓝天不再觉得美丽,无助和空虚占据了身体。在国际航班全面熔断前,公司给我们买到了回国机票。趁着天色未亮,我们一行人静悄悄地,踏上了去往机场的路上。不确定这一路是否会遇到交通围栏,也不知道能否顺利通过体温安检,设想了种种可能,但没不敢想象如何应对。幸运的是,全副武装的我们都如愿上了飞机,没有一人落下(这是最可怕的情况)。飞机落地,迎接我们的是14天的酒店隔离。大巴穿过街道,我熟悉又陌生,恍惚觉得一切都不太真实。
部门内部躁动不安,招聘市场热火朝天,这是一段很长时间内的真实写照。一开始雄心勃勃的自研项目,现今面临着巨大压力,研发进展十分缓慢,质疑之声也愈来愈多。“别人都已经实现功能量产了,咱们这样自研还有意义吗?”自从入坑深度学习后,我便全身心投入到“炼丹”科学。采集标注数据,检查标注质量,训练模型参数,尝试模型调优策略,完成实车部署,检验性能结果。学习-练习-实践,努力践行着正向循环曲线。国庆期间参加了一个线上比赛,觉得赛题很有趣,就上手干了起来。没想到居然能获奖,还拿到了一笔不少的奖金,这也算是工作之余的一段难忘经历了。可是这样想一出是一出的发散式学习,终究不是长久之计。对于接下来要做些什么,上面似乎也没有任何计划。一方面看到行业发展的日新月异,同行们围绕各种技术路线、商业模式激烈地争论着,而另一方面看到部门内部的低沉萎靡,缺乏一个能够激励大家凝聚一心的目标。就在此时,一个ASPICE流程认证项目仿佛横空出世,“年底前要力保完成”,我被选中全面负责此事。随着Agile Scrum流程已在部门里推行多时,敏捷活动的实施逐渐陷入了流程化,一些动作也有些变形。同时,大家也觉察到在研发过程中,某些环节的缺失不仅导致功能开发内容不聚焦,也使得团队间的协作变得非常困难。正值行业驶入量产快车道,对于一直在做预研的我们,不免好奇量产项目开发的模式是怎样。作为已被汽车行业广泛认可的软件开发流程体系,ASPICE是我下一站探索领域。Automotive SPICE是汽车领域用于改进和评估流程的一种框架,初衷是为了保证质量和风险管控,用于内部流程改进和评估供应商能力等级,强调“事事可追踪(追溯性),件件需一致(一致性)”。Agile是原生于互联网的一种软件开发方法 论,旨在应对不断发生的需求变化,建立高效能团队(高度参与和有积极性),高效地实现团队目标,强调“自管理,透明,承诺”。我觉得,这是两种不同思维方式下的行为差异。ASPICE想要的是工作内容应环环相扣,有头有尾,有始有终,保证最终产品高质量交付;Agile则鼓励迭代交付,随时调整工作优先级,以确保同一时间下的产品力最优。一个是缓慢启动,然后直奔终点;另一个则是快速启动,然后迂回前进。尽管道不同,但大家的目标却一样,从来都是SOP(Start of Production)。也许以后SOP会成为一个古早词汇,因为汽车商品正逐渐从“一锤子买卖”朝着“一切皆服务”转变,”Start“将会变得模糊,”Version“将会更加凸显。基于我的有限认知,看到市场上有以”敏捷“为内核的新势力派(不敢苟同其Agile灵魂)和以”ASPICE“为明珠的大厂派(成熟不等同于傲慢)。考虑到内部团队的背景组成,主体是年轻的、仅有预研经历的和已建立Agile体会的人,要想让项目不搞砸,我需要找到一种融合派的最优路径(仅针对该团队该项目)。如何让大家接受ASPICE这样定义明确,事无巨细的工作方法;如何让每个参与其中的人都有所收获,不虚此行;如何在极其有限的时间内完成项目。我意识到,这次面临的挑战与以往研发视角不同,不是简单地让技术事实说话就可,而是一场”人、事、时“的多方平衡游戏,每个角色都是成败的关键所在。融合派怎么做?没有范例可以参考。尽管ASPICE组织也在提议融合Agile,但雷声大雨点小。融合二者的本意是取长补短,但是做不好的话,就会变成工作量加倍。我开始像一位导演一样,在头脑里反复推演故事结构,构思剧情概要,划分人员职责,获取资源条件等,最终形成一个经得起推敲、切实可行的项目方案。我把“How to Run Agile Scrum in ASPICE World”分解成两个部分:
5年过往的完结,并非未来的终结。自己也十分惊讶,居然在一个星期内基本写完,本以为会是更长的时间。里尔克说,”探索那叫你写的缘由,考察它的根是不是盘在你心的深处;你要坦白承认,万一你写不出来,是不是必得因此死去。”难道这就是”居于幽暗而自己努力“,所以一切”都有了个交代“?正如开篇所言,一个人的经历,只是宏大故事中的微小一块,请大可不必地以小见大,片面断言。一代一代汽车人,总有新故事发生,也有旧剧情落幕。The show will always go on!(全篇完) 来源:车路慢慢