论文笔记:RCLane: Relay Chain Prediction for Lane Detection

news2024/11/18 3:39:01

RCLane: Relay Chain Prediction for Lane Detection

  • 笔记摘要
  • 动机
  • 模型结构
  • 方法
  • 其他
  • 模型试验结果

笔记摘要

该篇论文的核心创新点在于head。论文根据车道线既需要局部信息,也需要全局信息才能很好拟合的特性,设计了相应的算法head。并且论文实验证明该方法在各大公开数据集上均取得了sota。
作者称这种方法为延迟链车道线检测方法(RCLane)。该方法通过记录每个点到前后两个点的距离,从而把握车道线的局部信息;再通过监督车道线的两端的端点,整体把握车道线的长度。

动机

论文中主要强调了现有基于分割和锚的车道线检测方法的不足,如下图所示。
在这里插入图片描述
作者说明了基于分割的方法,对于车道线的整体形状不能够很好的拟合;而基于锚的方法则不能够很好的描绘出Y型车道线和曲线。
基于以上的两个问题,作者设计出了延迟链的车道线检测方法(RCLane)。

模型结构

在这里插入图片描述
该图即为RCLane的整体模型结构。
我们先简单的看一下该模型结构。从整体来看,图片经过Backbone后,直接生成了三种类型的head。然后再通过解码,得到模型的输出结果。
首先我们来看head部分。第一个是Segment head,顾名思义,就是输出车道线的分割结果。第二个是Distance head,从可视化中颜色深浅来看应该是距离摄像头越远的distance越大,从后面方法的解释我们可以知道,该模型结构中显示的distance head其实是backward D D D( D b D_b Db)(不清楚没关系,后面会进一步解释)。第三个是Transfer head,从可视化来看,它表示的是从镜头远到近,当前的车道线关键点到下一个关键点直接的距离,后面方法的解释我们可以知道,该模型结构中显示的transfer head其实是 backward T T T( T b T_b Tb)。
现在我们来看模型的解码部分。首先将Segment head中出来的结果,通过Point NMS(点极大值抑制)来获取稀疏化过后的车道线关键点。然后再将稀疏化后的点与另外两个head进行结合,获取当前点的前后两个关键点。模型结果的可视化来看,我们目前尚不清楚Distance head的作用。并且最后的IOU NMS的作用我们也尚不清楚。
至此,从模型结构的图片中我们能够获得信息已经基本理解完毕(其实光看可能不好理解,还是结合论文中方法部分的说明更好理解)。

方法

前面我们已经提到过,该论文中,作者主要解决的就是把握好车道线的全局以及局部的位置信息。那么其实方法部分,我们只需要知道它究竟是如何去做的即可。
**局部的位置信息。**该信息的获取主要依靠Transfer head(下面简称T)。T是一个大小为 R H × W × 2 R^{H\times W\times 2} RH×W×2的张量。也就是说它有4个通道,这4个通道两两分配为 T f ,   T b ∈ R H × W × 2 T_f, \ T_b \in R^{H\times W\times 2} Tf, TbRH×W×2,分别表明当前关键点与前一个关键点和后一个关键点之间的 ( Δ x , Δ y ) (\Delta x, \Delta y) (Δx,Δy)
车道线当前关键点跟下一个关键点(无论前向还是后向)的公式如下。
在这里插入图片描述
其中, d d d是一个固定的超参数(从该公式可以看出,当我们以关键点 p i p_i pi为圆心, d d d为半径,画圆,与车道线的前后两个交点即为前向的下一个关键点和后向的下一个关键点)。因此当我们从Segment head得到稀疏化后的车道线关键点后,可以再根据 T b T_b Tb T f T_f Tf得到每个关键点的前后关键点,公式如下。
在这里插入图片描述
由此,车道线的局部位置信息便把握住了。但是,车道线的长短全局信息无法从该head中获得,作者又设计了Distance head。

**全局信息。**Distance head是一个大小为 R H × W × 2 R^{H\times W\times 2} RH×W×2的张量。它与T与之对应的有 D b D_b Db D f D_f Df。主要记录了当前关键点 p i p_i pi到前向的终点 p e n d f p_{end}^f pendf和到后向的终点 p e n d b p_{end}^b pendb之间的距离。从而可以表明从当前关键点 p i p_i pi还要向前迭代计算下一个关键点的次数 D f ( p i ) D_f(p_i) Df(pi)
最终的局部位置信息和全局信息的结合如下图所示。
在这里插入图片描述
最终通过 T f T_f Tf T b T_b Tb将会获得前向的一系列点和后向的一系列点。再通过IOU NMS对这些由点生成的线进行筛选。另外,论文中是将segment head稀疏化得到的所有点都作为起始点,计算它的前向后向。
在这里插入图片描述

其他

该论文在损失函数上并没有进行特别的改动,因此没有加以解释说明。另外,论文中特别提到了信息编码过程(也就是如何对模型进行监督),我认为理解了解码,可能编码过程也是一个比较自然的过程,所以没有进行多余解释,敬请原谅。下面是他的损失函数。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

模型试验结果

在这里插入图片描述
在这里插入图片描述

引用:
Xu, S., Cai, X., Zhao, B., Zhang, L., Xu, H., Fu, Y., & Xue, X. (2022). RCLane: Relay Chain Prediction for Lane Detection. In European Conference on Computer Vision (pp. 461-477). Springer, Cham.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/148429.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

机器视觉(十一):条码识别

目录: 机器视觉(一):概述 机器视觉(二):机器视觉硬件技术 机器视觉(三):摄像机标定技术 机器视觉(四):空域图像增强 …

记一次虚拟机编译c程序错误

file included from /usr/include/stdio.h:74:0, from opendir.c:2: /usr/include/libio.h:302:3: error: unknown type name ‘size_t’ size_t __pad5; ^ /usr/include/libio.h:305:67: error: ‘size_t’ undeclared here (not in a function) ch…

黑马程序员 Maven 教程

Maven 简介 传统项目管理的缺点: (1) jar 包不统一,jar 包不兼容; (2) 工程升级维护过程操作繁琐; Maven 是什么 Maven 的本质是一个项目管理工具,将项目开发和管理过程抽象成一个项目对象模型 (POM) POM (Project Object Model) : 项目对…

二分搜索算法

目录1.概述2.代码实现2.1.最基本的二分搜索2.2.搜索最左侧边界2.3.搜索最右侧边界3.应用本文参考: LABULADONG 的算法网站 《大话数据结构》 1.概述 (1)二分搜索 (Binary Search),又称为折半搜索 (Half-interval Search)。它的前…

云收藏系统|基于Springboot实现云收藏系统

作者主页:编程指南针 作者简介:Java领域优质创作者、CSDN博客专家 、掘金特邀作者、多年架构师设计经验、腾讯课堂常驻讲师 主要内容:Java项目、毕业设计、简历模板、学习资料、面试题库、技术互助 收藏点赞不迷路 关注作者有好处 文末获取源…

Java实现队列

目录 一、队列概述 二、队列的模拟实现 1、入队 2、出队 3、取队头元素 4、获取队列长度 三、循环队列 1、入队 2、出队 3、取队头元素 4、取队尾元素 四、面试题 1、用队列实现栈 2、用栈实现队列 一、队列概述 队列也是常见的数据结构,是一…

Mybatis源码解析二:DataSource数据源负责创建连接以及Transaction的事物管理

简介 对于一个成熟的ORM框架来说,数据源的管理以及事务的管理一定是不可或缺的组成,对于Mybatis来说,为了使用方便以及扩展简单也是做了一系列的封装,这一篇主要介绍mybatis是如何管理数据源以及事务的。 数据源DataSource Dat…

【深度学习】李宏毅2021/2022春深度学习课程笔记 - Adversarial Attack(恶意攻击)

文章目录一、基本概念1.1 动机1.2 恶意攻击的例子1.3 如何攻击?二、White Box vs Black Box三、One Pixel Attack四、Universal Adversarial Attack五、Beyond Image六、Attack in the Physical World七、Adversarial Reprogramming八、Backdoor in Model九、防御9.…

TLS回调函数实现反调试

title: TLS回调函数实现反调试.md date: 2022-06-16 23:40:49.231 updated: 2022-06-16 23:41:11.924 url: /archives/tls回调函数实现反调试 categories: tags: 逆向 TLS回调函数实现反调试 TLS-线程局部存储 先于我们OEP执行 #include<stdlib.h> #include<time.…

使用红黑树封装map、set

map、set如何用红黑树封装 map、set应用&#xff1a;map是一个使用参数K、参数V的类模板&#xff0c;set是只使用参数K的类模板。因为map应用时&#xff0c;需要使用到KV&#xff0c;而set只是存单个值&#xff0c;K。红黑树类的存储 &#xff1a;map和set类中使用红黑树数据成…

Logback配置详解

简介&#xff1a; logback是java的日志开源组件&#xff0c;是log4j创始人写的&#xff0c;性能比log4j要好&#xff0c;目前主要分为3个模块&#xff1a; logback-core:核心代码模块logback-classic:log4j的一个改良版本&#xff0c;同时实现了slf4j的接口&#xff0c;这样你…

树莓派mjpg-streamer实现监控功能

树莓派实现监控功能&#xff0c;调用mjpg-streamer库来实现。mjpg-streamer是一个开源的摄像头媒体流&#xff0c;通过本地获取摄像头的数据&#xff0c;通过http通讯发送&#xff0c;可以通过浏览器访问树莓派的IP地址和端口号就能看到视频流。 实现步骤 1.git clone https:…

关于内核的概念理解

狭义的操作系统可以认为就是内核&#xff0c;比如Linux内核。广义的操作系统则包括内核和一系列应用软件&#xff0c;比如Linux内核编辑器vim编译器gcc命令行解释器&#xff08;shell&#xff09;等&#xff0c;通常称为GNU/Linux。 源代码https://github.com/torvalds/Linux …

Jenkins自动化部署SpringBoot项目(windows环境)

文章目录1、Jenkins介绍1.1、概念1.2、优势1.3、Jenkins目的2、环境准备3、Jenkins下载3.1、下载3.2、运行3.3、问题解决4、Jenkins配置4.1、用户配置4.2、系统配置4.3、全局工具配置-最重要5、新建项目7、测试8、错误解决1、Jenkins介绍 1.1、概念 Jenkins是一个开源软件项目…

自动化测试Seleniums~1

一.什么是自动化测试 1.自动化测试介绍 自动化测试指软件测试的自动化&#xff0c;在预设状态下运行应用程序或者系统&#xff0c;预设条件包括正常和异常&#xff0c;最后评估运行结果。将人为驱动的测试行为转化为机器执行的过程。 将测试人员双手解放&#xff0c;将部分测…

黑马javaWeb Brand综合案例

01-综合案例-环境搭建 02-查询所有-后台&前台

leetcode83周赛

前言&#xff1a; 周赛两题选手,有点意思 830.较大分组的位置 思路&#xff1a;wa了三发&#xff0c;对边界了解的不够清楚 可以有一个小小的优化,时间复杂度O(n) // arr.add(start); //arr.add(i-1); //res.add(arr); res.add(Arrays.asList(start,i - 1));class Solution {pu…

MATLAB-mesh/ezmesh函数三维图形绘制

l ) mesh 函数生成由X、Y和Z指定的网线面&#xff0c;由C指定颜色的三维网格图。具体调用方法如下。mesh(Z):分别以矩阵Z的行、列下标作为x轴和y轴的自变量绘图。mesh(X , Y,Z):最常用的一般调用格式。mesh(X,Y ,Z,C):完整的调用格式&#xff0c;C用于指定图形的颜色&#xff0…

Ubuntu 20.4 美化桌面、美化引导界面、Mac 既视感

文章目录相关资源安装 gnome-tweaks安装浏览器插件方法一方法二&#xff08;推荐&#xff09;主题美化进行美化配置效果图美化前美化后美化 Dock扩展推荐引导美化安装主题修改配置相关资源 https://pan.baidu.com/s/1D7ZfzVKMmeZPAzuDDAVUbg提取码&#xff1a;ws3f 安装 gnom…

Java基础学习笔记(十)—— 包装类与泛型

包装类与泛型1 包装类1.1 基本类型包装类1.2 Integer类1.3 自动装箱 / 拆箱2 泛型2.1 泛型概述2.2 泛型的用法2.3 类型通配符1 包装类 1.1 基本类型包装类 基本类型包装类的作用 将基本数据类型封装成对象 的好处在于可以在对象中定义更多的功能方法操作该数据 public stat…