mmdetection实战:手把手教你用GFL提升目标检测精度(附完整代码)

目标检测论文阅读:GFL算法笔记 单阶段检测器基本上是把目标检测分为稠密分类和定位(即边界框回归)两个过程。分类通常用Focal Loss优化,边界框定位一般在Dirac delta分布下学习。单阶段检测器最近的一个趋势是引入一个单独的预测分支来评估定位的质量,预测的质量通过促进分类来提升检测性能。本文深入研究了上述三个基本要素的表示:质量估计、分类和定位。在现有的实践中发现了两个问题:①训练和推理阶段中质量估计和分类的使用不一致;②定位时的Dirac delta分布不够灵活。为了解决这些问题,我们为这些元素设计了新的表示。 阅读详情

实战进阶:在mmdetection中深度集成GFL,解锁目标检测精度新高度

如果你已经用mmdetection跑通了几个经典模型,比如Faster R-CNN、RetinaNet,甚至玩过ATSS,感觉精度卡在了一个瓶颈,想再往上冲一冲,那么今天聊的GFL(Generalized Focal Loss)很可能就是你正在寻找的那把钥匙。它不是简单地换一个损失函数,而是一套从标签分配、分类置信度到边界框回归的协同优化哲学。很多朋友看过GFL的论文,觉得理论很美但落地有点“虚”,不知道从哪下手改代码,参数怎么调,效果到底如何。这篇文章,我就以一个实战者的角度,带你一步步将GFL深度集成到你的mmdetection项目中,避开我踩过的坑,分享那些能让模型精度切实提升的调参细节和验证方法。

1. 理解GFL:不止是损失函数,更是协同优化框架

在动手改代码之前,我们必须跳出“GFL只是一个新Loss”的固有认知。GFL的核心思想,是解决传统单阶段检测器中长期存在的训练与推理不一致以及边界框表示不够灵活两大顽疾。

训练与推理的割裂是个老问题。训练时,分类分支和质量估计分支(如Centerness或IoU分支)通常是分开独立优化的。分类分支用Focal Loss处理极端的正负样本不平衡,质量估计分支则只对正样本进行监督。但到了推理阶段,我们却将分类得分与质量得分相乘,作为非极大值抑制(NMS)排序的依据。这就产生了一个隐患:一个被分类分支判定为背景(低分类得分)的预测框,如果其质量分支“胡乱”给出了一个极高的分数(比如0.99),两者相乘后,其最终得分可能会超过一个真正的目标框(分类得分中等,质量得分也中等)。由于质量分支在训练时从未见过负样本,它对负样本的输出是未定义的、不可靠的。

GFL通过Quality Focal Loss (QFL) 巧妙地化解了这个问题。它不再让网络单独预测一个质量分数,而是将定位质量(如IoU)的监督信号直接融合到分类标签中。具体来说,对于正样本,其分类标签不再是简单的“1”(one-hot),而是一个介于0到1之间的软标签,这个值就是该预测框与其对应真实框的IoU。对于负样本,其分类标签则为0。这样,网络预测出的分类得分,本身就同时蕴含了“是什么类别”以及“定位得有多准”双重信息。训练和推理完全对齐,都用这个统一的得分进行优化和排序,从根本上杜绝了不一致性。

另一方面,传统的边界框回归(如Smooth L1 Loss)本质上是让网络去学习一个狄拉克δ分布,即预测一个确定性的偏移量。这在目标边界清晰时很有效,但当目标边界模糊(比如被遮挡、阴影、运动模糊)时,这种单一的确定性表示就显得力不从心。

GFL的Distribution Focal Loss (DFL) 则将边界框的偏移量建模为一个连续的概率分布。网络不再直接输出一个值,而是输出在可能值域上的一系列概率。最终的位置预测值由这些概率的期望计算得出。这种方式让网络能够学习到边界位置的不确定性。例如,对于一个模糊的边缘,网络预测的概率分布可能会更平缓、更分散;而对于清晰的边缘,分布则会集中且尖锐。这种灵活的表示能力,让模型对复杂场景的鲁棒性大大增强。

简单来说,GFL = QFL + DFL。QFL统一了分类与质量评估,实现了训练-测试一致性;DFL用概率分布建模边界框,提升了回归的表示能力和鲁棒性。两者协同,构成了GFL提升检测精度的理论基础。

2. mmdetection中集成GFL:从配置到代码的完整流程

mmdetection框架的优秀之处在于其高度的模块化。集成GFL,我们主要需要关注三个核心模块的配置与替换:Head、Loss和Assigner。下面我们以最常用的RetinaNet为基底模型进行改造。

2.1 模型配置文件的修改

首先,你需要准备一个基础的配置文件。我们可以从 configs/retinanet/ 目录下找一个配置(如 retinanet_r50_fpn_1x_coco.py)作为起点,复制并重命名为 retinanet_r50_fpn_1x_coco_gfl.py。

关键的修改在于 model 部分的 bbox_head 和 train_cfg:

# 在 model 配置部分
model = dict(
    type='RetinaNet',
    backbone=...,
    neck=...,
    bbox_head=dict(
        type='GFLHead',  # 将原来的 RetinaHead 替换为 GFLHead
        num_classes=80,
        in_channels=256,
        stacked_convs=4,
        feat_channels=256,
        anchor_generator=dict(...),
        bbox_coder=dict(
            type='DistancePointBBoxCoder',  # GFL 使用基于点的编码器
        ),
        loss_cls=dict(
            type='QualityFocalLoss',  # 使用 QFL
            use_sigmoid=True,
            beta=2.0,  # Focal Loss 中的 beta 参数
            loss_weight=1.0,
        ),
        loss_bbox=dict(
            type='GIoULoss',  # 回归损失常用 GIoU
            loss_weight=2.0,
        ),
        loss_dfl=dict(  # 新增 DFL 损失
            type='DistributionFocalLoss',
            loss_weight=0.25,  # 论文中推荐的权重
        ),
    ),
    train_cfg=dict(
        assigner=dict(
            type='ATSSAssigner',  # GFL 论文中与 ATSS 分配器搭配使用
            topk=9,
        ),
        allowed_border=-1,
        pos_weight=-1,
        debug=False,
    ),
    test_cfg=dict(...)
)

关键改动解析:

  1. bbox_head 类型:从 RetinaHead 改为 GFLHead。GFLHead 内部已经集成了同时预测分类/质量联合得分以及边界框分布的功能。
  2. bbox_coder:改为 DistancePointBBoxCoder。这是因为GFL的回归目标是预测点到四条边的距离,这是一种更灵活的表示方式。
  3. 损失函数:
    • loss_cls:替换为 QualityFocalLoss,这就是QFL。beta 参数控制难易样本的调节力度,默认为2.0是一个不错的起点。
    • loss_bbox:通常使用 GIoULoss 或 IoULoss,比传统的Smooth L1 Loss对框的几何形状更敏感。
    • 新增 loss_dfl:这是DFL损失,权重通常设为0.25,与分类损失(1.0)和回归损失(2.0)协同工作。
  4. 正负样本分配器:在 train_cfg 中,将 assigner 改为 ATSSAssigner。GFL原论文的实验表明,其与ATSS分配策略结合能取得最佳效果。topk 参数通常设为9。

2.2 核心代码逻辑窥探与自定义

虽然mmdetection已经实现了GFL,但理解其核心代码有助于我们调试和自定义。GFLHead 的前向传播和损失计算是重点。

分类/质量联合预测:在 GFLHead 中,分类卷积层 (cls_convs 和 retina_cls) 的输出通道数仍然是 num_classes * num_anchors,但其意义变了。它现在预测的是“属于某类且定位质量为某个值”的联合似然。在计算QFL时,标签是软标签(IoU值),损失函数会据此进行监督。

边界框分布预测:回归卷积层 (reg_convs 和 retina_reg) 的输出通道数变为 4 * (reg_max + 1) * num_anchors。这里的 reg_max 是一个关键超参数,它定义了将距离离散化为多少个区间(默认为16)。网络为每条边的距离预测一个 (reg_max + 1) 维的概率分布。最终的距离值通过 softmax 后的概率与预设的离散坐标值加权求和(求期望)得到。

# 简化的 DFL 计算过程示意(非完整代码)
import torch
import torch.nn.functional as F

# 假设 reg_max = 16, 网络输出为 [batch, 4*(16+1), H, W]
reg_output = ... # 网络回归分支输出
reg_output = reg_output.view(-1, 4, 17, H, W) #  reshape

# 对最后一个维度(分布维度)进行 softmax,得到概率
prob = F.softmax(reg_output, dim=2)

# 预设的离散坐标,例如 [0, 1, 2, ..., 16]
project = torch.arange(17, device=prob.device)

# 计算期望值作为最终的回归偏移量
bbox_pred = torch.sum(prob * project, dim=2) # 形状 [batch, 4, H, W]

如果你想调整 reg_max,需要在 bbox_head 的配置中指定:

bbox_head=dict(
    type='GFLHead',
    ...
    reg_max=16, # 可以尝试调整为 8 或 24,观察效果
    ...
),

2.3 训练脚本与参数调整

准备好配置文件后,使用标准的训练命令即可启动:

python tools/train.py configs/your_config/retinanet_r50_fpn_1x_coco_gfl.py

初期训练的关键观察点:

  1. 损失曲线:关注 loss_cls (QFL)、loss_bbox (GIoU) 和 loss_dfl 的下降趋势。初期 loss_dfl 可能波动较大,这是正常的,因为分布学习需要时间。确保几个损失值最终都能平稳下降。
  2. 学习率策略:GFL模型对学习率比较敏感。如果是从头训练,可以使用默认配置。如果是基于预训练模型微调,可以考虑使用更小的初始学习率(如 0.01 * 0.1)。
  3. 权重衰减:过拟合风险较高时,可以适当增加权重衰减(weight_decay)的值。

注意:GFL的收敛速度有时会比传统损失函数稍慢一些,尤其是在训练早期。请不要因为前几个epoch的精度提升不明显而轻易放弃,建议至少完成完整的1x schedule(12个epoch)再进行评估。

3. 效果验证与对比实验设计

“有没有用,数据说话。” 集成GFL后,我们必须设计严谨的对比实验来验证其有效性。一个完整的实验报告应包含以下部分:

3.1 基准模型选择与实验设置

  • 对照组:原始的 RetinaNet + Focal Loss + SmoothL1 Loss。
  • 实验组1:RetinaNet + ATSS Assigner + Focal Loss + GIoU Loss。此组用于剥离ATSS分配器带来的增益。
  • 实验组2(目标组):RetinaNet + ATSS Assigner + GFL (QFL+DFL) + GIoU Loss。

控制变量:确保所有实验使用完全相同的数据集、数据增强、训练周期(schedule)、优化器参数、随机种子。唯一变量就是损失函数和分配器。

3.2 评价指标与结果分析

在COCO数据集上,主要看 AP、AP50、AP75 以及 APs、APm、APl(小、中、大目标精度)。

模型配置AP (%)AP50 (%)AP75 (%)APs (%)APm (%)APl (%)训练时长 (相对)
RetinaNet (Baseline)36.555.439.120.440.348.11.00x
+ ATSS Assigner39.1 (+2.6)57.642.223.142.950.8~1.02x
+ ATSS + GFL40.7 (+4.2)59.344.124.844.552.3~1.05x

(上表为示例数据,实际提升幅度因数据集和实现细节而异)

结果解读:

  1. 整体精度:引入ATSS后,AP有显著提升(+2.6),这印证了正负样本分配策略的重要性。在此基础上,GFL带来了进一步的提升(+1.6),总提升达到+4.2 AP,证明其有效性。
  2. 不同IoU阈值:AP75 的提升往往比 AP50 更大。这说明GFL(特别是DFL)对于精确定位的改善尤为明显,因为边界框的概率分布建模能更好地拟合高IoU所需的严苛位置条件。
  3. 不同尺度目标:观察 APs、APm、APl。通常GFL对小目标(APs)的提升会比较可观。因为小目标本身边界模糊、特征弱,DFL对其不确定性的建模和QFL对分类-质量一致性的要求,能更有效地提升小目标的检测可靠性。

3.3 可视化分析:不仅仅是数字

除了冷冰冰的指标,可视化能提供更直观的洞察。

  • 定位质量热图:可以可视化QFL预测出的“分类-质量联合得分”热图。你会发现,高响应区域不仅与目标类别对应,还与目标的中心区域和边界清晰度高度相关,这与“质量”的定义是吻合的。
  • 边界框分布可视化:对于某些预测框,可以将其DFL预测的四个边的距离分布图绘制出来。一个定位准确的框,其分布应该是尖锐的单峰;而定位模糊或有歧义的框,其分布可能呈现双峰或多峰,这直观地展示了模型对边界位置的不确定性认知。

这些可视化工作虽然不直接提升指标,但能极大地增强你对模型行为的理解,也是调试和说服团队的有力工具。

4. 高级调优与疑难排错

当基础集成完成并验证有效后,我们可以进行更深入的调优,以榨取GFL的最后一分性能,并解决可能遇到的问题。

4.1 超参数调优策略

  1. reg_max 的选择:这是DFL的关键参数。值越大,表示对边界位置的离散化越精细,表示能力越强,但也会增加计算量和过拟合风险。论文默认16是一个稳健值。你可以尝试 [8, 12, 16, 20, 24]。调优建议:在验证集上观察 AP75 的变化,这个指标对定位精度最敏感。
  2. QFL中的 beta 参数:beta 控制着Focal Loss中难易样本的权重。beta 越小,对困难样本(低质量正样本、易分错负样本)的关注度越高。默认2.0适用于大多数场景。如果数据集特别嘈杂(标注质量差),可以尝试略微降低 beta(如1.5);如果数据集很干净,可以保持或略增。
  3. 损失权重平衡:loss_cls、loss_bbox (GIoU)、loss_dfl 的权重(loss_weight)默认是 1.0:2.0:0.25。这个比例在COCO上效果很好。如果你的任务中定位精度至关重要(如遥感图像、文档检测),可以尝试适当提高 loss_dfl 的权重(如0.5)。调整原则:每次只调整一个权重,观察验证集精度变化,特别是不同指标间的平衡。

4.2 常见问题与解决方案

  • 问题:训练初期loss震荡剧烈,甚至出现NaN。
    • 排查:首先检查学习率是否过高。GFL的DFL部分涉及softmax操作,初始阶段梯度可能不稳定。
    • 解决:降低初始学习率(例如乘以0.5倍)。确保使用了梯度裁剪(grad_clip)。检查数据中是否存在异常标注(如坐标超出图像范围)。
  • 问题:精度提升不明显,甚至低于基线模型。
    • 排查:
      1. 确认是否正确使用了 ATSSAssigner。错误的 topk 参数或IoU计算方式会影响样本分配。
      2. 检查 bbox_coder 是否已改为 DistancePointBBoxCoder。
      3. 验证 reg_max 是否与模型输出通道数匹配。
    • 解决:用一个极简数据集(如PASCAL VOC)过拟合少量图像,确保模型能学到接近完美的结果。如果在小数据集上都无法过拟合,说明代码集成有根本错误。
  • 问题:推理速度明显下降。
    • 分析:GFLHead的计算量确实比标准RetinaHead稍大,因为回归分支的输出通道数增加了(4*(reg_max+1) vs 4)。
    • 优化:考虑使用更高效的Backbone(如ResNet替换为ResNeXt、RegNet)或Neck(如PAFPN)来弥补。或者,尝试减小 reg_max(如从16减到12),在精度和速度间取得平衡。

4.3 与其他先进技术的结合

GFL是一个强大的“插件”,它可以与许多其他检测技术结合,产生叠加效应:

  • 与更强的Backbone/Neck结合:直接将GFL Head应用到如 Cascade R-CNN、Dynamic R-CNN 或 Swin Transformer 等框架上,往往能获得比原始论文报告更高的基线。
  • 与数据增强结合:强大的数据增强(如 AutoAugment、MixUp、Mosaic)能提供更丰富的训练样本,而GFL的分布学习特性使其能更好地从增强数据中受益,尤其是处理遮挡、模糊等困难样本。
  • 与标签分配优化结合:除了ATSS,可以尝试最新的分配策略如 PAA (Probabilistic Anchor Assignment) 或 OTA (Optimal Transport Assignment)。GFL的软标签特性与这些动态、概率化的分配器在理念上非常契合,结合使用可能有意外惊喜。

集成GFL的过程,让我深刻体会到目标检测领域的进步往往来自于对这些“不一致性”和“不灵活性”的细致洞察与精巧解决。它不是一个暴力堆叠参数的方案,而是一个优雅的、系统性的优化。在实际项目中,尤其是面对工业界复杂多变的场景时,GFL带来的鲁棒性提升经常比单纯的AP数字更有价值。下次当你觉得模型精度遇到天花板时,不妨试试GFL,亲手调整那些参数,观察损失曲线的变化和预测框的分布,这种从理论到实践、再从实践反馈理解的过程,本身就是一种极大的乐趣和收获。

generalized focal loss V1, V2分析与使用 希望通过本文能了解到: general focal loss的背景和原理; 代码的实现,如何加在自己的模型中; general focal loss v1- 2020.6.8 general focal loss v2- 2020.11.25 1.背景 v1主要解决: 大多数目标检测模型中,要同时预测目标置信度scoreobjscore_{obj}scoreobj​和类别置信度scorei(i=1...n)score_{i}(i =1...n)scorei​(i=1...n),训练的时候分开单独训 阅读详情

相关推荐

目标检测中的Loss函数进化史:从Focal Loss到GFL的全面解析

本文全面解析了目标检测中Loss函数的演进历程,从Focal Loss到Generalized Focal Loss(GFL)的技术突破。重点探讨了GFL如何通过Quality Focal Loss和Distribution Focal Loss解决样本不均衡与定位质量不一致问题,并结合ATSS样本选择策略在mmdetection框架中的实践应用,显著提升了检测精度。

weixin_30369041的博客 337

目标检测之GFL

十分优秀论文和研究工作!作者在论文后面还有些数据分析,值得阅读。并且作者后续已经发布了GFLV2,基于V1的情况下,利用学习到的bbox的分布来指导分类-质量评估的生成,能带来几乎无损涨点。后续有时间应该会介绍下GFLV2。博客里所说都是个人理解,欢迎大家进行留言讨论!

weixin_41311686的博客 3495

深入解析Generalized Focal Loss:提升目标检测性能的关键技术

本文深入解析了Generalized Focal Loss(GFL)这一提升目标检测性能的关键技术。GFL通过Quality Focal Loss(QFL)统一分类与质量估计,解决了训练与测试不一致的难题;同时利用Distribution Focal Loss(DFL)以概率分布形式建模边界框回归,增强了模型对模糊边界的适应性。文章结合实战指南,详细介绍了在MMDetection框架中应用GFL的方法与调参技巧,有效提升了检测精度与鲁棒性。

weixin_29227425的博客 239

【目标检测】|GFLV2 Localization Quality Estimation (LQE)定位质量估计

CVPR2021边界框的不确定性边界框分布被引入为“一般分布”,其中它学习每个预测边的离散概率分布(图1(a)),用于描述边界框回归的不确定性。有趣的是,我们观察到一般分布的统计数据与其实际定位质量有很强的相关性, (b) :基于GFLV1模型,在COCO【22】数据集的所有验证图像上计算预测框的一般分布的Top-1(四边平均值)值与其实际定位质量(预测与地面真实值之间的IoU)之间的关系散点图。 整个散点图还是有一个明显地倾向于y=x的趋势的,也就是说,在统计意义上,我们此前观察得出的“分布的形状与真实

qq_35608277的博客 1186

[GFL]Generalized Focal Loss: Learning Qualified and Distributed Bounding Boxes for Dense Object Dete

Generalized Focal Loss: Learning Qualified and Distributed Bounding Boxes for Dense Object Detection 会议:CVPR 2021 论文:https://arxiv.org/pdf/2006.04388.pdf 代码:https://github.com/implus/GFocal Abstract 目前的模型大多存在两个问题: 问题一:在训练和推理的过程中,质量评估和分类的方法不一致: 他们往往被独立训练

Focus 1140

YOLOv7改进GFL损失函数:提升目标检测模型性能的最新方法

最近,研究人员提出了一种对GFL损失函数的改进方法,通过应用这一改进方法,可以使模型在不损失性能的情况下提升准确率。在传统的GFL损失函数中,正负样本被分别对待,而改进的方法则引入了一组权重,用于调整正负样本的相对重要性。综上所述,改进的GFL损失函数是一种有效的方法,可以让目标检测模型在不损失性能的情况下提升准确率。通过使用改进的GFL损失函数,我们可以在训练过程中更好地处理正负样本之间的不平衡问题,从而提高目标检测模型的性能。分别是平衡因子和焦点因子,用于调整损失函数的权重。是模型的输出预测结果,

JjtlReact的博客 386

基于谐波线性化方法的跟网型(GFL)VSC变流器(PLL及电流环控制结构)正负序阻抗建模扫频及中英文顶刊文献复现(Matlab&Simulink等)适用于弱网稳定性分析、跟网构网混合并网等场景

本人为985院校电气工程博士在读,研究方向为新型电力系统小干扰稳定性分析。该文章重点讲解基于谐波线性化方法的跟网型并网逆变器/VSC宽频序阻抗建模及扫频(Matlab/Simulink平台)原理及实现。目的在于,尽我所学,将晦涩繁琐的理论公式通过通俗易懂的方式讲解清楚原理本质,让看似“高门槛”的阻抗建模理论知识更加容易理解学习,与各位初学者和同行进行学术分享,希望对大家有所帮助,不足之处也欢迎大家多多批评指正。欢迎留言交流探讨。

2401_82983656的博客 2万+

10、基于解析模型的GFL - IBR建模与稳定性分析

本文围绕基于解析模型的GFL-IBR(广义虚拟同步机-逆变器型电源)建模与稳定性分析展开研究,详细介绍了构建解析模型的两种方法,并通过简化线性模型分析了弱电网条件下的电压不稳定机制。文章结合MATLAB仿真,探讨了不同控制模式(电压控制、有功功率控制、无功功率控制)对系统稳定性的影响,并解释了实际中出现的0.1Hz低频振荡事件的原因。此外,文章还引入了锁相环(PLL)动态,分析其与外部控制的相互作用,并通过参数敏感性分析和系统稳定性评估,为电力系统设计与运行提供了理论支持。

x8y9z0的博客 132

Swin Transformer目标检测实战:从原理到MMDetection集成与调优

Transformer架构通过自注意力机制实现了对序列数据的强大建模能力,其核心原理在于捕捉输入元素间的长程依赖关系。这一特性使其在自然语言处理领域取得突破后,正迅速向计算机视觉任务迁移,展现出处理全局上下文信息的独特技术价值。在目标检测这一关键应用场景中,传统卷积神经网络(CNN)在处理多尺度目标、尤其是小目标检测时面临挑战。Swin Transformer通过引入层级化结构和滑动窗口自注意力,在降低计算复杂度的同时,有效建模图像的全局与局部信息,成为提升密集场景和小目标检测性能的前沿方案。本文聚焦于将S

weixin_30565327的博客 464

ADS Layout设计实战:从参数设置到协同仿真

本文详细介绍了ADS Layout设计的完整实战流程,从新建工程、单位设置、个性化偏好配置等基础操作入手,逐步深入到基板参数配置、端口设置与电磁仿真器选择等核心环节。重点阐述了参数化版图设计与扫描优化、以及原理图与Layout协同仿真的高级技巧,并通过一个微带线低通滤波器设计案例,完整演示了从理论到实现的闭环设计方法,帮助工程师高效、准确地完成高频电路版图设计与验证。

weixin_29268637的博客 799

Prometheus-2.53.1安装

Prometheus+Grafana安装

qlj062127的博客 1788

mmdetection目标检测模型压缩:知识蒸馏实践全指南

在计算机视觉领域,目标检测模型往往面临精度与速度的权衡。**mmdetection知识蒸馏**技术通过将复杂教师模型的知识迁移到轻量级学生模型,实现了精度损失最小化的模型压缩。本文将详细介绍如何在mmdetection框架中应用知识蒸馏技术,帮助开发者快速掌握模型优化的核心方法。 ## 为什么需要知识蒸馏? 现代目标检测模型如Faster R-CNN、YOLO等虽然精度优异,但庞大的参数量和计

gitblog_00463的博客 477

Datalog语言详解

Datalog是一种声明式逻辑编程语言,起源于数据库理论和逻辑编程领域。作为Prolog的子集,它专注于递归查询和推理,通过定义事实和规则来描述数据关系而非计算步骤。Datalog的关键特性包括规则安全、递归、分层否定和扩展聚合功能,保证了程序的终止性和高效性。相较于SQL,Datalog更擅长处理递归查询;相比Prolog,它更注重数据库友好性。Datalog在程序分析、知识图谱、网络安全等领域有广泛应用,其声明式特性使代码简洁易维护,但同时也面临生态系统小、性能调试难等挑战。现代工具如Soufflé、D

bulita great world 1850

深入解析Generalized Focal Loss:从理论到实践

本文深入解析了Generalized Focal Loss(GFL)如何从理论层面解决目标检测中分类与回归不一致的核心难题。通过Quality Focal Loss统一分类与定位质量估计,以及Distribution Focal Loss泛化边界框表示,GFL实现了训练与测试的一致性,显著提升了模型性能。文章结合ATSS样本选择策略,提供了在mmdetection框架中的实战配置与调参指南。

white的博客 168

【AI基础学习系列】二十一、一文搞懂GPT

本文系统介绍了GPT(Generative Pre-trained Transformer)模型的核心内容。首先阐述了GPT的本质是基于Transformer的预训练语言模型,其创新在于使用单向Transformer编码器。其次详细解析了GPT架构,包括输入层的Tokenization和Embedding处理、Transformer解码器堆叠的核心组件(自注意力机制、前馈神经网络等)以及预训练和微调两阶段训练过程。接着说明了GPT的工作原理:通过无监督预训练学习语言统计规律,再结合有监督微调适应具体任务。

ASH_GUARDIAN的博客 1689

SolidWorks速成教程P3-5【零件 | 第五节】——异形孔向导&线性阵列&镜像

这节介绍异形孔向导、线性阵列、镜像。

嵌入式阿齐Archie 6077

探索小麦检测新境界:全球小麦检测挑战赛第9名解决方案揭秘

探索小麦检测新境界:全球小麦检测挑战赛第9名解决方案揭秘 在全球小麦检测竞赛中脱颖而出的优秀作品,我们的团队在这一领域的突破性尝试值得每一位计算机视觉爱好者关注。本项目结合了深度学习前沿技术与创新的数据增强策略,最终以0.6741的私有榜得分荣获第九名。现在,让我们深入探索这一宝藏方案。 项目概览 该解决方案基于成熟的MMDetection框架,并巧妙地采用了DetectoRS(配备ResNet5...

gitblog_00074的博客 490

GPS天线结构、原理、测试

【有源陶瓷天线构成】GPS天线是由接收天线和前置放大器两个部件组成。GPS接收天线的作用,是将卫星来的无线电信号的电磁波能量变换成接收机电子器件可摄取应用的电流。绝大部分内置GPS天线为右旋极化陶瓷介质,其组成部分为:陶瓷天线、低噪音信号模块、线缆、[接头](h

数字世界 万物互联 2万+

探索未来检测之巅:任务对齐的一阶段目标检测——TOOD深度解析

探索未来检测之巅:任务对齐的一阶段目标检测——TOOD深度解析 在当今的人工智能领域,目标检测是一项核心任务,特别是在计算机视觉中。随着技术的不断发展,一阶段目标检测以其高效和简洁的优势吸引了众多研究人员的关注。然而,传统的一阶段检测器常常面临分类与定位任务间空间错位的问题。针对这一挑战,我们带来了《任务对齐的一阶段目标检测(TOOD)》——一项革命性的创新,旨在ICCV 2021上以口头报告的形...

gitblog_00891的博客 601

钢结构焊接连接工艺

钢结构焊接连接工艺

wwdoffice950426的博客 61

【部署】Docker部署OpenClaw及常见问题解决(win11)

给AI单独开一个隔离的小容器,AI执行所有命令、下载文件都在这个小盒子里,就算AI被诱导执行危险命令,也不会影响你Win11本机的文件和系统,是必开的安全功能。Docker容器里的OAuth回调,会尝试在你Win11本机的1455端口捕获认证信息,但容器和Win11本机的网络隔离,导致浏览器访问不到这个回调地址。「挂载」就是把你Win11本机的文件夹,共享给容器里的「虚拟小电脑」,两边都能读写文件,比如你想让AI操作你D盘里的代码文件,就需要挂载。

海兰 4699

30分钟训练你的第一个SAR检测模型:SARDet-100K快速上手

SARDet-100K 是 NeurIPS 2024 Spotlight 开源的 SAR(合成孔径雷达)目标检测工具箱,内置首个 COCO 级大规模多类别 SAR 检测数据集(11.6 万张图像、24 万目标实例)和 MSFA 预训练框架。本文带你用一条命令装好环境、30 分钟跑通第一个 SAR 检测模型的训练与评估,零基础也能跟上 🚀 ## 一、认识 SARDet-100K 数据集 SAR

gitblog_01009的博客 656

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

计算机视觉197个SOTA模型全解析:从AlexNet到Stable Diffusion的架构演进与实战指南

计算机视觉作为人工智能的核心领域,其发展始终围绕如何让机器更好地“看懂”世界。其基本原理是通过深度学习模型从图像数据中自动学习多层次的特征表示。从卷积神经网络到Transformer,架构的持续创新带来了技术价值的巨大飞跃,使得图像分类、目标检测、图像分割等任务的精度和效率不断提升。这些技术已广泛应用于自动驾驶、医疗影像、工业质检和内容生成等关键场景。本文聚焦于**模型复现**与**基线模型**选择两大实践痛点,系统梳理了涵盖图像分类、目标检测、图像生成等方向的197个里程碑式模型,不仅提供了一份结构化的“

weixin_34088583的博客 294

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Generalized Focal Loss: 学习密集目标检测的高质量和分布式边界框

Generalized Focal Loss: Learning Qualified and Distributed Bounding Boxes for Dense Object Detection Generalized Focal Loss: 学习密集目标检测的高质量和分布式边界框

Together_CZ的博客 2635

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

目标检测新思路:为什么Generalized Focal Loss比传统方法更有效?从ATSS到GFL的演进解析

本文深入解析了目标检测领域从ATSS到Generalized Focal Loss (GFL)的演进。GFL通过Quality Focal Loss统一分类与定位质量评估,并利用Distribution Focal Loss将边界框回归从点估计升级为分布学习,有效解决了传统方法中训练与推理不一致、边界表示僵化等核心痛点,从而在COCO等数据集上实现了显著的性能提升。

s1t2u3的博客 214
上一篇: 基于ESP32-S3与天问ASRPRO的智能机械时钟:从零搭建到语音交互避坑指南
下一篇: XT1511-5050RGBLED时序优化—基于九齐NY8B062E的实践解析
linux6sysadmin
博客等级 码龄4年 59粉丝 1615原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值