第32课、感知算法

  1. 点云感知
    (1)点云障碍物感知的主要任务是感知障碍物的位置、大小、类别、朝向、轨迹、速度等。核心是点云检测分割技术,可以用启发式算法NCut和深度学习算法CNNSeg完成。
  2. 启发式方法:Ncut

    (1)Ncut算法的基本思想是基于空间平滑性假设,即空间上接近的点来自同一个障碍物。首先,利用地图信息对点云进行预处理,例如去掉感兴趣区域之外的点云,降低点云图的复杂度。然后根据预处理后的点云构建加权图G=(V, E, W),将点云分割转换为图分割的问题,可以利用图聚类的算法求解,最终求解的每一个cluster就代表一个障碍物。该算法的优点是解释性好,缺点是分割规则过于简单,难以应对实际情况(草丛、绿化带),主要原因在于缺乏语义信息。
  3. 深度学习方法:CNNSeg
    (1)主要思想是利用卷积神经网络来处理激光雷达捕获的点云数据,并对点云中的目标进行识别。深度学习是数据驱动的,它把人工构造特征这一任务交给机器和算法去完成(即特征学习)。在百度的深度学习感知实现过程中,团队尝试了很多方法,下面就简单介绍算法研发的历程。
    ①将所有点云都投到前视图(front-view)(投影面是一个圆柱面)来构造特征,将点云问题转化为矩阵问题,进而使用深度学习进行处理。通过构建全卷积神经网络对前向视图进行处理。
    ②借助自采集车队,采集更多的实际数据,并且扩展数据视角,制作俯视图,通过将俯视图+前视图相结合的方式进行训练。同时,修改Loss函数,包括使用3D回归和Segmentation的损失函数。经过多次实验,发现基于俯视图的Segmentation方法效果最好。该方法目前已经在Apollo中开源,如下所示。

    ③因为俯视图没有高度信息,因此我们把前视图和Camara图像加进来进行辅助检查,利用Lidar的测距准和Camera识别准优势完成了Middle-Level Fusion方法(Multi-View 3D Object Detection Network for Autonomous Driving),发表在CVPR 2017。该方法使用俯视图提取Proposal,利用前视图和光学图像辅助进行更加精准的位置回归。
  4. 视觉感知
    (1)视觉感知最早从ADAS发展而来。ADAS算法相对轻量,采用人工构造的特征和浅层分类器的方式实现辅助驾驶,该方法目前已经难满足自动驾驶的需求。随着深度学习技术的发展,尤其是在视觉领域的巨大成功,视觉感知的主流技术路线已经变为“深度学习+后处理计算”的方法。该方法带来了以下几个变化,第一是要求计算硬件升级,第二是数据的需求量大增,第三是如何评估保证安全性。面向自动驾驶的深度学习算法具有以下几个特点:
    ①2D感知向3D感知渗透,模型输出更丰富(后处理需要的3D信息、跟踪信息、属性信息等都会放在CNN中进行学习)
    ②环视能力构建(传统方法靠一个Camera完成前向检测、碰撞检测、车道线检测。无人驾驶需要环视)
    ③感知+定位+地图紧密结合
    (2)CNN检测是深度学习里一个十分火热的应用,从最开始的AlexNet,VggNet到ResNet等,持续提高了ImageNet图像检测的精度,更多的细节和最新进展可以参考Kaiming He(何凯明)的系列工作。需要注意的是,目前发表的大部分关于检测的成果都是面向计算机视觉应用的,与自动驾驶领域的检测还有很大的区别。
    (3)首先,自动驾驶中,摄像头是安装在车上的,汽车行驶在结构化、规则化道路上,面向的场景更具体,有很多的几何约束可以用来辅助检测。
    (4)其次,自动驾驶中的检测模型需要输出的信息更多,包括障碍物的尺寸、朝向。同时自动驾驶还需要考虑时序性。我们称之为局部的End-to-End,检测、2D到3D转换、跟踪三步是自动驾驶视觉感知的组成,后面两步都由CNN来学习,减少人工干预。
    (5)第三是多任务学习,网络结构适配。自动驾驶需要针对不同的障碍物特征(车道线,道路边界,定位元素)进行识别,如果分别由专用模型处理,整个处理流程太长,无法满足要求,因此需要做多任务的识别和网络结构的适配。
    (6)最后是属性识别,即除了障碍物级别的输出以外,还需了解速度类别朝向等问题,例如车尾灯状态,车门开闭状态。可以通过标注数据,由数据驱动的深度学习来自动学习这些更细的属性。
  5. CNN分割
    (1)分割(Segmentation)与detection在本质上是一样的,是对一个目标的不同力度的刻画。分割是一种更细粒度刻画物体边界信息的检测方法,不再是画框,而是进行边缘分割。在感知中,对于不规则物体,往往需要进行分割处理。例如场景分割和可行驶区域感知。场景分割可以用于多传感器融合,例如对绿植进行分割,结合LiDAR点云,就可以测出绿植的类别和距离。可行驶区域则可以对一些非结构化道路的路径规划提供支持。在车道线感知中,应视具体情况使用分割或者检测方法。
  6. 后处理
    (1)一个完整的系统除了深度学习模型,还需要做一些后处理,后处理是直接针对下游模块,对后续的影响比较直接。在视觉感知中,后处理主要分为三个部分。
    (2)第一是2D-to-3D的几何计算。2D到3D的转换需要考虑的因素包括:
    ①相机pose的影响
    ②接地点
    ③稳定性
    (3)第二是时序信息计算,主要是针对跟踪处理,需要注意以下几点:
    ①对相机帧率和延时有要求,要求跟踪必须是一个轻量级的模块,因为检测已经占据大部分时间
    ②充分利用检测模型的输出信息(特征、类别等)进行跟踪。
    ③可以考虑轻量级Metric Learning
    (4)第三是多相机的环视融合
    ①相机布局决定融合策略,要做好视野重叠 。
  7. 红绿灯感知
    (1)红绿灯感知是百度无人车第一个使用深度学习、使用Camera的模块。在当时使用深度学习、GPU和Camera做红绿灯感知是存在很多争议的,但是我们一直坚持走这种探索性的道路,并且成功了。现在车上用深度学习、GPU、Camera进行感知已经是一种共识。
    (2)红绿灯感知的任务是在距离停止线50~-2米的范围内精准识别红绿灯亮灯状态。它的难点在于检测精度要求非常高,必须达到三个九(99.9%),否则会出现闯红灯,违法交规的情况。另外召回也不能太低,假设一直是绿灯,但是一秒只召回一帧绿灯,其他都认为是识别错的红灯,则通不过路口,影响通过率和体验。第二是红绿灯感知需要应对各种环境,包括天气和光照。最后是红绿灯的制式非常多,包括距离、高度、横纵、信号状态等,红绿灯感知都需要识别。
  8. 基于深度学习的红绿灯感知模块:自动驾驶中使用深度学习进行红绿灯感知模块的构建,主要分为以下几步。
    (1)第一是相机选择和安装。相机选择需要注意几个重要的参数,一是相机的高动态比HDR要高于100db。第二是拍摄图像的分辨率要达到1080P,满足15pixel大小的灯能够看得到。在实际应用中,我们使用了两个Camera,叫双Camera,长短焦切换,六毫米适用于近距离。
    (2)第二是高精地图的交互。我们并不是把所有红绿灯识别算法都交给在线算法完成,这样做无法满足鲁棒性要求也加重算法负担,需要把一些固定信息交给高精地图去完成,算法只实现在线变化的一些因素。地图提供灯组3D坐标和交通含义,算法只看RoI区域,避免形状识别出错。
    (3)最后使用深度学习识别灯颜色的变化。主要分为检测和颜色分类两步。
    (4)实际使用过程中可能会更复杂。如上图所示,一条道路上有很多红绿灯,检测算法会把所有的灯都检测出来,地图会告知需要看几个灯,但是并不知道看哪几个灯。因此需要把对应关系匹配起来,需要做3D到2D的投影,投影又受到标定、定位、同步、地图等因素的影响,需要综合考虑才能解决好这个问题。
  9. Radar感知

    (1)上图右边是Radar的点云信号投影的成像。图中有很多的点,但是并不是所有的点都是障碍物,存在很大的噪音,需要进行鉴别。图中明显成一条线的点是对路边界金属栅栏的感知结果。因为金属的反射信号比较好,所以雷达点会成直线分布。基于该特征,可以用Radar反射信号来做高速路道路边缘栅栏的检测。
  10. 超声波感知

    (1)超声波只能进行近距离感知,并且无法感知具体的位置。
    (2)对无人驾驶来说,行驶过程中帮助并不大,更多的是用于倒车和特别近距离的感知。
    (3)上图给出了超声波感知的一个例子,我们在车上布了12个超声波传感器,每个超声波探头覆盖一个角度,大概检测到三米范围内的障碍物。
    (4)当某个地方有障碍物,传感器发送超声波,收到回波信号以后可以得到障碍物的距离信息,但是并不能确定在覆盖范围内哪个地方有障碍物

大三小学期进阶课程第三十二课:感知算法相关推荐

  1. 大三小学期进阶课程第二十九课:感知概貌

    第29课.感知概貌 人类开车与机器开车在感知上的区别 (1)感知是机器人学科的问题,机器人要做的即是像人类学习,但不是完全模仿,应做到扬长避短.例如飞机的飞行不需要和鸟的飞行一样,而是要根据自己的特性 ...

  2. 大三小学期进阶课程第二十课:Understand More on the MP Difficulty

    第20课.Understand More on the MP Difficulty EM是一个在已知部分相关变量的情况下,估计未知变量的迭代技术,EM的算法流程如下: (1)初始化分布参数: (2)重 ...

  3. 大三小学期进阶课程第十二课:apollo地图采集方案

    第12课.apollo地图采集方案 TomTom的移动测量车队通过配备有1台Velodyne激光雷达相机.1台360度全景相机.2台SICK雷达和兼容GPS/GLONASS的高精度天线的福特翼虎,让驾 ...

  4. 大三小学期进阶课程第二十一课:reinforcement learning and data driven approaches

    第21课.reinforcement learning and data driven approaches 解决规划问题,不能一上来就开始data driven,而是一步步来从rule based这 ...

  5. NeHe OpenGL第三十二课:拾取游戏

    NeHe OpenGL第三十二课:拾取游戏 拾取, Alpha混合, Alpha测试, 排序: 这又是一个小游戏,交给的东西会很多,慢慢体会吧   欢迎来到32课. 这课大概是在我所写作已来最大的一课 ...

  6. 大三小学期入门课程第六课:规划

    在规划中,我们通过结合高精度地图,定位和预测来构建车辆轨迹,规划的第一步是路线导航,侧重于如何从地图上的A前往B,在进行路线规划时,将地图数据作为输入并输出可行驶路径 轨迹规划的目标是生成免碰撞和舒适 ...

  7. 2021年大数据常用语言Scala(三十二):scala高级用法 样例类

    目录 样例类 定义样例类 样例类方法 样例对象 样例类 样例类是一种特殊类,它可以用来快速定义一个用于保存数据的类(类似于Java POJO类),而且它会自动生成apply方法,允许我们快速地创建样例 ...

  8. HLS第三十二课(codingstyle )

    HLS中,C是用来描述硬件的,不是软件编程的,这是基本概念. 下面记录一些常用的C描述技巧. ++++++++++++++++++++++++++++++ 移位寄存器的描述. for(i = N - ...

  9. 第三十二课.脉冲神经网络SNN

    目录 时间驱动与事件驱动 时间驱动 事件驱动 基于时间驱动的脉冲神经元 spikingjelly:LIF神经元 实验仿真 时间驱动与事件驱动 时间驱动 为了便于理解时间驱动,我们可以将SNN(spik ...

  10. python第三十二课——队列

    队列:满足特点 --> 先进先出,类似于我们生活中的买票.安检 [注意] 对于队列而言:python中有为其封装特定的函数,在collections模块中的deque函数就可以获取一个队列对象; ...

最新文章

  1. 透彻理解高斯核函数背后的哲学思想与数学思想
  2. 11尺寸长宽 iphone_LED显示屏的尺寸规格计算方法
  3. python实现翻转给定列表中的元素
  4. Intro to Xamarin.Android Xamarin Android入门教程 Lynda课程中文字幕
  5. jeesit 可以用俩种导出
  6. Pr入门系列之十六:导出
  7. 3.STC15W408AS单片机GPIO
  8. 当天使爱上吸血鬼,上帝开始哭泣
  9. java面试(1)如何防止恶意攻击短信验证码接口
  10. 英雄联盟里,为什么要打一下,走一下
  11. 王茂斋拳架_王茂斋太极功(接近传奇,从读懂原著开始;吴式太极拳北派宗师王茂斋,门人杨禹廷、刘晚苍、王培生等名家辈出;《太极功源流支派论》《三十二目》)...
  12. 恋词题源报刊Unit5背诵
  13. 【机器学习|数学基础】Mathematics for Machine Learning系列之线性代数(10):向量组及其线性组合
  14. 【三维目标检测】Pointpillars(一)
  15. 关于计算机重新启动处于挂起状态的问题解决
  16. 如何用计算机测摄像头信号,如何使用ping命令测试网络摄像头连通性?这篇文章告诉你...
  17. Android测试教程10--monkey Test
  18. ABAP 拼接PDF
  19. 在Windows下开发调试PySpark
  20. 平行线判断函数+求平行线之间的距离

热门文章

  1. 植被覆盖指数计算教程(ENVI)
  2. 基于STM32的小游戏——谷歌小恐龙(Chrome Dino Game)
  3. 科幻小说《霜与火》 by 雷·布雷德伯里
  4. Mlp-Mixer 阅读笔记
  5. html中动态添加元素属性值,JavaScript实现动态添加、移除元素或属性的方法分析...
  6. win10的计算机 桌面图标不见了怎么办,教你win10桌面我的电脑图标不见了怎么办...
  7. 《守望先锋》架构设计与网络同步 -- GDC2017 精品分享实录
  8. websocket传输数据大小限制_WebSocket传输超过126字节数据的方法
  9. 152位高校教师接龙晒工资,给打算入高校的博士们参考!
  10. 最小割集stoer_wagner算法