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

    文章

    4484

    浏览量

    91445
  • 模型
    +关注

    关注

    1

    文章

    3229

    浏览量

    48813
  • 机制
    +关注

    关注

    0

    文章

    24

    浏览量

    9782

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

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

收藏 人收藏

    评论

    相关推荐

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

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

    浅析SDIO协议V2V3版本的区别

    SDIO(Secure Digital Input/Output)协议V2V3在多个方面存在显著的区别,这些区别主要体现在功能支持、硬件要求、安全性以及支持的协议等方面。以下是对这些区别的详细分析
    发表于 09-18 08:32

    如何通过SDK功能获取esptouch v2 apk的自定义数据?

    嗨,我使用 esptouch v2 apk 来配置网络。我在 esptouch v2 apk 的自定义数据帧中输入 mqqt 数据,然后按确认键。同时,给ESP8266板上电,ESP8266开始
    发表于 07-15 07:20

    SC171开发套件V2 威廉希尔官方网站 资料

    SC171开发套件V2 威廉希尔官方网站 资料 课程类别 链接 硬件平台介绍及使用(SC171开发套件V2 ) https://bbs.elecfans.com/jishu_2422919_1_1.html 安卓
    发表于 05-10 16:47

    产品简介 | RZ/V2系列MPU

    产品简介 | RZ/V2系列MPU
    的头像 发表于 05-08 08:06 437次阅读
    产品简介 | RZ/<b class='flag-5'>V2</b>系列MPU

    深度解读RoCE v2的核心威廉希尔官方网站 原理

    RoCE v2是一种专为实现以太网环境下低延迟、高吞吐量数据传输而设计的RDMA协议。相较于涉及多重处理层次的传统数据传输方式,RoCE v2实现了系统间的直接内存访问机制,最大限度地减少了CPU的参与和降低通信延迟。
    发表于 04-29 10:32 4759次阅读
    深度解读RoCE <b class='flag-5'>v2</b>的核心威廉希尔官方网站
原理

    CMSIS-RTOS V1与V2的区别是什么?

    最近的学习FreeRTOS,看到STM32CubeMX分别用CMSIS-RTOS V1,V2进行封装,请教CMSIS-RTOS V1与V2的有什么区别?如果用在产品项目,哪个版本合适?
    发表于 04-11 06:06

    硬件平台介绍及使用(SC171开发套件V2

    硬件平台介绍及使用(SC171开发套件V2) 课程类别 课程名称 视频课程时长 视频课程链接 课件链接 硬件 SC171开发套件V2开箱 9分45秒 https://t.elecfans.com/v
    发表于 04-09 15:34

    stlink v2无法连接上stm32 stlink unility的原因?

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

    使用ST-link V2的过程中电脑插入读卡器设备后无法正常识别ST-link V2的原因?

    配合cubeIDE使用一切正常,电脑插入读卡器设备后无法正常识别ST-link V2,但在电脑的设备管理器中还是可以找到ST-link,同时升级ST-link还可以正常操作,目前我只能拔掉读卡器设备后通过重启电脑来解决这个问题!
    发表于 03-11 06:30

    荣耀Magic V2 RSR保时捷设计亮相MWC 2024巴塞罗那全球发布会

    近日,荣耀Magic V2 RSR 保时捷设计亮相 MWC 2024 荣耀巴塞罗那全球发布会。作为全球首款保时捷设计折叠屏手机,荣耀Magic V2 RSR保时捷设计外观时尚、轻巧,重量为234克、闭合态厚度为9.9毫米。
    的头像 发表于 02-29 10:32 1150次阅读

    大模型系列:Flash Attention V2整体运作流程

    基于1.1中的思想,我们在V2中将原本的内外循环置换了位置(示意图就不画了,基本可以对比V1示意图想象出来)。我们直接来看V2的伪代码(如果对以下伪代码符号表示或解读有疑惑的朋友,最好先看一下
    的头像 发表于 02-21 11:38 1960次阅读
    大模型系列:Flash Attention <b class='flag-5'>V2</b>整体运作流程

    使用uio Stick v2升级uIO-Stick_Firmware后无法连接怎么解决?

    使用uio Stick v2(不是uio Stick),通过config wizard for smart power switches工具控制SPOC系列智能功率开关,使用时通过updata
    发表于 01-26 07:06

    LT8228从V1到V2是BUCK模式,从V2V1是BOOST模式,请问这个模式是固定的吗?

    看LT8228的示例,从V1到V2是BUCK模式,从V2V1是BOOST模式,请问,这个模式是固定的吗? 假如我输入V1是48
    发表于 01-05 07:10

    GD-Link V2适配器用户指南

    电子发烧友网站提供《GD-Link V2适配器用户指南.pdf》资料免费下载
    发表于 01-03 17:30 2次下载
    GD-Link <b class='flag-5'>V2</b>适配器用户指南