3D多目标跟踪新思路!基于多传感器融合的加权几何距离关联方法

点击下方卡片,关注“自动驾驶之心”公众号

ADAS巨卷干货,即可获取

点击进入→自动驾驶之心技术交流群

后台回复【ECCV2022】获取ECCV2022所有自动驾驶方向论文!

在自动驾驶领域,3D多目标跟踪(MOT)作为整个感知系统中的关键任务之一发挥着重要作用,它确保了车辆导航和运动规划的高效和安全。大多数现有的MOT方法基于检测,即通过检测跟踪(TBD),并且仅使用单个深度传感器,如激光雷达来检测和跟踪目标。然而,长距离的非常稀疏的点云导致这些方法无法生成非常精确的检测结果,从而影响跟踪结果。因此,本文提出了一种基于传感器融合的3D MOT方法,利用激光雷达和摄像机的检测结果。首先,论文组合并匹配2D和3D检测的结果。其次,使用卡尔曼滤波器预测目标状态。接下来,为了关联预测和检测结果,论文设计了一种基于加权几何距离的数据关联方法。最后,通过卡尔曼滤波器更新匹配检测和预测结果。通过定量评估和测试验证,证明论文提出的基于传感器融合的3D MOT方法确实优于目前阶段的大多数3D MOT算法。

领域相关介绍

在自动驾驶领域,3D MOT扮演着重要角色整个感知系统中的关键任务,确保车辆导航和运动规划的高效和安全。随着自动驾驶技术越来越普及,并在城市智能交通系统中发挥越来越重要的作用,安全已成为首要问题。通过使用目标检测和多目标跟踪来更好地了解车辆周围环境,并了解和预测周围目标的轨迹,车辆可以更安全地驾驶。

自动驾驶感知系统通常分为两个重要任务:检测和跟踪。最近有一些端到端框架同时处理这两个部分,但这些方法的性能和稳定性仍在讨论中。在这一阶段,基于检测的跟踪仍然是3D MOT的主要方法,由于近年来3D目标检测算法(如PointRCNN、PointRGNN和CenterPoint)的巨大改进,跟踪结果也得到了极大改善。然而,这些结果的准确性仍然受到传感器本身特性的限制。在3D MOT中,通常使用激光雷达(光检测和测距)作为传感器来获取数据。然而,由于线束和距离的限制,激光雷达获得的点云在长距离(>80m)处通常非常稀疏,因此对象的尺寸或标签通常难以准确检测和定位。另一方面,由于摄像机的像素分辨率非常高,基于图像的检测可以获得高质量的检测结果,即使距离很长。此外,该阶段的2D检测器可以很好地解决遮挡问题。因此,研究基于传感器融合的3D MOT方法具有重要意义。

在3D MOT的这一阶段,存在各种挑战,例如:目标之间的遮挡和长距离丢失目标的问题。[10]中提出的多传感器融合方案可以在一定程度上解决这些问题。此外,合理的运动模型设计[11]也是一个很好的解决方案。3D MOT中的另一个挑战是如何在预测状态和观测数据之间关联数据;即,通过建立观测状态量和预测状态量之间的成本函数来找到它们之间的对应关系。大多数3D MOT框架倾向于使用3D框之间的联合交集(IoU)进行数据关联,这确实是一种简单有效的方法。然而,通过这样做,很容易忽略其他功能之间的连接,此外,可能会出现一些没有重叠区域的情况。因此,还提出了一些基于欧几里得距离[14]或马氏距离[13]的数据关联方法,结合匈牙利算法[15]或贪婪算法[16]。

本文提出了一种基于传感器融合的加权几何距离数据关联3D MOT方法(WGDMOT)。具体而言,首先融合了激光雷达和摄像机的3D MOT检测结果,并使用加权几何距离作为数据关联方法。该方法以Avergemot为基线,首先使用透视投影将3D检测投影到2D图像平面上,然后使用2D IoU对2D和3D检测进行匹配和融合,以找到匹配良好的3D检测和不匹配的2D检测。最后,使用当前轨迹上的卡尔曼滤波器,使用先前轨迹获得预测的3D对象。使用论文提出的基于加权几何特征代价距离的数据关联方法在3D空间中匹配预测结果和匹配检测结果。然后,来自第一步骤的不成功预测成为2D图像平面中第二数据关联的第二步骤的输入,最后,基于数据关联结果更新状态。

论文在NuScenes上进行性能评估,提出的方法显著提高了baseline EagerMOT(尤其是在行人跟踪上)!

2D和3D目标跟踪

2D跟踪任务

在这个阶段,2D MOT的大部分研究工作仍然集中在基于检测的跟踪,其中两个最重要的方面实际上是 检测和数据关联方法。一些方法的想法是寻找更好的检测器,基于RCNN家族、YOLO、SSD和RetinaNet等检测器,很明显,在不进行很大改变的情况下,可以超越许多以前的2D MOT方法。其它方法侧重于设计数据关联的鲁棒成本距离,如[27,28]使用匈牙利语进行数据关联,以及[16]使用贪婪算法。随着深度学习研究的进一步发展,研究人员也开始不仅仅关注单个检测,还有一些方法提出了端到端[19,29]方法,将检测和跟踪作为一个整体进行训练,然后输出结果。然而,鲁棒性和泛化仍在讨论中。

3D跟踪任务

大多第一批3D MOT方法基于传统的聚类检测方法,例如使用下采样、接地点分割和非接地点聚类。然而,这些方法非常容易受到噪声的影响,因为它们依赖于边界盒过程的计算来获得检测结果。此外,边界框的尺寸的精度和估计是非常真实的值,具有相对较大的误差。随着端到端检测方法[7,31]的出现及其有效性的不断提高,3D MOT的检测组件已逐渐被端到端方法取代。最近,[32]提出了一个非常简单的3D MOT框架,AB3DMOT[32],该框架使用3D IoU作为数据关联的成本距离,能够实现非常高的FPS。然而,该方法非常依赖于3D检测器的结果,并且容易被遮挡。随后,[33]提出使用马氏距离代替3D IoU作为基于AB3DMOT[32]的成本距离,从而解决了不存在重叠区域的情况。这是对AB3DMOT[32]的一个相对较大的改进,但仍然受到3D探测器的限制。由于单传感器检测总是存在相对较大的局限性,[17]分别提出了激光雷达和摄像机的融合方法,建议将预测轨迹和融合检测结果按比例距离关联起来。然而,马氏距离和标度距离都没有考虑不同变量之间的加权关系。因此,论文提出了一种新的代价距离,它考虑了不同几何特征之间的加权关系,可以有效地提高小目标的跟踪性能。

论文方法

论文提出了基于最近Eargemot[17]架构的WGFMOT方法。方法首先融合2D和3D检测的检测结果,然后基于融合结果和卡尔曼滤波器预测的结果执行两阶段数据关联。数据关联的第一阶段在3D空间上执行,其中论文建议使用加权几何特征作为数据关联的成本距离,第二阶段在2D图像平面上执行,使用投影变换和2D IoU进行二次匹配,最后更新跟踪轨迹。该方法能够充分利用相机和激光雷达的检测结果:

(1)相机可以提供比较的2D检测结果,从而减少3D检测中错误检测的机会;

(2) 激光雷达可以提供更精确的3D检测对象位置信息;

(3) 使用提出的加权几何特征距离,可以考虑不同几何特征之间的加权关系,以实现更好的跟踪性能;

论文使用centerpoint作为3D检测器!

融合通常分为前融合和后融合,其中前融合是使用不同传感器数据的组合作为输入,以便输出检测结果。在论文提出的方法中,使用了后融合,它融合了不同检测的结果。这种融合方法比前融合更简单、更有效,并且不需要对原始数据进行额外的变换。

如下图所示,基于来自截面A的检测结果D2d和D3d,首先将3D边界框投影到2D图像平面上。然后,计算用于匹配的2D IoU,并将匹配结果mD3d输出到第一数据关联部分,而将不匹配检测uD2d输出到第二数据关联部分。这样做部分解决了FP(假阳性)的问题,因为3D检测器比2D检测器更容易出现错误检测。

c1d083e577aab5dbb856428361ff08f2.png

状态初始化和预测

MOT本质上是一个多变量状态估计问题,即预测通过使用前一个目标,确定当前阶段目标的状态和运动模型。为了简化论文的模型,建议使用常数速度模型(CA)和卡尔曼滤波器(KF)[34]预测状态St(xi,yi,zi,li,wi,hi,thetai,vxi,vyi,vzi)的三维对象。其中t表示第t帧,i表示该帧的第i个对象。

数据关联

论文提出的方法中,数据关联分为两个阶段。第一阶段是在3D空间中,使用提出的加权几何距离计算成本,第二阶段是在2D图像平面中,使用匈牙利算法的2D IoU。

第一阶段,从步骤B获得融合检测结果mD3d,在步骤C中,获得预测结果P3d,为了合理计算匹配相关性,设计了用于计算检测和预测之间相似性的加权几何距离:

7ca6f74a5b34823e6509f57beb17fc2e.png

EagerMOT [17]提出的缩放距离考虑了dimensions和坐标具有相同的权重(重要性),但实际上不同跟踪的属性不同,因此dimensions和坐标应不能承受同等的权重。论文提出的成本距离通过调整w1、w2和w3的大小来调整它们的重要性,这导致小目标跟踪的显著改进。成本距离也优于基于3D IoU和基于欧几里得距离的方法。通过执行此步骤,论文获得了关联的检测和预测结果(Di3d,Tj3d),其被输入到更新阶段,以及没有关联的预测结果uT3d,其被输入数据关联的第二阶段:

第二阶段,未成功匹配的D2d在第一阶段中进一步与uT3d输出匹配,这通过使用简单的2D IoU和匈牙利算法将uT3d投影到2D图像平面上来执行。该过程主要用于对FN(假阴性)情况执行附加关联。该步骤可以解决部分遮挡导致的漏检情况,进一步提高跟踪的稳定性,匹配预测2mT3d被输出到更新阶段。

状态更新

给定由数据关联驱动的检测和预测的匹配对,可以使用卡尔曼滤波器来更新该帧中的轨迹,主要更新状态量为[x,y,z,θ,l,w,h,vx,vy,vz]。

实验评估

论文基于NuScenes评估了所提方法,NuScenes包含1000个场景,每个场景长20秒,并使用具有23个类和8个属性的3D边界框进行完整注释。数据集使用2Hz的频率对关键帧(图像、激光雷达)进行采样,并使用语义类别、属性(可见性、活动性和姿势)和矩形(包含x、y、z、宽度、长度、高度和偏航)为23个对象类别中的每一个对每个关键帧中的每个目标进行注释。

本文遵循NuScenes跟踪挑战,并通过以下指标评估:

AMOTA(平均多目标跟踪精度):主要评估指标(不同召回阈值下MOTA[35]指标的平均值)

AMOTP(平均多目标跟踪精度)

MOTA(多目标跟踪精度):这项措施结合了三个方面(误报、漏检目标和身份切换)

MOTP(多目标跟踪精度):注释边界框和预测边界框之间的未对齐

FP(误报数):误报总数

FN(假阴性数):假阴性(漏检)总数

ID(标识开关的数量):标识开关的总数

97262975c544f34d11207f7a87d0779b.png

在行人追踪上加权几何距离加权系数的消融实验:

46ee0e36e365839320a18d381875187c.png

NuScenes数据集上不同数据关联方法的比较:

cb1ef9189234bae2f063723f452ff93f.png bb7d2672b8da9225d58cc4827362cc97.png

参考

[1] Sensor Fusion Based Weighted Geometric Distance Data Association Method for 3D Multi-object Tracking.

自动驾驶之心】全栈技术交流群

自动驾驶之心是首个自动驾驶开发者社区,聚焦目标检测、语义分割、全景分割、实例分割、关键点检测、车道线、目标跟踪、3D目标检测、多传感器融合、SLAM、光流估计、轨迹预测、高精地图、规划控制、AI模型部署落地等方向;

加入我们:自动驾驶之心技术交流群汇总!

自动驾驶之心【知识星球】

想要了解更多自动驾驶感知(分类、检测、分割、关键点、车道线、3D目标检测、多传感器融合、目标跟踪、光流估计、轨迹预测)、自动驾驶定位建图(SLAM、高精地图)、自动驾驶规划控制、领域技术方案、AI模型部署落地实战、行业动态、岗位发布,欢迎扫描下方二维码,加入自动驾驶之心知识星球(三天内无条件退款),日常分享论文+代码,这里汇聚行业和学术界大佬,前沿技术方向尽在掌握中,期待交流!

d85ea94b6a2f61de4e20a443a66b0937.jpeg

<think> 嗯,用户想了解多模态NMS融合(MM-NMS)的原理、实现和应用。这个主题挺专业的,用户应该是在做计算机视觉或者多模态融合相关的研究或开发。 用户提到的参考文献里有多模态融合和特征融合的内容,不过没有直接提到MM-NMS。看来需要从更广泛的资料来整理这个技术点。多模态NMS融合的核心应该是解决不同模态检测结果之间的不一致性问题,比如可见光和红外图像对同一个物体的检测可能有位置偏差。 从原理上看,MM-NMS需要解决几个关键问题:如何对齐不同模态的检测框,如何设计融合策略,以及如何评估不同模态的置信度。特别是对齐问题,因为不同传感器的时间同步和空间标定误差会导致检测框不重合。 实现方法方面,用户可能更关心具体代码怎么做。可以介绍特征级和决策级两种主要实现路径,重点说明决策级融合加权融合和自适应阈值这些实用技巧。考虑到用户可能是工程师,应该给出一些实现示例的伪代码。 应用场景上,用户提到的工业检测案例很有参考价值,特别是可见光+红外的组合在安防和自动驾驶中很常见。可能还要补充说明这个技术对算力的要求,毕竟要处理多路数据。 用户之前的提问都比较技术向,这次的问题也很聚焦,说明ta有明确的研究需求。回答时要特别注意技术细节的准确性,比如mAP指标的提升幅度要符合实际研究数据。不过用户给的参考文献里提到特征融合提升1.4mAP,这个数据可以借用来说明问题。 最后生成的问题要覆盖延伸方向,比如优化方法、硬件部署这些工程落地时实际会遇到的挑战。用户可能接下来就会问到这些实施细节。 </think>好的,我们来详细探讨一下**多模态非极大值抑制(Multimodal Non-Maximum Suppression, MM-NMS)** 的原理、实现方法以及应用场景。这项技术在处理来自不同传感器或模态(如可见光RGB、红外IR、深度Depth、激光雷达LiDAR点云等)的目标检测结果融合时至关重要。 ## 多模态NMS融合 (MM-NMS):原理、实现与应用 ### 1. 原理 (Principle) 核心目标:在融合来自不同模态的目标检测框(Bounding Boxes)时,更准确、更鲁棒地消除冗余检测,并保留最可靠的目标实例。 * **传统NMS的局限:** * 单模态假设:传统NMS仅处理单一模态(如仅RGB图像)产生的检测框。它基于预设的交并比(IoU)阈值和置信度分数来抑制重叠框。 * 模态差异问题:不同模态对同一目标的检测可能存在差异: * **位置偏差:** 不同传感器校准误差、视角差异或目标在不同模态下表现不同(如热目标在IR中更突出但边缘模糊),导致同一目标的检测框位置和大小不完全重合。 * **置信度差异:** 同一目标在不同模态下的可见性、清晰度不同,导致检测器给出的置信度分数差异显著(例如,RGB中遮挡的目标在IR中可能清晰可见,反之亦然)。 * **模态特异性误检:** 某些模态可能产生该模态特有的假阳性(如IR中的热源干扰,RGB中的光影干扰)。 * **MM-NMS的核心思想:** * **跨模态融合决策:** 不再孤立处理每个模态的检测结果,而是将所有模态的检测框(及其位置、大小、置信度、模态类型、甚至特征信息)**共同**纳入考虑。 * **利用模态互补性:** 当一个模态的检测结果存在不确定性(如低置信度、被遮挡)时,利用其他模态提供的可靠信息进行补偿或验证。 * **更鲁棒的框选择和抑制:** 设计融合策略,综合考虑多个模态的证据来决定哪些框是真正的目标,哪些是冗余或错误的,并生成更准确的最终检测框。 ### 2. 实现方法 (Implementation Methods) MM-NMS的实现策略多样,根据融合发生的阶段主要分为两类: * **A. 决策级融合 (Late Fusion / Decision-Level Fusion):** * **思路:** 先让每个模态的检测器独立运行,生成各自的检测框列表。然后,将这些来自不同模态的检测框集合**合并**,送入一个**统一的MM-NMS模块**进行处理。 * **关键步骤:** 1. **模态对齐 (Alignment):** (可选但推荐)考虑不同模态间潜在的时空未对齐(时间戳差异、空间标定误差)。可能需要进行时间同步和/或坐标变换,将所有检测框投影到同一个参考坐标系(如相机坐标系、世界坐标系)。 2. **框关联 (Box Association):** 对于合并后的检测框集合,确定哪些框(来自不同模态)可能对应于同一个真实世界目标。常用方法: * **模态间IoU (Cross-Modal IoU):** 计算不同模态检测框之间的IoU。 * **距离度量 (Distance Metric):** 计算框中心点距离或其他几何特征距离。 * **特征相似性 (Feature Similarity):** 如果检测器输出特征向量,计算特征相似度(如余弦相似度)。 * 通常结合阈值(如IoU > `θ_associate`)将框分组到不同的“簇”(Cluster)中,每个簇代表一个候选目标。 3. **簇内融合/选择 (Intra-Cluster Fusion/Selection):** 对每个关联好的簇,决定保留哪个/哪些框作为最终输出,或者融合生成一个新框。常用策略: * **加权融合 (Weighted Box Fusion - WBF):** 对簇内所有框的位置和尺寸进行加权平均,权重通常是各框的置信度分数或其函数(有时考虑模态权重)。融合后的框置信度可以是簇内置信度的最大值或平均值。 * **置信度加权选择:** 直接选择簇内置信度最高的框作为代表(需谨慎处理模态间置信度不可比问题)。 * **基于模态可靠性的选择:** 根据目标类型、场景条件(如光照、天气)或特定模态在该条件下的可靠性评估,选择最可靠模态的框。 * **自适应阈值NMS:** 在簇内应用NMS,但IoU阈值或置信度选择策略根据模态组合或目标属性自适应调整。 4. **簇间NMS (Inter-Cluster NMS):** 经过簇内融合/选择后,每个簇输出一个(或少量)最终框。此时可以再对所有簇的输出结果应用一次传统的单模态NMS(基于IoU和融合后置信度),以消除最终结果中可能残留的少量重叠框。 * **优点:** 实现相对简单,易于模块化,可兼容现有单模态检测器。 * **缺点:** 可能丢失模态间的细粒度互补信息(如特征级信息);关联步骤的准确性对最终性能影响大;最终融合依赖于各模态检测器的中间结果(框),如果某个模态检测器失效,性能会下降。 * **B. 特征级融合 (Early Fusion / Feature-Level Fusion):** * **思路:** 在检测过程的更早期(通常在骨干网络或区域建议网络RPN阶段)就将不同模态的特征进行融合融合后的特征送入一个**统一的检测头**,该检测头直接输出最终的检测框和置信度。在这个统一的检测流程中,NMS(可以是传统的或改进的)仅需在最终输出上应用一次。 * **关键:** * **融合架构设计:** 设计有效的网络结构融合异构模态特征(如RGB+Depth, RGB+IR)。常用技术包括:通道拼接(Concatenation)、逐元素相加/相乘、基于注意力的融合(如学习不同模态特征在空间位置上的重要性权重)。 * **端到端训练:** 整个网络(特征提取、融合、检测头)联合训练,使融合过程能够最大程度地利用模态互补性,学习到对最终检测任务最优的融合表示。 * **NMS的角色:** 此时应用的NMS通常是标准NMS(或轻微改进版),因为它处理的是融合后特征产生的单一检测结果流。MM-NMS的思想主要体现在**特征融合过程**中,让网络学会生成更准确、冗余更少的检测框。 * **优点:** 有机会学习到更优的模态互补表示,理论上可以获得更好的性能;最终只需一次NMS,更高效;对单一模态检测器失效可能更具鲁棒性(如果融合充分)。 * **缺点:** 网络设计复杂,训练难度大,需要配对的多模态训练数据;灵活性较低(改变模态组合可能需要重新设计或训练)。 ### 3. 应用场景 (Application Scenarios) MM-NMS在需要融合多种传感器数据进行目标检测的场景中至关重要: 1. **自动驾驶 (Autonomous Driving):** * 融合摄像头(RGB)、激光雷达(LiDAR点云)、毫米波雷达(Radar)的检测结果。 * **挑战:** LiDAR点云稀疏且可能受天气影响,RGB易受光照/天气影响,Radar精度较低但测速准。MM-NMS(尤其是决策级融合如WBF)能有效融合三者的优势,在雨雾、夜间等复杂环境下提供更稳定、准确的车辆、行人、障碍物检测。例如,在RGB图像中因强光看不清的车,LiDAR或Radar可能清晰检测到,MM-NMS能正确融合或选择这些结果[^1]。 2. **智能监控与安防 (Intelligent Surveillance & Security):** * 融合可见光摄像头(RGB)和热成像摄像头(IR)的检测结果。 * **挑战:** RGB在白天和光照良好时效果好,IR在夜间、烟雾、伪装或部分遮挡情况下优势明显。MM-NMS能确保全天候鲁棒的人体、车辆检测。例如,在黑暗环境中,IR检测到热源(人),而RGB可能一片漆黑,MM-NMS能选择IR的结果[^2]。 3. **机器人感知 (Robotic Perception):** * 移动机器人或无人机上融合RGB、深度(Depth from RGB-D相机或立体视觉)、有时包括IR或LiDAR的检测结果。 * **挑战:** 需要精确定位和避障。深度信息对距离感知至关重要,RGB提供丰富的纹理。MM-NMS有助于在复杂环境中准确识别和定位目标及障碍物。 4. **工业检测 (Industrial Inspection):** * 融合可见光、红外热成像(检测过热点)、X光、甚至超声等模态进行产品缺陷检测(如电子元件焊接缺陷、材料内部裂纹、结构件损伤)。引用[2]提到的电子产品生产线检测是典型应用。 * **挑战:** 不同缺陷在不同模态下表现不同(如内部裂纹在X光下可见,表面裂纹在可见光下可见,过热点在IR下可见)。MM-NMS能综合判断是否存在缺陷及其位置、类型,提高检测的覆盖率和准确率[^2]。 5. **遥感图像分析 (Remote Sensing):** * 融合高分辨率光学影像、合成孔径雷达(SAR)影像、多光谱/高光谱影像进行地物分类、建筑物检测、变化检测等。 * **挑战:** 光学影像易受云层影响,SAR不受光照和云雾影响但对特定地物敏感。MM-NMS能融合不同成像原理带来的互补信息,提升检测精度和鲁棒性。 ### 总结 (Conclusion) 多模态NMS融合(MM-NMS)是针对多传感器目标检测中模态差异和冗余抑制问题的关键技术。其核心在于**跨模态地整合信息**,利用不同传感器的互补优势,做出更鲁棒、更准确的检测决策。实现上主要分为**决策级融合**(合并各模态检测结果后处理)和**特征级融合**(早期融合特征后统一检测)两条路径。决策级融合(如WBF)更灵活易用,特征级融合潜力更大但设计训练更复杂。MM-NMS在自动驾驶、全天候监控、工业质检、机器人感知、遥感等依赖多模态感知的领域具有广泛且重要的应用价值,是提升系统在复杂环境下感知能力的关键环节。未来优化方向可能包括更鲁棒的跨模态关联方法、端到端可学习的融合-NMS模块、以及对边缘计算更友好的轻量化MM-NMS实现[^1]。 ```python # 伪代码示例:决策级MM-NMS (Weighted Box Fusion 思路) def mm_nms_wbf(all_detections, iou_thresh=0.5, conf_type='avg'): """ all_detections: List of lists. 每个子列表代表一个模态的检测结果,每个检测是 [x1, y1, x2, y2, conf, class_id, modality_id] iou_thresh: 用于关联框的IoU阈值 conf_type: 'avg' 或 'max', 融合框置信度计算方式 """ # 0. (可选) 模态对齐: 将所有框转换到统一坐标系 # 1. 按类别分组 (如果需要处理多类别) clusters = [] # 存储关联好的簇 [ [det1_modA, det2_modB, ...], ... ] # 2. 框关联 (简化版: 遍历所有框对) for i, det_i in enumerate(all_detections_flattened): cluster_found = False for cluster in clusters: for det_j in cluster: if iou(det_i, det_j) > iou_thresh and det_i['class_id'] == det_j['class_id']: cluster.append(det_i) cluster_found = True break if cluster_found: break if not cluster_found: clusters.append([det_i]) # 3. 簇内融合 (WBF) final_detections = [] for cluster in clusters: total_conf = sum(d['conf'] for d in cluster) weights = [d['conf'] / total_conf for d in cluster] # 归一化权重 # 融合框坐标 (加权平均) fused_box = [ sum(w * d['x1'] for w, d in zip(weights, cluster)), sum(w * d['y1'] for w, d in zip(weights, cluster)), sum(w * d['x2'] for w, d in zip(weights, cluster)), sum(w * d['y2'] for w, d in zip(weights, cluster)) ] # 融合置信度 if conf_type == 'avg': fused_conf = total_conf / len(cluster) elif conf_type == 'max': fused_conf = max(d['conf'] for d in cluster) # 类别取一致 (假设簇内类别相同) fused_class = cluster[0]['class_id'] final_detections.append(fused_box + [fused_conf, fused_class]) # 4. (可选) 对final_detections应用一次传统NMS(基于融合后框的IoU和融合后置信度) final_detections = traditional_nms(final_detections, iou_thresh_nms=0.45) return final_detections ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值