
過去我們介紹過像是「ControlCom影像合成模型」以及其他許多的影像合成模型,這次開發 ControlCom 的團隊在 11 月中發表了一個基於 ObjectStitch 進行 Fine tune 的模型 MureObjectStitch,今天就來看看 MureObjectStitch的 Fine tune 策略以及表現!
📌簡介
- 多參考微調策略:該模型允許模型使用多張包含相同前景物件的圖像進行訓練。通過結合微調和多參考策略,MureObjectStitch 可以更好地學習前景物件的不同姿態和視角,並生成更逼真的合成圖像。
- 提升高真實性合成方法的細節保留能力:實驗結果顯示,將多參考微調策略應用於高真實性方法 ObjectStitch 後,模型在保留細節方面的能力顯著提高。 MureObjectStitch 能夠在調整前景物件光照和幾何形狀的同時,更好地保留前景物件的細節,生成高品質的合成圖像。
📌方法
前面簡介一直提到多參考微調策略,那具體什麼是多參考微調策略呢?
所謂的多參考微調策略指的是允許模型在訓練過程中輸入多張前景物件的參考圖像。像是下圖這樣~

48

研究團隊連接了多個視角的輸入(包括全局特徵和局部特徵),這些特徵通過交叉注意力機制注入到去噪 UNet 中。
- 全局特徵:全局特徵描述整幅圖像的整體屬性,常見的全局特徵包括:顏色特徵 & 紋理特徵 & 形狀特徵
- 局部特徵:局部特徵關注圖像中的局部區域,能夠在複雜場景中提供更強的魯棒性。EX.特徵點 & 特徵描述子
特徵點:如角點、邊緣點,這些點在圖像中具有獨特性。
特徵描述子:如SIFT、SURF等算法,對特徵點周圍的區域進行描述,便於匹配和識別。
📌資料集
該論文使用了一個叫做 MureCom 的資料集:
資料集包含 32 個前景類別,例如動物、人物、車輛等。
每個前景類別有 20 張背景圖像,每張背景圖像都有一個手動標記的邊界框,用於放置對應類別的前景物件。
每個前景類別有 3 個獨特的前景物件,每個物件有 5 張不同角度或姿態的圖像。
📌實驗
研究人員使用每個前景物件的 5 張圖像對模型進行微調。微調的目標是讓模型學習如何將特定前景物件與不同背景融合。過程通常進行 150 個 epochs,大約需要 15 分鐘(使用 A6000 GPU 卡)。有些情況下,微調更多 epochs (例如 200 個) 可以保留更多細節,但可能導致內容失真或照明問題。

結果顯示,MureObjectStitch 可以生成很不錯的合成圖像,前景物件與背景和其他物件自然地交互。
📌如何用?

若你想用自己的資料集來進行 finetune你需要前景影像&背景影像&遮罩影像,而這些資料需要滿足以下條件的資料。包含了:
- 前景物體需完全填滿影像的長和寬邊界。
- 分割出前景物體以生成邊界框(bounding box)。
- 移除前景物體後,生成相應的背景影像。
接著進行微調,需要運行以下命令啟動微調:
python main.py \
--logdir experiments/objectstitch \
--name='custom_finetune' \
--num_workers 4 \
--devices 1 \
--batch_size 1 \
--num_nodes 1 \
--base configs/murecom.yaml \
--package_name='CustomObject' \
--fg_name='foreground1'
--logdir
:指定保存微調過程中模型檢查點(checkpoints)的目錄。--name
:給此次微調設定名稱,用於區分不同任務。--num_workers
:設定數據加載時的工作線程數,根據硬體性能設置(通常設置為 4)。--devices
:指定使用的 GPU 。--batch_size
:每次訓練的數據批量大小,根據 GPU 記憶體調整。--base
:指定配置檔案,通常為configs/murecom.yaml
。--package_name
和--fg_name
:定義微調過程中特定的前景物體標籤,便於結果管理。
微調默認進行 150 個 epoch。可以通過 TensorBoard 或模型輸出的日誌檔案,監控訓練損失值(loss)的下降趨勢和生成結果的改進。