张新栋 · 2020年04月02日

ADAS产品(前视摄像头篇)

近两年,国家出台了许多鼓励ADAS产品的行标和政策,对一些大型货运车辆、特殊行业车辆进行了明确的要求,需加装含有ADAS功能的产品才可上路运营,当然也对诸如此类的ADAS功能产品的各项指标进行了明确的要求。行标里明确规定该类产品包含的功能主要有两个,第一个是前碰预警(Forward Collision Warning,简FCW),另一个是道路线偏移预警(Lane Departure Warning),具体功能的运行指标要求在本文不会展开去叙述,感兴趣的读者可以自行搜索。
首发:https://zhuanlan.zhihu.com/p/49071533
作者:张新栋

一. 引言

该类ADAS产品功能是通过在车前窗适当高度位置加装一个前视摄像头,然后通过后端的芯片、算法同步分析计算实现的。目前该类产品的主要市场还在2B,第一是运输企业或者涵盖运输业务的企业对司机驾驶的监管有需求,第二是国家政府出台的相关政策的支持。在2C市场中,广大民众对该类产品认识度和接受度普遍较低,且目前能实现完全主动预警的产品单价远高于2C市场的民众心理预期,以Mobileye单品为例,能实现LDW、FCW主动预警功能的产品,单价在5000~8000左右。相信这几年随着算法和硬件的不断发展,该类产品的成本和单价会约做越低,到时候应该是2C市场爆发的一个井喷期。

后面的篇幅,我们将会以Mobileye的产品为例,来和大家一起讨论一下基于前视摄像头的ADAS产品的一些要点,比如都能实现哪些功能?产品设计思路?产品生命周期等等。

二. Mobileye产品功能介绍

Mobileye是以色列一家生产协助驾驶员在驾驶过程中保障乘客安全和减少交通事故的视觉系统的公司。已投身研发 12 年并收获了前所未有的技术知识。公司在单目视觉高级驾驶辅助系统 (ADAS) 的开发方面走在世界前列,提供芯片搭载系统和计算机视觉算法运行 ADAS 客户端功能,例如车道偏离警告 (LDW)、基于雷达视觉融合的车辆探测、前部碰撞警告 (FCW)、车距监测 (HMW)、行人探测、智能前灯控制 (IHC)、交通标志识别 (TSR)、仅视觉自适应巡航控制 (ACC) 等。(From Baidu)

这里我们主要介绍一款来自Mobileye的产品--> Mobileye560,这款产品能实现前碰预警、行人避碰预警、车道偏离预警、车距检测与警告、智能远光灯控制、限速警示等。该款产品,我只是简单的在淘宝搜索了一下单价,价格区间在5000~8000之间浮动,估计供应商的供应渠道也差不多在这个范围。算上上门安装的费用,大概1000左右,其实整体的花费还是不小的。

三. Mobileye产品的使用流程

我们这里简单叙述一下Mobileye560的使用流程,或者说大多数主流的主动预报的ADAS产品的使用流程,一般来说可以总结为如下几点:

1、接入行车数据

一般通过ODB口或CAN口,接入行车的一些关键数据,如车速信息、转向灯信息等等。一些朋友可能会觉得接入ODB和CAN口的侵入式安装方法不安全、不舒服,也有一些产品设计采用了比较讨巧的方式,比如在转向灯拨盘处加装传感器、利用GPS测速等等。讨巧归讨巧,接入车身数据主的主流方式还是ODB和CAN口,通过GPS测速难免会碰到信号不稳定、卫星数量少导致定位测速精度低、城区工作不稳定等问题。

2、 进行ADAS系统的标定

第二步,也是整个使用流程中最重要的一步,关乎到了ADAS系统能否稳定、高效运行。说他复杂嘛,其实也还好,标定的出发点很简单,就是为了告诉ADAS系统,当前安装的这个前视摄像头的姿态和安装高度(当通过视觉算法检测到行人或车辆时,通过小孔成像估算其距离;生产鸟瞰图,辅助道路线检测算法)、当前摄像头距离车头的距离、车身的宽度等。当上述的参数都准确的测量完毕以后,相机围绕行车的坐标系已经成功建立起来。

3、 载入标定数据及模型

第二步中标定好的数据载入ADAS系统后,系统会根据输入进来的数据选择最合适的ADAS模型。至此,整个ADAS系统就可以正常工作和运行了。

四. 前视ADAS功能

上文介绍了Mobileye560的功能和使用流程,我们回过头来讨论一下,基于前视摄像头的方案,都能完成哪些ADAS的产品功能。在开始讨论之前,我们还是要先明确一下摄像头的基本选型。以Mobileye560为例,为了获得更远的感知距离,Mobileye560采用的是一个较小视角范围的镜头,整个视野范围大概在40度左右。这一点上是跟市面上的智能行车记录仪有所区别的,行车记录仪视野范围一般要求大于120度,能实现更宽视角的录制。(PS:有医学方面的会议也曾讨论过,当一个人专注正视前方的时候,其视野范围大约也在45度左右)

在明确了镜头选择以后,我们来讨论一下,基于前视摄像头方案都可以实现哪些ADAS功能呢?理论上来说,只要是人眼能够感知的功能,该方案都可以做到,关键还是算法能不能达到性能要求。比如上文提到过的,车道偏离预警、行人避碰预警、前碰预警等等。但是,目前基于前视摄像头的ADAS产品,还是存在很多问题,这里我们不一一列举,我们着重讨论几点。比如,当处于夜间场景时候,光线较暗,一些ADAS功能就不能正常运行,比如行人避碰系统;再比如,当处于逆光场景的时候,车道偏离系统可能不能正常的进行工作;当处于低速运行场景(如城区形式)、树荫下的时候,车道偏离系统可能会不工作等等。

上面提到的问题,如夜间场景、逆光场景等跟光照环境有关的问题,可能大家第一反应会去想,“会不会是算法不够优秀?”。当然,这是一个原因,如果算法优秀到任何场景、任何情况都能正确的进行预警,理论上我们也能解决这些问题。若我们把问题追踪到数据生成的阶段,可能我们会有不一样发现:摄像头内部的传感器对光线的感知范围(深度)是不如人眼的。所以许多朋友夜间开车的时候,你可以通过微弱的光线发现远处的车辆,但回过头去看摄像头采集到的数据时,缺是黑乎乎的一片。就目前技术的发展来看,民用级别的摄像头在与人眼的PK中,人眼还是占据很大的优势的。目前学术界和工业界都已经开始重视这个问题,相信不久后,接近人眼感知功能的摄像头传感器就会面世。

当处于低俗运行场景时,为什么一些ADAS产品的车道偏离系统会不正常运行呢?我们究其根源,会发现这其实是该类场景的一个行业问题:当车在低俗运行的时候,大概率在城区、道路可能会不规范、会跟车形式、有树荫、房屋阴影遮挡等等,在这些场景下,车道线检测算法的误检率比较高,所以为了让车道偏离系统能正常的工作,在产品业务逻辑的设计上面,就规定了当车速超过一定范围(此时大概率不跟车、或在高速路上运行时),道路偏离系统才会正常运行和工作,这个是产品业务逻辑设计的问题。当然啦,如果我们还去考虑算法,如果算法能做到无论何时、无论何种状况都能成功检测到道路线,其实目前碰到的问题也能解决。

算法在进步,硬件也在进步,产品业务逻辑的思考也在进步,目前市面上成熟的ADAS产品,或多、或少都是算法、硬件、业务逻辑相互进行妥协的一个产物,距离全自动驾驶、接近人眼的确还有很长的路要走。

五. 产品设计思路

围绕前视摄像头方案的ADAS产品设计思路,每个人有不同的看法,我们随便讨论几点,也欢迎大家能提出一些不同的、有意思的看法:

1、主动预警还是被动监控?

若考虑产品定位是主动预警,镜头需要有更远的感知距离,算法的实时性要能满足,芯片的计算能力要足够等等;若考虑产品的定位是被动监控,可以牺牲部分感知距离,获取更大的感知范围,如传感器。另外,实时性也不一定是首要的考虑要素。

2、产品功能和拓展支持

ADAS产品包含的功能有哪些?如果只含有车道偏离预警功能,我们在芯片、算法选择和业务逻辑设计上就会有很大的余地,市面上很多低功耗的芯片都能满足我们的计算需求,甚至很多芯片都自带了车道偏离预警的功能,我们只需要为其提供对应接口的参数即可(如相机安装高度、相机内参等等);反之,如果既含有车道偏离预警功能,又要满足一些感知的任务,如行人避碰、前碰预警功能,则对芯片的计算力会有较高的要求,是否支持SIMD?比如NEON。是否支持GPU计算,如OpenCL或CUDA。目前若考虑单品的BOM成本,一般都不会去考虑NVIDIA家的芯片,太贵了。但就目前对深度学习算法和库的支持和芯片计算力性能表现来看,NVIDIA还是有较大优势的。

若想一个产品里支持多种功能,对芯片计算力的要求就更为苛刻。不过好在近年来芯片行业对AI和深度学习的思考和支持越来越多,比如RK3399和即将上市的RK3399 pro,对深度学习的支持越来越好(OpenCL、NPU、NEON);NVIDIA就不用说了(CUDA、NEON),目前行业中的老大哥,缺点就是太贵了。

3、 找上游供应商还是自研算法

说实话,很多中小型的公司是没有自研算法的能力的,首先公司内部可能就没有该方面的技术人才储备,其次社招上算法人力的水平是鱼龙混杂、参差不齐,但又很想去分一块蛋糕,怎么办?寻求上游供应商的支持,可能是一个走捷径的办法。短期内若想迅速出产品,公司只需要把精力放在功能集成上即可;但核心技术依赖上游供应商毕竟也是限制企业发展的一个要素,自研算法既能摆脱对上游供应商的依赖,也能积累核心技术、理解业务逻辑。

六. 产品的生命周期

说到产品的生命周期,其实还是有思考的门道的,是先选芯片再去设计算法呢?还是先选摄像头?或者管他三七二十一,我先在电脑上跑个能满足需求的算法,其他的再根据算法的表现来考虑。在上文中产品的设计思路中我们也提到了几点,在这里我先假设的场景是,我们自己去研发算法,目标是做主动监控的ADAS产品,先不考虑可拓展功能。下面,我简单跟大家讨论一下,我会怎么去考虑这个产品的生命周期。

1、明确产品功能

2、验证算法性能

3、芯片选型和硬件方案设计

4、算法移植

5、产品功能测试和业务逻辑调整

关于上述几点,有时间了我们再展开去讨论。。。

推荐阅读

专注嵌入式端的AI算法实现,欢迎关注作者微信公众号和知乎嵌入式AI算法实现专栏

WX20200305-192544.png

更多嵌入式AI相关的技术文章请关注极术嵌入式AI专栏

推荐阅读
关注数
16355
内容数
1226
嵌入式端AI,包括AI算法在推理框架Tengine,MNN,NCNN,PaddlePaddle及相关芯片上的实现。欢迎加入微信交流群,微信号:aijishu20(备注:嵌入式)
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息