【论文阅读】3D-LaneNet
【论文阅读】3D-LaneNet
主要要做的事情就是 lane detection。这里提一下 BEV(Bird‘s Eye View) 感知算法,为了将 2D 图像映射到 3D 空间中,能够更准确的检测物体位置,需要 BEV 感知的结果。后续还会继续了解这方面内容。
文章提出的方法就是在图片上预测车道线。
这个方法应该是第一个非启发式的方法,是直接通过图像(单目深度估计)去学习的方法。而且它是一种基于 anchor 做匹配的方法。
首先基于”平地面假设“【假设1】,即假设当前的路面切平面为路面,可以更方便做映射。
在相机和地面的坐标(系)转换中,可以把相机的外参当作是三个——距离地面的垂直高度 H_cam,竖直和水平方向旋转角(pitch,roll)。

在这篇文章中,假设 roll 角的角度为零【假设2】,只用到了pitch角度。
已知相机高度 h 和 pitch 角度,可以求出相机坐标系 C_cam 向路面坐标系 C_road 的转换 T_c2r。这里用到的方法叫做 IPM(Inverse perspective mapping),逆透视变换。
看一下整体的网络框架:

网络是双通道的结构。
-
image-view 通道,加入了 H_cam 和 pitch 去提取 image 特征,同时最后进行逆透视变换。
-
top-view 通道,这个视图是虚拟的,用来提取 BEV 空间的特征,最后进行车道线的预测。
-
连接两个通道的是 Projective transformation layer,将 image feature map 通过 IPM 转换成 BEV 空间俯视图之后,通道数不变直接和 top-view feature map 做 concate。
然后文章还用了一种基于 anchor 的匹配的方法,作为检测子。
首先,因为 车道线是在 top-view 视图下预测的,沿 x 方向均匀划分一些anchors。anchor 和 gt(ground truth)车道线。在这里,我们要预测的车道线 gt 一共有两种,一种是 lane centerlines(车道中心线),另一种是 lane delimiter(车道边界线)。

上图中,左边和中间两列是 centerlines 的预测,右边一列是 delimiter 的预测。
然后,对于 y 方向的 Y_ref,求出 gt 与 Y_ref 的交点,将每个 gt 归属于距其最近(交点的 x 方向距离最小)的anchor。使用非极大值抑制的方法。
这里假设 gt 与 Y_ref 是会有交点的【假设3】,这会导致过短的车道线无法被检测到。
对于每个anchor,记录它匹配到的 gt。delimiter 不会相交,但是centerlines 可能会。每个 anchor 最多会匹配到两个 centerlines (即当两根车道线在 Y_ref 上相交时,如图右侧)。因此对每个 anchor 需要记录三个信息*(c1,c2,d)*,其中,匹配到的左边的 gt 作为 c1。
如下图所示:

最终车道线预测的输出维度是: 
3 是指有三个预测的 type(c1,c2,d);每个anchor 有 K 个点,对于每个点,预测其*(x 横向偏移,z 深度)*;还有一个当前 gt 应该匹配到该 anchor 上的置信度 p^。anchors 的个数为 N。
最后,看一下损失函数的设计:

第一项是分类置信度的 CE 损失,第二项是横向偏移 x^ 和深度 z^ 的 L1 回归损失。后两项是 image-view 预测的相机外参 H_cam 和 pitch 角度的 L1 损失。
训练的流程就是线通过相机外参和已知的相机内参,包括像素和物理距离缩放尺度等计算出 C_road 坐标系,再将 gt 车道线转换到 C_road 的平面上。最后对其最近的 anchor 进行匹配。
总的来说,这篇文章提出的车道线检测的假设条件还是过于理想,泛化性能还有待进一步的提升。
相关文章:
【论文阅读】3D-LaneNet
【论文阅读】3D-LaneNet 主要要做的事情就是 lane detection。这里提一下 BEV(Bird‘s Eye View) 感知算法,为了将 2D 图像映射到 3D 空间中,能够更准确的检测物体位置,需要 BEV 感知的结果。后续还会继续了解这方面内…...
Kafka的概念|架构|搭建|查看命令
Kafka的概念|架构|搭建|查看命令一 Kafka 概述二 使用消息队列的好处三Kafka 定义3.1Kafka 简介3.2Kafka 的特性3.3 Kafka 系统架构3.4 Partation 数据路由规则四 kafka的架构五 搭建kafka5.1环境准备5.2安装kafka5.3 修改配置文件5.4 编辑其他二台虚拟机的配置文件5.5 编辑三台…...
大数据项目实战之数据仓库:电商数据仓库系统——第5章 数据仓库设计
第5章 数据仓库设计 5.1 数据仓库分层规划 优秀可靠的数仓体系,需要良好的数据分层结构。合理的分层,能够使数据体系更加清晰,使复杂问题得以简化。以下是该项目的分层规划。 5.2 数据仓库构建流程 以下是构建数据仓库的完整流程。 5.2.1 …...
OpenHarmony社区运营报告(2023年3月)
目录 本月快讯 一、代码贡献 二、生态进展 三、社区治理 五、社区活动 六、社区及官网运营 本月快讯 • 《OpenHarmony 2022年度运营报告》于3月正式发布,2022年OpenAtom OpenHarmony(以下简称“OpenHarmony”)开源项目潜心务实、深耕发展&am…...
杰林码图像增强算法——超分辨率、图像放大、轮廓和色彩强化算法(二)
一、前言 2023-03-23我发布了基于加权概率模型(杰林码的理论模型)的图像颜色增强和轮廓预测的应用方法。效果还不太明显,于是我又花了2周的时间进行了技术优化。下面仅提供了x86下的BMP和JPG对应的lib和dll,本文中的算法属于我国…...
在three.js中废置对象
基于three.js子如何废置对象(How to dispose of objects) 前言: 为了提高性能,并避免应用程序中的内存泄露,一个重要的方面是废置未使用的类库实体。 每当创建一个three.js中的实例时,都会分配一定数量的内存。然而,three.js会创建在渲染中所必需的特定对象, 例如几何…...
Java中的String类真的不可变吗?
其实在Java中,String类被final修饰,主要是为了保证字符串的不可变性,进而保证了它的安全性。那么final到底是怎么保证字符串安全性的呢?接下来就让我们一起来看看吧。 一. final的作用 1. final关键词修饰的类不可以被其他类继…...
电脑重装了系统开不了机怎么办?
我们的电脑办公用久后也会出现故障问题,例如卡顿反应慢等等,这时候就要进行重装系统了,但是很多小伙伴重装系统后会出现开不了机的问题,其实我们比较常见的也就是电脑重装系统开不了机的情况。有很多小伙伴反映自己不知道应该怎么…...
SPOJ-NSUBSTR - Substrings(SAM求所有长度子串的最大出现次数)
NSUBSTR - Substrings 题面翻译 你得到了一个最多由 250000250000250000 个小写拉丁字母组成的字符串 SSS。定义 F(x)F(x)F(x) 为 SSS 的某些长度为 xxx 的子串在 SSS 中的最大出现次数。即 F(x)max{times(T)}F(x)max\{times(T)\}F(x)max{times(T)},满足 TTT 是 S…...
Mariadb10.5基于同服务器多实例主从配置
本次部署环境:Centos8stream 本次部署mariadb版本: mariadb:10.5 本次部署方式:rpm包直接安装,并通过systemd直接托管 可以参考 /usr/lib/systemd/system/mariadb.service 该文件 # Multi instance version of mariadb. For i…...
linux 修改主机名称
1、hostname命令进行临时更改 如果只需要临时更改主机名,可以使用hostname命令: sudo hostname <new-hostname> 例如: 只需重新打开session终端,就能生效, 但是,重启计算机后会回到旧的主机名。…...
学校的地下网站(学校的地下网站1080P高清)
这个问题本身就提得有问题,为什么这么说,这是因为YouTube本身就不是一个视频网站或者说YouTube不是一个传统的视频网站!!! YouTube能够一家独大,可不仅仅是因为有了Google 这个亲爹,还有一点&am…...
勒索病毒是什么?如何防勒索病毒
勒索病毒并不是某一个病毒,而是一类病毒的统称,主要以邮件、程序、木马、网页挂马的形式进行传播,利用各种加密算法对文件进行加密,被感染者一般无法解密,必须拿到解密的私钥才有可能破解。 已知最早的勒索软件出现于 …...
SpringBoot+VUE+Axios 【链接超时】 后端正常返回结果,前端却出现错误无法接收数据
一、错误原因及解决思路 错误提示表明前端发送的请求在默认的 2500ms 超时时间内没有得到服务器的响应,导致请求失败。尝试以下方法来解决这个问题: 增加请求超时时间:可以通过配置 Axios 请求对象的 timeout 属性来增加请求的超时时间&…...
【状态估计】基于增强数值稳定性的无迹卡尔曼滤波多机电力系统动态状态估计(Matlab代码实现)
💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...
快速排序的简单理解
详细描述 快速排序通过一趟排序将待排序列分割成独立的两部分,其中一部分序列的关键字均比另一部分序列的关键字小,则可分别对这两部分序列继续进行排序,以达到整个序列有序的目的。 快速排序详细的执行步骤如下: 从序列中挑出…...
短视频多平台发布软件功能详解
随着移动互联网的普及和短视频的兴起,短视频发布软件越来越受到人们的关注。短视频发布软件除了常规的短视频发布功能,还拥有智能创作、帐号绑定、短视频一键发布、视频任务管理和数据统计等一系列实用功能。下面我们将分步骤详细介绍一下这些功能。 …...
谷歌人机验证Google reCAPTCHA
reCAPTCHA是Google公司推出的一项验证服务,使用十分方便快捷,在国外许多网站上均有使用。它与许多其他的人机验证方式不同,它极少需要用户进行各种识图验证。 它的使用方式如下如所示,只需勾选复选框即可通过人机验证。 虽然简单…...
VB+ACCESS电脑销售系统的设计与实现
为了使此系统简单易学易用、功能强大、软件费用支出低、见效快等特点,我们选择Visual Basic6.0开发此系统。Visual Basic6.0起代码有效率以达到Visual c的水平。在面向对象程序设计方面,Visual Basic6.0全面支持面向对你程序设计包括数据抽象、封装、对象…...
嵌入式开发:硬件和软件越来越接近
从前,硬件和软件工程师大多生活在自己的世界里。硬件团队设计了芯片,调试了从铸造厂返回的第一批样本,让软件团队测试他们的代码。随着虚拟平台和其他可执行模型变得越来越普遍,软件团队可以在芯片制造之前开始,有时甚…...
大模型应用开发:从Demo到生产,小白程序员必看!收藏这份实战指南
本文深入剖析了将大模型应用从原型阶段推向生产环境所面临的关键挑战,涵盖数据处理(格式多样性、切块策略、数据更新)、检索质量(找不到、找不准、找太多)、生成阶段(幻觉、引用溯源)、规模化工…...
AI持续爆火,相关岗位薪资到底达到了多少,AI大模型岗位薪资真相:多少年包能拿到?普通人如何破局?
“AI相关岗位薪资” 随着AI持续火爆,各大厂也都在招聘相关人才,近日OfferShow专门对AI相关岗位的工资情况进行了一期专题汇总,都是校招岗位年包90W左右年包100W年包80w70W50W左右40W左右54W左右34W左右。 看大家投票可信度还是挺高的…...
深入解析:高级 Android 开发工程师职位与面试全攻略
引言:移动互联网时代的核心力量 在当今移动互联网蓬勃发展的时代,智能手机已成为人们日常生活中不可或缺的一部分。作为连接用户与数字服务的桥梁,移动应用扮演着至关重要的角色。而在移动应用的生态中,Android 系统凭借其开放性和庞大的用户基础,占据了全球移动操作系统…...
SVM支持向量机核函数选择避坑指南:从线性到RBF,如何根据你的数据特征做决定?
SVM核函数选择实战指南:从数据特征到模型调优的全流程解析 第一次在Scikit-learn中调用SVC类时,面对kernel参数下拉菜单里linear、poly、rbf、sigmoid四个选项,我盯着屏幕发了五分钟呆——这感觉就像走进一家高级餐厅,服务员递来一…...
FPGA信号调试必备:Quartus中keep、preserve、noprune的正确用法与避坑指南
FPGA信号调试必备:Quartus中keep、preserve、noprune的正确用法与避坑指南 在FPGA开发过程中,信号调试是最令人头疼的环节之一。特别是当你发现仿真时明明存在的关键信号,在综合后却神秘消失时,那种挫败感简直难以言表。作为一名长…...
终极免费EVE舰船配置神器:Pyfa完整实战指南
终极免费EVE舰船配置神器:Pyfa完整实战指南 【免费下载链接】Pyfa Python fitting assistant, cross-platform fitting tool for EVE Online 项目地址: https://gitcode.com/gh_mirrors/py/Pyfa 在EVE Online这个充满挑战的宇宙中,打造一艘完美的…...
如何3步实现ComfyUI-Manager配置加密?揭秘敏感数据保护全方案
如何3步实现ComfyUI-Manager配置加密?揭秘敏感数据保护全方案 【免费下载链接】ComfyUI-Manager 项目地址: https://gitcode.com/gh_mirrors/co/ComfyUI-Manager 在使用ComfyUI-Manager管理自定义节点和模型时,配置文件中往往包含API密钥、数据库…...
VHD/VHDX差分盘:Windows系统合并、回滚与定位
VHD/VHDX差分盘:Windows系统合并、回滚与定位VHD/VHDX 差分盘是 Windows 系统中一种高效的虚拟磁盘管理技术,尤其适用于需要频繁进行系统状态回滚、软件测试或虚拟机镜像管理的场景。通过仅存储与父盘的差异数据,差分盘能够显著节省存储空间&…...
FOC算法避坑指南:克拉克变换的‘等幅值’与‘等功率’到底怎么选?基于STM32的实测对比
FOC算法避坑指南:克拉克变换的‘等幅值’与‘等功率’到底怎么选?基于STM32的实测对比 在STM32平台上实现磁场定向控制(FOC)时,克拉克变换系数的选择往往让工程师陷入两难:究竟该用2/3(等幅值&…...
BGE嵌入模型实战手册:面向开发者的检索增强解决方案
BGE嵌入模型实战手册:面向开发者的检索增强解决方案 【免费下载链接】FlagEmbedding Dense Retrieval and Retrieval-augmented LLMs 项目地址: https://gitcode.com/GitHub_Trending/fl/FlagEmbedding 在构建智能问答系统时,你是否曾遇到这些挑战…...
