摘要

https://arxiv.org/pdf/2508.00728v1
我们提出了YOLO-Count,一种可微分的开放词汇目标计数模型,旨在解决通用计数挑战并实现文本到图像(T2I)生成的精确数量控制。核心贡献是"基数"图(cardinality map),这是一种新颖的回归目标,考虑了目标大小和空间分布的变化。利用表示对齐和混合强-弱监督方案,YOLO-Count弥合了开放词汇计数与T2I生成控制之间的差距。其完全可微分的架构便于基于梯度的优化,从而实现准确的目标计数估计和对生成模型的细粒度引导。大量实验表明,YOLO-Count在计数准确性方面达到了最先进的水平,同时为T2I系统提供了强大有效的数量控制。

1 引言

文本到图像(T2I)生成模型在从自然语言描述生成高保真图像方面取得了显著成功。然而,确保与文本规范的精确一致性,特别是关于目标数量方面,仍然是一个重大挑战。虽然先前的研究通过条件训练和引导机制改善了对目标布局、属性和风格的遵循,但准确控制图像中合成目标的数量仍然困难。与局部属性不同,目标数量构成了一种全局约束,要求模型在语言标记和组合对象之间建立数字对应关系。因此,传统的条件训练方法(如ControlNet [52])不适合显式数量控制。此外,T2I模型中去噪过程的随机性引入了目标区分的模糊性,进一步使计数一致性复杂化。

最近的条件引导方法,如BoxDiff [46]和Ranni [12],解决了空间布局、目标属性和语义面板条件的某些方面。然而,这些方法缺乏直接且原则性的精确数量控制机制,留下了连接语言数字能力和视觉合成的关键空白。

在本工作中,我们提出了YOLO-Count,一种基于YOLO架构的开放词汇目标计数模型。YOLO-Count是一种完全可微分的基于回归的模型,展示了高准确性、计算效率和开放词汇能力。关键贡献是引入了基数图,这是一种编码目标数量同时保持对目标大小和空间位置感知的新表示。与传统的密度图不同(在目标中心应用高斯核),基数图在目标实例上分布数量分数,提高了准确性和对尺度变化的鲁棒性。此外,YOLO-Count利用表示对齐和混合强-弱监督策略,使我们能够使用大规模实例分割数据集,而无需依赖计算成本高昂的预训练视觉编码器。

除了通用目标计数外,我们还致力于将YOLO-Count应用于文本到图像(T2I)生成中目标数量的精确控制。这是通过将YOLO-Count用作可微分引导模块[5]实现的,其中来自计数模型的梯度信号引导生成过程朝向数值一致性。虽然先前的研究主要集中在属性和布局的引导算法上,但显式数量控制仍未得到充分探索。我们认为,适用于T2I应用的理想目标计数模型应具备四个关键特性:(1)对输入图像的完全可微分性;(2)适用于多样化目标类别的开放词汇能力;(3)对不同尺度目标的跨尺度泛化能力;(4)适用于实际部署的计算效率。

构建这样的模型引入了几个挑战。首先,最先进的计数方法[2, 35]通常是基于检测的,产生的输出阻止了梯度传播。其次,现有的计数数据集如FSC147 [37]或CARPK [18]在规模和类别多样性方面有限,阻碍了开放词汇泛化。第三,虽然大规模视觉编码器(例如CLIP [36]或GroundingDINO [32, 38])可以缓解数据限制,但它们带来了显著的计算开销。

为了解决这些问题,我们将YOLO-Count与文本反转[13, 50]集成,以实现T2I生成中的精确数量控制。大量实验表明,YOLO-Count在计数基准测试中达到了最先进的准确性,优于基于密度和基于检测的计数模型,并显著提高了T2I生成中的目标数量可控性。

我们的贡献总结如下:

  • 我们引入了基数图,一种改进目标计数准确性的新型回归目标,优于密度图。
  • 我们开发了YOLO-Count,一种高效、开放词汇且完全可微分的计数模型,实现了最先进的性能,并增强了T2I生成的数量控制。
  • 我们提出了混合强-弱监督与表示对齐,使我们能够使用大规模分割数据集进行有效训练,无需依赖重型视觉编码器。

2. 相关工作

2.1. 目标计数模型和数据集

目标计数模型可以大致根据其类别范围分为固定类别计数模型[14, 40, 44]和开放词汇计数模型[2, 11, 35]。对于控制生成任务中的目标数量,开放词汇计数至关重要,因为它支持任意目标类别而无需重新训练。基于监督或引导的类型,计数模型可以进一步分为文本引导模型[47, 58]、视觉示例引导模型[20, 37]、多模态引导模型[2]和无参考模型[17, 31, 45]。对于T2I集成,纯粹的文本引导计数模型更可取,以确保与提示驱动生成的兼容性。

从方法论角度看,计数模型通常分为基于检测和基于回归的方法。基于检测的模型[2, 18, 34]依赖于显式目标检测,通过阈值过滤实例并枚举离散计数,这本质上产生不可微分的整数输出。相比之下,基于回归的模型[3, 4, 27]预测连续值图,如密度图[10, 33],表示对最终计数的像素级贡献。这种直接可微分性使基于回归的模型特别适合生成管道中的基于梯度的控制。

最后,目标计数的训练数据集分为固定类别数据集[18, 21, 43]和开放词汇数据集[1, 37]。开放词汇数据集提供包含多样化目标类别和实例计数的图像,但收集和标注成本高昂[37]。例如,广泛使用的FSC147数据集仅包含3,659个训练图像,这限制了规模和多样性。为了解决这个问题,最近的工作[2, 22]结合了大规模预训练视觉骨干(例如CLIP [36]和GroundingDINO[32]),并在较小的计数数据集上进行微调,以增强开放词汇泛化能力。

2.2. 可控文本到图像生成

可控文本到图像(T2I)生成方法大致可分为两类范式:基于训练的方法[19, 52, 54]和基于引导的方法[5, 49, 53]。基于训练的方法,如ControlNet [52]、IP-Adapter [48]和GLIGEN [28],通过额外的网络分支或适配器将条件输入直接注入生成模型。虽然有效,但这些方法依赖于带有相应条件的大规模训练数据集。相比之下,基于引导的方法,包括BoxDiff [46]、Attend-and-Excite [8]和Separate-and-Enhance [6],通过在推理时操纵扩散过程来控制生成,无需重新训练。这些方法中的许多利用了交叉注意力机制的可解释性[30]来引导图像合成。然而,交叉注意力主要对区分目标类别有效,而不是区分同一类别的多个实例。因此,现有的可控T2I技术擅长局部属性绑定[15, 55]和布局控制[56, 5],但在执行精确目标数量等全局约束方面存在困难。

2.3. T2I模型的目标数量控制

在文本到图像(T2I)模型中显式目标数量控制的研究仍然有限。[25]开创性地使用通用扩散引导进行数量控制,是第一个直接解决这一挑战的尝试。[7]引入了一种基于注意力的表示来计算目标数量,但他们的方法仅限于控制小数量(范围从1到10)。最近,提示调优方法[42, 50]被提出将数字线索整合到文本嵌入空间中,使在不修改基础扩散模型的情况下实现有限的数量控制。然而,这些方法在控制更大数量方面仍然存在困难。

3. 方法

3.1. 模型概述

我们提出的YOLO-Count基于YOLO-World架构[9],由三个主要组件组成:(1)视觉骨干,(2)视觉-语言路径聚合网络(VLPAN),以及(3)预测头。图2展示了整体流程并突出了我们的关键架构修改。

视觉骨干。YOLO-Count中的视觉骨干遵循YOLOv8l [23]和YOLO-World-L [9]的设计。它包含五个卷积模块(ConvModules)和跨阶段部分层(CSPLayers)阶段。给定输入图像 I∈R640×640×3I\in\mathbb{R}^{640\times640\times3}IR640×640×3,骨干提取三个分辨率的多尺度视觉特征:
f0=[f80×80,f40×40,f20×20]=VisualBackbone(I)f^{0}=[f_{80\times80},f_{40\times40},f_{20\times20}]=\mathrm{VisualBackbone}(I)f0=[f80×80,f40×40,f20×20]=VisualBackbone(I)

视觉-语言路径聚合网络(VLPAN)。VLPAN旨在融合视觉特征与文本语义,并跨尺度聚合信息。继承自YOLO-World,它采用自上而下和自下而上的路径,但具有关键增强:(1)T-CSPLayers:标准CSPLayers被T-CSPLayers取代,后者整合sigmoid注意力块,基于预计算的CLIP文本嵌入[36]调制视觉特征。(2)扩展的自上而下融合:为了更好地保留细粒度空间细节,在初始双向聚合后引入额外的自上而下路径,最大化高分辨率特征的利用,这对准确的计数回归至关重要。增强的VLPAN公式化为:
[f1,f2]=VLPAN(f0,fT)[f^{1},f^{2}]=\mathrm{VLPAN}(f^{0},f_{\mathrm{T}})[f1,f2]=VLPAN(f0,fT)
其中 fTf_{\mathrm{T}}fT 表示类别的CLIP文本嵌入,f1f^{1}f1f2f^{2}f2 分别表示用于分类和计数回归的多模态特征。

预测头。在VLPAN之后,将几个ConvModules应用于文本感知视觉特征,将多尺度信号聚合到统一的80×8080\times8080×80分辨率中。预测阶段然后产生两个并行输出:(1)基数回归头,预测密集基数图以进行可微分计数,(2)分类头,通过对比监督训练以确保强大的开放词汇能力。这两个输出共同使YOLO-Count能够提供准确、可微分的计数估计,同时保持强大的类别泛化能力,如图2右侧所示。
{ocls=ClassificationHead(f1)y^cnt=CountingHead(f2)\left\{\begin{aligned}o_{\mathrm{cls}}&=\mathrm{ClassificationHead}(f^{1})\\ \hat{y}_{\mathrm{cnt}}&=\mathrm{CountingHead}(f^{2})\end{aligned}\right.{oclsy^cnt=ClassificationHead(f1)=CountingHead(f2)

3.2. 基数图回归

我们引入基数图的概念,这是一种旨在解决基于密度计数固有模糊性的新型回归目标。

基于密度的计数模型将计数损失公式化为:
Lcnt=∣y^cnt−yden∣\mathcal{L}_{\mathrm{cnt}}=|\hat{y}_{\mathrm{cnt}}-y_{\mathrm{den}}|Lcnt=y^cntyden
其中 ydeny_{\mathrm{den}}yden 是密度图。对于包含QQQ个目标的图像,ydeny_{\mathrm{den}}yden 通过在目标位置中心放置QQQ个高斯核来构建,其总和等于QQQ。虽然回归到ydeny_{\mathrm{den}}yden 能够进行数量预测,但这种表示存在两个关键模糊性。首先,高斯核的中心可以放置在目标范围内的任何位置。其次,核半径是任意选择的,缺乏物理意义。这些问题会降低模型对具有不同大小和形状目标的准确性,因为密度图无法提供一致、明确的表示。

为克服这些限制,我们用基数图ycardy_{\mathrm{card}}ycard 替换ydeny_{\mathrm{den}}yden,使用对象掩码定义。给定第iii个目标实例的二进制掩码MiM_{i}Mi,面积为Ni=∣Mi∣N_{i}=|M_{i}|Ni=Mi,我们在目标内的所有像素上均匀分布值1,并对所有KKK个对象的贡献求和:
ypixel  cardinality=∑i=1K1NiMiy_{\mathrm{pixel\;cardinality}}=\sum_{i=1}^{K}\frac{1}{N_{i}}M_{i}ypixelcardinality=i=1KNi1Mi
然后通过在每个网格单元内求和,将此像素级基数图下采样为基于网格的表示:
ycard(u,v)=∑(i,j)∈Ωu,vypixel  cardinality(i,j)y_{\mathrm{card}}(u,v)=\sum_{(i,j)\in\Omega_{u,v}}y_{\mathrm{pixel\;cardinality}}(i,j)ycard(u,v)=(i,j)Ωu,vypixelcardinality(i,j)
其中 Ωu,v\Omega_{u,v}Ωu,v 是网格单元(u,v)(u,v)(u,v) 内的像素坐标集。通过构造,基数图的总和等于真实目标计数:
∑u,vycard(u,v)=Q\sum_{u,v}y_{\mathrm{card}}(u,v)=Qu,vycard(u,v)=Q
与密度图不同(密度图将质量集中在目标中心,通常忽略扩展目标的大部分),基数图均匀覆盖每个目标的整个空间范围。这产生了一种唯一、明确的表示,对目标大小和形状的变化具有鲁棒性,使其更适合基于可微分回归的计数。

3.3. 表示对齐

为简化起见,这里我们描述单类别计数场景的方法,其中模型旨在计算用户指定的特定类别的实例。为实现这一点,我们将对比学习框架调整为二元分类任务,其中每个像素被分类为属于目标类别或不属于。这个额外的分支在训练期间对齐视觉和文本表示,确保模型有效定位指定类别的实例。具体来说,分类损失公式化为:
Lcls=BCELoss(y^cls,ycls)\mathcal{L}_{\mathrm{cls}}=\mathrm{BCELoss}(\hat{y}_{\mathrm{cls}},y_{\mathrm{cls}})Lcls=BCELoss(y^cls,ycls)
其中 ycls(i,j)∈{0,1}y_{\mathrm{cls}}(i,j)\in\{0,1\}ycls(i,j){0,1} 是二进制真实标签,指示像素(i,j)(i,j)(i,j) 是否属于目标类别,而 y^cls(i,j)∈[0,1]\hat{y}_{\mathrm{cls}}(i,j)\in[0,1]y^cls(i,j)[0,1] 是通过将视觉特征 oclso_{\mathrm{cls}}ocls 和文本嵌入 fTf_{\mathrm{T}}fT 投影到共享多模态空间并对其内积应用sigmoid激活而获得的预测概率,类似于SigLIP [51]。

3.4. 混合强-弱训练

训练目标计数模型通常需要专门的计数数据集,其中每个图像包含单个类别的多个实例。基于回归的计数模型依赖于相应的密度图,这些密度图成本高昂且任务特定。为克服这一数据限制,我们提出了一种混合强-弱训练技术,使基数回归能够同时使用实例分割数据集和计数数据集。该方法包括两个阶段:强监督预训练和弱监督微调。

Image
图2. YOLO-Count模型概述。YOLO-Count包含YOLO骨干、CLIP文本编码器、视觉-语言路径聚合网络(VLPAN)、基数回归头和分类头。基于YOLO-World [9]架构,基数头预测基数图。最终目标数量通过基数图求和获得。

3.4.1. 强监督预训练

我们首先在提供精确每实例掩码的实例分割数据集上预训练模型。我们构建基数图 ycardy_{\mathrm{card}}ycard (如式(3)所定义)和二进制分类掩码 ycls∈{0,1}H×Wy_{\mathrm{cls}}\in\{0,1\}^{H\times W}ycls{0,1}H×W。预训练目标如下:
Lcntstrong=∣y^cnt−ycard∣\mathcal{L}_{\mathrm{cnt}}^{\mathrm{strong}}=|\hat{y}_{\mathrm{cnt}}-y_{\mathrm{card}}|Lcntstrong=y^cntycard
Ltotalstrong=α1Lcntstrong+β1Lclsstrong\mathcal{L}_{\mathrm{total}}^{\mathrm{strong}}=\alpha_{1}\mathcal{L}_{\mathrm{cnt}}^{\mathrm{strong}}+\beta_{1}\mathcal{L}_{\mathrm{cls}}^{\mathrm{strong}}Ltotalstrong=α1Lcntstrong+β1Lclsstrong
其中 α1\alpha_{1}α1β1\beta_{1}β1 是加权系数。Lclsstrong\mathcal{L}_{\mathrm{cls}}^{\mathrm{strong}}Lclsstrong 是与式(5)中定义的 Lcls\mathcal{L}_{\mathrm{cls}}Lcls 相同。此阶段为基数回归和类别特定分类提供精确的像素级监督,建立强大的模型初始化。

3.4.2. 弱监督微调

为了更好地使YOLO-Count适应密集计数场景,我们在提供稀疏点级标注的计数数据集上执行弱监督微调。每个图像用实例点 P={(xi,yi)}i=1K\mathcal{P}=\{(x_{i},y_{i})\}_{i=1}^{K}P={(xi,yi)}i=1K 进行标注,其中KKK是图像中目标的总数量和标注点的数量。弱监督包括以下两个组成部分:
(1) 稀疏分类标签:正标签来自标注点,形成 Mpos∈{0,1}H×WM_{\mathrm{pos}}\in\{0,1\}^{H\times W}Mpos{0,1}H×W,其中 Mpos(i,j)=1M_{\mathrm{pos}}(i,j)=1Mpos(i,j)=1 如果 (i,j)∈P(i,j)\in\mathcal{P}(i,j)P。负标签 MnegM_{\mathrm{neg}}Mneg 从背景区域采样。
(2) 总计数一致性:预测的总计数必须与真实计数KKK匹配。

弱监督损失公式化如下:
Lclsweak=−1∣Ω∣∑p∈Ω[Mpos(p)log⁡y^cls(p)+Mneg(p)log⁡(1−y^cls(p))]\begin{aligned}\mathcal{L}_{\mathrm{cls}}^{\mathrm{weak}}=-\frac{1}{|\Omega|}\sum_{p\in\Omega}\big[&M_{\mathrm{pos}}(p)\log\hat{y}_{\mathrm{cls}}(p)+\\&M_{\mathrm{neg}}(p)\log\left(1-\hat{y}_{\mathrm{cls}}(p)\right)\big]\end{aligned}Lclsweak=∣Ω∣1pΩ[Mpos(p)logy^cls(p)+Mneg(p)log(1y^cls(p))]
Lcntweak=∣(∑py^cnt(p))−K∣\mathcal{L}_{\mathrm{cnt}}^{\mathrm{weak}}=\left|\left(\sum_{p}\hat{y}_{\mathrm{cnt}}(p)\right)-K\right|Lcntweak=(py^cnt(p))K
Ltotalweak=α2Lcntweak+β2Lclsweak,\mathcal{L}_{\mathrm{total}}^{\mathrm{weak}}=\alpha_{2}\mathcal{L}_{\mathrm{cnt}}^{\mathrm{weak}}+\beta_{2}\mathcal{L}_{\mathrm{cls}}^{\mathrm{weak}},Ltotalweak=α2Lcntweak+β2Lclsweak,
其中 Ω={(i,j)∣Mpos(i,j)=1∨Mneg(i,j)=1}\Omega=\{(i,j)|M_{\mathrm{pos}}(i,j)=1\lor M_{\mathrm{neg}}(i,j)=1\}Ω={(i,j)Mpos(i,j)=1Mneg(i,j)=1} 表示标注的像素位置(见图3)。

这种混合训练方案有效地利用大规模实例分割数据集进行预训练,并在微调期间适应有限的计数数据集,实现稳健且数据高效的模型训练。

3.5. 计数控制生成

遵循[50],我们采用基于文本反转的方法进行计数控制生成。文本到图像(T2I)模型首先从文本提示合成初始图像,该图像可能不准确反映所需的目标数量。然后我们将生成的图像及其目标类别输入YOLO-Count模型,以估计预测数量并基于与所需计数 QreqQ_{\mathrm{req}}Qreq 的偏差计算引导损失:
Lguide=∣(∑py^cnt(p))−Qreq∣\mathcal{L}_{\mathrm{guide}}=\left|\left(\sum_{p}\hat{y}_{\mathrm{cnt}}(p)\right)-Q_{\mathrm{req}}\right|Lguide=(py^cnt(p))Qreq
我们通过 Lguide\mathcal{L}_{\mathrm{guide}}Lguide 的梯度迭代更新插入文本序列的可学习计数令牌。此过程持续到收敛,有效地引导T2I模型生成具有所需目标数量的图像。

4. 实验

4.1. 设置

4.1.1. 训练数据集

FSC147 [37] 是一个目标计数数据集,包含6,135张图像,跨越89个训练类别、29个验证类别和29个测试类别,各分割之间无重叠。按照[2],我们对包含错误标注的几幅图像进行了校正,以确保标签一致性。

LVIS v1.0 [16] 是一个大规模、长尾数据集,包含1,203个目标类别,与MSCOCO [29]共享图像。最初为具有大词汇量的实例分割设计,我们使用其验证集来评估多样化和开放词汇类别的计数准确性。

4.1.2. 评估指标

按照先前工作[18, 21, 37],我们采用平均绝对误差(MAE)和均方根误差(RMSE)来评估计数性能。MAE测量预测计数与真实计数之间的平均绝对偏差,而RMSE更严重地惩罚较大误差,捕捉准确性和精确性。

4.1.3. 目标计数基准

除了FSC147和LVIS,我们引入了两个新基准来评估开放词汇目标计数准确性。

OpenImagesV7 [26]和Objects365 [39]是大规模开放词汇目标检测数据集,分别包含900万张图像(跨越600个类别)和200万张图像(跨越365个类别)。基于这些数据集,我们构建了两个新的计数基准:OpenImg7-New和Obj365-New,专门设计用于评估对未见类别的泛化能力。

为确保类别新颖性,我们首先计算两个数据集中所有文本标签的CLIP [36]嵌入。然后过滤掉与任何LVIS标签嵌入的最大余弦相似度超过0.7的类别。此过程从OpenImages V7中产生47个新类别,从Objects365中产生51个。最后,我们仅保留包含这些过滤类别的图像,得到包含14,699张图像(OpenImg7-New)和22,724张图像(Obj365-New)的基准。

模型FSC-Test [37] (已见类别)FSC-Val [37] (已见类别)LVIS [16] (我们已见)OImg7-New [26] (未见类别)Obj365-New [39] (未见类别)
MAE↓RMSE ↓MAE↓RMSE↓MAE↓RMSE↓MAE↓RMSE↓MAE↓RMSE↓
不可微分
CountGD [2]12.9898.3512.1447.514.8412.456.0929.923.5310.61
DAVE [35]14.90103.4215.4852.575.2911.485.3114.244.8913.22
可微分
CLIP-Count [22]17.78106.6218.7961.1810.8122.6114.0130.1615.4830.28
VLCounter [24]17.05106.1618.0665.138.9423.0415.3234.4118.0833.02
CounTX [1]15.88106.2917.1065.6113.7040.9417.9448.7318.7644.80
YOLO-Count (我们的)14.8096.1415.4358.361.656.083.7211.963.289.15
表1. 与现有文本引导目标计数模型的计数准确性比较。

这些基准为评估目标计数模型在FSC147和LVIS训练所见类别之外的开放词汇泛化能力提供了具有挑战性的评估协议。

4.1.4. 可控生成基准

为评估文本到图像(T2I)生成中数量控制的精确性,我们构建了两个基准:LargeGen和LargeGen-New。LargeGen是从FSC147数据集中选择每幅图像中平均目标数量最高的10个文本类别构建的,为评估已见类别的生成性能提供基准。LargeGen-New是从Obj365-New和OpenImg7-New构建的,从而评估在新类别上的生成准确性。这些基准使我们能够系统地评估数量引导生成,在使用目标计数模型引导T2I生成时,测量已见类别和新类别的性能。

4.1.5. 训练YOLO-Count模型

对于YOLO-Count,我们首先在LVIS数据集上进行250轮强监督预训练。视觉骨干使用YOLOv8l权重初始化,而所有其他模块随机初始化。我们优化复合损失,其中基数回归的系数 α1=1.0\alpha_{1}=1.0α1=1.0,类别分类的系数 β1=0.1\beta_{1}=0.1β1=0.1。CLIP文本编码器在训练期间保持冻结,而所有其他参数使用不同的学习率进行更新:骨干为 5×10−55\times10^{-5}5×105(以保留预训练视觉表示),新初始化模块为 1×10−51\times10^{-5}1×105。这种学习率策略稳定了训练并促进了YOLO骨干适应计数任务。

随后,我们在FSC147上执行弱监督微调,利用数据集提供的正点标注,并手动标注负标签。对于负标签,我们在FSC147训练集中每幅图像大约标注10个背景点。此标注过程通过标注界面高效完成,平均每幅图像只需约5秒。在微调期间,我们在每个训练批次中保留LVIS数据的比例γ,以提供强监督并保持YOLO-Count的开放词汇能力。该模型训练最多500轮,根据FSC147验证集上的平均绝对误差(MAE)进行早停。

4.1.6. 计数控制与令牌优化

我们使用可微分令牌优化策略将YOLO-Count与SDXL-Turbo [41]集成,用于数量控制生成。该管道采用单步推理,以平衡生成质量和计算效率。对于每个生成任务,我们使用学习率 5×10−35\times10^{-3}5×103 对计数令牌嵌入进行最多150步的迭代优化,如果引导损失(式(11))连续20步趋于平稳,则应用早停。此过程允许来自YOLO-Count的直接基于梯度的反馈来优化令牌嵌入,有效地引导T2I模型生成具有所需目标数量的图像。

4.2. 目标计数结果

我们在FSC147验证集和测试集上评估计数准确性,这是目标计数模型广泛使用的基准。对于FSC147,我们在微调期间设置 α1=0,β1=1,α2=1\alpha_{1}=0,\beta_{1}=1,\alpha_{2}=1α1=0,β1=1,α2=1β2=0.1,和γ=0.05\beta_{2}=0.1,\mathrm{和}\gamma=0.05β2=0.1,γ=0.05。按照CountGD [2]和CLIP-Count [22]等先前工作,我们采用自动裁剪和聚合策略来处理包含大量目标计数的图像。如表1所示,YOLO-Count在基于回归的计数模型中实现了最先进的性能。我们在FSC147上的MAE和RMSE得分具有竞争力,并接近当前领先的不可微分计数模型CountGD。图4中的视觉示例进一步证明YOLO-Count产生了准确的目标计数。

我们进一步通过在未见类别上测试计数准确性来评估YOLO-Count的开放词汇能力。对于LVIS、OpenImg7-New和Objects365-New,我们在微调期间设置 α1=β1=α2=β2=1和γ=0.5\alpha_{1}=\beta_{1}=\alpha_{2}=\beta_{2}=1\mathrm{和}\gamma=0.5α1=β1=α2=β2=1γ=0.5。如表1所示的结果表明,接触更多样化的训练数据显著提高了YOLO-Count泛化到新类别的能力。值得注意的是,尽管在比较的计数模型中参数最少,YOLO-Count在开放词汇设置中实现了卓越的准确性。

总之,图1和图4至图6展示了使用表1中FSC147检查点设置获得的结果。图7和图8展示了基于表1中LVIS、OpenImg7和Objects365检查点设置的结果。

4.3. T2I数量控制结果

我们评估YOLO-Count在引导T2I模型进行准确数量控制方面的有效性。我们与两类基线进行了比较:(1)将先前的基于引导方法[7, 25]扩展到大数量,(2)由替代计数模型(包括CLIP-Count和CountGD)引导的[50]的令牌优化框架。

对于LargeGen和LargeGen-New中的每个类别,我们为每个目标数量生成10幅图像,数量设置为25、50、75和100。值得注意的是,由于CountGD不可微分,我们无法应用式(11)中的基于梯度的损失。相反,我们采用替代交叉熵目标,鼓励目标数量 QreqQ_{\mathrm{req}}Qreq 的高概率,同时抑制其他数量的概率。

我们通过计数目标并将它们与目标 QreqQ_{\mathrm{req}}Qreq 比较来手动评估生成的图像。如图5所示,与所有基线相比,YOLO-Count显著提高了生成准确性。

Image
图5. T2I数量控制的定量结果。与先前方法相比,我们的方法显著减少了请求和生成目标数量之间的差异,无论是在已见类别还是未见类别上。

此外,图6说明了在生成具有大目标数量的场景时的定性差异。在CountGD的替代损失 Lguidedet\mathcal{L}_{\mathrm{guide}}^{\mathrm{det}}Lguidedet 下,T2I模型无法调整目标数量,并且视觉质量下降。类似地,基于密度的计数引导导致与 QreqQ_{\mathrm{req}}Qreq 的大偏差,这可能是由于真实计数数据集和合成T2I图像之间的领域差距。相比之下,YOLO-Count提供了精确、可微分的引导信号,实现了准确的数量控制,同时有效地泛化到新类别。补充材料中提供了额外的定性示例。

4.4. 消融研究

我们进行了消融研究,以评估YOLO-Count中每个关键组件的贡献。具体来说,我们检查了基数图回归、表示对齐、混合强-弱训练策略和架构修改对基于回归的目标计数模型性能的影响。

模型FSC-Test [37]FSC-Val [37]
MAE↓RMSE↓MAE↓RMSE↓
基线YOLO-Count14.8096.1415.4358.36
…没有
预训练18.42111.4519.5088.64
弱监督43.91150.4043.86124.33
基数图16.71107.2417.8776.42
对齐17.01110.4117.5785.54
额外VLPAN16.54106.3216.8984.40
表2. 消融研究。无预训练:无LVIS数据;无弱监督:无FSC147数据;无基数图:直接在密度图上训练;无对齐:无分类分支;无额外VLPAN:YOLO-Count的两个头接收相同的VLPAN特征输出。

我们首先评估训练管道中每个阶段的贡献。具体来说,我们在两种条件下分析计数准确性:(1)无强监督预训练和(2)无弱监督微调。在第一种情况(无预训练)下,YOLO-Count直接在FSC147上使用密度图监督进行训练。在第二种情况(无微调)下,YOLO-Count仅在带有强标签的LVIS上训练,没有后续微调。如表2所示,缺少微调导致MAE和RMSE显著更高,突显了LVIS和FSC147在目标计数分布方面的领域差距。重要的是,将LVIS上的强监督预训练与FSC147上的弱监督微调相结合,比单独任一阶段都实现了显著改进,验证了我们的混合训练策略。

接下来,我们检查移除基数回归组件的影响。在此变体(无基数)中,我们按照默认设置在LVIS上预训练,但在FSC147训练期间用密度图回归替换基数图回归。如表2所示,包含基数回归与基于密度的回归相比,产生了一致更低的MAE和RMSE。此外,图7中的视觉结果显示,基于密度的回归通常在单个实例内遭受重叠核的影响,并且在包含较大目标的图像中表现出偏向于过度计数的偏差。这证明基数回归缓解了密度图固有的模糊性,并提高了对不同目标尺度的鲁棒性。

4.5. 计数模型的尺寸偏差分析

我们设计了一个实验来研究基于密度的回归方法在处理不同尺度目标时表现出的尺寸偏差。具体来说,我们从FSC147验证集和测试集中选择包含不超过30个目标的图像。每幅图像以从1.0(原始大小)到4.0的缩放比例进行渐进式下采样,然后填充以恢复原始图像尺寸。虽然此过程减少了目标大小,但真实计数保持不变。

处理后的图像随后输入到几个目标计数模型中:三个基于密度的模型(VLCounter[24]、CLIP-Count[22]和CounTX[1])、一个基于检测的模型(CountGD [31])以及我们提出的YOLO-Count模型。对于每个模型,我们记录预测计数并分析它们与原始(未缩放)图像上预测的差异,提供在尺寸变化下的计数稳定性度量。

如图8所示,基于密度的回归模型在目标尺寸增大时一致地过度计数,这种偏差在包含较大目标的图像中变得更加明显。相比之下,YOLO-Count表现出与基于检测的模型相似的稳定性,在不同目标尺度下保持准确的计数。此结果强调了在基数图上训练基于回归的模型的优势,它消除了基于核的模糊性,并提高了对目标尺寸变化的鲁棒性。

5. 结论

在本文中,我们介绍了YOLO-Count,一种新颖的开放词汇、基于回归的目标计数模型,显著改进了文本到图像生成中的目标数量控制。通过整合基数回归、混合强-弱监督和表示对齐,YOLO-Count实现了最先进的计数准确性、计算效率和稳健的开放词汇泛化。大量实验和消融研究验证了其在克服先前方法局限性方面的有效性,特别是在处理大目标数量和新类别方面。除了推进目标计数,YOLO-Count为增强文本到图像模型的可控性提供了实用且可微分的机制,从而实现更精确和可靠的多模态生成和感知。

致谢 本工作得到NSF资助IIS-2127544和NSF资助IIS-2433768的支持。感谢Yuheon Joh的深入讨论和宝贵反馈。

A. 附录

A.1. 附加细节和消融

A.1.1. 与其他模型的效率比较

为评估效率,我们将YOLO-Count与其他目标计数模型在骨干架构、参数数量和推理速度方面进行比较,如表A.1所示。对于推理速度评估,我们在单个NVIDIA RTX 3090 GPU上测量所有模型的帧每秒(FPS)。

结果表明,YOLO-Count比其他高精度模型至少快5倍,这主要归功于其轻量级YOLO骨干,避免了GroundingDINO [32]和CLIP [36]等重型基于Transformer的视觉骨干带来的计算开销。这种高效率和强大性能的结合突显了YOLO-Count作为将准确数量控制集成到文本到图像(T2I)生成管道中的实用即插即用模块。

表A.1. 模型架构和效率比较。
模型#参数FPS骨干
CountGD [2]146M4.93SwinT
CLIP-Count [22]101M10.34ViT
VLCounter [24]103M8.45ViT
CounTX [1]97M9.98SwinT
DAVE [35]150M2.37SwinT
YOLO-Count (我们的)68M50.41CNN

A.1.2. T2I控制的令牌优化

Image
图A.1. 通过令牌优化进行计数控制生成的管道。(C表示计数令牌。)

我们采用类似于文本反转的令牌优化策略。按照[50],我们使用从预测计数与目标计数差异导出的梯度迭代更新可学习计数令牌嵌入。此过程逐步优化令牌表示,引导文本到图像(T2I)模型生成匹配所需目标数量的图像,如图A.1所示。在实践中,此优化最多需要150个梯度步骤,可以在单个32 GB NVIDIA V100 GPU上执行。优化单幅图像的目标计数大约需要40-180秒,具体取决于目标数量和图像的复杂性。

A.1.3. 可控生成基准的类别

LargeGen: 海贝壳、苹果、橙子、弹珠、青豆、瓶盖、桃子、鸡蛋、椅子、树桩。
LargeGen-New: 蛋挞、芒果、柠檬、洋葱、金牌、烧杯、口琴、包子、水母、羊驼。

"75个苹果的照片"
"100颗弹珠的照片"
图A.2. LargeGen上的数量控制结果。
"75个芒果的照片"
"100枚金牌的照片"
图A.3. LargeGen-New上的数量控制结果。

图A.2和图A.3分别展示了在LargeGen和LargeGen-New基准上计数控制生成的额外定性结果,证明了YOLO-Count在已见类别和新类别上准确引导目标数量控制的能力。

A.1.4. 推理期间分类分支的效果

YOLO-Count的标准推理过程涉及对基数图求和,如所有主要实验中所用。然而,由于YOLO-Count包含一个额外的分类分支(最初设计用于辅助训练),我们探索使用其分类输出来优化推理结果。

在推理期间,我们使用分类概率 y^cls\hat{y}_{\mathrm{cls}}y^cls 过滤基数回归输出 y^cnt\hat{y}_{\mathrm{cnt}}y^cnt。具体来说,仅考虑分类概率超过预定义阈值κ的网格单元作为计数的有效单元。最终计数计算为:
Count=∑p∈Py^cnt(p),\mathrm{Count}=\sum_{p\in\mathcal{P}}\hat{y}_{\mathrm{cnt}}(p),Count=pPy^cnt(p),
其中 P={p∣y^cls(p)>κ}\mathcal{P}=\{p\mid\hat{y}_{\mathrm{cls}}(p)>\kappa\}P={py^cls(p)>κ} 表示分类概率超过阈值κ的网格单元集。我们在FSC147 [37]和LVIS [16]数据集上评估不同κ值下的计数准确性。

Image
图A.4. FSC147和LVIS在不同阈值下的计数MAE。

如图A.4所示,最优κ因数据集而异:κ=0.0\kappa=0.0κ=0.0 在FSC147上实现了最低MAE,而κ=0.5\kappa=0.5κ=0.5 在LVIS上表现最佳。这种差异反映了数据集特定的标注协议。FSC147采用包容性标注,计算任何部分匹配提示的目标,有利于较低阈值(κ=0.0\kappa=0.0κ=0.0)以避免漏检。相反,LVIS提供精确的多类别标注,需要更严格的类别分离,其中适度阈值(κ=0.5\kappa=0.5κ=0.5)有效过滤视觉上相似但不正确的类别。

图A.5说明了在基于颜色的球计数任务中的这种效果。CountGD [2]和CLIP-Count [22]等基线模型不加区分地计算所有彩色球。相比之下,YOLO-Count根据κ进行调整:在κ=0.0\kappa=0.0κ=0.0时,它模仿包容性计数行为,而在κ=0.5\kappa=0.5κ=0.5时,它通过利用分类过滤仅选择目标颜色进行计数。这表明κ作为推理时超参数,允许灵活适应任务要求,对包容性计数(FSC147风格)偏好较低阈值,对严格类别区分(LVIS风格)偏好较高阈值。

A.2. 局限性和未来工作

尽管性能强大,YOLO-Count仍表现出一些局限性,如图A.6所示。在左侧,模型计数不正确,在杂乱场景中无法检测小目标或背景目标,如鸟类。在右侧,令牌优化无法将目标计数减少到指定目标,导致在具有挑战性的场景中数量控制失败。此外,YOLO-Count的设计本质上依赖于YOLO架构,虽然高效,但限制了其与最先进的文本到图像(T2I)扩散模型的无缝集成。

未来工作可以通过探索基于Transformer或混合架构来解决这些局限性,以提高在密集和细粒度计数场景中的鲁棒性。此外,将联合优化直接纳入扩散过程,而不是依赖事后令牌优化,可能会为数量控制提供更强、更稳定的信号,实现计数模型和生成管道之间的更紧密耦合。

Image
图A.5. 通过分类阈值区分语义相似类别的YOLO-Count演示。
Image
图A.6. 常见失败模式。下面的数字是计数。

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

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Go 的错误处理方式深度解析—— error vs panic vs recover:机制原理与实战取舍

一、Go 的错误处理哲学Go 的设计哲学鼓励明确的、显式的错误处理方式。它不像 Java 或 Python 使用异常机制,而是采用了返回值 error 的方式,让错误成为程序流程的一部分。Go 的错误处理核心理念是: 错误是值(Errors are values&a…

官方Windows系统部署下载工具实践指南

摘要:本文介绍两款用于获取微软正版系统部署文件的工具,适用于需要快速搭建Windows环境的技术人员。所有工具均基于官方渠道实现,不涉及系统修改或激活功能。一、Windows系统镜像下载方案工具名称:Windows镜像直链下载工具 核心功…

Pandas query() 方法详解

Pandas query() 方法详解query() 是 Pandas 中一个非常强大的方法,它允许你使用字符串表达式来筛选数据行。这种方法比传统的布尔索引更简洁、更易读。基本语法df.query(expr, inplaceFalse, **kwargs)expr: 查询字符串表达式inplace: 是否原地修改 DataFrame (默认…

Linux系统层IO

1.c语言文件操作 fopen:打开文件,模式 "w"(写,覆盖)或 "r"(读)。 fwrite:fwrite(data, size, count, fp),按 size 字节写入 count 次数据。 fread…

QT中的trimmed() 方法(1)

QT中的trimmed() 方法(2) trimmed() 是 Qt 框架 中 QString 类提供的一个方法,用于 去除字符串首尾的空白字符(whitespace characters)。它的作用类似于标准 C 中的 std::string 的 trim 操作,但专为 Qt 的…

动漫软件集合分享

通过网盘分享的文件:动漫软件 链接: https://pan.baidu.com/s/1TD_OmaAZksfFxJ4PW6rS-w?pwd1234 提取码: 1234 打印动漫.apk 当鸟动漫.apk 动漫共和国【OmoFun复活】.apk 咕咕香.apk 黑猫动漫.apk 团次元【推荐】.apk 橘漫.apk 曼波.apk 萌国.apk 趣动漫.apk 三…

Mysql与Ooracle 索引失效场景对比

MySQL 和 Oracle 作为主流关系型数据库,其索引失效的场景既有共性,也因底层优化器、索引类型支持等差异存在不同。以下从常见索引失效场景对比两者的表现及原因:一、索引列上使用函数 / 表达式共性:若直接在索引列上使用函数或表达…

【unity知识】unity使用AABB(轴对齐包围盒)和OBB(定向包围盒)优化碰撞检测

文章目录前言一、AABB(轴对齐包围盒)1、基本概念2、数学表示3、Unity中的实现4、实际应用示例二、OBB(有向包围盒)1、Physics.ComputePenetration (Unity 物理引擎)1.1 基本概念1.2 Unity中的实现1.3 实际应用示例2、OBB (SAT) 手…

Numpy科学计算与数据分析专题

Numpy科学计算与数据分析 1. Numpy入门:数组操作与科学计算基础 2. Numpy入门:多平台安装与基础环境配置 3. Numpy数组创建与应用入门 4. Numpy数组属性入门:形状、维度与大小 5. Numpy数组索引与切片入门 6. Numpy数组操作入门:…

齐护机器人小智AI_MCP图形化编程控制Arduino_ESP32

齐护机器人小智AI_MCP图形化编程控制Arduino_ESP32 齐护AiTall在项目实践里,我们常常期望达成这样一种场景:借助智能体(例如小智 AI)来远程操控其他开发板上的设备,这类似于智能家居系统中智能音箱与各类家电的互动模式…

CPO-SVM分类预测+特征贡献SHAP分析,通过特征贡献分析增强模型透明度,Matlab代码实现,引入SHAP方法打破黑箱限制,提供全局及局部双重解释视角

代码功能 该Matlab代码实现了一个基于CPO-SVM冠豪猪算法优化支持向量机的数据分类模型,结合了SHAP可解释性分析,CPO选择最佳的SVM参数c和g。 SVM模型有两个非常重要的参数C与gamma。其中 C是惩罚系数,即对误差的宽容度。c越高,说明…

Failed to restart docker.service: Unit docker.service is masked.

docker.service 被标记为 "masked" 意味着 systemd 已阻止该服务被启动或运行。这通常发生在 Docker Desktop 安装过程中,因为它使用自己的服务管理机制。以下是解决方法: 解决方案: 解除服务的 mask 状态: bash sudo systemctl unmask docker.service sudo sys…

2025 蓝桥杯C/C++国B 部分题解

P12836 [蓝桥杯 2025 国 B] 翻倍 题目描述 给定 nnn 个正整数 A1,A2,…,AnA_1, A_2, \ldots, A_nA1​,A2​,…,An​,每次操作可以选择任意一个数翻倍。 请输出让序列单调不下降,也就是每个数都不小于上一个数,最少需要操作多少次?…

os标准库

os标准库os包提供了操作系统函数,但和操作系统无关。 os包的接口规定为在所有操作系统中都是一致的。 设计为Unix风格的。1. 权限说明 os标准库有大量的文件操作,在创建文件等操作中,需要指的perm。 在go语言中perm是一个uint32类型 在go语言…

QtC++ 中使用 qtwebsocket 开源库实现基于websocket的本地服务开发详解

前言 当前实时通信功能越来越受到重视,无论是在线聊天、实时数据监控还是多人协作工具,都离不开高效、稳定的实时通信技术。WebSocket 作为一种全双工通信协议,为实时通信提供了良好的解决方案。而在 QtC 开发环境中,qtwebsocket …

小程序实时保存优化

背景。避免数据存储后丢失。要求实时保存。问题:保存时出现卡断,输入的内容会被抹除。问题原因。输入频繁速度块,会影响cpu处理速度。解决方案。用户停止输入500ms后开始保存,否则不保存。这里是保存方法:当500ms以内有…

国产化Excel处理组件Spire.XLS教程:使用 C# 将 DataTable 导出为 Excel 文件

在 C# 中将 DataTable 导出为 Excel 文件,是 .NET 开发中常见的任务,广泛应用于报表生成、日志导出、系统间数据共享等场景。通过使用独立的组件库,开发者可以轻松将 DataTable 数据写入 Excel 文件,并应用格式设置,生…

C语言学习笔记——编译和链接

目录1 C程序的执行流程2 翻译环境2.1 预编译2.2 编译2.2.1 词法分析2.2.2 语法分析2.2.3 语法分析2.3 汇编2.4 链接1 C程序的执行流程 用户编写好的C程序不能直接被计算机识别并执行,在执行前,要先将源文件和头文件进行编译,生成目标文件&am…

Flink-1.19.0源码详解9-ExecutionGraph生成-后篇

《Flink-1.19.0源码详解8-ExecutionGraph生成-前篇》前篇已从Flink集群端调度开始解析ExecutionGraph生成的源码,解析了ExecutionGraph的ExecutionJobVertex节点、ExecutionVertex节点、IntermediateResult数据集、IntermediateResultPartition数据集分区与封装Task…

19、阈值分割+blob分析

目录 一、仿射变换 1.变换矩阵 2.在矩阵的基础上添加各种变换形式 3.开始变换 4.计算变换矩阵参数 新算子 二、阈值分割 新算子 三、blob分析案例 1.焊点 2.石头 3.木材 4.车牌 5.骰子 新算子 一、仿射变换 1.变换矩阵 // 产生仿射变换矩阵hom_mat2d_identity…