YOLO-Count:用于文本到圖像生成的可微分目標計數

摘要

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.{ocls?y^?cnt??=ClassificationHead(f1)=CountingHead(f2)?

3.2. 基數圖回歸

我們引入基數圖的概念,這是一種旨在解決基于密度計數固有模糊性的新型回歸目標。

基于密度的計數模型將計數損失公式化為:
Lcnt=∣y^cnt?yden∣\mathcal{L}_{\mathrm{cnt}}=|\hat{y}_{\mathrm{cnt}}-y_{\mathrm{den}}|Lcnt?=y^?cnt??yden?
其中 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=1K?Ni?1?Mi?
然后通過在每個網格單元內求和,將此像素級基數圖下采樣為基于網格的表示:
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,v??ypixelcardinality?(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,v?ycard?(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^?cnt??ycard?
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?=α1?Lcntstrong?+β1?Lclsstrong?
其中 α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?=?∣Ω∣1?pΩ?[?Mpos?(p)logy^?cls?(p)+Mneg?(p)log(1?y^?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?=?(p?y^?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?=α2?Lcntweak?+β2?Lclsweak?,
其中 Ω={(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?=?(p?y^?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×10?5(以保留預訓練視覺表示),新初始化模塊為 1×10?51\times10^{-5}1×10?5。這種學習率策略穩定了訓練并促進了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×10?3 對計數令牌嵌入進行最多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=pP?y^?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…