vanishing point detection in autopilot

news2025/1/12 10:48:54

1. 概述

消失点一种直观的解释是图像中的平行线的交点,也就如下图中路面边界绘制的直线在图像中的交点。
在这里插入图片描述
这样的点在自动驾驶场景下可以为解析车辆状态提供一些信息,比如较为常规的运用便是用于车辆的pitch角度。在传统方法中会通过如霍夫算子检测图片中的直线,并以直线的方程计算对应的交点。这类方法对场景的要求较为严苛,导致在实际中会引入其它的trick来适应多变的使用场景。基于数据驱动的深度学习方法也可对该问题提供一些解决方法,在这篇文章中将会介绍一些使用深度学习方法实现消失点检测的方法。

2. 基于深度学的消失点检测方案

2.1 Vanishing point detection with convolutional neural networks

这篇文章提出了一种基于分类的消失点检测算法和一个消失点检测数据集,下图展示该数据集的图片示例与数据分布:
在这里插入图片描述
该消失点检测算法按照CNN特征维度大小对图像进行网格表示,若消失点落在了某个网格中,那么该网格的分类类别就是正了。自然带来的问题就是消失点检测比较粗糙,不够精细化。

2.2 VPGNet: Vanishing Point Guided Network for Lane and Road Marking Detection and Recognition

参考代码:VPGNet

在一般驾驶场景下消失点往往是车辆行驶方向车道线的交点,那么在一些较差环境下消失点的确立能帮助如车道线检测等任务,这一定程度上符合人的直观感受。对此在现有网络基础上添加一个消失点检测头。其网络结构如下:
在这里插入图片描述
而对于消失点的建模,文中对比了heatmap和分割形式的建模两者的性能比较:
在这里插入图片描述
可以从右图中看到基于分割的方法是好于基于heatmap的,在图中存在明确消失点的时候以消失点为交点将图像划分为4个格子,并用4个通道去预测对应格子的分割结果。而在如遮挡场景下,消失点不是那么明确就用在第5个通道预测去表示这样的情况。

2.3 Vanishing Point Detection with Direct and Transposed Fast Hough Transform inside the neural network

深度学习的方法存在数据适应性的问题,为了减轻数据变化对消失点检测带来的影响,将图像中的集合信息融合进入网络中,便是一个不错的想法。对此这篇文中中引入FHT和Transposed HT到网络中用于增强网络特征表达,使得消失点检测更加鲁棒。其网络结构见下表:
在这里插入图片描述

2.4 Unstructured Road Vanishing Point Detection Using the Convolutional Neural Network and Heatmap Regression

参考代码:URVP

前面提到的一些消失点检测算法均不能输出精确消失点位置,且消失点的预测是需要全图上下文信息的。其网络结构见下图所示:
在这里插入图片描述
对此文章提出一种heatmap和消失点准确预测的结构,消失点的heatmap用于从上下文中确定消失点的位置,同时heatmap特征会用于加强后续的特征图表达。对于消失点的准确预测,文章借鉴了yolo的方式,首先预测该特征网格是不是消失点所在位置,同时预测以该网格为基准的offset。
V P x = f ( x ) + c x VP_x=f(x)+c_x VPx=f(x)+cx
V P y = f ( y ) + c y VP_y=f(y)+c_y VPy=f(y)+cy

2.6 D-VPnet: A Network for Real-time Dominant Vanishing Point Detection in Natural Scenes

这篇文章的方法参考YOLO中目标框的回归机制,预测平行线上点的位置(会将实际场景中的平行线进行切分作为GT),之后通过这些平行线的点去解析出消失点。此外,文章还引入多尺度预测的方式,提升预测的准确性。其网络结构见下图所示:
在这里插入图片描述
其预测出来的平行线点结果可视化如下图所示:
在这里插入图片描述

2.7 Heatmap-based Vanishing Point boosts Lane Detection

自动驾驶场景下消失点与车道线之间其实是存在一定的联系的,对此可以将车道线检测和消失点预测结合起来构成多任务模型。下图展示的便是这篇文章使用分割特征优化消失点heatmap预测特征图表达。
在这里插入图片描述
其实对于上述提到的lane segment和vp detection在实际操作中是存在一定的排列组合的,如下图:
在这里插入图片描述
这些不同的网络排列组合的性能比较:
在这里插入图片描述

2.8 End-to-End Monocular Vanishing Point Detection Exploiting Lane Annotations

对于消失点检测的训练数据,之前的一些方法是通过人工标注的形式获取。在这篇文中提出一种基于车道线标注生成消失点的方案,也就是寻找车道线的交点,如下图所示:
在这里插入图片描述
对于车道线交点不聚集的情况,这些是不能用于消失点数据生成的,如下图的最后一列:
在这里插入图片描述

2.9 Deep vanishing point detection: Geometric priors make dataset variations vanish

参考代码:VanishingPoint_HoughTransform_GaussianSphere

这篇文章借用CNN网络去提取图像特征,通过霍夫变换将图中直线上映射到对应空间上,之后这些组成直线的点会被映射到高斯球面上,这些直线在球面上的交点也就是消失点了,对应下图中3个域的变化。
在这里插入图片描述
文章的网络结构见下图所示:
在这里插入图片描述

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

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

相关文章

2022稳定学习年度研究进展系列报告丨精华观点总结

近年来,在独立分布假设的前提下,机器学习模型的表现越来越好。但在实际应用场景中,数据本身却具有很强的异质性和差异性,这就对模型的泛化能力产生了较高的要求。为了解决分布外泛化问题,稳定学习应运而生。12月28日&a…

Python计算机视觉:人脸识别

讲明一下:并没有实现人脸识别的算法,只是利用人脸特征文件(文件从官网上下载),从而进行人脸识别,总感觉识别出来的效果还是有问题的,如:图片最好是人脸的正脸。 1. 人脸特征文件下载 直接去github或者gitee(建议gitee)上去搜索opencv即可,如下: 选择第一个直接进入即…

一篇文章带你了解——Linux中 文件权限 和 粘滞位的 概念 / 作用 及 实现方法

粘滞位首言用户权限文件权限文件类型分类文件访问者的分类实际解读文件权限文件权限设置方法为啥要有文件权限为啥要有粘滞位粘滞位的好处如何添加粘滞位首言 要了解粘滞位,首先得了解文件及用户权限 用户权限 Linux下有两种用户:超级用户&#xff08…

共享内存原理与使用

共享内存是System V版本的最后一个进程间通信方式。共享内存,顾名思义就是允许两个不相关的进程访问同一个逻辑内存,共享内存是两个正在运行的进程之间共享和传递数据的一种非常有效的方式。不同进程之间共享的内存通常为同一段物理内存。进程可以将同一…

vite学习详解

简介 前言 之前vite2刚出的时候其实已经自学过一波,但是老实说学起来完全不入脑,一方面本来这方面的基础就很差(指项目配置),另一方面学的时候没有跟着去动手,纯理论的学那完全就是越看越困。最后就是急躁…

java书店带商家商城书店多单商书店系统源码

简介 Java ssm开发的多商家书店商城,用户可以浏览商品,加入购物车,直接下单支付,在我的个人中心里可以管理自己的订单,收货地址,编辑资料等,还可以申请开店,店铺开通后可以发布商品…

C++--list

前言 这篇文章对于理解封装是非常有帮助的,list的底层是双向链表结构,我们在学习数据结构是就已经学过了双向链表,双向链表中每个元素存储在互不相关的独立节点中,在节点中通过指针指向其前一个元素和后一个元素。因为list独特的结…

nsis打包程序自动生成的快捷方式打不开

nsis 打包程序自动生成的快捷方式打不开 一: 问题描述: nsis 打包程序自动生成的快捷方式打不开, 报的是: 打不开数据库 , 但是在目录下双击exe 是能够打开的 一: 问题推导: 我是先右击自动生成的快捷方式 选择打开文件所在位置, 我发现确实是 我想要那个exe 的所在位置然后…

Zynq PL端调用PS端的时钟

ZYNQ PS端最多可以分配4个时钟供给PL端使用,见下图。 本文的目的:在XCZU21DR环境下,PS给PL提供一个100MHz的时钟,PL端根据此时钟产生1S信号,点亮LED。 添加&配置Zynq UltraScale MPSoc IP 双击该IP,在…

【C++】C++入门知识(一)

作者:一个喜欢猫咪的的程序员 专栏:《C》 喜欢的话:世间因为少年的挺身而出,而更加瑰丽。 ——《人民日报》 目录 1.C关键字 2.命名空间 2.1局部变量和全局变量 2.2命名空间的概念及使用 2.3…

本硕985计算机,34岁的字节大头兵,上司很器重我,给我加薪不少,但国企也欢迎我,好犹豫该不该去国企!...

互联网VS国企,该怎么选?这是一位34岁的字节程序员面临的选择:在头条是2-2大头兵,本硕985计算机,国企还是比较欢迎他的。原本的想法是在私企干几年,如果干不成管理就去国企。如今没当成管理,但上…

【蓝桥杯嵌入式】第十三届蓝桥杯嵌入式省赛(第二场)程序设计试题及其题解

原题展示 📄 本试题目的是制作一个商品管理系统,其主要功能为:购买商品、增加商品储量、调节商品价格、查询商品价格,并且能够保存改变后的商品数量与商品价格,总体上看跟第一场的试题差不多,下面就让我们一…

Python Selenium 获取动态网页指定元素的超链接

Python Selenium 获取动态网页指定元素的超链接前言前提条件相关介绍实验环境获取动态网页指定元素的超链接目标网址代码实现前言 本文是个人使用Python Selenium 获取动态网页指定元素的超链接的电子笔记,由于水平有限,难免出现错漏,敬请批评…

详解浮点数在内存中的存储

目录 前言 一、 32 位单精度浮点数在内存中的存储 1.1 - 符号位 sign 1.2 - 偏移后的指数位 biased exponent 1.3 - 尾数位 fraction(mantissa) 二、64 位双精度浮点数在内存中的存储 三、浮点数的比较 前言 计算机内部实际上只能存储和识别二进制…

IPV6相关

目录 一、IPV6地址组成与专业术语 1.基础分类 2.本地链路地址范围区域概念 3.本地环回地址 二、centos配置IPV6地址 1.终端命令配置IPV6地址和网关 2.文件中配置IPV6地址 三、IPV6连通测试 1.全局单播地址进行ping 一、IPV6地址组成与专业术语 1.基础分类 IPv6基础知…

对话开发者:Serverless 落地的困境与破局

作者 | 阿里云开发者社区、InfoQ 从 2012 年提出 Serverless 到今年 2022 年刚好十年。 过去十年,上云是确定性趋势,在这个阶段企业一开始的关注点在于如何实现平滑上云。随着越来越多的企业上云,甚至很多企业系统第一天就是在云上构建&…

7-2 出生年

以上是新浪微博中一奇葩贴:“我出生于1988年,直到25岁才遇到4个数字都不相同的年份。”也就是说,直到2013年才达到“4个数字都不相同”的要求。本题请你根据要求,自动填充“我出生于y年,直到x岁才遇到n个数字都不相同的…

【数据结构与算法——C语言版】5. 排序算法(1)——冒泡排序

前言 上篇文章【数据结构与算法——C语言版】4. 排序算法(1)——选择排序我们介绍了排序算法中的选择排序,其时间复杂度是O(n2),本篇文章我们将介绍另一种同样时间复杂度是O(n2)的排序算法——冒牌排序,这两种算法思路…

面向对象编程看这一篇文章就够了

第一章 面向对象和面向过程 面向对象(OOP[Object Oriented Programming])和面向过程(POP[procedure oriented programming])都是一种软件编程设计思想 1. 面向过程强调功能行为 2. 面向对象是将功能封装进对象,强调具备了功能的对象 3. 面向对象强调运用人类在日常的思维逻辑中…

Java 程序员都该懂的 HashMap

HashMap 一直是非常常用的数据结构,也是面试中十分常问到的集合类型,今天就来说说 HashMap。 但是为什么要专门说明是 Java8 的 HashMap 呢?我们都知道,Java8 有很多大的变化和改动,如函数式编程等,而 Hash…