GAIA-2:用于自動駕駛的可控多視圖生成世界模型

25年3月來自英國創業公司 Wayze 的論文“GAIA-2: A Controllable Multi-View Generative World Model for Autonomous Driving”。(注:23年9月其發布GAIA-1)

生成模型為模擬復雜環境提供一種可擴展且靈活的范例,但目前的方法不足以滿足自動駕駛領域特定要求,例如多智體交互、細粒度控制和多攝像頭一致性。其推出 GAIA-2(自主生成人工智能),這是一個潛擴散世界模型,將這些功能統一在一個生成框架中。GAIA-2 支持以豐富的結構化輸入為條件的可控視頻生成:自車動力學、智體配置、環境因素和道路語義。它在不同地理位置的駕駛環境(英國、美國、德國)中生成高分辨率、時空一致的多攝像頭視頻。該模型集成結構化條件和外部潛嵌入(例如,來自專有駕駛模型),以促進靈活且基于語義的場景合成。通過這種集成,GAIA-2 能夠對常見和罕見駕駛場景進行可擴展模擬,推動生成世界模型作為自動系統開發的核心工具的使用。

GAIA-2 是一個環視視頻生成世界模型,具有結構化條件、多攝像頭相干性和高時空分辨率。該架構(如圖所示)由兩個主要組件組成:視頻 token 化器和潛世界模型。這兩個模塊共同作用,使 GAIA-2 能夠生成跨多個視角、語義連貫且逼真的視頻,并具備豐富的條件控制。

請添加圖片描述

視頻 token 化器將原始高分辨率視頻壓縮成緊湊、連續的潛空間,同時保留語義和時間結構。這種緊湊的表示形式能夠實現高效的大規模學習和生成。然后,世界模型學習預測未來的潛狀態,并以過去的潛狀態、動作和一系列特定域的控制信號為條件。它還可以用于完全從零開始生成新狀態,并通過修復修改視頻內容。隨后,使用視頻 token 化器解碼器將預測的潛狀態解碼回像素空間。

與大多數潛擴散模型相比,GAIA-2 采用更高的空間壓縮率(例如,32 倍,而非更常見的 8 倍),并通過增加潛空間的通道維度(例如,64 通道而非 16 通道)來彌補這一缺陷。這會產生更少但語義更豐富的潛 tokens。由此帶來的優勢有兩方面:(1) 更短的潛序列能夠實現更快的推理和更高的內存效率;(2) 該模型展現出更強大的捕捉視頻內容和時間動態的能力。這種參數化策略的靈感來源于先前關于緊湊潛表征的研究 [10, 11]。

與依賴離散潛變量的前身 GAIA-1 [5] 不同,GAIA-2 采用連續潛空間,從而提高時間平滑度和重建保真度。此外,GAIA-2 引入一個靈活的調節接口,支持自車動作、動態智體狀態(例如 3D 邊框)、結構化元數據、CLIP 和場景嵌入以及相機幾何結構。這種設計能夠在生成過程中對場景語義和代理行為進行魯棒控制,同時確保跨視圖一致性和時間連貫性。

視頻 token 化器

視頻 token 化器將像素空間視頻壓縮為一個緊湊的潛空間,該空間連續且語義結構化。它由一個時空分解的transformer 和一個非對稱的編碼器-解碼器架構組成(分別具有 85M 和 200M 個參數)。編碼器提取時間上獨立的時空下采樣的潛空間;解碼器利用時間上下文,從這些潛空間重建全幀視頻,以保持時間一致性。

編碼器

給定輸入視頻 (i_1, …, i_T_v),編碼器 e_φ 計算潛 tokens (z_1, …, z_T_L) = e_φ(i_1, …, i_T_v),其中 T_v 表示視頻幀的數量,T_L 表示潛 token 的數量。用 H_v × W_v 表示視頻幀的空間分辨率,用 H × W 表示潛 tokens的空間分辨率。編碼器在空間上以 H_v/H = 32 的因子進行下采樣,在時間上以 T_v/T_L = 8 的因子進行下采樣。潛維度為 L = 64,因此總壓縮率為 (T_v × H_v × W_v × 3 / (T_L × H × W × L) = 384),其中 (T_v, H_v, W_v) = (24, 448, 960),(T_L, H, W) = (3, 14, 30)。

此下采樣通過將輸入幀的時間步長設為 2 倍,并采用以下模塊實現:

  1. 一個步長為 2 × 8 × 8(時間、高度、寬度)的下采樣卷積塊,隨后是另一個步長為 2 × 2 × 2 的下采樣卷積塊(兩者均在嵌入維度 512 下運行)。
  2. 一系列 24 個空間 Transformer 塊,維度為 512,包含 16 個輸入頭。
  3. 最后進行步長為 1 × 2 × 2 的卷積,然后線性投影到 2L 個通道,以對潛層建模高斯分布。需要注意的是,由于編碼器預測高斯分布的均值和標準差,因此潛層維度會加倍。在訓練和推理過程中,潛層都會從得到的分布中采樣。

解碼器

解碼器架構如下:

  1. 從潛層維度到嵌入維度的線性投影,然后是第一個步長為 1 × 2 × 2 的上采樣卷積塊(上采樣通過深度到空間模塊 [12] 實現)。
  2. 一系列 16 個時空分解的 Transformer 塊,維度為 512,包含 16 個輸入頭。
  3. 一個步幅為 2×2×2 的上采樣卷積塊,后接 8 個時空分解的 Transformer 塊,維度為 512,包含 16 個卷積頭。
  4. 最后一個上采樣卷積塊,步幅為 2×8×8,維度為 3,對應于像素 RGB 通道。

編碼器和解碼器之間的一個關鍵區別在于,編碼器獨立地將 8 個連續的視頻幀映射到單個時間潛向量,而解碼器則將 T_L = 3 個時間潛向量聯合解碼為 T_v = 24 個視頻幀,以保持時間一致性。在推理過程中,使用滑動窗口對視頻幀進行解碼。其邏輯如圖中的“訓練”和“推理”圖所示。

請添加圖片描述

訓練損失

視頻 token 化器采用像素重建和潛空間損失的組合進行訓練:

  • 使用 L1、L2 和感知損失 [13] 進行圖像重建。
  • 通過余弦相似度損失對潛特征進行 DINO [14] 蒸餾,從而與預訓練表征進行語義對齊。視頻幀采用 DINO 模型進行編碼,并通過線性插值進行時間下采樣,以匹配潛特征的維度。
  • 使用相對于標準高斯分布的 Kullback-Leibler 散度損失 [1] 來正則化潛空間。

為了提升視覺質量,進一步使用 GAN 損失 [4] 對解碼器進行微調,使用 3D 卷積鑒別器和圖像重建損失,同時保持編碼器處于凍結狀態。鑒別器由一系列殘差 3D 卷積塊組成,其基本通道數為 64,時間和空間步長均為 2,包含 3D 模糊池化[15]、通道乘子[2, 4, 8, 8]、3D 實例歸一化以及斜率為 0.2 的 LeakyReLU。它采用譜歸一化[16],并使用 softplus 激活函數實現原始的 GAN 損失函數。

世界模型

潛世界模型基于過去的潛狀態、動作和豐富的條件輸入,預測未來的潛狀態。它被實現為一個具有 8.4B 參數的時空分解transformer,并使用流匹配 [17] 進行訓練,以確保穩定性和樣本效率。

設 x_1:T 為輸入潛狀態,其中 T 為時間窗口,N 為攝像機數量。輸入潛狀態是通過使用編碼器 e_φ 對每個攝像機視圖進行獨立編碼獲得的。在每個時間步 t,還提供一個動作向量 a_t 和一個條件向量 c_t。

架構

世界模型是一個具有隱維度 C 的時空分解transformer。每個動作 a_t 和條件向量 c_t 都被嵌入,K 對應于條件變量的數量。流匹配時間 τ ∈ [0, 1] 也使用正弦編碼進行映射 [18]。流匹配時間 τ 和動作 a_t 通過自適應層范數 [19] 注入到每個 Transformer 模塊中,而對其他條件變量 c_t 使用交叉注意機制。使用自適應層范數,比使用交叉注意機制時動作條件的準確性更高。由于動作會影響每個空間 token,自適應層范數提供一個顯式的信息入口,而不必依賴可學習的注意機制。

關于位置編碼,分別對以下參數進行編碼:(i) 使用正弦嵌入表示空間 token 位置;(ii) 使用正弦嵌入后接小型多層感知器 (MLP) 表示相機時間戳;以及 (iii) 使用可學習的線性層表示相機幾何形狀(畸變、內參和外參)。所有這些位置編碼都添加到每個 Transformer 模塊開頭的輸入潛變量中,類似于 [20]。

世界模型包含 22 個時空分解的 Transformer 模塊,隱層維度為 C = 4096,并有 32 個頭。每個 Transformer 模塊包含一個空間注意機制(覆蓋空間和攝像頭)、一個時間注意機制、一個交叉注意機制和一個具有自適應層范數的 MLP 層。為了提高訓練穩定性,在每個注意層之前使用查詢鍵歸一化 [21]。

損失函數

在訓練時,隨機抽取上下文幀的數量 t ∈ {0, …, T ? 1},其中 t = 0 表示從頭開始生成。還根據預定義的分布抽取一個流匹配時間 τ ∈ [0, 1]。上下文潛向量 x_1:t 保持不變,而未來潛向量 x_t+1:T 則通過隨機高斯噪聲 ε_t+1:T ~ N(0, I) 進行線性插值。

速度目標向量 v_t+1:T 是目標潛向量與隨機噪聲之間的差值。世界模型 f_θ 根據上下文潛向量 x_1:t、動作 a_1:T 和條件變量 c_1:T 預測目標速度 v_t+1:T。該模型在預測速度和目標速度之間使用 L_2 損失函數進行訓練。

條件控制

GAIA-2 支持豐富且結構化的條件輸入,從而能夠對生成的場景進行細粒度控制。這些輸入包括車輛自身動作、動態智體屬性、場景級元數據、攝像頭配置、時間戳嵌入以及外部潛表征,例如 CLIP 或專有場景嵌入。條件機制通過自適應層歸一化(用于動作)、附加模塊(用于攝像頭幾何形狀和時間戳)和交叉注意機制(用于所有其他變量)的組合集成到世界模型中。

攝像頭參數。分別計算內參、外參和畸變的嵌入,然后將它們相加形成統一的相機編碼。對于內參,從內在矩陣中提取焦距和主點坐標,對其進行歸一化,并將它們投影到共享的潛空間中。外參和畸變系數也通過各自的編碼器進行類似的處理,以產生緊湊的表示。這種配置使模型能夠有效地融合現實世界中的相機變化。如圖展示訓練數據集中最常見的三種相機支架配置。

請添加圖片描述

視頻頻率。為了考慮不同的視頻幀率,GAIA-2 使用時間戳調節。每個時間戳:(i) 相對于當前時間進行歸一化并縮放到 [-1, 1] 范圍;(ii) 使用正弦函數進行變換(傅里葉特征編碼);以及 (iii) 通過多層感知器 (MLP) 生成共享潛空間向量。這種編碼能夠捕捉低頻和高頻時間變化,使模型能夠對以不同速率錄制的視頻進行有效推理。

動作。自車輛行為由速度和曲率參數化。由于這些量跨越多個數量級,使用對稱對數變換 symlog [22] 進行歸一化。結果是一個縮放到 [-1, 1] 的緊湊表示,從而提高了訓練穩定性。

動態智體。為了表示周圍的智體,用由 3D 目標檢測器 [23] 預測的 3D 邊框,這些邊框在數據集上進行重新訓練。每個邊框都編碼智體的 3D 位置、方向、尺寸和類別。3D 邊框被投影到 2D 圖像平面并進行歸一化,得到 f_i 個條件特征,T 表示時間潛向量的數量,N 表示攝像頭的數量,B 表示 3D 邊框的最大數量(可根據需要進行零填充)。每個特征維度都獨立嵌入,并通過單層 MLP 進行聚合。

為了增強模型的魯棒性和泛化能力,在訓練期間在特征維度和實例級別都實現丟棄。具體而言,以 p = 0.3 的概率丟棄特征維度,使模型能夠在推理時在信息不完整的情況下運行。例如,此設置允許在不指定實例 3D 位置的情況下對 2D 投影框進行條件投影,或者忽略方向,讓模型根據其他條件預測最合理的方向。

在實例級別,對于每個攝像頭,采樣一幀 t ∈ {1, …, T } 并計算檢測的實例數 N_instances。然后,采樣實例數以 n ∈ {0, …, min(B, N_instances)} 為條件,并對超過此樣本量的實例應用丟棄。這使得模型能夠在推理過程中適應可變數量的動態智體。請注意,在保持 n 隨時間恒定的同時,不使用實例跟蹤,從而允許模型獨立確定跨幀的條件投影特征是屬于相同還是不同的實例。

元數據。元數據特征是分類的,并使用專用的可學習嵌入層嵌入。這些包括:國家/地區、天氣、一天中的時間;限速;車道數量和類型(例如,公交車、自行車);人行橫道、交通信號燈及其狀態;單行道指示牌和交叉路口類型。這些嵌入使 GAIA-2 能夠學習場景級特征與其對行為影響之間的微妙關系,從而能夠模擬典型場景和罕見場景。

CLIP 嵌入。為了實現語義場景調節,GAIA-2 支持對 CLIP 嵌入進行調節 [24]。在訓練過程中,使用圖像編碼器從視頻幀中提取 CLIP 特征。在推理過程中,這些特征可以用來自自然語言提示的 CLIP 文本編碼器輸出替換。所有 CLIP 嵌入都使用可學習的線性投影投影到模型的潛空間中。這使得能夠通過自然語言或視覺相似性對場景語義進行零樣本控制。CLIP 調節如圖所示:

請添加圖片描述

場景嵌入。GAIA-2 還可以使用從內部專有模型獲得的場景嵌入進行調節,該模型經過訓練可編碼特定于駕駛的信息。這些嵌入可以緊湊地捕捉自我動作和場景上下文,例如道路布局和智體配置。場景向量通過可學習的線性層投影到潛空間,然后再集成到 Transformer 中。這允許從緊湊的抽象表示生成高級場景。

流匹配時間分布

在流匹配框架下,訓練世界模型的一個關鍵因素是,流匹配時間 τ 的分布。該分布決定模型看到接近真實的潛輸入和受到嚴重干擾的潛輸入頻率。

使用具有兩種模態的雙模態對數正態分布:

  • 一個主要模式,以 μ = 0.5、σ = 1.4 為中心,以 p = 0.8 的概率采樣。這使模型傾向于在低到中等噪聲水平下學習。從經驗上講,這鼓勵學習有用的梯度,因為即使是少量的噪聲也會顯著干擾高容量潛在輸入。
  • 一個次要模式,以 μ = ?3.0、σ = 1.0 為中心,以 p = 0.2 的概率采樣。這使得訓練集中在 τ = 0 附近幾乎純噪聲的區域,幫助模型學習空間結構和低級動態,例如自我運動或目標軌跡。

這種雙模態策略,確保訓練在低噪聲和高噪聲環境下均有效,從而提高泛化能力和樣本質量。

此外,輸入潛向量 x_t 按照 [25] 的方法,通過其平均值 μ_x 和標準差 σ_x 進行歸一化,以確保其幅度與添加的高斯噪聲相匹配。這避免信號和擾動之間的尺度失配,否則可能會降低訓練動態性能。

GAIA-2 基于一個大規模內部數據集進行訓練,該數據集專門用于滿足自動駕駛視頻生成的多樣化需求。該數據集包含約 2500 萬個視頻序列,每個序列時長 2 秒,收集于 2019 年至 2024 年期間。為了覆蓋地理和環境差異化的駕駛條件,數據集采集自英國、美國和德國三個國家。

為了捕捉現實世界自動駕駛的復雜性,數據收集工作涉及多個車輛平臺,包括三種不同的轎車型號和兩種廂式貨車。每輛車都配備五個或六個攝像頭,配置為提供全面的 360 度環視覆蓋。攝像頭系統的捕捉頻率各不相同——20 Hz、25 Hz 和 30 Hz——從而帶來一系列時間分辨率。這種差異性反映實際自動駕駛汽車中傳感器配置的異構性,并支持 GAIA-2 在不同輸入速率和硬件規格之間進行泛化的能力。

該數據集的一個重要特征是在整個數據收集期間攝像頭位置的變化。隨時間的推移,攝像頭的位置和標定會跨平臺進行調整,從而引入廣泛的空間配置。這種多樣性提供強大的訓練信號,可用于在不同攝像頭裝置上進行泛化,這是自動駕駛領域可擴展合成數據生成的關鍵要求。

該數據集還涵蓋廣泛的駕駛場景,包括不同的天氣條件、一天中的時間、道路類型和交通環境。為了確保覆蓋這種復雜性,不僅根據單個特征,還根據它們的聯合概率分布明確地平衡訓練數據。這種方法通過對現實的共現情況(例如,特定地理區域的特定光照和天氣條件,或特定道路類型特有的行為)進行建模,從而能夠獲得更具代表性的學習信號。為了避免訓練樣本冗余,在選定的序列之間強制使用最小時間步長,從而在保持自然分布的同時降低重復風險。

在評估方面,實施地理隔離驗證策略。定義特定的驗證地理圍欄,將某些區域完全排除在訓練集之外。這確保了模型評估是在未見過的位置進行的,從而能夠更嚴格地評估不同環境下的泛化性能。

總而言之,該數據集為訓練 GAIA-2 奠定堅實的基礎。其廣泛的時間和空間覆蓋范圍、車輛和攝像頭配置的多樣性以及原則性的驗證設置,使其非常適合開發生成世界模型,能夠在各種現實條件下生成逼真且可控的駕駛視頻。

訓練存在 GAIA-2 兩個組件的訓練流程:視頻 token化器和世界模型。每個組件都使用大規模計算基礎設施和定制的損失函數配置進行獨立訓練,以優化各自的目標。

視頻 token 化器。視頻 token 化器使用 128 個 H100 GPU,訓練 30 萬步,批次大小為 128。輸入序列由 24 個以其原生捕獲頻率(20、25 或 30 Hz)采樣的視頻幀組成。從幀中提取尺寸為 448 × 960 的隨機空間裁剪。對于每個訓練樣本,從可用的 N = 5 個視角中隨機選擇一個攝像機視圖。注:每個攝像機流都獨立編碼。

Token 化器執行 8 倍時間下采樣和 32 倍空間下采樣,產生潛在維度 L = 64 的壓縮表示,有效總壓縮率約為 400(24×448×960×3 /(3×14×30×64) ? 400)。

Token化器的損失函數由圖像重建、感知和語義對齊項組合而成:(1) DINO v2 (Large) [14] 在潛空間中進行蒸餾,權重為 0.1。(2) 潛分布與單位高斯分布之間的 KL 散度 [1],權重較低,為 1e?6,以提高平滑度。(3) 像素級損失:L1 損失(權重 0.2)、L2 損失(權重 2.0)和 LPIPS 感知損失 [26](權重 0.1)。

在整個訓練過程中,token化器參數 φ 保持指數移動平均值 (EMA),衰減因子為 0.9999,并在每個訓練步更新。EMA權重用于推理。

使用 AdamW 優化訓練:2,500個預熱步,基礎學習率為1e-4;5,000個冷卻步,最終學習率為1e-5;Adam betas [0.9, 0.95],權重衰減為0.1,梯度裁剪為1.0。初始訓練后,使用 GAN 損失函數(權重為0.1)結合之前的重建損失函數,對 token化器解碼器進行額外的20,000步微調。鑒別器采用1e-5的學習率進行優化。

世界模型。潛世界模型在 256塊 H100 GPU上以256的批量大小訓練 460,000 步。輸入由 48 個視頻幀組成,這些視頻幀的原始捕捉頻率為 20、25 或 30 Hz,空間分辨率為 448 × 960,跨越 N = 5 個攝像頭。將這些視頻編碼到潛空間后,相當于 T × N × H × W = 6 × 5 × 14 × 30 = 12,600 個輸入 tokens。

為了提高泛化能力,按以下方式采樣不同的訓練任務:70% 從零開始生成、20% 上下文預測和 10% 空間修復。為了使模型正則化并實現無分類器指導,隨機刪除條件變量。每個單獨的條件變量以 80% 的概率獨立刪除,所有條件變量以 10% 的概率同時刪除。

輸入攝像頭視圖以 10% 的概率隨機刪除,以增強對部分可觀測性的魯棒性。使用固定均值 μ_x = 0.0 和標準差 σ_x = 0.32 對潛 tokens 進行歸一化,這兩個值是在 token 化器訓練過程中根據經驗確定的。

與 token化器一樣,維護世界模型參數 θ 的 EMA,衰減因子為 0.9999,并在每個訓練步驟中更新。EMA 權重用于推理。優化器是 AdamW,其優化器具有以下特點:2,500 個預熱步驟,初始學習率為 5e?5,并在整個訓練期間進行余弦衰減,最終學習率為 6.5e?6;Adam 的 beta 值為 [0.9, 0.99],權重衰減為 0.1,梯度剪裁為 1.0。

GAIA-2 模型支持一系列推理任務,展現了其在視頻生成場景中的靈活性和可控性。這些任務通過在潛空間中運行的共享去噪過程統一起來,然后通過視頻 token化器解碼到像素空間。

推理任務。考慮四種主要的推理模式,每種模式都展現模型的獨特能力:

  • 從零開始生成涉及采樣純高斯噪聲,并在條件變量的指導下對其進行去噪。然后,使用視頻 token 化器解碼器將生成的潛數據解碼為視頻幀,并通過滾動窗口解碼機制生成時間一致的輸出。
  • 自回歸預測能夠根據過去上下文潛數據序列預測未來潛數據。給定一個包含 k = 3 個時間潛數據的初始上下文窗口,該模型預測下一組潛數據,將其附加到上下文中,然后使用滑動窗口重復該過程。這種方法允許在結合自我運動等條件信號的同時進行長視界展開。如圖提供一個示例。

請添加圖片描述

  • 修復允許選擇性地修改視頻內容。對潛輸入應用時空掩碼,并通過條件去噪重新生成被掩碼的區域。來自動態智體條件(例如,智體位置)的可選指導可以引導掩碼區域內的生成。如圖展示一個示例。

請添加圖片描述

  • 場景編輯是通過對從真實視頻中提取的潛輸入進行部分加噪,然后通過改變條件進行去噪來實現的。這可以實現有針對性的語義或風格轉換,例如更改天氣、時間或道路布局,而無需重新生成完整場景。如圖展示此功能。

請添加圖片描述

這些模式表明,GAIA-2 可以作為通用模擬器,用于各種場景操作任務,無論是從噪聲、上下文還是現有視頻開始。

推理噪聲調度。對于所有推理任務,采用 [20] 中提出的線性二次噪聲調度。該方案從線性間隔的噪聲級別開始,這對于捕捉粗略的場景布局和運動模式非常有效。在后期階段,該方案過渡到二次間隔的步驟,以便更有效地細化高頻視覺細節。這種混合方法同時提高生成質量和計算效率。在實驗中,使用固定數量的 50 個去噪步驟。

無分類器引導。推理過程中默認不使用無分類器引導 (CFG)。但是,對于具有挑戰性或分布不均勻的場景,例如涉及罕見邊緣情況或不尋常的智體配置的場景(例如下圖所示),會根據場景的復雜程度,使用 2 到 20 的引導等級來激活 CFG。

請添加圖片描述

在涉及動態智體條件的場景中,與智體特定區域關聯的潛 token 是先驗已知的,應用空間選擇性 CFG。在這種情況下,引導僅應用于受條件影響的空間位置(例如 3D 邊框),從而提升目標區域的生成質量,而不會對場景的其余部分造成不必要的影響。這種定向方法能夠更精確地控制場景元素,同時保持全局一致性。

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

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

相關文章

《算法筆記》10.4小節——圖算法專題->最短路徑 問題 D: 最短路徑

題目描述 有n個城市m條道路&#xff08;n<1000, m<10000)&#xff0c;每條道路有個長度&#xff0c;請找到從起點s到終點t的最短距離和經過的城市名。 輸入 輸入包含多組測試數據。 每組第一行輸入四個數&#xff0c;分別為n&#xff0c;m&#xff0c;s&#xff0c;t…

深度解析 Kubernetes 配置管理:如何安全使用 ConfigMap 和 Secret

目錄 深度解析 Kubernetes 配置管理&#xff1a;如何安全使用 ConfigMap 和 Secret一、目錄結構二、ConfigMap 和 Secret 的創建1. 創建 ConfigMapconfig/app-config.yaml&#xff1a;config/db-config.yaml&#xff1a; 2. 創建 Secretsecrets/db-credentials.yaml&#xff1a…

數據庫之mysql優化

1.引擎&#xff1a; 1.1查看引擎&#xff1a; mysql> show engines; mysql> SHOW VARIABLES LIKE %storage_engine%; mysql> show create table t1; ---查看建表信息1.2 臨時指定引擎&#xff1a; mysql> create table innodb1(id int)engineinnodb; 1.3修改…

【Yii2】Yii2框架的一次BUG排查

因為項目需要&#xff0c;最近學習了使用Yii2框架的使用。但畢竟剛上手&#xff0c;好多地方都不清楚。所以就有了這個博客。 1、需求 有這么一個需求&#xff1a; 后臺需要訪問用戶的一個界面。為了界面不出問題&#xff0c;需要傳遞一個真實存在的Token。但對這個Token沒有…

卡爾曼濾波解釋及示例

卡爾曼濾波的本質是用數學方法平衡預測與觀測的可信度 &#xff0c;通過不斷迭代逼近真實狀態。其高效性和魯棒性&#xff0c;通常在導航定位中&#xff0c;需要融合GPS、加速度計、陀螺儀、激光雷達或攝像頭數據&#xff0c;來提高位置精度。簡單講&#xff0c;卡爾曼濾波就是…

Python 學習路線與筆記跳轉(持續更新筆記鏈接)

這里寫目錄標題 Python 學習路線與筆記Python 簡介學習路線第一階段&#xff1a;Python 基礎第二階段&#xff1a;Python 進階第三階段&#xff1a;實用庫與框架第四階段&#xff1a;DevOps 與 Python第五階段&#xff1a;最佳實踐與高級技巧 學習資源官方資源在線學習平臺書籍…

決策衛生問題:考公考編考研能補救高考選取職業的錯誤嗎

對于決策者來說&#xff0c;“認識你自己”是一個永恒的主題&#xff1b;警惕認知中的缺陷&#xff0c;比什么都重要。在判斷與決策問題上&#xff0c;管理者和專業人士往往都非常自信。人類遠遠不如我們想象的那么理性&#xff0c;人類的判斷也遠遠不如我們想象的那么完美。在…

React19源碼閱讀之commitRoot

commitRoot入口 在finishConcurrentRender函數&#xff0c;commitRootWhenReady函數&#xff0c;commitRoot函數。 commitRoot流程圖 commitRoot函數 commitRoot 函數是 React 渲染流程中用于提交根節點的關鍵函數。它的主要作用是設置相關的優先級和狀態&#xff0c;然后調…

利用Python爬蟲實現百度圖片搜索的PNG圖片下載

在圖像識別、訓練數據集構建等場景中&#xff0c;我們經常需要從互聯網上批量下載圖片素材。百度圖片是中文搜索中最常用的來源之一。本文將介紹如何使用Python構建一個穩定、可擴展的百度圖片爬蟲&#xff0c;專門用于下載并保存高清PNG格式圖片。 一、項目目標 本項目的目標…

Axure復選框組件的深度定制:實現自定義大小、顏色與全選功能

在產品設計中&#xff0c;復選框作為用戶與界面交互的重要元素&#xff0c;其靈活性直接影響到用戶體驗。本文將介紹如何利用Axure RP工具&#xff0c;通過高級技巧實現復選框組件的自定義大小、顏色調整&#xff0c;以及全選功能的集成&#xff0c;為產品原型設計增添更多可能…

深度理解spring——BeanFactory的實現

BeanFactory Spring之BeanFactory什么是BeanFactoryApplicationContext相對BeanFactory實現的功能性擴展1. MessageSource2. ResourcePatternResolver3. ApplicationEventPublisher4. EnvironmentCapable通用ApplicationContext實踐實現BeanFactoryBeanFactory后處理器排序讓誰…

跑MPS產生委外采購申請(成品)

問題&#xff1a;跑MPS產生委外采購申請&#xff08;成品&#xff09;&#xff0c;更改BOM和跑MRP&#xff0c;但物料需求清單中無新增物料復合膜的需求。截圖如下&#xff1a; 解決方法&#xff1a;更改委外采購申請的批準日期為BOM的生效日和重新展開bom。 重新展開后&#x…

“在中國,為中國” 英飛凌汽車業務正式發布中國本土化戰略

3月28日&#xff0c;以“夯實電動化&#xff0c;推進智能化&#xff0c;實現高質量發展”為主題的2025中國電動汽車百人會論壇在北京舉辦。眾多中外機構與行業上下游嘉賓就全球及中國汽車電動化的發展現狀、面臨的挑戰與機遇&#xff0c;以及在技術創新、市場布局、供應鏈協同等…

優雅實現網頁彈窗提示功能:JavaScript與CSS完美結合

在現代Web開發中&#xff0c;彈窗提示是提升用戶體驗的重要元素之一。本文將深入探討如何實現一個優雅、可復用的彈窗提示系統&#xff0c;避免常見問題如重復觸發、樣式混亂等。 核心代碼解析 // 控制彈窗是否可以顯示的標志 let alertStatus true;// 顯示提示信息 functio…

YOLOv11改進-雙Backbone架構:利用雙backbone提高yolo11目標檢測的精度

一、引言&#xff1a;為什么我們需要雙Backbone&#xff1f; 在目標檢測任務中&#xff0c;YOLO系列模型因其高效的端到端檢測能力而備受青睞。然而&#xff0c;傳統YOLO模型大多采用單一Backbone結構&#xff0c;即利用一個卷積神經網絡&#xff08;CNN&#xff09;作為特征提…

用 PyQt5 和 asyncio 打造接口并發測試 GUI 工具

接口并發測試是測試工程師日常工作中的重要一環&#xff0c;而一個直觀的 GUI 工具能有效提升工作效率和體驗。本篇文章將帶你用 PyQt5 和 asyncio 從零實現一個美觀且功能實用的接口并發測試工具。 我們將實現以下功能&#xff1a; 請求方法選擇器 添加了一個下拉框 QComboBo…

理解npm的工作原理:優化你的項目依賴管理流程

目錄 什么是npm npm核心功能 npm 常用指令及其作用 執行npm i 發生了什么? 1. 解析命令與參數 2. 檢查依賴文件 3. 依賴版本解析與樹構建 4. 緩存檢查與包下載 5. 解壓包到 node_modules 6. 更新 package-lock.json 7. 處理特殊依賴類型 8. 執行生命周期腳本 9. …

React Native 安卓端 android Image 播放gif webp 動態圖

React Native 安卓端 android Image 播放gif webp 動態圖 RN項目是0.78.2 React是19.0 基本介紹 Image 是 React Native 中用于顯示各種類型圖片的核心組件&#xff0c;支持顯示網絡圖片、靜態資源、本地圖片以及 base64 編碼的圖片。在 Android 端&#xff0c;Image 組件還可…

實時數字人——DH_LIVE

前兩天親手搭建了實時對話數字人VideoChat&#xff0c;今天來搭建下DH_LIVE。 DH_LIVE一個實時數字人解決方案&#xff0c;從輸入文字到數字人對口型說話用時2-3秒。 今天就來實際操作下dh_live的搭建過程。 首先貼上git地址&#xff1a;https://github.com/kleinlee/DH_liv…

AOSP CachedAppOptimizer 凍結方案

背景 Android 一直面臨一個核心難題&#xff1a;如何優化進程對有限系統資源&#xff08;如 CPU、電量&#xff09;的使用&#xff0c;同時保證用戶體驗。 當進程進入后臺后&#xff0c;它們雖不再貢獻用戶體驗&#xff0c;卻仍可能消耗資源。傳統的殺后臺方案雖然節省資源&a…