【物理重建】SPLART:基于3D高斯潑濺的鉸鏈估計與部件級重建

在這里插入圖片描述


標題:《SPLART: Articulation Estimation and Part-Level Reconstruction with 3D Gaussian Splatting》
項目:https://github.com/ripl/splart

文章目錄

  • 摘要
  • 一、引言
  • 二、相關工作
    • 2.1 數據驅動的鉸鏈學習
    • 2.2 物體重建的表征方法
    • 2.3 鉸鏈物體重建
  • 三、方法
    • 3.1 總覽
    • 3.2 Separate per-state reconstruction
    • 3.3 Cross-static formulation for mobility estimation
    • 3.3. Cross-mobile formulation for articulation estimation and mobility refinement
    • 3.5 真實世界應用
  • 四、實驗
    • 4.1 數據集
    • 4.2 評估指標


摘要

??重建日常環境中普遍存在的可活動物體,對于增強/虛擬現實和機器人應用至關重要。然而現有方法面臨可擴展性局限(需要3D監督或昂貴標注)、魯棒性問題(易陷入局部最優)以及渲染缺陷(速度不足或缺乏照片級真實感)。我們提出SPLART框架——一種自監督、類別無關的解決方案,通過3D高斯潑濺(3DGS)技術, 利用兩組不同活動狀態(articulation states)下拍攝的位姿RGB圖像,實現可活動物體(articulated objects)的重建與運動學推斷,從而支持新視角和新活動狀態下的實時照片級渲染 。SPLART為 每個高斯元素引入可微分移動參數,實現了精細化的部件分割 采用多階段優化策略逐步處理重建、部件分割和活動結構估計(articulation estimation ),顯著提升了系統的魯棒性與精確度。 PLART利用幾何自監督機制,有效解決了無需3D標注或類別特定先驗信息的復雜場景問題 。通過在既有基準和新提出的測試平臺上進行評估,并結合手持RGB相機在真實場景中的應用,實驗證明了SPLART具備最先進的性能表現與實際應用價值。

一、引言

??articulated objects:鉸接式物體(如抽屜、門和剪刀)在日常生活中無處不在,但其動態特性給三維重建帶來了重大挑戰——這項關鍵技術對增強/虛擬現實[37,52]、機器人學[1,5,16,24,51,58]和計算機視覺[20,46]等應用領域至關重要。現有鉸接物體重建方法存在若干關鍵局限:往往需要勞動密集型監督(如部件級分割或關節標注)[23,29,41,55,57],依賴限制實際應用的三維監督[23,29,34,41,61],只能生成限制可擴展性的特定類別模型[29,41,55,60],或無法實現實時逼真渲染[6,13,23,29,30,41,55,57,60,61]。為解決這些挑戰,我們推出SPLART——一種新穎的自監督且與類別無關的框架。該框架利用三維高斯潑濺(3DGS)[26]技術,僅需最少輸入(兩組不同關節狀態下的位姿RGB圖像)即可重建鉸接物體。SPLART不僅能重建物體部件,還能推斷運動學特性,從而實現對新穎視角和關節狀態進行實時、逼真渲染。

??SPLART系統的核心創新在于對3D高斯潑濺(3DGS)[26]技術的增強——為每個高斯單元引入了可微分運動參數(differentiable mobility parameter)。這一改進通過基于梯度的優化算法,實現了靜態與動態場景要素的更精細分割。該技術不僅顯著提升了三維重建質量,同時完整保留了3DGS原有的實時照片級渲染能力,其運算速度較基于神經輻射場[39]的方法[6,30]提升了100倍以上。

??為提高魯棒性,SPLART采用多階段優化策略,將部件級重建與鉸鏈估計過程(articulation estimation processes)解耦。與容易陷入局部最優的端到端方法不同[30],SPLART首先獨立重建每個鉸鏈狀態,隨后估算每個高斯分布的運動參數以實現部件分割,最終聯合優化關節與運動參數估計。這種結構化方法確保了穩定精確的收斂,規避了現有方法對初始化的嚴苛要求,從而為復雜鉸接結構提供了實用解決方案。

??基于這一基礎,SPLART利用幾何自監督技術,無需人工標注或三維監督。通過互補的損失函數設計強制實現重建間的幾何一致性,該方法能穩健估計各類場景下的鉸鏈參數。這種自監督策略增強了可擴展性,使SPLART能夠在不依賴先驗結構或類別知識的情況下,重建多種關節化物體。

??實際場景實驗進一步驗證了其應用價值,僅通過手持RGB相機就成功實現了對各類鉸鏈物體的高質量重建。

??

貢獻

  1. 對3D高斯潑濺(3DGS)的擴展——通過為每個高斯分布引入可微分移動性值,實現基于梯度優化的精確部件分割。
  2. 采用多階段優化策略,將重建與鉸鏈估計解耦,從而提升魯棒性與精確度。
  3. 提出幾何自監督的互補公式用于鉸鏈估計,無需3D監督或繁瑣標注。
  4. 構建具有挑戰性的數據集及新評估指標,用于關節化物體重建的綜合評測。

二、相關工作

2.1 數據驅動的鉸鏈學習

??準確估計鉸鏈物體的姿態與鉸鏈屬性對機器人操控與交互至關重要[10,11,19,31]。近期基于學習的方法[9,13,15,22,29,33,57,65]通過端到端訓練從點云推斷鉸鏈屬性。例如,Shape2Motion[57]在監督環境下從單一點云分析運動部件,而ANCSH[29]實現類別級姿態估計但需要特定類別模型。RPM-Net[63]提升了部件分割與運動學預測的跨類別泛化能力,DITTO[23]則無需標簽即可從三維點云對預測運動與幾何特征。然而這些方法都依賴昂貴的3D監督與標注。相比之下,我們的方法能重建精確的三維幾何結構與細致外觀,在無需3D監督或先驗知識的情況下捕捉鉸鏈特性。

2.2 物體重建的表征方法

??早期的三維物體重建方法通過部分觀測數據預測點云、體素或網格[3,8,17]。隱式場景表征技術的最新進展[18,26,38,39,45,66]實現了通過可微分渲染[12,44,53,56]進行精細幾何結構與外觀重建。雖然神經場存在渲染速度慢的問題,但三維高斯潑濺技術(3DGS)[26]通過使用顯式的三維高斯分布克服了這一缺陷。我們利用3DGS技術從位姿已知的RGB圖像中實現自監督鉸接物體重建,能夠實時快速生成新穎視角和關節運動的逼真合成效果。

??

2.3 鉸鏈物體重建

??近期研究利用可微分三維表示方法[26,39,45]實現關節物體的聯合重建與關節參數推斷。基于訓練的方法使用合成三維數據預測關節參數并分割部件[13,14,23,25,41,43,60]。自監督方法無需大量訓練即可優化單場景的形狀、外觀與關節結構[6,27,30,32,34,50,61],其中部分研究雖能處理多部件物體,但需預先知道部件數量和單層關節結構[6,34,61]。另有研究通過大型語言或視覺-語言模型提升關節估計精度[28,36]。相比之下,我們的自監督方法采用3D高斯潑濺技術[26],僅憑RGB圖像即可跨關節狀態重建雙部件關節物體。作為首個在無三維監督或預訓練先驗條件下將該技術應用于此任務的研究,本方法能穩健處理復雜案例并實現實時性能。

三、方法

3.1 總覽

??考慮一個由兩個剛性部件組成的任意物體:一個靜態的父部件,以及一個可通過旋轉關節或棱柱關節相對于父部件移動的子部件。兩個目標:(1) 在部件級別重建這個鉸鏈物體;(2) 估算其鉸鏈運動。在已知關節類型(即旋轉或棱柱)的假設下,我們方法的輸入由兩組位姿已知的RGB圖像(即已知相機內外參數的圖像)組成,每組圖像分別捕捉鉸鏈物體在運動兩端狀態時的形態。

??正式地,設l表示關節狀態標簽,其中 l = 0 l=0 l=0 l = 1 l=1 l=1對應觀測關節的兩個端點狀態。為實現重建,SPLART算法采用觀測數據 O l O_l Ol?={ ( I l i , P l i , K l i ) (I_l^i, P_l^i, K_l^i) (Ili?,Pli?,Kli?)} i = 1 N l , ^{N_l}_{i=1} , i=1Nl??, l l l∈{0,1},其中 I l i I_l^i Ili?表示第i個在狀態l下觀測到的關節物體RGB圖像, P l i P_l^i Pli? K l i K_l^i Kli?分別代表其相機外參和內參矩陣, N l N_l Nl?表示狀態 l l l的數據樣本數量。需注意 P l i P_l^i Pli?在兩個狀態中均定義于統一的世界坐標系,而鉸鏈運動僅涉及相對于世界坐標系的一個運動部件。SPLART通過旋轉軸a(∥a∥=1)、樞軸點p和旋轉角度θ來建模旋轉鉸鏈,使得世界坐標系中移動部件上的點 x x x在狀態 l = 0 l=0 l=0時將運動至——

在這里插入圖片描述
當狀態 l = 1 l = 1 l=1時, R a , θ R_{a,θ} Ra,θ?表示由axis-angle notation 實現的旋轉。棱柱鉸鏈(prismatic articulation)則通過其平移軸 a a a(∥a∥= 1)和距離d來建模。目標是使用選定的表示方法在部件級別重建鉸鏈對象,并估計鉸鏈運動 1 T 0 ^1T_0 1T0?,確保每個鉸鏈狀態下的渲染與觀察結果一致。

?? 同時進行部件級重建和鉸鏈估計時,容易陷入局部最小值 [6,30],因此SPLART通過三個階段,將部件級重建鉸鏈估計分離,擴展了3DGS對于關節物體的表示方法,:(1)每個鉸鏈狀態分別進行重建,(2)使用交叉靜態公式進行運動估計,(3)使用交叉移動公式進行鉸鏈估計和運動細化。 為了使SPLART更容易應用于現實世界中的物體,我們利用現代的sfm和圖像分割技術,開發了一個框架,使普通用戶能夠僅通過手持相機設備拍攝的圖像,在周圍環境中重建關節物體。

在這里插入圖片描述

3.2 Separate per-state reconstruction

??第一階段,除了原始3DGS的屬性外,每個高斯分布還被初始化了一個持久的二進制狀態標簽 l l l,該標簽從{ 0 , 1 0,1 0,1}中等概率選取。表示狀態l的高斯分布集合記為 G l r e f G_l^{ref} Glref?,其中 r e f ref ref強調 G r e f G^{ref} Gref是未受其他狀態影響的參考重建。利用狀態 l l l下的數據樣本進行優化:

在這里插入圖片描述

其中 R R R是渲染函數, ? I ?_I ?I?表示光度損失。為簡化表述,從現在起將省略視圖索引 i i i 和相機參數 P l i 、 K l i P_l^i、K_l^i Pli?Kli?

3.3 Cross-static formulation for mobility estimation

??第二階段是每個高斯的運動估計。為了確保 G r e f G^{ref} Gref專注于單狀態重建,首先將其復制為兩個狀態(即l∈{0,1})的 G t g t G^{tgt} Gtgt作為目標表示,旨在實現部件級和鉸鏈級的重建。設計上, G t g t G^{tgt} Gtgt在創建后既不與 G r e f G^{ref} Gref共享數據存儲也不共享梯度流。

??對于 G t g t G^{tgt} Gtgt中的每個高斯基元,屬性集中加入一個移動性值 m ∈ [ 0 , 1 ] m∈[0,1] m[0,1],初始化為0.5。通過這一設計,m使得高斯分布可以分解為其靜態和移動部分,其中每個部分繼承了所有原始高斯分布的屬性,除了不透明度 σ σ σ。靜態部分的不透明度調整為 σ ? ( 1 ? m ) σ·(1?m) σ?(1?m),而移動部分的不透明度則調整為 σ ? m σ·m σ?m。為了簡化表述,設 M M M G G G的所有移動性集合,使用元素級乘法 G ? ( 1 ? M ) G·(1?M) G?(1?M)來表示 G G G的靜態部分,而 G ? M G·M G?M則表示移動部分。

??為了估算運動性M,基于直覺:即鉸鏈物體的靜態部分應由兩種狀態的靜態分量共同構成。具體而言,我們引入了交叉靜態(cs)公式,其中鉸鏈物體的靜態部分被聯合表示為:

在這里插入圖片描述
其中⊕表示拼接。對于狀態 l l l,目標表示變為:

在這里插入圖片描述
根據該公式,第2階段進一步分為以下兩個子階段:

??第二階段(a):通過交叉靜態幾何一致性進行粗略運動估計。為了測量兩個高斯集之間的幾何距離,設計一種加權的Chamfer距離:設 X = X= X={ ( x i , w x i ) (x_i,w_{x_i}) (xi?,wxi??)} i = 1 M ^M_{i=1} i=1M? Y = Y= Y={ ( y j , w y j ) (y_j,w_{y_j}) (yj?,wyj??)} j = 1 N ^N_{j=1} j=1N?為兩組點-權重對,加權Chamfer距離則定義為:

在這里插入圖片描述
在這里插入圖片描述

??對于每個高斯基元,采用運動修正后的不透明度 σ ′ σ′ σ作為權重(實際上將其視為在平均位置重疊的σ′個點)。通過優化這些移動性,以促進幾何一致性:

在這里插入圖片描述

??其中, C h a m f e r ( ? ) Chamfer(·) Chamfer(?)表示加權Chamfer距離, λ ∥ M ∥ λ∥M∥ λM 是一個正則化項,旨在鼓勵較小的移動性。請注意,M通過調整不透明度來影響加權Chamfer距離,而當M=1時,沒有正則化的情況下,這是一個簡單的解。在沒有光度監督的情況下,從方程6a得到的移動性通常較為嘈雜。然而,由于這些方法相對快速(僅需幾十秒),它們仍然可以作為下一階段的良好初始化。

??第二階段(b):通過交叉靜態渲染,實現運動性與高斯的聯合優化:
在這里插入圖片描述

λ m p h o t o ∥ M 1 ? l ∥ λ^{photo}_m∥M_{1?l}∥ λmphoto?M1?l?表示運動正則化。

3.3. Cross-mobile formulation for articulation estimation and mobility refinement

??第三階段,估計所有高斯的移動部件共享的鉸鏈參數。基于這樣的直覺:兩個端點狀態下的移動部件,通過鉸鏈運動相互關聯。引入了交叉移動(cm)公式:狀態 l l l下,鉸鏈物體的移動部分被共同表示為:

在這里插入圖片描述
其中 l T 1 ? l ( G ) ^lT_{1?l}(G) lT1?l?(G)表示高斯G在從狀態 1 ? l 1?l 1?l到狀態 l l l的鉸鏈運動下的變換。對于狀態 l l l,目標表示變為:
在這里插入圖片描述
根據該公式,第3階段進一步分為以下三個子階段:

??第三階段(a):通過幾何一致性進行粗略鉸鏈估計。類似于方程6a,采用加權Chamfer距離計算交叉移動的幾何一致性,在移動性和鉸鏈參數上進行優化:

在這里插入圖片描述

??然而,我們發現 1.當移動部分在幾何上過于微不足道時,這種表述方式仍可能陷入局部最小值。如圖3a的案例 。為解決這一問題,我們進一步提出了僅針對移動部件的幾何一致性方案,該方案僅關注兩種狀態下的移動組件:

在這里插入圖片描述

在這里插入圖片描述

??雖然成功解決了這些情況,但 2.僅限于移動組件的幾何一致性在其他情況下仍顯不足,尤其是在兩個狀態下的移動組件存在顯著差異時 。如圖4a的失敗案例。為了充分利用兩種方法,提高鉸鏈參數優化的魯棒性:

  • 1.在 K m K^m Km次隨機嘗試中:通過下式進行鉸鏈估計
    在這里插入圖片描述
    1. 結合 K c m K^{cm} Kcm次隨機嘗試方法,再加上另一個以 T m T^m Tm初始化的方案:通過下式估計鉸鏈

在這里插入圖片描述

  • 3.最終以 T c m T^{cm} Tcm初始化:通過方程10a進行聯合的鉸鏈估計和移動行細化。

??第三階段(b):通過交叉移動渲染實現鉸鏈、運動及高斯的聯合優化。與第二階段(b)類似,利用光度監督,通過交叉移動渲染來全面優化:

在這里插入圖片描述

??第3?階段:通過交叉移動幾何一致性進行移動校正。第3(b)階段僅依賴光度監督,這種監督方式僅限于訓練視圖。如果鉸鏈運動使高斯從大多數視角中消失,那么它可能會被誤認為是可移動的,從而有效地失去了監督。另一方面,幾何一致性不受視線限制的影響。利用這一點進行移動性校正:

在這里插入圖片描述

3.5 真實世界應用

??為了在現實世界中重建一個鉸鏈物體,首先從物體周圍的半球拍攝圖像,收集兩組RGB圖像,每種鉸鏈狀態各一組。預處理數據,得到SPLART輸入的帶位姿圖像:使用SAM 2 [47]進行前景與背景的分割,同時去除場景中的動態元素。隨后利用COLMAP [49]和SuperPoint [7]描述符及SuperGlue [48]匹配技術,在兩組圖像的分割背景上執行SFM來確定相機的姿態,從而構建出物體在兩種狀態下的聯合坐標系。一旦我們獲得了這個聯合坐標系,并且前景目標物體被準確定位后,就運行SPLART來重建鉸鏈物體。

四、實驗

4.1 數據集

??PARIS PartNet-Mobility子集。PartNet-Mobility是一個大規模的數據集,提供了具有部件級移動性[2,40,62]的可模擬3D對象模型。PARIS [30]從中選取了10個實例用于實驗,其中8個為旋轉實例,2個為棱柱實例。我們將這個數據集稱為PARIS-PMS。對于每個鉸鏈狀態,PARIS提供了100個校準的以對象為中心的視角用于訓練,50個用于測試,這些視角是從上半球隨機選取的。然而,發布的數據集中缺少真實深度和部件分割圖。為了解決這一問題,我們遵循他們的數據生成流程,并為PARIS-PMS增加了必要的真實數據,用于深度和分割評估。盡管如此,中間關節狀態的測試視角仍未提供,這限制了對新關節合成的定量評估。

??SPLART PartNet-Mobility子集。我們從PartNet-Mobility中精選了一個額外的鉸鏈對象數據集,命名為SPLART-PMS,以實現更全面的評估,包括對新鉸鏈合成的定量評估。我們的數據集包含22個未被PARIS-PMS包含的類別中的對象實例,其中包括12個旋轉對象和10個棱柱形對象。在測試分割中,我們還生成了真實深度圖和部分分割圖,以促進相關評估。重要的是,雖然PARIS-PMS將關節狀態限制為二進制值,而SPLART-PMS從[?0.1,1.1]的范圍內均勻采樣狀態,這要求對關節、部分分割和對象重建進行準確估計,以確保正確的視圖合成。

??真實世界數據集。為了展示SPLART在實際應用中的效果,我們收集了一個包含7個真實物體和9種不同動作的數據集,這些物體包括常見的顯示器、櫥柜、眼鏡等。所有圖像均通過手持手機拍攝。

4.2 評估指標

??鉸鏈估計。根據鉸鏈類型評估其估計的準確性。

  • 旋轉鉸鏈描述了在三維空間中圍繞某條線的旋轉,參數包括線上的樞軸點p、線的方向軸a和旋轉角度θ。我們報告預測軸與真實軸之間的角度誤差 e r r a ( i n × 10 ? 2 度 ) err_a(in×10^{?2}度) erra?(in×10?2),由axis-angle ( a ? θ ) (a-θ) (a?θ)對引起的預測旋轉與真實旋轉之間的測地距離 e r r r ( i n × 10 ? 2 度 ) err_r(in×10^{?2}度) errr?(in×10?2),以及樞軸點誤差 e r r p err_p errp?。由于軸心可以沿軸任意移動, e r r p err_p errp?通過計算 axis-pivot (a-p) pair 所引導的預測與真實line之間的最近距離來確定。

  • prismatic articulation(棱柱鉸鏈)描述了沿特定方向的平移,該平移由平移方向的軸a和平移距離d參數化。我們報告axis誤差 e r r a err_a erra?,如同旋轉鉸鏈的情況,并報告平移誤差 e r r d err_d errd?,即由axis-distance對所引導的預測平移與真實平移之間的距離。

??部件級重建。其準確性評估包括三個方面:光照渲染質量、幾何精度和部件分割精度。對于這些方面,我們采用了新視圖合成作為替代任務。我們對測試集中的每個視圖進行volume render,生成包含RGB圖像、深度圖和部件分割圖的輸出。光照渲染質量通過報告圖像質量指標PSNR來評估。幾何精度通過報告深度圖的平均絕對誤差(depth MAE)來評估。部分分割精度則通過三個類別的交并比(IoU)來評估:靜態部分(IoUs)、移動部分(IoUm)和背景(IoUbg)。這些類別的平均IoU(mIoU)被報告為這些類別的平均IoU。此外,我們還通過網格重建來評估幾何精度。為了從3DGS中提取網格,我們采取了以下步驟:(1)從均勻采樣的球形視角渲染深度圖像,(2)將渲染的深度圖像融合成TSDF表示[4,42],(3)使用Marching Cubes算法[35]提取網格。對于每次重建,我們分別提取靜態、移動和整體部分的網格。評估時,我們遵循先前研究[30,61]中使用的方法:從重建和真實網格中均勻采樣10,000個點,并計算每個類別的Chamfer距離—靜態(CDs)、移動(CDm)和整體(CDw)。

??定性與定量實驗

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
??
在這里插入圖片描述

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

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

相關文章

vscode中vue自定義組件的標簽失去特殊顏色高亮

遇到的問題 最近接觸了一個歷史遺留項目時,我遭遇了堪稱"史詩級屎山"的代碼結構——各種命名混亂的自定義組件和原生HTML標簽混雜在一起,視覺上完全無法區分。這讓我突然想起,之前在使用vue或者其他框架開發的時候,只要…

【Dify精講】第19章:開源貢獻指南

今天,讓我們深入 Dify 的開源貢獻體系,看看這個項目是如何在短短時間內聚集起一個活躍的開發者社區的。作為想要參與 Dify 開發的你,這一章將是你的實戰指南。 一、代碼貢獻流程:從想法到合并的完整路徑 1.1 貢獻前的準備工作 …

Web攻防-CSRF跨站請求偽造Referer同源Token校驗復用刪除置空聯動上傳或XSS

知識點: 1、Web攻防-CSRF-原理&檢測&利用&防御 2、Web攻防-CSRF-防御-Referer策略隱患 3、Web攻防-CSRF-防御-Token校驗策略隱患 一、演示案例-WEB攻防-CSRF利用-原理&構造 CSRF 測試功能點 刪除帳戶 更改電子郵件 如果不需要舊密碼,請…

Drag-and-Drop LLMs: Zero-Shot Prompt-to-Weights

“拖拽式大模型定制”(Drag-and-Drop LLMs: Zero-Shot Prompt-to-Weights)。 核心問題: 現在的大模型(比如GPT-4)很厲害,但想讓它們專門干好某個特定任務(比如解數學題、寫代碼)&am…

抖音視頻怎么去掉抖音號水印保存

隨著抖音成為短視頻平臺的領軍者,越來越多的人喜歡在上面拍攝、觀看和分享各種創意內容。對于用戶來說,下載抖音視頻并去除水印保存,以便后續使用或分享成為了一種常見需求。抖音號水印的存在雖然能幫助平臺追溯視頻源頭,但也讓許…

【RAG技術(1)】大模型為什么需要RAG

文章目錄 為什么需要RAG?RAG的工作原理關鍵的Embedding技術 RAG vs 模型微調:選擇的核心邏輯RAG的關鍵挑戰與解決思路1. 檢索質量決定一切2. 上下文長度限制 實際應用場景分析企業知識問答技術文檔助手法律咨詢系統 構建RAG系統的關鍵步驟總結 為什么需要…

JS紅寶書筆記 - 8.1 理解對象

對象就是一組沒有特定順序的值,對象的每個屬性或者方法都可由一個名稱來標識,這個名稱映射到一個值。可以把對象想象成一張散列表,其中的內容就是一組名值對,值可以是數據或者函數 創建自定義對象的通常方式是創建Object的一個新…

Meson介紹及編譯Glib庫

一.概述 1.Meson 的簡介 Meson(The Meson Build System)是個項目構建系統,類似的構建系統有 Makefile、CMake、automake …。 Meson 是一個由 Python 實現的開源項目,其思想是,開發人員花費在構建調試上的每一秒都是…

Qt元對象系統實踐指南:從入門到應用

目錄 摘要 元對象系統核心概念 項目示例:動態UI配置工具 元對象系統在項目中的應用 1. 信號與槽機制 2. 動態屬性系統 3. 運行時反射能力 4. 屬性綁定與響應 實際項目應用場景 動態UI配置 對象序列化 插件系統 性能優化建議 結論 參考資料 摘要 本文…

Kafka 與其他 MQ 的對比分析:RabbitMQ/RocketMQ 選型指南(一)

消息隊列簡介 在當今的分布式系統架構中,消息隊列(Message Queue,MQ)扮演著舉足輕重的角色。隨著業務規模的不斷擴大和系統復雜度的日益提升,各個組件之間的通信和協同變得愈發關鍵 。消息隊列作為一種異步的通信機制…

[創業之路-441]:行業 - 互聯網+移動互聯網和大數據時代的100個預言:技術個性、商業變革、社會重構、文化娛樂、環境、教育、健康醫療、未來生活方式

目錄 一、技術革新 二、商業變革 三、社會重構 四、文化與娛樂 六、環境與可持續發展 七、教育與知識傳播 八、健康與醫療 九、倫理與法律 十、未來生活方式 十一、終極預言 結語 在移動互聯網和大數據時代,技術革新正以前所未有的速度重塑社會、經濟與文…

基于STM32單片機WIFI無線APP控燈亮度滅設計

基于STM32單片機控燈設計 (程序+原理圖+設計報告) 功能介紹 具體功能: 本設計由STM32F103C8T6單片機核心電路兩位白色高亮LED燈電路WIFI模塊ESP8266電路電源電路組成。 1、stm32實時監測wifi數據,解析數…

學會C++中的vector的基本操作

vector 是 C 標準庫中的一個動態數組類,它可以在運行時自動調整大小,非常適合用于處理大小不確定的集合。下面是 vector 的常見用法示例,幫助你更好地理解如何使用它。 注意:所有用數組完成的任務都可以用vector完成。 1. 引入頭…

AI時代工具:AIGC導航——AI工具集合

大家好!AIGC導航是一個匯集多種AIGC工具的平臺,提供了豐富的工具和資源。 工具功能?: 該平臺整合了多樣的AIGC工具,涵蓋了繪畫創作、寫作輔助以及視頻制作等多個領域。繪畫工具能夠生成高質量的圖像作品;寫作工具支持從構思到潤色的全流程寫…

java-SpringBoot框架開發計算器網頁端編程練習項目【web版】

今天分享一個使用springboot 寫一個 前后端不分離的項目,網頁計算器,來熟悉springboot框架的使用。 java版本:8。 springboot:2.6.13 使用的技術是: Java Spring Boot Thymeleaf HTML/CSS/JS 構建的 Web 端簡約按鈕…

linux操作系統的軟件架構分析

一、linux操作系統的層次結構 1.內核的主要功能 1)進程管理 2)內存管理 3)文件系統 4)進程間通信、I/O系統、網絡通信協議等 2.系統程序 1)系統接口函數庫,比如libc 2)shell程序 3)編譯器、編輯…

淺談Java對象在內存中的存儲形式

我們知道計算機以二進制的方式存儲數據,以 64 位虛擬機為例,Java 對象在內存中的存儲形式為: 開頭是 8 個字節的 markword,用于標記對象的狀態。(也就是一個 long 型數據的大小。不妨記作對象頭里有一個長長的 markwo…

Android 開發問題:Wrong argument type for formatting argument ‘#2‘ in info_message

<string name"info_message">name: %1$s, age: %2$d</string>String str getString(R.string.info_message, "zs");在 Android 開發中&#xff0c;上述代碼&#xff0c;出現如下警告信息 Wrong argument type for formatting argument #2 in…

Vue+spring boot前后端分離項目搭建---小白入門

首先&#xff0c;介紹一下軟件準備工作 1.vscode 2.maven 3.vue搭建&#xff1a;node.jsyarnvite 一.后端搭建 打開vscode,建立一個springboot項目&#xff0c;參考鏈接&#xff1a;sping boot項目搭建 建立一個項目&#xff0c;目錄結構如下&#xff1a; helloController.java…

“蘇超”拉動周末消費,抖音生活服務:比賽城市迎來普遍消費上漲

“蘇超”爆火&#xff0c;有力拉升了緊隨賽程的周末消費。抖音生活服務數據顯示&#xff0c;剛剛過去的周末&#xff08;6月21日至22日&#xff09;&#xff0c;江蘇商圈休閑運動團購訂單消費環比增長225%&#xff0c;到店消費金額環比增長181%。雖然幾個比賽城市周末天氣欠佳&…