车辆检测新突破:VFM-Det 如何用大模型提升识别精度
目录
编辑
一、摘要
二、引言
三、相关工作
四、Coovally AI模型训练与应用平台
五、方法
概述
综述:基于区域建议的检测
基于VehicleMAE的感知器
六、实验分析
数据集与评估指标
实现细节
属性预测模块预训练
与SOTA检测器的对比实验
消融实验
VehicleMAE编码器的影响
VAtt2Vec模块的影响
可学习标记数量的影响
不同属性编码器的比较
不同特征融合策略的比较
属性向量不同使用方法的比较
不同对比学习损失函数的比较
不同微调方法的比较
可视化
局限性分析
结论
一、摘要
现有的车辆检测器通常是基于预先训练好的骨干网(如ResNet、ViT),通过在车辆图像上训练典型的检测器(如YOLO、RCNN、DETR系列)获得的。一些研究人员还利用预训练的大型基础模型来提高检测性能。不过,我们认为这些检测器可能只能获得次优结果,因为它们使用的大型模型并不是专门为车辆设计的。此外,它们的结果严重依赖视觉特征,很少考虑车辆语义信息与视觉表征之间的一致性。在这项工作中,我们提出了一种基于预训练基础车辆模型(VehicleMAE)和大型语言模型(T5)的全新车辆检测范式,称为VFM-Det。它遵循基于区域提案的检测框架,每个提案的特征都可以通过VehicleMAE得到增强。更重要的是,我们提出了一个新的VAtt2Vec模块,可预测这些建议的车辆语义属性,并将其转换为特征向量,通过对比学习增强视觉特征。在三个车辆检测基准数据集上进行的广泛实验充分证明了我们的车辆检测器的有效性。具体来说,在城市景观数据集上,我们的模型在 AP0.5、AP0.75指标上分别比基线方法提高了+5.1%、+6.2%。
论文链接:
https://arxiv.org/pdf/2408.13031
项目地址:
https://github.com/Event-AHU/VFM-Det
二、引言
车辆检测是细粒度车辆分析的前提,在智能视频监控中发挥着重要作用。目前,有许多物体检测器可用于车辆检测,如 YOLO 系列、R-CNN 系列 、DETR 系列以及其他检测器。虽然这些模型已经取得了不错的性能,但在具有挑战性的场景中的检测性能仍不尽如人意。许多研究人员采用多模态数据来解决这些问题,然而多模态设备的普及率仍然很低,这限制了他们的方法的使用范围。
最近,预训练和微调技术在人工智能(AI)领域非常流行。研究人员通常先以自监督或无监督的方式预训练一个大型骨干网络(例如,BERT、GPT 系列、ViT、CLIP),然后使用参数高效微调(PEFT)策略(例如,提示微调 、适配器、侧微调]等)使其适应各种下游任务。受这些工作的启发,一些研究人员尝试调整这些预先训练好的大模型来进行物体检测。具体来说,Li 等人利用普通和非层次视觉Transformer-based为物体检测任务开发了一个骨干网络。Lin 等人使用预先训练好的大型视觉模型解决了多领域通用检测问题。Fang 等人使用预先训练好的 vanilla ViT 网络进行物体检测和实例分割。即使与Swin-Transformer、MViTv2 和 ConvNeXt 等强分层架构相比,他们也能取得更好的结果。
虽然可以获得更好的检测性能,但这些模型仍可能受到以下问题的限制: 1). 通用大型模型与大型车辆模型: 目前基于预训练大视觉模型的物体检测器是为通用或一般物体检测而提出的,它们通常采用通用的预训练大型骨干模型进行工作。然而,对于车辆检测问题这一特定的下游任务,这些大型模型可能只能取得次优结果。2). 语义差距问题:现有的车辆检测算法主要依赖于利用纯粹的预训练大型视觉模型获得的特征表征,但忽略了语义之间的差距。
三、相关工作
在本节中,我们将介绍与我们最相关的工作,包括物体检测、预训练大模型和属性表示学习。
-
物体检测
基于深度学习的物体检测主要分为三类:一阶段检测器、两阶段检测器、和基于Transformer-based的检测器、。其中,基于滑动窗口的单级检测器通过密集采样对语义目标进行分类和定位,避免了筛选图像中潜在目标区域的步骤。YOLO采用直接回归的方法获得检测结果,有效提高了检测速度。RetinaNET提出了一种焦点损失函数,很好地解决了前景-背景不平衡问题。YOLO-V3采用多尺度特征图提取,显著提高了 YOLO 系列对小目标的检测效果。之后,一系列后续工作的提出进一步改进了 YOLO 检测器。两阶段目标检测首先从图像中提取提案,然后在提案的基础上进行二次修改,从而得到检测结果。R-cnn首次尝试使用神经网络解决检测任务,并显著提高了整体性能。Faster RCNN 提出了一个 RPN 模块来生成候选框,很好地解决了选择性搜索带来的问题。Mask RCNN 引入了 RoI 对齐层,而不是 RoI 池算子,以避免空间量化造成的像素级错位。
随着变形网络在许多领域的出色表现,一些研究人员开始考虑将变形网络与物体检测相结合。具体来说,基于 Transformer 的探测器和DETR首次将 Transformer引入物体检测。Zhu 等人提出了可变形注意力模块,提高了原 DETR 算法的训练速度和对小物体的检测性能。DINO 采用对比去噪训练和混合查询选择方法,进一步提高了 DETR 模型的性能。VITDET 使用 SFP 代替特征金字塔结构,消除了骨干网络的层次限制。与这些工作不同的是,在本文中,我们提出使用预先训练好的大型视觉和语言模型来增强车辆检测,并取得了明显高于我们基线的性能。
-
预训练大模型
自监督/非监督预训练是目前研究的重点。目前,有两种主流的自监督/无监督预训练算法:对比学习和基于重构的预训练。具体来说,对比学习法旨在训练网络分辨给定输入对是否一致。对于单模态输入预训练,SimCLR、MoCo等通过数据增强策略生成一组相似样本。BYOL通过学习对正样本的相似性进行编码来构建表征。对于多模态输入预训练,CLIP和ALIGN对图像-文本对进行了预训练,而 VideoCLIP则将其扩展到了视频-文本对。基于重构的方法试图训练网络重构输入中被遮蔽的部分,以学习重现。BERT及其扩展方法使用双向Transformer-based,并通过屏蔽语言建模实现了少量学习功能。MAE提出了掩码自动编码器,通过简单地重新构建像素来学习视觉表征。VideoMAE和 VideoMAE-v2进一步将其应用到视频领域,而 MultiMAE则将输入扩展到多模态,学习更丰富的几何和语义信息。还有一些针对特定目标设计的预训练方法,如 HCMoCo、HumanBench、SOLIDER等,它们侧重于以人为中心的预训练,而 VehicleMAE则侧重于基于车辆的预训练。受这些研究成果的启发,我们在研究中利用预训练的大型模型来进一步改进车辆检测器。
-
属性表征学习
目标对象的属性可以充分反映关键线索,如纹理、颜色、形状等,而且也很容易获得。因此,许多研究者利用语义属性来完成任务,例如重新识别。Lin等人提出了一种利用属性信息提高再识别性能的方法。张等人提出了一种属性注意块来解决噪声属性对模型的干扰。通过采用强化学习,他们旨在去除噪声属性并提高模型的鲁棒性。Jeong等人引入了学习跨模态嵌入的损失函数。这种方法将一组属性视为一类具有相同特征的个体,从而缩小了属性与图像之间的模态差距。Li等人充分利用了 CLIP 的跨模态描述能力,为每个个体ID提供了一组可学习的文本标记。这些文本标记被输入文本编码器以生成模糊描述,从而促进更好的视觉呈现。此外,Zhai等人引入了细粒度属性描述作为提示信息,为再识别任务提供更丰富的语义信息。Zhang 等设计了一种基于属性的非最大抑制算法,以解决拥挤场景中行人漏检的问题。该算法通过对行人属性信息建模,捕捉人群之间的高级语义差异。Tian 等人利用语义任务来辅助行人检测,包括行人和场景属性,以帮助对阳性样本和阴性样本进行分类。在这项工作中,我们估算了提取建议的属性,并学习了统一的属性表示,以便在语义线索和视觉特征之间进行对比学习。我们的实验充分证明了我们提出的策略在高性能车辆检测中的有效性。
四、Coovally AI模型训练与应用平台
值得一提的是,如果你希望复现这类融合多模态大模型的创新思路,或者对已有模型进行深入诊断与优化,Coovally平台将是非常值得关注的工具。
Coovally 平台即将推出的基于多模态大模型的模型分析与优化能力,能够辅助开发者深度分析模型表现,自动定位弱点,并生成可行的优化方案,为模型调参与升级提供智能化支持。
同时,平台已整合国内外超过1000种开源模型算法和各类公开识别数据集,无论是 YOLO 系列,还是 Transformer 架构,均可直接调用使用。
无论是在学术研究中的快速验证,还是产业项目中的模型落地与迭代,Coovally 都能显著提升开发效率,加速成果转化。
平台链接:https://www.coovally.com
如果你想要另外的模型算法和数据集,欢迎后台或评论区留言,我们找到后会第一时间与您分享!
五、方法
在本节中,我们将首先概述我们提出的 VFM-Det 框架,然后回顾基于区域建议的检测框架。然后,我们将介绍详细的网络架构,重点是基于VehicleMAE的感知器、视觉特征之间的对比学习和统一属性表示。最后,我们将介绍用于优化整个框架的检测头和损失函数。
-
概述
在这项工作中,基于上述基于区域建议的物体检测框架,我们建议将预先训练好的基础模型应用于车辆检测任务,如图2所示。具体来说,我们首先将输入图像输入 ResNet-50 骨干网络,以获得特征图。然后,RPN 生成一组候选边界框,并通过 RoI Align 层获得其特征。更重要的是,我们会裁剪出提案,并将其输入预训练的车辆基础模型 VehicleMAE,以提取更精细的车辆特定特征。这些特征与 RoI Align 沿通道维度输出的特征串联,然后输入检测头和分类头,以获得目标的位置和类别。此外,我们还提出了一个新的 VAtt2Vec 模块,以弥补用于车辆检测的视觉特征与能以高级语义特征描述车辆的语义标签之间的差距。具体来说,该模块将每个提案的视觉特征和所有已定义的车辆属性作为输入,并使用属性头预测属性。需要注意的是,给定的属性是使用大型语言模型 T5进行编码的。预测出的属性通过GRU模块进一步融合并转化为统一的特征表示。视觉特征和统一语义属性特征用于对比学习。在三个车辆检测基准数据集上进行的广泛实验表明,预先训练的大型视觉和语言模型可显著提高车辆检测性能。
-
综述:基于区域建议的检测
基于区域建议的检测框架工作的主要思想可分为两个阶段,即候选区域生成和分类。具体来说,我们首先使用一种高效算法生成一系列候选区域,其中包含正负对象。然后,对每个提议采用分类头和边界框回归头来判断目标对象是否存在,并更准确地预测其位置和尺度。我们可以发现,高质量候选区域的生成是基于区域建议的检测框架中的一个关键步骤,其广泛应用的模块包括选择性搜索、边框、RPN等。RPN通过训练神经网络来预测候选区域的位置和尺寸。基于区域提议的代表性检测器包括RCNN、Faster R-CNN、Mask R-CNN等。在本研究中,我们将提出的策略整合到Mask R-CNN检测器中以验证其有效性,具体实现细节将在后续小节展开阐述。
-
基于VehicleMAE的感知器
我们在Mask R-CNN框架基础上,引入专为车辆数据预训练的基础视觉模型VehicleMAE来提升车辆检测性能。具体而言,给定输入图像I和RPN模块生成的候选区域信息C(每张输入图像对应512个候选区域),首先根据候选区域信息C从输入图像中裁剪出所有提议区域,将其统一缩放至224×224分辨率,得到图像集合Ipro∈R^(224×224×3)。对于Ipro中的每幅图像,我们将其划分为196个不重叠的图像块,随后通过卷积核尺寸为16×16的卷积层将其投影为词嵌入向量P_pat∈R^(1×768),j∈{1,2,...,196}。在整合CLS(classification)标记后,获得特征F_CLS^emb∈R^(197×768)。我们进一步引入位置编码Z_pos∈R^(197×768)来表征输入词嵌入的空间坐标信息,具体实现方式是将随机初始化的位置编码与词嵌入相加:F_pos^emb = Z_pos + F_CLS^emb。
值得注意的是,我们冻结了预训练VehicleMAE网络的参数,并引入8个可学习标记K∈R^(8×768)以实现更高效的微调。这些可学习标记被插入在CLS标记与图像块标记之间,最终形成特征F_emb∈R^(205×768)。获得视觉嵌入P_emb后,将其输入包含12个Transformer模块的VehicleMAE编码器(即ViT-B/16结构),输出特征F ̃∈R^(205×768)。为与ResNet50骨干网络输出的RoI Align特征F_roi∈R^(256×16×16)保持维度一致,我们采用256维线性投影层将VehicleMAE编码器输出映射为F ̄∈R^(205×16×16)。最终,沿通道维度拼接RoI Align特征F_roi与F ̄,得到用于车辆检测的视觉特征F_v∈R^(461×16×16)。
通过引入预训练的车辆专用基础视觉模型,检测性能得以提升。然而,该检测器仍存在视觉特征与高层语义特征未充分对齐的问题,这可能导致次优结果。下一小节将探讨如何通过车辆属性引导的视觉特征学习来进一步提升整体性能。
-
车辆属性表征学习
为将车辆属性整合至检测框架,本研究基于CompCars数据集定义了47个车辆属性标签,并将其划分为6大类:颜色、车门数量、车型、排量、最高时速及座位数。我们利用预训练语言模型T5生成47个属性标签的文本嵌入tiemb∈R1×768tiemb∈R1×768(i∈{1,2,...,47}i∈{1,2,...,47}),通过拼接所有文本嵌入得到文本特征Ft∈R47×768Ft∈R47×768,并将其与VehicleMAE编码器输出的视觉特征Fve=F~Fve=F~共同输入属性预测头。
在属性预测头中,首先通过1×1卷积层将文本特征FtFt投影至与视觉特征FveFve相同维度(因T5模型输出维度与视觉特征一致,此处无需投影)。随后引入可学习的视觉嵌入evemb∈R1×768evemb∈R1×768与文本标记etemb∈R1×768etemb∈R1×768,分别与对应特征相加以保留模态信息。
-
检测头与损失函数
检测头保持与原始Mask R-CNN相同的结构。将拼接后的视觉特征FvFv输入检测头,先经两个MLP网络投影,再通过全连接层分别预测提案类别分数及候选框回归参数,后者用于计算最终框坐标。
在Mask R-CNN基础上,新增视觉特征与车辆语义属性的对比学习损失。首先对图像特征FvFv与文本特征VaVa进行L2归一化,随后计算归一化特征间的余弦嵌入损失:
六、实验分析
-
数据集与评估指标
-
数据集
我们在三个车辆检测数据集上验证所提VFM-Det模型的性能:
Cityscapes:德国50个城市的3,257张高分辨率街景图像(2048×1024),涵盖昼夜不同光照条件。实验选取四类车辆目标(轿车、巴士、卡车、房车),包含2,846张训练图像与481张测试图像。
UA-DETRAC:城市道路多目标检测数据集。通过逐10帧采样视频构建车辆检测子集,含8,178训练图像与5,608测试图像,覆盖轿车、巴士、货车三类。
COCO2017:通用目标检测数据集。通过官方API筛选车辆类别(轿车、巴士、卡车),构建16,270训练图像与707测试图像的子集。
-
评估指标
采用目标检测通用指标:
AP[0.5:0.95]AP[0.5:0.95]:IoU阈值从0.5至0.95(步长0.05)的平均AP值’
AP计算公式为:
-
实现细节
训练参数:学习率0.02,动量0.9,权重衰减0.0001,SGD优化器,批量大小2,总训练轮数26。
硬件环境:基于PyTorch框架,使用RTX3090 GPU服务器。
属性头预训练:在CompCars数据集上重构属性标注(将最高时速划分为5区间,排量分为4类),形成6属性组47标签的44,481张图像,预训练20轮次。
-
属性预测模块预训练
在CompCars数据集上重构属性标注体系:
最高时速属性:将原始数值划分为五类(未知、<150km/h、150-200km/h、200-250km/h、>250km/h)
发动机排量属性:按行业标准划分为四类(未知、小排量、中排量、大排量)
最终构建包含6大属性组、47个细粒度标签的44,481张图像数据集(详见表III)。VAtt2Vec模块中的属性预测头在该数据集上预训练20个epoch。
-
与SOTA检测器的对比实验
-
Cityscapes数据集结果(表I)
AP[0.5:0.95]=46.9%AP[0.5:0.95]=46.9%,
AP0.5=66.5%AP0.5=66.5%,
AP0.75=51.6%AP0.75=51.6%全面领先:较基线Mask R-CNN分别提升5.2%、5.1%、6.2%;优于VitDet检测器1.7%、2.4%、1.5%。
-
UA-DETRAC数据集结果(表I)
关键指标:AP0.5=73.7%AP0.5=73.7%(较Mask R-CNN提升3.7%),AP0.75=63.1%AP0.75=63.1%;
在严格指标AP0.75AP0.75上显著优于VitDet(+5.1%)、RetinaNet(+7.3%)。
-
COCO2017数据集结果(表I)
突破性性能:AP0.5=75.3%AP0.5=75.3%(较Mask R-CNN提升7.3%);
比VitDet在AP[0.5:0.95]AP[0.5:0.95]指标提升1.1%。
-
预训练模型对比(表II):
VehicleMAE显著超越DINO(+1.9%/AP[0.5:0.95]AP[0.5:0.95])与MAE(+4.5%);车辆专用预训练使MAE性能提升3.2-3.8%;
无监督预训练对比(表II):
较MoCoV3提升3.2%/AP0.5AP0.5,较MAE提升2.1%;较MoCoV3提升4%/AP0.5AP0.5;较MAE提升3.9%/AP0.5AP0.5。
-
消融实验
本节通过全面的消融研究验证各模块的有效性,帮助读者理解框架中每个组件的贡献。
-
VehicleMAE编码器的影响
我们在论文中引入VehicleMAE编码器来增强候选区域特征,并将其与原始特征拼接。如表4所示,在Cityscapes数据集上的测试结果显示,引入VehicleMAE编码器后,三项指标分别提升至45.0%、65.4%和48.9%。这些实验结果表明增强的候选区域特征能够提升检测性能。
-
VAtt2Vec模块的影响
在VAtt2Vec模块中,我们引入了Lva损失函数。如表4所示,基于VehicleMAE编码器,VAtt2Vec模块在Cityscapes数据集上将三项指标分别提升了1.9%、1.1%和2.7%。当同时引入VehicleMAE编码器和VAtt2Vec模块时,结果进一步提升至46.9%、66.5%和51.6%。实验结果证明了VAtt2Vec模块的有效性。由于属性头的输入特征来源于VehicleMAE编码器,我们未单独对VAtt2Vec进行消融研究。
-
可学习标记数量的影响
考虑到训练过程中产生的大量候选区域,我们在模型训练时固定了VehicleMAE编码器的参数以提高计算效率并节省资源。这一举措不仅有效降低了计算复杂度,还保留了大模型在先前训练中学到的重要特征和知识。然而,固定VehicleMAE编码器可能导致次优结果,因为预训练数据集与检测数据集之间存在差异。因此,我们引入了一定数量的可学习标记,使预训练的VehicleMAE编码器能更好地适应新数据和任务。我们深入研究了引入的可学习标记数量对模型性能的影响。如表5所示,当可学习标记数量为4时,各项指标分别为44.8%、64.5%和50.6%。当数量增加到8时,各项指标分别提升了2.1%、2.0%和1.0%。然而,当数量进一步增加到12时,各项指标分别下降了2.4%、2.8%和1.9%。基于这些实验结果,我们决定在VehicleMAE编码器中引入8个可学习标记。这些对比实验充分证明了引入可学习标记的有效性。
-
不同属性编码器的比较
在本文中,我们对每个候选区域图像预测一组对应的车辆属性。我们利用大语言模型从这些属性信息中提取特征,然后通过GRU模块将属性特征融合为统一的文本表示。模型通过计算文本特征和视觉特征之间的余弦相似度损失进行优化。因此,所选大语言模型的能力将直接影响检测器的性能。我们在表6中比较了五种大语言模型:T5、CLIP、BERT、ALBERT和MPNet。其中,T5在AP[0.5:0.95]和AP0.5指标上达到最佳性能,分别为46.9%和66.5%。然而,在AP0.95指标上略低于CLIP0.4%。因此,我们选择使用大语言模型T5作为文本编码器。
-
不同特征融合策略的比较
在本文中,我们保留了原始MaskR-CNN通过ResNet50提取的图像特征,同时将RPN生成的候选区域图像输入预训练的大规模车辆模型VehicleMAE,通过其编码器进行特征提取。最后,将这两组特征融合用于检测。因此,特征融合的方法对模型性能至关重要。我们比较了三种特征融合策略:拼接、加权融合和线性融合。效果评估结果总结在表7中。拼接两种特征实现了46.9%、66.5%和51.6%。与加权融合相比,拼接操作将指标提升了2%、3.2%和2%,与线性融合相比提升了1%、2.3%和0.7%。因此,本文选择拼接操作作为特征融合方法。
-
属性向量不同使用方法的比较
利用在CompCars数据集上预训练的属性头,我们对每个候选区域进行属性预测,获得一组由T5编码的属性特征。随后,这些特征通过GRU模块融合,得到候选区域的文本特征。我们比较了两种不同的属性向量使用方法,总结在表8中。当文本特征直接与图像特征拼接后输入分类和回归头时,结果分别为45.9%、64.6%和50.3%。而引入余弦相似度损失进行图像-文本对比学习时,结果为46.9%、66.5%和51.6%。与拼接方法相比,对比学习方法将指标分别提升了1%、1.9%和1.3%。我们认为这种提升的主要原因在于对比学习能够减少冗余信息和噪声,同时利用特征之间的互补性。此外,CompCars数据集与候选区域之间存在领域差距,对比学习方法相比拼接能更有效地缓解这种影响。因此,我们的方法采用对比学习方法。
-
不同对比学习损失函数的比较
在本文中,为了缓解视觉特征与语义类别之间的语义鸿沟,我们提出通过对比学习的思路将视觉特征与统一的属性表示对齐。我们在表9中比较了两种对比学习损失函数,即CLIP损失和余弦嵌入损失。从结果来看,余弦嵌入损失在三项指标上达到最佳性能,分别为46.9%、66.5%和51.6%。然而,使用交叉熵损失会导致AP[0.5:0.95]和AP0.5指标下降。我们认为这是由于存在许多具有相同目标的候选区域,而交叉熵损失将批次内所有其他候选区域视为负样本。因此,我们选择使用余弦嵌入损失。
-
不同微调方法的比较
在我们提出的VAtt2Vec模块中,我们使用大语言模型T5获取车辆属性嵌入。在论文中,我们尝试对大语言模型使用不同的参数高效微调(PEFT)策略。实验结果如表10所示。当不进行微调时,模型在AP[0.5:0.95]和AP0.5指标上均达到最佳性能。相反,对大语言模型进行微调实际上会损害模型的性能。因此,我们选择不在模型中对大语言模型进行微调。
-
可视化
在本节中,我们可视化了我们的模型VFM-Det的检测结果、VAtt2Vec模块检测到的候选区域属性结果,以及VehicleMAE骨干网络处理的候选区域特征图。
我们在道路图像上展示了检测结果,其中绿色框表示我们提出的算法的检测结果,白色框表示Mask R-CNN的检测结果,红色框表示真实标注。如图5所示,我们的方法能够准确检测车辆目标。在图6中,我们展示了VAtt2Vec模块对候选区域属性的检测结果。此外,如图7所示,我们使用GradCAM2可视化VehicleMAE编码器最后一个Transformer块的注意力图。可以观察到注意力主要集中在车辆目标上,这表明我们的VehicleMAE编码器能够提取更有效的候选区域特征。
-
局限性分析
基于上述实验,我们发现引入预训练的车辆专用基础模型VehicleMAE显著提升了车辆检测性能。然而,由于候选区域数量庞大,即使我们固定了VehicleMAE编码器的参数,仍然引入了更多的计算开销。因此,进一步降低检测器的复杂度是一个重要的研究方向。另一方面,属性预测头是在小规模数据集上训练的,这可能会限制属性预测的性能。该模块还使我们的检测器无法进行端到端优化。我们将在未来的工作中解决这两个问题。
结论
本文提出了一种新型车辆检测范式VFM-Det,通过基于预训练基础视觉与语言模型扩展区域提议检测器来实现。对于输入图像,我们首先将其输入ResNet50骨干网络获取图像特征,并通过区域提议网络生成一组候选区域。随后,我们从图像中裁剪这些候选区域,并利用在大规模车辆图像数据集上预训练的VehicleMAE编码器提取候选区域特征,从而增强原始特征。更重要的是,我们引入了创新的VAtt2Vec模块,该模块基于VehicleMAE编码器提取的特征预测这些候选区域的车辆语义属性。这些属性随后被转化为统一特征向量,并通过计算与视觉特征的相似性约束来优化模型。我们在三个车辆检测数据集上评估和比较了VFM-Det,大量实验充分证明了我们提出的车辆检测器的有效性和优越性。
相关文章:
车辆检测新突破:VFM-Det 如何用大模型提升识别精度
目录 编辑 一、摘要 二、引言 三、相关工作 四、Coovally AI模型训练与应用平台 五、方法 概述 综述:基于区域建议的检测 基于VehicleMAE的感知器 六、实验分析 数据集与评估指标 实现细节 属性预测模块预训练 与SOTA检测器的对比实验 消融实验 V…...
可视化图解算法:判断是否完全二叉树
1. 题目 描述 给定一个二叉树,确定他是否是一个完全二叉树。 完全二叉树的定义:若二叉树的深度为 h,除第 h 层外,其它各层的结点数都达到最大个数,第 h 层所有的叶子结点都连续集中在最左边,这就是完全二…...
对于C++中的STL,push_back()和emplace_back()有什么区别?
1.push_back(): 语法为:container.push_back(),接收一个值或一个对象的移动/复制副本; 在将对象添加或移动到容器的末尾前,需要先调用构造函数实例化对象,然后再执行移动或复制操作。 2.emplace_back()&a…...
小程序中的页面跳转
小程序中的页面跳转 在之前网页的学习中,我们往往采用超链接,或者定义方法、函数等方式来实现页面的跳转,但是微信小程序中没有超链接,那我们该如何实现呢?微信小程序的页面跳转包括两个,一个是tabBar页面…...
分享一款免费的AI IDE Trae,全新支持DeepSeek R1/V3、豆包大模型1.5自由切换,更可自定义专属AI模型
分享一款免费的AI IDE Trae,全新支持DeepSeek R1/V3、豆包大模型1.5自由切换,更可自定义专属AI模型,加入我的邀请一起拿好礼,转发给技术搭子还有机会赢取华为MatePad Air、雷蛇机械键盘、热门会员卡等丰厚奖品,即刻体验>>: https://juejin.cn/loy…...
美团优选小程序 mtgsig 分析 mtgsig1.2
声明 本文章中所有内容仅供学习交流使用,不用于其他任何目的,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关! 逆向过程 部分python代码 openId a…...
Java中的多态与继承
Java中的多态与继承 开始学习Java中的多态及如何在多态方法调用中进行方法调用 多态——即对象根据其类型执行特定操作的能力——是Java代码灵活性的核心。四人组(Gang Of Four)创建的许多设计模式都依赖于某种形式的多态,包括命令模式。本文…...
日语学习-日语知识点小记-构建基础-JLPT-N4阶段(12): ておき ます
日语学习-日语知识点小记-构建基础-JLPT-N4阶段(12): ておき ます。 1、前言(1)情况说明(2)工程师的信仰 2、知识点(1)~ておき ます。(2&#x…...
MicroPython for esp32s3开发HX711称重模块指南
一、HX711模块基本介绍 一)、核心功能 24位高精度ADC 专为称重传感器设计的模数转换芯片,支持20mV或40mV满幅差分输入内置128/64倍可编程增益放大器(通道A)及固定32倍增益(通道B) 集成化设计 集成…...
智能机器人在物流行业的应用:效率提升与未来展望
随着全球电子商务的蓬勃发展,物流行业正面临着前所未有的挑战和机遇。传统的物流模式已经难以满足日益增长的市场需求,尤其是在效率、成本控制和精准配送方面。智能机器人技术的出现,为物流行业的转型升级提供了强大的动力。本文将探讨智能机…...
MiWi|Microchip开发的专有无线通信协议,适用于低功耗、短距离的无线个人局域网【无线通信小百科】
1、什么是MiWi MiWi(Microchip Wireless)是一种由 Microchip 公司开发的专有无线通信协议。 它基于 IEEE 802.15.4 标准,适用于低功耗、短距离的无线个人局域网(WPAN,Wireless Personal Area Network)。 M…...
分布式事务,事务失效,TC事务协调者
1. 概述 本方案书旨在解决分布式系统中事务一致性问题,重点阐述全局事务标识(XID)的传递与存储机制、事务协调者(TC)的设计与部署,以及分布式事务失效场景的应对策略。基于业界成熟框架(如Seat…...
ESP32开发-作为TCP客户端发送数据到网络调试助手
代码(作为TCP客户端) #include <SPI.h> #include <EthernetENC.h> // 使用EthernetENC库// 网络配置 byte mac[] {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED}; // MAC地址 IPAddress ip(192, 168, 1, 100); // ESP32的IP IPAddr…...
halcon打开图形窗口
1、dev_open_window 参数如下: 1)Row(输入参数) y方向上,图形窗口距离左上角顶端的像素个数 2)Column(输入参数) x方向上,距离左上角左边的像素个数 3)Width(输入参数) 图形窗口宽度 4)He…...
LVGL -按键介绍 下
4 图标 4.1 内置图标 LVGL 提供了一个很方便的 图标字体 系统,它使用了 lv_label 来显示文本或图标。你可以选择 Font Awesome 或其他图标字体,并将其直接嵌入应用中。LVGL 内建图标字体(如 LV_SYMBOL_*)是可以改变大小的。通过…...
【默子速报】DeepSeek新模型 Prover-V2 报告解读
炸裂,太炸裂了,五一不放假是吧?! 默子加班加点的肝解读! 首先是,Deepseek今天下午显示毫无预兆的在HF上发布了最新的Prover-V2参数 直接让一群人瞬间热血沸腾,想要看看Deepseek又干了什么大事。…...
冰冰一号教程网--介绍采用vuepress搭建个人博客
文章说明 采用vuepress可以快速搭建个人网站,风格统一;采用GPT可以将博文转化为个人博客网站 冰冰一号教程网 访问地址 目前只支持到 2025年05月1号 22点 教程包括主流编程语言:Java、JavaScript、python、C语言、C、C# 教程讲义由GPT生成&am…...
借助电商 API 接口实现电商平台商品数据分析的详细步骤分享
在数字化商业浪潮中,电商平台积累了海量数据。如何从这些数据中挖掘有价值的信息,成为电商企业提升竞争力的关键。电商 API 接口在这一过程中发挥着核心作用,它为获取和分析商品数据提供了高效途径。本文将详细介绍借助电商 API 接口实现电商…...
32单片机——串口
1、通信 通信的方式可以分为多种: (1)按照数据传送方式可分为串行通信和并行通信; ①串行通信 基本特征:数据逐位顺序依次传输 优点:传输线少、布线成本低、灵活度高等优点,一般用于近距离人…...
6.应用层
6. 应用层 1. 概述 应用层是计算机网络体系结构的最顶层,是设计和建立计算机网络的最终目的,也是计算机网络中发展最快的部分 早期基于文本的应用(电子邮件、远程登录、文件传输、新闻组)20世纪90年代将因特网带入千家万户的万维…...
【鸿蒙HarmonyOS】一文详解华为的服务卡片
7.服务卡片 1.什么是卡片 Form Kit(卡片开发服务)提供一种界面展示形式,可以将应用的重要信息或操作前置到服务卡片(以下简称“卡片”),以达到服务直达、减少跳转层级的体验效果。卡片常用于嵌入到其他应…...
深度卷积模型:案例研究
1 为什么要进行案例研究? 过去,计算机视觉中的大量研究都集中在如何将卷积层、池化层以及全连接层这些基本组件组合起来,形成有效的卷积神经网络。 找感觉的最好方法之一就是去看一些示例,就像很多人通过看别人的代码来学习编程一…...
BBR 的 RTT 公平性问题求解
如果 BBR 要跟 reno/cubic 公平,只能顾此失彼,没有任何变通方法,唯一的方法就是在放弃 reno/cubic,但前提你得保证 BBR 流之间是公平的。如果非要照顾 reno/cubic,那就必须要变成 reno/cubic,这就是 BBRv2/…...
SQL命令二:SQL 高级查询与特殊算法
引言 在掌握了 SQL 的基础操作和建表约束后,我们可以进一步探索 SQL 的高级查询功能和一些特殊算法。这些高级技巧能够帮助我们更高效地处理和分析数据,满足复杂的业务需求。 一、查询进阶 (一)简单查询 简单查询通过 select 语…...
Databend 产品月报(2025年4月)
很高兴为您带来 Databend 2025 年 4 月的最新更新、新功能和改进!我们希望这些增强功能对您有所帮助,并期待您的反馈。 BendDeploy:安装 Databend 的新方式 BendDeploy 是由 Databend 开发的一款基于 Kubernetes 的平台,旨在简化…...
Best Video下载器——全能高清无水印视频下载工具
在当今短视频和流媒体盛行的时代,用户经常遇到想要下载视频却受限于平台限制的情况。无论是收藏喜欢的影视片段、保存有价值的教程,还是进行二次创作,一款高效、免费且支持多平台的视频下载工具显得尤为重要。Best Video下载器正是为此而生&a…...
2025东三省D题深圳杯D题数学建模挑战赛数模思路代码文章教学
完整内容请看文章最下面的推广群 一、问题一:混合STR图谱中贡献者人数判定 问题解析 给定混合STR图谱,识别其中的真实贡献者人数是后续基因型分离与个体识别的前提。图谱中每个位点最多应出现2n个峰(n为人数),但由…...
这些是什么充电模块调试手段,对USB、Thermal、DP
在电子产品开发中,充电模块调试及对相关模块的了解是保障产品性能与稳定性的关键环节。下面为你详细介绍: 充电模块调试手段:充电模块负责将外部电源的电能转化为适用于设备的电能,并对电池进行充电管理。调试手段包括使用专业的…...
Gradio全解20——Streaming:流式传输的多媒体应用(2)——构建对话式聊天机器人
Gradio全解20——Streaming:流式传输的多媒体应用(2)——构建对话式聊天机器人 本篇摘要20. Streaming:流式传输的多媒体应用20.2 构建对话式聊天机器人20.2.1 应用概述20.2.2 记录用户音频20.2.3 存储音频并生成响应20.2.4 构建G…...
字节暑期实习-网络运维工程师面经
岗位描述 这个是ByteIntern实习,是暑期实习岗位 岗位 一面 先自我介绍 抓项目技术(会进行确认是什么技术) TCP的三次握手和四次挥手 序列号和确认应答号的位置和大小 序列号是随机的吗? 序列号为什么是随机的? …...
多用户远程 Debugger 服务隔离方案技术实践
多用户远程 Debugger 服务隔离方案技术实践 摘要: 针对多用户同时连接远程 Debugger 服务可能导致的断点冲突、调试流程干扰等问题,本文基于主流调试工具(如 Python debugpy、Java JDWP、Node.js Inspector 等),梳理和…...
华为发布全球首个L3商用智驾ADS4.0
2024年10月2024世界智能网联汽车大会上,余承东讲到:“华为ADS 4.0将于2025年推出高速L3级自动驾驶商用及城区L3级自动驾驶试点,希望加快L3级自动驾驶标准的进程,推动L3级自动驾驶技术的普及。” 世界智能网联汽车大会演讲PPT 所以…...
Silo 科学数据工具库安装与使用指南
Silo 科学数据工具库安装与使用指南 Silo 是一个用于科学数据可视化和分析的工具库,由 Lawrence Livermore National Laboratory (LLNL) 开发。以下是 Silo 的安装和使用方法: 安装 Silo Linux 系统安装 从源码安装: wget https://wci.lln…...
vs2019编译occ7.9.0时,出现fatal error C1060: compiler is out of heap space
问题描述 visual studio 2019编译opencascade 7.9.0时,出现编译错误 fatal error C1060: compiler is out of heap space 解决方案 修改vs2019并行编译的线程个数,默认是12个,我改成了4个,问题解决 Tools > Project and Sol…...
Poco C++全面开发指南:网络应用开发
UDP接收器 项目结构 poco_demo/ ├── CMakeLists.txt ├── src/ │ ├── main.cpp │ └── Receiver.cpp └── include/└── Receiver.h创建 Receiver.h #pragma once#include <Poco/Net/DatagramSocket.h> #include <Poco/Net/SocketAddress.h>…...
Spring AOP概念及其实现
一、什么是AOP 全称Aspect Oriented Programming,即面向切面编程,AOP是Spring框架的第二大核心,第一大为IOC。什么是面向切面编程?切面就是指某一类特定的问题,所以AOP也可以称为面向特定方法编程。例如对异常的统一处…...
业务部绩效考核关键指标与数据分析
在业务部的绩效考核中,重点通过销售额、客户关系、财务管理等多个维度来评估团队的工作成果。绩效考核指标(KPI)不仅帮助公司衡量销售团队的业绩,还能反映出团队在客户管理、财务控制以及市场拓展方面的综合表现。每一个考核指标都…...
线上婚恋相亲小程序源码介绍
基于ThinkPHP、FastAdmin和UniApp开发的线上婚恋相亲小程序源码,这款小程序源码采用了ThinkPHP作为后端框架,其强大的功能与良好的扩展性为程序的稳定运行提供了保障。 FastAdmin作为后台管理框架,使得管理员能够便捷地对用户信息、相亲…...
【SystemC初认识】SystemC是什么?有哪些主要组件?如何简单使用?
【SystemC初认识】SystemC是什么?有哪些主要组件?如何简单使用? 1 SystemC简介2 主要组件3 关于时序与调度4 如何安装4.1 安装C编译器4.2 安装SystemC 库 5 SystemC代码示例6 关于SystemC 仿真与调度7 SystemC 中的常用类和函数8 常见的设计模…...
软考:硬件中的CPU架构、存储系统(Cache、虚拟内存)、I/O设备与接口
文章目录 1. 引言1.1 硬件知识的重要性1.2 软件设计师考试中硬件的考察目标 2. CPU架构2.1 CPU的基本概念2.2 CPU的内部结构2.3 CPU的工作原理2.4 指令集架构(ISA)2.5 多核处理器 3. 存储系统3.1 存储器的基本概念3.2 主存储器(RAM࿰…...
力扣hot100——98.验证二叉搜索树
题目链接:98. 验证二叉搜索树 - 力扣(LeetCode) 首先列举一个错误代码 class Solution { public:bool isValidBST(TreeNode* root) {if(rootnullptr) return true;if(root->right){if(root->right->val<root->val) return f…...
UE 像素和线框盒子 材质
像素材质: 线框盒子材质:...
工业质检领域相关近期顶会论文汇总CVPR2025
目录 异常检测Anomaly Detection多类别数据集开集有监督异常检测Open-set Supervised Anomaly Detection(OSAD)基于多模态大模型能力 骨干网络Mamba系列(mamba为transformer后的新骨干网络形式)其他 目标检测开集识别DETR实例检测…...
leetcode76
目录 803ms超时。。。。越改越超时。。。 一些纠缠 代码分析: 代码问题: 改进建议: 示例代码: The error message you’re seeing indicates that there is a reference binding to a null pointer in your code. This typ…...
Android Studio下载安装教程
## 什么是Android Studio Android Studio是Google官方推出的Android应用开发集成环境(IDE),基于IntelliJ IDEA开发,专门用于Android应用开发。它包含了代码编辑器、可视化布局编辑器、应用性能分析工具、模拟器等功能,为开发者提供了一站式的…...
shell---expect
1.expect的安装 [rootqfedu ~] yum -y install expect 2.expect的语法: 用法: 1)定义expect脚本执行的shell #!/usr/bin/expect -----类似于#!/bin/bash 2)spawn spawn是执行expect之后后执行的内部命令开启一个会话 #功能:用来执行shell的交互命令 3)…...
基于PHP的在线编程课程学习系统
有需要请加文章底部Q哦 可远程调试 基于PHP在线编程课程学习系统 一 介绍 在线编程课程学习系统基于原生PHP开发,数据库mysql,前端jquery.js。系统角色分为学生,教师和管理员。(附带参考设计文档) 技术栈:phpmysqljquery.jsphps…...
深度学习概述
近年来,我们在媒体上到处可见人工智能(AI)这个词,而深度学 习是人工智能的一种实现方法。下面我们就来简单地看一下深度学习具 有怎样划时代的意义。 下面是三张花的图片,它们都具有同一个名字,那究竟是什…...
[原创](现代Delphi 12指南):[macOS 64bit App开发]: [1]如何使用原生NSAlert消息框 (runModal模式)
[作者] 常用网名: 猪头三 出生日期: 1981.XX.XX 企鹅交流: 643439947 个人网站: 80x86汇编小站 编程生涯: 2001年~至今[共24年] 职业生涯: 22年 开发语言: C/C++、80x86ASM、Object Pascal、Objective-C、C#、R、Python、PHP、Perl、 开发工具: Visual Studio、Delphi、XCode、…...
【NumPy完全指南】从基础操作到高性能计算实战
📑 目录 一、NumPy核心价值1.1 科学计算现状分析1.2 ndarray设计哲学 二、核心数据结构解析2.1 ndarray内存布局2.2 数据类型体系 三、矢量化编程实践3.1 通用函数(ufunc)示例3.2 广播机制图解 四、高性能计算进阶4.1 内存预分配策略4.2 Cython混合编程 五、典型应用…...