[自动驾驶技术]-3 感知系统之任务和算法

感知任务

自动驾驶中的感知任务是指从传感器获取的数据中提取有关周围环境的信息,包括道路、障碍物、交通标志、行人等,对于自动驾驶系统来说至关重要,因为它们提供了车辆在道路上行驶所需的基础信息。那么感知任务究竟要完成哪些具体的Tasks?

自动驾驶感知阶段核心任务是需要完成对环境感知和对自身的感知。

1 环境感知

这一类任务主要涉及对周围环境的感知和理解,包括车道识别、行人和物体识别、交通信号标志识别、障碍物识别以及其他车辆识别。在这些基本识别任务的基础上,需要进行道路场景分析和语义理解,以更好地理解驾驶环境的复杂性;此外,对其他车辆、行人、物体进行属性识别和运动模式识别,以预测它们的行为和未来轨迹;还需要对环境中的异常情况进行检测,如道路工程、交通事故等,以及及时地应对和规避这些异常情况。

具体子任务拆解如下:

1)道路检测与车道线检测

  • 道路边界检测:识别道路边界,确定车辆可行驶区域。
  • 车道线检测:检测并跟踪车道线,包括实线、虚线等,以维持车辆在车道内行驶。

2)障碍物检测与跟踪

  • 静态障碍物检测:识别道路上的静态障碍物,如停车车辆、建筑物等。
  • 动态障碍物检测:识别道路上的动态障碍物,如行人、其他车辆等。
  • 障碍物跟踪:跟踪检测到的障碍物,以预测其未来运动轨迹。

3)交通标志识别

  • 交通标志检测:识别并检测道路上的交通标志,如限速标志、停车标志等。
  • 交通标志分类:对检测到的交通标志进行分类,确定其含义和对车辆行驶的影响。

4)行人和自行车检测

  • 行人检测:识别并检测道路上的行人,以确保安全行驶。
  • 自行车检测:识别并检测道路上的自行车,以便避免碰撞和保持安全距离。

5)车辆检测与跟踪

  • 前方车辆检测:检测并识别车辆前方的车辆,以避免碰撞和保持安全距离。
  • 车辆跟踪:跟踪检测到的车辆,以预测其未来运动轨迹和行为。

6)场景理解与语义分割

  • 场景理解:通过分析图像和传感器数据,理解道路场景的复杂结构和语义含义。
  • 语义分割:将图像分割成不同的语义区域,如道路、建筑物、行人等,以提高对环境的理解和感知精度。

7)物体属性识别

  • 车辆属性识别:识别周围车辆的类型、大小、颜色等属性信息。
  • 行人属性识别:识别行人的姿态、动作、年龄等属性信息。

8)运动模式识别

运动模式识别:识别其他车辆、行人的运动模式,如加速、减速、变道等,以预测其未来行为。

9)环境异常检测

环境异常检测:识别并检测异常情况,如道路工程、交通事故等,以采取相应的应对措施。

10)光照和天气条件检测

  • 光照检测:检测光照条件,如白天、夜晚、阴天等,调整感知算法参数和策略。
  • 天气条件检测:检测天气条件,如雨雪、雾霾等,调整车辆行驶策略和速度。

2 自身感知

这一类任务主要涉及自身车辆的定位、对环境建模和地图构建,以及识别出自身车辆的位置。

定位任务通过使用全球定位系统(GPS)、惯性导航系统(INS)等传感器,确定车辆在地图上的准确位置。对环境建模和地图构建涉及将来自传感器的数据与高精度地图数据进行整合,以构建车辆周围环境的三维模型;最后,识别出自身车辆的位置,包括其在道路上的位置、姿态和运动状态。

具体子任务拆解如下:

1)环境建模与地图构建

  • 环境建模:基于传感器数据构建周围环境的三维模型,包括道路、障碍物、交通标志等。
  • 地图构建:利用传感器数据和车辆运动信息生成高精度地图,用于定位、路径规划等任务。

2)定位与自我定位:

  • 定位:确定车辆在地图上的准确位置,包括全球定位系统(GPS)定位、视觉里程计等。
  • 自我定位:通过感知数据和地图信息估计车辆的自身姿态和运动状态。

总结下,感知的目标是获得运动物体和静态环境的状态信息,以协助下一阶段的预测规划任务。

对环境感知的所有子任务可以合并为两个大类:

  • 图像处理任务(摄像头数据和激光雷达点云数据),主要包括分割,检测和跟踪三个子类任务。
  • 毫米波雷达和超声波传感器数据处理任务,获得物体的速度位置等信息。

对自身的感知除了需要对环境建模,还需要结合GPS、IMU、高精地图HD Map共同实现。

感知算法

1)道路检测与车道线检测

传统算法

  • 道路边界检测:边缘检测算法(如Canny边缘检测)、霍夫变换(Hough Transform)。
  • 车道线检测:基于图像处理的线检测算法(如霍夫变换)。

深度学习算法

  • 道路边界检测:FCN (Fully Convolutional Networks)、U-Net、DeepLab。
  • 车道线检测:CNN (Convolutional Neural Networks)、FCN、U-Net。

2)障碍物检测与跟踪

传统算法

  • 静态障碍物检测:背景建模、移动物体检测算法(如Gaussian Mixture Models)。
  • 动态障碍物检测:帧间差分、运动检测算法(如Lucas-Kanade光流)。
  • 障碍物跟踪:卡尔曼滤波、Mean Shift。

深度学习算法

  • 静态障碍物检测:YOLO (You Only Look Once)、Faster R-CNN、Mask R-CNN。
  • 动态障碍物检测:YOLO、Faster R-CNN、Mask R-CNN。
  • 障碍物跟踪:Deep SORT、SORT (Simple Online and Realtime Tracking)。

3)交通标志识别

传统算法

  • 交通标志检测:Haar级联检测器、色彩特征+形状特征结合的方法。
  • 交通标志分类:特征提取+传统机器学习算法(如SVM、决策树)。

深度学习算法

交通标志检测与分类:CNN、YOLO、Faster R-CNN、SSD (Single Shot MultiBox Detector)。

4)行人和自行车检测

传统算法

Haar级联检测器、HOG (Histogram of Oriented Gradients) + SVM。

深度学习算法

CNN、YOLO、Faster R-CNN、SSD。

5)车辆检测与跟踪

传统算法

  • 前方车辆检测:Haar级联检测器、背景建模+运动检测。
  • 车辆跟踪:卡尔曼滤波、Mean Shift。

深度学习算法

  • 前方车辆检测:YOLO、Faster R-CNN、SSD。
  • 车辆跟踪:Deep SORT、SORT。

6)场景理解与语义分割

传统算法

  • 场景理解:图像分割算法(如分水岭算法、GrabCut算法)。
  • 语义分割:基于纹理、颜色、形状等特征的方法。

深度学习算法

场景理解与语义分割:FCN、DeepLab、PSPNet (Pyramid Scene Parsing Network)。

7)物体属性识别

传统算法

特征提取+传统机器学习算法(如SVM、决策树)。

深度学习算法

CNN、ResNet、VGG。

8)运动模式识别

传统算法

运动学模型(如加速度、速度、角度的变化)、有限状态机。

深度学习算法

RNN (Recurrent Neural Networks)、LSTM (Long Short-Term Memory)、GRU (Gated Recurrent Unit)。

9)环境异常检测

传统算法

基于规则或统计方法的异常检测算法、异常点检测算法。

深度学习算法模型

Autoencoder、Variational Autoencoder、GANs (Generative Adversarial Networks)。

10)光照和天气条件检测

传统算法

  • 光照检测:基于图像直方图、颜色空间转换的方法。
  • 天气条件检测:基于图像处理和特征提取的方法。

深度学习算法

CNN、ResNet、VGG。

11)环境建模与地图构建

传统算法

  • 环境建模:点云处理算法(如ICP:Iterative Closest Point),SLAM(Simultaneous Localization and Mapping)算法,如ORB-SLAM、LSD-SLAM。
  • 地图构建:栅格地图构建算法,如栅格滤波、卡尔曼滤波;分段地图构建算法,如分段匹配、分段滤波。

深度学习算法

  • 环境建模:PointNet、PointNet++用于点云处理,Deep SLAM模型(基于深度学习的SLAM系统)。
  • 地图构建:深度学习辅助的SLAM(如DeepSLAM),图卷积网络(Graph Convolutional Networks,GCNs)用于地图构建和更新。

12)定位与自我定位

传统算法

  • 定位:GPS + 惯性导航系统(如卡尔曼滤波融合),视觉里程计(Visual Odometry),如基于特征点的VO算法。
  • 自我定位:扩展卡尔曼滤波(Extended Kalman Filter,EKF),非线性优化方法,如Bundle Adjustment。

深度学习算法

  • 定位:深度学习在视觉里程计中的应用,如CNN-VO、LSTM-VO,深度学习融合传感器数据,如GPS和IMU的融合网络。
  • 自我定位:深度强化学习方法,如使用深度Q网络(DQN)进行自我定位,端到端学习的自我定位方法,如End-to-End SLAM。

总结下,实际应用中我们并不需要针对每个子任务都使用对应的算法实现,而是将以上所有子任务对应的算法(主要关注深度学习算法)参照上一节子任务合并的方式进行规整,以便于梳理出主流的感知算法模型,避免重复计算。现阶段头部厂商直接针对融合传感器原始数据后的数据,采用一张神经网络模型大网进行数据计算,得到针对多头任务的输出,例如Tesla的HydraNet。

  • 分割和检测:PSPNet , Mask-RCNN
  • 目标检测:基于图片检测Faster R-CNN,YOLO;基于激光点云检测BEV-PointNet++
  • 物体跟踪:Deep SORT

(笔者没有实践过自动驾驶深度学习算法模型,以上为自研学习结果,如有错误或者更详细合适的说明,欢迎补充,笔者将不甚感激。之后待笔者通过实际项目实践过,笔者将更新算法此部分内容)

  • 18
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
自动驾驶软件架构和感知融合方法是实现自动驾驶功能的关键技术。下面分别介绍它们: 1. 自动驾驶软件架构: 自动驾驶软件架构通常采用分层结构,将复杂的自动驾驶功能划分为多个模块,每个模块负责特定的任务。以下是常见的自动驾驶软件架构层级: - 高层决策与规划:负责制定车辆的高级决策和路径规划,考虑到目标、环境、交通规则等因素。 - 中层控制:负责将高层决策转化为具体的控制指令,例如车速、转向角度等。 - 低层执行:负责执行中层控制指令,控制车辆的加速、制动、转向等动作。 在这种分层架构中,不同层级之间通过接口进行数据传递和通信,实现了任务的分工和协同工作。 2. 感知融合方法: 感知融合是将来自多个传感器的数据进行集成和处理,以提取准确的环境感知信息。以下是常见的感知融合方法: - 传感器数据融合:将来自多个传感器的数据进行融合,以获得更全面和准确的环境信息。融合方法可以包括传感器数据校准、数据关联、数据融合算法等。 - 特征提取与融合:从不同传感器中提取特征,并进行融合。例如,从相机图像中提取车辆位置和行人位置,从激光雷达数据中提取地面高度和障碍物位置等。 - 目标跟踪与识别:通过融合多个传感器的数据,实现对动态物体(如车辆、行人)的跟踪和识别。使用机器学习和计算机视觉技术,将来自不同传感器的信息进行综合判断,提高目标识别和跟踪的准确性。 - 环境建模与地图更新:通过感知融合方法,将来自传感器的数据用于环境建模和地图更新。使用融合后的感知数据,可以构建更精确的地图,为自动驾驶系统提供更准确的环境感知信息。 这些自动驾驶软件架构和感知融合方法相互配合,共同实现了自动驾驶系统的功能。自动驾驶软件架构将复杂的功能划分为多个模块,实现任务的分工和协同。感知融合方法通过融合多个传感器的数据,提取准确的环境感知信息,为自动驾驶系统提供准确的输入。这些技术的应用使得自动驾驶车辆能够更安全、准确地感知环境并做出决策。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值