社群計算機視覺課程文件
CycleGAN 介紹
並獲得增強的文件體驗
開始使用
CycleGAN 介紹
本節介紹 CycleGAN,全稱為“迴圈一致性生成對抗網路”,它是一個專為影像到影像轉換任務設計的框架,特別適用於沒有配對示例的情況。該框架由 Zhu 等人在 2017 年的一篇論文中提出,代表了計算機視覺和機器學習領域的一項重大進展。
在許多影像到影像轉換任務中,目標是學習輸入影像和輸出影像之間的對映。傳統方法通常依賴於大量的配對示例資料集(例如,照片和相應的草圖)。然而,在許多情況下,獲取此類配對資料集可能極具挑戰性,甚至不可行。這就是 CycleGAN 發揮作用的地方,因為它旨在處理非配對資料集。
什麼是非配對影像到影像轉換

在許多影像轉換場景中,我們遇到缺少影像對之間直接一對一對應關係的資料集。這種情況就是非配對影像到影像轉換髮揮作用的地方。在這種情況下,您不是擁有匹配的影像對,而是使用兩組或“堆”不同的影像,每組代表一種不同的風格或領域,例如 X 和 Y。例如,一堆可能包含逼真的照片,而另一堆可能包含莫奈、塞尚或其他藝術家的藝術作品。或者,這些堆可以代表不同的季節,一堆展示冬季景觀,另一堆展示夏季場景。另一個例子可以是一堆馬的影像和另一堆斑馬的影像,兩者之間沒有任何直接的配對。非配對影像到影像轉換的目標是讓模型學習並從每堆中提取一般的風格元素,並將這些學習到的風格應用於將影像從一個領域轉換到另一個領域。這種轉換通常是雙向的,允許將領域 X 的影像轉換為領域 Y 的風格,反之亦然。當無法獲得或難以獲得精確的影像對時,這種方法特別有價值。
CycleGAN 的主要組成部分
雙 GAN 結構:
CycleGAN 採用兩個 GAN(生成對抗網路),一個用於從第一組翻譯到第二組(例如,斑馬到馬),另一個用於反向過程(馬到斑馬)。這種雙重結構確保了真實性(透過對抗過程)和內容保留(透過迴圈一致性)。
- PatchGAN 判別器:CycleGAN 中使用的判別器基於 PatchGAN 架構,該架構評估影像的補丁而不是整個影像,有助於實現更詳細和區域性的真實感。
- 生成器架構:CycleGAN 中的生成器借鑑了 U-Net 和 DCGAN 架構,包括下采樣(編碼)、上取樣(解碼)和帶有批次歸一化和 ReLU 的卷積層。這些生成器透過額外的卷積層和跳躍連線(稱為殘差連線)得到增強,這有助於學習恆等函式並支援更深層的轉換。
迴圈一致性損失:
確保影像的風格可以改變(例如,悲傷的臉變成擁抱的臉),然後恢復到其原始形式(擁抱的臉變回悲傷的臉),同時細節或內容損失最小。
實現涉及兩個轉換階段。
第一階段:悲傷的臉被轉換成擁抱的臉。第二階段:這個擁抱的臉隨後被轉換回悲傷的臉。模型的目標是使最終影像(恢復的悲傷的臉)與原始悲傷的臉非常相似。這是透過最小化這兩個影像之間的畫素差異來實現的,該差異被新增到模型的損失函式中。迴圈一致性在兩個方向上都適用:悲傷的臉到擁抱的臉再到悲傷的臉,以及擁抱的臉到悲傷的臉再到擁抱的臉。每個迴圈的損失透過畫素差異的總和計算,然後合併到總生成器損失中。與對抗損失的整合:迴圈一致性損失與 GAN 中常用的對抗損失相結合,形成一個綜合的損失函式。這個組合損失函式針對 CycleGAN 中的兩個生成器同時進行最佳化。
最小二乘損失:
它是一種最小化殘差平方和的方法。這意味著它試圖找到一條最佳擬合線,該線與所有點之間的平方距離之和最小。在 GAN 中,**線**代表標籤(真實或虛假),點代表判別器的預測。最小二乘對抗損失中判別器的損失函式透過計算其預測與多個影像的實際標籤(真實或虛假)之間的平方距離來制定。對於生成器,損失函式旨在使其虛假輸出儘可能真實,透過這些輸出與**真實**標籤的偏離程度來衡量。最小二乘損失解決了 BCE 損失中常見的梯度消失和模式崩潰問題。
身份損失:
在 CycleGAN 中引入的身份損失是一個可選的損失項,旨在增強生成影像的顏色保留。它的工作原理是確保輸入到生成器中的影像(例如,輸入到斑馬到馬生成器中的馬影像)理想情況下應輸出相同的影像,因為它已經處於目標風格中。損失計算為真實輸入與生成器輸出之間的畫素距離。零畫素距離(影像沒有變化)導致零身份損失,這是期望的結果。對於 CycleGAN 生成器,此損失與對抗損失和迴圈一致性損失一起新增。它使用 lambda 項(加權因子)進行調整。
此圖顯示了兩個 **GAN** 的組合 GAN 架構功能。這些 GAN 透過迴圈一致性連線,形成一個迴圈。對於真實影像,分類矩陣包含 1。對於虛假影像,它包含 0。總之,CycleGAN 精妙地結合了兩個 GAN 和各種損失函式,包括對抗損失、迴圈一致性損失和可選的身份損失,以有效地在兩個領域之間傳輸風格,同時保留輸入影像的基本特徵。