過去我們介紹過像是「ControlCom影像合成模型」以及其他許多的影像合成模型,這次開發 ControlCom 的團隊在 11 月中發表了一個基於 ObjectStitch 進行 Fine tune 的模型 MureObjectStitch,今天就來看看 MureObjectStitch的 Fine tune 策略以及表現!
前面簡介一直提到多參考微調策略,那具體什麼是多參考微調策略呢?
所謂的多參考微調策略指的是允許模型在訓練過程中輸入多張前景物件的參考圖像。像是下圖這樣~
48
研究團隊連接了多個視角的輸入(包括全局特徵和局部特徵),這些特徵通過交叉注意力機制注入到去噪 UNet 中。
特徵點:如角點、邊緣點,這些點在圖像中具有獨特性。
特徵描述子:如SIFT、SURF等算法,對特徵點周圍的區域進行描述,便於匹配和識別。
該論文使用了一個叫做 MureCom 的資料集:
資料集包含 32 個前景類別,例如動物、人物、車輛等。
每個前景類別有 20 張背景圖像,每張背景圖像都有一個手動標記的邊界框,用於放置對應類別的前景物件。
每個前景類別有 3 個獨特的前景物件,每個物件有 5 張不同角度或姿態的圖像。
研究人員使用每個前景物件的 5 張圖像對模型進行微調。微調的目標是讓模型學習如何將特定前景物件與不同背景融合。過程通常進行 150 個 epochs,大約需要 15 分鐘(使用 A6000 GPU 卡)。有些情況下,微調更多 epochs (例如 200 個) 可以保留更多細節,但可能導致內容失真或照明問題。
結果顯示,MureObjectStitch 可以生成很不錯的合成圖像,前景物件與背景和其他物件自然地交互。
若你想用自己的資料集來進行 finetune你需要前景影像&背景影像&遮罩影像,而這些資料需要滿足以下條件的資料。包含了:
接著進行微調,需要運行以下命令啟動微調:
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)的下降趨勢和生成結果的改進。