计算机视觉论文速递(六)GANet: A Keypoint-based Global Association Network for Lane Detection 基于关键点建模的全局关联网络

article/2025/9/10 8:42:40

计算机视觉论文速递(六)GANet: A Keypoint-based Global Association Network for Lane Detection 基于关键点建模的全局关联网络

  • 1. 摘要
  • 2. 方法动机
  • 3. 方法介绍
    • 3.1 车道线构建-全局关键点关联
      • 3.1.1关键点预测
      • 3.1.2 偏移量预测
      • 3.1.3 起始点采样
    • 3.2 车道线感知的特征增强模块(LFA)
  • 4. 实验
  • 5. 结论

在这里插入图片描述

YOLO-Pose论文:MiniViT:Compressing Vision Transformers with Weight Multiplexing
代码已开源:https://github.com/Wolfwjs/GANet
更多Ai资讯:公主号AiCharm
在这里插入图片描述

1. 摘要

  在CVPR 2022上,商汤智能汽车-创新研发中心团队提出一种新的基于关键点建模的车道线检测范式,即全局关联网络(GANet),通过直接回归车道线关键点到车道线起始点的偏移,来完成对车道线关键点的并行聚合,从而实现高效且准确的车道线检测。除此以外,本文还提出一个车道线感知的特征增强模块,以增强车道线的局部关键点关联,提升车道线局部连续性。本文所提方法在多个公开数据集上均超越已有方法,取得了良好的精度-速度均衡。

2. 方法动机

  车道线检测是自动驾驶感知系统中重要的组成部分,旨在对图片中的每一条车道线进行实例级别的形状描述,其准确性和鲁棒性对规划、决策等下游端的性能有着直接或间接的影响。为了在自动驾驶系统中实现准确可靠的车道线检测功能,精度和速度是需要同时考虑的两个重要因素。由于车道线是长条状的特殊形状,且需要进行实例级别的区分,对车道线进行精巧的建模很大程度上决定了车道线检测算法的性能上限。典型的车道线检测建模方式大致包括以下两种:

  1. 基于锚线(anchor-based)的方法[1,3]。这一类方法受启发于基于锚框的目标检测算法,采用自顶向下的设计思想,预定义一组不同起始点、不同角度的直线作为车道线的锚线(anchor),车道线被建模为一系列轻微偏离锚线的曲线。如下图(a)所示,在推理过程中,通过回归实际车道线到其最接近的锚线的水平偏移量来对车道线的形状进行预测。这类方法在运行效率上有一定优势,然而由于对形状先验的依赖性较强,其对于形状较为复杂的车道线的刻画能力有限,在灵活度上略有不足。
  2. 基于关键点(keypoint-based)的方法[2]。这一类方法受启发于关键点检测算法,采用自底向上的设计思想,将车道线建模为由一组均匀分布的关键点顺序相连而成的曲线。如下图(b)所示,在每个关键点处预测其到下一个关键点的偏移量,通过迭代的方式,每次扩展一个关键点到当前车道线的关键点集合中。这种方法可以较为灵活的描述多种形状的车道线,然而这种逐点扩展的方式较为低效,很难满足实际应用的需求。
  3. 为了同时满足灵活性和高效性的需求,我们在本文中提出了一种新的基于关键点建模的车道线检测范式,即全局关联网络(Global Association Network,GANet)。如下图©所示,每条车道线由其起始点来唯一代表,每个关键点上直接预测其到所属的车道线起始点的偏移量,所预测得到的起始点位于同一个邻域内的关键点属于同一条车道线实例,将这些点顺序连接就可以还原车道线的准确形状。由于同一条车道线的不同关键点分配互不依赖,可以并行进行,因此我们的方法在效率方面有了极大的提升。这里我们选择起始点来代表车道线是因为在前视相机的视角下,不同车道线的起始点是所有关键点中距离最远最不容易混淆的,而且相比车道线中点,起始点的定义更清晰,不容易有歧义。

  另一方面,由于在以上的关键点全局关联过程中,每个关键点都直接与车道线的起始点相关联,同一车道线上相邻关键点之间的缺乏关联,这可能会影响车道线的局部连续性。因此,我们还提出了一个车道感知的特征增强模块(Lane-aware Feature Aggregator,LFA)。如下图(d)所示,在LFA模块中,在每个关键点上预测其到相邻的若干个关键点的偏移量,并利用该偏移量对其他相邻关键点的特征进行聚合,以增强当前关键点的特征。LFA模块所提取的关键点间的局部关联与GANet中的全局关联构成互补,从而形成对车道线的全尺度建模。
在这里插入图片描述

3. 方法介绍

  下图展示了GANet的整体框架。输入前视相机图片,依次经过主干网络(backbone)、自注意力模块(SA)、FPN模块提取图片的多尺度特征后,GANet利用一个关键点头(keypoint head)和一个偏移量头(offset head)来分别预测关键点的置信度图(confidence map)和关键点到车道线起始点的偏移量图(offset map),在推理过程中通过对这二者进行采样和组合,可以将关键点分配到所属的车道线,得到最终的车道线预测结果。LFA作为一个特征增强模块,插入在关键点头之前以帮助关键点预测。接下来的几部分我们将对这两部分展开详细的介绍。

在这里插入图片描述

3.1 车道线构建-全局关键点关联

如下图所示,构建车道线的过程包括三个步骤:

  1. 采样关键点,获取图片中所有关键点的坐标及其到所属车道线起始点的偏移量(下图(a))
  2. 将第一步获取的关键点坐标与偏移量相加,得到每个关键点所指向的车道线起始点坐标(下图(b))
  3. 获取图中所有车道线对应的起始点坐标,以起始点为中心,划定一定范围,所有指向起始点落在这一范围内的关键点都属于同一条车道线,将这些关键点顺序连接,即可恢复完整的车道线形状。(下图©)

  以上步骤都可以通过矩阵操作实现,因而GANet在推理过程中具有高度的并行性。
在这里插入图片描述

3.1.1关键点预测

  关键点的坐标由关键点的置信度图采样得到,该置信度图的所有元素值介于0到1之间,值越大,则代表该元素对应位置是车道线关键点的可能性越高。关键点置信度图采用修正的Focal Loss来训练:
在这里插入图片描述
  此外,由于GANet的输出相比输入进行了一定的下采样,直接对下采样后的关键点坐标进行下取整会损失掉小数点后的精度。因此,我们额外设计了一个量化补偿项对此进行补偿,即:在这里插入图片描述
  量化补偿也采用L1 Loss来进行监督。

3.1.2 偏移量预测

  获取关键点坐标之后,在偏移量图上对应位置的值即是该关键点到车道线起始点的空间偏移量。偏移量图是一个2通道的张量,分别对应水平和垂直方向的偏移。我们采用L1 Loss来对偏移量图的学习进行监督:在这里插入图片描述
  偏移损失仅在车道线关键点处计算。

3.1.3 起始点采样

  车道线的起始点其实只是一种特殊的关键点,这一类关键点所指向的起始点位置应该是它们本身或者它们附近很小的范围。因此,通过在偏移量图上采样值较小的关键点位置,并将距离接近的关键点合并取中心,即可获取图片中所有车道线的起始点坐标。在本文中,我们将偏移量小于1的关键点作为起始点。相比在关键点之间进行自组织的迭代式的聚合,额外采样车道线的起始点作为聚类中心可以极大减少将关键点分配到所属车道线的时间,从而加速网络推理过程。

3.2 车道线感知的特征增强模块(LFA)

  为了增强车道线的局部连续性,我们提出了一个车道线感知的特征增强模块(LFA),将其插入关键点头之前,从而更好的利用车道线上周边点的特征来增强当前点的特征。LFA的示意图如下图所示:在这里插入图片描述

  我们将LFA实现为特殊的可形变卷积,其实现方式如下:在这里插入图片描述  在每个位置上预测其到同一条车道线上前后共M个相邻点的偏移量及相邻点的权重作为可形变卷积的偏移和权重,从而实现车道线上的局部信息关联。需要注意的是,LFA作用在特征图上的所有位置上,而不是仅仅作用于车道线的关键点上。然而为了保证在车道线关键点上偏移量预测准确,我们采用SmoothL1 Loss来监督偏移量的学习,这项损失函数仅在车道线关键点处计算:在这里插入图片描述

4. 实验

  如下表所示,我们分别采用ResNet-18,ResNet-34,ResNet101作为主干网络,得到三个不同大小的GANet,分别是GANet-S,GANet-M以及GANet-L。

在这里插入图片描述
  我们在下图展示了车道线检测的可视化结果,可以看到,在关键点置信度图上,LFA模块可以有效聚合关键点在置信度图上的响应值,得到更连续的关键点预测结果,从而有效改善车道线的漏检以及多检问题。在这里插入图片描述  同时,我们也在下表展示了GANet在车道线检测最常用的benchmark之一,CULane上与其他方法对比的实验结果,GANet在精度和速度之间取得了较好的平衡,其中最小的GANet-S,在精度上与已有方法接近甚至更高,但是速度有了极大的提升。值得注意的是,我们的方法在形状较复杂的曲线数据子集(Curve)上远超其他方法,这也说明了这种基于关键点全局关联的车道线建模方式对于复杂形状的车道线具有较明显的优势。在这里插入图片描述

5. 结论

  关键点进行全局关联以实现关键点到所属车道线的并行分配过程,从而极大提升车道线检测算法的运行效率,并且有效建模形状复杂的车道线实例。除此之外,我们还提出一个车道线感知的特征增强模块(LFA)来增强车道线的局部连续性。我们的方法在多个车道线检测benchmark上都超越了已有的方法,并取得良好的精度-速度平衡,具有巨大的应用潜力。

YOLO-Pose论文:MiniViT:Compressing Vision Transformers with Weight Multiplexing
代码已开源:https://github.com/Wolfwjs/GANet

更多Ai资讯:公主号AiCharm
在这里插入图片描述


http://chatgpt.dhexx.cn/article/4hrNMRgi.shtml

相关文章

torchvision使用keypoint rcnn 进行人体关键点定位

系统:Windows 11 pytorch版本:1.11.0 torchvision版本:0.12.0 使用图片地址:vision/person1.jpg at main pytorch/vision GitHub 使用代码: import torch import torchvision.transforms from torchvision.model…

CenterNet: Keypoint Triplets for Object Detection

论文地址:https://arxiv.org/pdf/1904.08189.pdf 在本文中,作者将一个对象建模为一个单点,即其包围框的中心点。并使用关键点估计来找到中心点,并回归到所有其他对象属性,如大小、3D位置、方向,甚至姿势。C…

COCO数据集keypoint部分

COCO数据集总体格式如下: {"info": {...},"licenses": [...],"images": [...],"annotation": [...],"categories": [...], }coco数据集的使用: from pycocotools.coco import COCO import matplotl…

Rethinking Keypoint Representations: Modeling Keypoints and Poses as Objects for Multi-Person Human

该论文发表于ECCV2022 题目:重新思考关键点表征方法:将关键点和人体姿态作为目标建模以进行多人姿态估计 Abstract In keypoint estimation tasks such as human pose estimation,heatmap-based regression is the dominant approach despite possess…

[1] A Keypoint-based Global Association Network for Lane Detection

A Keypoint-based Global Association Network for Lane Detection 0. 摘要 概括车道线检测方法: (1)基于Anchor定位的方法,自顶向下根据路线图把预设定的Anchor回归到车道线上。缺点是对复杂车道线不够灵活; &#…

cv::KeyPoint中response的介绍

1. Opencv中的KeyPoint类介绍 KeyPoint类的构造函数如下: KeyPoint(); KeyPoint(Point2f _pt, float _size, float _angle-1, float _response0, int _octave0, int _class_id-1); KeyPoint(float x, float y, float _size, float _angle-1, float _response0, int _octave0…

11种Anchor-free目标检测综述 -- Keypoint-based篇

点击上方“3D视觉工坊”,选择“星标” 干货第一时间送达 导读 anchor-free目标检测算法分为两种,一种是DenseBox为代表的Dense Prediction类型,另一种则是以CornerNet为代表的Keypoint-bsaed Detection类型,以检测目标关键点为主…

SMOKE: Single-Stage Monocular 3D Object Detection via Keypoint Estimation

动机: in this paper that predicts a 3D bounding box for each detected object by combining a single keypoint estimate with regressed 3D variables. As a second contribution, we propose a multi-step disentangling approach for constructing the 3D b…

《PCL Docs 案例详解》KeyPoint——SIFT 关键点提取

SIFT 关键点提取 本节演示如何检测点云的SIFT 关键点。SIFT 即尺度不变特征变换(Scale-invariant feature transform,SIFT) ,最初用于图像处理领域的一种描述。这种描述具有尺度不变性,可以在图像中检测出关键点,是一种局部特征描述。 完整…

OpenCV中KeyPoint类

https://blog.csdn.net/u010821666/article/details/52883580 Opencv中KeyPoint类中的默认构造函数如下: CV_WRAP KeyPoint() : pt(0,0), size(0), angle(-1), response(0), octave(0), class_id(-1) {} 现分析各项属性 pt(x,y):关键点的点坐标; si…

Anchor-free目标检测综述 -- Keypoint-based篇

早期目标检测研究以anchor-based为主,设定初始anchor,预测anchor的修正值,分为two-stage目标检测与one-stage目标检测,分别以Faster R-CNN和SSD作为代表。后来,有研究者觉得初始anchor的设定对准确率的影响很大&#x…

Opencv中特征点Keypoint的解读(特征点与坐标的相互转换)

Opencv中特征点Keypoint的解读 特征点的生成特征点到坐标的转换坐标到特征点的转换 在我们学习特征点检测时,使用特征点检测器,比如ORB和SIFT生成特征点(FAST和SURF好像已经申请专利,较新版本可能用不了),通常生成的特征点形式是一…

COCO数据集Keypoint标注格式梳理和使用COCO-Annotator在自有数据集上进行标注

这里写自定义目录标题 COCO数据集Keypoint标注格式COCO数据集官网Keypoint Detection关键点检测统一数据格式Keypoint标注 使用COCO-Annotator标注自有数据集在Ubuntu 18.04上安装COCO-Annotator安装Docker和Docker-Compose安装COCO Annotator启动COCO Annotator使用COCO Annot…

OpenCV学习之KeyPoint

OpenCV中CV_EXPORTS类别KeyPoint与KeyPointsFilter头文件分析 用OpenCV一段时间了,说实话KeyPoint接触也算比较多,一直没有时间对其数据结构进行分析。今天打开源码对其keypoint.cpp文件进行简单分析一下:keypoint.cpp主要包含两个类KeyPoint…

ubuntu引导删除+win10引导修复

Windowsubuntu双系统,删除安装linux磁盘后没有删除其引导,删其引导的步骤为 使用快捷键winx,打开Windows PowerShell(管理员)(A),依次输入如下命令: 打开diskpart diskpart 列出系统中所有的磁盘 list disk 选择…

win10+ubuntu18.04 双系统修复ubuntu启动引导

win10ubuntu18.04 双系统修复ubuntu启动引导 因为windows是不能引导linux的,而每次win10升级或恢复都会将linux的启动引导覆盖掉,导致无法进入linux, 所以一直就禁止了win10更新.这几天win10出了点小毛病,所以就狠下心来恢复了系…

ubuntu 双系统启动引导修复

1、 准备一个安装U盘,插入电脑开机>选择U盘启动>选择试用Try ubuntu without install。 2、 进入系统后,用CtrlAltT快捷键打开终端,获取root权限,执行以下命令: sodu passwd sudo apt-get install s…

win10+ubuntu双系统,重装win10后修复ubuntu引导的方法

笔记本型号:联想拯救者Y7000P 2019版 操作系统:Windows 10Ubuntu 18.04 LTS 问题:重装系统后发现没办法进入到Ubuntu 解决办法: 首先,我们需要准备一个Ubuntu安装U盘,也就是我们之前进行Ubuntu系统安装…

Windows\Ubuntu修复UEFI引导

目录 1、修复Windows引导2、修复Ubuntu的引导 1、修复Windows引导 修复Windows的EFI引导需要使用到的工具为大白菜装机工具,官网是http://www.winbaicai.com/。使用大白菜制作好装机工具以后,重启选择U盘启动(一定要选“UEFI:你的…

Ubuntu boot-repair系统修复引导

Ubuntu系统修复引导 笔记本上本来已经有了一个ubuntu和一个windows,但是那天作死,想要在移动固态硬盘上安装一个ubuntu,方便使用,结果装完了之后必须要将移动固态插在笔记本上,才能够正常引导。 上网查了半天&#xf…