经典文献阅读之--TwinLiteNet(可行驶区域和车道分割的高效轻量级模型)

news2024/11/17 3:47:00

0. 简介

对于自动驾驶来说语义分割是自动驾驶中理解周围环境的一项常见任务。可行驶区域分割和车道检测对于道路上安全且高效的导航尤为重要。为了满足自动驾驶汽车中可行驶区域和车道分割的高效轻量级,《TwinLiteNet: An Efficient and Lightweight Model for Driveable Area and Lane Segmentation in Self-Driving Cars》提出了一种用于可行驶区域和车道线分割的轻量级模型。TwinLiteNet设计代价低廉,但是可以获得精确且高效的分割结果。TwinLiteNet可以在计算能力有效的嵌入式设备上实时地运行,尤其是因为它在Jetson Xavier NX上实现了60FPS帧率,这使其成为自动驾驶汽车的理想解决方案。具体的开源方案已经在Github上实现了。


1. 主要贡献

本文的主要贡献如下:

  1. 本文提出了一种用于可行驶区域分割和车道检测的计算高效框架;

  2. 本文提出的架构基于ESPNet,它是一种可扩展的卷积分割网络,其结合了深度可分离卷积以及双重注意力网络,但是没有使用单个解码模块,而是针对每个任务利用两个解码模块,类似于YOLOP、YOLOPv2;

  3. 本文实验结果表明,TwinLiteNet在各种图像分割任务上通过较少的参数实现了不错的性能。


2. 主要方法

说实话,这个工作目前还是没有脱离Unet框架的,可以作为Unet框架进行了解。首先,我们建议设计一个模型,其输入和输出如图1所示;我们的TwinLiteNet由一个输入和两个输出组成,以便模型学习两个不同任务的表示。然后,我们推荐使用双重注意力模块来提高模型性能。此外,本节还提出了用于训练模型的一些损失函数。我们还介绍了我们使用的训练和推理机制。下面的部分详细展示了我们提出的方法。

在这里插入图片描述

2.1 模型架构

本文提出了一种成本效益高的任务分割架构,称为TwinLiteNet,如图2所示。我们的方法利用ESPNNet-C作为信息编码块,实现了高效的特征图生成。我们将双重注意力模块融入网络中,以捕捉空间和通道维度上的全局依赖关系。这些模块增强了网络感知上下文信息的能力。然后,将得到的特征图通过两个专用于执行两个特定任务的编码器块进行处理:可驾驶区域分割和车道检测。通过采用这种架构,我们旨在以较低的成本实现这些任务的准确和高效的分割结果。

首先,与使用骨干网络和高计算成本方法的方法不同,我们利用了低计算成本但高准确性的ESPNet的强大功能。我们使用ESPNet-C作为编码器从输入图像中提取特征。在ESPNNet-C中,除了通过特征图在ESP模块之间共享信息外,还在架构的不同块之间在不同维度上整合输入信息。从ESPNet-C中获取特征图 A ∈ R C ′ × H 8 × W 8 A ∈ \mathbb{R}^{C ′ × \frac{H}{8} × \frac{W}{8}} ARC×8H×8W后,我们通过双重注意力模块将提取的特征传递。双重注意力模块由位置注意力模块(PAM)和通道注意力模块(CAM)组成。PAM模块旨在将更广泛的上下文信息融入到局部特征中,增强其表示能力。另一方面,CAM模块利用通道映射之间的相互依赖性,突出特征图之间的相互依赖关系,并加强特定语义的表示。我们通过卷积层转换两个注意力模块的输出,并使用逐元素求和操作实现特征融合 B ∈ R C ′ × H 8 × W 8 B ∈ \mathbb{R}^{C ′ × \frac{H}{8} × \frac{W}{8}} BRC×8H×8W。我们的论文针对可驾驶区域和车道分割任务提出了多输出设计。我们不是使用单个输出来进行所有需要分割的对象类型,而是使用两个解码器块来处理特征图,并获得每个任务的最终结果。我们推荐这种多输出设计的原因如下:

  • 独立性能优化:通过两个专用的输出模块,我们可以独立地优化每个类别的分割性能。这种方法使我们能够在不受其他类别影响的情况下,分别对可行驶区域和车道进行微调和改进分割结果。
  • 提高准确性:使用两个输出模块来分别处理不同层次也可以提高分割准确性。通过独立关注每个层次,我们的模型可以更好地学习和调整与可行驶区域和车道特定特征相关的内容,从而为每个类别提供更准确的分割结果。

通过采用具有两个独立输出的可行驶区域和车道分割任务的多输出设计,我们实现了独立的性能优化和增强的分割准确性。我们的解码器模块设计简单但高效,依赖于ConvTranspose层、批归一化和pRelu [23]激活函数,如图3所示。在解码后,TwinLiteNet返回两个用于可行驶区域和车道检测任务的分割图像。我们的TwinLiteNet在可行驶区域分割和车道检测任务中以高准确性优化分割性能。

通过利用ESPNet-C和特征分析模块Dual Attention Network,我们增强了模型的特征提取能力。此外,简单的解码器模块有助于降低计算成本并提高模型的效率。

在这里插入图片描述


## …详情请参照[古月居](https://www.guyuehome.com/45800)

2.2 Loss损失函数

们为所提出的分割模型使用了两个损失函数:Focal Loss [24] 和 Tversky Loss [25]。Focal Loss旨在减少像素之间的分类错误,同时解决易于预测样本的影响,并严厉惩罚难以预测的样本,如方程1所示。另一方面,Tversky Loss借鉴了Dice Loss [26],并解决了分割任务中的类别不平衡问题。然而,与Dice Loss不同的是,Tversky Loss引入了 α α α β β β参数来调整计算过程中假阳性和假阴性的重要性,如Tversky方程2所描述。

在这里插入图片描述

在这里:

  • N N N:输入图像中的像素数量
  • C C C:类别数量,在这种情况下,一个类别是可行驶区域或车道,其余类别是背景。
  • p ^ i ( c ) \hat{p}i(c) p^i(c):用于确定像素i属于类别c的预测值
  • p i ( c ) pi(c) pi(c):像素i属于类别c的真实值
  • γ γ γ:平衡校正因子

在这里插入图片描述


  • T P TP TP:真正例(True Positives)

  • F N FN FN:假负例(False Negatives)

  • F P FP FP:假正例(False Positives)

  • C C C:类别数量,在这种情况下,一个类别是可行驶区域或车道,其余类别是背景。

  • α , β α,β α,β:控制假正例和假负例的惩罚程度。

    每个头部的聚合损失函数采用以下形式:

在这里插入图片描述

2.3 训练机制和推理机制

我们使用尺寸为640x360的输入图像对TwinLiteNet进行训练。我们使用了Adam [27]优化器,并在训练过程中逐渐降低学习率。TwinLiteNet在100个epochs中进行了训练,批量大小为32。在推理过程中,我们应用了重新参数化技术,将卷积和批量归一化[28]层合并为单个层,从而加快了推理速度。这个合并过程只在推理过程中发生,而在模型训练过程中,它们仍然作为独立的层进行操作:卷积和批量归一化。


3. 参考链接

https://mp.weixin.qq.com/s/GBZMQk0QQB40SDD5DbfeDA

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

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

相关文章

反射助你无痛使用Semantic Kernel接入离线大模型

本文主要介绍如何使用 llama 的 server 部署离线大模型,并通过反射技术修改 Semantic Kernel 的 OpenAIClient 类,从而实现指定端点的功能。最后也推荐了一些学习 Semantic Kernel 的资料,希望能对你有所帮助。 封面图片: Dalle3 …

JVM篇--Java内存区域高频面试题

java内存区域 1 Java 堆空间及 GC? 首先我们要知道java堆空间的产生过程: 即当通过java命令启动java进程的时候,就会为它分配内存,而分配内存的一部分就会用于创建堆空间,而当程序中创建对象的时候 就会从堆空间来分…

图像处理-像素位置的一阶导数和二阶导数

图像处理-像素位置的一阶导数和二阶导数 空间卷积是一种图像处理中常用的技术,用于计算图像中每个像素位置的一阶导数和二阶导数。在这里将解释如何使用卷积操作来实现这些导数的计算。 一阶导数和二阶导数的性质: 一阶导数通常产生粗边缘&#xff1b…

redis原理(二)数据结构

redis可以存储键与5种不同数据结构类型之间的映射: String类型的底层实现只有一种数据结构,也就是动态字符串。而List、Hash、Set、ZSet都由两种底层数据结构实现。通常我们把这四种类型称为集合类型,它们的特点是一个键对应了一个集合的数据…

小程序系列--6.全局配置

一. 全局配置文件及常用的配置项 二、window 1. 小程序窗口的组成部分 2. 了解 window 节点常用的配置项 3. 设置导航栏的标题 4. 设置导航栏的背景色 5. 设置导航栏的标题颜色 6. 全局开启下拉刷新功能 7. 设置下拉刷新时窗口的背景色 8. 设置下拉刷新时 loading 的样…

【Python数据可视化】matplotlib之绘制高级图形:散点图、热力图、等值线图、极坐标图

文章传送门 Python 数据可视化matplotlib之绘制常用图形:折线图、柱状图(条形图)、饼图和直方图matplotlib之设置坐标:添加坐标轴名字、设置坐标范围、设置主次刻度、坐标轴文字旋转并标出坐标值matplotlib之增加图形内容&#x…

超声波清洗机真有用吗?眼镜党需注意!别被错误洗眼镜方法误导

超声波清洗机洗眼镜真的有用吗?眼镜党朋友一定要注意了,眼镜清洗可不能有一点马虎的哈! 眼镜是很多人日常生活中不可或缺的用品,然而清洁眼镜却是一个让人头疼的问题。随着科技的发展,超声波清洗机作为一种新兴的清洁…

《WebKit 技术内幕》之二: HTML 网页和结构

第二章 HTML 网页和结构 HTML网页是利用HTML语言编写的文档,HTML是半结构化的数据表现方式,它的结构特征可以归纳为:树状结构、层次结构和框结构。 1.网页构成 1.1 基本元素和树状结构 HTML网页使用HTML语言撰写的文档,发展到今…

实战 | 某电商平台类目SKU数获取与可视化展示

一、项目背景 最近又及年底,各类分析与规划报告纷至沓来,于是接到了公司平台类目商品增长方向的分析需求,其中需要结合外部电商平台做对比。我选择了国内某电商平台作为比较对象,通过获取最细层级前台类目下的SKU数以及结构占比&…

免费分享一套PyQt6图书管理系统(附带完整开发视频教程) Python入门项目实战,果断收藏了~~

大家好,我是python222_小锋老师,最近写了一套PyQt6图书管理系统源码,附带完整开发视频教程,作为Python学习者的入门实战项目,带大家一起入门学习Python技术,感谢大家支持,特来分享下哈。 项目实…

java小游戏——动漫美女拼图

1:继承 1.1 继承概述 首先,我们来说一下,什么是继承: 继承是面向对象三大特征之一(封装,继承和多态) 可以使得子类具有父类的属性和方法,还可以在子类中重新定义,追加属性和方法 也就是说&…

生日视频模板-试试这样制作

视频制作已经成为表达情感、记录生活的重要方式。尤其在生日这样的特殊日子,一份个性化的视频祝福不仅能让人感到温馨,还能成为长久珍藏的回忆。那么,如何快速制作出精美的生日模版视频呢?下面就给大家介绍几种可以制作生日模版的…

论文阅读:Attention is all you need

【最近课堂上Transformer之前的DL基础知识储备差不多了,但学校里一般讲到Transformer课程也接近了尾声;之前参与的一些科研打杂训练了我阅读论文的能力和阅读源码的能力,也让我有能力有兴趣对最最源头的论文一探究竟;我最近也想按…

300块成本从零开始搭建自己的家庭版NAS还可以自动备份,懂点代码有手就行!

前言 300块成本从零开始搭建自己的家庭版NAS,还可以手机上文件照片音乐自动备份,完全实现了自己的网盘效果,可以设置用户权限分配,目录上传、断点续传、并行上传、拖拽文件上传等日常操作。 为什么要搭建NAS? 现在的手…

【数据库】间隙锁Gap Lock

什么是间隙锁 间隙锁(Gap Lock):间隙锁是(RR级别下)一个在索引记录之间的间隙上的锁,可以是两个索引记录之间,也可能是第一个索引记录之前或最后一个索引之后的空间。间隙锁(Gap Lo…

失踪人员信息发布与管理系统:计算机毕设课题的研究与实践 springboot+java+vue+mysql

✍✍计算机编程指导师 ⭐⭐个人介绍:自己非常喜欢研究技术问题!专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目:有源码或者技术上的问题欢迎在评论区一起讨论交流! ⚡⚡ Java实战 |…

Cesium 模型压平

最近整理了下手上的代码,以下是对模型压平的说明。 原理是使用了customShader来重新设置了模型的着色器,通过修改模型顶点的坐标来实现了压平。 废话不多说,下面上代码: /*** class* description 3dtiles模型压平*/ class Flat…

docker-ce 安装与国内源配置 | Ubuntu 20.04

博客原文 文章目录 让apt可以支持HTTPS将官方Docker库的GPG公钥添加到系统中将Docker库添加到APT里更新包列表为了确保修改生效,让新的安装从Docker库里获取,而不是从Ubuntu自己的库里获取,执行:安装 docker-ce配置 docker 阿里源…

Java多线程并发篇----第十四篇

系列文章目录 文章目录 系列文章目录前言一、ReadWriteLock 读写锁二、共享锁和独占锁三、重量级锁(Mutex Lock)四、轻量级锁前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给…

【图解数据结构】深入剖析时间复杂度与空间复杂度的奥秘

🌈个人主页:聆风吟 🔥系列专栏:图解数据结构、算法模板 🔖少年有梦不应止于心动,更要付诸行动。 文章目录 一. ⛳️算法的定义二. ⛳️算法的特性2.1 🔔输入输出2.2 🔔输入输出2.3 &…