车道线检测-Eigenlanes 论文学习笔记
论文:《Eigenlanes: Data-Driven Lane Descriptors for Structurally Diverse Lanes》
代码:https://github.com/dongkwonjin/Eigenlanes
核心:在 Eigenlane Space 中检测车道线
创新点
- Eigenlane:数据驱动的车道描述符,在特征车道空间中紧凑地表示结构多样化的车道;
- SIIC-Net:高效地检测和回归特征车道空间中的道路车道;
- SDLane数据集:比现有数据集更真实地表示真实驾驶环境中结构多样化和复杂的车道;
0、结构
1、Eigenlanes
用车道线在训练集中的分布来表示车道线。
- 车道线:x=[x1,x2,...,xN]T\pmb{x}=[x_1,x_2,...,x_N]^Tx=[x1,x2,...,xN]T (横坐标)
- 车道线矩阵:A=[x1,x2,...,xL]\pmb{A}=[\pmb{x}_1,\pmb{x}_2,...,\pmb{x}_L]A=[x1,x2,...,xL](训练集中的所有车道线)
- 使用 Frobenius 泛数 ∣∣A−AM∣∣F||\pmb{A}-\pmb{A}_M||_F∣∣A−AM∣∣F ,其在被最小化时,A\pmb{A}A 的最佳 MMM 阶逼近为:
AM=[x~1,x~2,...,x~L]=σ1u1v1T+⋯+σMuMvMT\pmb{A}_M=[\pmb{\tilde{x}}_1,\pmb{\tilde{x}}_2,...,\pmb{\tilde{x}}_L]=\sigma_1 \pmb{u}_1 \pmb{v}^T_1+\cdots+\sigma_M \pmb{u}_M \pmb{v}^T_MAM=[x~1,x~2,...,x~L]=σ1u1v1T+⋯+σMuMvMT
其中:- UM=[u1,...,uM]\pmb{U}_M=[\pmb{u}_1,...,\pmb{u}_M]UM=[u1,...,uM] 是 U=[u1,...,uN]\pmb{U}=[\pmb{u}_1,...,\pmb{u}_N]U=[u1,...,uN] 的前 M 个左奇异向量;
- VM=[v1,...,vM]\pmb{V}_M=[\pmb{v}_1,...,\pmb{v}_M]VM=[v1,...,vM] 是 V=[v1,...,vL]\pmb{V}=[\pmb{v}_1,...,\pmb{v}_L]V=[v1,...,vL] 的前 M 个右奇异向量;
- ΣM=[σ1,...,σM]\pmb{\Sigma}_M=[\pmb{\sigma}_1,...,\pmb{\sigma}_M]ΣM=[σ1,...,σM] 是 Σ\pmb{\Sigma}Σ 的前 M 个奇异值(Σ\pmb{\Sigma}Σ 中的奇异值经过了由大到小的排序,均大于0,且最小值为 σr\sigma_rσr,r 是 A 的秩);
- U\pmb{U}U、V\pmb{V}V 以及 Σ\pmb{\Sigma}Σ 是通过奇异值分解 A=UΣV\pmb{A}=\pmb{U}\pmb{\Sigma}\pmb{V}A=UΣV 得到的。
- 由此可知:
- x~i=UMci=[u1,...,uM]ci\tilde{x}_i=\pmb{U}_M \pmb{c}_i=[\pmb{u}_1,...,\pmb{u}_M]\pmb{c}_ix~i=UMci=[u1,...,uM]ci
- 定义 Eigenlanes:u1,...,uM\pmb{u}_1,...,\pmb{u}_Mu1,...,uM
- 定义 Eigenlanes 空间:由 {u1,...,uM}\{\pmb{u}_1,...,\pmb{u}_M\}{u1,...,uM} 张成的空间
- 给定车道线 x\pmb{x}x,将其映射到 Eigenlanes 空间:x~=UMc\tilde{\pmb{x}}=\pmb{U}_M \pmb{c}x~=UMc,其中 c=UMTx\pmb{c}=\pmb{U}_M^T \pmb{x}c=UMTx
在 Eigenlanes 空间生成候选车道线
在低维空间进行聚类,效果更佳。
Algorithm 1 Lane candidate generation in eigenlane space
Input: Set of training lanes {x1,x2,...,xL}\{x_1,x_2,...,x_L\}{x1,x2,...,xL}, M=#M=\#M=# of eigenlanes, K=#K=\#K=# of lane candidates
- Construct the lane matrix A and perform SVD in A=UΣV\pmb{A}=\pmb{U}\pmb{\Sigma}\pmb{V}A=UΣV;
- Transform each lane xix_ixi to cic_ici via c=UMTx\pmb{c}=\pmb{U}_M^T \pmb{x}c=UMTx;
- Apply the K-means algorithm to {c1,c2,...,cL}\{c_1,c_2,...,c_L\}{c1,c2,...,cL} to obtain K centroids c1,c2,...,cKc^1,c^2,...,c^Kc1,c2,...,cK
- Generate the lane candidate lk=UMck\pmb{l}_k=\pmb{U}_M\pmb{c}^klk=UMck by inversely transforming each centroid ck\pmb{c}^kck
Output: Set of lane candidates {l1,...,lK}\{l_1,...,l_K\}{l1,...,lK}
在 Eigenlanes 空间上,(通过最近邻)检测到 l=UMc\pmb{l}=\pmb{U}_M\pmb{c}l=UMc 之后,再用一个回归器回归出 Δc\Delta \pmb{c}Δc,这样有:
l+Δl=UM(c+Δc)\pmb{l}+\Delta\pmb{l}=\pmb{U}_M(\pmb{c}+\Delta \pmb{c}) l+Δl=UM(c+Δc)
2、SIIC-Net
整体结构
Encoder:ResNet50
Decoder:Binary Segmentation Map
2.1、SI 模块(Self-lane Identification)
预测:车道线概率、位置偏移、最顶处点的高度
输入:Squeezed Feature Map XsX_sXs、候选车道线 lkl_klk
输出:P=σ(f1(Y)),H=σ(f2(Y)),O=f3(Y)P=\sigma(f_1(Y)),\ H=\sigma(f_2(Y)),\ O=f_3(Y)P=σ(f1(Y)), H=σ(f2(Y)), O=f3(Y)
其中,Ys=[Ys1,Ys2,...,YsC2]∈RK×C2Y_s=[Y^1_s,Y^2_s,...,Y^{C_2}_s]\in \mathbb{R}^{K\times C_2}Ys=[Ys1,Ys2,...,YsC2]∈RK×C2 是沿着候选车道线 lk\pmb{l}_klk 做均值:
Ysc=1∣lk∣Σp∈lkXsc(p)Y_s^c=\frac{1}{|\pmb{l}_k|}\Sigma_{p\in \pmb{l}_k}X^c_s(p) Ysc=∣lk∣1Σp∈lkXsc(p)
fif_ifi 分别是 C2×2C_2\times 2C2×2、C2×RC_2\times RC2×R、C2×MC_2\times MC2×M 的全连接层。OkO_kOk 就是前面提到的偏移量 Δck\Delta c_kΔck
SI 模块之后,应用 NMS T 次,以选出 T 条有价值的车道线。
2.2、IC 模块(Inter-lane Correlation)
利用了车道线之间的 相关性:
- 相邻车道等间距
- 透视变换下,车道线交于 Vanishing Point
输入:Aggregated Feature Map XaX_aXa、候选车道线 lkl_klk、前段 NMS 输出的 T 条车道线;
输出:相应两条车道线对的匹配度 R=ϕ1(Ya)×ϕ2(Ya)TR=\phi_1(Y_a)\times\phi_2(Y_a)^TR=ϕ1(Ya)×ϕ2(Ya)T
其中,
- YaY_aYa 使用 XaX_aXa 计算得到,计算方式与 YsY_sYs 类似,它是 T×C1T\times C_1T×C1 的矩阵
- RRR 是 T×TT\times TT×T 的矩阵,Rij∈[−1,1]R_{ij}\in [-1,1]Rij∈[−1,1]
- ϕ1\phi_1ϕ1 与 ϕ2\phi_2ϕ2 是用卷积与 l2l_2l2 泛数实现的特征变换。
2.3、MWCS 模块
这是一种图优化技术,可见论文:《Harmonious Semantic Line Detection via Maximal Weight Clique Selection》
主要有两步操作:
- 寻找可以修正的最佳车道线 clique;
- 通过删除 y 坐标比 HviH_{v_i}Hvi 大的点,修正了每条车道线的高度;(后面不再赘述)
寻找可以修正的最佳车道线 clique
构建完全图
- G=(V,E)G=(\mathcal{V},\mathcal{E})G=(V,E)
- V={v1,v2,...,vT}\mathcal{V}=\{v_1,v_2,...,v_T\}V={v1,v2,...,vT} 是 NMS 输出的车道线
- E={(vi,vj):i≠j}\mathcal{E}=\{(v_i,v_j):i\ne j\}E={(vi,vj):i=j},每条边上有个权重 w(vi,vj)=12(Rij+Rji)w(v_i,v_j)=\frac{1}{2}(R_{ij}+R_{ji})w(vi,vj)=21(Rij+Rji)
定义匹配度
- 记 θ\thetaθ 为车道线 clique,由图节点的序号构成;
- θ\thetaθ 上的匹配度 Ecompatible(θ)E_{compatible}(\theta)Ecompatible(θ):
Ecompatible(θ)=Σi∈θΣj∈θ,j>iw(vi,vj)E_{compatible}(\theta)=\Sigma_{i\in\theta}\Sigma_{j\in\theta,j>i}w(v_i,v_j) Ecompatible(θ)=Σi∈θΣj∈θ,j>iw(vi,vj)
选 clique θ∗\theta^*θ∗
θ∗=argmaxθEcompatible(θ)\theta^*=\arg\max_\theta E_{compatible}(\theta) θ∗=argθmaxEcompatible(θ)
其中,限定 w(vi,vj)>κw(v_i,v_j)>\kappaw(vi,vj)>κ。
如果没有满足约束的 clique,则选择最大的单节点 clique:θ∗={i∗}\theta^*=\{i^*\}θ∗={i∗},其中 i∗=argmaxiPvii^*=\arg\max_i P_{v_i}i∗=argmaxiPvi
调整候选车道线
使用 U(cvi+Δcvi)\pmb{U}(\pmb{c_{v_i}}+\Delta\pmb{c_{v_i}})U(cvi+Δcvi) 调整 θ∗\theta^*θ∗ 中的车道线,其中 Δcvi\Delta\pmb{c_{v_i}}Δcvi 是 SI 模块的输出。
相关文章:
车道线检测-Eigenlanes 论文学习笔记
论文:《Eigenlanes: Data-Driven Lane Descriptors for Structurally Diverse Lanes》 代码:https://github.com/dongkwonjin/Eigenlanes 核心:在 Eigenlane Space 中检测车道线 创新点 Eigenlane:数据驱动的车道描述符ÿ…...
docker run mysql -e 的环境变量 Environment Variables
例子 sudo docker run -itd --name DockerMysqlLatest3307 -p 3307:3306 -e MYSQL_ROOT_PASSWORDroot的密码 mysql:latest### root无密码 sudo docker run -itd --name Mysql57 -p 57:3306 -e MYSQL_ALLOW_EMPTY_PASSWORDroot mysql:5.7https://hub.docker.com/_/mysql?tabde…...
第17章 MongoDB 条件操作符教程
第17章 MongoDB 条件操作符教程 描述 条件操作符用于比较两个表达式并从mongoDB集合中获取数据。 在本章节中,咱们将讨论如何在MongoDB中使用条件操作符。 MongoDB中条件操作符有: (>) 大于 - $gt(<) 小于 - $lt(>) 大于等于 - $gte(< …...
电子技术——共源共栅放大器
电子技术——共源共栅放大器 之前我们提到过,提高基础增益单元(共源放大器)的一种方法是提高其 ror_oro 的阻值,之后我们学过共栅放大器作为电流缓冲器可以做到这一点,自然地我们就得到了终极解决方案,也…...
《MySQL学习》 事务隔离 与 MVCC
《MySQL学习》 事务隔离 一.事务的概念 事务保证一组数据要么全部成功要么全部失败,MySQL的事务基于引擎(如InnoDB)实现。 二.事务的隔离性与隔离级别 MySQL的标准隔离级别: 读未提交 : 一个事务还没提交时&#…...
html(二)基础标签
一 HTML中的注释 重点: 在哪写注释? 注释的形式? vs code和webstorm都可以通过 ctrl / 进行单行注释和取消注释 ① html中注释的形式 1) html文档中单行和多行注释是"<!-- -->" -->html2) 在html文档中,script标签…...
leetcode刷题---递归思想
leetcode刷题---递归思想)1.1 递归介绍1.2 基本步骤1.3 代表题目1.3.1 入门题---青蛙跳1.3.2.1 初级题226.翻转二叉树112.路径总和1.3.3 中级题---汉诺塔问题1.3.4 进阶题---细胞分裂1.1 递归介绍 如果在函数中存在着调用函数本身的情况,这种现象就叫递…...
ThreadLocal 源码级别详解
ThreadLocal简介 稍微翻译一下: ThreadLocal提供线程局部变量。这些变量与正常的变量不同,因为每一个线程在访问ThreadLocal实例的时候(通过其get或set方法)都有自己的、独立初始化的变量副本。ThreadLocal实例通常是类中的私有静…...
训练营day17
110.平衡二叉树 力扣题目链接 给定一个二叉树,判断它是否是高度平衡的二叉树。 本题中,一棵高度平衡二叉树定义为:一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过1。 示例 1: 给定二叉树 [3,9,20,null,null,15,7] 返回 true 。 示…...
Nodejs原型链污染
Nodejs与JavaScript和JSON 有一些人在学习JavaScript时会分不清Nodejs和JavaScript之间的区别,如果没有node,那么我们的JavaScript代码则由浏览器中的JavaScript解析器进行解析。几乎所有的浏览器都配备了JavaScript的解析功能(最出名的就是…...
【Vue3】element-plus中el-tree的递归处理赋值回显问题
目录一:先获取所有权限tree二:在获取所有该角色能有的权限tree三:递归处理勾选tree节点由于项目是从0-1开始构建的 rbac都需要重新构建对接 所以涉及到了权限管理和菜单管理 一级菜单包含多个二级菜单 若二级不全选,则一级显示 半…...
C语言---宏
专栏:C语言 个人主页:HaiFan. 专栏简介:本专栏主要更新一些C语言的基础知识,也会实现一些小游戏和通讯录,学时管理系统之类的,有兴趣的朋友可以关注一下。 #define预处理预定义符号define#define定义标识符…...
算法导论—路径算法总结
图算法 单源最短路径 Bellman-Ford算法: 顶点为V,边为E的图 对每条边松弛|V|-1次边权可以为负值若存在一个可以从源结点到达的权值为负值的环路,算法返回False时间复杂度:O(VE) 有向无环图单源最短路径 DAG-SHORTEST-PATHS …...
程序环境--翻译+执行
ANSI C标准下,有两种程序环境。 第1种是翻译环境,在这个环境中源代码被转换为可执行的机器指令。 翻译环境包括:预处理(预编译)编译汇编链接。四个步骤。 第2种是执行/运行环境,它用于实际执行代码。 链接…...
微信小程序内部那些事
微信小程序没有window、document,它更像是一个类似 Node.js 的宿主环境。因此在小程序内部不能使用 document.querySelector 这样的选择器,也不支持 XMLHttpRequest、location、localStorage 等浏览器 API,只能使用小程序自己提供的 API&…...
这是从零在独自开开发,将是副业赚钱最好的平台!
文章目录最重要的事情放前面1.前言2.简单介绍一下3.【独自开】介绍3.1 分层标准化平台架构3.2 集成第三方数字接口3.3 支持各个行业的系统定制开发4.如何在【独自开】赚钱获取收益?4.1 如何称为【独自开】开发者?最重要的事情放前面 通过平台的审核也可以得到相应的奖金&…...
Spring MVC 之获取参数(对象、JSON格式数据、URL地址参数、文件、Cookie)
文章目录1. 获取单个参数2. 获取多个参数3. 获取对象4. 后端参数重命名 RequestParam5. 接收 JSON 格式的数据 RequestBody6. 从 URL 地址中获取参数 PathVariable7. 上传文件 RequestPart8. 获取Cookie (CookieValue)/Session/header8.1 获取 Request 和 Response 对象8.2 获取…...
永磁同步电机中BEMF电阻的作用
一、电路原理图 二、原理分析 如图一我们测的是相电压,从理论上我们知道我们测得相电压是一个马鞍波形,马鞍波形中并没有隐含 转子的位置和速度信息。那么为什么我们还要有这样一个电路呢? 这个问题其实困惑了我好久?直到有一天…...
JAVA练习45-二叉树的层序遍历
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 前言 提示:这里可以添加本文要记录的大概内容: 提示:以下是本篇文章正文内容,下面案例可供参考 一、题目二叉树的层序遍历 …...
超高精度PID调节器的特殊功能(3)——变送输出(转发)功能及其应用
摘要:变送输出是高级PID控制器的一项重要扩展功能,可用于多区控制、串级控制、比值控制和差值控制以及数据采集及记录。为展示变送输出功能的强大作用,本文主要针对超高精度VPC 2021系列PID控制器,介绍了变送输出的具体功能、参数…...
【C++】nullptr C++中的空指针(C++11)
前言 在平时我们写C/C代码时你可能会看到有人使用NULL表示空指针,也有人用nullptr表示空指针,那么你可能会很好奇它们都是空指针吗?为什么空指针有两种写法?下面就带你了解这背后的原理。 我们都知道NULL是C语言中的空指针&#x…...
笔试题-2023-大疆-数字IC设计【纯净题目版】
回到首页:2023 数字IC设计秋招复盘——数十家公司笔试题、面试实录 推荐内容:数字IC设计学习比较实用的资料推荐 题目背景 笔试时间:2022.08.07应聘岗位:数字IC设计笔试平台:赛码题目评价 难易程度:★★★★★知识覆盖:★★★☆☆超纲范围:★★★☆☆值得一刷:★★★…...
Python dict字典方法完全攻略(全)
我们知道,Python 字典的数据类型为 dict,我们可使用 dir(dict) 来查看该类型包含哪些方法,例如: >>> dir(dict) [clear, copy, fromkeys, get, items, keys, pop, popitem, setdefault, update, values] keys()、value…...
用“AI“挑选一件智慧礼物
在久违的烟火气回归之际,充满希望的生活可能就从精心挑选一件新年礼物开始。在罗列礼品清单时,你会想到 “数据”也是其中之一吗?事实上,几乎所有时下最受欢迎的带有“智能”一词的设备,都是由大量高质量的数据创建。我…...
【Spark分布式内存计算框架——Spark Core】4. RDD函数(下) 重分区函数、聚合函数
重分区函数 如何对RDD中分区数目进行调整(增加分区或减少分区),在RDD函数中主要有如下三个函数。 1)、增加分区函数 函数名称:repartition,此函数使用的谨慎,会产生Shuffle。 2)、…...
智能工厂自动化设备如何将数据采集到物联网云平台上
制造业工厂在进行生产管理、数字化转型升级的过程中,大量自动化设备的数据采集上云一直是困扰厂商的难题之一。因设备种类多、工艺复杂、设备老旧无多余通信接口导致数据无法集中、工艺无法实时管控,加上设备服务商的本地支持比较有限,因此设…...
SpringBoot整合Mybatis的核心原理
0. 前言:1. 自动配置类MybatisAutoConfiguration:1.1. SqlSessionFactory的生成:1.2. Mapper的扫描和代理生成:1.2.1. MapperScannerConfigurer1.2.2. MapperFactoryBean1.2.3. getMapper生成代理对象2. 小结:0. 前言&…...
滴滴一面:order by 调优10倍,思路是啥?
背景说明: Mysql调优,是大家日常常见的调优工作。 所以,Mysql调优是一个非常、非常核心的面试知识点。 在40岁老架构师 尼恩的读者交流群(50)中,其相关面试题是一个非常、非常高频的交流话题。 近段时间,有小伙伴面…...
Vue框架学习篇(五)
Vue框架学习篇(五) 1 组件 1.1 组件的基本使用 1.1.1 基本流程 a 引入外部vue组件必须要的js文件 <script src"../js/httpVueLoader.js"></script>b 创建.vue文件 <template><!--公共模板内容--></template><script><!…...
(蓝桥杯 刷题全集)【备战(蓝桥杯)算法竞赛-第1天(基础算法-上 专题)】( 从头开始重新做题,记录备战竞赛路上的每一道题 )距离蓝桥杯还有75天
🏆🏆🏆🏆🏆🏆🏆 欢迎观看我的博客,如有问题交流,欢迎评论区留言,一定尽快回复!(大家可以去看我的专栏,是所有文章的目录&a…...
东莞网站se/seo网络推广什么意思
处理过线上问题的同学基本上都会遇到系统突然运行缓慢,CPU 100%,以及 Full GC 次数过多的问题。 当然,这些问题最终导致的直观现象就是系统运行缓慢,并且有大量的报警。 本文主要针对系统运行缓慢这一问题,提供该问题…...
武汉专业网站建设推广/百度电脑版官网
在客户选定ERP软件,签定商务合同后,ERP项目即进入施行阶段,施行的意图也很清晰,即在满意客户需求的前提下尽快上线使用。 无论怎样施行,所面临的仍是两个问题,即软件和数据。 假设软件没有问题,…...
wordpress调用 php文件上传/百度下载安装到手机
事件: 由于前一天的晚上加班了、第二天又接着上班、所以精神上有点不在状态;收到客户的反馈说在slave上找不到master刚刚插入的数据; 阶段1: 遇到这事的第一感觉就是这可能是主从延时、或是slave的复制出错了使得数据没有同步、于…...
网站建设活动海报/成都seo排名
创造者的思维方式 我不知道人们是怎么回事,缺乏想象力还是怎么的,所以我跟其他人对话常常遇到类似的问题。 我:A其实不怎么好。 其他人:你说A不好,难道你要我用B? (对于政治爱好者,如…...
祥云建站平台/营销型企业网站有哪些平台
Consignment 寄存一般是指卖方把货物存放在买方所属仓库,消耗后结帐。库存水平控制和货物的物理管理都由买方负责。这是目前很多大卖场通行的做法。典型的VMI一般也 是指卖方把货物存放在买方附近的仓库(可以是买方、卖方或者第三方仓库)&…...
网站建设外包行业/企业推广是什么职业
XSS又叫CSS (Cross Site Script) ,跨站脚本攻击。恶意攻击者往Web页面里插入恶意html代码,当用户浏览该页之时,嵌入当中Web里面的html代码会被运行,从而达到恶意攻击用户的特殊目的。 from:http://www.incapsula.com/blog/world-largest-site…...