精华内容
下载资源
问答
  • 2021-06-12 09:59:50

    V2X技术概述

     

    在前面的几篇文章分别介绍了自动驾驶在环境感知领域的相关技术点,主要介绍了如何通过雷达配合视觉技术实现车辆自身的智能。其实在环境感知方面,除了利用车辆自身的智能,还可以借助外部环境实现信息的获取,这一类技术统称为V2X技术。

    image.png

    V2X(Vehicle to Everything)技术又称为车用无线通信技术,本质上是一种物联网技术,V代表的是车辆,X代表的是道路、人、车、设备等一切可以连接的设备。

    V2X的本质就是通过道路、行人、车辆间的协调实现整个道路运输的智能化。比如前面有车要并线了,前车可以发一个指令给基站,基站再通知后方的车辆。比如有个人过马路了,可以提前通过手机发指令,要求即将同行的车辆注意避让。诸如此类的协同需要车辆生产商、通信设备厂商、运营服务商的通力配合,是一个庞大的产业链协调分工,需要国家有相关标准推动。

    中国在V2X领域的投入很早,从17年开始有相关文件发出到最近的IMT-2020(5G)工作组推动的V2X白皮书可以看出来,中国在相关领域的野心。另外中国也是少数在全领域可以构建完整产业链的国家,整个V2X的分工协作如下图所示:

    image.png

    完成如此复杂的全产业链协同,需要一个很强的政府和监管能力,所以在这方面博主个人看好中国可以在整个世界范围内率先实现V2X技术的落地。

    V2X场景细分

    接下来详细介绍下V2X的各个场景包括:车与车之间(Vehicle to Vehicle,V2V)、车与路之间(Vehicle toInfrastructure,V2I)、车与人之间(Vehicle toPedestrian, V2P)、车与网络之间(Vehicle toNetwork, V2N)的交互。

    (1)V2V

    V2V是最经典的场景,指的是道路上车辆之间的通信。典型的就是前方车辆并道,后方车辆避让。

    (2)V2I

    V2I是指车载设备与路侧基础设施(如红绿灯、交通摄像头、路侧单元等)进行通信,路侧基础设施也可以获取附近区域车辆的信息并发布各种实时信息。V2I通信主要应用于实时信息服务、车辆监控管理、不停车收费等。

    (3)V2P

    V2P是指弱势交通群体(包括行人、骑行者等)使用用户设备(如手机、笔记本电脑等)与车载设备进行通信。V2P通信主要应用于避免或减少交通事故、信息服务等。

    (4)V2N

    V2N是指车载设备通过接入网/核心网与云平台连接,云平台与车辆之间进行数据交互,并对获取的数据进行存储和处理,提供车辆所需要的各类应用服务。V2N通信主要应用于车辆导航、车辆远程监控、紧急救援、信息娱乐服务等。

    V2X通信关键技术

    说明下C-V2X中的C指的不是China哈,指的是指蜂窝(Cellular)。是负责解决设备间通信的技术,目前在国内主推的是我国主导的LTE-V2X和5G-V2X,从技术角度讲,LTE-V2X可以支持向5G-V2X平滑迁移。

     

    image.png

    从技术角度讲,V2X比较核心的技术是如何解决通信问题。试想一下,如果两台时速200公里每小时的车背向行驶,如果想有效解决这两台车之间的通信问题,需要解决高多普勒频率扩展问题以及信道时变问题(非通信专业同学可以查下--!还好我是学通信的)。

    目前来看,V2X问题的关键是需要一个标准,比如上下行数据传输的性能标准是什么、可靠性标准是什么、如何构建业务仿真环境。目前国内大概有一个初步意见,就是消息发送的频率为10Hz,通信的时延为100ms,通信的距离为150米或300米。

    国家已经计划分配5.9GHz频段的专用频谱用于V2X技术。并且在各个标准的细分领域也出台了大量标准:

    image.png

    我国V2X技术时间和展望

    从目前的时间节奏来看,基本上在2021年,也就是今年达到部分V2X能力基本商业化应用的程度,会在一些区域开始做试点。

    image.png

    目前已经在上海、无锡、京津冀、杭州等区域的路口、高架桥等地铺设设备,构建示范区。在示范区对已经拟定的标准进行进一步的验证。早期的V2X技术可能会偏向于一些道路信息的采集,随着产业链的不断成熟,未来V2X技术一定是推动自动驾驶技术落地的一个极为关键的因素。

    更多相关内容
  • 点击上方“3D视觉工坊”,选择“星标”干货第一时间送达文章导读本文介绍无人驾驶中几种主流的环境感知传感器,包括视觉摄像机、毫米波雷达、超声波雷达、激光雷达。通过分析对比每种传感器的原理和优...

    点击上方“3D视觉工坊”,选择“星标”

    干货第一时间送达

    文章导读

    本文介绍无人驾驶中几种主流的环境感知传感器,包括视觉摄像机、毫米波雷达、超声波雷达、激光雷达。通过分析对比每种传感器的原理和优缺点,进一步理解不同场景下如何构建感知方案。

    1

    感知传感器

    在无人驾驶中,传感器负责感知车辆行驶过程中周围的环境信息,包括周围的车辆、行人、交通信号灯、交通标志物、所处的场景等。为无人驾驶汽车的安全行驶提供及时、可靠的决策依据。目前常用的车载传感器包括相机、毫米波雷达、超声波雷达、激光雷达等。根据各个传感器的特性,在实际应用中往往采用多种传感器功能互补的方式进行环境感知。

    2

    视觉摄像机

    传感器原理

    摄像头属于被动触发式传感器,被摄物体反射光线,传播到镜头,经镜头聚焦到CCD/CMOS芯片上,CCD/CMOS根据光的强弱积聚相应的电荷,经周期性放电,产生表示一幅幅画面的电信号,经过预中放电路放大、AGC自动增益控制,经模数转换由图像处理芯片处理成数字信号。

    其中感光元器件一般分为CCD和CMOS两种:CCD的灵敏度高,噪声低,成像质量好,具有低功耗的特点,但是制作工艺复杂,成本高,应用在工业相机中居多;CMOS价格便宜,性价比很高,应用在消费电子中居多。为了满足不同功能的视觉需求,有很多不同种类的摄像机。

    传感器分类

    组合相机:这里指无人驾驶前视环境感知中常出现的单目/双目/三目,由不同焦距组成光学阵列,用于探测不同范围内的目标。

    传统的单目做前视感知一般FOV较小,景深会更远,能够探测远距离障碍物,比如mobileye早期产品采用52°的镜头,当然现在主推的是100°摄像头能够感知更广的范围。

    双目相机利用视差原理计算深度,通过两幅图像因为相机视角不同带来的图片差异构成视差。双目立体视觉在测距精度上要比单目做深度估计准确很多。

    三目相机采用三个不同焦距单目摄像机的组合,弥补了视野范围和景深不可兼得的问题,由宽视野的摄像头感知近距离范围,中视野的摄像头感知中距离范围,窄视野的摄像头感知远处目标。在AutoPilot 2.0的方案中三个摄像头分别为前视窄视野摄像头(最远感知250米)、前视主视野摄像头(最远感知150米)及前视宽视野摄像头(最远感知60米)。

    鱼眼相机:由十几个不同的透镜组合而成,在成像的过程中,入射光线经过不同程度的折射,投影到尺寸有限的成像平面上,使得鱼眼镜头拥有更大的视野范围。鱼眼相机的视场角一般能达到190°,广阔的视野范围也带来严重的图像畸变。通常应用在自动驾驶泊车功能中,安装在车辆前后保险杠处各一颗,左右后视镜下方各一颗,四颗鱼眼相机拼接成全景图覆盖车身周围5米左右范围做车位线检测。

    红外相机:利用普通CCD摄像机可以感受红外光的光谱特性,配合红外灯作为照明源达到夜视成像的效果,通常在芯片表面加滤光涂层或在镜头中加滤光片滤掉人眼不可见的光以恢复原来色彩,具有夜视效果。近红外线的绕射能力虽然可以穿透烟雾、墨渍、涤纶丝绸之类的材料,但是并不能穿透所有丝织物,所以红外相机是做不到对人体的透视功能的~~~。

    除了上述几种摄像机,其实还有事件摄像机,结构光摄像机,全景摄像机等,在无人驾驶的感知中目前涉及较少。

    传感器特性

    视觉摄像机能够得到丰富的纹理,特征信息,相比毫米波、激光雷达,采用图像数据能够实现车道线检测,交通标识符检测,freespace等功能。但是也有其不足之处,比如:

    • 相机容易受到光照的影响:

    • 在强光直射或者阴影背光的情况下成像质量较差;

    • 物体高速运动时容易产生运动模糊;

    3

    毫米波雷达

    传感器原理

    毫米波雷达通过发射无线电波,然后接收反射回来的信号,通过电磁波返回的飞行时间计算目标的相对距离;根据多普勒原理,当发射的无线电波和被探测目标有相对移动、回波的频率会和发射波的频率不同,通过检测频率差计算目标的相对速度。

    根据测距原理可以将毫米波雷达分成脉冲测距雷达和连续波测距雷达,由于调频连续波技术成本低廉、技术成熟并且信号处理复杂度低,所以FWCW调制方式的毫米波雷达成为主流。内部结构主要包括收发天线、射频前端、调制信号、信号处理模块等。

    传感器分类

    常用的车载毫米波雷达按照频率分为24GHz、77GHz和79GHz,也有少数地区研究其他频率的毫米波雷达,比如日本主要采用60GHz。频率越低,绕射能力越强,所以信号损失越小。通常24GHz毫米波雷达用于近距离探测,77GHz的毫米波雷达用于远距离探测,79GHz的毫米波从带宽、分辨率等方面均优于前者,将成为未来的发展方向。

    近距离雷达(SRR):如上图所示,车辆四周的角雷达和安装于车辆后方的雷达,常用24GHz的毫米波探测40米以内的目标。

    远距离雷达(LRR):安装于车辆前保险杆上的前雷达常用77GHz的毫米波探测200米以内的目标并和摄像头的目标输出做后融合。

    79GHz的毫米波雷达频率更高,波长更短,分辨率更高,所以在远距离测距,测速上性能优于77GHz,并且由于体积较小,是将来发展趋势。

    传感器特性

    毫米波雷达测量距离远,通常能达到200多米,并且受天气影响较小,电磁波在雨雪、大雾、粉尘中具有良好的穿透性。但是也有其不足之处,比如:

    • 对某些材质回波弱比如行人、锥桶或塑料制品等识别率较差;

    • 对金属材质特别敏感,导致虚警率很高;

    • 采样稀疏导致原始数据噪声大,目标抖动;

    • 径向目标探测较准,但是切向目标敏感度差;

    • 原始数据只有距离和角度信息,缺乏目标高度信息;

    4

    超声波雷达

    传感器原理

    超声波雷达通过声音在空气中传输的时间来判断障碍物的距离,在5米以内的精度能达到厘米级范围。其原理是利用超声波在空气中的传播速度,测量声波在发射后遇到障碍物反射回来的时间,根据发射和接收的时间差计算其到障碍物的距离。主流的工作频率有40KHz、48KHz、58KHz三种。

    传感器分类

    针对泊车场景一般在车辆周围安装12颗超声波雷达,车辆前后各安装4颗短距离超声波雷达,左右各安装2颗长距离超声波雷达。

    短距离超声波(UPA)测量范围一般在3米以内,如上图所示,安装在车辆的前后保险杠处用于倒车时探测近处障碍物,常用于倒车报警功能。

    远距离超声波(APA)测量范围一般在5米以内,安装在车辆左右各两颗,用于探测近处障碍物并判断空车位,常用于泊车辅助功能。

    传感器特性

    超声波雷达受到雨水、粉尘、泥沙的干扰较小,在空气中穿透性强、 衰减小,短距离探测中精度较高,常用于泊车场景。但是也有其不足之处,比如:

    • 声波的传输容易受到天气温度的影响,高低温情况下测距误差较大;

    • 声速相比光速较慢,车速较快时超声波测距无法跟上汽车车距的实时变化,误差较大;

    • 超声波雷达的输出是在视野范围内的距离值,但是无法准确的给出目标位置;

    5

    激光雷达

    传感器原理

    激光雷达是主动测量传感器,通过对外发射激光脉冲来进行物体检测和测距。根据测距方法的不同可以分为三角法测距、TOF法测距、相干法测距。市面上用的比较多的还是TOF测距的激光雷达。

    基于TOF测距的激光雷达通过激光器以不同的角度发送多束激光,遇到障碍物后反射回来由接收器接收,最后激光雷达通过计算激光发射和接收的时间差,计算障碍物的相对距离,并根据接收到的强度信息分析障碍物的材质。

    传感器分类

    激光雷达从工作方式上可以分为

    • 机械式激光雷达

    • 混合固态激光雷达

    • 固态激光雷达

    机械式激光雷达通过底部旋转马达带动激光束进行360°扫描,每扫描一圈得到一帧激光点云数据,扫描一圈的时间称为一个扫描周期。通过测量激光信号的时间差和相位差来确定距离,并根据每条扫描线的角度和扫描旋转角度构建极坐标关系。

    混合固态激光雷达将机械式的外部旋转元器件做到了设备内部,比如MEMS技术直接在硅基芯片上集成体积十分精巧的微型扫描镜,并通过 MEMS 扫描镜来反射激光器的光线,从而实现微米级的运动扫描。

    固态激光雷达比如相阵控技术通过调节相位偏移来改变激光束的发射方向,从而实现整个平面的扫描。其原理是相控阵发射器由若干发射接收单元组成一个矩形阵列,通过改变阵列中不同单元发射光线的相位差,可以达到调节射出波角度和方向的目的。

    性能指标

    波长:大多数激光雷达采用905nm波长的光源,也有部分远距离探测雷达使用1550nm的波长。波长越长功率越大,通俗点说就是通过大力出奇迹的方式堆功率来探测的更远。针对多个激光雷达相同波段干扰问题,可以采用连续波调频技术解决。

    线数:激光雷达可以分为单线、16线、32线、64线、128线等,线数越多单位时间内采样的点数就越多,分辨率越高。单线激光雷达常出现在机器人领域用于扫地机避障等功能;16线激光雷达在园区小车上曝光率较多,用于slam或者近距离障碍物检测;32线和64线激光雷达由于点云更加稠密,采用深度学习技术进行目标识别具有很好的周围环境感知能力。

    分辨率:包括水平角分辨率和垂直角分辨率,机械式激光雷达水平角分辨率一般在0.08°,垂直角分辨率根据线数的不同有较大的变化,16线激光雷达的垂直角分辨率为2°,呈现出的一帧点云较为稀疏。

    视场角:包括水平视场角和垂直视场角,机械式激光雷达的水平视场角为360°,垂直视场角一般在20°~50°之间。固态激光雷达达不到全视野范围,水平视场角通常小于100°,垂直视场角通常在20°~70°之间。

    扫描频率:采样频率在5~20Hz之间,一般默认10Hz,线数越多,每一帧的点数越多。比如16线激光雷达,按照10Hz采样,每帧大约30000多个点。

    传感器特性

    激光雷达对光照变化不敏感,不受夜晚场景的影响,可以全天候工作;测距精度相比其他传感器都要高,具有一定的抗干扰能力;感知周围信息量较为丰富;但是也有其不足之处,比如:

    • 受雨雪、雾天、粉尘等气候影响性能下降;

    • 对某些低反射特性的材料测距精度不佳;

    • 硬件价格昂贵

    6

    各传感器对比

    从探测距离角度,毫米波雷达(长距)和激光雷达(远距离)均能探测到200左右的物体;摄像机虽然能看到更远的物体,但是远距离测量精度不准,单目估计在20米以外精度就开始下降,立体相机测量80米以外的物体精度也明显下降;超声波雷达用于近距离探测,探测距离通常在3米以内。

    从测速功能角度,只有毫米波雷达能够通过多普勒频移直接获得物体速度;激光雷达,摄像机,超声波三种传感器均不能直接获得物体速度。

    从抗干扰角度,摄像机作为被动传感器,依赖外部环境光,在夜间的探测能力较大;而毫米波雷达、超声波雷达、激光雷达均是有源传感器,不受白天/黑夜的影响,具有较好的鲁棒性。在雨雪、大雾、粉尘等天气状况下,毫米波雷达具有良好的穿透性,所以性能不受显著影响;而摄像机、激光雷达在探测性能上有不同程度的衰减。


    光学摄像机

    毫米波雷达

    超声波雷达

    激光雷达

    探测距离

    较远

    探测精度

    较高

    抗干扰能力

    受光照、雨雪、粉尘影响

    全天候不受环境影响

    受大风、温度影响

    受雨雪、粉尘影响

    硬件成本

    中低

    本文仅做学术分享,如有侵权,请联系删文。

    下载1

    在「3D视觉工坊」公众号后台回复:3D视觉即可下载 3D视觉相关资料干货,涉及相机标定、三维重建、立体视觉、SLAM、深度学习、点云后处理、多视图几何等方向。

    下载2

    在「3D视觉工坊」公众号后台回复:3D视觉github资源汇总即可下载包括结构光、标定源码、缺陷检测源码、深度估计与深度补全源码、点云处理相关源码、立体匹配源码、单目、双目3D检测、基于点云的3D检测、6D姿态估计源码汇总等。

    下载3

    在「3D视觉工坊」公众号后台回复:相机标定即可下载独家相机标定学习课件与视频网址;后台回复:立体匹配即可下载独家立体匹配学习课件与视频网址。

    重磅!3DCVer-学术论文写作投稿 交流群已成立

    扫码添加小助手微信,可申请加入3D视觉工坊-学术论文写作与投稿 微信交流群,旨在交流顶会、顶刊、SCI、EI等写作与投稿事宜。

    同时也可申请加入我们的细分方向交流群,目前主要有3D视觉CV&深度学习SLAM三维重建点云后处理自动驾驶、多传感器融合、CV入门、三维测量、VR/AR、3D人脸识别、医疗影像、缺陷检测、行人重识别、目标跟踪、视觉产品落地、视觉竞赛、车牌识别、硬件选型、学术交流、求职交流、ORB-SLAM系列源码交流、深度估计等微信群。

    一定要备注:研究方向+学校/公司+昵称,例如:”3D视觉 + 上海交大 + 静静“。请按照格式备注,可快速被通过且邀请进群。原创投稿也请联系。

    ▲长按加微信群或投稿

    ▲长按关注公众号

    3D视觉从入门到精通知识星球:针对3D视觉领域的知识点汇总、入门进阶学习路线、最新paper分享、疑问解答四个方面进行深耕,更有各类大厂的算法工程人员进行技术指导。与此同时,星球将联合知名企业发布3D视觉相关算法开发岗位以及项目对接信息,打造成集技术与就业为一体的铁杆粉丝聚集区,近3000星球成员为创造更好的AI世界共同进步,知识星球入口:

    学习3D视觉核心技术,扫描查看介绍,3天内无条件退款

     圈里有高质量教程资料、可答疑解惑、助你高效解决问题

    觉得有用,麻烦给个赞和在看~  

    展开全文
  • 小议车辆环境视觉基础前视感知

    万次阅读 2020-04-11 09:45:35
    无论是AD/ADAS还是智能网联车,前视感知都是其最基础和重要的能力之一。自动驾驶(AD)是前几年的热门话题。今天虽然稍微降温下来一些,但仍是大家关注的重点之一,毕竟它是人类长久以来的梦想之一。众所周知,美国...

    1. 前言

    无论是AD/ADAS还是智能网联车,前视感知都是其最基础和重要的能力之一。自动驾驶(AD)是前几年的热门话题。今天虽然稍微降温下来一些,但仍是大家关注的重点之一,毕竟它是人类长久以来的梦想之一。众所周知,美国汽车工程师学会(SAE)将自动驾驶分为 L0~L5共六个级别。其中L3及以上允许由系统在限定或不限定条件下完成所有的驾驶操作;而L2及以下还是需要由人类驾驶员一直保持驾驶状态,因此大多还属于高级驾驶辅助系统(ADAS),如车道偏离预警(LDW),前碰撞预警(FCW),自适应巡航(ACC),紧急自动刹车(AEB),车道保持辅助(LKA),交通标志识别(TSR),自动泊车(AP)等。和大多数智能机器人一样,自动驾驶的处理流程可分为三个阶段:感知、决策、执行。因此一旦感知出了问题,那后面基本就凉了。类似地,ADAS或AR导航也强依赖于对环境的感知。没有准确且实时的感知能力,上层做的再炫酷也容易成为鸡肋。ADAS和AD间的界线并没那么清晰,前者可看作到后者的过渡产品,因此很多技术是通用的。前视感知是个非常大的话题,因此本文主要聚焦在一些最为基础和通用的前视感知能力上。

    2. 业界

    本节我们从工业界和学术界两个方面简要聊下业界的相关情况。它们各有优缺点,学术界涌现出更前沿更先进的方法,且指标明确,易于定量比较,但方法往往专注于单点,且对实际产品中的各种约束(如计算资源)考虑不多;而工业界直接面对产品,更多地考虑实用性和整体性。但采用的指标、数据不透明,难以衡量和比较。只有全方面的了解,通过产学研的加速融合,才能打造更加完善、更好用户体验的产品。

    ADAS有着几十年的发展历史。国内外都有一大批优秀的厂商。这几年,随着国家驾驶安全政策的推动和自动驾驶技术受到热捧,该领域出现了快速的增长。从老牌劲旅Bosch、Continental、Aptiv,Mobileye等,到一批相对年轻但很有竞争力的公司如Maxieye、Minieye、魔视、极目、纵目、Nauto等,这是一个既成熟,又充满机遇的市场。根据中投顾问的《2017-2021年中国汽车高级驾驶辅助系统(ADAS)市场深度调研及投资前景预测报告》,ADAS年复合增长率将达35%,2020年中国市场可实现近800亿市场空间。近几年,车载AR导航将传统的ADAS功能与导航功能、AR技术及HUD进行了融合,带来了更直观和人性化的用户体验,成为了市场的热点。在实现方式上,各家在传感器配置上也各有不同,有摄像头、毫米波雷达、激光雷达等。其中,基于摄像头的视觉方案由于其成本可控、算法成熟等优点,使用最为广泛。其中的主要代表如Mobileye和Tesla Autopilot都是主要基于视觉的方案。
    在这里插入图片描述
    图 1 Tesla Autopilot (来自https://www.youtube.com/watch?v=24dRkHdpEPo)
    在这里插入图片描述
    图 2 Mobileye (来自https://www.mobileye.com/our-technology/)

    虽然ADAS细分功能众多,但很多功能功能(LDW,FCW,LKA,ACC等)都依赖于对前方环境中几个基本对象的检测和识别,即车道线、物体(包括车辆、行人、障碍物、交通灯、交通标识等)、可行驶区域,因此本文也会主要聚集在这几类对象的检测识别上。在准确率上,各家的产品往往很难量化及横向比较,尽管大家的宣传中常会出现“准确率>XX%”或者“误报率/漏报率<X%”这样的提法。但事实上由于指标定义和数据集的差异,很难做到“apples to apples”的对比。有些比较实在的会采用相对指标,比如与行业标杆(如Mobileye)在同样的数据集上做横向对比。这样会更有说服力。但因为所用数据集未公开,别人也很难严格横向比较。在性能上,由于ADAS对检测的实时性要求非常高,所以很多至少会做到15 FPS以上。随着深度学习的兴起,越来越多的ADAS厂商也将基于传统CV的方案逐渐过渡为基于深度学习的方案。深度神经网络(DNN)的推理需要很大的计算量,而ADAS不像高级自动驾驶平台配备强大的计算平台,因此业界的趋势之一是利用专用硬件(如FPGA或ASIC芯片)来进行加速。

    在学术界,自动驾驶一直是经久不衰的热点之一。这些方法上的创新很多同样也可以用于ADAS和AR导航中。我们知道,2012年以来深度学习的快速发展使其成为机器学习中的绝对主流。基于深度学习的方法同样也给自动驾驶带来了巨大变革。基于传统CV算法的方法在泛化能力上容易遇到瓶颈。经常是在一段路段调优跑溜后,换一段路又需要大量调参。当然,基于深度学习的方法也无法完全避免这个问题,但可以说是大大缓解了。学术界的优点就是较为透明公开、且容易对比。新的方法就是需要在与其它方法比较中才能证明其优异,因此历史上通过竞赛的方式来推动发展的例子不在少数。2004年开始,由DARPA主办的几场无人车挑战赛开启了无人车的新时代。在深度学习时代,各种针对路面环境检测识别的榜单就如同ImageNet一样,催生出一大批新颖的方法。其中针对车道线、物体和可行驶区域的比较典型的有:

    • KITTI:2013年由德国卡尔斯鲁厄理工学院和丰田美国技术研究院联合创办,是一套非常全面的算法评测数据集。其中覆盖了2D、3D物体检测,物体跟踪,语义分割、深度估计等多种任务。但其数据集数量在现在看起来不算多,如物体检测数据集训练集和测试集总共1W5张左右 ,车道检测就比较尴尬了,只有几百张。
    • CVPR 2017 TuSimple Competitions:2017年图森未来主持的挑战赛,分车道线检测和速度估计两个任务。其中车道线检测数据集包含了几千张主要是高速上的数据。虽然量不多,但因为和物体检测这类通用任务相比,针对车道线检测的竞赛很少,所以它至今在很多车道线检测的论文上还会被当成量化比较的重要参考。
    • CVPR 2018 WAD:由Berkeley DeepDrive主持,包含三项赛事:道路物体检测,可行驶区域分割和语义分割的域适应。它基于BDD100K数据集。这是一个在数量和多样性上都非常不错的用于自动驾驶的数据集。其中用于物体检测和可行驶区域分割的数据集共有10W张左右,其中训练集和验证集有约8W张 。
    • Cityscapes:针对道路环境的经典语义分割数据集,同时也提供了语义分割、实例分割和全景分割任务的榜单。数据集采自50个城市,包含了5K张精细标注图片和2W张较粗糙标注图片。考虑到语义标注的成本相对大,这个数量已经算比较大了。

    其它的榜单还有很多,无法一一列举。虽然由于大多榜单只关注准确率导致其模型很难直接落到产品中,但其中确实也出现了非常多精巧的方法与创新的想法,为产品落地提供了有价值的参考。关于具体的方法我们留到后面专门章节进行讨论。

    还有一些介于工业界与学术界之间的工作,它们将学术界的成果向产品逐渐转化,提供了参考实现。比较典型的有开源自动驾驶项目Apollo和Autoware。因为它们主要面向无人驾驶,所以会除了摄像头之外,还会考虑激光雷达、毫米波雷达、高精地图等信息。由于本文的scope,这里只关注基于摄像头的对基础对象的检测。Apollo 2.5中采用的是一个多任务网络检测车道线与物体(之前读代码的一些笔记:自动驾驶平台Apollo 2.5阅读手记:perception模块之camera detector ),对于车道线模型会输出像素级的分割结果,然后通过后处理得到车道线实例及结构化信息(相关代码阅读笔记:自动驾驶平台Apollo 3.0阅读手记:perception模块之lane post processing);物体检测是基于Yolo设计的Yolo 3D,除了输出传统的2D边界框,还会输出3D物体尺寸及偏转角。版本3.0(官方介绍:perception_apollo_3.0)中加入了whole lane line特性,提供更加长距的车道线检测。它由一个单独的网络实现。3.5中将物体与车道线检测网络彻底分离,车道线模型称为denseline。最新的5.0(官方介绍:perception_apollo_5.0)中又引入DarkSCNN模型,它基于Yolo中的backbone Darknet,并引入了Spatial CNN(后面再介绍),同时该网络中还加入了对灭点的检测。Autoware中车道线用的是传统CV的方法,物体检测基于摄像头部分使用的是SSD和YOLO等基于深度学习的方法(官方介绍:Overview)。

    3. 方法

    我们知道,深度学习有三大基石:数据、算法和算力。对于基础前视感知场景,我们也从这三个维度来聊一下。在此之前,我们先列下本文关注的单目基础感知主要流程:

    在这里插入图片描述
    图 3 基础前视感知简要流程

    从图片流输入,大致经历预处理、检测模型推理和后处理三个阶段:

    • 预处理:这一阶段主要是做必要的数据处理,为后面的检测准确好数据。如一些摄像头进来的视频流是YUV格式,而深度神经网络模型输入多是RGB格式,需要进行转换。此外,很多模型会要求输入数据作归一化。另外,为了减少计算量,一般还会对输入的图像进行缩放和ROI的提取。
    • 检测模型推理:这一阶段主要是做深度神经网络的推理。对于要同时完成多个任务的场景,我们一般会使用多任务网络。即每个任务对应一个网络分支输出,它们共享用于特征提取的backbone(按经验很多时候backbone会占大部分的计算量)。近年学术界也出现一些对不同类型任务比较通用的backbone结构。
    • 后处理:这一阶段是将前面推理得到的结果进行进一步的处理,以传到后面的决策或展示模块。常见的对于车道线需要滤除噪点,聚类,曲线拟合,滤波(如Kalman filter)等;对物体检测常见的有非极大值抑制(NMS)和跟踪等;对可行驶区域,需要将分割结果转为多边形并确定其位置类别。

    注意这里只画了简化的部分流程。实际场景中,可能还需要考虑非常多其它元素,比如:

    • 相机标定(Camera calibration):我们在学车考“S弯”或者“单边桥”等项目时,教练往往会告诉我们一些小技巧,如通过雨刮器的位置来估计轮胎的位置。这种技巧其实比较脆弱,因为座椅的调整,人的高矮都会影响其精确度。那在ADAS/AD场景中如何告诉机器以高精度做这件事呢,就是通过相机校准。这本质是做图像坐标和世界坐标之间的转换。另外,有了校准参数,我们还可以用它做逆透视映射(IPM),消除透视带来的影响,方便车道线检测及物体跟踪等模块。
    • 光流(Optical flow):每一帧都检测会带来很大的计算开销。有时我们会通过光流算法来计算图像中像素点的瞬时速度,从而估计已检测对象在当前帧的位置。这样一方面能有效减少计算量,另一方面还能用于物体的跟踪。
    • 灭点(Vanishing point):我们知道,由于透视关系,平行的线(如车道线)在远处会交到一点,称为消失点或灭点。这个点对于车道检测或最后的可视化都有帮助。在直线的情况下,我们可以通过车道线的交点来估计灭点,但如果车道线是不太规则的曲线,就比较麻烦,需要通过更复杂的方法进行估计。
    • 测距:不少ADAS功能中都需要确定前方物体的距离。常用毫米波和超声波雷达做距离检测。而在纯视觉方案中,双目方案是根据视差来估计距离,原理就像人的两只眼睛一样。而对于单目方案就比较tricky一些,需要检测物体后根据物体下边界结合相机标定计算距离。现在虽然有基于单张图像的深度估计方法,但那个本质上是靠的训练所获得的先验,用作ADAS里的FCW啥的感觉还是精度不太够。
    • 3D姿态估计(3D pose estimation):高级点的前视感知对物体检测除了边界框,还会估计其姿态。这对动态障碍物的行为预测非常有帮助。
    • 细粒度识别(Fine-grained recognition):对于一些识别的物体,如果它们的类别会影响到驾驶行为(如交通灯、交通标志、车道线等),则我们需要将检测结果中相应部分拿出来进一步对其进行分类识别。
    • 决策和展示:所有的检测都是为了最后的决策和展示。如何自然地显示(如通过AR展示的话如何与现实物体贴合),以及何时预警或介入控制都直接影响用户体验。

    另外可能还需要检测路面上的指示标记,以及对当前场景是否支持作检测判断等等。由于篇幅有限和使内容简洁,这些本文都暂不涉及。检测对象上本文主要关注车道线、物体和可行驶区域。

    3.1 数据

    我们知道,深度学习的最大优势之一就是能对大量数据进行学习。这就意味它的效果很大程度上依赖于训练的数据量,而对于汽车的前视感知更是如此。因为汽车的环境是开放的,没有充分而多样的数据,模型便无法有效地泛化,那在各种corner case就可能出岔子。对于其它场景出岔也就出岔了,对AD或者ADAS来说那可能就危及生命安全了。数据集大体有两类来源,一类是公开数据集;一类是自标数据集。它们各自有优缺点。

    得益于自动驾驶领域的蓬勃发展,近年来出现了很多优质的公开数据集。

    • 包含车道线的主要有BDD100K,CULane,TuSimple Lane Challenge和LLAMAS等。
    • 包含物体检测的太多了,貌似是个道路环境数据集就会有。如BDD100K,KITTI,Udacity Driving Dataset, Waymo Open Datasets等。
    • 包含可行驶区域的有BDD100K,KITTI等。虽然理论上语义分割的数据集(如Cityscapes)就包含了可行驶区域的标注,但比较理想的标注还应该区分当前车道和相邻车道。

    其它的还有不少数据集,网上有很多列表整理,这里就不重复了。虽然这些数据集很丰富,但有时未必能直接用上。一方面是它们的标注之间有很大差异。其中一个差异点是标注格式,这个其实还好办,脚本基本能搞定。比较麻烦的是有时候标注的规范和内容会有出入。以车道线为例:有些是采用双线标法(如BDD100K),有些是单线标法(如CULane,TuSimple Lane Challenge);有些是标有限条(如CULane),有些是有多少标多少(如BDD100K);有些对于虚线是像素级精确标注(ApolloScape),有些是会将它们“脑补”连起来(CULane);有些标了车道线类型(BDD100K),有些没有标(CULane)。而对于车辆和行人来说,不同数据集有不同的细分类。但本着人家标注也不容易,能用上一点是一点的精神,可以尽可能地对它们进行转化,使它们一致并满足特定需求。举例来说,BDD100K中是双线标注,而其它多数是单线标。为了统一,我们可以通过算法自动找到匹配的线并进行合并。自动合并效果如下:

    在这里插入图片描述
    在这里插入图片描述
    图 4 BDD100K数据集车道线标注自动转换

    公开的数据集虽然方便且量大,但往往没法完全满足需求。比如由于地域差异、摄像头差异等会导致domain shift问题,另外有些针对性的case没法覆盖。公开数据集另一个问题是license。很多的公开数据集只能作研究用途,如果要商业用途是禁止或者需要专门再购买license的。因此,实际中往往还是需要请外包或自己标数据。

    另外,为了获得更大量更多样的数据,业界有一些常用方法和方向,如:

    • 数据增强(Data augmentation):最基本也很有效的扩充数据集手段之一,在车辆环境中尤为重要。由于道路环境数据集需要多样化,因此我们需要通过数据增强来模拟不同的光照、天气、视角等变化。
    • 自动标注/辅助标注:虽然移动端上由于算力有限,我们只能牺牲准确率布署轻量级的网络,但我们可以训练重量级的精度较高的网络模型用于对数据进行自动标注。以下是一个重量级网络(不是SOTA的)在BDD100K上训练后的检测效果。虽然不是十全十美,但在有些小目标上可能比老眼昏花的我还要标得凑合。就算无法完全替代人肉标注也可以作为辅助有效减少人工。

    在这里插入图片描述
    图 5 某重量级网络在BDD100K数据集上检测效果(左:检测结果;右:Ground truth)

    • 仿真器:利用仿真器来帮助自动驾驶测试似乎已经是一个普遍性做法了。随着3D图形技术和硬件的飞速发展,今天仿真器中的渲染效果已相当逼真,已经不像当年赛车游戏里车后冒个烟还是“马赛克”效果。因此,仿真器也有望用于产生可用于训练的数据。
    • 生成对抗网络(GAN):我们知道,GAN是最近几年非常火热的一个方向。GAN也在一些工作中用于训练数据的生成。虽然目前很多时候是看demo各种牛,但实际跑的时候可能就不是很理想。但不可否认这是一个很有前途的方向,不少工作应用它来缓解数据多样化需求的问题。

    3.2 算法

    针对前视感知中的几类目标,算法是不同的。另一方面,我们知道深度学习的视觉领域研究比较多的任务是:图片识别、物体检测、图像分割(包括语义分割、实例分割、全景分割)。那么问题来了,如何将对现有任务的方法充分应用来满足前视感知的需求?如果实在不合适如何调整?

    3.2.1 车道线

    首先是车道线检测,这可能是几类检测目标中最特殊的,所以占的笔墨也会相对多些。它的特点是形状狭长(可能跨越大半张图片),并且形态多变(可能是直线也可能是曲线,还可能交叉等),容易与路面标识混淆,另外还需要区分实例。现有物体检测的方法不太适合这种形状的东西。我们知道,在深度学习占领视觉领域前,车道线检测多采用传统CV的方法。Udacity(其联合创始人Sebastian Thrun是自动驾驶界大神)上有一个自动驾驶课程。其中有作业就是车道线检测,因此网上有很多这个作业的实现。其中比较关键的几步是通过边缘检测算法(如Canny,Sobel算子)得到边缘,然后通过Hough transform检测直线(如果假设车道线为直线),或者经过IPM得到鸟瞰视图后通过滑窗搜索得到车道线上的像素点,最后多项式曲线拟合输出。这里边几乎每一步都有不少参数,而且各步相互影响,如果场景很多样化的话调参就可能会比较酸爽,另一方面它对于车道线不完整的情况(如因遮挡或磨损)表现不好。因此,这已经不是目前的主流,后面业界逐渐过渡到基于深度学习的方法。

    2015年,深度学习风头正劲,Stanford、Twitter等机构联合发表的论文讨论了将CNN应用到高速环境的车道线和车辆检测中[1]。它使用当时物体检测的方法[2]来检测车道线。因为车道线很长条,因此被分成多个线段,每个线段被当成物体来检测。最后通过DBSCAN进行聚类得到车道线实例。同期另外一条思路是将车道线检测当作语义分割任务。当时语义分割领域有了FCN[3]、SegNet[4]和DeepLab[5]等早期经典网络。结合一些包含车道线标注的语义分割数据集便可以进行车道线检测。如论文[6]试图将包括车道线在内的多种检测任务在分割任务中一把搞定。然而故事还远没有结束,这里还存在以下两个比较大的挑战,接下去几年的工作也是主要围绕这两点来展开:

    • 繁琐的后处理:现实中我们为了后面的决策还需要知道哪条是当前车所在车道(Ego lane)的左、右车道线和相邻车道的车道线。另外,因为车道线往往不完整,因此还需要得到车道线的结构化表示(如多项式或样条曲线)以便做插值。这样,单就语义分割的结果还不够。以往常见的做法是将分割结果进行聚类得到实例,然后通过一些后处理判断其是哪条车道。另外,为了得到结构化表示还需要对这些点进行多项式拟合等操作。理想的方法是简化或完全去除这些后处理,实现真正意义上end-to-end的检测。
    • 复杂的环境:路面环境复杂常常导致图像中的车道线残缺不全。如天气因素,其它车辆遮挡,阴影和光照,磨损等等。另外的一个比较大的干扰来自于地面上的箭头指示和汉字,仅看局部图像的话人也难以区分。因此如果无法有效利用全局上下文信息很难对它们进行排除。对这些因素做到足够鲁棒是通往实用产品的必要条件。

    来自三星的论文[7]将车左右两条车道线作为两个类别(加上背景共三类),从而直接通过神经网络来学习,相当于做了实例分割,从而简化了后处理。

    2017年TuSimple主办了车道线检测竞赛,炸出不少好的方法,同时也成为了车道线检测的重要benchmark之一。第一名来自香港中文大学,它也是基于语义分割来做,并针对车道线这种狭长的物体提出了Spatial CNN(SCNN)[8]来替代MRF/CRF来对空间关系进行建模。另一个比较有意思的点是当时竞赛提供的数据集才几千张(标注图片约3.6K),因此数据可能会成为主要瓶颈之一,于是他们整了一个大规模的车道线的数据集CULane。该数据集共有13W多张。它比较贴近现实情况,涵盖了白天、晚上、拥堵、阴影、光照过亮等9种场景。对于车道线的实例区分问题,SCNN由于限定最多检测4条车道线,因此它可以把4条车道线当4类物体来检测。同时,网络还有一个专门的分支用于预测对应的车道线是否存在。这样便不需要聚类来提取实例。当时的第二名来自佐治亚理工(Georgia Institute of Technology) 等机构。他们提出的方法[9]可以解决只能处理有限车道线的问题。它利用像素对之间的关系,通过对目标函数的巧妙构造,让神经网络学习像素的聚类信息。并且可以拓展到(理论上)无穷实例的场景。

    2017年韩国KAIST和三星提出了VPGNet[10]。它是一个多任务网络,其中一个分支用于预测灭点,它可以引导车道线的检测。这在一些恶劣的天气下可以有比较大的帮助。但这需要额外标注的数据集。论文中提到他们建立了自己的数据集但没有公开。

    2018年,鲁汶大学(KU Leuven)的论文提出LaneNet[11],它将车道线检测作为一个实例分割问题。以前很多方法对于提取车道线实例是用聚类,而对于车道线这种狭长的物体很难定义一个好的距离测度用于聚类。这篇论文的最大特色就是在传统语义分割分支外还加了一个pixel embedding分支,用于对输入图像中的每个点得到其N维的embedding,这个分支是基于其实例信息训练的。语义分割输出的像素结合pixel embedding信息,作聚类后便可得到车道线的实例信息,最后通过多项式拟合输出。鲁汶大学这个团队次年在论文[12]中把预测曲线与ground truth曲线间的面积作为损失函数,将拟合改造成可微分操作,从而让神经网络来学习拟合曲线的参数。前面LaneNet这篇论文另一个比较有特色的点是H-Net。IPM有利于车道线的多项式拟合。因为大多数弯曲的车道线在鸟瞰视图下用二次曲线就够了,但在透视视图下却需要更高阶曲线才能拟合。而这个变换的参数一般需要通过相机标定。但是这个参数可能根据地形、坡道因素不同。因此最好可以根据输入动态调整。H-Net采用通过神经网络来预测的方式。这条思路上类似的工作还有来自2018年GM的3D-LaneNet[13]。该方法以end-to-end方式直接预测3D的车道线。网络采用dual-pathway结构。一条对应普通透视图,估计逆透视变换参数。该参数结合前面的feature map与另一条对应鸟瞰视角的网络中feature map结合,最终输出3D车道线。不过毕竟带3D车道线标注的数据集不好弄,于是他们自己搞了个高速场景下的合成数据集作了实验。因此该方法在真实场景下的效果还需要进一步验证。

    杜克大学和地平线提出的LaneNet[14](也叫LaneNet,但此LaneNet非彼LaneNet)将车道线检测分为两个阶段-lane edge proposal和lane line localization。前者是一个语义分割网络;后者是比较特色的地方,其网络基于LSTM,输出为各条车道线的信息。因此,某种程度上替代了很大部分后处理。

    TomTom公司提出的EL-GAN[15]通过GAN的思想来改善语义分割的结果。单纯的语义分割应用于车道线所得结果不会考虑其平滑或是邻域一致性等。EL-GAN在GAN的基础上添加了embedding loss通过discriminator让语义分割的输出更接近ground truth。直观上这样语义分割的结果就会更符合车道线的拓扑形状特征,从而减化了后处理的工作。

    我们知道,对于视觉任务,有两个比较通用的思路是可以帮助提高准确率的。一个是注意力(Attention)机制。今年由香港中文大学等机构发表的论文[16]提出了Self Attention Distillation(SAD)方法。它基于注意力蒸馏(Attention distillation)的思想,将之改造为自蒸馏,从而不依赖传统知识蒸馏中的teacher model。网络中后面的层的feature map(具有更丰富上下文信息)作为监督信息帮助前面的层训练。前面的层学到更好的表征后又会改善后面的层,构成良性循环。另一个是用RNN结合前后帧信息。武汉大学和中山大学的论论文[17]结合了CNN和RNN来使用连续帧进行车道线检测。网络结构中在由CNN组成的encoder和decoder间放入ConvLSTM用于时间序列上特征的学习。由于结合了前面帧的信息,在车道线磨损、遮挡等情况下可以做到更加鲁棒。

    3.2.2 道路物体

    然后是物体检测,这块的算法可以说是相当丰富。因为物体检测的应用范围非常广,因此它几乎伴随着计算机视觉领域的发展。相关的survey很多(如[18],[19]等)。深度学习兴起后,一大波基于深度神经网络的物体检测算法被提出。SOTA以极快的速度被刷新。从two-stage方法到轻量的one-stage方法,从anchor-based方法到近年很火的anchor-free方法,从手工设计到通过自动神经网络架构搜索,琳琅满目,相关的总结与整理也非常多。

    对于道路环境来说,几乎和通用物体检测算法是通用的。如果要找些区别的话,可能汽车前视图像中,由于透视关系,小物体会比较多。2018年CVPR WAD比赛其中有一项是道路环境物体检测。第一名方案来自搜狗,根据网上介绍(给机器配上“眼睛”,搜狗斩获CVPR WAD2018挑战赛冠军),其方案在Faster R-CNN的基础上使用了CoupleNet,同时结合了rainbow concatenation。第二名方案来自北京大学和阿里巴巴,提出了CFENet[20]。经典的one-stage物体检测网络SSD在多个scale下的feature map进行预测,使得检测对物体的scale变化更加鲁棒。小目标主要是通过浅层的较大feature map来处理,但浅层特征缺乏包含高层语义的信息会影响检测效果。CFENet针对前视场景中小物体多的特点对SSD进行了改进,在backbone后接出的浅层上加入CFE和FFB网络模块增强浅层特征检测小目标的能力。

    现实应用中,物体检测模型的输出还需要经过多步后续的处理。其中比较常见和重要的是NMS和跟踪:

    • 神经网络模型一般会输出非常多的物体框的candidate,其中很多candidate是重叠的,而NMS的主要作用就是消除那些冗余的框。这个算子很多的推理框架不支持或支持不好,所以一般会放到模型推理外面作为后处理来做。在学术界NMS这几年也出现了一些可以提高准确率的变体。
    • 跟踪是理解物体行为的重要一环。比如帧1有车A和车B,帧2有两辆车,我们需要知道这两辆车哪辆是A,哪辆是B,或都不是。只有找到每个物体时间维度上的变化,才能进一步做滤波,以及相应的分析。比较常见的多物体跟踪方法是SORT(Simple Online and Realtime Tracking)框架[21],或许它的准确率不是那么出众,但综合性能等因素后还是不错的选择,尤其是对于在线场景。结合通过CNN提取的外观特征(在DeepSORT[22]中采用)和Kalman filter预测的位置定义关联度的metric,将帧间物体的跟踪作为二分图匹配问题并通过经典的匈牙利算法求解。前后帧物体关联后通过Kalman filter对状态进行更新,可以有效消除检测中的抖动。

    3.2.3 可行驶区域

    再来说下可行驶区域。开过车的同志们都知道咱们的很多路没有那么理想的车道线,甚至在大量非结构化道路上压根儿就没有车道线。在这些没有车道线、或者车道线不清晰的地方,可行驶区域就可以派上用场。一般在可行驶区域中我们需要区分当前车道和其它车道,因为该信息对后面的决策规划非常有价值。

    在这个任务上早期比较流行的榜单是KITTI的road/lane detection任务。很多论文都是拿它作benchmark,其榜单上有一些是有源码的。不过那个数据量比较少,多样化程度也不够,要用它训练得泛化能力很强实在比较勉强。

    2018年CVPR WAD比赛中一个专项是可行驶区域检测。所用的BDD100K数据量相比丰富得多。当时的冠军方案是来自香港中文大学的IBN-PSANet。它的方案是结合了IBN-Net[23]和PSANet[24]。前者主要特色是结合了batch normalization(BN)和instance normalization(IN)。BN几乎是现代CNN的标配。它主要用于解决covariate shift问题,提高训练收敛速度;而IN可以让学习到的特征不太受像颜色、风格等外观变化的影响。而结合了两者的IBN可以吸收两者的优点。而PSANet的特色主要是提出了PSA结构,它本质是一种注意力机制在视觉上的应用。对于每一个像素,网络学习两个attention mask,一个对应它对其它每个像素的影响,一个对应其它每个像素对它的影响,从而使得分割可以充分考虑全局上下文信息。

    可行驶区域检测中对于语义分割的输出比较粗糙,且形式不易于后面模块处理,因此还需要经过一些简单的后处理。比如先聚类,再计算各类簇的凸包,最后通过这些多边形的位置关系便可以确定它们是当前车道还是其它车道的可行驶区域。

    值得一提的是,可行驶区域和车道线语义上是非常相关的,因此可以通过相互的几何约束来提高准确率。业界也有不少这方面的尝试,越来越多的深度神经网络将它们进行融合。

    3.3 优化

    从算法到产品最大的鸿沟之一便是性能优化。移动端设备有限的算力正在与多样化算法的算力需求形成矛盾。这在之前写的文章《浅谈端上智能之计算优化》中进行过初步的讨论。对于像ADAS这样的场景实时性尤其重要。我们可以从文中提及的几个角度进行优化。

    首先,在网络设计上我们在backbone上可以选择这几年经典的轻量级网络(如MobileNet系[25], [26],ShuffleNet系[27], [28],EfficientNet[29]等)。这些网络一般在计算量上比重量级网络有数量级上的减少,同时又可以保持准确率不损失太多。另一方面,对于多个检测任务,由于输入相同,我们一般会使用多分支的网络结构。每个任务对应一个分支(head),它们共享同一个用于特征提取的backbone。按经验来说,这个backbone占的计算一般会比较大,因此这样可以节省下相当可观的计算开销。但是这样的多任务多分支网络会给训练带来困难。最理想的当然是有全标注的数据集,但这样的数据集比较难获得。对于这个问题,我们可以采取两种方法:一种是如前面提的,靠重量级高准确率网络自动标注。如训练高准确率的物体检测模型给已有车道线标注的数据集进行标注;另一种就是对带特定标注的数据输入,训练对应的部分(backbone和相应的head)。

    对于给定网络结构,我们可以通过模型压缩进一步减少计算量。因为普遍认为推理时不需要训练时那样复杂的模型和高的精度。模型压缩有很多种方法,有量化、剪枝、知识蒸馏、低轶分解等等。常用的方法之一是量化。一般来说,将FP32转为FP16是一种既比较安全收益又比较大的做法,然而在一些低端设备上我们还需要作更低精度(8位或以下)的量化。这时就得花更多精力在准确率损失上了。量化又分为post-training quantization和quantization-aware training。前者使用方便,不需要训练环境,最多需要少量(几百张)数据集作为量化参数calibration之用,但缺点是会对准确率损失较大;而后者,需要在训练时插入特殊的算子用于得到量化所用参数及模拟量化行为。另一种常用的压缩方法是网络剪枝。根据网络模型的敏感度分析,一些层稍作裁剪可能就会有大的准确率损失,而另一些层进行裁剪则准确率损失不大,甚至还会使准确率上升。这就给了我们简化模型从而减少计算量的机会。低轶分解本质上是通过对矩阵的近似来减少矩阵运算的计算量。知识蒸馏是一种很有意思的方法,就像现实中的老师教学生,通过teacher model来帮助训练student model。

    网络模型敲定后,就需要考虑性能优化。深度的优化是离不开硬件的考虑的。对于一些用于自动驾驶的计算平台,可能直接就上像Nvidia的PX2这样的高性能硬件平台了。但对于普通车规硬件平台,肯定是扛不住这种成本的。这些常规车机平台中一些稍高端的会有几百GFLOPS的GPU处理能力,或其它DSP,NPU等计算硬件。这里我们一般会首选这些硬件做模型推理而非CPU。因为如果将这些计算密集型任务往CPU放,会和系统中其它任务频繁抢占资源导致不稳定的体验。而对于低端一些的平台GPU基本只够渲染,那只能放到CPU上跑,一般会用上面提到的量化方法将模型转为8位整型,然后将推理绑定到固定的核上以防止影响其它任务。推理引擎有两类选择。对于一些有成熟推理引擎的硬件平台,使用厂商的引擎(如Intel有OpenVINO,高通有SNPE)通常是一个方便快捷的选择;还有一种方法就是用基于编译器的推理引擎,典型的如TVM。它以offline的方式将网络模型编译成可执行文件并可进行自动的执行参数优化。至于哪个性能好,通常是case-by-case,需要尝试。值得注意的是,上面选取的轻量型网络一般是memory-bound的,因此优化时需要着力优化访存。

    如果平台上有多种可以执行神经网络算子的硬件,如CPU、GPU、NPU、DSP,那可以考虑通过异构调度来提高硬件利用率,从而达到性能的优化。现在业界已有不少的异构计算框架,如ONNXRuntime,Android NN runtime等。这里面,最关键核心的问题在于调度。对于单个网络模型而言,先要对网络进行切分,然后分配到最合适的硬件上,然后在每个硬件上进行本地调度。难点在于这个调度是NP-hard的,意味着对于实际中大规模问题,不可能在合理时间找到最优解,而要找到尽可能优的近似解是门大学问。业界出现了大量的方法,如精确算法、基于启发式策略、元启发式搜索和机器学习的方法。对于前视感知任务中的多分支模型,一个最简单而有效的做法就是将backbone以及各个head的分支作为子图进行切分和调度。如果要得到更优的调度,则可以进一步尝试基于搜索和学习的方式。

    4. 小结

    前视感知领域是一个小打小闹容易但做好非常难的东西。它需要长期的沉淀才能构建起核心竞争力和技术壁垒。我们看到今天行业龙头Mobileye独领风骚,但少有人看到它在早期的执着。Mobileye创立于1999年,但到2007年才开始盈利。类似的还有谷歌的无人驾驶车(差不多10年了),波士顿动力的机器人(貌似27年了),还有许许多多这样“耐得住寂寞”的公司。即使最后失败,相信也会滋养出更大的辉煌。而一旦成功,便能奠定绝对的市场地位,让其它竞争者难望其项背。

    可以看到,学术界的成果和产品之间还有不小的鸿沟。当然其中的因素有很多,如成本、功耗等等,而其中最关键的因素之一是性能。传统的方式很多时候会算法管算法,整好后拿去优化,相互独立,最多整几轮迭代。而今天我们看到,两者需要越来越多地相互融合,共同演进。通过hardware-software co-design才能打造和打磨出更加完美的产品。它需要算法设计中便考虑对于特定平台硬件上的友好性。举例来说,为了更好的部署,网络设计时最好就要考虑哪些算子在目标平台上能被较好地加速;同时训练时加入特定的元素以便于后面的模型剪枝和量化。如果等吭哧吭哧训练了几周,模型都出来了再考虑这些问题就可能会带来巨大的成本。近几年大热的AutoML中的自动神经网络架构搜索(NAS)现在也越来越多地朝着hardware/platform-ware的方向发展。

    最后,车辆环境感知中,数据的长尾问题是摆在AD/ADAS面前最大的问题。车辆环境是个开放环境,路上可能碰到任何无法预想的东西。2016年兰德智库指出自动驾驶系统需要进行110亿英里的测试才能达到量产应用条件。显然,这不是几辆车上路满大街跑能搞得定的,传统的测试手段已捉襟见肘。当然,对于ADAS这类驾驶辅助类功能要求会低一些,但本质上面临的问题是类似的。传统的汽车功能安全标准已经无法涵盖这类问题。虽然现在有针对性的预期功能安全(SOTIF)标准正在起草,但其可操作性和有效性还有待验证。总得来说,汽车的智能化给测试验证提出了非常有趣同时也是前所末有的挑战。

    参考资料

    [1] B. Huval et al., “An Empirical Evaluation of Deep Learning on Highway Driving,” CoRR, vol. abs/1504.01716, 2015.
    [2] C. Szegedy, A. Toshev, and D. Erhan, “Deep Neural Networks for Object Detection,” in Advances in Neural Information Processing Systems 26, 2013, pp. 2553–2561.
    [3] E. Shelhamer, J. Long, and T. Darrell, “Fully Convolutional Networks for Semantic Segmentation,” CoRR, vol. abs/1605.06211, 2016.
    [4] V. Badrinarayanan, A. Handa, and R. Cipolla, “SegNet: A Deep Convolutional Encoder-Decoder Architecture for Robust Semantic Pixel-Wise Labelling,” CoRR, vol. abs/1505.07293, 2015.
    [5] L.-C. Chen, G. Papandreou, I. Kokkinos, K. Murphy, and A. L. Yuille, “DeepLab: Semantic Image Segmentation with Deep Convolutional Nets, Atrous Convolution, and Fully Connected CRFs,” CoRR, vol. abs/1606.00915, 2016.
    [6] E. Romera, L. M. Bergasa, and R. Arroyo, “Can we unify monocular detectors for autonomous driving by using the pixel-wise semantic segmentation of CNNs?,” CoRR, vol. abs/1607.00971, 2016.
    [7] J. Kim and C. Park, “End-To-End Ego Lane Estimation Based on Sequential Transfer Learning for Self-Driving Cars,” in 2017 IEEE Conference on Computer Vision and Pattern Recognition Workshops (CVPRW), 2017, pp. 1194–1202.
    [8] X. Pan, J. Shi, P. Luo, X. Wang, and X. Tang, “Spatial As Deep: Spatial CNN for Traffic Scene Understanding,” ArXiv E-Prints, Dec. 2017.
    [9] Y.-C. Hsu, Z. Xu, Z. Kira, and J. Huang, “Learning to Cluster for Proposal-Free Instance Segmentation,” CoRR, vol. abs/1803.06459, 2018.
    [10] S. Lee et al., “VPGNet: Vanishing Point Guided Network for Lane and Road Marking Detection and Recognition,” CoRR, vol. abs/1710.06288, 2017.
    [11] D. Neven, B. De Brabandere, S. Georgoulis, M. Proesmans, and L. Van Gool, “Towards End-to-End Lane Detection: an Instance Segmentation Approach,” ArXiv E-Prints, Feb. 2018.
    [12] B. D. Brabandere, W. V. Gansbeke, D. Neven, M. Proesmans, and L. V. Gool, “End-to-end Lane Detection through Differentiable Least-Squares Fitting,” CoRR, vol. abs/1902.00293, 2019.
    [13] N. Garnett, R. Cohen, T. Pe’er, R. Lahav, and D. Levi, “3D-LaneNet: end-to-end 3D multiple lane detection,” CoRR, vol. abs/1811.10203, 2018.
    [14] Z. Wang, W. Ren, and Q. Qiu, “LaneNet: Real-Time Lane Detection Networks for Autonomous Driving” CoRR, vol. abs/1807.01726, 2018
    [15] M. Ghafoorian, C. Nugteren, N. Baka, O. Booij, and M. Hofmann, “EL-GAN: Embedding Loss Driven Generative Adversarial Networks for Lane Detection”, CoRR, vol. abs/1806.05525, 2018
    [16] Y. Hou, Z. Ma, C. Liu, and C. Change Loy, “Learning Lightweight Lane Detection CNNs by Self Attention Distillation,” ArXiv E-Prints, p. arXiv:1908.00821, Aug. 2019.
    [17] Q. Zou, H. Jiang, Q. Dai, Y. Yue, L. Chen, and Q. Wang, “Robust Lane Detection from Continuous Driving Scenes Using Deep Neural Networks”, CoRR, vol. abs/1903.02193. 2019
    [18] Z. Zou, Z. Shi, Y. Guo, and J. Ye, “Object Detection in 20 Years: A Survey,” CoRR, vol. abs/1905.05055, 2019.
    [19] X. Wu, D. Sahoo, and S. C. H. Hoi, “Recent Advances in Deep Learning for Object Detection,” ArXiv E-Prints, p. arXiv:1908.03673, Aug. 2019.
    [20] Q. Zhao, T. Sheng, Y. Wang, F. Ni, and L. Cai, “CFENet: An Accurate and Efficient Single-Shot Object Detector for Autonomous Driving,” ArXiv E-Prints, Jun. 2018.
    [21] A. Bewley, Z. Ge, L. Ott, F. Ramos, and B. Upcroft, “Simple Online and Realtime Tracking,” CoRR, vol. abs/1602.00763, 2016.
    [22] N. Wojke, A. Bewley, and D. Paulus, “Simple Online and Realtime Tracking with a Deep Association Metric,” CoRR, vol. abs/1703.07402, 2017.
    [23] X. Pan, P. Luo, J. Shi, and X. Tang, “Two at Once: Enhancing Learning and Generalization Capacities via IBN-Net,” in The European Conference on Computer Vision (ECCV), 2018.
    [24] H. Zhao et al., “PSANet: Point-wise Spatial Attention Network for Scene Parsing,” in Computer Vision – ECCV 2018, Cham, 2018, pp. 270–286.
    [25] A. G. Howard et al., “MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications,” ArXiv E-Prints, Apr. 2017.
    [26] M. Sandler, A. Howard, M. Zhu, A. Zhmoginov, and L.-C. Chen, “Inverted Residuals and Linear Bottlenecks: Mobile Networks for Classification, Detection and Segmentation,” ArXiv E-Prints, Jan. 2018.
    [27] X. Zhang, X. Zhou, M. Lin, and J. Sun, “ShuffleNet: An Extremely Efficient Convolutional Neural Network for Mobile Devices,” ArXiv E-Prints, Jul. 2017.
    [28] N. Ma, X. Zhang, H.-T. Zheng, and J. Sun, “ShuffleNet V2: Practical Guidelines for Efficient CNN Architecture Design,” ArXiv E-Prints, 2018.
    [29] M. Tan and Q. V. Le, “EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks,” ArXiv E-Prints, p. arXiv:1905.11946

    展开全文
  • 论机器人的环境感知与智主运动–兼谈基于微分几何的人工智能标签(空格分隔): 人工智能 计算机视觉 自主移动 微分流形 Ricci流版权声明:本文为作者原创文章,未经作者允许不得转载。前言 人工智能是分主观与客观...

    论机器人的环境感知与智主运动

    –兼谈基于微分几何的人工智能

    标签(空格分隔): 人工智能 计算机视觉 自主移动 微分流形 Ricci流


    版权声明:本文为作者原创文章,未经作者允许不得转载。

    前言

    人工智能是分主观与客观的,是硬币的两个方面,
    客观智能是世界的本质描述,是物理的是数学的,
    主观智能是来自于客观智能,是哲学的是宗教的。
    抛开物理与数学只讲方法是走不远的,如无本之木、无源之水,
    单讲物理与数学只会得到一个静默纷扰的世界,无乐无诗无书无画。

    序言

    什么是智能,这是一个令人思绪飞扬的问题,本文的内容经过了我的理论计算及实践,其中的方法及算法全部在我的六个发明专利里,既反映了我的想法和兴趣,也暴露了我的局限和偏见,这里要感谢我太太对我研究工作的持续激励,也感谢我可爱的孩子Andie,在这段时间里所带给我的欢乐与慰藉(http://blog.csdn.net/hjwang1/article/details/52007697)。

    加州大学圣塔芭芭拉分校(UCSB)著名的理论和实验物理学家Matthew Fisher就笃信,人的意识、记忆和思维是量子纠缠的,要用量子理论来解释,这也从一个方面说明当前各种xx学习远不足以解释AI的现象,根源在所用数学理论,绕不开梯度散射等局限性,理不顺长短记忆,道不清缘由,指不明方向;最有可能统一物理的微分几何,可做人脸识别表情识别,携带了原始三维信息,其应用前景不可估量;几何决定了光的弯曲与时空弯曲,可做环境识别,可做智主移动,远不是巡线、避障、定位建图的层次;物理将统一于几何,宏微观将统一于几何,主客观将统一于几何,智能在微分几何,莫比乌斯带上的“蚂蚁”将揭开其中奥妙。

    第一章 机器对环境的感知

    人类无时无刻不在通过眼、耳、鼻、舌等器官来摄取环境的信息,动物也是同样通过各自的器官获得环境信息。而对无生命的机器来说,若要体现出类人的智能,首要就是要考虑如何感知环境的信息。

    1.1 机器的感官之传感器

    借鉴人与动物的感官,我们创造出了各种各样的传感器,以辅助机器感知周围的环境,部分如下:

    • 重力传感器G-sensor,可以感知静态的重力加速度,游戏设计中多用于感知姿态
    • 陀螺仪Gyroscope,常用来获取运动中的物体的各种姿态
    • 激光测距传感器,可以测量环境物的距离信息,类似的还有红外、超声波等传感器
    • 光线传感器,感知环境光亮的强度
    • 温湿度传感器,测量周围环境的温度与湿度
    • 光学编码器,可以计算电机的转速

    1.2 机器的思考与学习特征

    机器在通过传感器摄取到环境信息后,它是怎么识别的?它是怎么记忆的?它又是怎么触类旁通的?,说实话,如果真正解决了这些问题,那么也就离发展出通用智能不远了。单就视觉与运动这一方向来说,还是有路可循的。

    从人类的视觉出发,一般来讲,人们通过物体的色彩、材质、形状及拓扑信息来辨识与比较物体。对机器来说,色彩可以由camera的感光器件可以识别,材质也有各种传感器做出些许识别,形状可以由基于测距的扫描scanner感知,进而再计算建模得出其表面形状信息,更进一步可以计算其拓扑信息。所以,机器视觉还是可以在一定程度上比肩人类,根据视频感知,实时做出路径规划与自主运动,类似的无人驾驶汽车,已经研制出来,相信不远的将来就可以走向商业应用。

    1.3 机器的路径规划与避障

    有了前面章节的基础感知信息,机器就可以大规模的计算,基本上可以做到实时的路径规划与避障。当前常见的这方面的算法有A*算法、D*算法等,应用方面,大到火星车上面,小到游戏应用设计里,都能见到其身影。这些路径规划算法,其应用基础就是要有一个环境地图,而这地图的获取方面,同步定位与建图之SLAM算法,名满全行业,而且已经有了初步的商业应用,如扫地机器人,像美国的iRobot公司、中国的科沃斯公司等等,都已经做了较深入的研究与产品的商业化推广。

    1.4 蝙蝠的运动特征

    蝙蝠的飞行不是靠眼睛看的,众所周知,而是靠耳朵和发音器官嘴与鼻以飞行的。蝙蝠在飞行时,会发出一种尖叫声,这是一种超声波信号,是人类无法听到的,因为它的音频超出人耳能接收到的范围20Hz~20kHz。这些超声波的信号在发出之后几乎呈直线传播,如果在传播时碰到其他物体,就会立刻反射回来,在接收到返回的信息之后,蝙蝠会实时对这些信号进行计算,感知周围环境,并且快速地绕开障碍物,去捕捉适合自己品味的猎物。

    喉咙是蝙蝠发出超声波的源泉,嘴和鼻子是其超声波的发射天线,再通过耳朵接收返回的声波。进而分辨出物体是大是小,是远是近,是活是死,从而也就能知道他所需要的食物在什么方向。

    科学家把蝙蝠的这一行为叫做回声定位,并且根据这一原理制造出了雷达,这一可以利用无线电波进行探测的装置。时至今日,雷达已经被广泛应用在军事、天文、气象、航海、航空等领域里。

    第二章 当前智能算法与应用

    现代意义上的人工智能AI(Artificial Intelligence),其诞生标志被广泛承认是1956年达特矛斯会议,人工智能几十年来的发展经历了多次高潮与低谷。截止目前,我们所接触到的智能学习算法包括有以下几大类:模式识别(Pattern recognition)、机器学习(machine learning)、深度学习(deep learning),其中深度学习近年来明显被热捧,以下图所示为来自谷歌趋势的“2004年1月到2016年6月间三种学习热度”,借Tomasz Malisiewicz博士的话说:

    模式识别一开始主要是作为机器学习的代名词;
    模式识别正在慢慢没落和消亡;
    机器学习就像是一个真正的冠军一样持续昂首而上;
    深度学习是个崭新的和快速攀升的领域。
    2004年1月到2016年6月间三种学习热度,来自谷歌趋势
    2004年1月到2016年6月间三种学习热度,来自谷歌趋势

    2.1 一种机器学习算法与应用

    什么是机器学习,各家定义不尽相同,然而个人喜好Tom Mitchell在《Machine Learning(中文版:计算机科学丛书:机器学习 )》一书中的提法:这门学科所关注的问题是“计算机程序如何随着经验积累自动提高性能”。初学者可以简单认为机器学习分类为监督学习与无监督学习,监督学习多用于解决分类、回归等问题,无监督学习多用于解决聚类、密度估计等问题。我们常见的一种机器学习应用便是手写数字识别,例如邮政编码自动识别系统、税表与银行支票自动识别系统。

    2.2 一种深度学习算法与应用

    深度学习的灵感源自于人脑视觉系统,在某种程度上,可以认为深度学习是机器学习的一个分支,深度学习的概念源于人工神经网络的研究,在语音识别和图像识别等领域获得了不小的成功,从识别率方面来讲可以说是超过了其他方法,微软将其应用的语音识别中,Google Brain系统用其识别图像。

    以下是典型的多层深度学习结构
    多隐层深度学习结构
    经典的多隐层深度学习结构

    第三章 微分几何与人工智能

    截止目前,人类的智能是如何运转的仍然是未解。对于未来人工智能的发展,有乐观派,也有悲观派。另一方面,微分几何的技术应用,对人们认识自身的智能及医辽方面,有了不小的进展,可以参考顾险峰老师的文章:纯粹数学的雪崩效应:庞加莱猜想何以造福了精准医疗?

    3.1 视觉中枢与微分几何

    诺贝尔奖获得者David Hunter Hubel与Torsen Wiesel,通过对猫的视觉中枢研究,证明视觉中枢系统具有由简单模式构成复杂模式的功能,这对人工神经网络的发展有一定的启发。后来,通过对猴子视觉中枢的解剖,发现从视网膜到第一视觉中枢的大脑皮层曲面之间存在共形映射。而,共形映射属于微分几何的范畴,再配以庞加莱猜想的单值化定理,所有现实的物体及环境都可以在微分几何的范围内施以更形象化的运算。参考顾险峰老师的文章:人工智能中的符号主义和联结主义

    3.2 微分几何在医学中的应用

    近些年来,北美和日本采用了虚拟肠镜技术,用以微分几何的Ricci曲率流方法计算器官的共形映射,从而提高早期直肠癌的发现几率,降低了直肠癌的死亡率。另一应用就是脑神经疾病的预防与诊断,例如癫痫、儿童自闭症等脑神经疾病,利用微分几何的知识就可以将相关器官共形映射到球面上,进而就可以加以精确分析比对。

    第四章 机器视觉数字化

    机器视觉,类似于尚未被认知的生物视觉,同样是没有彻底的、通用的方法加以实现,截止目前,机器视觉仍是工程领域、科学领域中的一个极富挑战性的重要研究领域,它是一门综合性的学科,包括计算机科学和工程、信号处理、物理学、应用数学和统计学、神经生理学和认知科学等。本文从一个新的角度切入,对机器人的环境感知与自主运动的问题进行了探讨,通过探讨,笔者提出了一些自己的看法,给出了一套视觉感知算法,以期能起到抛砖引玉的效果。

    4.1 环境物体的视觉特征

    相比于同时定位与建图的SLAM算法与图像处理的SIFT算法,笔者这里给出的视觉感知算法Dog-like AI与其有相同点,也有明显的区别。与SLAM一样要依赖测距传感器扫描做为信息的输入,与SIFT算法一样是基于特征运算的,不同的是,Dog-like AI算法是基于几何拓扑的,数学基础是微分几何,从结构上来讲,由简单到复杂、由局部到整体,一定程度上可以认为比较符合生物的认知原理,人类的视觉中枢本身由多个区域,分层、抽象是其重大特征。

    如下图所示的,基于微分几何的等曲率共形变换
    基于微分几何的共形变换
    图片参考顾险峰老师的文章:纯粹数学的雪崩效应:庞加莱猜想何以造福了精准医疗?

    在一个等曲率的几何拓扑空间上,对所有的物体加以分析运算,这有可能是人工智能一种通用模型,既有局部又有整体,既有简单又有复杂,既有低级刻画又有高级抽象,也体现了连续与离散的统一。Dog-like AI算法也是建立在“信息存储与记忆皆在几何结构中”之假设基础上。

    4.2 视觉特征的空间结构

    在实践中,针对现实生活中的物体或环境,在空间某一点用测距传感器扫描,获取物体表面各点的距离信息,可以将物体表面双射到某一基准面上,即双射,

    f:M(x,y,z)S(β,θ)=dS(β,θ,d)
    M(x,y,z) 表示三维空间中物体表面上的任一点, S(β,θ) 表示二维基准面上的任一点, d 表示基准面上该点的畸变系数,这里的基准面可以是欧氏平面、球面或双曲平面,但是如果直接这样映射的话会有两个局限点,一是不能保证映射的双射性质,另一是不能确保映射的共形性质,例如当物体表面不是凸性的,此时就会破坏映射的双射性质,就不能统一化到同一个基准面上分析比对,同样道理,如果不是共形到同一个基准面上,也会对分析结果造成错位,相同的两个物体表面双射共形映射到同一个基准面上,变换后的结果之间顶多相差一个莫比乌斯(Mobius)变换。详细的等曲率双射共形变换到基准面的数学知识及算法后续详解。

    由上我们得出,实际物体双射共形变换到基准面上后,其对应的点云空间,如下:

    f(M)=S(β1,θ1,d11)S(β2,θ1,d21)S(βn,θ1,dn1)S(β1,θ2,d12)S(β2,θ2,d22)S(βn,θ2,dn2)S(β1,θs,d1s)S(β2,θs,d2s)S(βn,θs,dns)
    然后,把所有的点 S(β,θ,d) 按位置 (β,θ) 离散化成二维矩阵,此二维矩阵称为共形矩阵,如下,其中的元素是由畸变系数 d 分解而得,
    c(M)=f11f21fn1f12f22fn2f1sf2sfns
    根据共形矩阵,我们可以求出物体的特征矩阵,如下,
    F(M)=φ(c(M))=F11F21Fn1F12F22Fn2F1sF2sFns
    其中, φ 可以是一种变换,可以是但不限于二维Fourier变换、二维Walsh变换等,从特征矩阵中,我们可以方便地分析物体之间的对称性(镜像对称性、平移不变性及旋转不变性)与差异性,为了更方便地分析物体之间的差异性,可以进而求取特征矩阵的特征谱,如下,
    P(M)=Ψ(F(M))
    其中, Ψ 是一种变换,随后我们举例,单从Walsh变换详解之。

    4.2.1 什么是Walsh变换

    Walsh变换全称Walsh Hadama变换,是一种离散正交变换,也是一种完备的正交变换方法,它本身也是一种矩阵,记为 Hn,n2m,mN

    H2n=(HnHnHnHn),H1=(1)
    Walsh Hadama矩阵可以作用于一维的数组,也可以作用于二维的矩阵。

    4.2.2 Walsh变换应用

    根据Walsh Hadama矩阵,我们就可以利用Walsh Hadama变换求出物体的特征矩阵(二维空间)或特征向量(一维空间),如下,

    F(M)=φ(c(M))=φf11f21fn1f12f22fn2f1sf2sfns=1nsHnf11f21fn1f12f22fn2f1sf2sfnsHs
    有了特征矩阵,我们就可以得出特征谱向量 P(M) 了,如下,
    P(M)=P(M)[r]=(F(M)[0][0])2,P(M)[r]=rowi=0colj=0(F(M)[i][j])2r1k=0P(M)[k]τ=max(n,s),row=min(2r1,n1),col=min(2r1,s1) r=0 r[1,logτ2]
    有了特征谱向量,就可以比较方便地分析两个物体的差异性了,例如,可以根据向量余弦法来分析,向量余弦夹角的度数越靠近 0 ,就表明这两个物体越相似,如下,
    cos(P(M),P(N))=<P(M),P(N)>|P(M)||P(N)|

    当其余弦夹角为零时,我们可以判断两个物体是相似的,可以很容易地求出其相似比,概念上类似真实汽车与汽车模型的区别。

    4.2.3 共形双射之等曲率变换

    经过以上几小节的分析,我们发现还有一个环节没有处理,就是怎么计算物体的共形双射之等曲率变换。这里我们就不得不提大名顶顶的“庞加莱猜想之单值化定理”。庞加莱(Poincaré)于1904年提出的曲率单值化猜想,现在看来给物体识别带来了一线曙光,可以让具有复杂拓扑的物体微分同胚到正则空间内,这里的正则空间与前述基准面的概念是相通的,可以是欧氏空间、球面空间或双曲空间;上世纪七、八十年代哈密尔顿(Richard Hamilton)的工作、本世纪最初的几年里佩雷尔曼(Grigoriy Perelman)的工作彻底从理论上证明了庞加莱猜想,并且进一步证明此微分同胚是可以保形的,其计算复杂度上来讲是指数级收敛,非常高效。
    限于篇幅,我们这里只给出一个可行的大概的示意算法,对于一个三维闭合曲面(或是有缺口的)表示的物体,通过相关设备及算法,例如三维激光雷达、双目摄像头等,已经获取了实际环境物体的三维点云信息,其包括以下步骤:
    1. 由物体的点云信息构建物体的三维栅格地图时,对点云数据做中间处理,这些中间处理环节包括但不限于插值优化、平滑优化、扫描点过滤等,
    2. 由物体的三维栅格地图,根据Delaunay算法或其他算法构建物体的三角剖分网格图,
    3. 计算物体的三角剖分网格图的欧拉示性数,并确定共形变换时单值化的曲率及所嵌背景几何,
    4. 由Circle Packing、离散Ricci流方法,迭代计算,把物体的三角剖分网格图共形映射到常曲率的标准正则空间内:球面几何、欧氏几何、双曲几何,
    5. 根据曲率及度量等信息,把物体表面的所有的点,拉回嵌入到标准正则空间内,在正则空间内的点,如前4.2节所述表示为 S(β,θ,d)
    6. 接前4.2节所述,我们就可以求出相应的特征矩阵与特征谱。

    这里对Circle Packing、离散Ricci流方法不再展开,详细可以参考相关书箱与论文。
    Circle Packingy方法如下图示,
    Circle Packingy方法
    基于Delaunay三角剖分的离散Ricci流图示,
    基于Delaunay三角剖分的离散Ricci流

    4.3 视觉矩阵的对称性

    接上前面章节分析,两个物体相似时,如果相似比为1,我们可以称此两个物体是等价的,从特征矩阵出发,在具有相似关系下的两个物体,转化为等价关系后,就可以分析其镜像对称性、平移不变性及旋转不变性。

    4.3.1 相似性

    由特征谱 P(M) P(N) ,判断出物体 M N相似后,就可以由特征谱来计算其相似比,如下:

    P(N)=IλP(M)=λ100λnP(M)
    考虑到 i[1,n],λi 有等于零的情况,我们取
    Iλ=λ100λm,mn,j[1,m],λj>0
    令,
    Iλ=tr(Iλ)m=tr(Iλ)m=1mj=1mλj
    ,则我们定义物体 M N的相似比为 λP(M)P(N)

    4.3.2 不变性

    由特征谱 P(M) P(N) ,判断出物体 M N相似后,就可以由特征矩阵 F(M) F(N) 来计算其镜像对称性,首先把物体 M N转化为等价关系,即,

    F(M)λF(M)
    我们以8维特征方阵为例加以说明,取,
    8=123,1=(1001),2=(0110),3=0.51111111111111111

    D=diag{1,1,1,1,1,1,1,1}
    ,记
    {F(N)=(8)uDpF(M)Dq(8)vu,v[0,1,2,...,7],p,q(0,1)
    当满足以下条件时,分别有相应的镜像对称性与平移不变性,
    p=1q=1u>0v>0F(M)F(N)F(M)F(N)F(M)F(N)F(M)F(N)
    ,记
    {F(N)=(8)uDpF(M)Dq(8)vu,v[0,1,2,...,7],p,q(0,1)
    当满足以下条件时,分别有相应的旋转不变性,
    {p=1,q=0p=0,q=1F(M)F(N)π2F(M)F(N)π2

    4.3.3 不变性样例

    如下所示,假设我们已经得到一个物体 x 的共形矩阵

    f(x)=0000000000000000000.17730.26130.103500000.13810.93340.93070.512400000.28280.17930.51760.5176000000000000000000000000000
    其特征矩阵如下,

    F(x)=0.07120.00460.02260.01770.03570.03080.05800.01770.00740.00720.01530.00610.01080.01060.01190.00270.02440.00780.02580.00020.02130.00470.02890.00330.05420.00400.01210.01180.02530.02500.04110.01710.02440.00780.02580.00020.02130.00470.02890.00330.05420.00400.01210.01180.02530.02500.04110.01710.07120.00460.02260.01770.03570.03080.05800.01770.00740.00720.01530.00610.01080.01060.01190.0027
    其特征谱如下,
    P(x)=(0.00510.00010.00570.0325)
    另,我们有如下一扇门,其相应的信息如下,
    f(door)=0000000000000000000.10.20.100000.1110.500000.20.10.50.5000000000000000000000000000
    相应的特征谱
    P(x)=(0.00450.00030.00640.0336)
    易知,
    cos(P(x),P(door))=0.999625cos(5)=0.996195
    所以,物体 f(x) 与门 f(door) 是相似的。
    另,有如下物体,
    fT(door)=0000000000000000000000000000000000000.10.20.100000.1110.500000.20.10.50.5000000000
    ,
    fM(door)=00000000000000000000000000.20.10.50.500000.11.01.00.5000000.10.20.10000000000000000000
    fR(door)=000000000000.20.10000000.11.00.1000000.51.00.2000000.50.50.100000000000000000000000000
    同理易计算得,
    P(door)=IλPT(door),λ=1FT(door)=(8)6F(door)(8)6,f(door)66fT(door)P(door)=IλPM(door),λ=1FM(door)=F(door)D,f(door)fM(door)P(door)=IλPR(door),λ=1FR(door)=D(F(door)),f(door)π2fR(door)
    综上,我们可以看到通过物体识别系统,能把相似的物体分离出来,并且可以量化分析相似物体之间的关系,通过相似比运算与平移不变性、旋转不变性、对称不变性运算,揭示相似物体之间的内在本质,对物体特征的识别,即大大减少了穷举比对次数,又做了更精细化区分。

    第五章 机器视觉

    5.1 二维环境感知

    二维环境感知原理

    二维激光平面扫描示意图
    gmapping slam
    以上图示参考gmapping slam算法,但不是必须。

    实践中二维空间下的环境感知
    环境感知图示

    5.2 三维环境感知

    三维激光扫描示意图:借用Slamtec扫描示意图
    Slamtec扫描
    实践中三维空间下的环境感知
    texture-3D

    5.3 智主运动

    这里姑且把具备一定智能的自主运动,称之为智主运动,这里的智能指上文提到过的Dog-like AI,本质在不与人类交互的情况下,这里的智能对自主运动来说是完全足够的,正如在没有人类的参与下,各星体按万有引力定律运行于宇宙空间内,“光”自会选取最省能量的路线传播。

    智主运动是一种物体自主移动的决策方法,对于已经建好的二维或三维栅格地图,在栅格地图中进行特征分析并做环境特征建模,通过环境势函数与环境场强度来表征环境特征,是物体自主移动的基础,物体根据这些环境特征的势函数与场强度来做出移动的决策,本方法可以应用于机器人的路径规划与自主运动,为机器人在实际环境中的游戏应用、机器人清洁、无人机玩具低空飞行、穿越及起降等方面提供支撑。
    原理图
    环境建模原理图

    实践
    实践下的智主运动

    附录

    A Fourier变换

    B 离散正交变换

    C 复变函数

    参考:微分几何与黎曼几何1,还有部分源程序代码2


    作者 hjwang1@163.com
    2016 年 05月 20日


    1. 《微分几何讲义》,陈省身、陈维桓著,访问 Math 参考更多内容。
    2. 代码参见,github
    展开全文
  • 物联网安全综述报告之感知层认证机制 文章目录物联网安全综述报告之感知层认证机制1. 物联网感知层安全概述1.1 物联网感知层面临的安全威胁:1.2 物联网感知层安全机制2. 物联网认证机制2.1 物联网认证机制的安全...
  • 除了通信目的,IRS还可以在室内和室外场景中提供精确和高效的基于无线电的环境感知和成像,为实现SSaC提供了新的思路; 太赫兹技术(THz):利用高频率(如太赫兹频段)的潜力,将为感知和环境重建提供独特的机会,...
  • 感知层位于物联网三层结构中的最底层,其功能为“感知”,即通过传感网络获取环境信息感知层是物联网的核心,是信息采集的关键部分。 感知层包括二维码标签和识读器、RFID标签和读写器、摄像头、GPS、传感器、M2M...
  • 视觉感知与认知

    千次阅读 2021-03-15 10:37:10
    2. 视觉感知与认知 2. 视觉感知与认知2.1 感知与认知2.1.1 视觉感知处理过程2.1.2 格式塔理论2.1.2.1 贴近法则 (proximity)2.1.2.2 相似法则 (similarity)2.1.2.3 连续原则 (continuity)2.1.2.4 闭合原则 (closure)...
  • 物联网感知层之传感器的分类

    千次阅读 2020-10-27 17:44:43
    它把汽车运行中各种工况信息,如车速、各种介质的温度、发动机运转工况等,转化成电信号输计算机 测量温度、压力、流量、气体浓度、速度、光亮度、干湿度、距离等 液位传感器 利用流体静力学原理测量...
  • 机交互重点知识点

    千次阅读 2021-05-16 19:58:15
    机交互重点知识点 1.绪论 1.1什么是机交互? 机交互是关于设计、评价和实现供人们使用的交互式计算机系统,且围绕这些方面的主要现象进行研究的科学。 1.2机交互的研究内容 (1)机交互界面表示模型与设计...
  • 虚拟现实作业

    千次阅读 2021-05-23 21:55:35
    1、谈谈虚拟现实与三维景观动画的区别与联系 答:三维动画又称3D动画,是近年来随着计算机软...虚拟现实技术就是采用以计算机技术为核心结合光电传感技术生成逼真的视、听、触一体化的特定范围内虚拟的环境(如飞机驾驶舱
  • 自动驾驶感知概述

    千次阅读 2020-08-29 20:52:05
    为了确保自动驾驶车辆对周围环境的获取和识别,自动驾驶系统的感知模块需要通过各种传感器获取大量的环境信息,包括自车的状态、交通流信息、道路状况、交通标志等,这些传感器主要包括:激光雷达(Lidar)、摄像头...
  • 《地理信息系统概论》课后习题全部答案_黄杏元

    千次阅读 多人点赞 2020-08-14 18:11:56
    GIS脱胎于地图学,是计算机科学、地理学、测绘遥感学、环境科学、城市科学、空间科学、信息科学和管理科学等众多学科交叉融合而成的新兴学科。但是,地理信息系统与这学科和系统之间既有联系又有区别: (1)GIS与...
  • 人类对物理世界的感知经历了从主观感受到传感器再到传感网的发展阶段,如图1所示。在传感器变得越来越小、数据采集变得越来越普及的同时,有一个问题也日益突出——传感系统的部署成本太高。特别是随着感知范围和...
  • 目录一.物联网操作系统(一).操作系统发展史与概述(二).物联网操作系统概述(三...感知层开发介绍 一.物联网操作系统 (一).操作系统发展史与概述 (二).物联网操作系统概述 (三).Huawei LiteOS应用 二.感知层开发介绍 ...
  • 目前,自动驾驶汽车关键技术主要包括环境感知、精准定位、决策与规划、控制与执行、高精地图与车联网V2X以及自动驾驶汽车测试与验证技术等。 在这套技术体系以及关键软硬件设备的支持下,自动驾驶汽车可通过车载摄像...
  • 什么是态势感知

    万次阅读 2017-11-16 00:00:00
    Endsley 既然我们懂得了什么是以用户为中心的设计,...本章将为您提供一个坚实的基础,从中我们可以开发设计系统的原则,将支持和提高。  2.1 SA定义 基本上,态势感知感知你周围发生了什么事情,了解对应的信
  • Apollo课程学习4——感知学习前言感知的概述一、什么是感知二、感知的任务1、检测与分类2、跟踪3、语义分割三、图像分类器步骤传感器的选择和标定一、传感器的选择1、相机2、激光雷达3、毫米波雷达二、传感器的安装...
  • 视觉感知——深度学习之YOLOv3算法

    千次阅读 2022-02-21 00:34:40
    视觉感知——深度学习之YOLOv3算法1. 传感器融合2. 深度学习算法2.1 卷积神经网络CNN2.2 YOLO算法3. YOLO v3算法实践3.1 官方数据集参考3.2 环境配置3.3 算法调试3.4 识别输出4.参考学习的书目及论文 博主之前就写过...
  • 众包数据库管理、时空众包、移动群智感知方向的综述整理——附思维导图论文介绍众包数据库管理时空众包移动群智感知总结 论文介绍 该方向的发展主要分为三个模块:时空众包、群智感知、众包数据库管理; 然后我就...
  • 压缩感知技术

    千次阅读 2019-01-21 17:15:11
    纯学习的态度分享博客: ...——————————————————————————————————————————————...1、压缩感知与单像素相机(陶哲轩,Terence Tao) 原文链接:http://songshuhui.net/archi...
  • 机交互知识点总结

    千次阅读 2022-01-08 21:56:46
    机交互知识点总结
  • 环境感知在自动驾驶汽车、视频监控等相当一部分深度视觉应用中占据了核心地位。 如果一辆车子要实现自动驾驶,那么障碍物感知绝对是最基础也是最核心的功能。 Apollo 障碍物感知系统分为3D 检测、ROI 滤波、识别...
  • 机交互基础教程

    千次阅读 多人点赞 2020-09-15 20:12:44
    1. 什么是机交互:正式...到计算机:借助键盘、鼠标、操纵杆、数据服装、眼动跟踪器、位置跟踪器、数据手套、压力笔等设备,用手、脚、声音、姿势或身体的动作、眼镜甚至脑电波等向计算机传递信息 计算机到:打印
  • 绿盟科技安全态势感知解决方案

    千次阅读 2017-07-03 11:14:00
    信息安全目前越来越受到重视,“棱镜门”事件爆发后,信息安全不仅引起了企业领导的重视,更引起了国家领导的广泛关注。在这种背景下,企业无论是出于对自身利益的考虑,还是对于社会责任的角度,都已经开始构建...
  • 时间序列分类01:人类活动识别深度学习模型综述

    千次阅读 多人点赞 2020-04-11 15:32:26
    在其他情况下,窗口长度可能太短,无法为识别过程提供最佳信息。 目前尚不清楚给定问题是否需要重叠窗口。在采用神经网络模型时,使用重叠(例如50%重叠)会使训练数据的大小增加一倍,这可能有助于对较小的数据集...
  • 信息系统安全复习提纲

    万次阅读 2022-01-03 12:48:36
    信息系统安全复习 2021.12月整理 标注了部分2021年12月考察到的知识点 目录信息系统安全复习一、基本概念第一讲 信息系统概论1.什么是信息系统2.信息系统的例子,包括云计算、雾计算、边缘计算等3.信息系统的架构、...
  • 上述三类技术成为各种智慧应用场景的核心支撑技术,使得智慧家庭、智慧医疗、智慧交通乃至大规模的智慧城市等称为可能。 一个IOT感知的生态体系包含如图所示的三个部分:IOT系统、物理世界以及对抗者。 图1:IOT...
  • 飞行员态势感知的机理研究

    千次阅读 2019-11-08 08:50:22
    【情境觉知就是态势感知,只不过是在心理学上的另一种叫法,与机器都不可能有绝对的自主,大多会遵循半开放逻辑,即事实、猜想、归纳与半反驳序列之间的关系。而的半开放性又远远...
  • 基于安全压缩感知的大数据隐私保护王平1,张玉书2,何兴1,仲盛31西南大学电子信息工程学院,重庆 4007152南京航空航天大学计算机科学与技术学院,江苏 南京 2111063...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 14,872
精华内容 5,948
关键字:

给人提供环境感知信息的设备称为

友情链接: studentmanagesystem.rar