0%

无人驾驶技术简介

稍微总结一下近期看的无人车相关的资料。

巨巨任少卿看完之后的几点勘误:
“双目感知用于 3D 建模,人眼开车本质也是视觉” 人开车用的是单目视觉
“KITTI 数据集包括6小时 1M 张 140w 像素的彩色图片,目前业内顶尖水平的平均处理时间约需要0.3s” 30fps是必须的
”寒武纪!!还是发了几个处理器,名字有点傻傻的:DianNao,DaDianNao,PuDianNao,ShiDianNao”是他们paper的名字:)

自动驾驶分级简介

一个大致的介绍可以看这个文档:无人驾驶五级分类,另外附上一个 主流的高端车的自动驾驶级别,还有一个是知乎上一个自动驾驶工程师写的文章 自动驾驶攻破的难点在哪,何时能到Level 5?

主流的分级有两个,一个是美国机动车工程师协会 SAE(L0-L5),另一个是美国国家公路交通安全管理局 NHTSA(L0-L4)。

这边给一个NHTSA的汽车自动化分级:

  • L0 - 无自动化
    • 车辆操控上无智能化,可能实现了某些辅助功能。
    • 自动雨刷,自动车灯,转向车辆检测等
    • EBD/CBC制动力分配系统,ABS防抱死系统等,这些功能介于 L0 和 L1之间,总的来说可以放 L0。
  • L1 - 单一功能级别的自动化
    • 和上一级别的主要区别是,开车会省力很多。
    • ACC自适应巡航,根据前车以及本车的行驶状态来自动加减速。
    • EBA应急刹车,驾驶员用了和平时不一样的节奏踩刹车,就会自动全力刹车。
    • LKS车道保持,通过传感器使得车在车道中间行驶。
    • 中档车多多少少会有一点。
  • L2 - 部分自动化
    • 和上一级的主要区别是,一般场景可以手脚同时离开车,人不再是主要操控者。
    • 典型的,如结合 ACC 和 LKS 我们可以认为实现了 L2。
    • 只有很高档车的会有这些。特斯拉介于 L2 和 L3 之间,低速场景堵车场景可以不用人操作。
  • L3 - 有条件自动化
    • 和上一级别的主要区别是某些场景下,车辆可以完全接管汽车。
    • 保留驾驶员接管车辆的可能,预留足够的预警时间让驾驶员接管车辆。
    • 目前只有奥迪 A8 一款车号称 L3,五年之内应该会加大份额。
  • L4 - 完全自动化
    • 和上一级的区别是,空车也能跑。
    • 可以理解为不需要人操作车辆,在指定范围内点到点。
    • 波士顿咨询给的时间表:预计2021,进场。预计2035,市场份额25%。

L0-L2应该正经叫法是 ADAS,L3-L4才能叫自动驾驶。可能大家为了 PR 会故意叫高端一些吧。

无人驾驶系统

大的来说,系统分为三个大块:系统端,算法端,云端。系统端更多指传感器驱动和数据融合,算法端主要做感知和决策,云端用来建模追踪等等。

系统端

传感器

一般来说还是需要很多传感器的数据融合的,毕竟有些传感器在某些场景下会失效。

  • GPS 全球定位系统

    • 关注新一代GPS:差分 GPS系统
    • 精度可以到达 30 厘米级别,数据刷新频率大概10 Hz
    • 城市内由于多路径问题造成的误差可以大大减小。
    • 博通新一代芯片,BCM47755
  • IMU 惯性传感器

    • 价差巨大,消费者电子产品里的几美分到几美元,车载几百上千,洲际导弹几十万美元。
    • 刷新频率轻松 1 kHz,结合 GPS 就可以得到非常精确的定位。
    • 距离是加速度的二次积分,误差累计非常大。
    • MEMS的传感器还有测角速度的版本,然后 A 股里有 MEMS 的厂商给电子产品供货(逃
  • LIDAR 激光雷达

    • 检测位置信息,检测距离100米以上,形成“点云”可以充分表征周围的环境。
    • 10Hz 旋转扫描四周,数据量巨大无比,16线雷达每秒需要处理 300 K 个点,64线雷达每秒需要处理 2200 K 个点。
    • 空气有悬浮物,大雾霾大雨直接跪
    • 很贵,16线目前 8000 刀,64线 10w 刀。据说今年 CES 发布的固态设备会降到300。
    • 特斯拉没有用。。。
  • 摄像头

    • 几乎所有的方案都用了 8 个以上的摄像头。
    • 车道线检测,交通灯检测,行人检测都是以摄像头的数据为主。
    • 60 Hz 拍照,1080P 的数据的话,一张图2M,每秒G级别的数据。
  • 雷达/声呐

    • 底线级别的安全保障,检测到近距离障碍物就避让或者制动。
    • 很多高端车现在已经有类似套系统。

车载平台

  • 硬件系统
    • 由于数据量太大,基本上不可能实时上报,大部分东西都要在车载设备上算。
      • 车载专属类 GPU 芯片,主流芯片算力是 5-20 TFlops这个级别,当然功率也极高。FPGA 或者类 ARM 移动 SoC在这个场景可以获得更高的能效。
      • 各家芯片商都开始出自己的驾驶芯片了,特斯拉捅翻了马蜂窝!自动驾驶芯片战争爆发
      • 某度的车怼了一个 XEON E5 cpu 和4-8个 Nvidia K80 gpu,峰值功率 5 kw。
    • V2X车联网。
      • 5G 协议的一部分,普及情况非常不明朗。
  • 软件系统
    • 大的来说都是 linux/unix 下,部分模块可能上实时操作系统,或者弄成嵌入式系统来保障安全性。
      • 有很多是基于 ROS 来做的。ROS 本身可以接管通信机制,发现同步机制之类的事情。但问题很多:1. 安全性,可用性都需要自己弄解决方案,2.广播、消息系统的性能不太好。等等
      • 也有很多直接自己糊程序,不使用框架。

算法端

定位算法

  • GPS/IMU方案
    • 可以通过 Kalman Filter 进行数据融合得到精准的坐标。
    • 精度在米级别,寻路没问题,车道不好说,肯定需要配合其他方案
    • 多路径问题干扰,封闭隧道之类不可用
  • 视觉方案
    • 立体图可以获得深度信息
    • 连续的深度图可以预估运动情况
    • 配合地图上的特征点可以得到厘米级别的精准位置
  • 雷达方案
    • 粒子滤波算法,和已知地图进行比较,得到精准信息
    • 配合地图上的特征点可以得到厘米级别的精准位置

物体识别和感知

  • KITTI 数据集。一个集成了刚才说过的各种传感器的开源标注数据集。
  • Optical Flow。图片序列或者视频的像素密集对应关系。如每个像素得到一个二维偏移矢量。
  • MDP 马尔科夫决策过程 MOT 算法。把识别出来的图像进一步识别为 active,tracked,lost,inactive 四种状态。
  • CNN 算法

CNN 花式玩法

这部分将来再去多研究一下吧,连接口都没全看明白。先把索引列在这里:

  • 双目感知
    • 用于 3D 建模,人眼开车本质也是视觉
    • Matching-Cost CNN
    • FlowNet
  • 物体检测
    • 必不可少的部分,提供周边环境的物体信息是很重要的。
    • Deformable Parts Model
    • R-CNN & Faster R-CNN & MS-CNN
      • 大致来说 R-CNN 是把 CNN 分为两段式,一段想办法做高召回率的区域划分,另一段做高准确率的区域内对象识别。
      • Faster R-CNN是一个比较新的版本,合理的手段能快速得到区域并且复用一部分数据到第二阶段。
      • 在无人车这种尺度变化比较大的场景,Faster R-CNN 效果上还有空间,然后 MS-CNN 通过一些做法能得到更好的效果,但是要慢一些。
    • SSD
      • 实时运行,更有准确度的算法。

增强学习

同样不明觉厉。。。。。。唯一看懂的事情是有个叫 Torcs 的游戏,可以用 Deep Q-Learning 跑出很厉害的结果。

  • REINFORCE
  • Deep Q-Learning
  • 用来帮助决策

决策

  • 路径规划
    • 本质上还一个有向带权图吧,然后是Dijstra 和 A*算法
    • 车辆行驶的基本路径取决于车道规划,车道处理上会有特殊技巧
  • 行为决策
    • 对车辆而言行驶、跟车、转弯、变道、停车几个大类场景
    • 对每一个障碍物而言,会有停车、超车、让行、停车、躲避几个典型的决策
    • 具体的参数非常多
  • 动作规划
    • 轨迹规划
    • 速度规划
    • 需要考虑的参数也很多
  • 反馈控制
    • 自行车模型
    • PID 反馈控制

云端

  • 现在大部分公司的策略是 人工模型覆盖主要负责驾驶策略,云平台负责常规的模拟器回放和回归测试,然后剩下的部分直接路测。

    • KITTI 数据集包括6小时 1M 张 140w 像素的彩色图片,目前业内顶尖水平的平均处理时间约需要0.3s。单机跑至少100小时。
  • 长期来说一定会形成闭环,采集的新数据可以通过模型反馈到算法决策端。

    • 目前纯算法建模的问题很多,而且出现了 edge case 几乎没有办法调试,所以几乎没有采用。
    • 闭环的形成主要是一个工程问题,需要建设可靠且性能要求高的平台。
  • 汇总数据,更新驾驶模型,更新策略

高精度地图

  • 这个部分是典型的数据越多,地图精度越高的互联网闭环系统。
  • 传统地图可以做到米级别的精度,但是无人驾驶需要的是厘米级别的精度。
  • 激光雷达可以覆盖方圆100m,一次的数据约4MB。路面宽度假设20米,理论极限每次扫描可以下降到0.8M。1T 硬盘可以存10w km 的公路。

商业现状

概要

一方面,各种传感器和各种算法都有可能成为无人驾驶的瓶颈,处处体现 trade off。另一方面,可以去买股票啊!!!
需要集成多种技术,多个传感器,有强实时性和可靠性要求,需要兼顾成本和功率、体积等因素。
车辆的微机控制器 ECU 和目前的计算机系统不是一个体系,车控需要主动去融合车厂的车规。

传感器

激光雷达

原理:可见和近红外波发射和接收来探测物体。
有效距离: 0 - 150 m。
价格:巨高,几千美元到几十万美元。主流市场4,8… 64,128线雷达。激光线数越多价格越高。
例子:Velodyne HDL-64 是一款 64 线雷达,价格大概10w 刀左右,扫描距离120米左右,精度为2厘米,每秒产生1.3M个像素,功率60w。
发展情况:很多厂商的环境感知是以激光雷达为主要信息。Velodyne,Quanergy 还有不少国内厂商都号称要量产成本在百元美金级别的固态激光雷达。总的来说一旦量产,激光雷达会满足摩尔定律。
缺陷:大雾大雨等不好的天气效果不好。
周边:
已经有的激光雷达玩家

毫米波雷达

原理:1-10mm 波长的无线电新号反射。分长中短几种,范围略有不同。
价格:很低,200-600美元
例子:奥迪 A4用1长+4短的组合,可以用来实现自动跟车功能。
发展情况:已经在开始在中高端车使用了。分24Ghz 和77Ghz 两个频段,24G 主要应用车后方应用,在前方和侧向也有使用。77G 是汽车前向的主流方向,一般是相互搭配的。将来逐步会全部使用77Ghz。几个大玩家出货量已经可以到千万片级别。77Ghz 目前被大厂垄断。24Ghz 的雷达已经有几个靠谱的中国供应商了。
缺陷:无法检测上漆的木头或者塑料(隐形飞机),难以检测行人,弯曲金属如易拉罐可能被误认为大型平面。
周边:
毫米波雷达的开发与应用技术

摄像头

原理:图像识别,模式识别,匹配算法,最后估算相对距离和相对速度。
价格:看情况,不同摄像头价格差距很大。30-100美金
例子:特斯拉装了8个摄像头(前3,左右各2,后方1),提供360度环视功能,最远能够测量 250 米范围内的物体。
发展情况:
1.单目摄像头安装在挡风玻璃上面、车位、车的侧面等等,可以很好的还原四周的场景。难点是如何适应恶劣的环境和如何提升模式识别精度、智能程度。2,双目立体摄像头,可以利用双目视差得到好的距离信息,需要维护的东西远远小于单目。难点是如何双目同步和双目定位。3.半自动化的 ADAS 系统一般用 6+ 个摄像头,配合广角和单双目。
直接说车载系统需要的特点,就能看出和传统摄像头的区别,每一条都需要商业上的权衡:1高动态适应快速明暗变化,2帧率60或120,3角度要求苛刻,135°广角+55°高视距摄像头,4温度适应 -40° - 80°,5防磁,6抗震,7预期寿命至少10年。
缺陷:
上面的几点很难再低成本下同时完成。

GPS/IMU

GPS 和 IMU 两个传感器都太成熟了,但是导弹上和玩具上的传感器完全不是一个概念。10-100000美元。这个没太多说的

V2X

Vehicle to Vehicle车车,Vehicle to Instruction车路,Vehicle to Pedestrian车人,车和各种其他东西的通信,有一个车厂联盟,这里面故事和利益纠葛非常多,美国已经开始推行轻型新车都要安装 V2V 系统的法规。而且本身 LTE-V 极有可能被纳入5G 的标准。

其他

红外线传感器 探测距离0.2 - 120 m,600-2000美元,夜视效果很好,被国外垄断。
超声波传感器 仅仅用于超近距离防撞,15-20美元,倒车和侧面车辆检测,已经很成熟。

计算平台

某些公司把元件怼一起 至强E5 12核+8个 K80 GPU,做成计算盒。一个盒算力64.5TOP/S。然后怼俩计算盒提升可用性和效果,极端功率到达了车辆上比较难处理的 5000W。

GPU 方案

单个 GPU 能做到同价格 CPU 吞吐量的10-100倍。
NVIDIA 发布了多个芯片,帕斯卡架构的深度学习芯片Tesla P4和 Tesla P40,价格约6000刀一块。还有解决方案PX2,两个 SoC 和两个 Pascal GPU 组合,1.5w美元,处理能力可以到2800帧/s。

DSP 方案

(很神奇,以前没觉得这玩意可以做这事
数字信号处理是使用数据总线和地址总线分开的架构,允许同时取出和执行指令。德州仪器 TDA2x SoC 有两个 DSP 内核 + 四个视觉加速器,比 arm 的 cortex-15快8倍。3K 刀。

FPGA 方案

深度学习有很多云服务商用了 FPGA 方案,无人驾驶有潜力。
Altera 公司的 Cyclone 5,已经用在奥迪 A8L 里的无人驾驶模块。 Zynq 公司的 Ultra ScaleMpSoC,能效14帧/瓦/秒,高于Tesla P40的4帧/瓦/秒。

ASIC 方案

MobilEye 的 EyeQ5 SOC 装备了四种异构全编程加速器。为各种任务分配不同的处理单元。
全定制设计周期最长,半定制,用FPGA设计:从左至右,设计成本依次降低,芯片成本依次升高。

其他方案

这部分值得多看看,中国芯片有希望弯道超车。
1.Google TPU。用来训练后的决策分析速度快。
2.概率芯片。概率算法牺牲精度提升性能,物体追踪之类的场景比传统芯片速度快100倍,能耗还低10倍以上。还是08年的麻省理工十大科技评论
3.寒武纪!!还是发了几个处理器,名字有点傻傻的:DianNao,DaDianNao,PuDianNao,ShiDianNao,
4.中星微!!嵌入式神经网络处理器 NPU

总结?

肯定将来是混着用的,GPU 做卷积什么的快且节能,CPU 擅长逻辑控制,FPGA 适合做多分支任务,DSP 适合做特征提取之类的流任务。
可能将来需要拼拼凑凑去弄计算平台吧,然后应用层的东西抽象成相同的计算任务。

控制平台

电子控制单元ECU

  • 什么是汽车ECU?

  • 也可以叫车用单片机,可以理解为一种更加可靠的单片机。 基本单元包括不限于 CPU,ROM,RAM,I/O接口,A/D 转换器。

  • 现在的中高端车的电气化程度非常的高,可能一台车包含100个 ECU 系统和200+芯片。

  • 中国加油,这部分几乎是片空白。。。

车控总线

  • SAE 把总线分为 ABCD 四类,速度依次增加。
  • A 类总线面向传感器或执行器管理的低速网络。<20Kb/s
    • 典型代表 本地互联网协议(Local Interconnect Network)
    • 电动门窗,座椅灯光,车锁等
  • B 类总线面向独立控制权共享信息的中速网络。10~125 Kb/s
    • 典型代表 控制器局域网 CAN 协议( Controller Area Network)
    • 车辆控制,测试仪表等
  • C 类总线面向闭环实时控制的多路高速网络。125~1000 Kb/s
    • 复用 CAN 协议,ISO 11898-1覆盖了 BC 两种速率。但是实际上可能高低速部署到两条总线上。
  • D 类总线面向多媒体和高速数据流的高性能网络。>1000 Kb/s
    • 典型代表 FlexRay 协议
    • 可以同时监控各个部件的车速、加速度、角度。高速响应特性可以用到类似电子减震系统里。

高精地图

传统 GPS 地图已经很成熟,高精度地图国内玩家也都是刚起步,百度高德四维之类。
一辆测绘车需要几百万美金,采集数据可以做到厘米级别。考虑到车道线,路障,车道标记,立交桥等极端情况,目前可以实现95%+的路标和车道标记准确度。
不排除车辆公司基于自己的数据做高精地图的可能性。毕竟自动驾驶车辆的传感器十分丰富。但是涉及牌照问题,地图在中国是敏感信息。。。

问题

安全性

据说很严重,连特斯拉量产的 Model S都被人轻松 Hack 了。其他的非量产 demo 车估计全是漏洞。

伦理道德

1.肯定长期是要人做驾驶席的,有人背锅,有人在危险情况接管车辆。
2.类似不转弯撞死5个人,转弯撞死一个人,该怎么操作这种问题?我的理解是都撞死就好了,只有在无人驾驶出现了这样的 case 且全撞死,数量上还远远小于人类开车的时候,真正的无人驾驶才会出现。

隐私

车辆产品很容易拿到用户的长相,坐标,常用生活地址之类的信息,对应的缺陷就是,对着车内的传感器,你没有隐私。

极端天气

目前可能没有好的解决方案,只能多传感融合。

通信协议

目前 5G 也没确定完整的技术标准,V2X 可以解决很多问题,但是目前遥遥无期。

前景

Taas

类似滴滴现在的模式。拼车成本变为原来三分之一至五分之一。

快递

快递行业最重要的成本就是人力,可以释放的潜力很大。

工业场景

大卡车很可能是第一个商用的自动驾驶场景。还有一些需要在封闭场景的工业场景,码头、高速之类快速投递。

最后,关于汽车行业

车辆行业早期用市场换技术,但是传统燃油车的核心技术落后别的国家很多年。最后这场游戏只剩了四个玩家,美日德中,中国没捡到什么便宜,但是好歹上桌了,借此培养出大量的世界级零部件供应商。
电动车在不久的将来会对汽车制造进行洗牌,车辆电动带来的影响就是三电系统(电池、电机、电控)几乎需要完全重构,汽车智能化志在必行。无人驾驶这件事也许还需要走至少十年的路,但高级别的 ADAS 一定会在不久的将来迅速提升装车率。
目前,看起来只有中国和美国两个玩家。