論文reading學習記錄3 - weekly - 模塊化視覺端到端ST-P3

文章目錄

  • 前言
  • 一、摘要與引言
  • 二、Related Word
    • 2.1 可解釋的端到端架構
    • 2.2 鳥瞰圖
    • 2.3 未來預測
    • 2.4 規劃
  • 三、方法
    • 3.1 感知bev特征積累
      • 3.1.1 空間融合(幀的對齊)
      • 3.1.2 時間融合
    • 3.2 預測:雙路徑未來建模
    • 3.3 規劃:先驗知識的整合與提煉
  • 4. 端到端學習的Overall Loss
    • 4.1 感知loss
    • 4.2 預測loss
    • 4.3 Planning Loss:兩階段 + 排名 + 回歸


前言

題目:ST-P3: End-to-end Vision-based Autonomous Driving via Spatial-Temporal Feature Learning
2022年的視覺端到端論文。
SV(Surrounding Vehicle)
ego-motion:自身運動

真的好難 :(

一、摘要與引言

提出了一種聯合時空特征學習的端到端方法,明確設計網絡中的中間表示,同時為感知、預測和規劃任務提供一組更具代表性的特征,具體而言:

  1. 提出了一種以自我為中心的對齊累積技術,在鳥瞰圖轉換之前保留3D空間中的幾何信息以進行感知。
  2. 雙路徑建模,以考慮過去的運動變化,用于未來的預測。
  3. 引入了一種基于時間的細化單元,用于補償識別基于視覺的元素以進行規劃。

首次對version-based端到端自動駕駛的每個部分進行拆分研究,實驗證明我們最好。
基于激光雷達的[5,56,55,16]和基于視覺的[26,42,51]。
4. Lidar-based
[5] Casas, S., Sadat, A., Urtasun, R.: Mp3: A unified model to map, perceive, predict and plan. In: CVPR (2021)
[56] Zeng, W., Wang, S., Liao, R., Chen, Y., Yang, B., Urtasun, R.: Dsdnet: Deep structured self-driving network. In: ECCV (2020) 2, 3, 4, 5, 6
[55] Zeng, W., Luo, W., Suo, S., Sadat, A., Yang, B., Casas, S., Urtasun, R.: End-to-end interpretable neural motion planner. In: CVPR (2019)
[16] Casas, S., Sadat, A., Urtasun, R.: Mp3: A unified model to map, perceive, predict and plan. In: CVPR (2021)
5. version-based
[26] Hu, A., Murez, Z., Mohan, N., Dudas, S., Hawke, J., Badrinarayanan, V., Cipolla, R., Kendall, A.: Fiery: Future instance prediction in bird’s-eye view from surround monocular cameras. In: ICCV (2021) 2, 3, 5, 6, 8, 10, 12, 13, 22
[42] Philion, J., Fidler, S.: Lift, splat, shoot: Encoding images from arbitrary camera rigs by implicitly unprojecting to 3d. In: ECCV (2020) 2, 3, 5, 6, 10, 12
[51] Wang, H., Cai, P., Sun, Y., Wang, L., Liu, M.: Learning interpretable end-to-end vision-based motion planning for autonomous driving with optical flow distillation. In: ICRA (2021) 2, 3, 5, 6, 10, 12

Lidar-based method通常與HDmap決定,但是高精地圖存在各種弊端。
Vision-based method的關鍵挑戰,對應三個模塊和核心創新點:

  1. 將特征表示從透視圖轉化到鳥瞰圖空間。LSS method [42] 從多視圖中提取透視特征,通過深度估計到3D并融合到BEV空間中。同時LSS把時間納入框架,將過去幀的特征投影到當前的坐標視圖上,這些技術由數據集提供,或光流中學習。但LSS孤立的逐幀投影特征,我們是在3D空間中對齊積累所有的特征。
    [42] Philion, J., Fidler, S.: Lift, splat, shoot: Encoding images from arbitrary camera rigs by implicitly unprojecting to 3d. In: ECCV (2020) 2, 3, 5, 6, 10, 12
  2. 在BEV空間中Equipped with代表性特征(物體位置、速度),我們將預測任務 formulate as 對未來時刻的每個物體實例進行分割,像FIERY [26] 一樣。
    但提高未來預測的準確性,需要考慮過去的運動變化 [24],這在FIERY[26]中缺失了。
    [24] Hu, A., Cotter, F., Mohan, N., Gurau, C., Kendall, A.: Probabilistic future prediction for video scene understanding. In: ECCV (2020) 5
    [26] Hu, A., Murez, Z., Mohan, N., Dudas, S., Hawke, J., Badrinarayanan, V., Cipolla, R., Kendall, A.: Fiery: Future instance prediction in bird’s-eye view from surround monocular cameras. In: ICCV (2021) 2, 3, 5, 6, 8, 10, 12, 13, 22。
  3. 規劃模塊在感知預測輸出的候選軌跡(采樣生成)語義信息的基礎上生成 自車的最優行駛軌跡(通過 學習based 或 規則based 的方法,計算每個候選軌跡的可信度),同時去除HDmap并 向網絡提供高級命令,這是抄的MP5 [5] 。但是MP5視覺識別模塊是現成的、預訓練的,沒有進行特別定制或優化。所以我們將視覺信息集成到同一網絡中的輕量級 GRU 單元中(GRU:遞歸神經網絡模型,用于處理 時序數據 和 連續性信息,它可以幫助系統 更好地理解動態變化的環境)
    [5] Casas, S., Sadat, A., Urtasun, R.: Mp3: A unified model to map, perceive, predict and plan. In: CVPR (2021) 2, 3, 4, 5, 6, 9

ST-P3網絡架構圖:
在這里插入圖片描述
感知:自我中心對齊累積保證了特征(過去和現在)在3D空間中對齊和聚合,以在BEV變換之前保留幾何信息。
預測:引入了雙路徑方案(現在的和過去的),以引入過去的變化來追求未來的預測。
規劃:先驗知識被輸入到一個細化單元中,以生成最終軌跡,該軌跡具有集成的成本量和來自高級命令的采樣器。

綜上所述,ST-P3做出了如下貢獻:

  1. 提出了一個新的端到端框架ST-P3,包括三個新的改進:感知自我中心對齊累積、預測雙路徑建模和預測模塊先驗知識細化。
  2. 系統地研究了自動駕駛任務的可解釋端到端系統的每個部分,這是視覺模塊化端到端的開創性文章。
  3. 實驗無敵。

二、Related Word

2.1 可解釋的端到端架構

Lidar-based較多,但vision-based較少。總的來說,基于激光雷達的方法在具有挑戰性的城市場景中表現良好。不幸的是,這些工作中的數據集和基線并沒有發布進行比較;而lidar-based的方法同時比較依賴HDmap,Casas等人(MP3)[5]根據分割以及其他代理的當前和未來狀態構建了一個在線地圖

2.2 鳥瞰圖

鳥瞰圖(BEV)表示法非常適合規劃和控制任務[38,57,40,12,1]。
盡管激光雷達和高清地圖中的信息可以很容易地在BEV中表示,但如何將視覺輸入從相機視圖投影到BEV空間是一個不小的問題。
方法概述:
基于學習的投影方法通常無法保證質量,因為BEV沒有真實數據來監督投影過程;
Loukkal等人[34]明確地使用圖像和BEV平面之間的單應性將圖像投影到BEV中;
[32,10]通過空間交叉注意力和預定義的BEV查詢獲取BEV特征;
LSS[42]和FIERY[26]以估計的深度和圖像內參進行投影,表現出令人印象深刻的性能(你“融合”的他倆-,-);
但FIERY用的過去的特征幀,俺們用的過去所有的3D特征(Fastlio),然后是獨創的自我中心對齊,積累對齊的特征。

2.3 未來預測

當前通常輸入為:地面真實感知信息和HDmap。但如果這個感知輸入來自其他模塊,很容易產生累計誤差。
而端到端輸入:raw傳感器數據。
受視頻未來預測的啟發[24],我們將概率不確定性與過去的動態相結合,以預測多樣化和合理的未來場景。

2.4 規劃

隱式方法:網絡直接生成軌跡或控制命令,即系統輸出的是最終的動作或路徑。這種方法缺乏可解釋性和魯棒性。

顯式方法:通常通過 軌跡采樣器(sampling)生成多個候選軌跡,然后使用代價地圖(cost map)來評估每個軌跡的優劣,選擇最低成本的軌跡。顯式方法可以精細調整候選軌跡,但相對來說也更復雜。
代價地圖可以基于分割和HDmap等中間表示,用手工制作的規則[48,5,16]構建;或者可以直接從網絡中學習[55]。
DSDNet [56] 結合了手工制作和基于學習的成本,以獲得綜合成本量。我們采用這種組合來選擇最佳軌跡。
[56] Zeng, W., Wang, S., Liao, R., Chen, Y., Yang, B., Urtasun, R.: Dsdnet: Deep structured self-driving network. In: ECCV (2020) 2, 3, 4, 5, 6
然而,我們通過添加一個帶有導航信號的額外GRU細化單元來修改管道,以進一步調整和優化所選軌跡。

三、方法

3.1 感知bev特征積累

在這里插入圖片描述
以自我為中心的感知積累:
(a)通過深度估計將當前時間戳的特征提升到3D,并在對齊后合并為BEV特征xt;
(b-c)將先前幀中的3D特征與當前視圖對齊,并與所有過去和當前狀態融合,從而增強特征表示。(空間和時間的融合)
空間融合:對所有時間戳的多視圖圖像進行處理,并將其轉換為當前以自我為中心的3D空間;
時間融合:以累積的方式增強靜態元素和運動對象的特征鑒別,并采用時間模型來實現最終的融合。

3.1.1 空間融合(幀的對齊)

每個攝像頭圖像在這里插入圖片描述通過backbone網絡獲取特征在這里插入圖片描述和深度信息在這里插入圖片描述,特征點深度信息由[42]計算,其中C是特征通道的數量,D表示離散深度的數量,(He,We)表示空間大小。
由于無法獲得確切的深度信息,我們將特征和深度整合到全局3D frame中,特征和深度的外積表示他們之間的關系被u聯合表示。
在這里插入圖片描述
然后,使用相機內外參將相機特征frustums ui∈{u1i,…,un-i} 轉換為全局3D坐標,其原點位于時間i時自我車輛的慣性中心。

另一方面,空間融合需要將過去的特征與當前幀對齊,以便進行下游預測和規劃任務。

3.1.2 時間融合

目的:為了增強對靜態物體的感知能力。
核心思想:多幀融合,把歷史信息加權到當前幀,以強化靜態特征。

實現:經典method一般直接利用具有堆疊BEV特征的3D卷積。但考慮到地面上的禁止物體(車道和禁止的車輛),各個立方體相同位置的特征應該相似,所以

在這里插入圖片描述
其中在這里插入圖片描述
xt:t幀融合后的特征圖
bt:t幀原始 BEV 特征圖(未融合的當前幀)
ai:權重衰減系數,每往前一幀,權重衰減一半
融合方式:當前幀的 BEV 特征 加上 所有歷史幀 BEV 特征的加權和。(第一幀直接等于它自己的特征)

為了更準確地感知動態對象,我們將這些特征輸入到通過3D卷積實現的時間融合網絡中。為了補償自我車輛運動引起的偏差,我們通過在空間通道中連接運動矩陣來將其添加到特征中。
在這里插入圖片描述
其中m1~t表示自我運動矩陣(ego-motion matrix),C表示3D卷積網絡。這個自我運動矩陣通常表示 相鄰時間幀之間自車(ego-vehicle)的姿態變化。此時序融合網絡(3D Conv + ego-motion)會參與端到端訓練和整體優化,在預測之前,它直接影響模型的中間特征。它的輸出會繼續送到后續的感知、預測、規劃任務模塊。有梯度回傳,訓練時權重會被更新。

思考:為什么不直接用SE(3)做補償,而要放到網絡里?一句話總結: SE(3) 只能做“死板”的幾何對齊,而我們要融合的是含噪位姿語義化高維特征動態場景的對齊,所以交給網絡完成。

傳統SLAM的邏輯:
直接對稠密/稀疏點云或圖像做 幾何變換(warp),通過SE(3)將前后幀對齊。輸入是觀測,輸出是狀態(位姿),再拼接地圖。

端到端BEV網絡的邏輯:
Backbone 提取的是高維特征圖(feature map),而不是稠密幾何。
想把前幾幀特征融合到當前幀,就要對齊這些高維特征。
這時,可以用幾何位姿去 warp 特征,但 warp 后是否最佳?深度學習傾向于再學一個小網絡(例如3D卷積)去做“補償+融合”,理由:

  1. 特征并非嚴格幾何空間點,可能包含語義/時間信息 → 直接warp可能信息丟失。
  2. 動態物體問題(warp后,其他車輛的位置不一樣)。
  3. 有時位姿信息本身有噪聲,網絡可以學到魯棒融合。

3.2 預測:雙路徑未來建模

在動態駕駛環境中,傳統的運動預測算法[53,20,17]通常將未來的軌跡預測為確定性或多模態結果,但這無法覆蓋未來的所有可能性,特別是由于 多方交互(例如駕駛行為、交通要素和道路環境)。
為了解決 未來預測的不確定性,這個方法通過 建模條件不確定性 來改進預測模型。

未來軌跡預測 的 雙路徑建模
歷史特征(x1, …, xt):表示從時刻1到 t 的過去觀測數據,用于模型的初步預測。
未來的不確定性分布:這是基于 高斯分布 的模型,包含了未來的不確定性。這個分布有 均值 和 方差,通過采樣生成未來的不確定性特征。人話版:這個 μ 是 BEV 場景特征經過編碼后得到的“未來可能場景的壓縮表示”,它不是像素,而是一個隱藏特征向量,代表預測模塊對未來的最佳猜測。

雙路徑建模:模型有兩個路徑來處理輸入:

路徑一:使用 歷史特征(x1,…,xt)作為 GRU(門控循環單元,Gated Recurrent Unit) 的輸入進行預測,x1是初始的隱狀態。
路徑二:使用來自未來不確定性分布在這里插入圖片描述的樣本和初始隱藏狀態xt 作為 GRU 的輸入(ii)
混合高斯預測:通過結合歷史特征未來不確定性的預測結果,生成未來時刻的特征。
在這里插入圖片描述
其中G表示GRU的過程。對偶建模遞歸預測未來的狀態(x?t+1,…,x?t+H)。

在這里插入圖片描述

所有特征(x1,…,xt)和 未來的狀態(x?t+1,…,x?t+H)輸入到解碼器D中。此解碼器有多個輸出頭(multi-head),每個 head 對應一個特定任務,最終輸出多個可解釋的場景元素:
? 實例分割 Head
輸出:Instance centerness(實例中心度)Offset(實例偏移)Future flow(未來運動流場)
作用:用于表示動態目標的位置與未來運動趨勢。
? 語義分割 Head
輸出:車輛、行人等主要參與者的語義類別。
作用:明確哪些區域由關鍵目標占據。
? HD Map 生成 Head
輸出:可行駛區域(Drivable area)車道線(Lanes)
作用:提供結構化地圖信息,增強規劃可解釋性。
? Cost Volume Head(代價體積)
輸出:每個位置在規劃時間范圍內的代價(即 SDV 選擇該位置的難度或風險)
作用:供規劃模塊評估最優軌跡。
? Past Frame Decoding Head(歷史特征精細化)
目的:提高歷史特征的準確性,增強 Dual Modelling(歷史-未來雙向建模)性能。

在這里插入圖片描述
SDV成功地生成了一個安全的軌跡,可以在不與路邊或前方車輛碰撞的情況下進行左轉。

留一個坑:
在這里插入圖片描述
SDMap 輸入模型,用于特征融合(提升 BEV 語義)

  1. 該方法通過 雙路徑建模 來捕捉 不確定性,考慮 多模態未來預測。
  2. 歷史特征 和 未來不確定性 共同影響最終的預測結果,使得 軌跡預測 更加魯棒,能夠處理復雜的環境交互。
  3. 通過 混合高斯分布 和 遞歸預測,能夠 連續預測未來狀態,而不僅僅是靜態的軌跡。
  4. 解碼器生成多個輸出,有助于 可解釋性,如輸出未來的 車輛軌跡、障礙物位置、可駕駛區域等。

3.3 規劃:先驗知識的整合與提煉

設計了一個運動規劃器,該規劃器對一組不同的軌跡進行采樣,并選擇一個最小化學習成本函數的軌跡(抄的[55,48,5])
區別:通過一個額外的優化步驟與它們區分開來,該步驟使用時間模型來整合目標點和交通燈的信息

輸入:
SDV 當前動態狀態(位置、速度、航向)
預測模塊的輸出:Occupancy Probability Field(預測占用概率場)、Cost Volume(學習到的規劃代價體積)。不依賴HD Map。
高層命令:Forward / Turn Left / Turn Right
相機特征(通過 GRU,用于推斷交通燈狀態)

f 表示軌跡代價函數(trajectory cost function),用于評估每一條候選軌跡 𝜏,并最終選擇代價最小的軌跡 𝜏?
在這里插入圖片描述
𝜏:一條候選軌跡(通過 bicycle model 采樣),這些軌跡不是端到端網絡直接預測的,而是根據物理模型和控制輸入隨機/系統采樣出來的
o:預測模塊輸出的占用概率場(occupancy predictions)
m:地圖表示(這里是預測模塊輸出的HD map 結構,如 drivable area 和 lanes)
在這里插入圖片描述:各部分代價函數的可學習權重
三個代價函數的詳細介紹:

第一個部分:Rule-based / Protocol cost
檢查軌跡是否與預測占用概率 o 或地圖約束(車道、drivable area)沖突
邏輯:
如果軌跡穿過其他 agent 占用區域 → 高懲罰
維持一定安全距離 → 減少碰撞風險
作用:保證安全性

第二個部分:Learning-based Cost Volume
來自預測模塊學習到的 Cost Volume Head
Cost Volume 表示“每個位置在未來是否適合 SDV 到達”,是學習得到的規劃代價圖
好處:模型自動學習復雜場景代價(例如交叉口風險),而非手寫規則

第三個部分:Regularization Cost
舒適性 → 懲罰過大橫向加速度、曲率、加加速度(jerk)
進度 → 獎勵前進,懲罰停滯
作用:讓軌跡不僅安全,還平滑、符合駕駛體驗

在采樣得到的一組軌跡 中,通過計算 f(),選出代價最小的軌跡:
在這里插入圖片描述
𝜏?是最優軌跡。

在這里插入圖片描述模型用 Rule-based 和 Learning-based 兩種代價源,生成統一的 Cost Map,采樣軌跡并選擇代價最小的軌跡,再用 GRU 融合交通燈信息優化,輸出最終軌跡。

  1. 預測輸出 → Cost Volume(學習型代價圖)
  2. 規劃模塊:
    接收 Cost Volume
    結合 Rule-based protocols(安全、車道約束)
    加上 comfort/progress cost
    聚合成 Aggregated Cost Map
  3. 軌跡采樣 + argmin 選最優

思考: Rule-based 的存在是否影響整個系統端到端的形式(暫時思考,不知道是否正確)
從“數據流”角度:
模型仍舊從傳感器輸入走完整管線輸出控制動作,中間沒有人類在線干預。因此推理鏈路仍是端到端。

從“訓練/優化”角度:

Rule-based 部分不需要學習(或只學習權重
Learning-based Cost Volume、語義/占用預測、GRU refinement 是學習型;
最終由綜合代價挑軌跡。因此這是學習與規則融合的端到端規劃。
從“安全落地”角度:
純神經網絡輸出軌跡很難直接上車;引入規則 = 給神經網絡加保險帶。很多工業界方案(Waymo/特斯拉過渡階段論文、ChauffeurNet 風格、Learning-from-Plans 框架等)都用了類似思想:學模型 + 規則安全層。

不使用Rule-based
在這里插入圖片描述

4. 端到端學習的Overall Loss

整體訓練結構:
多幀圖像/傳感器輸入 ─┐
│→ 編碼器 & BEV特征對齊共享主干

├─ Perception Head (當前&歷史分割/實例、車道、可行駛區、映射、輔助深度)

├─ Prediction Head (未來時間序列的語義/實例預測;基于共享BEV特征+時序建模)

└─ Planning Head
· 軌跡采樣 τ (基于動力學模型/柵格候選)
· 上下文評分 f(τ, c) (c 來自感知+預測生成的上下文/Cost map 等)
· 選最優 τ*(訓練時用排名/hinge損避免不可導 argmin)
· GRU 精修 → 輸出 τ*_o

我們通過利用以下損失函數,以端到端的方式通過感知、預測和規劃來優化我們的模型:
在這里插入圖片描述
其中權重α、β是可學習的(非手調),以根據相應任務損失的梯度來平衡不同任務中的規模。

4.1 感知loss

監督目標來自數據集中已標注或可預處理得到的 BEV 語義、實例、車道、可行駛區、深度等:
語義分割(當前 & 過去幀):Top-k Cross-Entropy
BEV 中背景像素極多,直接 CE 會被背景主導;Top-k 只對損失最高的前 k% 像素反向傳播,使前景學習更有效。
實例分割(中心 / offset / flow)
中心度 supervision:L2 損失。
offset & flow:L1 損失(更魯棒于異常大誤差)。
車道 & Drivable 區域:Cross-Entropy。
映射(mapping):通常也是柵格分類/回歸任務(視論文定義,可歸入上面幾類或獨立項)。
輔助深度損失:
許多現有工作只通過下游規劃間接學深度(弱監督,且依賴最終損失設計,解釋性差)。這里作者先用 外部網絡預估深度(可視為 pseudo GT),然后對本模型深度分支直接監督,使 BEV 幾何一致性更可控。
在這里插入圖片描述

4.2 預測loss

預測模塊要輸出 未來多時刻 的語義 & 實例結果(同上面 Perception 類型的表示,但沿時間軸往前看)。
同樣使用 Top-k Cross-Entropy(語義類)與相應實例分支損失形式,保持任務一致性。
時間折扣(exponential discount):越遠的未來不確定性越大 → 給更遠時刻的損失乘以γ (0<γ<1),或論文設定的指數衰減權重,使訓練集中于近未來、又不完全忽略遠期趨勢。
在這里插入圖片描述

4.3 Planning Loss:兩階段 + 排名 + 回歸

(a) 樣本軌跡集 τ 的生成
根據車輛運動學(如自行車模型)、速度/轉向采樣、時間長度等,離散生成一批候選軌跡 {𝜏}。這些是 固定的“proposal”軌跡,不需要可導;后續網絡通過評分區分它們。
(b) 軌跡評分與選擇
用感知+預測輸出融合成的上下文(cost map、靜態地圖、動態障礙、車道、預測占用等)記為c。規劃網絡學習一個評分函數f(),用來反映軌跡與上下文/安全/規則/目標之間的匹配度。
訓練時不能直接對 argmin 做反傳,因此引入 max-margin (hinge) 排名損:
在這里插入圖片描述
𝜏h:專家(人類駕駛)軌跡。
對每個負例軌跡 𝜏(采樣集里非專家的候選),希望專家比它“好”一個 margin;margin 與兩軌跡的距離d(𝜏,𝜏h)成正比(更差的候選要留更大間隔)。
[ ]+:ReLU/hinge,若專家已優于負例超過 margin,則不產生梯度;否則反向推動網絡調節f()

? 精修 (Refinement)
真實部署時,模型先在候選集中找到得分最優的 𝜏?,再送入一個 GRU-based refinement module,輸出更平滑/動態可行/高分辨的最終軌跡
𝜏𝑜?,為保證輸出貼近專家軌跡,再加一個 L1 回歸損
在這里插入圖片描述

(d) 合成規劃損–文章公式8
在這里插入圖片描述


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

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

相關文章

crawl4ai--bitcointalk爬蟲實戰項目

&#x1f4cc; 項目目標本項目旨在自動化抓取 Bitcointalk 論壇中指定板塊的帖子數據&#xff08;包括主貼和所有回復&#xff09;&#xff0c;并提取出結構化信息如標題、作者、發帖時間、用戶等級、活躍度、Merit 等&#xff0c;以便進一步分析或使用。本項目只供科研學習使用…

調用 System.gc() 的弊端及修復方式

弊端分析不可控的執行時機System.gc() 僅是 建議 JVM 執行垃圾回收&#xff0c;但 JVM 可自由忽略該請求&#xff08;尤其是高負載時&#xff09;。實際回收時機不確定&#xff0c;無法保證內存及時釋放。嚴重的性能問題Stop-The-World 停頓&#xff1a;觸發 Full GC 時會暫停所…

git merge 和 git rebase 的區別

主要靠一張圖&#xff1a;區別 git merge git checkout feature git merge master此時在feature上git會自動產生一個新的commit 修改的是當前分支 feature。 git rebase git checkout feature git rebase master&#xff08;在feature分支上執行&#xff0c;修改的是master分支…

Java學習--JVM(2)

JVM提供垃圾回收機制&#xff0c;其也是JVM的核心機制&#xff0c;其主要是實現自動回收不再被引用的對象所占用的內存&#xff1b;對內存進行整理&#xff0c;防止內存碎片化&#xff1b;以及對內存分配配進行管理。JVM 通過兩種主要算法判斷對象是否可回收&#xff1a;引用計…

用大模型(qwen)提取知識三元組并構建可視化知識圖譜:從文本到圖譜的完整實現

引言 知識圖譜作為一種結構化的知識表示方式&#xff0c;在智能問答、推薦系統、數據分析等領域有著廣泛應用。在信息爆炸的時代&#xff0c;如何從非結構化文本中提取有價值的知識并進行結構化展示&#xff0c;是NLP領域的重要任務。知識三元組&#xff08;Subject-Relation-O…

(附源碼)基于 Go 和 gopacket+Fyne 的跨平臺網絡抓包工具開發實錄

基于 Go 和 gopacket Fyne 的跨平臺網絡抓包工具開發實錄 一、項目背景 在網絡安全、協議分析、運維排查等場景中&#xff0c;抓包工具是不可或缺的利器。Wireshark 雖然功能強大&#xff0c;但對于部分初學者或有定制需求的開發者來說&#xff0c;學習曲線較陡&#xff0c;且…

Langchain和Faiss搭建本地知識庫對比

對比 對比維度及優缺點分析對比維度LangChain&#xff08;封裝 FAISS&#xff09;直接使用 FAISS易用性? 高&#xff0c;提供高級封裝&#xff0c;簡化開發流程? 中等&#xff0c;需要熟悉 FAISS API學習成本? 低&#xff0c;適合快速開發? 高&#xff0c;需要掌握 FAISS 的…

Java常用命令匯總

JDK 工具命令jps&#xff08;Java Virtual Machine Process Status Tool&#xff09;命令示例&#xff1a;jps -l 應用場景&#xff1a;列出當前系統中所有Java進程的PID和主類名&#xff0c;常用于快速定位Java應用的進程ID。javac&#xff08;Java Compiler&#xff09;命令示…

Llama 2:開放基礎模型與微調聊天模型

溫馨提示&#xff1a; 本篇文章已同步至"AI專題精講" Llama 2&#xff1a;開放基礎模型與微調聊天模型 摘要 在本研究中&#xff0c;我們開發并發布了 Llama 2&#xff0c;一組預訓練和微調的大型語言模型&#xff08;LLMs&#xff09;&#xff0c;其規模從 70 億參…

ThinkPHP 8 在 Apache 下啟用偽靜態

ThinkPHP 8 在 Apache 下啟用偽靜態&#xff0c;需要配置 .htaccess 文件并確保 Apache 支持 URL 重寫。以下是詳細設置步驟&#xff1a;1. 啟用 Apache 重寫模塊首先確保 Apache 的 mod_rewrite 模塊已啟用。編輯 Apache 配置文件&#xff08;通常是 /etc/apache2/apache2.con…

Android開發中Retrofit使用方法與底層原理詳解

Retrofit 是 Android 開發中一個 類型安全、基于注解、高度解耦 的 RESTful HTTP 客戶端庫&#xff0c;由 Square 公司開發。它極大地簡化了 Android 應用與 Web 服務進行網絡交互的過程。 核心價值&#xff1a; 聲明式 API 定義&#xff1a; 使用 Java/Kotlin 接口和注解描述 …

基于FPGA的IIC控制EEPROM讀寫(2)

基于FPGA的IIC控制EEPROM讀寫 文章目錄基于FPGA的IIC控制EEPROM讀寫一、EEPROM簡介二、代碼實現——個人理解1、狀態機2、仿真效果3、上板驗證4、代碼top.viic_master.vuart三、代碼實現——復用性較高的IIC模塊1、框架設計2、狀態機設計3、仿真效果4、上板驗證5、代碼top.viic…

C# 界面程序在23H2型號系統中無法退出

20250716記錄 環境&#xff1a;c# winform問題描述&#xff1a;主界面退出直接使用了Environment.Exit(0); 程序假死&#xff0c;無法關閉解決措施&#xff1a;//使用 this.Close();以下代碼目標&#xff1a;執行完程序自身后&#xff0c;刪除指定文件&#xff08;可用于程序文…

Kafka——集群核心參數配置

引言在分布式系統中&#xff0c;Kafka 憑借其高吞吐量、低延遲和強大的擴展性&#xff0c;成為數據管道和流處理的首選解決方案。然而&#xff0c;要充分發揮 Kafka 的性能和穩定性&#xff0c;正確配置集群參數至關重要。為什么參數配置如此重要&#xff1f;Kafka 的參數配置直…

單臂路由實現VLAN互通實驗

實驗拓撲圖實驗需求&#xff1a;按照圖示為 PC3 和 PC4 配置 IP 地址和網關PC3 屬于 Vlan10&#xff0c;PC4 屬于 Vlan20&#xff0c;配置單臂路由實現 Vlan10 和 Vlan20 三層互通PC3 和 PC4 可以互通實驗步驟&#xff1a;1.PC 配置 IP 地址2.PC3 屬于 Vlan10&#xff0c;PC4 屬…

基于漸進式遷移學習網絡(PTLN)?的小樣本故障診斷模型

目錄 一、研究背景與挑戰? ?二、創新方法:漸進式遷移學習網絡(PTLN)?? ?1. 核心架構?編輯 ?2. 訓練優化? 三、核心代碼 四、實驗結果與優勢? ?1. 數據集? ?2. 性能對比? ?3. 關鍵驗證? 五、工程價值與未來方向? 六、補充信息? 一、研究背景與挑…

網絡原理 —— HTTP

通過網絡初識&#xff0c;我們認識了網絡的協議棧&#xff0c;TCP/IP 分為五層&#xff1a;應用層&#xff0c;傳輸層&#xff0c;網絡層&#xff0c;數據鏈路層&#xff0c;物理層。也介紹了其中的關鍵協議。而這些協議的理解&#xff0c;是我們寫網絡代碼的基礎。 應用層&…

docker--安裝--原理

安裝 鏈接 啟動之后&#xff0c;docker狀態查看&#xff1a; sudo systemctl status docker 添加普通用戶到docker用戶組&#xff1a; sudo usermod -aG docker $USER# 重啟或者使用以下命令刷新組權限&#xff1a;newgrp docker 原理

Java并發第一篇(從零開始:一文讀懂Java并發編程核心基礎)

從零開始&#xff1a;一文讀懂Java并發編程核心基礎一. 為什么需要并發編程&#xff1f;二. 并發編程的“另一面”&#xff1a;挑戰與代價2.1 頻繁的上下文切換2.2 線程安全問題&#xff08;如&#xff1a;死鎖&#xff09;三. 夯實基礎&#xff1a;必須掌握的核心概念與操作3.…

【刪庫跑路】一次刪除pip的所有第三方庫

進入命令行&#xff0c;先list看下庫存pip list導出所有的第三方庫至一文件列表pip freeze >requirements.txt按照列表卸載所有庫pip uninstall -r requirements.txt -y再list看下&#xff0c;可見庫存已清空