详解车道线检测数据集和模型 VIL-100: A New Dataset and A Baseline Model for Video Instance Lane Detection

在这里插入图片描述
本文介绍一个新的车道线数据集 VIL-100 和检测模型 MMA-Net,论文已收录于 ICCV2021,重点是理解本文提出的 LGMA 模块,用于聚合局部和全局记忆特征。

论文链接:https://arxiv.org/abs/2108.08482

项目链接:https://github.com/yujun0-0/MMA-Net


1. Introduction

在自动驾驶中,最基本和最有挑战性的一个任务是车道线检测。然而在真实的场景中,会受到遮挡、恶劣天气、昏暗灯光或强光反射等影响,准确地进行车道线检测是很困难的。现有的车道线检测方法主要集中在图像上进行车道线检测,而在自动驾驶中汽车摄像头采集到的是视频。因此现在迫切需要将基于图像的车道线检测扩展到视频数据上进行车道线检测,因为基于视频的车道线检测可以利用时域一致性来解决图像检测存在的问题。针对以上问题,本文主要工作如下:

  • 收集了一个新的视频实体车道线检测数据集(VIL-100)。共包含100个视频10000帧图像,涵盖10种车道线类型、各种驾驶场景、光照条件和多条车道线实体,同时对视频中的所有车道线提供了高质量的实体级标注
  • 开发了一个新的 baseline模型,即多层记忆聚合网络(MMA-Net)。具体来说,原始视频中历史帧为局部记忆打乱顺序后的历史帧为全局记忆局部和全局记忆(LGMA)模块注意力机制分别对多层的局部和全局记忆特征进行聚合,并与当前帧的特征进行结合来得到当前帧的车道线实体分割结果。
  • 最后,在VIL-100数据集上将本文提出的方法和10个最先进的模型进行了比较。结果显示,本文设计的模型明显优于现有方法(单张图像车道线检测方法、视频实体分割方法)。

2. VIL-100 Dataset

2.1 Data Collection and Split

VIL-100 数据集的采样频率为10fps,是从30fps下采样而来。其中97个视频是通过单目前置摄像头采集的,3个视频是从互联网上获取而来。

整个数据集上包含10个场景:正常路况、拥挤路况、弯道路况、受损路况、阴影路况、含道路标志路况、强光路况、阴霾路况、夜晚路况、十字交叉路口

数据集上按照8:2的比例将划分为训练集测试集,在训练集和测试集上均包含10个场景。VIL-100 数据集与其它车道线数据集比较如下表所示。可以看到只有VIL-100数据集提供了视频实体车道线标注

在这里插入图片描述


2.2 Annotation

标注时,将每个视频中每一帧的所有车道线中心位置坐标存储在json文件中。每一条车道线对应的中心位置存储为一组,从而提供了实体级车道线注释。然后用三阶多项式拟合成一条曲线,然后扩展为具有一定宽度的车道线区域。例如 1920×10801920 × 10801920×1080 的图片,宽度为30 pixels大小。对于低分辨率的图像,宽度等比例减小。

同时对每条车道线标注了车道线类型,总共由10种车道线类型,即:单条白色实线、单条白色虚线、单条黄色实线、单条黄色虚线、双条白色实线、双条黄色实线、双条黄色虚线、双条白色实虚线、双条白色虚实线、双条白色黄色实线

最后对每一帧还标注了车道线与自身车辆的相对位置,即 2i2i2i 表示车辆右侧的第 iii 条车道线,2i−12i-12i1 表示车辆左侧的第 iii 条车道线,在本数据集中 i=1,2,3,4i=1,2,3,4i=1,2,3,4,因此每一帧最多可以标注8条车道线位置


2.3 Dataset Features and Statistics

下面是对数据集的统计分析,有17%的视频中包含多个场景,图2(a)是不同场景同时出现的情况,图2(b)所示为每一个场景出现的数量。

图3(a)所示为标注的不同类型车道线数量,图3(b)所示为每帧中标注的车道线数量,可以看到3371帧中标注了5条车道线,13帧中标注了6条车道线。

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

3. Proposed Method

本文提出的检测模型MMA-Net如下图所示。为了检测目标帧 ItI_tIt 的车道线区域,输入为原始视频有序历史帧 {It−5,It−4,…,It−1}\left\{I_{t-5}, I_{t-4}, \ldots, I_{t-1}\right\}{It5,It4,,It1}打乱顺序的历史帧 {I^t−5,I^t−4,…,I^t−1}\left\{\hat{I}_{t-5}, \hat{I}_{t-4}, \ldots, \hat{I}_{t-1}\right\}{I^t5,I^t4,,I^t1}。然后经过一个4层卷积网络的编码器得到高级特征图(HHH)和低级特征图 (LLL)。这样就能得到局部记忆特征Ml\mathcal{M}_{l}Ml全局记忆特征 Ml\mathcal{M}_{l}Ml

然后使用局部全局记忆聚合模块(LGMA) 分别对低级特征图和高级特征图进行聚合。聚合后的低级特征 LmaL_{ma}Lma 和目标帧的底级特征 LtL_tLt 一起输入到记忆读取模块(MR)增强目标帧的低级特征,同样也增强目标帧的高级特征。

最后,使用一个U-Net解码器来融合不同卷积层的特征,并预测目标帧 ItI_tIt 的车道线检测图。

在这里插入图片描述


3.1 Local and Global Memory Aggregation Module

LGMA模块如下图(a)所示,输入为5个有序历史帧特征与乱序历史帧特征,首先使用两个 3×33\times33×3 卷积层在每一个输入特征图上提取 key mapsvalue maps

然后使用注意力块(图(b)所示)对局部和全局key mapsvalue maps集成记忆特征,得到新的map,最后局部与全局map相加得到kep map Zattk\mathbf{Z}_{att}^{\mathbf{k}}Zattkvalue map Zattv\mathbf{Z}_{att}^{\mathbf{v}}Zattv。数学表示为:
Zattk=fatt(k1L,k2L,…,k5L)+fatt (k1G,k2G,…,k5G)Zattv=fatt(v1L,v2L,…,v5L)+fatt(v1G,v2G,…,v5G)\begin{array}{l} \mathbf{Z}_{\mathbf{a t t}}^{\mathrm{k}}=f_{a t t}\left(\mathbf{k}_{\mathbf{1}}^{\mathbf{L}}, \mathbf{k}_{\mathbf{2}}^{\mathbf{L}}, \ldots, \mathbf{k}_{\mathbf{5}}^{\mathbf{L}}\right)+f_{\text {att }}\left(\mathbf{k}_{1}^{\mathbf{G}}, \mathbf{k}_{\mathbf{2}}^{\mathbf{G}}, \ldots, \mathbf{k}_{\mathbf{5}}^{\mathbf{G}}\right) \\ \mathbf{Z}_{\mathbf{a t t}}^{\mathrm{v}}=f_{a t t}\left(\mathbf{v}_{\mathbf{1}}^{\mathbf{L}}, \mathbf{v}_{\mathbf{2}}^{\mathbf{L}}, \ldots, \mathbf{v}_{\mathbf{5}}^{\mathbf{L}}\right)+f_{a t t}\left(\mathbf{v}_{\mathbf{1}}^{\mathbf{G}}, \mathbf{v}_{\mathbf{2}}^{\mathbf{G}}, \ldots, \mathbf{v}_{\mathbf{5}}^{\mathbf{G}}\right) \end{array} Zattk=fatt(k1L,k2L,,k5L)+fatt (k1G,k2G,,k5G)Zattv=fatt(v1L,v2L,,v5L)+fatt(v1G,v2G,,v5G)

其中,fattf_{att}fatt 为注意力块运算, (k1L,k2L,…,k5L)\left(\mathbf{k}_{\mathbf{1}}^{\mathbf{L}}, \mathbf{k}_{\mathbf{2}}^{\mathbf{L}}, \ldots, \mathbf{k}_{\mathbf{5}}^{\mathbf{L}}\right)(k1L,k2L,,k5L) 为局部记忆key map(v1L,v2L,…,v5L)\left(\mathbf{v}_{\mathbf{1}}^{\mathbf{L}}, \mathbf{v}_{\mathbf{2}}^{\mathbf{L}}, \ldots, \mathbf{v}_{\mathbf{5}}^{\mathbf{L}}\right)(v1L,v2L,,v5L) 为局部记忆value map(k1G,k2G,…,k5G)\left(\mathbf{k}_{\mathbf{1}}^{\mathbf{G}}, \mathbf{k}_{\mathbf{2}}^{\mathbf{G}}, \ldots, \mathbf{k}_{\mathbf{5}}^{\mathbf{G}}\right)(k1G,k2G,,k5G) 为全局记忆key map(v1G,v2G,…,v5G)\left(\mathbf{v}_{\mathbf{1}}^{\mathbf{G}}, \mathbf{v}_{\mathbf{2}}^{\mathbf{G}}, \ldots, \mathbf{v}_{\mathbf{5}}^{\mathbf{G}}\right)(v1G,v2G,,v5G) 为全局记忆value map

在这里插入图片描述
关于记忆读取模块(MR)解码器训练程序训练参数这里就不一一介绍了,具体细节可以阅读代码。


4. Experiments

实验评价指标作者采用了image-leveli评价指标:mIoU、F10.5,F10.8\mathbf{F1}^{0.5},\mathbf{F1}^{0.8}F10.5,F10.8line-based评价指标:Accuracy、FP\mathbf{FP}FPFN\mathbf{FN}FN,除此之外,作者还引入了video-level评价指标MJ,OJ,MF,OF,MT\mathcal{M}_{\mathcal{J}}, \mathcal{O}_{\mathcal{J}}, \mathcal{M}_{\mathcal{F}}, \mathcal{O}_{\mathcal{F}} , \mathcal{M}_{\mathcal{T}}MJ,OJ,MF,OF,MT

作者这里其它10中方法进行了比较,image-level检测方法:LaneNet、SCNN、ENet-SAD、UFSA、LSTRinstance-level video 检测方法:GAM、RVOS、STM、AFB-URR、TVOS。作者在VIL-100数据集上重新训练了上述方法。

下表是不同评价指标的对比。

image-based metricsvideo-based metrics
在这里插入图片描述在这里插入图片描述

下面是可视化比较:
在这里插入图片描述

最后是不同采样帧数和对比实验,Basic为移除局部记忆注意力机制(LM)全局记忆注意力机制(GM)局部全局记忆注意力机制(LGM)多层融合机制,相当于检测方法STM

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

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

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

相关文章

七天入门图像分割(1):图像分割综述

最近在研究自动驾驶视觉语义地图构建,因为要使用到语义分割技术,趁此机会学习了百度飞桨的图像分割课程,课程蛮好的,收获也蛮大的。 课程地址:https://aistudio.baidu.com/aistudio/course/introduce/1767 1. 课程简要…

一步步编写操作系统 59 cpu的IO特权级1

在保护模式下,处理器中的“阶级”不仅体现在数据和代码的访问,还体现在指令中。 一方面将指令分级的原因是,有些指令的执行对计算机有着严重的影响,它们只有在0特权级下被执行,因此被称为特权指令(Privile…

重读经典:《ImageNet Classification with Deep Convolutional Neural Networks》

9年后重读深度学习奠基作之一:AlexNet【下】【论文精读】这两天偶然间在B站看了李沐博士对AlexNet论文的重新解读,收获满满。AlexNet是当今深度学习浪潮奠基作之一,发表在2012年。在视频中,李沐博士主要是分享了他的三步法快速读论…

一步步编写操作系统 60 cpu的IO特权级2 什么是驱动程序

用户程序可以在由操作系统加载时通过指定整个eflags设置,操作系统如何设置自己的IOPL呢,即使内核IOPL为0也得写进去eflags寄存器中才生效。可惜的是,没有直接读写eflags寄存器的指令,不过可以通过将栈中数据弹出到eflags寄存器中来…

详解惯性导航论文 RINS-W: Robust Inertial Navigation System on Wheels

本文介绍一篇惯性导航定位论文 RINS-W,论文发表于 IROS2019。在本论文中作者提出了仅使用一个IMU进行长时间惯性导航的方法。方法主要包括两个部分: 检测器使用循环神经网络来检测IMU的运动状况,如零速或零横向滑移;使用Invarian…

一步步编写操作系统 61 任务状态段 TSS

I/O位图是位于TSS中的,它可以存在也可以不存在,它只是用来设置对某些特定端口的访问,没有它的话便默认为禁止访问所有端口。正是由于它可有可用,所以TSS的段界限TSS limit(即实际大小-1)并不固定。当TSS中不…

重读经典:《Deep Residual Learning for Image Recognition》

ResNet论文逐段精读【论文精读】这是李沐博士论文精读的第二篇论文,这次精读的论文是ResNet。ResNet 是 CVPR2016 的最佳论文,目前谷歌学术显示其被引用数已经达到了90000。 ResNet论文链接为:https://arxiv.org/abs/1512.03385。 1.第一遍 …

【CodeForces - 1131F 】Asya And Kittens(并查集,思维)

题干: Asya loves animals very much. Recently, she purchased nn kittens, enumerated them from 11 and nn and then put them into the cage. The cage consists of one row of nncells, enumerated with integers from 11 to nn from left to right. Adjacent…

详解道路标记数据集 CeyMo: See More on Roads -- A Novel Benchmark Dataset for Road Marking Detection

本文介绍一个新的道路标记检测数据集,论文收录于 WACV2022。Ceymo数据集总共包含2887张图片,标注了11类共4706个道路标记实例,图片分辨率为 192010801920\times108019201080。其中,对于每一个道路标记实例,作者采用了三…

动手学无人驾驶(7):车道线检测

最近在研究视觉语义地图,需要进行车道线检测,发现这篇车道线检测论文效果蛮好的 (Ultra Fast Structure-aware Deep Lane Detection)。论文作者在知乎上已经介绍过了:https://zhuanlan.zhihu.com/p/157530787&#xff…

Coursera自动驾驶课程第16讲:LIDAR Sensing

在第15讲《Coursera自动驾驶课程第15讲:GNSS and INS Sensing for Pose Estimation》 我们学习了自动驾驶定位中常用的两种传感器:IMU(惯性测量单元) 和GNSS(全球导航卫星系统)。 本讲我们将学习自动驾驶汽…

DB、ETL、DW、OLAP、DM、BI关系结构图

在此大概用口水话简单叙述一下他们几个概念: (1)DB/Database/数据库——这里一般指的就是OLTP数据库,在线事物数据库,用来支持生产的,比如超市的买卖系统。DB保留的是数据信息的最新状态,只有一…

Tarjan 算法 常用模板

可以求每个点属于第几个强连通分量&#xff1a;https://blog.csdn.net/dellaserss/article/details/8267192 int Tarjan(int u){int v;dfn[u]low[u]Index;stack[Top]u;Instack[u]1;for(int i0;i<G[u].size();i){vG[u][i];if(!dfn[v]){Tarjan(v);low[u]min(low[u],low[v]);}…

【HDU - 5012】Dice(模拟,bfs)

题干&#xff1a; There are 2 special dices on the table. On each face of the dice, a distinct number was written. Consider a 1.a 2,a 3,a 4,a 5,a 6 to be numbers written on top face, bottom face, left face, right face, front face and back face of dice A. S…

重读经典:《Generative Adversarial Nets》

GAN论文逐段精读【论文精读】这是李沐博士论文精读的第五篇论文&#xff0c;这次精读的论文是 GAN。目前谷歌学术显示其被引用数已经达到了37000。GAN 应该是机器学习过去五年上头条次数最多的工作&#xff0c;例如抖音里面生成人物卡通头像&#xff0c;人脸互换以及自动驾驶中…

一步步编写操作系统 62 函数调用约定

由于我们要将c语言和汇编语言结合编程啦&#xff0c;所以一定会存在汇编代码和c代码相互调用的问题&#xff0c;有些事情还是要提前交待给大家的&#xff0c;本节就是要给大家说下函数调用规约中的那些事儿。 函数调用约定是什么&#xff1f; 调用约定&#xff0c;calling co…

重读经典:《An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale》

ViT论文逐段精读【论文精读】这次李沐博士邀请了亚马逊计算机视觉专家朱毅博士来精读 Vision Transformer&#xff08;ViT&#xff09;&#xff0c;强烈推荐大家去看本次的论文精读视频。朱毅博士讲解的很详细&#xff0c;几乎是逐词逐句地讲解&#xff0c;在讲解时把 ViT 相关…

给不会调用C++STL库中二分函数lower_bound,upper_bound,binary_search同学的一些话!

lower_bound算法返回第一个大于等于给定值所在的位置。设置两个指针start和last&#xff0c;其中start指向数组的起始位置&#xff0c;last指向数组末尾位置之后的位置。当start和last指向相同位置时循环结束。mid指向[start,last)区间的中间位置&#xff0c;当中间位置元素值大…

详解IMU标定经典论文:A Robust and Easy to Implement Method for IMU Calibration without External Equipments

本文介绍一篇 关于IMU 标定的经典论文&#xff0c;论文收录于 ICRA14&#xff0c;在论文中作者介绍了如何不适用外部设备标定 IMU 加速度和角速度偏差、尺度系数、轴偏移参数。 论文链接&#xff1a;https://readpaper.com/paper/2021503353、https://readpaper.com/paper/221…