本科学理论物理,博士换到了工业工程领域的运筹方向,毕业后却加入自动驾驶公司——崔力文每次“跨界”都是为了“做自己内心认可的、喜欢的事情”。参加了楼天城到场的公司校招宣讲会后,她心里想的是:一、宣讲人真多,二、自动驾驶这事儿真有意思,我要去做。
本篇是「Pony Story」的第 3 期分享。

2018 年,在清华大学攻读博士的崔力文,偶然间听说清华传奇校友「教主」楼天城创办的公司,准备在学校开校招宣讲会,上网了解了一番后,她决定也去看看。

崔力文是个热衷于尝试新事物的女生,跨度在她这儿似乎从不算事儿:本科学理论物理,博士则换到了工业工程领域的运筹方向,而博士课题又选了医疗大数据优化处理——这属于人工智能领域中自然语言处理的一个分支。

在宣讲会上,教主现场展示了几段公司自动驾驶车的路测视频。看完之后,崔力文有两个感想:一、宣讲会的人真多;二、自动驾驶这个事儿真有意思,我要去做自动驾驶。

经过几轮面试后,凭借自己的过硬实力,崔力文拿到了 Pony.ai 的 Offer,她也没做太多考虑,坚定地加入了这家初创企业。

然而入职之后,她才发现自动驾驶的「真相」。

「之前我对自动驾驶的印象,都是特别酷的——比如电影里面那种科幻范儿、想去哪去哪的无人车;真正走入这个行业后,我才发现除了『酷』的一面,更多还有『苦』的一面:在帅气的无人车背后,有无数黑眼圈工程师在写代码做算法。」

既然加入了公司,崔力文自然也成为「背后的工程师们」中的一员;由于公司对工程质量要求非常之高,一开始她也感受到了相应的压力。

「刚来公司的时候,有些在计算机专业的同学看来是属于常识的东西,对我来说可能是非常陌生的。虽然我在博士期间也写代码,但那些代码其实是比较『随意』的,无论可读性还是效率上,都无法达到公司开发的标准。」

在 Pony.ai,代码的可读性是非常重要的。工程师写一段代码,不仅是为了实现某项功能,而且还要能让其他的工程师看得懂,提升彼此之间的合作效率,通过规范的语法和清晰的逻辑,让之后的维护变得更简单。虽然实现了功能,但只有自己才能看懂的「天书」,在公司的开发文化中,这是不可接受的。

不过,只要走在正确的道路上,痛苦终究是暂时的。得益于公司的 Mentor 机制,崔力文在 Mentor 手把手的帮助下,很快补上了自己的短板,掌握了公司的开发规范和工作流程。

「我真的很感谢我的 Mentor,在我入职初期,付出了很多时间精力带我上手,熟悉工作内容和工程规范。」她说。除此之外,优秀的同事也是帮助她成长的关键因素。「有一段时间,我在所做的项目中遇到了一些困难。当时合作的同事给了我很多关于如何做事的启发,在他的帮助下,我们把问题一步步地拆解开,去做好每一个环节。」

分割人群,让机器清楚「看」见

在大多数人认知中,感知是自动驾驶系统的眼睛,而实际上感知绝不仅是「看」而已。对传感器「捕获」到的点云信息,首先要进行对象分割,明确到底「看」到的是什么;基于分割结果,再进行对象的追踪和分类,建立帧与帧之间感知结果的关联,从而得到准确的速度信息以及类别信息;最后,还需要对物体接下来可能出现的行为进行预测,为自动驾驶系统后续的决策和控制提供参考。分割、追踪与分类、预测,三个环节组成了基本的感知流程。

崔力文主要负责自动驾驶系统感知中的行人检测部分,即从点云信号中,把属于行人的点挑选出来,分割成一个个「行人」。

与其他类型的路面障碍物不同,行人的体积相对较小,且姿态多变——站立、蹲坐,甚至弯腰,不同的姿态最后产生的点云和图像信号,形状和点数上可能会有不小的差异,因此行人一直都不是很好处理的一个类别;然而精确地感知路上的行人,对自动驾驶的行车安全无疑非常重要。

「做行人检测比较困难的地方在于,针对不同姿态的行人,以及被树丛等其他物体遮挡的行人,如何尽早地给出稳定的检测结果。以及对于路上成群结对的行人,相互之间距离很近且可能会相互遮挡。如何把一群人的点云图正确分割成单个的个体?这些都是我需要去解决的问题。」

为了妥善解决这个问题,行人检测模块会分为多个阶段来进行。首先由深度学习模型基于点云信号和图像信号,给出行人分割结果的初步猜想。接下来会结合深度学习模型、机器学习模型、以及历史追踪信息对这些初步猜想进行进一步的结果修正,最终得到准确、稳定的检测结果。

如今,在自动驾驶领域有一个共识:由于大多数路面情况都已被攻克,工程师接下来会将 90% 的时间花在 10% 的边界案例(Corner Case)上。崔力文所负责的感知模块,同样会面对这样的情况。然而对她来说,这并不是一种折磨,而是一种充满更多可能性的新挑战。

学生时代的崔力文拿过许多学科竞赛的奖项,也曾以优异的高考成绩考入清华大学,但她并不认为这有什么了不起。在她眼中,考试和竞赛的边界定义是非常明晰的:会考哪些知识点,哪些考题通过什么方法解答,只要功夫下的足够多,都能够一清二楚。然而,自动驾驶作为前人未曾实现过的领域,充满了大量创新型问题,这需要拓荒者们最大化利用自己的才能,一同去探索未知的道路。

「当我做得越久,我会越觉得深度学习的潜力是很巨大的。人类很难把所有的边界案例想得面面俱到,但随着我们测试的场景越来越多,不同区域、时段和天气的数据越来越多,我们的模型会变得越来越强大,而模型是有可能解决这些边界问题的——不过到了那时,或许在『边界』之外会出现新的『外延』——但这也正是吸引我的地方。」

背下每条路名,讲好技术亮点

除了工程师之外,崔力文在公司内还有个江湖名号:Demo 一姐。

在 Pony.ai,「做 Demo」指在外部来宾试乘公司的自动驾驶车时,随车进行相关的技术介绍和回答来宾的疑问。

崔力文刚加入公司不久,大家觉得她性格比较外向,喜欢跟人聊天,于是问她能不能来帮忙做 Demo。

「当时我听到要去做 Demo,还是挺紧张的。毕竟每个功能都是大家花了很多精力做出来的,如果我没有把这些成果介绍好,那多对不起他们啊。于是我决定去恶补一下系统的各个模块,必须要让来宾了解到我们到底做得有多棒!」

很快,崔力文迎来第一次自己担任 C 位的讲解任务。在出发前,她除了把公司的技术优势、系统亮点记得滚瓜烂熟外,甚至还把线路所经过的地名和路名都背了下来。在充分准备下,Demo 非常顺利的结束了。来宾对 Pony.ai 的自动驾驶技术非常认可,告诉崔力文「你们这个车开得比我都要好」,让她非常有成就感。

「由于技术更成熟了,如今再做 Demo 的时候,我反而会希望碰上一些非常规的场景——通过应对复杂路况,让来宾更深刻地感受到自动驾驶技术的强大之处。记得有一次前面的车出了事故,地上摆了交通警示标,我们的车识别出来之后,很从容地从旁边绕了过去,他们当时非常惊讶。」她说。

随着公司的发展,技术讲解也逐渐被推上了标准化的日程。崔力文也参与其中,与其他工程师一起编写了更为系统的技术讲解手册,涵盖了介绍前期该如何准备、技术亮点、讲解结束后如何复盘总结,以及一些常见交通法规知识等,从而帮助新人更好地上手。

用热情实现热爱,永远不孤单

在 Pony.ai,像崔力文这样乐于挑战的工程师并不在少数,而正因为有了这些「先行者」,整个公司才源源不断地吸引着具有同样气质的新生力量。作为当年的校招生,如今崔力文也已成为一名面试官。

「除了代码能力,逻辑思维能力这些基本能力之外,我觉得还有两个能力是很关键的。一个是良好的团队沟通、协作能力。」崔力文说,「至于另一个关键能力,就是对解决问题的热情。」

「因为这个行业,很多时候努力不是即时反馈的,有时确实需要热情去支撑你不断前行。做自己内心认可的、喜欢的事情,才能提升你的生活幸福感,让自己更开心,真的。」她说。

两年多来,崔力文的开心主要来自于两个方面:一是她相信自己所做的事情的价值:通过技术让出行变得更安全、舒适、高效,一步步让自动驾驶走入现实,这个过程让她很有切实感。另一部分的开心,则来自于她在公司找到了一群志同道合的伙伴,大家每天都在一起讨论各种问题,毫无保留地分享自己的新发现。

「在这里只要你想学,就可以学到很多。在我们组内,当你做出来了一个东西后,你需要给组里介绍你做的这个是什么,做它的背景是什么,它的表现如何。除了组内,我们每周都有专题讲座,有讲车辆主动变道是如何实现的,也有讲感知对象如何追踪的,组内的、跨组的都有。而且分享是相对很友好的,分享者会去了解听众的专业背景,尽量通过对方能理解的方式来介绍自己的技术框架和细节。」

事实上,一个公司内的学习机会,的确大多源于他人的无私分享。除了技术分享外,Pony.ai 的 Code Review 本质上也同样如此:花时间去认真看别人的代码并提出意见,从结果上看的确让公司的工程更扎实;但从纯个人功利角度来看,为新人「批作业」能给资深者带来的收益显然不会太多。然而,崔力文回想起当年技术大佬凌晨两点在线上给自己的代码留下修改意见时,心中依然十分感动。

而正因有了这些无私的力量,Pony.ai 的自动驾驶系统才得以迅速发展。身处自动驾驶这个行业的每个人,大多也如崔力文一般,在不断钻研和分享的过程中,不仅成为特定模块的专家,也成为熟悉整个系统的通才,彼此间也结下深厚的情谊。

「我觉得人还是要趁年轻做些真正让自己觉得热血沸腾的事儿,比如自动驾驶就是个很好的选择,它能带给你探索的乐趣,也能激发你挑战的激情。而且更难得的是,在公司有一群非常优秀的人和你一起去改变世界,你永远不会孤单。」

遇见的每次新奇,都是一道题

最近,除了重温《大秦帝国》,崔力文还找到一个新的兴趣爱好:骑单车上下班。每天花 40 分钟,一边锻炼身体,一边听听音乐,以及顺带观察一下路上的行人——这算她加入自动驾驶行业后的「职业病」。

「我有时看到路边那种蹲在草丛里的环卫工人就会有点担心,会想我们能提前多久检测到他,会不会漏掉几帧?看到行人在路边走来走去,我也会下意识去想他们下一步准备干啥,是过准备马路还是停下来?我们能正确预测出他们的行动吗?」她说。

无论是工作还是生活,崔力文都愿意将遇到的新事情,当成一道道题目,从解答中获得快乐。不过一个人的精力终究有限,她也需要去权衡,到底哪些题目应该去解答。

「如果一个问题确实很重要,那么无论它多难,大家都会扑上去攻坚,比如那些会直接影响我们车辆路测质量的问题。自动驾驶这个领域确实经常会让人感受到自己能力的局限性,但这不代表你就要放弃,因为你身边还有一群非常厉害的同事。你可以从他们身上去学习,也可以跟他们协作,有这么多厉害的人,一定能把困难迈过去。」她说。

「至于那些不重要的问题,特别是生活上的,我就比较佛系,如果影响不是很大,有时放着放着也就过去了。」

那么怎样才算不重要的问题呢,比如中午吃什么,晚上吃什么?

「不不不,这其实是非常重要的问题!」