【Transient-Free 3DGS】delayed densification + coarse to fine增加GS的魯棒性

25年最新連接去除場景瞬態對象工程與3DGS的pipeline,改進了spotlesssplats,已開源:

[2506.02751] RobustSplat: Decoupling Densification and Dynamics for Transient-Free 3DGSAbstract page for arXiv paper 2506.02751: RobustSplat: Decoupling Densification and Dynamics for Transient-Free 3DGShttps://arxiv.org/abs/2506.02751

abstract

3D高斯濺射(3DGS)技術因其在新視角合成與三維建模中能夠實現實時且具有照片級真實感的渲染效果而備受關注。然而,現有方法難以準確建模受瞬態物體(如移動行人、臨時障礙物等)影響的場景,導致渲染圖像中出現偽影。我們發現,高斯致密化過程在增強場景細節捕捉能力的同時,會因生成過多用于建模瞬態干擾的高斯函數而無意中加劇這些偽影。針對這一問題,我們提出RobustSplat解決方案,其核心基于兩項關鍵設計:首先引入延遲高斯增長策略,在允許高斯分裂/克隆操作前優先優化靜態場景結構,從而抑制早期優化階段對瞬態物體的過擬合其次設計尺度級聯mask bootstrapping方法,先利用低分辨率特征相似性監督實現可靠的初始瞬態掩碼估計(充分利用其更強的語義一致性和抗噪聲魯棒性),再逐步過渡到高分辨率監督以實現更精確的掩碼預測。在多個高難度數據集上的大量實驗表明,本方法性能優于現有技術,充分證明了其魯棒性與有效性。

1. Introduction

當前的3DGS重建方法一般假設場景是靜態的,而實際上我們真實的capture環境是動態變化的,并且這同樣干擾到了我們多視圖一致的要求,導致場景結果出現大量artifacts。

1.1存在的挑戰

實現此目的核心挑戰在于準確檢測并過濾不同圖像中受運動影響的區域。現有方法主要遵循三種范式:(1)基于特定類別的語義掩碼(例如人體和車輛),難以泛化到多樣化的瞬態物體(2)通過考慮光度重建損失最小化中的不確定性進行基于不確定性的掩碼,但往往無法可靠預測運動掩碼[24];(3)基于學習的運動掩碼方法,使用MLP以圖像特征(如DINO特征[28])作為輸入來預測運動掩碼,并通過捕獲圖像與渲染圖像之間的光度殘差[34]或特征相似性[12,18]進行監督。

盡管基于學習的方法在無瞬態干擾的3DGS優化中表現出色,它們仍存在關鍵局限性。在訓練初期,3DGS表征未充分優化,會導致渲染結果過度平滑,動態和靜態區域均出現較大的光度殘差和弱特征相似性。將這些不可靠信號作為掩碼估計的監督會導致瞬態掩碼不準確:過小的掩碼無法消除瞬態物體而引發偽影,而早期過度平滑的重建會誤分類靜態區域,阻礙優化進程并導致重建不足,如圖1所示。

1.2分析

為解決這些問題,需要重點考慮兩個關鍵方面。首先,在初始優化階段,應當顯式約束3DGS的優化過程,防止在缺乏準確瞬態掩碼的情況下對瞬態區域產生過擬合。其次,早期迭代中的掩碼監督應設計為對欠重建區域更具容錯性,從而保證靜態區域能夠充分重建

通過對3DGS方法的詳細分析,我們發現高斯致密化過程(默認在500次迭代后啟動)在增強場景細節捕捉能力的同時,會無意中引入偽影(見圖2)。初始階段3DGS能較好地擬合場景靜態部分,但隨著致密化進程推進,會傾向于過度擬合動態區域,導致移動物體影響區域出現偽影。令人驚訝的是,我們發現顯式禁用原始3DGS中的致密化過程可有效緩解這些偽影,無需任何專門設計即可獲得與SpotLessS-plats[34]相當的結果。

這是因為在沒有致密化的情況下,圖像重建損失僅為3D高斯函數提供有限的位置梯度,主要優化其形狀和顏色參數。因此,初始放置的高斯函數位置保持穩定,降低了對瞬態元素過擬合的風險。但致密化的缺失會導致高斯數量不足,無法充分表征精細細節,使得點初始化稀疏區域的渲染圖像呈現過度平滑現象。

1.3 our approach

我們提出了一種簡單而有效的RobustSplat方法,該方法包含兩個核心設計:首先提出延遲高斯增長策略,優先重建3D場景的全局結構,同時顯式避免過早擬合動態區域其次引入尺度級聯掩碼自舉方法,在保持對瞬態區域敏感性的同時改善欠重建區域的掩碼監督信號。該方法逐步提升監督分辨率,利用低分辨率特征能更有效捕捉全局一致性并在早期優化階段抑制局部噪聲的特性。

我們的核心貢獻可總結如下:
? 系統分析了3DGS致密化過程如何導致瞬態物體引發的偽影,為改進無干擾物3DGS優化提供了新見解
? 提出RobustSplat魯棒方法,集成延遲高斯增長策略與尺度級聯mask bootstrapping技術,有效降低動態物體在3DGS優化過程中的影響
? 通過簡單而有效的設計,證明了本方法優于現有最先進技術

2. Related Work

Robustness in 3DGS

3DGS采用離散顯式表示。因此,許多研究[9,18,36,44,59]探索將參考圖像的全局信息與局部高斯特征相結合的光照建模策略。對于干擾物去除,通常使用掩碼[1,8,39,40,43,49,50]來過濾瞬態物體。

為處理瞬態物體,WildGaussians[18]引入DINO[28]特征來預測不確定性,并將其轉換為掩碼。Robust3DGaussians[39]利用SAM[17]增強預測掩碼的質量。SpotLessSplats[34]借助Stable Diffusion[32]的特征,設計了兩種掩碼預測的聚類策略。T-3DGS[30]提出了基于一致性損失的無監督瞬態檢測器和視頻目標分割模塊來跟蹤視頻中的物體。

最近,DeSplat[42]僅通過最小化光度損失就將3DGS場景分解為靜態3DGS和每視角瞬態3DGS。HybridGS[20]則將3DGS與每視角2D圖像高斯結合,解耦動態和靜態元素。DAS3R[51]和RoMo[12]利用時間一致性約束估計動態視頻的運動掩碼,但這些方法無法直接應用于無序圖像集。與現有方法不同,我們分析了3DGS的致密化過程,并提出基于延遲高斯增長和尺度級聯掩碼自舉的簡單有效解決方案,可可靠消除瞬態物體的影響。

Optimization in Densification and Regularization

現有研究致力于改進3DGS的致密化和優化過程[3,10,14,60]。例如,部分方法[55,58,62]分析了梯度計算過程,發現了梯度碰撞或平均化等問題,這些問題會導致重建質量下降。RAIN-GS[15]研究了不依賴COLMAP SfM的3DGS替代初始化策略。這些方法均未考慮瞬態物體的影響。在本研究中,我們重點分析并利用高斯致密化在無瞬態干擾3D重建中的行為特性。

3. Method

3.0 Spotlesssplats簡單介紹

我們的方法基于近期聯合優化3D表示與瞬態物體掩碼的魯棒3DGS方法[Spotlesssplats]。瞬態掩碼選擇性過濾圖像中的動態區域同時通過為掩碼MLP優化提供更精確的監督來改進場景建模。

下面簡單介紹一下Spotlesssplats:

3.1 overview

從前面的介紹我們可知,Spotlesssplats通過瞬態掩碼選擇性過濾圖像中的動態區域,同時通過為掩碼MLP優化提供更精確的監督來改進場景建模這種相互依賴關系可能導致早期訓練不穩定。一方面,若掩碼過小,則無法過濾所有瞬態區域,導致新生成的高斯函數擬合瞬態物體,這在后期難以消除偽影。另一方面,靜態場景重建在早期往往過度平滑,會誤導掩碼MLP將靜態區域誤分類為動態區域,阻礙其重建并導致靜態內容表征不足。

為解決前面所述問題,我們引入兩項有效設計(見圖3)。首先提出延遲高斯增長策略,推遲高斯致密化過程以防止早期擬合瞬態物體(3.2、3.3)其次提出尺度級聯mask bootstrapping方法,隨時間推移逐步優化掩碼預測,減少靜態區域被誤判為瞬態區域的情況,從而改善靜態內容的優化效果

3.2. 3DGS with Transient Mask Estimation

3.2.1 3DGS的loss

依舊沿用之前使用的l1+ssim損失:

3.2.2 Transient Mask Estimation

對于瞬態對象的mask處理,我們follow了Wildgaussians和Spotlesssplats的方法,使用基于dinov2提取的圖像特征輸入MLP得到mask,可以看到,這個一個sigmoid計算的為每個像素預測的瞬態概率。它的值在0到1之間。:

然后,估計的掩碼用于應用排除瞬態區域的掩碼光度量損失。(dinov2在質量和速度上較為均衡)

3.2.3 Optimization of Mask MLP

掩碼MLP權重的優化需要適當的監督信號。我們采用[34]中提出的基于圖像殘差信息的圖像魯棒損失L_residual作為監督項之一。

這里大概解釋一下spotlessplats中的robust loss的思想,不一定完全一模一樣:

為更好地利用從圖像中提取的深層高維特征信息(其特性與圖像殘差不同),我們額外采用了特征魯棒損失L_cos,該損失利用渲染圖像與捕獲圖像之間的特征相似性信息。具體而言,我們提取真實圖像ft與渲染圖像f′t的DINOv2特征,并計算它們的余弦相似度圖,隨后按照[18]的方法將其值域轉換至[0,1]范圍:

當特征余弦相似度為1時M_cos等于1,當相似度低于0.5時則為0。特征魯棒損失定義為:

最終,MLP的loss如下:

3.3. Delayed Gaussian Growth for Mask Learning

3.3.1 why we delay?densification?

如圖5(a)所示,延遲密度化允許3DGS在早期訓練階段專注于重建靜態場景。然而,一旦密度開始,新引入的高斯傾向于適應瞬態物體,導致PSNR度量的減少。值得注意的是,早期密度的模型表現出較差的性能,這表明過早的密度化促進了瞬態物體擬合。這些結果表明,推遲密度化有助于模型在適應動態元素之前更好地捕獲靜態成分。

3.3.2 Mask Learning with Delayed Gaussian Growth

我們將瞬態掩碼學習機制集成到延遲致密化流程中。如圖5(b)所示,通過利用掩碼預測來調控高斯擴張,該整合策略顯著提升了重建精度。這種借助掩碼預測約束高斯擴張的方法,有效抑制了瞬態偽影并增強了場景保真度。特別值得注意的是,延遲致密化起始時機越晚的變體,所能達到的精度越高。這些結果表明:瞬態掩碼學習與延遲致密化通過協同工作機制,共同提升了3DGS優化的穩定性和準確性。

3.3.3?Mask Regularization at Early Stage?

這里討論一下early stage中的mask,因為前面我們提到了,瞬態對象的mask對于GS的前期會有過于平滑的影響,這里,我們同樣受益于delayed densification的操作,我們對于前面使用MLP預測的mask做一個分類,以區分瞬態對象與靜態區域1-Mt,然后使用該mask做filter過濾出瞬態對象作為監督,如下:

至此,mask相關的所有loss項如下:

3.4. Scaled-cascaded Mask Bootstrapping

盡管我們的延遲高斯增長策略通過將優化聚焦于靜態區域,有效減弱了瞬態區域的影響,但靜態場景的欠重建問題在早期階段依然存在。該問題源于初始高斯點的稀疏性,尤其是在大規模無約束戶外場景中。因此,這些區域生成的渲染結果會呈現過度平滑的現象,從而導致較大的圖像殘差和較低的特征相似度。這進而會誤導掩碼MLP,將欠重建的靜態區域誤分類為動態區域

3.4.1?Robust Feature Similarity Computation?

我們的目標是在優化初期階段,使監督信號對欠重建區域更具容錯性我們觀察到,雖然從高分辨率圖像中提取的高分辨率特征能提供細粒度的空間細節,但其感受野有限,且對局部噪聲的敏感性較高。相比之下,低分辨率特征能更有效地捕捉全局一致性,因為每個特征塊整合了更廣泛的上下文信息,固有地抑制了特征表示中的局部噪聲。

如圖6所示,與高分辨率圖像相比,低分辨率圖像天然地抑制了精細細節,從而產生更平滑的顏色殘差和特征相似度。這表明,在早期階段以較低分辨率評估殘差和特征相似度,可以提升魯棒性——既能保留欠重建的靜態區域,又能維持對瞬態區域的敏感性。

3.4.2 Coarse-to-fine Mask Supervision?

我們提出了一種分辨率級聯方法,通過從低分辨率信號逐步過渡到高分辨率信號來細化掩碼監督。該方法有助于掩碼MLP在優化初期保留更多靜態區域。

在高斯致密化過程開始前,通過3DGS渲染低分辨率圖像,并計算低分辨率圖像殘差與特征一致性,以此監督掩碼MLP的優化,以及靜態場景區域的充分擬合一旦致密化過程啟動,我們則切換至高分辨率殘差及高分辨率特征間的余弦相似度計算,確保能對瞬態區域與靜態區域實現更精細的區分。

4. Experiments

數據集

在兩個公認的高難度基準數據集上評估RobustSplat方法的性能:NeRF On-the-go數據集包含12個具有不同遮擋比例(5%-30%)的室外場景,其中6個常規場景和6個更復雜的擴展場景(稱為NeRF On-the-go II);RobustNeRF數據集則包含4個專門設計的室內場景,每個場景都包含多種干擾重建保真度的瞬態物體。這兩個數據集共同提供了涵蓋室內外環境的全面測試基準。

baseline

本研究與多個先進方法進行對比:包括原始3DGS基礎方法,以及最新推出的SpotLessSplats、WildGaussians、Robust3DGaussians和T-3DGS等專攻魯棒性優化的方法。所有對比實驗均使用各方法的公開實現,并在完全相同的相機參數設置下進行,確保比較結果的公平性和可重復性。

metrics

采用主觀視覺評估和客觀定量指標相結合的評價體系。定量評估采用計算機視覺領域通用的三個指標:PSNR(峰值信噪比)、SSIM(結構相似性指數)和LPIPS(學習感知圖像塊相似度),分別從像素級精度、結構保真度和感知質量三個維度全面衡量重建效果。視覺對比則重點關注瞬態偽影消除情況和靜態細節保留質量。

4.1. NeRF On-the-go?Dataset

如表1所示,我們的方法在全部六個場景的PSNR、SSIM和LPIPS三項指標上均取得最佳性能;

如圖7所示,基線方法存在明顯偽影,而本方法通過延遲高斯增長與尺度級聯掩碼自舉的協同設計,成功消除了偽影并在細節重建(如Patio-high場景的窗戶和Fountain場景的建筑結構)方面展現出顯著優勢。

4.2. RobustNeRF Dataset

在RobustNeRF數據集上的進一步驗證表明:如表3所示,本方法在綜合指標上達到最優,雖然在Android場景的PSNR和SSIM略遜于基線,但仍保持競爭力,并在其余三個場景中顯著超越現有方法;圖8的定性對比顯示,本方法實現了無瞬態偽影且細節清晰的高質量重建效果。

4.3. Ablation Study

4.4稀疏高斯初始化與高斯致密化的實驗

由于SfM基于多視角一致性重建稀疏點云,在移動前于多張捕獲圖像中保持靜止的瞬態物體會將噪聲點引入重建過程。因此,即便在高斯致密化開始前,3DGS也可能初步擬合這些瞬態區域。

如圖S1所示,在NeRF On-the-go數據集的Patio場景中,移動物體曾保持靜止狀態一段時間,導致COLMAP重建出與這些瞬態物體對應的噪聲點。這使得3DGS初始階段會擬合這些瞬態區域。

然而,隨著優化時間的延長,我們的瞬態掩碼估計會逐步消除這些偽影。這一現象表明,通過應用瞬態掩碼過濾動態區域,我們的方法能有效緩解噪聲初始化的影響,從而提升重建質量。

4.5光照變化問題

在真實世界環境中,光照變化也會引發多視角不一致性,導致漂浮偽影。本研究主要針對瞬態物體干擾,但由于缺乏顯式光照模型(圖S2),當場景中出現劇烈光照變化時,我們的方法無法正確建模真實光照變化。將光照建模納入現有框架是未來工作的重要方向,這將有助于處理更復雜的戶外數據集。

4.6 Runtime Evaluation

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/94335.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/94335.shtml
英文地址,請注明出處:http://en.pswp.cn/web/94335.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【MySQL】CRUD基礎詳解

CRUD基礎前言:數據庫的層級結構一、新增(Create)1. 單行數據 全列插入2. 單行數據的簡寫插入3. 指定列插入4. 多行數據插入二、查詢(Retrieve)1. 全列查詢2. 指定列查詢3. 查詢結果為表達式(1)…

互聯網大廠Java求職面試實錄:核心技術棧與業務場景解析

互聯網大廠Java求職面試實錄:核心技術棧與業務場景解析 面試場景設定 本文通過一個嚴肅的面試官和搞笑的水貨程序員大面條之間的對話,模擬互聯網大廠Java崗位的技術面試過程。面試涵蓋Java SE、Spring生態、數據庫、微服務、緩存、安全、消息隊列、AI等多…

response對象的elapsed屬性

在Python的requests庫中,當我們發送一個請求后,會得到一個Response對象,這個對象有一個elapsed屬性,它返回一個timedelta對象,表示從發送請求到收到響應所經過的時間。response.elapsed.total_seconds() 是 Python req…

【ansible】5.在受管主機部署文件和Jinja2模板

1.Ansible 中,如何用模塊創建一個文件并設置權限644并設置SELinux類型,如何從受管主機中刪除文件?使用ansible.builtin集合中的 file 模塊,添加state:touch 創建文件,mode:‘0644’ 設置權限&am…

雪花算法數據庫主鍵

雪花算法(Snowflake)作為一種分布式 ID 生成方案,在分布式系統中具有顯著優勢,能夠解決多個關鍵問題。以下是它的核心好處及主要應用場景:雪花算法的核心好處全局唯一性:通過時間戳、機器 ID、數據中心 ID …

C/C++ 頭文件命名約定

有的時候&#xff0c;在C的代碼中&#xff0c;可以看到有如下的頭文件引用的代碼: #include <iostream> #include <unistd.h> #include <csignal>其中有一些是引用了.h文件&#xff0c;另外一些是引用了模塊式的比如iostream和csignal&#xff0c;那么為什么…

異質結3.0時代的降本提效革命:捷造科技設備技術創新與產業拐點分析

光伏產業經歷了從PERC到TOPCon和異質結&#xff08;HJT&#xff09;的技術迭代&#xff0c;而2025年將成為異質結技術規模化應用的關鍵轉折點。捷造科技通過一系列突破性技術創新&#xff0c;將GW級異質結整線設備價格降至2億元&#xff0c;較行業平均水平降低約40%&#xff0c…

【網絡】http 協議中 Vary 標頭的作用

在 HTTP 協議中&#xff0c;Vary 標頭是一個關鍵的緩存控制機制&#xff0c;用于告知緩存服務器&#xff08;或代理&#xff09;&#xff1a;響應內容的生成依賴于請求中的哪些特定頭部字段。其核心作用是確保緩存服務器能根據這些字段的差異&#xff0c;正確區分和返回不同版本…

CSS 進階用法

一、選擇器進階復雜選擇器組合詳解后代選擇器后代選擇器使用空格分隔兩個選擇器&#xff0c;例如div p&#xff0c;表示選擇div元素內所有的p元素。這種選擇方式會匹配所有層級的后代元素&#xff0c;包括子元素、孫元素等任意深度的嵌套元素。應用示例&#xff1a;/* 選中arti…

GitHub 熱榜項目 - 日榜(2025-08-23)

GitHub 熱榜項目 - 日榜(2025-08-23) 生成于&#xff1a;2025-08-23 統計摘要 共發現熱門項目&#xff1a;13 個 榜單類型&#xff1a;日榜 本期熱點趨勢總結 本期GitHub熱榜呈現三大技術熱點&#xff1a;1&#xff09;AI工作流構建成為風口&#xff0c;sim和airi等項目展示…

SHAP分析+KOA-RIME開普勒結合霜冰算法雙重優化BP神經網絡+9種映射方法+新數據預測!機器學習可解釋分析!

代碼主要功能 該Matlab代碼實現了一個KOA-RIME開普勒結合霜冰算法雙重優化的BP神經網絡回歸模型&#xff0c;結合特征貢獻度分析&#xff08;SHAP&#xff09;和新數據預測功能。核心功能包括&#xff1a; 雙重參數優化&#xff1a;先用智能算法&#xff08;以chebyshev映射改進…

【數據結構】棧和隊列——棧

目錄棧和隊列棧棧的基本概念棧的順序存儲實現棧的定義與初始化入棧操作出棧操作讀取棧頂元素判空和判滿操作棧的銷毀操作操作集合棧和隊列 棧 棧的基本概念 棧的定義&#xff1a; 棧&#xff08;Stack&#xff09; 是一種線性表&#xff0c;它限定了數據元素的插入和刪除操…

大數據管理與應用系列叢書《數據挖掘》讀書筆記之集成學習(1)

文章目錄前言一、集成學習是什么&#xff1f;1.基本思想2.集成學習的類型3. 集成學習的結合策略3.1 為什么結合策略是集成學習的靈魂&#xff1f;3.2 經典策略(1)**投票法&#xff08;Voting&#xff09;****(2)平均法&#xff08;Averaging&#xff09;****(3) 學習法**3.3 關…

嵌入式知識篇---32GUI

要理解 32 位單片機的 GUI&#xff0c;咱們先從 “基礎概念” 入手&#xff0c;再拆成 “為什么能跑 GUI”“核心組成”“怎么實現”“常用工具”“實際用途” 這幾步講&#xff0c;全程不用復雜術語&#xff0c;像聊日常用品一樣說清楚。一、先搞懂 2 個基礎概念在講 “32 位單…

【iOS】SDWebImage第三方庫源碼學習筆記

前言之前在寫項目時&#xff0c;經常用到SDWebImage這個第三方庫來加載圖片&#xff0c;并且了解到了這個第三方庫在處理圖片時自帶異步下載和緩存功能&#xff0c;以及對cell復用的處理。這篇文章來系統學習一下SDWebImage第三方庫的知識以及底層原理簡介SDWebImage為UIImageV…

Linux --網絡基礎概念

一.網絡發展獨立模式&#xff1a;在早期計算機之間是相互獨立的&#xff0c;機器之間的數據只能通過軟硬盤來傳輸&#xff0c;這就代表無法同時完成任務&#xff0c;需要前面的計算機完成各自的任務經過硬盤傳遞數據再完成自己的任務&#xff0c;效率十分低下。網絡互聯&#x…

教育系統搭建攻略:線上知識付費與線下消課排課全解析

作為一名資深平臺測評師&#xff0c;最近我挖到了一個教育機構的 “寶藏工具”—— 喬拓云教育系統。別看它名字低調&#xff0c;用起來那叫一個順手&#xff0c;線上知識付費、線下消課排課全給你安排得明明白白&#xff0c;簡直是機構老板和教務員的 “摸魚神器”。多端口管理…

PMP項目管理知識點-①項目基本概念

目錄 1.項?的定義 概念&#xff1a; 特點&#xff1a; 項?與運營的區別 項?特點&#xff1a; 運營特點&#xff1a; 2.項?管理的發展 3.項?、項?集與項?組合 結構層次 4.項?的關鍵組成部分 項??命周期&#xff1a; 項?管理過程組&#xff1a; 項?階段&…

Python內置函數全解析:30個核心函數語法、案例與最佳實踐指南

&#x1f49d;&#x1f49d;&#x1f49d;歡迎蒞臨我的博客&#xff0c;很高興能夠在這里和您見面&#xff01;希望您在這里可以感受到一份輕松愉快的氛圍&#xff0c;不僅可以獲得有趣的內容和知識&#xff0c;也可以暢所欲言、分享您的想法和見解。 持續學習&#xff0c;不斷…

數據建模怎么做?一文講清數據建模全流程

目錄 一、需求分析 1. 搞清楚業務目標&#xff1a;這數據是要解決啥問題&#xff1f; 2. 明確數據邊界&#xff1a;哪些數據該要&#xff0c;哪些不該要&#xff1f; 3. 弄明白使用場景&#xff1a;誰用這數據&#xff0c;怎么用&#xff1f; 二、模型設計 1. 第一步&…