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

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

3天内不再提示

车道线检测Ultra Fast Deep Lane Detection V2讲解

jf_pmFSk4VX 来源:GiantPandaCV 2023-01-05 11:29 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

Ultra Fast Deep Lane Detection V2

【GiantPandaCV 导语】Ultra Fast Deep Lane Detection 是个比较有特点的车道线检测模型,把检测转化成分类来实现。现在出了 V2,有了几个创新点,于是又来研究一下。之前参考 Ultra Fast Deep Lane Detection V1 设计了一个全新的车道线检测网络,把模型压缩了80%,并部署使用了。另外还把 v1 和 yolov4 合并实现了多任务:https://github.com/Huangdebo/YOLOv4-MultiTask

1 介绍

这篇文章提出了一个超快车道线检测,区别于之前基于分割和回归的模型,该模型把车道线检测看车是分类问题,而且使用了全连接层,加强了模型的全局感知能力。另外,本文还设计了一个混合锚点机制,对不同的车道使用不用的锚点,很好地解决了两侧车道检测性能不佳的问题。该模型在兼顾了速度的前提下,还很好地处理了遮挡和暗光等情况,取得了不错的性能。

7cbfdda8-8c5d-11ed-bfe3-dac502259ad0.png

2 模型设计

2.1 使用锚点来表示车道线

7cd0bf74-8c5d-11ed-bfe3-dac502259ad0.png

为了表示车道线,首先引入了横向锚点,把车道线看车横向锚点的一组关键点。但当两侧的车道线的水平角度比较小时,便会引起定位问题,也就是一定宽度的车道线会覆盖到多个关键点,导致定位错乱,而且角度越小,问题越严重:

7cda8f18-8c5d-11ed-bfe3-dac502259ad0.png

为了解决上述的定位错误问题,文章便提出一种混合锚点机制,中间水平角度大的车道线使用横向锚点来表达,两侧水平角度小的车道线用纵向锚点来表达。每条车道线都用一组归一化坐标来表示

7ce13160-8c5d-11ed-bfe3-dac502259ad0.png

2.2 基于锚点的网络设计

因为每条车道线都用一组归一化坐标来表示,而且是把车道线检测看成分类任务,于是可以通过类别数目来映射出每个车道线关键点的类别:

7ce75c7a-8c5d-11ed-bfe3-dac502259ad0.png

另外,网络还添加了一个分支,用来判别车道线在该处是否存在。该分支的目标就只有两个值:1和0,分别代表存在和不存在:

7cf11918-8c5d-11ed-bfe3-dac502259ad0.png

7cfaf08c-8c5d-11ed-bfe3-dac502259ad0.png

2.3 序列分类的损失函数

既然是分类任务,那自然就会想到使用基本的分类损失函数,相当于把关键点的不同位置看成不同的类别,直接用 CE loss 来表达:

7d038f76-8c5d-11ed-bfe3-dac502259ad0.png

于基本的分类不一样的是,这个位置的类别是有序的,也就是可以把这个位置的预测值看成是各个位置的投票 均值,越靠近 groundtruth 的地方投票值越大,可以缓解预测偏移的问题:

7d0bca2e-8c5d-11ed-bfe3-dac502259ad0.png

7d149f46-8c5d-11ed-bfe3-dac502259ad0.png于是,可以这个期望损失可以表达成:

7d1ff9a4-8c5d-11ed-bfe3-dac502259ad0.png

另外,对于网络另一个用以判别车道线是否存在的分支,就是一个二分类问题,其损失函数可以表达成:

7d282106-8c5d-11ed-bfe3-dac502259ad0.png

所以整个模型的损失函数便可以组成:7d31e3a8-8c5d-11ed-bfe3-dac502259ad0.png

3 消融实验

3.1 混合锚点机制的作用

混合锚点机制中包含了横向锚点策略和纵向锚点策略,针对不同的车道线,使用不同的策略。为了对比混合锚点机制的作用,作者分别单独使用横向锚点策略和纵向锚点策略以及混合锚点来进行对比:

7d37de2a-8c5d-11ed-bfe3-dac502259ad0.png

3.2 序列分类的作用

相比于基本的分类任务,文章中所用的序列分类还利用了车道线关键点位置的有序性。为了对比序列分类的作用,作者还使用了传统分类和回归的方式来比对。对于回归方式,则是把网络的分类头换成回归头,并用 smooth L1 los 来训练。实验表明,利用了关键点有序性的序列分类的性能明显优于一般的分类和回归方式:

7d3ec15e-8c5d-11ed-bfe3-dac502259ad0.png

3.3 序列分类损失的消融

序列分类的损失函数包含了两部分,一个是基本的分类损失和一个期望损失。作者也进行了消融实验来对比它们的作用:

7d47b7fa-8c5d-11ed-bfe3-dac502259ad0.png

3.4 类别的个数和锚点数量的影响

因为是把车道线的位置检测看成是关键点位置的分类,那久必须要设定一个类别数目,作者通过调整类别数目来做对比实验,发现随着类别数目的增加,模型的性能显示提升然后再下降,说明类别数目并不是越多越好。同样,锚点的数量也需要预先设定,原则上讲,锚点数量越多,对车道线的检测就越精细,但也意味着计算量也更大,所以必须要在模型速度和性能上做一个权衡。

7d579cce-8c5d-11ed-bfe3-dac502259ad0.png

4 结论

使用了混合锚点机制和序列分类损失,缓解了 V1 中两侧车道线检测性能不足的问题,而且还能保持一样的高效率。但锚点的数目和序列分类的数目丢等参数都需要手动设定,可能存在一定的数据相关性。而且网络最后一层使用的是全连接层来提升网络的感知能力,导致参数比较大,对工程部署不太友好,这些都是可优化的点。

审核编辑 :李倩


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

    关注

    5

    文章

    4794

    浏览量

    93808
  • 模型
    +关注

    关注

    1

    文章

    3655

    浏览量

    51753
  • 机制
    +关注

    关注

    0

    文章

    24

    浏览量

    10006

原文标题:车道线检测 Ultra Fast Deep Lane Detection V2 讲解

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

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    RDMA设计5:RoCE V2 IP架构

    上面分析,基于RoCE v2 高速数据传输IP 的高速传输应用整体架构如图 1 所示。 图1 基于RoCE V2 IP应用的系统整体架构图 它通过 QSFP28 接口连接上位机进行
    发表于 11-25 10:34

    思尔芯原型验证系统助力昆明湖V2成功启动GUI OpenEuler

    近日,开芯院团队同思尔芯(S2C)在新一代原型验证系统S8-100上成功完成对双核RISC-V处理器“昆明湖V2”的关键系统验证工作。在验证过程中,“昆明湖V2”在思尔芯S8-100平
    的头像 发表于 11-19 11:10 451次阅读
    思尔芯原型验证系统助力昆明湖<b class='flag-5'>V2</b>成功启动GUI OpenEuler

    【Milk-V Duo S 开发板免费体验】5 - 使用YOLOv11进行目标检测

    引言 前面已经完成了Milk-V Duo S开发板的基本功能测试,今天来尝试一下使用YOLOv11进行目标检测。 TDL-SDK Cvitek 所提供的 TDL(Turnkey Deep
    发表于 07-24 14:57

    RDMA over RoCE V2设计1:为什么要设计它?

    基于PC-PC或GPU-GPU之间RDMA设计已有较多厂商投入,虽然有的大厂投入几年后折羽而归,但不影响PC领域成熟应用产品的推广。这里主要讨论在FPGA上设计RDMA over RoCE V2,虽然已有xilinx的ernic应用,但是性价比以及国产化需求还是有其发展空间。
    的头像 发表于 07-15 10:58 519次阅读
    RDMA over RoCE <b class='flag-5'>V2</b>设计1:为什么要设计它?

    3-521057-2 Ultra-Fast 快速断开连接器现货库存

    3-521057-2 Ultra-Fast 快速断开连接器现货库存3-521057-2是由 TE Connectivity 生产的一种Ultra-Fast快速断开连接器。设计精巧,具备
    发表于 06-04 09:08

    CYPD4266+TUSB1064实现USB3.0 UFP 2lane +DP 2lane传输遇到的问题求解

    我们在使用CYPD4266+TUSB1064 实现USB3.0 UFP 2lane +DP 2lane 传输, 1.当DP mode Parameters ->Modes
    发表于 05-21 06:15

    HarmonyOS Next V2 @Local 和@Param

    HarmonyOS Next V2 @Local 和@Param @Local 背景 @Local 是 harmony 应用开发中的 v2 版本中 对标**@State**的状态管理修饰器,它解决了
    的头像 发表于 04-02 18:27 856次阅读
    HarmonyOS Next <b class='flag-5'>V2</b> @Local 和@Param

    HarmonyOS Next V2 @Monitor 和@Computed

    HarmonyOS Next V2 @Monitor 和@Computed @Monitor 介绍 @Monitor 是状态把管理 V2 版本中的用于监听状态变量修改的技术。 它可以直接用在
    的头像 发表于 04-02 18:26 645次阅读

    HarmonyOS Next V2 @Event

    HarmonyOS Next V2 @Event 背景 在上一节中,我们针对父子组件,讲了关于传递数据的知识。我们了解到 @Local 是管理自己内部的数据的, @Param 是负责接收父组件的数据
    的头像 发表于 03-31 09:42 625次阅读

    stlink v2为什么无法连接上stm32 stlink unility?

    stlink v2无法连接上stm32 stlink unility
    发表于 03-14 08:51

    STM2cubeide使用Freertos v2提示错误怎么解决?

    我一直以为st公司是一个严谨,优秀的公司,直到我遇到了stm32cubeide使用了freertosv2 。 为什么我把freertos调成版本v2建一个任务和消息队列 ,freertosv2提示
    发表于 03-12 07:33

    微软OmniParser V2:大模型转化为计算机智能体

    )以及Anthropic(Sonnet)等,转化为“计算机使用智能体”(Computer Use Agent)的能力。 与前一版本相比,OmniParser V2检测更微小、可交互的元素时展现出了更高
    的头像 发表于 02-18 09:31 2692次阅读

    微软OmniParser V2发布:大模型转化为计算机智能体

    显著提升。在检测更微小、可交互的元素时,V2展现了更高的精度和更快的推理速度。这一提升得益于V2采用了更大规模的交互元素检测数据集和图标功能描述数据
    的头像 发表于 02-17 14:35 2955次阅读

    SAM IoT Wx v2硬件用户指南

    电子发烧友网站提供《SAM IoT Wx v2硬件用户指南.pdf》资料免费下载
    发表于 01-21 14:02 0次下载
    SAM IoT Wx <b class='flag-5'>v2</b>硬件用户指南

    【实战】Python+OpenCV车道线检测识别项目:实现L2级别自动驾驶必备(配套课程+平台实践)

    的一个必备技能——车道线检测。本文将详细介绍一个车道线检测项目的过程,从图像采集到
    的头像 发表于 12-16 15:42 1484次阅读
    【实战】Python+OpenCV<b class='flag-5'>车道</b><b class='flag-5'>线</b><b class='flag-5'>检测</b>识别项目:实现L<b class='flag-5'>2</b>级别自动驾驶必备(配套课程+平台实践)