*作者:老刘
在【首届焉知智车年会】上,一汽(南京)科技有限公司 / 一汽人工智能研究所高精地图负责人陈雪娟以「主机厂 L4 高精地图研发之路」为主题,分享了作为主机厂的一汽在高精地图方向的打法,作为主机厂为什么需要有自己的地图自研团队以及团队的业务方向,不失为一种值得主机厂借鉴的模式。
她在演讲中介绍了两个方面:一是适合小范围前瞻研究性的建图技术;二是特色创新业务地图检查,从而更好地支持整个团队自动驾驶算法的开发。
换个视角看高精度地图
陈雪娟介绍说,一汽南京公司是一汽集团一个非常重要的分支,是公司提出的「三国五地」全球战略的重要一环。集团为了抓住自动驾驶的风口,更好地吸引人才投入国产研发,去年 4 月份,将长春人工智能所分离出来,在南京成立了分公司。
经过市场分析与集团资源匹配,公司在有条不紊的扩张过程中,确立了前中后三期发展目标。前期是主要聚焦两个方面:AI 感知和 AI 大数据。
在 AI 感知方面,公司有非常明确的目标,即打造纯视觉自动驾驶量产路线,在研发迭代过程中将其他辅助技术形成技术积累,同时落地产出核心软件,计划在视觉、雷达、定位、融合等方面有所研究,在整个研发过程中产出 13 款核心软件,赋能一汽智能驾驶业务,同时希望南京的研发不仅对红旗品牌,甚至对奔腾的量产有所帮助。

换个视角看高精度地图
常规情况下,主机厂高精地图部门仅仅是需求提出方,向各类图商提出自家要求,并不具备自主建图的能力,甚至修改地图的能力也不具备。
由于高精地图目前没有行业统一标注标准,各家对高精地图元素信息的利用率不同,因而造成千人千面,需求各不相同,业务重点也不尽相同。另外,图商虽有信息丰富的高精地图原始数据,却多根据需求开放指定元素信息。
一汽南京公司对高精地图业务的定位十分清晰,也与图商以及其他主机厂形成了明显的不同。
在公司战略规划中,高精度地图模块旨在辅助整个公司的自动驾驶,不仅仅是大多数主机厂理解的购买高精地图,或是购买高精地图软件,而是要做高精度地图定制软件,根据自家不同研发阶段的需求,在短时间内随时丰富道路属性以及快速对现有地图进行修改。整个地图部门的三大板块业务包括:地图制作、地图引擎、地图质量检查。

地图制作:具备自己的小规模地图制作能力。但这样的地图制作与晶众或四维图新这样的大厂商的发展方式不同,图商需要的是自动化建图,规模化的自动化建图能力,更小的地图精度误差,以及更重要的合法合规生产交付地图周期。
法规的限制决定了把地图交给图商制作周期比较长,在快速迭代,不断尝试的研发上半场,这种购买方式不能及时响应自己的需求,所以需要自己内部有一个非常小的建图团队,以支撑感知、定位、控制规划提出的需求,快速响应。
陈雪娟举例说,根据需求实现的难易程度,目前做到了最快 2 小时完成一版专用功能的测试地图交付使用,基本上达到了上午需求提出方和地图团队碰头,理解双方意图,接下来开发功能和地图,下午便可以完成地图制作,开始上线测试。即使是稍复杂的功能,也差不多能在两周左右时间完成。这种迭代的速度,走购买地图的路子是没有办法实现的。
地图引擎:为满足其他模块读取地图元素的需求提供一个接口。这也是如何使用地图的问题。地图团队不仅仅需要制作地图,保证地图质量,也需要给其他模块开放读取地图元素信息的接口,指导其他模块顺利使用地图。
地图质量检查:这是非常重要的一个环节,也是一汽南京公司提出的创新性领域,从研发到量产的整个周期都可能涉及。
在研发阶段,因为是自己建图,需要检查自己做的地图有没有什么缺陷,自己做质保;在量产阶段,如何评判图商交付的地图是否符合其他模块的要求,地图质量是否过关,不能凭图商一面之词无限信任,图商拿来的地图还需要自己检验心里才有底。这个环节是去年向公司管理层提出的想法,也是区别其他主机厂的特色。
今年 1 月份开始着手研究系统,现在还处于初级阶段,但是也有很明确的发展方向,虽然时间很短,成果已很显著,在该方向上不仅仅有实际的输出,查出了一些地图问题并且在下次出图时予以避免,其相关专利也在陆续申请中,非常有希望将此前瞻性研究应用到量产当中。
建图流程和图商有什么不同?
陈雪娟介绍说,其地图的制作、遵循的原则和图商不一样。图商会重点考虑建图效率有多高,速度有多快,追求自动化率的极致等。但是,作为主机厂,建图并不是主业,地图部门作为一个支撑部门,只需要做到建一些简单的场景,比如一两公里的范围,供测试使用。
举个例子,如果控制规划部门提出想建立一个环岛区域,帮他建一个环岛区域就可以了。
一般情况下,特殊场景特殊处理,目前还没有能力去考虑高架上下匝道、隧道等比较常见的城市场景,这些场景都需要感知模块、定位模块、控制规划等模块初步具备相应的能力以后慢慢研发。反而图商重视的效率和规模在自己建图时都不必考虑,因为图商是每天都有建图任务,而支撑部门都是按月、按季度的建图需求。
每次建图时,范围、难易程度、道路元素的种类都会事先计划,留有充足的时间。由于建图频率低、范围小,人工标注也未尝不可。
目前使用全人工标注同样也能满足业务部门的需求。考虑到标注同学一直做车道线标注,重复率高,比较辛苦,目前车道线识别也已经很成熟,正在考虑将这一部分自动化,减轻标注同学的工作量。
当然,后期是否需要实现接近全自动化标注,还需要进行进一步考量。重点不仅仅在于实现的技术难度,也在于是否有必要耗费人力对地图中出现频率较低的元素进行识别。比如减速带,出现的频率低,纯人工标注工作量也不大,准确性也高,可能就不需要花费大量研发精力做算法和写代码自动识别标注。
据介绍,一汽南京公司目前使用的是二维标注系统,并不是三维点云系统。这种非常基础的标注系统也能够满足基本需求,毕竟大部分元素都是附着于地面,对于红绿灯是额外处理的。这方面确实有些局限性,所以后期升级考虑开发基于三维点云的标注系统。
即使是将标注系统维度从二维换到三维,也难免遇到激光雷达地面反射率相近的情况,此时更靠谱的是引入图像,依赖图像+点云融合的数据进行标注,这也是日后技术的拓展方向。

建图的流程和业内主流建图方案一样,分为五大步骤:采集数据、数据拼接与处理、标注、生成最终的地图文件、地图检验。现在是直接使用自动驾驶车辆来建图,有两个车型,一辆是是长春一汽集团总部提供的安装机械式激光雷达的车,另一辆是南京研发的安装固态激光雷达的车,后者是为量产化做的方案。
之所以有不同的建图车辆,是因为车辆所在的地域不同,车辆最初的设计方案不同。一汽集团目前仅在有自己研发机构的地方建图,目前国内只有长春、南京、海南三地。三地均有自己不同类型的自动驾驶车辆在做测试。地图团队是服务于其他模块,尽量做到现场有什么资源就利用什么资源,避免车辆的运输,降低成本。

获取数据包后的数据的处理采用从上到下投影的方式,利用激光雷达的信息生成高精度地图,数据包可以支持三种格式,因为集团不同版本自动驾驶车辆用的是不同的系统,所以会有不同的数据格式,要被动适应这些格式。
其过程很简单,读取点云信息直接拼接处理就可完成,能够满足大部分场景的需求,当然也会有缺陷,比如转弯处容易有重影,有时会用 NDT 算法看看是不是能够改善;又如依赖激光雷达反射率,当车道线和地面反射率相近时就没有办法做区分,因为使用粗糙方法做图,一些闭环场景效果不太好。这些问题目前都存在,有待陆续解决。
目前标注层面是纯人工做,所有元素类型与车道关系都需要人工标注。底图上面的线、点都需要人工去画,比如道路关系左转也需要人工标注,红绿灯也是一样。
因为建图的范围很小,比如 5 公里,不可能有 20 几个红绿灯,如果有几个红绿灯,可以人工一一处理,这样不会占用开发人员的太多时间,完成标注即可满足其他部门的需求。
这个标注系统前期用过供应商的系统,后来发现不能满足日益增长的研发需求,只能自己开发,以随时拓展和丰富道路信息。

标注完成后是生成最终文件,一汽南京公司 L4 是基于阿波罗系统做的,所以地图需要输出两种格式,一个是阿波罗的 Opendrive,一个是标准的 Opendrive,标准 Opendrive 是给仿真同事使用,他们需要用到这样的格式。
标注完生成的地图可以根据需求做一些调整,一些小的问题是通过后面打补丁的方式快速迭代,以避免改系统浪费时间。

目前南京公司建过两张较大范围地图,一个是长春的总部园区,这张图是自己建的。
另一个是南京示范区公开的道路,它是整个南京市政府划的一片自动驾驶区域,类似于上海安亭的自动驾驶示范区,大概 5 平方公里。其他还有一些公司附近的小图,供专门的测试项目使用。
从这里可以看起出,建图的里程数与图商是不能比的,也印证了前面的说法,自己具备基础建图能力只是为了支撑公司其他模块的需求,并不是要抢图商饭碗。
建图完成后是要检查的,去年还没有意识到这个问题的重要性,地图文件出来之后,直接开始路试,各个部门拿去试有什么问题再返回来修改,这样代价非常大,一是在刚开始并不知道做出的图有什么问题,其他业务部门提出疑问后很难跟踪查找问题;二是路试的人力开销非常大,大家准备了一阵子到测试场地,发现地图存在问题,又开始反馈修改。这种情况对整体团队不好,也让地图团队随时面对挑战,其他团队会因为等待查找问题和修改时有埋怨。
陈雪娟表示,经过摸索,现在已经形成了三级地图检查体系,首先是地图文件出来后会进行代码级测试,直接去查找或检查地图文件有没有什么问题,比如实际有红绿灯,但却因为疏忽漏标了。
然后再通过仿真的方式看有什么问题,最后才是路试,最后交付出去的时候已经对关键性问题进行了检查修改,不容易出现常见错误,交付出去地图质量比之前高了很多,至少其他团队不会频繁遇到问题,相应的抱怨变少了。在特别着急的时候,这三类检查可以并行,这样会大大减少实地等待时间和相应的修改,节省人力物力。
到目前为止,地图团队都认为质量检查是非常需要的一环,有必要做一个系统,根据不同需求选择不同的检查条目。
目前质量检查由一条条规则组成,从 1 月到 3 月,已经写了 20 几条规则,还有一部分没有写进去,每一条规则都有严格的级别,可以分为三类:ERROR、WARNING、INFO。这三种属性标识了如果违背该规则的严重程度。
比如如果一张地图缺失关键元素,那么检查关键元素的条目运行检查就会不过,而检查关键元素的属性是 error,则意味着本次检查的地图违背了 1 条 error 属性的条目,那么大概率这次检查能给出 fail 的结论,即本张地图不合格。
另一个例子是检查车道过窄,可能车辆某些场景能顺利通行,而某些可能因为过窄了没法通行,这个检查车道是否过窄的条目被标记的属性是 warning,因为只会引起一部分场景的失效。
此时没法判定地图质量是否有问题,需要分析具体情况,如果是标注同学标注得不对,则是地图的质量问题,如果实际场景就是车道很窄,那么标注同学也得依照实际道路情况标注,即使是车道很窄,也应该照现实世界标注得很窄。
还有一些是 INFO 信息,比如显示一些元素种类,包括整个地图范围,这需要人工查看,因为没有办法在规则里说清楚到底这张图的元素种类有几种,必须人工去判断,包括区域方面,也只有人才知道这张地图对应的的哪里的地图。
所以,这类信息只能从地图中读出,再以文字、语义的方式显示给人工确认查看。

陈雪娟坦承,目前这个系统做了三个月时间,还是半自动化状态,用人工执行条目,整个规则库里面有 20、30 条检查规则需要人工挑选执行,现在比较原始,checklist 还是人工去填,不太友好,后期如果库增加到 100 条,做的人可能要崩溃,此时就需要上线自动化检查系统了。

她说,后期打算借助持续集成的思想做自动化检测,整个流程是检查需要的条目,人工挑好了之后,把地图文件交给系统,然后由系统一条条去检查,最后生成 Report,发送邮件、归档,避免了当前人工一条条执行,再去填写 checklist 的情况。预计今年年底可能做出一个自动化系统的雏形。
除了一个自动化框架,整个检查系统的核心还是检查规则库。这是一个专家系统,没有资料可以借鉴,在这方面图商也是需要保密的,不会轻易传出来,所以需要根据经验来做。
随着时间推移,这个系统会慢慢变大,变复杂。目前南京公司已经为这个系统申请了专利,相信后续还可能有软件著作权方面的产出,甚至在成熟后应用到量产项目中,为图商量产交付的地图把关。
小范围建图能力支持内部需求
陈雪娟总结道,自己具备小范围建图能力是为了支撑其他模块使用,满足内部团队需求。如果用图商的图,一是交付周期比较长,二是每次只有 1、2 公里,十来分钟就采完了,他们从外地过来,成本太高。自己内部建小图可以节约成本,快速响应。
毫无疑问,后期量产还是要买图商的地图,因为并不打算自己去拿甲级资质,这样不太划算。
她强调,地图检查系统是未来的重点,也是一汽南京公司地图业务的特色所在,后期将继续完善这个系统,使之更加自动化,也会不断加入规则。这样,在研发阶段慢慢做,积累经验,到后面量产阶段也可以把控图商的地图,不是不相信图商,是不能完全相信,被牵着鼻子走。
重要的是,图商出图做一次检查,主机厂验收时再做一次检查,虽然检查会有重叠之处,但会有各自独立思考的地方,两次检查相当于双保险,让地图更加可靠。不仅是 L4 级别自动驾驶可以用这套系统,做相应的适配更改后 L3 级别的地图同样可以使用。