首頁  >  文章  >  科技週邊  >  突破次元壁,X-Dreamer帶來高品質的文本到3D生成,融合2D和3D生成領域

突破次元壁,X-Dreamer帶來高品質的文本到3D生成,融合2D和3D生成領域

PHPz
PHPz轉載
2023-12-15 13:54:33477瀏覽

近年來,在預訓練的擴散模型[1, 2, 3]的發展推動下,自動將文本轉化為3D內容取得了重要的進展。其中,DreamFusion[4]引入了一種有效的方法,該方法利用預訓練的2D擴散模型[5]從文本中自動生成3D資產,而無需專門的3D資產資料集

#DreamFusion 引入的一項關鍵創新是分數蒸餾採樣(SDS) 演算法。該演算法利用預先訓練的 2D 擴散模型對單一 3D 表示進行評估,例如 NeRF [6],從而對其進行最佳化,以確保來自任何攝影機視角的渲染影像與給定文字保持較高的一致性。受開創性 SDS 演算法的啟發,出現了幾項工作 [7,8,9,10,11],透過應用預先訓練的 2D 擴散模型來推進 text-to-3D 生成任務。

雖然text-to-3D 的產生透過利用預訓練的text-to-2D 的擴散模型已經取得了重大進展,但是2D 影像和3D 資產之間仍存在很大的領域差距。這種差異在圖 1 中清楚地顯示出來。

首先,text-to-2D 模型產生與相機無關的生成結果,專注於從特定角度產生高品質影像,而忽略其他角度。相比之下,3D 內容創建與相機參數 (如位置、拍攝角度和視野) 錯綜複雜地聯繫在一起。因此,text-to-3D 模型必須在所有可能的相機參數上產生高品質的結果。

此外,text-to-2D生成模型需要同時產生前景和背景元素,以保持影像的整體連貫性。與此相反,text-to-3D生成模型只需專注於建立前景物件。這個差異使得text-to-3D模型能夠分配更多資源和注意力來準確表示和產生前景物件。因此,當直接使用預先訓練的2D擴散模型來進行3D資產創建時,text-to-2D和text-to-3D生成之間的領域差異成為明顯的性能障礙

突破次元壁,X-Dreamer帶來高品質的文本到3D生成,融合2D和3D生成領域

圖1 text-to-2D 產生模型(左) 與text-to-3D 產生模型(右) 在相同文字提示下的輸出,即"A statue of Leonardo DiCaprio's head .」。

為了解決這個問題,論文提出了X-Dreamer,這是一種用於高品質text-to-3D 內容創建的新穎方法,可以有效地彌合text-to -2D 和text-to-3D 生成之間的領域差距。

X-Dreamer 的關鍵組成部分是兩種創新設計: Camera-Guided Low-Rank Adaptation (CG-LoRA) 和 Attention-Mask Alignment (AMA) 損失。

首先,現有方法[7,8,9,10] 通常採用2D 預訓練擴散模型[5,12] 來進行text-to-3D 生成,缺乏與相機參數的固有聯繫。為了解決此限制並確保 X-Dreamer 產生直接受相機參數影響的結果,論文引入了 CG-LoRA 來調整預先訓練的 2D 擴散模型。值得注意的是,在每次迭代期間 CG-LoRA 的參數都是基於相機資訊動態產生的,從而在 text-to-3D 模型和相機參數之間建立穩健的關係。

其次,預先訓練的 text-to-2D 擴散模型將注意力分配給前景和背景生成,而 3D 資產的創建需要更加關注前景對象的準確生成。為了解決這個問題,論文提出了 AMA 損失,使用 3D 物件的二進位遮罩來指導預先訓練的擴散模型的注意力圖,從而優先考慮前景物件的創建。透過合併此模組,X-Dreamer 優先考慮前景物件的生成,從而顯著提高了生成的 3D 內容的整體品質。

突破次元壁,X-Dreamer帶來高品質的文本到3D生成,融合2D和3D生成領域

計畫首頁:

https://xmu-xiaoma666.github.io/Projects/ X-Dreamer/

Github首頁:https://github.com/xmu-xiaoma666/X-Dreamer

#文網址:https://arxiv.org/abs/2312.00085

X-Dreamer 對text-to-3D 生成領域做出如下貢獻:

  • 論文提出了一種新穎的方法,X-Dreamer,用於高品質的text-to-3D 內容創建,有效地彌合了text-to-2D 和text-to-3D生成之間的主要差距。
  • 為了增強產生的結果與相機視角之間的對齊,論文提出了 CG-LoRA,利用相機資訊來動態產生 2D 擴散模型的特定參數。
  • 為了在 text-to-3D 模型中優先創建前景對象,論文引入了 AMA 損失,利用前景 3D 對象的二進制掩碼來引導 2D 擴散模型的注意圖。

方法

#X-Dreamer包含兩個主要階段:幾何學習與外觀學習。對於幾何學習,本研究使用DMTET作為3D表示,並利用3D橢球進行初始化。初始化時,損失函數採用均方誤差(MSE)損失。接下來,使用分數蒸餾採樣(SDS)損失和本研究提出的AMA損失來優化DMTET和CG-LoRA,以確保3D表示和輸入的文本提示之間的對齊

對於外觀學習,論文利用雙向反射分佈函數(BRDF) 建模。具體來說,論文利用具有可訓練參數的 MLP 來預測表面材料。類似於幾何學習階段,論文使用 SDS 損失和 AMA 損失來優化 MLP 和 CG-LoRA 的可訓練參數,以實現 3D 表示和文字提示之間的對齊。圖 2 展示了 X-Dreamer 的詳細組成。

突破次元壁,X-Dreamer帶來高品質的文本到3D生成,融合2D和3D生成領域

圖 2 X-Dreamer 概覽,包括幾何學習和外觀學習。

幾何學習 (Geometry Learning)

在此模組中,X-Dreamer利用MLP 網路突破次元壁,X-Dreamer帶來高品質的文本到3D生成,融合2D和3D生成領域將DMTET 參數化為3D 表示。為了增強幾何建模的穩定性,本文使用 3D 橢球體作為 DMTET 突破次元壁,X-Dreamer帶來高品質的文本到3D生成,融合2D和3D生成領域 的初始配置。對於屬於四面體網格突破次元壁,X-Dreamer帶來高品質的文本到3D生成,融合2D和3D生成領域的每個頂點突破次元壁,X-Dreamer帶來高品質的文本到3D生成,融合2D和3D生成領域,本文訓練突破次元壁,X-Dreamer帶來高品質的文本到3D生成,融合2D和3D生成領域來預測兩個重要的量:SDF 值突破次元壁,X-Dreamer帶來高品質的文本到3D生成,融合2D和3D生成領域##和變形偏移量突破次元壁,X-Dreamer帶來高品質的文本到3D生成,融合2D和3D生成領域。為了將初始化為橢球體,本文取樣了均勻分佈在橢球體內的 N 個點,並計算對應的 SDF 值突破次元壁,X-Dreamer帶來高品質的文本到3D生成,融合2D和3D生成領域突破次元壁,X-Dreamer帶來高品質的文本到3D生成,融合2D和3D生成領域。隨後,利用均方誤差(MSE)損失來優化。此最佳化過程可確保突破次元壁,X-Dreamer帶來高品質的文本到3D生成,融合2D和3D生成領域有效地初始化 DMTET,使其類似於 3D 橢球體。 MSE 損失的公式如下:突破次元壁,X-Dreamer帶來高品質的文本到3D生成,融合2D和3D生成領域

突破次元壁,X-Dreamer帶來高品質的文本到3D生成,融合2D和3D生成領域#

初始化幾何圖形後,將 DMTET 的幾何圖形與輸入文字提示對齊。特定的操作方法是透過使用差分渲染技術,在給定隨機取樣的相機姿勢 c 的情況下,從初始化的 DMTET突破次元壁,X-Dreamer帶來高品質的文本到3D生成,融合2D和3D生成領域產生法線映射 n 和物件的遮罩 m 。隨後,將法線映射 n 輸入到具有可訓練CG-LoRA 嵌入的凍結的Stable Diffusion 模型(SD)中,並使用SDS 損失更新突破次元壁,X-Dreamer帶來高品質的文本到3D生成,融合2D和3D生成領域中的參數,定義如下:

突破次元壁,X-Dreamer帶來高品質的文本到3D生成,融合2D和3D生成領域

其中,突破次元壁,X-Dreamer帶來高品質的文本到3D生成,融合2D和3D生成領域表示SD 的參數,突破次元壁,X-Dreamer帶來高品質的文本到3D生成,融合2D和3D生成領域為在給定雜訊等級 t 和文字嵌入 y 的情況下的SD 的預測雜訊。此外,突破次元壁,X-Dreamer帶來高品質的文本到3D生成,融合2D和3D生成領域,其中突破次元壁,X-Dreamer帶來高品質的文本到3D生成,融合2D和3D生成領域表示從常態分佈取樣的雜訊。 突破次元壁,X-Dreamer帶來高品質的文本到3D生成,融合2D和3D生成領域突破次元壁,X-Dreamer帶來高品質的文本到3D生成,融合2D和3D生成領域突破次元壁,X-Dreamer帶來高品質的文本到3D生成,融合2D和3D生成領域的實作是基於 DreamFusion [4]。

此外,為了將SD 集中於生成前景對象,X-Dreamer 引入了額外的AMA 損失,以將對象掩碼  與SD 的注意力圖對齊,如下所示:


突破次元壁,X-Dreamer帶來高品質的文本到3D生成,融合2D和3D生成領域

其中突破次元壁,X-Dreamer帶來高品質的文本到3D生成,融合2D和3D生成領域表示注意力層的數量,突破次元壁,X-Dreamer帶來高品質的文本到3D生成,融合2D和3D生成領域是第i 個注意力層的注意力圖。函數突破次元壁,X-Dreamer帶來高品質的文本到3D生成,融合2D和3D生成領域用來調整渲染出來的 3D 物件遮罩的大小,確保它的尺寸與注意力圖的尺寸對齊。

外觀學習 (Appearance Learning)

#

在獲得 3D 物件的幾何結構後,本文的目標是使用基於物理的渲染(PBR)材料模型來計算 3D 物件的外觀。材料模型包括擴散項突破次元壁,X-Dreamer帶來高品質的文本到3D生成,融合2D和3D生成領域,粗糙度和金屬項突破次元壁,X-Dreamer帶來高品質的文本到3D生成,融合2D和3D生成領域,以及法線變化項突破次元壁,X-Dreamer帶來高品質的文本到3D生成,融合2D和3D生成領域。對於幾何體表面上的任一點突破次元壁,X-Dreamer帶來高品質的文本到3D生成,融合2D和3D生成領域

,利用由突破次元壁,X-Dreamer帶來高品質的文本到3D生成,融合2D和3D生成領域參數化的多層感知機(MLP)來獲得三個材料項,具體可以表示如下:

突破次元壁,X-Dreamer帶來高品質的文本到3D生成,融合2D和3D生成領域

其中,突破次元壁,X-Dreamer帶來高品質的文本到3D生成,融合2D和3D生成領域表示利用雜湊網格技術進行位置編碼。之後,可以使用以下公式計算渲染影像的每個像素:

突破次元壁,X-Dreamer帶來高品質的文本到3D生成,融合2D和3D生成領域

其中,突破次元壁,X-Dreamer帶來高品質的文本到3D生成,融合2D和3D生成領域表示從方向突破次元壁,X-Dreamer帶來高品質的文本到3D生成,融合2D和3D生成領域渲染 3D 物件表面的點突破次元壁,X-Dreamer帶來高品質的文本到3D生成,融合2D和3D生成領域的像素值。 突破次元壁,X-Dreamer帶來高品質的文本到3D生成,融合2D和3D生成領域表示由滿足條件突破次元壁,X-Dreamer帶來高品質的文本到3D生成,融合2D和3D生成領域的入射方向集合突破次元壁,X-Dreamer帶來高品質的文本到3D生成,融合2D和3D生成領域定義的半球,其中突破次元壁,X-Dreamer帶來高品質的文本到3D生成,融合2D和3D生成領域表示入射方向,突破次元壁,X-Dreamer帶來高品質的文本到3D生成,融合2D和3D生成領域#表示點突破次元壁,X-Dreamer帶來高品質的文本到3D生成,融合2D和3D生成領域處的表面法線。 突破次元壁,X-Dreamer帶來高品質的文本到3D生成,融合2D和3D生成領域對應到來自現成環境圖的入射光,突破次元壁,X-Dreamer帶來高品質的文本到3D生成,融合2D和3D生成領域是與材料特性(即突破次元壁,X-Dreamer帶來高品質的文本到3D生成,融合2D和3D生成領域)相關的雙向反射分佈函數(BRDF)。透過聚合所有渲染的像素顏色,可以獲得渲染影像突破次元壁,X-Dreamer帶來高品質的文本到3D生成,融合2D和3D生成領域。與幾何學習階段類似,將渲染影像突破次元壁,X-Dreamer帶來高品質的文本到3D生成,融合2D和3D生成領域輸入 SD,利用 SDS 損失和 AMA 損失最佳化突破次元壁,X-Dreamer帶來高品質的文本到3D生成,融合2D和3D生成領域


#相機引導的低秩適應(CG-LoRA)

為了解決生成文本到2D和3D之間存在的領域差距所導致的次優3D結果生成問題,X-Dreamer提出了基於相機引導的低秩適應方法

如圖3 所示,利用攝影機參數和方向感知文字來指導CG-LoRA 中參數的生成,使X-Dreamer 能夠有效地感知攝影機的位置和方向資訊。

突破次元壁,X-Dreamer帶來高品質的文本到3D生成,融合2D和3D生成領域

圖 3 攝影機引導的 CG-LoRA 示意。

具體的,給定文字提示突破次元壁,X-Dreamer帶來高品質的文本到3D生成,融合2D和3D生成領域和相機參數突破次元壁,X-Dreamer帶來高品質的文本到3D生成,融合2D和3D生成領域,首先使用預先訓練的文字CLIP 編碼器突破次元壁,X-Dreamer帶來高品質的文本到3D生成,融合2D和3D生成領域和可訓練的MLP突破次元壁,X-Dreamer帶來高品質的文本到3D生成,融合2D和3D生成領域,將這些輸入投影到特徵空間:

突破次元壁,X-Dreamer帶來高品質的文本到3D生成,融合2D和3D生成領域

其中,突破次元壁,X-Dreamer帶來高品質的文本到3D生成,融合2D和3D生成領域 突破次元壁,X-Dreamer帶來高品質的文本到3D生成,融合2D和3D生成領域分別是文字特徵和相機特徵。之後,使用兩個低秩矩陣將突破次元壁,X-Dreamer帶來高品質的文本到3D生成,融合2D和3D生成領域突破次元壁,X-Dreamer帶來高品質的文本到3D生成,融合2D和3D生成領域投影到CG-LoRA 中的可訓練降維矩陣:

突破次元壁,X-Dreamer帶來高品質的文本到3D生成,融合2D和3D生成領域

其中,突破次元壁,X-Dreamer帶來高品質的文本到3D生成,融合2D和3D生成領域#和突破次元壁,X-Dreamer帶來高品質的文本到3D生成,融合2D和3D生成領域#是CG-LoRA 的兩個降維矩陣。函數突破次元壁,X-Dreamer帶來高品質的文本到3D生成,融合2D和3D生成領域

用於將張量的形狀從變換突破次元壁,X-Dreamer帶來高品質的文本到3D生成,融合2D和3D生成領域突破次元壁,X-Dreamer帶來高品質的文本到3D生成,融合2D和3D生成領域突破次元壁,X-Dreamer帶來高品質的文本到3D生成,融合2D和3D生成領域

#

突破次元壁,X-Dreamer帶來高品質的文本到3D生成,融合2D和3D生成領域突破次元壁,X-Dreamer帶來高品質的文本到3D生成,融合2D和3D生成領域是兩個低秩矩陣。因此,可以將它們分解為兩個矩陣的乘積,以減少實現中的可訓練參數,即突破次元壁,X-Dreamer帶來高品質的文本到3D生成,融合2D和3D生成領域#;突破次元壁,X-Dreamer帶來高品質的文本到3D生成,融合2D和3D生成領域,其中突破次元壁,X-Dreamer帶來高品質的文本到3D生成,融合2D和3D生成領域突破次元壁,X-Dreamer帶來高品質的文本到3D生成,融合2D和3D生成領域##,突破次元壁,X-Dreamer帶來高品質的文本到3D生成,融合2D和3D生成領域突破次元壁,X-Dreamer帶來高品質的文本到3D生成,融合2D和3D生成領域突破次元壁,X-Dreamer帶來高品質的文本到3D生成,融合2D和3D生成領域#,突破次元壁,X-Dreamer帶來高品質的文本到3D生成,融合2D和3D生成領域是一個很小的數字(如:4)。根據 LoRA 的組成,將維度擴展矩陣

初始化為零,以確保模型開始使用 SD 的預訓練參數進行訓練。因此,CG-LoRA 的前饋過程公式如下:

突破次元壁,X-Dreamer帶來高品質的文本到3D生成,融合2D和3D生成領域

突破次元壁,X-Dreamer帶來高品質的文本到3D生成,融合2D和3D生成領域#其中, 突破次元壁,X-Dreamer帶來高品質的文本到3D生成,融合2D和3D生成領域表示預先訓練的SD 模型的凍結參數,

是級聯運算。在本方法的實作中,將 CG-LoRA 整合到 SD 中註意力模組的線性嵌入層中,以有效地捕捉方向和相機資訊。

需要重新表達的內容是:注意力蒙版對齊損失(AMA損失)

突破次元壁,X-Dreamer帶來高品質的文本到3D生成,融合2D和3D生成領域SD 被預訓練以產生2D 影像,同時考慮了前景和背景元素。然而,text-to-3D 的產生需要更加重視前景物件的生成。鑑於這項要求,X-Dreamer 提出了 Attention-Mask Alignment Loss(AMA 損失),以將 SD 的注意力圖與 3D 物件的渲染的遮罩影像對齊。具體的,對於預訓練的 SD 中的每個注意力層,本方法使用查詢圖像特徵突破次元壁,X-Dreamer帶來高品質的文本到3D生成,融合2D和3D生成領域和關鍵 CLS 標記特徵##來計算注意力圖。計算公式如下:

突破次元壁,X-Dreamer帶來高品質的文本到3D生成,融合2D和3D生成領域

###

其中,突破次元壁,X-Dreamer帶來高品質的文本到3D生成,融合2D和3D生成領域 表示多頭注意力機制中的頭的數量,突破次元壁,X-Dreamer帶來高品質的文本到3D生成,融合2D和3D生成領域表示注意力圖,之後,透過對所有註意力集中注意力圖突破次元壁,X-Dreamer帶來高品質的文本到3D生成,融合2D和3D生成領域的注意力值進行平均來計算整體注意力圖突破次元壁,X-Dreamer帶來高品質的文本到3D生成,融合2D和3D生成領域的值。

由於使用 softmax 函數對注意力圖值進行歸一化,因此當影像特徵解析度較高時,注意力圖中的活化值可能會變得非常小。但是,考慮到渲染的 3D 物件遮罩中的每個元素都是 0 或 1 的二進位值,因此將注意力圖與渲染的 3D 物件的遮罩直接對齊不是最佳的。為了解決這個問題,論文提出了一種歸一化技術,將注意力圖中的值映射到(0,1)之間。此歸一化過程的公式如下:

突破次元壁,X-Dreamer帶來高品質的文本到3D生成,融合2D和3D生成領域

其中,突破次元壁,X-Dreamer帶來高品質的文本到3D生成,融合2D和3D生成領域代表一個小的常數值(例如突破次元壁,X-Dreamer帶來高品質的文本到3D生成,融合2D和3D生成領域#),來防止分母中出現0。最後,使用 AMA 損失將所有註意力層的注意力圖與 3D 物件的渲染的遮罩對齊。

實驗結果

論文使用四個 Nvidia RTX 3090 GPU 和 PyTorch 函式庫進行實驗。為了計算 SDS 損失,利用了透過 Hugging Face Diffusers 實現的 Stable Diffusion 模型。對於 DMTET 和 material 編碼器,將它們分別實作為兩層 MLP 和單層 MLP,隱藏層維度為 32。

從橢球體開始進行text-to-3D 的產生

##論文展示了X-Dreamer 利用橢球作為初始幾何形狀的text-to-3D 的產生結果,如圖4 所示。結果證明 X-Dreamer 具有產生高品質和照片般逼真的 3D 物件的能力,生成的 3D 物件與輸入的文字提示準確對應。

突破次元壁,X-Dreamer帶來高品質的文本到3D生成,融合2D和3D生成領域

圖4 以橢球體為起點進行了text-to-3D 的產生

從粗粒度網格開始進行text-to-3D 的生成

#雖然可以從互聯網上下載大量粗粒度網格,但由於缺乏幾何細節,直接使用這些網格來創建3D 內容往往會導致效能較差。然而,與 3D 橢球體相比,這些網格可以為 X-Dreamer 提供更好的 3D 形狀先驗資訊。

因此,也可以使用粗粒度引導網格來初始化 DMTET,而不是使用橢球。如圖 5 所示,X-Dreamer 可以基於給定的文字產生具有精確幾何細節的 3D 資產,即使所提供的粗粒度網格缺乏細節。

突破次元壁,X-Dreamer帶來高品質的文本到3D生成,融合2D和3D生成領域

圖 5 從粗粒度網格開始進行 text-to-3D 的產生。

需要重寫的內容是:Qualitative Comparison.

為了評估X-Dreamer的有效性,本論文將其與四種先進方法進行比較:DreamFusion [4],Magic3D [8],Fantasia3D [7]和ProlificDreamer [11],如圖6所示#

当与基于 SDS 的方法进行比较时 [4,7,8],X-Dreamer 在生成高质量和逼真的 3D 资产方面优于他们。此外,与基于 VSD 的方法 [11] 相比,X-Dreamer 产生的 3D 内容具有相当甚至更好的视觉效果,同时需要的优化时间明显减少。具体来说,X-Dreamer 的几何形状和外观学习过程只需要大约 27 分钟,而 ProlificDreamer 则超过 8 小时。

突破次元壁,X-Dreamer帶來高品質的文本到3D生成,融合2D和3D生成領域

图 6 与现有技术 (SOTA) 方法的比较。

需要重新写的内容是:消融实验

  • 模块消融

为了深入了解 CG-LoRA 和 AMA 损失的能力,论文进行了消融研究,其中每个模块单独加入以评估其影响。如图 7 所示,消融结果表明,当 CG-LoRA 被排除在 X-Dreamer 之外时,生成的 3D 对象的几何形状和外观质量显著下降。

此外,X-Dreamer 缺失 AMA 损失也对生成的 3D 资产的几何形状和外观保真度产生有害影响。这些需要重新写的内容是:消融实验为 CG-LoRA 和 AMA 损失在增强生成的 3D 对象的几何形状、外观和整体质量方面的单独贡献提供了有价值的研究。

突破次元壁,X-Dreamer帶來高品質的文本到3D生成,融合2D和3D生成領域

图 7 X-Dreamer 的消融研究。

  • 有无 AMA 损失的注意力图比较

引入 AMA 损失的目的在于将去噪过程中的注意力集中于前景对象。实现这一目标的方法是通过将 SD 的注意力图与 3D 对象的渲染掩码对齐。为了评估 AMA 损失在实现该目标方面的有效性,本文在几何学习和外观学习阶段分别比较了有和没有 AMA 损失的 SD 的注意力图

根据图8所示,可以观察到,添加AMA损失不仅能改善生成的3D资产的几何形状和外观,还能使SD的注意力特别集中在前景对象区域上。可视化结果证实了AMA损失在引导SD注意力方面的有效性,从而提高了几何和外观学习阶段的质量和前景对象的聚焦

突破次元壁,X-Dreamer帶來高品質的文本到3D生成,融合2D和3D生成領域

需要重新写作的内容是:图8展示了注意力图、渲染掩码和渲染图像的可视化结果,其中包括和不包括AMA损失

这项研究引入了一个名为X-Dreamer的开创性框架,旨在通过解决文本到二维和文本到三维生成之间的领域差距来增强文本到三维的生成。为了实现这一目标,论文首先提出了CG-LoRA,该模块将三维相关信息(包括方向感知文本和相机参数)合并到预训练的稳定扩散(SD)模型中。通过这样做,本文能够有效地捕捉与三维领域相关的信息。此外,本文设计了AMA损失,以将SD生成的注意力图与三维对象的渲染掩码对齐。AMA损失的主要目标是引导文本到三维模型的焦点朝着前景对象的生成方向发展。通过广泛的实验,本文全面评估了提出方法的有效性,并证明了X-Dreamer能够根据给定的文本提示生成高质量和真实的三维内容

以上是突破次元壁,X-Dreamer帶來高品質的文本到3D生成,融合2D和3D生成領域的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:51cto.com。如有侵權,請聯絡admin@php.cn刪除