LTrack:实现夜间多目标追踪,并开放低光多目标追踪数据集LMOT

news2024/11/15 15:25:21

摘要

低光场景在现实应用中很常见(例如,夜间的自动驾驶和监控)。最近,多目标跟踪在各种实际用例中受到了很多关注,但黑暗场景中的多目标跟踪却很少被考虑。在本文中,我们专注于黑暗场景中的多目标跟踪。为了应对数据集的缺乏,我们首先建立了一个低光多目标跟踪(LMOT)数据集。LMOT提供了通过我们的双摄像头系统捕获的对齐良好的低光视频对,并为所有视频提供高质量的多目标跟踪注释。然后,我们提出了一种低光多目标跟踪方法,称为LTrack。我们引入了自适应低通下采样模块,以增强图像中传感器噪声之外的低频成分。降解抑制学习策略使模型能够在噪声干扰和图像质量降级下学习不变的信息。这些组件提高了黑暗场景中多目标跟踪的鲁棒性。我们对LMOT数据集和提出的LTrack方法进行了综合分析。实验结果证明了所提方法的优越性及其在夜间低光场景中的竞争力。

代码地址:https://github.com/ying-fu/LMOT

Introduction

多目标跟踪(MOT)旨在定位和关联视频序列中的多个对象。它被广泛应用于许多下游应用中,例如视频识别、自动驾驶和监控。最近,针对各种实际用例的多目标跟踪受到了很多关注,极大地促进了MOT的发展。然而,这些工作主要针对高质量输入,忽略了现实世界中普遍存在的低光场景。出于这个动机,我们研究了黑暗场景中的多目标跟踪。
在本文中,我们构建了一个专门设计来解决黑暗场景中多目标跟踪挑战的低光多目标跟踪数据集(LMOT)。为此,我们开发了一套能够同时捕获亮光和低光视频帧的双摄像头系统。这些视频对在空间和时间维度上高度对齐,提供了两个关键好处。首先,它使我们能够在亮光视频上进行注释,从而获得高质量的注释。其次,亮光视频可以在训练阶段提供额外的监督信息,显著增强黑暗场景中的表现。经过仔细注释,我们收集了32个视频序列(是MOT17的2.3倍),超过35K帧(是MOT17的3.1倍),和超过815K个边界框(是MOT17的2.8倍)。RAW数据是图像传感器的输出,是图像信号处理器(ISP)的输入数据。它保存了所有从图像传感器获取的信息,这对于在黑暗场景中捕捉对象信息至关重要。因此,我们收集了LMOT的RAW视频。
此外,我们提出了一种低光多目标跟踪方法,称为LTrack。低光视频的特点是传感器噪声显著且图像质量差,这显著降低了浅层和深层特征表示,导致跟踪性能下降。我们观察到,低光图像中的传感器噪声与对抗攻有相似之处。为了解决这个问题,我们的主要思想是在噪声干扰和质量下降下学习不变的语义信息。我们提出了自适应低通下采样模块(ALD)。它通过空间低通卷积从图像中提取低频成分,排除噪声,并自适应增强特征图。我们还提出了降解抑制学习策略(DSL),利用配对的低光视频帮助模型抑制噪声干扰,并在特征域中鼓励图像内容响应。我们对LMOT数据集进行了综合分析,并验证了LTrack在真实夜间场景中的优越性。

Method

低光多目标跟踪数据集

在本节中,我们首先介绍我们的双摄像头系统以及收集和注释低光多目标跟踪(LMOT)数据集的详细信息。然后,我们分析了LMOT数据集的统计特征。

1 数据集构建

多目标跟踪需要动态场景和对象视频。为了收集低光视频进行多目标跟踪,我们构建了一套双摄像头系统,如图1所示。它可以同时捕获配对的低光和亮光视频。其主要组件包括分光器、中性密度(ND)滤光片和两个FLIR Grasshopper3 GS3-U3-23S6C摄像头。分光器将进入的光分成两条独立的光路。这种布置使一台摄像机直接捕捉亮光图像,而另一台摄像机记录低光图像,ND滤光片衰减光强度。为了确保视频帧的时间同步,我们采用硬件接口触发摄像机曝光事件。此外,为了避免帧丢失,我们的双摄像头系统使用两个独立的硬件接口进行数据传输,并配备了高速固态硬盘。得益于精确校准,我们的双摄像头系统能够实时捕捉动态场景和对象的配对低光和亮光视频。关于我们双摄像头系统的更多详细信息,请参见补充材料。
我们将视频帧保存为RAW格式,在图像处理之前,这些图像由摄像头图像信号处理器(ISP)处理。就摄像头设置而言,我们将两台摄像机的曝光时间设置为10毫秒,帧速率固定为20帧。这一设置能够避免运动模糊。我们调整了亮光摄像头的增益水平以达到最佳图像质量。低光摄像头的增益始终设置为最大值,以模拟实际场景中的低光拍摄设置。我们还收集了一个真实的低光MOT数据集(LMOT-real)来评估在真实黑暗场景中的表现。这些视频使用相同的摄像头设置单独拍摄。
我们的LMOT数据集包含各种城市户外场景,包括道路、天桥、行人和十字路口。天桥场景从高处拍摄对象,而所有其他场景均从行人视角拍摄。为了考虑摄像机运动的影响,我们引入了任意的水平旋转和垂直随机移动摄像机。图2显示了我们的LMOT数据集中两个视频序列的采样。
我们注释了六类移动对象,包括汽车、行人、自行车、摩托车、公交车和卡车。注释标签包括边界框、目标ID和目标类别。我们将亮光视频注释结果映射到低光视频中,以确保所有低光视频都具备与亮光视频相同的MOT注释。为了获得高质量注释,我们在原始亮光视频上进行半自动注释,首先通过ByteTrack检测所有目标框。然后,我们使用SORT将检测到的框与亮光视频上的跟踪结果相关联,并通过修正小的错位或遗漏来进一步提升注释质量。最终的注释由两个团队成员审阅和核实。

2 数据集分析

为了演示LMOT数据集的独特性,我们提供了其统计特征并与流行的MOT数据集进行比较。在表1中,我们总结了七个MOT数据集,包括车辆(KITTI和 UA-DETRAC)、行人(ETH、DukeMTMC和 MOT17)和混合场景(BDD100K和 PathTrack)。请注意,原始BDD100K MOT数据集没有低光场景,而PathTrack是大规模数据集,但没有低光条件。LMOT在数据量上远超其他流行MOT数据集。它包含35,481帧(MOT17的3.1倍),815,035个边界框(MOT17的2.8倍)和32个视频序列(MOT17的2.3倍)。此外,LMOT视频序列包含多种动态场景和对象。
图3显示了不同数据集中的帧速度分布。为简洁起见,我们仅显示LMOT与MOT17和KITTI的对比。与其他MOT数据集相比,LMOT中的对象速度分布更加均匀,涵盖了宽范围的运动速度。这些对象包括行人、自行车、汽车等,行人通常比汽车更慢。因此,对象速度的分布更加均匀。
图4对比了LMOT、KITTI和MOT17数据集中不同场景下的帧平均IoU(目标框与注释框的交并比)。在车辆MOT任务中,KITTI视频帧通常具有较大的目标框,其IoU较大。行人MOT任务中,MOT17视频帧的IoU较小。LMOT视频帧具有较小的IoU。这意味着LMOT视频中的目标运动速度更快。总之,LMOT数据集具有动态场景和对象、较大的数据量和高质量的注释,极具挑战性。

图片

图片

低光多目标跟踪

在本节中,我们提出了一种低光多目标跟踪方法(LTrack)。我们的主要思路是在噪声干扰和质量下降的情况下学习不变的语义信息。总体框架如图4所示。

1. 公式化和动机

在低光场景中,相机在单次曝光中只能捕捉到少量光子。因此,潜在的传感器噪声被放大,导致图像质量显著下降。我们观察到,直接将低光图像输入网络而不进行任何特殊设计,会导致特征图退化,显著降低模型性能。一种直接的解决方案是应用低光增强技术,专注于学习从低光图像到清晰良好照明图像的映射函数。由于这是一个高度不适定问题,学习这样的映射函数需要大量的计算和存储开销。尽管基于DNN的方法在低光增强方面取得了优异的性能,但增强后的图像对于下游任务可能并不理想。在这项工作中,我们从低光图像中进行多目标跟踪,绕过了低光增强。利用RAW视频,网络比sRGB获得了更多的原始场景信息。为了增强多目标跟踪模型的性能和鲁棒性,我们的主要思路是在噪声干扰和质量下降的情况下学习不变的语义信息。因此,我们提出了自适应低通下采样(ALD)模块,以增强图像的低频成分并过滤掉高频噪声。我们还提出了降解抑制学习策略(DSL),利用配对的低光视频帮助模型抑制图像噪声干扰,并在特征域中鼓励图像内容响应。

2. 自适应低通下采样

下采样操作在保留最重要信息的同时减少特征尺寸。低光图像中的噪声会将高频干扰引入特征图,从而误导目标信息的保留。为了减弱高频噪声的影响并增强特征图的低频部分,我们引入了空间低通卷积(SConv)来从噪声特征图中提取低频特征。

3. 降解抑制学习

由于低光图像和良好照明图像对共享相同的内容,模型应对它们表现出相同的特征响应。然而,低光图像的浅层特征充满噪声,深层特征对目标的响应较低(如图5所示)。为了解决这个问题,我们的想法是在浅层特征中抑制图像噪声,并利用良好照明的图像帮助模型学习低光图像中的干扰不变信息。

图片

Experiments

1. 实验设置

数据集划分在构建数据集时,我们随机将视频划分为训练集、验证集和测试集,分别由11、4和11个视频组成。我们还提供了在真实夜间场景中捕获的6个视频的LMOT-real数据集。详细的数据集划分和统计信息如表2所示。

图片

2. 低光条件下的分析
对检测器的影响

我们首先分析光照条件对检测器的影响。我们选择YOLOX作为检测器,因为它在MOT领域被广泛使用。我们使用良好照明图像(WL)、低光图像(LL)和所有图像(AL)训练检测器。然后,在良好照明和低光图像上测试它们。结果如表3所示。从表中可以看出,使用良好照明图像训练的模型在良好照明图像上取得了最佳结果,但其在低光图像上的性能显著下降。

图片

对关联模块的影响

分析低光条件对目标关联模块的影响。运动和外观对目标关联很重要。两者都依赖于检测框来定位目标。为了分离检测器的影响,我们使用地面实况检测框作为检测框。结果如表4所示。可以看出,使用仅外观匹配在良好照明条件下取得了最佳结果,而在低光条件下使用仅外观匹配的结果非常差。这表明LMOT中的目标在特征空间中具有明显的视觉可区分性,但在低光条件下这种可区分性显著降低。在图6中,我们可视化了LMOT数据集中良好照明和低光条件下目标的外观特征。

图片

图片

3 在LMOT数据集上的结果

从表5中可以看出,所提出的LTrack在所有指标上都具有最佳的HOTA并且竞争力很强。例如,所提出的方法在与基线方法几乎相同的参数和计算量下提高了1.3的HOTA。这强有力地证明了所提出方法的有效性。

图片

4 真实世界中的结果

为了验证我们的方法在夜间真实世界低光场景中的性能,我们使用OC-SORT对LMOT-real数据集上的所有方法进行了评估。如表6所示,所提出的LTrack表现明显优于所有比较方法。无论是低光增强后的跟踪方法还是RAW检测方法都遇到了泛化性问题,甚至不如Base-all。这强烈证明了我们的LTrack在真实世界黑暗场景中的鲁棒性。

图片

5 探索与讨论

在本节中,我们对LMOT数据集和所提出的方法进行了广泛的分析和讨论。
消融研究。我们进行了消融实验,以验证我们改进的有效性,结果如表7所示。可以看出,所有改进都有效地提高了性能。其中,降解抑制学习策略表现出最显著的效果,使HOTA大约提升了1点。当同时采用所有策略时,达到了最佳效果。这证明了我们所有贡献的有效性。

图片

RAW vs. sRGB。我们分析了输入数据格式的影响,结果如表8所示。12位的RAW格式比sRGB取得了显著更好的结果。因为RAW格式保存了更多潜在的信息,对低光场景中的多目标跟踪(MOT)很有帮助。我们还观察到,较高的位宽有利于性能,这在其他视觉任务中也有所观察。

图片

LMOT vs. 合成数据。我们将我们的LMOT数据集与合成低光数据进行了比较,以进一步证明LMOT的价值。我们应用基于高斯-泊松的和基于物理的低光数据合成方法,从良好光照视频合成低光视频。我们在这些类型的数据上训练了我们的LTrack,并在使用LMOT-real进行的真实低光场景中评估了它们的性能。如表9所示,在我们的LMOT数据集上训练的跟踪器在真实夜间场景中表现要好得多,这强烈证明了我们的LMOT数据集的价值。

图片

不同类别的分析。我们还分析了不同类别的表现。从表10中可以看出,汽车和巴士由于形状规则和面积较大,表现最佳。卡车的表现最差,因为它们的实例最少,使得模型难以准确识别。行人取得了相对平均的分数。自行车和摩托车的分数接近,因为它们在外观和运动模式上相似。

图片

总结

本文的主要贡献如下:

  1. 使用精心构建的双摄像头系统构建了第一个低光多目标跟踪数据集。它提供了对齐良好的RAW格式低光视频和高质量的MOT注释。

  2. 提出了一种低光多目标跟踪方法。它利用自适应低通下采样模块和降解抑制学习策略来学习从低光视频中提取不变特征。

  3. 对数据集和提出的方法进行了综合分析。实验结果证明了所提方法的优越性及其在真实夜间场景中的竞争力。

引用文章:

Multi-Object Tracking in the Dark

关注我的公众号auto_driver_ai(Ai fighting), 第一时间获取更新内容。

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

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

相关文章

点菜吧——随便点 C#生成套餐

前言 一到食堂发现有多种选择,但是有一个固定的套路,只能是一个荤,二个小荤,菜品数量也不少,任君选择,如果是一个选择困难症,就有点烦了,所以出品这个自动生成套餐软件。各位老板可…

Mysql原理与调优-InnoDB行记录结构

目录 1.绪论 2.InnoDB的记录格式分类 3.compact格式 3.1 基本组成 3.2 记录额外信息 3.2.1 记录额外信息组成 3.2.2 变成字段长度列表 3.2.3 null值列表 3.2.4 记录头信息 3.3 实际记录 3.3.1 溢出页 3.3.2 varchar最多可以储存多少个字符的数据 4.其他记录格式和c…

配置python的基本环境

python的背景知识 python是咋来的? Python 是一种广泛使用的高级编程语言,由 Guido van Rossum 在1989年底发明,第一个公开发行版发行于1991年。Python 的设计哲学强调代码的可读性和简洁的语法(尤其是使用空格缩进来区分代码块…

tcpdump使用指南

tcpdump 是一款强大的网络抓包工具,它使用 libpcap 库来抓取网络数据包,这个库在几乎在所有的 Linux/Unix 中都有。 tcpdump src 10.5.2.3 and dst port 3389 # 1. 基于IP地址过滤 # 根据源ip进行过滤 $ tcpdump -i eth2 src 192.168.10.100# 根据目标…

sqli-labs靶场练习(1、5-8关)

自己搭建环境啊喂...http://127.0.0.1/sqli-labs-php7-master/ 第一关 1.单引号判断是否存在注入点 /?id1 2.查询列数 ?id1 order by 3-- ?id1 order by 4-- 由此可判断有3列 3.查询用户名和密码分别在哪列 ?id-1 union select 1,2,3 -- 4.查询数据库名称为security ?…

CC2530组网实验-1

1,ZigBee协议栈 协议是一系列的通信标准,通信双方需要共同按照这一标准进行正常的数据发射和接收。协议栈是协议的具体实现形式,通俗点来理解就是协议栈是协议和用户之间的一个接口,开发人员通过使用协议栈来使用这个协议的&…

生活一地猫毛,空气还有猫浮毛!宠物空气净化器帮你消除这些烦恼

随着换毛季节的到来,铲屎官们如临大敌,猫咪将它们的毛发洒满每一个角落,仿佛室内下起了毛茸茸的飘雪。对于铲屎官来说,这不仅耗费时间的清理任务,更是一场守护健康的保卫战。为此,采取了许多措施来应对猫咪…

STL中的vector以及简单实现

vector的简单介绍&#xff1a; 头文件&#xff1a; #include<vector> vector是属于STL的一员&#xff0c;虽然vector的英文意思是向量&#xff0c;但是vector就是一个顺序表&#xff1b; 对于vector来说&#xff0c;面对string的设计的复杂和冗余&#xff0c;vector就…

Java毕业设计 基于SSM和Vue的图书馆座位预约系统小程序

Java毕业设计 基于SSM和Vue的图书馆座位预约系统小程序 这篇博文将介绍一个基于SSM框架和Vue开发的图书馆座位预约系统微信小程序&#xff0c;适合用于Java毕业设计。 功能介绍 用户 登录 注册 首页 图片轮播 关于我们 公告信息 图书馆信息 图书馆详情 预约选座 收藏 …

Tkinter Designer:拖拽式加速Python Tkinter GUI开发的神器

引言 在Python的世界里&#xff0c;创建美观且功能强大的图形用户界面&#xff08;GUI&#xff09;向来是开发者的挑战之一。Tkinter&#xff0c;作为Python的内置GUI库&#xff0c;虽然功能强大&#xff0c;但在实际使用中&#xff0c;设计和实现GUI的过程往往耗时且繁琐。Tki…

Linux中信号的处理

进程正在递达某一个信号期间&#xff0c;同类型的信号无法被递达&#xff01;&#xff01;&#xff01; 当当前信号正在被捕捉事&#xff0c;系统会自动将当前信号加入到进程的信号屏蔽字&#xff08;block&#xff09;。 当信号完成捕捉动作&#xff0c;系统又会自动解除对该…

R语言BIOMOD2 及机器学习方法的物种分布模拟与案例分析

BIOMOD2是一个R软件包&#xff0c;用于构建和评估物种分布模型&#xff08;SDMs&#xff09;。它集成了多种统计和机器学习方法&#xff0c;如GLM、GAM、SVM等&#xff0c;允许用户预测和分析物种在不同环境条件下的地理分布。通过这种方式&#xff0c;BIOMOD帮助研究者评估气候…

Linux-理解shell

文章目录 5. 理解shell5.1 shell的类型5.2 交互shell和系统默认shell5.3 安装zsh shell程序5.4 shell的父子关系5.5 命令列表5.6 命令分组5.7 使用命令分组创建子shell5.8 子shell用法5.9 shell的非内建命令和内建命令5.9.1 非内建命令5.9.2 内建命令5.9.3 history和alias命令介…

Cornerstone加载本地Dicom文件第二弹 - Blob篇

&#x1f340; 引言 当我们刚接触Cornerstone或拿到一组Dicom文件时&#xff0c;如果没有ImageID和后台接口&#xff0c;可能只是想简单测试Cornerstone能否加载这些Dicom文件。在这种情况下&#xff0c;可以使用本地文件加载的方法。之前我们介绍了通过node启动服务器请求文件…

cuda pytorch安装详细教程 GPU版

1.先安装anaconda Anaconda 1.1这里用了最简单的方法&#xff0c;后面将pytorch直接安装到base配置下面了。 1.2下载安装&#xff0c;全部勾选。 一定添加文件夹到path中去&#xff0c;否则后面下载pytorch&#xff0c;无法传输。 1.3 通过cmd&#xff0c;输入conda --versio…

CSP-J 模拟题2

如果x大于45&#xff0c;则输出-1 设定一个整数now&#xff0c;他的初始值为9&#xff1b; 当x>now&#xff0c;就x-now&#xff0c;并且now--; 根据解析写代码1&#xff1a; #include <bits/stdc.h> using namespace std; int a[101010]; int main(){int x;cin>…

设计师必备网站,素材、灵感一手抓

设计师都在哪些地方找素材&#xff0c;找灵感&#xff1f;分享8个设计师必备网站&#xff0c;素材免费下载&#xff0c;还能看到很多国内外大神的设计之作&#xff0c;赶紧收藏起来吧~ 1、baotu 包图网_专注原创商用设计图片下载&#xff0c;会员免费设计素材模板独家图库 国内…

QChart笔记7:基于QPolarChart的雷达图、能力图

六边形战士这个词经常听说&#xff0c;用来描述这个词的是六边形雷达图/能力图。在网上搜索如何用QChart实现没有找到&#xff0c;于是就自己研究出一种写法。 先看看效果&#xff1a; 可以用这个图表示游戏中的人物属性&#xff0c;看看我的几个不太厉害的NPC。 在QT自带的实…

STL—容器—list【list的介绍和基本使用】【list的迭代器失效问题】

STL—容器—list list的使用并不难&#xff0c;有了之前使用string和vector的基础后&#xff0c;学习起来并不难。因此这里不在详细的讲解如何使用&#xff0c;而是大致的将其基本接口都熟悉一下 1.list介绍 list的文档介绍 list是可以在常数范围内在任意位置进行插入和删除…

解决App推广难题,Xinstall带你实现一键唤起,提升用户转化率!

在移动互联网时代&#xff0c;App的推广和运营成为了开发者们面临的一大挑战。如何让用户在各种场景下快速、便捷地唤起你的App&#xff0c;提升用户转化率和活跃度呢&#xff1f;今天&#xff0c;就让我们一起来了解一下Xinstall这一神奇的助手&#xff0c;它将如何解决这些痛…