0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

ADAS系统中的可行使区域Freespace到底如何检测?

jf_C6sANWk1 来源:焉知汽车 2023-11-15 15:53 次阅读

自动驾驶有可能大大减少交通事故、道路拥堵以及相关的经济损失。安全的自动驾驶需要检测周围的障碍物、移动物体并识别可驾驶区域。对于城市驾驶的所有附近物体以及高速公路驾驶的远处物体都必须执行此操作。当前的自动驾驶汽车通常会结合使用雷达、激光雷达、摄像头、高精度 GPS 和先前的地图信息来确定汽车周围的障碍物和路面上的安全行驶区域。

自由空间检测Freespace为自动驾驶车辆提供了对环境的信息感知。对于Freespace来说,最好的传感器检测方式是Velodyne 多光束激光传感器。这种高性能传感器能够对物体以及可行驶表面进行检测和分类。但是鉴于成本关系,要在自动驾驶领域大量普及显得不太可能。基于视觉的系统可以通过提供远距离物体和路面检测和分类来补充其他传感器。但是,视觉传感器在雨、雾和雪中的性能会显着下降,限制了其在晴朗天气下的适用性。

当然,这几十年来,基于图像处理的研究一直在扩展到解决道路分割问题。早期的方法,包括 FCN和 SegNet,提出了编码器-解码器架构,其中编码器可以生成多个尺度的特征图,解码器可以提供高预测精度的像素级分类。RBNet研究道路结构与其边界布置之间的上下文关系。RBA使用由反向注意力和边界注意力单元组成的残差细化模块。除了基于低级特征的算法之外,鉴于深度卷积神经网络最近在计算机视觉任务中取得的成功,DNN 成为解决自动驾驶中感知挑战的良好候选者。

此外,业内也还进行了许多其他的尝试,比如利用深度CNN 解决分割问题的研究,CNN 应用于自动驾驶感知任务的工作已经产生了专门的网络,可以检测摄像头画面中的其他车辆和车道,并且已经通过将自由空间问题视为语义分割的任务进行研究。然而,可能的道路障碍物和道路结构的多样性使得针对每种可能的障碍物和道路场景训练特定网络变得不切实际。特别是,获得涵盖所有可能场景的训练数据将非常困难。相反,采用更通用的检测器来确定可以安全行驶的自由路面Freespace将比检测道路目标语义显得更加实用。

本文将重点介绍两类不同类型的可行使区域检测方案。

基于占据网格的Freespace检测

典型的可行使区域检测方法是通过占据网格图Occupancy Grid Map 的方式进行,占据网格图OGM是将区域分割为格子状,并通过分配给各各自单元的随机变量判别假设的方法。OGM是多个传感器输出的综合判定,由于与路径规划的搜索算法具有高度亲和性,在业内被用来作为可行使区域的有效代表。

如下图,首先通过各传感器对场景对象进行检测,期间,需要对各个传感器检测结果的置信度进行估计,随后需要对如上得出的可行使区域检测估计结果进行最大似然估计,从而更新占据网格信息。在这个更新过程中,通常需要使用先前累积的先验地图进行分析。

wKgZomVUeUaAYJr_AALtBCniMbw159.jpg

在占据网格图OGM生成网格图过程中,需要根据给定的数据计算映射的事后概率如下:

wKgZomVUeUaAdqyQAAAKTSO538A292.jpg

m表示地图,即到特定时刻为止传感器的全部观测量,*表示该特定时刻为止时,本车移动具体轨迹。例如,在100x100单元的地图中,由于各单元具有确定性占有/可能性占有两种状态。对于这样非常高维度的空间处理,若推定如上公式的后验概率,则需要大量的计算量。估计地图m的时候概率问题,替换为推定各小区后验概率的问题,此时,各小区后验概率如下:

wKgZomVUeUaAZ-1YAAAKvzum1H4740.jpg

这种表示方式中,m表示具有索引单元格的网格图,映射m是各个单元mi的集合。

wKgaomVUeUaATpzsAAAHzBf_vr4281.jpg

此时,用上式可以映射出后验概率如下:

wKgaomVUeUaAI5UVAAARWc07UvY240.jpg

通过对如上后验概率的推断,可以得出相应的可行驶区域位置。

对于如上定义的传感器可靠性组合方法进行叙述。考虑传感器可靠性在不同场景应用下的概率可以用如下方程进行计算。

wKgaomVUeUaAPo3NAAAqDRnJJEk449.jpg

通过对各传感器进行综合推断,可以更新OGM的后验概率。

一般来说,在整合各传感器输出时,在对每个传感器生成OGM时,使用了将OGM彼此融合的方法。但是,在该方法中,由于需要生成与使用传感器数目相当的OGM。因此如果传感器数目增加,则存储器负荷和计算量也将增加。因此,较好的方法是不为每个传感器生成OGM,而是在传感器数据处理期间就进行融合运算生成对应共同的OGM。采用由各个传感器输出逐次更新的方法,由此能够更加高效的更新OGM。如下图表示了更新不同传感器的时间戳OGM。

wKgaomVUeUaAU0aEAACBAGAHe7U256.jpg

基于 GoogLeNet 的网络

和 OverFeat 架构检测自由路面

另一种可行驶区域的检测方法是通过训练一个基于 GoogLeNet 和 OverFeat 架构的网络来检测高速快速公路环境中的自由路面。经过训练的网络在自由空间检测任务上表现非常出色。这将有可能基于计算机视觉的传感器用作自动驾驶汽车可行使区域检测,包括对一般障碍物的检测和安全驾驶区域的检测。

在本文中,网络的任务是在给定单个 640 x 480 分辨率相机帧的情况下检测自由路面。图像的每个 4 x 4 像素非重叠块被分类为自由路面或非自由路面。如果某个斑块包含车辆可以安全行驶的道路部分,则该斑块应被归类为自由路面。某些特定情况下,补丁如果不包含障碍物,例如另一辆车,或车辆无法行驶的表面,例如人行道/路肩,那对应的道路空间将不被定为可行使区域。

该数据集由 30 多个小时的 1 兆像素分辨率视频组成,由在湾区高速公路上行驶的车辆上的前置摄像头录制,相应的数据用车道和汽车标签进行提前标注。

wKgZomVUeUaAWnkTAAJazDpIekk631.jpg

**图 1. **数据集中车道标签示例。80 米内的所有车道标记均已标记,该场景下无论遮挡情况

车道标注(见图1)指示高速公路上距离车辆80米以内的所有车道的位置,包括被其他车辆遮挡的车道,车道标签是根据相机和激光雷达点云数据生成的。首先自动提取泳道,然后由人工标注人员进行检查和纠正。

wKgZomVUeUaAUPtqAAMmW_1Sq4I517.jpg

**图 2. **数据集中的汽车标签示例。100 米内所有完全可见和部分遮挡的车辆都标有边界框

汽车标注(见图 2)由车辆约 100 米内所有可见和部分遮挡车辆的边界框组成(最终组合标签见图 3)。汽车标签由人工标注团队通过 Amazon Mechanical Turk 生成。

wKgaomVUeUaADZ_fAAHJM29ElPY653.jpg

**图 3. **显示自由路面标签的汽车和车道标签组合示例。绿色阴影区域显示标记为自由空间的图像区域。

在此数据集中,自由驾驶空间定义为两个车道标签之间不包含车辆的区域。网络预计会产生一个像素掩模,该像素掩模指示与上面定义的相同区域作为自由空间。定性结果将显示试驾的道路图像,并标明可行驶的路面。同时将定量地根据正确分类的图像块的F1分数来评估结果。我们直观地预计网络性能会随着车辆前方距离的增加而降低。理想情况下,该网络将能够识别各种道路结构和各种障碍物类型中的自由路面。最终数据集包含 13,000 个训练图像,1,300 张验证图像和 1,300 张测试图像。

该网络使用修改后的 GoogLeNet风格网络来生成图像特征。修改后的网络遵循 GoogLeNet 架构,仅到平均池化层为止。平均池化对于图像网络 ImageNet 分类任务效果很好,但自由空间检测任务需要本地信息,而平均池化将激活量减少为单个激活向量时可能会丢失这些信息。

图像中自由空间的定位是通过修改后的 OverFeat架构完成的,输入图像特征如上面生成的。该自由空间的定位是通过对图像特征激活后执行大小维度为 1 x 1 卷积来完成的,然后使用类似的全连接层和 softmax 分类得到注意力权重,从而生成0-1之间的概率分布关系值。Softmax计算后,实际上之前较高的得分会被增强,而较低的得分则会被抑制或淹没。也就是说,较高的Softmax会保留模型中认为更加重要的图层,降低的得分则会淹没不相关的图层,将输出向量输出到线性层进行处理,以此来更快更精准的确定环境的类别。应该注意的是,图像特征激活对应体积下的空间维度相对于原始图像尺寸要小一些。因此,在图像特征激活体积的空间维度上执行分类相对于原始图像中的受检测分类所提供的可行驶区域定位会差很多。

为了解决这个问题,在全连接层中使用额外的深度通道来表示图像中的特定位置。例如,最终的softmax激活量空间维度为 20 x 15,其中每个位置代表原始图像中的 32 x 32 像素块。然而,每个空间位置的深度为 128,因为原始图像中每个 32 x 32 像素块内都有 8 x 8 个 4 x 4 像素的块,并且有 2 个类:自由空间和非自由空间。这使得自由空间补丁的定位能够达到更精细的分辨率,同时仍然能够从原始图像的较大补丁中获取上下文信息。

这里介绍的训练网络在检测高速公路环境中的自由路面方面取得了良好的效果。该网络在 Caffe 框架中实现,并进行了一些修改。该网络在单个 Nvidia GeForce GTX TITAN Black GPU 上进行训练。该网络使用在 ImageNet 上训练的 BVLC GoogLeNet 的权重进行初始化,并使用自由空间数据集进行微调。

这些结果是通过在 ImageNet 数据上预训练 GoogLeNet 风格的架构并使用自由空间数据进行微调来实现的。通过相对较少的训练(仅 60,000 次迭代),该网络就能够正确识别自由路面,同时将其他车辆指示为障碍物。该网络还能够区分道路边界和其他道路标记。

该模型采用动量为 0.9 的小批量随机梯度下降进行训练。初始学习率设置为 0.01,每 3200 减少 0.96迭代。最终模型经过 60,000 次迭代训练批量大小为 10,即 46 个 epoch。典型定性测试集的结果如图 4 和 5 所示。

wKgZomVUeUaAIcWrAAYhTB3smS4832.jpg

图 4. 红色阴影区域显示图像中该像素块的正确类别的 softmax 分数。该网络成功预测开放路面为空闲空间,同时指示卡车和其余车辆为非空闲空间。

图 5. 红色阴影区域显示图像中该像素块的正确类别的 softmax 分数。该网络成功地将开放路面预测为自由空间。请注意,尽管这两个区域在视觉上非常相似,但两侧的路肩并未标记为空闲。

以上两者测试图像显示,通过学习网络可以非常成功地将道路上的障碍物正确分类为非自由空间。它还成功区分了道路车道和路肩,即使这两个路面在视觉上非常相似。同时,该网络还可以随着车辆沿着道路曲线行驶过程中进行实时跟踪检测。

实际上,通过本文介绍的网络可以知道,局部像素信息不足以区分道路车道和路肩,因此较高级别的特征为了做出这种区分,网络层是必要的。随着其他车辆周围和道路边缘的检测变得更加清晰,网络可以进行定性区分。然而,这些改进并不能通过 F1 指标很好地衡量,因为它们只占用几个像素块。而这些细微的差异被大部分路面和主要包含天空和背景的图像顶部的大量正确分类所掩盖。

在未来的工作中,我们打算在更多不同的条件下收集更多的数据。特别是在城市情况下,涉及更多类型的障碍物,例如行人的语义区分。基于该实验结果,可以将该网络架构将扩展到更复杂的城市情况下的一般自由空间检测。

同时,必须制定更合适的量化指标,以更好地区分网络改进。在训练时,网络可以很快学会检测大部分空闲路面。在我们这里所用的数据集中,图像底部的大部分区域是自由路面,而图像顶部的大部分区域不是路面。

此外,更受人关注的区域是自由路面和非自由路面之间的边界区分。这种边界实际上需要进一步的模型训练,才能有助于网络在这些边界上做出更好的预测,最终在自由空间和障碍物或道路边缘之间提供非常清晰的边界。准确一点的说,在未来的工作中,道路模型学习网络的训练可能会把整个损失函数集中在边界上,而不是对所有像素块进行平均加权。因此,集中力量在自由空间边界上训练的学习网络将有可能会提供更好的结果。







审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 传感器
    +关注

    关注

    2537

    文章

    48928

    浏览量

    743826
  • 解码器
    +关注

    关注

    9

    文章

    1085

    浏览量

    40318
  • 编码器
    +关注

    关注

    42

    文章

    3462

    浏览量

    132267
  • ADAS系统
    +关注

    关注

    4

    文章

    226

    浏览量

    25598
  • 卷积神经网络

    关注

    4

    文章

    336

    浏览量

    11761

原文标题:行车篇 | ADAS系统中的可行使区域Freespace到底如何检测?

文章出处:【微信号:阿宝1990,微信公众号:阿宝1990】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    请问ADAS实际道路在线评测系统需要采集什么数据?

    ADAS实际道路在线评测系统需要采集什么数据?
    发表于 02-01 06:01

    自动驾驶多模态下的Freespace检测轻量化设计实现

    Freespace检测是驾驶场景理解的一部分,它将图像的每个像素分类为可驾驶或不可驾驶区域,通常通过图像分割算法来实现。
    的头像 发表于 01-12 11:22 1249次阅读
    自动驾驶<b class='flag-5'>中</b>多模态下的<b class='flag-5'>Freespace</b><b class='flag-5'>检测</b>轻量化设计实现

    使用ADAS1000遇到的问题求解答

    以波形的形式显示,与模拟器发出来的波形相对比,明显不同。模拟器发出的波形的QRS是向上的波形,而0x11数据波形QRS波形是向下的波形。 4、AC leadoff检测不到导联脱落,呼吸阻抗检测幅值
    发表于 12-20 08:14

    ADAS1000-3导联脱落的时候是如何被各个通道的比较器检测到的?

    ADAS1000-3集成芯片,在导联脱落检测的时候有些不太明白。我们用的是直流导联脱落检测。当导联脱落的时候是如何被各个通道的比较器检测
    发表于 12-19 07:11

    ADAS1000晶振不起振的原因?

    现有一个问题想请教一下,我使用ADAS1000-3搭配STM32进行单导心电电路的搭建,对ADAS1000进行初始化后用示波器测ADAS1000的外部晶振没有信号,即没有起振。请看一下ADAS
    发表于 12-19 06:12

    ADAS1000为什么检测不到数据?

    您好,我最近在使用ADAS1000做心电采集的项目,按照数据手册的配置,现在已经可以输出数据了,输出的数据和数据手册描述的一致,但是问题是,ADAS1000接上电极后检测不到信号,得到的数据仅是一些
    发表于 12-19 06:10

    ADAS1000检测信号时有杂波是怎么回事?如何消除?

    您好,我使用ADAS1000进行心电信号的检测,现在已经可以检测到模拟仪发出的信号,但是检测到的信号总是有如图中所示的杂波,直接对人体进行测试时,这种现象更严重,请问这是一种什么干扰,
    发表于 12-18 06:59

    介绍一种优化Freespace检测效能的智驾感知提升算法

    高级驾驶辅助系统ADAS)开发中最关键的问题之一是汽车周围环境的描述方式。环境可以分为动态和静态部分。
    的头像 发表于 12-14 09:51 368次阅读
    介绍一种优化<b class='flag-5'>Freespace</b><b class='flag-5'>检测</b>效能的智驾感知提升算法

    ExampleCode_ADC_ADAS3022的CFG配置代码无效是什么原因造成的?

    ADAS3022 的 CFG不生效问题,只安装默认状态工作, ExampleCode_ADC_ADAS3022 的 CFG 配置代码无效。
    发表于 12-14 07:37

    ADAS1000直流导联脱落检测LL检测不到是为什么?

    1000_ECGCTL, 0x81E00486); //配置呼吸测量模式 ADAS1000 WriteRegister(ADAS1000_RESPCTL,0x830037F9); //配置导联脱落检测模式
    发表于 12-11 06:43

    ADAS1000如何配置呼吸测量?

    ); //使能传输转换数据流[td]ADAS1000WriteRegister(ADAS1000_FRAMES, 0x40000000); 采集到的心电信号如下: 但呼吸信号始终不对,在帧控制
    发表于 12-11 06:18

    有能快速检测ADAS1000是否损坏的方法吗?

    使用8.000MHz,MCU使用STM32F103ZET6 我尝试写入ADAS1000的寄存器,再将其读出,很遗憾无论如何修改程序,读出的数据始终为0 所以我希望有一种快速检测ADAS1000是否损坏的方法,以找出问题来源
    发表于 12-04 06:34

    如何通过HIL测试系统ADAS验证

    本文分享的是一个案例,借助NI开放式、数据驱动型、软件互连的生态系统以及PXI功能,采埃孚能够开发可扩展的ADAS HIL系统,在满足未来需求的同时与测试项目的步伐保持一致。 目前,采埃孚的A
    的头像 发表于 11-27 09:52 397次阅读
    如何通过HIL测试<b class='flag-5'>系统</b>做<b class='flag-5'>ADAS</b>验证

    基于胃镜图像的病灶区域检测方法研究

    电子发烧友网站提供《基于胃镜图像的病灶区域检测方法研究.pdf》资料免费下载
    发表于 10-08 09:18 0次下载
    基于胃镜图像的病灶<b class='flag-5'>区域</b><b class='flag-5'>检测</b>方法研究

    介绍一种自动驾驶汽车可行区域和车道分割的高效轻量级模型

    本文介绍了TwinLiteNet:一种自动驾驶汽车可行区域和车道分割的高效轻量级模型。语义分割是自动驾驶理解周围环境的一项常见任务。
    发表于 08-03 14:20 1039次阅读
    介绍一种自动驾驶汽车<b class='flag-5'>中</b><b class='flag-5'>可行</b>驶<b class='flag-5'>区域</b>和车道分割的高效轻量级模型