擴散模型的優化過程,主要的公式推導,主要是熟悉一下整體的理論框架

核心思想與定義

擴散模型的核心思想是:學習一個去噪過程,以逆轉一個固定的加噪過程

  1. 前向過程(固定): 定義一個馬爾可夫鏈,逐步向數據 x0~q(x0)\mathbf{x}_0 \sim q(\mathbf{x}_0)x0?q(x0?) 添加高斯噪聲,產生一系列噪聲逐漸增大的隱變量 x1,...,xT\mathbf{x}_1, ..., \mathbf{x}_Tx1?,...,xT?。最終 xT\mathbf{x}_TxT? 近似為一個標準高斯分布。
    q(x1:T∣x0)=∏t=1Tq(xt∣xt?1),其中q(xt∣xt?1)=N(xt;1?βtxt?1,βtI) q(\mathbf{x}_{1:T} | \mathbf{x}_0) = \prod_{t=1}^T q(\mathbf{x}_t | \mathbf{x}_{t-1}), \quad \text{其中} \quad q(\mathbf{x}_t | \mathbf{x}_{t-1}) = \mathcal{N}(\mathbf{x}_t; \sqrt{1 - \beta_t} \mathbf{x}_{t-1}, \beta_t \mathbf{I}) q(x1:T?x0?)=t=1T?q(xt?xt?1?),其中q(xt?xt?1?)=N(xt?;1?βt??xt?1?,βt?I)
    這里 {βt}t=1T\{\beta_t\}_{t=1}^T{βt?}t=1T? 是預先定義好的方差調度表。

  2. 反向過程(可學習): 我們想要學習一個參數化的反向馬爾可夫鏈 pθp_\thetapθ?,從噪聲 xT~N(0,I)\mathbf{x}_T \sim \mathcal{N}(\mathbf{0}, \mathbf{I})xT?N(0,I) 開始,逐步去噪以生成數據。
    pθ(x0:T)=p(xT)∏t=1Tpθ(xt?1∣xt),其中pθ(xt?1∣xt)=N(xt?1;μθ(xt,t),Σθ(xt,t)) p_\theta(\mathbf{x}_{0:T}) = p(\mathbf{x}_T) \prod_{t=1}^T p_\theta(\mathbf{x}_{t-1} | \mathbf{x}_t), \quad \text{其中} \quad p_\theta(\mathbf{x}_{t-1} | \mathbf{x}_t) = \mathcal{N}(\mathbf{x}_{t-1}; \mathbf{\mu}_\theta(\mathbf{x}_t, t), \mathbf{\Sigma}_\theta(\mathbf{x}_t, t)) pθ?(x0:T?)=p(xT?)t=1T?pθ?(xt?1?xt?),其中pθ?(xt?1?xt?)=N(xt?1?;μθ?(xt?,t),Σθ?(xt?,t))
    我們的目標是讓 pθ(x0)p_\theta(\mathbf{x}_0)pθ?(x0?) 盡可能接近真實數據分布 q(x0)q(\mathbf{x}_0)q(x0?)

  3. 前向過程的閉式解: 得益于高斯分布的可加性,我們可以直接從 x0\mathbf{x}_0x0? 采樣任意時刻 tttxt\mathbf{x}_txt?
    q(xt∣x0)=N(xt;αˉtx0,(1?αˉt)I) q(\mathbf{x}_t | \mathbf{x}_0) = \mathcal{N}(\mathbf{x}_t; \sqrt{\bar{\alpha}_t} \mathbf{x}_0, (1 - \bar{\alpha}_t)\mathbf{I}) q(xt?x0?)=N(xt?;αˉt??x0?,(1?αˉt?)I)
    其中 αt=1?βt\alpha_t = 1 - \beta_tαt?=1?βt?, αˉt=∏i=1tαi\bar{\alpha}_t = \prod_{i=1}^t \alpha_iαˉt?=i=1t?αi?。使用重參數化技巧,可以寫為:
    xt=αˉtx0+1?αˉt?,其中?~N(0,I) \mathbf{x}_t = \sqrt{\bar{\alpha}_t} \mathbf{x}_0 + \sqrt{1 - \bar{\alpha}_t} \mathbf{\epsilon}, \quad \text{其中} \quad \mathbf{\epsilon} \sim \mathcal{N}(\mathbf{0}, \mathbf{I}) xt?=αˉt??x0?+1?αˉt???,其中?N(0,I)
    這個公式至關重要,它允許我們隨機采樣時間步 ttt 并高效地計算訓練損失。


優化目標:變分下界 (VLB/ELBO)

我們的目標是最大化模型生成真實數據的對數似然 log?pθ(x0)\log p_\theta(\mathbf{x}_0)logpθ?(x0?)。由于其難以直接計算,我們轉而最大化其變分下界(VLB),也稱為證據下界(ELBO)。

log?pθ(x0)≥Eq(x1:T∣x0)[log?pθ(x0:T)q(x1:T∣x0)]=Eq[log?p(xT)∏t=1Tpθ(xt?1∣xt)∏t=1Tq(xt∣xt?1)]??LVLB \begin{aligned} \log p_\theta(\mathbf{x}_0) &\geq \mathbb{E}_{q(\mathbf{x}_{1:T} | \mathbf{x}_0)} \left[ \log \frac{p_\theta(\mathbf{x}_{0:T})}{q(\mathbf{x}_{1:T} | \mathbf{x}_0)} \right] \\ &= \mathbb{E}_{q} \left[ \log \frac{ p(\mathbf{x}_T) \prod_{t=1}^T p_\theta(\mathbf{x}_{t-1} | \mathbf{x}_t) }{ \prod_{t=1}^T q(\mathbf{x}_t | \mathbf{x}_{t-1}) } \right] \\ &\triangleq -L_{\text{VLB}} \end{aligned} logpθ?(x0?)?Eq(x1:T?x0?)?[logq(x1:T?x0?)pθ?(x0:T?)?]=Eq?[logt=1T?q(xt?xt?1?)p(xT?)t=1T?pθ?(xt?1?xt?)?]??LVLB??
因此,我們最小化 LVLBL_{\text{VLB}}LVLB?

通過對 LVLBL_{\text{VLB}}LVLB? 進行推導(利用馬爾可夫性和貝葉斯定理),可以將其分解為以下幾項:

LVLB=Eq[DKL(q(xT∣x0)∥p(xT))?LT?log?pθ(x0∣x1)?L0+∑t=2TDKL(q(xt?1∣xt,x0)∥pθ(xt?1∣xt))?Lt?1] L_{\text{VLB}} = \mathbb{E}_q [\underbrace{D_{\text{KL}}(q(\mathbf{x}_T | \mathbf{x}_0) \parallel p(\mathbf{x}_T))}_{L_T} - \underbrace{\log p_\theta(\mathbf{x}_0 | \mathbf{x}_1)}_{L_0} + \sum_{t=2}^T \underbrace{D_{\text{KL}}(q(\mathbf{x}_{t-1} | \mathbf{x}_t, \mathbf{x}_0) \parallel p_\theta(\mathbf{x}_{t-1} | \mathbf{x}_t))}_{L_{t-1}} ] LVLB?=Eq?[LT?DKL?(q(xT?x0?)p(xT?))???L0?logpθ?(x0?x1?)??+t=2T?Lt?1?DKL?(q(xt?1?xt?,x0?)pθ?(xt?1?xt?))??]

  • LTL_TLT?: 衡量最終噪聲分布與先驗分布 N(0,I)\mathcal{N}(\mathbf{0}, \mathbf{I})N(0,I) 的差異。此項沒有可學習參數,接近于0,可以忽略。
  • L0L_0L0?: 重建項,衡量最后一步生成圖像與真實圖像的差異。此項在原始DDPM中通過一個離散化decoder處理,實踐中發現其影響較小。
  • Lt?1L_{t-1}Lt?1? (1≤t≤T1 \le t \le T1tT): 這是最關鍵的一項。它衡量的是對于每一個去噪步,真實的去噪分布 q(xt?1∣xt,x0)q(\mathbf{x}_{t-1} | \mathbf{x}_t, \mathbf{x}_0)q(xt?1?xt?,x0?)學習的去噪分布 pθ(xt?1∣xt)p_\theta(\mathbf{x}_{t-1} | \mathbf{x}_t)pθ?(xt?1?xt?) 之間的KL散度。

核心推導:真實的后驗分布 q(xt?1∣xt,x0)q(\mathbf{x}_{t-1} | \mathbf{x}_t, \mathbf{x}_0)q(xt?1?xt?,x0?)

根據貝葉斯定理和馬爾可夫性,我們可以推導出這個真實的后驗分布。它也是一個高斯分布,這意味著我們可以用另一個高斯分布 pθp_\thetapθ? 去匹配它。

q(xt?1∣xt,x0)=q(xt∣xt?1,x0)q(xt?1∣x0)q(xt∣x0)∝N(xt;αtxt?1,(1?αt)I)?N(xt?1;αˉt?1x0,(1?αˉt?1)I) \begin{aligned} q(\mathbf{x}_{t-1} | \mathbf{x}_t, \mathbf{x}_0) &= \frac{q(\mathbf{x}_t | \mathbf{x}_{t-1}, \mathbf{x}_0) q(\mathbf{x}_{t-1} | \mathbf{x}_0)}{q(\mathbf{x}_t | \mathbf{x}_0)} \\ &\propto \mathcal{N}(\mathbf{x}_t; \sqrt{\alpha_t} \mathbf{x}_{t-1}, (1 - \alpha_t)\mathbf{I}) \cdot \mathcal{N}(\mathbf{x}_{t-1}; \sqrt{\bar{\alpha}_{t-1}} \mathbf{x}_0, (1 - \bar{\alpha}_{t-1})\mathbf{I}) \end{aligned} q(xt?1?xt?,x0?)?=q(xt?x0?)q(xt?xt?1?,x0?)q(xt?1?x0?)?N(xt?;αt??xt?1?,(1?αt?)I)?N(xt?1?;αˉt?1??x0?,(1?αˉt?1?)I)?

經過一系列高斯分布密度函數的乘積和配方,可以得出其均值和方差為:

q(xt?1∣xt,x0)=N(xt?1;μ~t(xt,x0),β~tI) q(\mathbf{x}_{t-1} | \mathbf{x}_t, \mathbf{x}_0) = \mathcal{N}(\mathbf{x}_{t-1}; \mathbf{\tilde{\mu}}_t(\mathbf{x}_t, \mathbf{x}_0), \tilde{\beta}_t \mathbf{I}) q(xt?1?xt?,x0?)=N(xt?1?;μ~?t?(xt?,x0?),β~?t?I)

其中μ~t(xt,x0)=1αt(xt?βt1?αˉt?),β~t=1?αˉt?11?αˉtβt \text{其中} \quad \mathbf{\tilde{\mu}}_t(\mathbf{x}_t, \mathbf{x}_0) = \frac{1}{\sqrt{\alpha_t}} \left( \mathbf{x}_t - \frac{\beta_t}{\sqrt{1 - \bar{\alpha}_t}} \mathbf{\epsilon} \right), \quad \tilde{\beta}_t = \frac{1 - \bar{\alpha}_{t-1}}{1 - \bar{\alpha}_t} \beta_t 其中μ~?t?(xt?,x0?)=αt??1?(xt??1?αˉt??βt???),β~?t?=1?αˉt?1?αˉt?1??βt?

注意:這里 ?\mathbf{\epsilon}? 是前向過程中添加到 x0\mathbf{x}_0x0? 上生成 xt\mathbf{x}_txt? 的噪聲。這個 μ~t\mathbf{\tilde{\mu}}_tμ~?t? 的表達式非常關鍵!


簡化損失函數:從均值預測到噪聲預測

現在我們來看要最小化的 Lt?1L_{t-1}Lt?1?,它是兩個高斯分布的KL散度。高斯分布的KL散度主要由其均值的差異主導(假設方差固定)。

Lt?1=Eq[DKL(q(xt?1∣xt,x0)∥pθ(xt?1∣xt))]=Eq[12σt2∥μ~t(xt,x0)?μθ(xt,t)∥2]+C \begin{aligned} L_{t-1} &= \mathbb{E}_q \left[ D_{\text{KL}}(q(\mathbf{x}_{t-1} | \mathbf{x}_t, \mathbf{x}_0) \parallel p_\theta(\mathbf{x}_{t-1} | \mathbf{x}_t)) \right] \\ &= \mathbb{E}_q \left[ \frac{1}{2\sigma_t^2} \| \mathbf{\tilde{\mu}}_t(\mathbf{x}_t, \mathbf{x}_0) - \mathbf{\mu}_\theta(\mathbf{x}_t, t) \|^2 \right] + C \end{aligned} Lt?1??=Eq?[DKL?(q(xt?1?xt?,x0?)pθ?(xt?1?xt?))]=Eq?[2σt2?1?μ~?t?(xt?,x0?)?μθ?(xt?,t)2]+C?

現在我們有兩個選擇:

  1. 讓網絡 μθ\mathbf{\mu}_\thetaμθ? 直接預測均值 μ~t\mathbf{\tilde{\mu}}_tμ~?t?
  2. 根據 μ~t\mathbf{\tilde{\mu}}_tμ~?t? 的表達式,重新參數化模型。

DDPM選擇了第二種方式,因為它效果更好。我們將 μ~t\mathbf{\tilde{\mu}}_tμ~?t? 的表達式代入:

μθ(xt,t)=1αt(xt?βt1?αˉt?θ(xt,t)) \mathbf{\mu}_\theta(\mathbf{x}_t, t) = \frac{1}{\sqrt{\alpha_t}} \left( \mathbf{x}_t - \frac{\beta_t}{\sqrt{1 - \bar{\alpha}_t}} \mathbf{\epsilon}_\theta(\mathbf{x}_t, t) \right) μθ?(xt?,t)=αt??1?(xt??1?αˉt??βt???θ?(xt?,t))

這里,我們不再讓網絡預測均值,而是讓它預測噪聲 ?\mathbf{\epsilon}?,即 ?θ(xt,t)\mathbf{\epsilon}_\theta(\mathbf{x}_t, t)?θ?(xt?,t)。將這個表達式代入上面的損失函數,經過簡化(忽略權重系數),我們得到最終極其簡潔的損失函數

Lsimple=Ex0,t,?~N(0,I)[∥???θ(αˉtx0+1?αˉt?,t)∥2] L_{\text{simple}} = \mathbb{E}_{\mathbf{x}_0, t, \mathbf{\epsilon} \sim \mathcal{N}(\mathbf{0}, \mathbf{I})} \left[ \| \mathbf{\epsilon} - \mathbf{\epsilon}_\theta( \sqrt{\bar{\alpha}_t} \mathbf{x}_0 + \sqrt{1 - \bar{\alpha}_t} \mathbf{\epsilon}, t ) \|^2 \right] Lsimple?=Ex0?,t,?N(0,I)?[???θ?(αˉt??x0?+1?αˉt???,t)2]

這個損失函數的直觀解釋是:對于一張真實圖像 x0\mathbf{x}_0x0?,隨機選擇一個時間步 ttt,隨機采樣一個噪聲 ?\mathbf{\epsilon}?,構造出噪聲圖像 xt\mathbf{x}_txt?。然后,我們訓練一個網絡 ?θ\mathbf{\epsilon}_\theta?θ?,讓它根據 xt\mathbf{x}_txt?ttt 來預測出我們添加的噪聲 ?\mathbf{\epsilon}?。損失就是預測噪聲和真實噪聲之間的均方誤差。


總結:優化流程

  1. 輸入:從訓練集中采樣一張真實圖像 x0\mathbf{x}_0x0?
  2. 加噪
    • 均勻采樣一個時間步 t~Uniform(1,...,T)t \sim \text{Uniform}(1, ..., T)tUniform(1,...,T)
    • 從標準高斯分布采樣噪聲 ?~N(0,I)\mathbf{\epsilon} \sim \mathcal{N}(\mathbf{0}, \mathbf{I})?N(0,I)
    • 計算 xt=αˉtx0+1?αˉt?\mathbf{x}_t = \sqrt{\bar{\alpha}_t} \mathbf{x}_0 + \sqrt{1 - \bar{\alpha}_t} \mathbf{\epsilon}xt?=αˉt??x0?+1?αˉt???
  3. 預測:將 xt\mathbf{x}_txt?ttt 輸入神經網絡 ?θ\mathbf{\epsilon}_\theta?θ?,得到其對噪聲的預測 ?θ(xt,t)\mathbf{\epsilon}_\theta(\mathbf{x}_t, t)?θ?(xt?,t)
  4. 優化:計算損失 L=∥???θ∥2L = \| \mathbf{\epsilon} - \mathbf{\epsilon}_\theta \|^2L=???θ?2,并通過梯度下降更新網絡參數 θ\thetaθ
  5. 重復:重復步驟1-4直至收斂。

這個框架的巧妙之處在于,它將一個復雜的生成問題,分解為了 TTT 個相對簡單的去噪問題。網絡 ?θ\mathbf{\epsilon}_\theta?θ? 不需要一步生成完美圖像,只需要在每一步完成一個更簡單的任務:預測噪聲。這使得訓練非常穩定,也是擴散模型成功的核心原因。

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

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

相關文章

數字簽名、數字證書、數字信封的概念與區別

要理解數字簽名、數字證書、數字信封,核心是抓住它們各自的核心目標 —— 分別解決 “身份真實性與內容完整性”“公鑰可信度”“數據機密性” 問題,且三者都基于 “非對稱加密”(一對公鑰、私鑰,公鑰公開、私鑰保密,用…

Day35 網絡協議與數據封裝

day35 網絡協議與數據封裝 數據封裝與協議結構 以太網MAC幀格式數據封裝與傳輸流程 數據在傳輸過程中,從上層逐層封裝到底層,最終通過物理介質發送。封裝與傳輸的具體流程如下: 封裝過程(從IP層到物理層) IP層&#xf…

Deeplizard深度學習課程(七)—— 神經網絡實驗

前言我們正在利用pytorch實現CNN。主要分為四個小部分:數據預處理、神經網絡pytorch設計、訓練神經網絡 和 神經網絡實驗。在之前的章節中,我們已經完成了整個CNN框架的設計、訓練與簡單分析,本節將更進一步討論神經網絡處理過程中的細節問題…

STM32實踐項目(激光炮臺)

剛開始設想做一個上半部分可以上下180移動,下半部分底座360移動的激光炮臺。于是便開始了實踐。 所需材料清單: 序號 名稱 數量 備注說明 1 面包板(Breadboard) 2 用于電路搭建和模塊連接 2 杜邦線(公對公、公對母等) 若干 建議準備 30~50 根,方便連接 3 MB-102 電源模塊…

不止是夾住,更是“感知”:Contactile GAL2觸覺型夾爪實現自適應抓取

近日,專注于觸覺傳感與智能抓取技術的Contactile推出全新Contactile 觸覺型夾爪 GAL2,這款集成先進傳感技術的雙指夾爪,憑借實時觸覺反饋能力,為多行業智能抓取場景帶來突破性解決方案。 Contactile 觸覺型夾爪GAL2是一款多功能即…

Grafana - 監控磁盤使用率Variables使用

1 查詢prometheus2 編輯grafana dashboard 2.1 配置變量2.2 配置多選2.3 配置legend2.4 優化顯示 1 查詢prometheus 指標名稱描述node_filesystem_size_bytes文件系統總容量node_filesystem_avail_bytes用戶可用空間node_filesystem_files_free剩余inode數量比如我們想看/目…

WindowsAPI|每天了解幾個winAPI接口之網絡配置相關文檔Iphlpapi.h詳細分析10

上一篇:WindowsAPI|每天了解幾個winAPI接口之網絡配置相關文檔Iphlpapi.h詳細分析9 如果有錯誤歡迎指正批評,在此只作為科普和參考。 C:\Program Files (x86)\Windows Kits\10\Include\10.0.22621.0\um\iphlpapi.h 文章目錄GetNetworkParams&#xff1a…

算法 --- 分治(歸并)

分治(歸并) 分治(特別是歸并)算法適用于解決“整體求解依賴于子問題合并”且子問題相互獨立的題目,其典型特征是能將大規模數據分解、遞歸求解,然后通過合并操作(這正是歸并排序中‘歸并’的精…

【程序人生】有夢想就能了不起,就怕你沒夢想

夢想不是遙不可及的星辰,而是需要我們用腳步丈量的路途兩年前的一個夏日,我在日記本上鄭重地寫下:"我要掌握Web開發,能夠獨立構建一個完整的Web應用。"那天是2023年6月8日,當時的我連Java和JavaScript都分不…

前端基礎(四十二):非固定高度的容器實現折疊面板效果

效果展示源碼 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title> </head>…

發票、收據合并 PDF 小程序,報銷上傳 3 秒搞定

每到報銷、報稅、財務整理時&#xff0c;手里是不是總有一堆格式不一的票據&#xff1a; 聊天記錄里的電子發票郵件附件中的 PDF 發票手機相冊里的報銷收據甚至還有零散的紙質票據掃描件 要上傳或交給財務前&#xff0c;還得一個個整理、轉換、排版&#xff0c;既耗時又容易出…

GitHub每日最火火火項目(9.4)

1. bytebot-ai / bytebot 項目名稱&#xff1a;bytebot項目介紹&#xff1a;基于 TypeScript 開發&#xff0c;是一款自托管的 AI 桌面智能體&#xff0c;能通過自然語言命令自動化執行計算機任務&#xff0c;運行在容器化的 Linux 桌面環境中。它借助自然語言處理和 AI 技術&a…

MMORPG 游戲戰斗系統架構

&#x1f30c; MMORPG 游戲戰斗系統架構 引用&#xff1a; 游戲服務器同步技術解析&#xff08;C&#xff09;MMORPG移動同步與反外掛 雖然我已離開游戲行業&#xff0c;轉而與幾位成功的商人共同創業&#xff0c;投身于商用機器人領域&#xff0c;但坦誠地說&#xff0c;游戲…

【數學建模學習筆記】啟發式算法:蒙特卡洛算法

蒙特卡洛模擬入門筆記&#xff1a;從原理到代碼實踐一、什么是蒙特卡洛模擬&#xff1f;蒙特卡洛模擬是一種通過大量隨機實驗來解決復雜問題的方法。簡單說&#xff0c;就是用電腦模擬成千上萬次隨機事件&#xff0c;然后統計結果&#xff0c;以此估算一個問題的答案。舉個生活…

20250904的學習筆記

一、封包與拆包1. 封包&#xff08;Packet Encapsulation&#xff09;封包 是指在發送數據時&#xff0c;將數據從高層協議封裝到低層協議的過程。每經過一層協議&#xff0c;數據都會被加上相應的協議頭&#xff08;有時也會加上協議尾&#xff09;&#xff0c;形成一個新的數…

STM32F4 + RT-Thread 實戰指南:TIM10 硬件定時器驅動開發與 1 秒定時功能實現

目錄前言一、STM32定時器10是個什么定時器&#xff1f;二、工程創建、環境配置三、程序代碼四、運行前言 在rtthread中&#xff0c;STM32F4的定時器10有些驅動并不完整&#xff0c;對比與其它定時器在使用時需要手動的添加一些代碼&#xff0c;我在使用上拆踩了一些坑&#xf…

echarts圖庫

環形圖// 指定圖表的配置項和數據this.option {// tooltip: {// trigger: item// },color: [#FFB32F, #FF5757, #57D5FF, #2FA8FF, #95FFF1], // 扇形區域以及列表顏色legend: {orient:vertical,//文字橫向排itemGap:20,left: left,textStyle:{color: #F3F9FF,// fontSi…

進程(Process)全面概述

進程&#xff08;Process&#xff09;全面概述 本文檔擴展了進程的定義、屬性、生命周期、管理機制及示例&#xff0c;涵蓋 task_struct 結構、進程鏈表、狀態與優先級、fork 函數及其寫時復制示例。 一、進程基本概念 進程&#xff1a;系統進行資源分配和調度的基本單位&#…

Java并發編程:sleep()與wait()核心區別詳解

今天完成了實驗室納新網站的工作&#xff0c;大體功能都已經完善&#xff0c;也和前端測試過了&#xff0c;費了點時間&#xff0c;而且今天大部分時間在看langchain4j的東西&#xff0c;就簡單復習一下八股&#xff0c;等會再復習一下算法題吧在Java并發編程中&#xff0c;sle…

AR眼鏡在智能制造的應用方向和場景用例|阿法龍XR云平臺

AR巡檢在制造業的應用已形成覆蓋設備維護、質量檢測、安全監控和遠程協作四大類別的成熟場景&#xff0c;不同制造領域的實踐各具特色&#xff0c;為行業提供了寶貴參考。在汽車制造領域&#xff0c;AR 巡檢主要應用于生產線設備維護和焊接質量檢測。在汽車廠總裝車間部署 AR 系…