【風格遷移】對比度保持連貫性損失 CCPL:解決圖像局部失真、視頻幀間的連貫性和閃爍

對比度保持連貫性損失 CCPL:解決圖像局部失真、視頻幀間的連貫性和閃爍

    • 提出背景
    • 解法:對比度保持連貫性損失(CCPL)= 局部一致性假設 + 對比學習機制 + 鄰域調節策略 + 互信息最大化
      • 對比學習:在無需標簽的情況下有效學習區分特征
      • 應用CCPL的步驟 - 高層次描述
      • 應用CCPL的步驟 - 技術細節
      • 簡單協方差變換(SCT)的詳細過程
      • 邏輯鏈條

?


提出背景

論文:https://arxiv.org/pdf/2207.04808.pdf

代碼:https://github.com/JarrentWu1031/CCPL

?

如果你能將心愛的照片轉換成梵高或畢加索的畫作風格,又或者讓一段視頻流暢地展現出古典油畫的韻味,這一切聽起來是不是很神奇?

近年來,一項名為“風格轉換”的技術正讓這種想象成為現實。

把一種圖像的風格應用到另一張圖像上,但要做得好卻非常復雜。

特別是在處理視頻時,我們希望轉換后的每一幀都能夠保持風格的一致性,同時又不失原有的動態效果。

過去的技術往往在保持這種一致性上遇到困難,導致視頻在播放時會出現閃爍或是幀與幀之間不連貫的現象。

研究人員提出了一種新的方法,名為“對比度保持連貫性損失”(CCPL)。

方法創新: 與傳統的風格轉換技術不同,CCPL通過對比學習框架最大化正樣本對的互信息來保持局部連貫性,同時避免了與風格化目標的直接矛盾,即避免了生成圖像簡單復制內容圖像的問題。

CCPL通過專注于圖像的局部細節,而不是整體,來確保風格轉換的連貫性和一致性。

就是讓圖片的每一小塊都進行獨立的風格轉換,但又能保證整體上的和諧統一。

  • CCPL引入的鄰域調節策略顯著減少了圖像的局部失真問題。這意味著在風格轉換過程中,生成的圖像在細節上更加準確,同時在視覺質量上得到了顯著提升。

除此之外,為了更好地融合不同的風格特征,研究團隊還提出了一個名為“簡單協方差變換”(SCT)的技術。

通過這種方法,可以更精確地將一個風格的特點融入到另一張圖片中,從而達到更自然、更貼近原作風格的轉換效果。

這項技術的美妙之處在于,它不僅適用于藝術風格的轉換,也同樣適用于視頻和照片級真實感的風格轉換。

?

對于解決圖像和視頻風格轉換中的幀間連貫性和局部一致性問題。

CCPL的核心思想在于通過一種對比學習的框架來維持內容的連貫性,同時允許風格的靈活轉換。

這種方法特別適用于處理視頻風格轉換,其中需要在連續幀之間保持高度的連貫性,以避免產生閃爍或其他視覺不一致的現象。

解法:對比度保持連貫性損失(CCPL)= 局部一致性假設 + 對比學習機制 + 鄰域調節策略 + 互信息最大化

大餐制作 = 準備食材 + 烹飪技術 + 調味品匹配 + 味道平衡

準備食材(局部一致性假設):

  • 每道菜的食材需要新鮮且適合該菜式。
  • 這就像局部一致性假設中的每個小區域(或補丁),都需要保持其內容和風格上的連貫性,確保整體風格轉換的自然和諧。
  • 之所以用“準備食材”,是因為每道菜的成功都建立在優質食材的基礎上

烹飪技術(對比學習機制):

  • 使用正確的烹飪方法來處理不同的食材,比如煎、炒、烤等,以達到最佳風味。
  • 這對應于CCPL中的對比學習機制,通過比較正樣本對和負樣本對來學習如何在保持內容連貫性的同時進行風格遷移。
  • 之所以用“烹飪技術”,是因為正確的技術能最大化食材的風味,就如對比學習機制最大化風格遷移的效果

調味品匹配(鄰域調節策略):

  • 選擇合適的調味品來補充和提升食物的味道,保證不同菜品之間的味道是協調的。
  • 在CCPL中,鄰域調節策略確保了相鄰補丁間風格轉換的連貫性,避免了突兀的變化。
  • 之所以用“調味品匹配”,是因為它能讓菜品之間的過渡更加自然,類似于鄰域調節策略在風格轉換中的作用

味道平衡(互信息最大化):

  • 最后,確保整頓大餐中的每道菜味道平衡,不會相互壓倒,達到整體的和諧。
  • 互信息最大化則是在CCPL中通過優化正負樣本對的相似度和差異度,以確保風格轉換的連貫性和一致性。
  • 之所以用“味道平衡”,是因為它要求廚師對整體味道有綜合考量,類似于互信息最大化在風格轉換中平衡正負樣本對的作用

?

CCPL 過程:

在這里插入圖片描述
這個過程涉及兩幀內容圖像(Frame 1 和 Frame 2),它們分別包含了一些局部區域(RA,RB和RC)。

在這兩幀中,相同顏色的框代表相同的位置,但可能由于相機移動或物體移動,內容有所不同。

目標是使生成的風格化圖像中相對應的區域(R’A,R’B和R’C)之間的變化與內容圖像的相應區域之間的變化盡可能一致。

這樣可以保持內容的連貫性,并且通過最大化相同位置的補丁之間的互信息來實現這一點。

  • 子特征1:局部一致性假設

    • 描述:CCPL出發點是一個相對溫和的假設,即全局的不一致性主要由局部的不一致性引起。
    • 這意味著通過專注于圖像或視頻的小區域(局部補丁),我們可以更有效地維護整體的連貫性。
    • 原因:這個假設允許算法在沒有犧牲整體風格轉換效果的情況下,精細控制局部區域的連貫性和風格一致性。
  • 子特征2:對比學習機制

    • 描述:CCPL采用對比學習機制,通過最大化正樣本對的相似性(即相同區域的局部補丁)和最小化負樣本對的相似性(即不同區域的局部補丁),來保持內容的連貫性。
    • 原因:對比學習機制有效地利用了無標簽數據,通過區分相似和不相似的局部特征,強化了模型對風格和內容連貫性的理解,從而在不直接依賴于成對的訓練樣本的情況下實現風格遷移。
  • 子特征3:鄰域調節策略

    • 描述:CCPL引入了一種鄰域調節策略,通過調整相鄰補丁間的相互作用,減少了局部失真并提升了視覺質量。
    • 原因:這種策略通過確保相鄰補丁之間的風格轉換連貫性,減少了風格轉換過程中可能出現的突兀變化,特別是在視頻幀間,這種方法顯著提升了視覺連貫性和整體觀感。

通過局部一致性的假設,對比學習的應用,以及鄰域調節策略的實施,CCPL能夠在保持內容連貫性的同時實現風格的高度自由轉換,從而在不犧牲風格化效果的前提下,顯著提升了轉換后圖像和視頻的視覺質量。

這使得CCPL成為一個強大的工具,適用于各種風格轉換任務,包括藝術化轉換、照片級真實感轉換和視頻風格轉換。

?


對比學習:在無需標簽的情況下有效學習區分特征

子解法: 對比學習

子特征: 正負特征對的互信息最大化。

通過最大化正樣本對的互信息同時最小化負樣本對的互信息,學習良好的特征表示。

之所以采用對比學習,是因為在無需標簽的情況下,可以有效學習區分特征,為圖像到圖像的轉換提供強大的特征表示基礎。

我們有一組風景照片和一組著名畫家的畫作。

我們的目標是學習一個模型,使得我們可以將畫家的風格應用到風景照片上,創建出新的、風格化的圖像。

在沒有對比學習的情況下,我們可能需要大量的 “風景照片-風格化照片” 對作為訓練數據,這在現實中是很難獲得的。

這時,對比學習就派上用場了。

我們不需要精確的“對”作為訓練數據,而是可以使用無標簽的圖像來學習區分特征。具體來說,對比學習通過以下方式工作:

  1. 正樣本對的選擇:我們從著名畫家的畫作中選取一個局部特征(比如一小塊畫布上的紋理),并從風景照片中選取一個相似的局部特征作為正樣本對。

    這兩個特征在視覺上是相似的,我們希望模型學會識別和保持這種相似性。

  2. 負樣本對的選擇:同時,我們還從同一幅風景照片或其他畫作中選取與上述特征明顯不同的局部特征作為負樣本對。

    這些特征在視覺上與選定的特征有顯著差異,我們希望模型學會區分這些差異。

  3. 互信息最大化:模型通過最大化正樣本對之間的互信息(即使模型能夠識別和強調這些特征之間的相似性)和最小化負樣本對之間的互信息(即使模型能夠區分不相關的特征),來學習區分這些特征。

    這個過程不需要標簽,因為它是基于特征相似性和差異性的內在屬性。

例如,如果我們正在學習梵高的風格,正樣本對可能是一小塊表現出梵高特有筆觸的畫布特征和一張風景照片中相似紋理的部分。

負樣本對可能是同一風景照片中的一塊平滑無紋理的天空區域。

通過這種方式,對比學習使模型能夠學習到如何將梵高的筆觸應用到風景照片的相應部分,同時避免在不適合的區域(如平滑的天空)應用這種風格,從而實現更加準確和自然的風格轉換效果。

這個過程不依賴于成對的訓練樣本,而是依賴于模型能夠從大量無標簽的數據中學習區分和應用風格的能力。

應用CCPL的步驟 - 高層次描述

假設我們有一段城市風景的視頻,我們希望將梵高的繪畫風格應用于這個視頻,同時確保視頻中的每一幀都能夠在視覺上保持連貫,避免出現閃爍或者風格不一致的問題。

應用CCPL的步驟

  1. 局部一致性假設

    • 我們首先將視頻分解為一系列幀,然后將每一幀進一步分割成小的局部區域(或稱為補丁)。
    • 這樣做的目的是將全局風格轉換問題轉化為多個局部問題,每個局部問題關注于如何將梵高的風格應用于一個小區域內。
  2. 對比學習機制

    • 接下來,對于視頻中的每一個局部補丁,CCPL算法會在梵高的畫作中尋找風格上最接近的補丁作為正樣本對,同時也會尋找風格差異顯著的補丁作為負樣本對。
    • 通過這種方式,算法學習在保持原有內容結構的前提下,如何將梵高的風格特征融入到城市風景的每個局部補丁中,同時確保與周圍補丁在視覺上的連貫性。
  3. 鄰域調節策略

    • 在風格轉換過程中,CCPL還會考慮每個局部補丁與其相鄰補丁之間的關系,確保相鄰補丁之間的風格轉換是連貫的。
    • 這一步是通過調整相鄰補丁間的相互作用來實現的,比如通過最小化相鄰補丁間風格特征的差異。
    • 這樣,即使是動態變化的視頻場景,每一幀內的風格轉換也能夠保持自然和連貫,避免了因風格突變導致的視覺閃爍問題。

通過應用CCPL,最終生成的視頻不僅成功地將梵高的繪畫風格融入到城市風景中,而且每一幀之間都能保持高度的視覺連貫性,使得整個視頻看起來既自然又具有藝術感。

觀眾可以清晰地看到梵高筆觸下的城市景象,同時享受到流暢連貫的視覺體驗。

這個例子展示了CCPL在實現高質量風格轉換,尤其是在處理視頻內容時的強大能力。

通過局部一致性假設、對比學習機制和鄰域調節策略的結合,CCPL能夠有效解決風格轉換過程中的視覺不一致問題,提供了一種既實用又高效的解決方案。

?


應用CCPL的步驟 - 技術細節

在這里插入圖片描述
首先,內容圖像C和生成圖像G通過固定的圖像編碼器E,得到特定層的特征圖Cf和Gf。

然后,從Gf中隨機采樣N個向量(紅點),并從Cf中采樣相同位置的向量。這些向量之間的差異通過向量減法得到,并通過多層感知機(MLP)映射和歸一化,然后計算InfoNCE損失。

這一過程有助于在不同幀間保持圖像的時間連貫性。

  1. 特征圖提取

    • 首先,生成的圖像G和其對應的內容輸入C被送入一個固定的圖像編碼器E。這個編碼器是預先訓練好的,能夠提取圖像的深層特征。在這個過程中,我們從特定層得到了生成圖像G和內容圖像C的特征圖,分別表示為Gf和Cf。
    • 這一步驟的目的是將圖像轉換為更高維的特征表示,這些特征表示更加豐富,能夠捕捉到圖像的重要視覺屬性。
  2. 隨機采樣和鄰域選擇

    • 接著,從Gf中隨機采樣N個向量(表示為紅點),每個向量代表了生成圖像在特定區域的特征表示。這些向量被表示為Gx_a,其中x=1,…,N。
    • 對于每個采樣的向量Gx_a,選擇其八個最近的鄰域向量(表示為藍點),表示為Gx,y_n,其中y=1,…,8代表鄰域索引。
    • 同樣地,也從Cf中在相同位置采樣,獲取對應的內容特征向量Cx_a和其鄰域向量Cx,y_n。
  3. 差異向量的計算

    • 對于每對向量及其鄰域,計算差異向量d_g^x,y = G_a^x ? G_nx,y和d_cx,y = C_a^x ? C_n^x,y,其中?代表向量減法。
    • 這些差異向量代表了局部區域內特征之間的變化,是CCPL嘗試保持一致的關鍵量。
  4. 對比學習與互信息最大化

    • 為了實現互信息最大化,CCPL嘗試讓正樣本對(即來自相同位置的差異向量對)之間的差異盡可能相似,而讓負樣本對(即來自不同位置的差異向量對)之間的差異盡可能不同。
    • 通過使用多層感知機(MLP)將差異向量映射到單位球面上,并計算InfoNCE損失,CCPL能夠有效地實現這一目標。這種方法不僅強化了生成圖像的時間連貫性,而且避免了直接使生成圖像G類似于內容圖像C的問題,從而不會與風格遷移的目的相矛盾。

簡單協方差變換(SCT)的詳細過程

在這里插入圖片描述
上圖是SCT模塊的具體結構,以及它如何與其他類似算法(如AdaIN和Linear)進行比較。

SCT模塊通過首先對內容特征fc和風格特征fs進行標準化處理,然后通過減少通道維數來降低計算成本,接著計算風格特征的協方差矩陣,最后通過矩陣乘法融合內容特征和風格特征。

這個過程不僅保留了風格特征之間的相關性,而且也簡化了網絡結構,使其更加輕量和快速。

通過這種方式,SCT模塊能夠有效地將風格化特征與內容特征融合,生成富有藝術風格的圖像。

邏輯鏈條

對比度保持連貫性損失(CCPL)這樣的復雜技術時,子特征之間的邏輯關系可以被視為一個“鏈條”模型,每個環節都是有序連接的,每一步驟的輸出都作為下一步驟的輸入。

階段 1:目標設定

  • 目標:將梵高的風格應用到城市風景視頻中,并保持幀間連貫性。

階段 2:特征圖提取(子特征1)

  • 操作:使用編碼器E從內容圖像C和生成圖像G提取特征圖Cf和Gf。
  • 邏輯鏈條:這是鏈條的起始點,我們需要轉換圖像到一個可以更好地表征風格和內容的特征空間。

階段 3:隨機采樣和鄰域選擇(子特征2)

  • 操作:從特征圖中隨機選擇特定數量的向量(代表局部區域)及其鄰域。
  • 邏輯鏈條:建立在特征圖提取的基礎上,這一步驟為后續的對比學習準備了輸入數據。

階段 4:差異向量的計算(子特征3)

  • 操作:計算選定向量與鄰域向量之間的差異。
  • 邏輯鏈條:計算差異向量是為了量化鄰域內的風格變化,這對于保持風格連貫性至關重要。

階段 5:對比學習與互信息最大化(子特征4)

  • 操作:應用對比學習機制,最大化正樣本對的互信息,最小化負樣本對的互信息。
  • 邏輯鏈條:這是鏈條中的關鍵環節,它利用前面計算出的差異向量來訓練模型,使得模型能夠在保持內容連貫性的同時實現風格轉換。

階段 6:損失函數優化(子特征5)

  • 操作:通過結合內容損失、風格損失和CCPL,進行模型訓練。
  • 邏輯鏈條:這個階段整合了所有先前的子特征,并通過優化損失函數來調整模型參數,以達到最佳的風格轉換效果。

階段 7:輸出評估(子特征6)

  • 操作:評估生成視頻的風格連貫性和視覺效果。
  • 邏輯鏈條:這是鏈條的最終環節,它確保了所有先前步驟的有效性,并指導未來的優化方向。

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

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

相關文章

基于YOLOv8/YOLOv7/YOLOv6/YOLOv5的教室人員檢測與計數(Python+PySide6界面+訓練代碼)

摘要:開發教室人員檢測與計數系統對于優化教學資源和提升教學效率具有重要意義。本篇博客詳細介紹了如何利用深度學習構建此系統,并提供了完整的實現代碼。該系統基于強大的YOLOv8算法,并對比了YOLOv7、YOLOv6、YOLOv5的性能,展示…

藍橋杯第2章:基礎算法_3

1.聰明的小羊肖恩 - 藍橋云課 (lanqiao.cn) #include <bits/stdc.h> using namespace std; typedef long long LL; const int mod100000007; const int N200010; int n,L,R; int a[N]; LL calc(int v){//計算數組a中兩個數之和小于等于v的數對數量int l1,rn;LL ans0;whi…

[vue error] TypeError: AutoImportis not a function

問題詳情 問題描述: element plus按需導入后&#xff0c;啟動項目報錯&#xff1a; 問題解決 將unplugin-auto-import 回退到0.16.1 npm install unplugin-auto-import0.16.1 安裝完后再次運行就好了

差分題練習(區間更新)

一、差分的特點和原理 對于一個數組a[]&#xff0c;差分數組diff[]的定義是: 對差分數組做前綴和可以還原為原數組: 利用差分數組可以實現快速的區間修改&#xff0c;下面是將區間[l, r]都加上x的方法: diff[l] x; diff[r 1] - x;在修改完成后&#xff0c;需要做前綴和恢復…

PYTHON 自動化辦公:壓縮圖片(PIL)

1、介紹 在辦公還是學習過程中&#xff0c;難免會遇到上傳照片的問題。然而照片的大小限制一直都是個問題&#xff0c;例如照片限制在200Kb之內&#xff0c;雖然有很多圖像壓縮技術可以實現&#xff0c;但從圖像處理的專業來說&#xff0c;可以利用代碼實現 這里使用的庫函數是…

云計算之道:學習方法、實踐經驗與行業展望

一、云計算的理論 云計算是一種基于網絡的計算模型&#xff0c;通過將計算資源、存儲資源和服務等提供給用戶&#xff0c;實現按需獲取、靈活部署和按照使用量付費等特點。云計算的基本原理包括以下幾個方面&#xff1a; 虛擬化技術&#xff1a;云計算基于虛擬化技術&#xff…

Vue2-(jeecgBoot) img大圖預覽

img 圖片展示&#xff0c;大圖預覽失效解決&#xff0c;代碼中使用的預覽組件為&#xff1a;vue-photo-preview 使用場景&#xff1a;詳情頁面-model.images循環展示&#xff0c;點擊查看大圖&#xff0c;不能點擊。 解決方案&#xff1a; 在詳情數據請求完畢加 this.$previ…

觀成科技:加密C2框架Covenant流量分析

工具介紹 Covenant是一個基于.NET的開源C2服務器&#xff0c;可以通過HTTP/HTTPS 控制Covenant agent&#xff0c;從而實現對目標的遠程控制。Covenant agent在與C2通信時&#xff0c;使用base64/AES加密載荷的HTTP隧道構建加密通道。亦可選擇使用SSL/TLS標準加密協議&#xf…

Java網絡通信TCP

目錄 TCP兩個核心類 服務端 1.用ServerSocker類創建對象并且手動指定端口號 2.accept阻塞連接服務端與客戶端 3.給客戶端提供處理業務方法 4.處理業務 整體代碼 客戶端 1.創建Socket對象&#xff0c;并連接服務端的ip與端口號 2.獲取Socket流對象&#xff0c;寫入數據…

Linux: Network: socket: sendto 如果返回0,是否一定代表發送成功?

最近遇到一個問題&#xff0c;雖然應用層使用的系統調用send已經返回成功&#xff0c;而且沒有錯誤日志產生&#xff0c;也沒有errno的設置。那是不是代表一定是沒有問題&#xff1f;從抓包的結果看&#xff0c;雖然上層應用已經顯示發出去&#xff0c;但是實際抓包的時候&…

[python隊列廣搜]請佩戴好口罩

請佩戴好口罩 題目描述 疫情當下&#xff0c;希望同學們都認真佩戴口罩&#xff0c;保護自己&#xff0c;保護他人。 現假設有一個n*n的網格&#xff0c;每個人分別站在網格中的一個方格上&#xff0c;人們可以選擇佩戴/不佩戴口罩&#xff0c;口罩對于病毒的傳播有如下影響&…

被曝隱瞞添加劑、夸大產品功效,東方甄選再陷選品風波

號稱專注為客戶細心甄選好物的東方甄選&#xff08;&#xff08;HK:01797&#xff09;&#xff09;&#xff0c;又攤上事兒了。 近日&#xff0c;海關總署發布公告稱&#xff0c;美國飲料生產企業JERRY&SONS PHARMACEUTICAL INC在申請注冊時提供了虛假材料&#xff0c;且未…

moviepy用法大全

1.引用 from moviepy.editor import * 2. 載入 2.1 載入視頻 video = VideoFileClip(filePath) 2.2 載入音頻 audio=AudioFileClip(filePath) 2.3 載入圖片 img = (ImageClip(videopath+videofengpi) # 水印持續時間 .set_duration(start_video_clip_begin.duration) …

C2_W2_Assignment_吳恩達_中英_Pytorch

Neural Networks for Handwritten Digit Recognition, Multiclass In this exercise, you will use a neural network to recognize the hand-written digits 0-9. 在本次練習中&#xff0c;您將使用神經網絡來識別0-9的手寫數字。 Outline 1 - Packages 2 - ReLU Activatio…

c語言經典測試題9

1.題1 #include <stdio.h> int main() { int i 1; sizeof(i); printf("%d\n", i); return 0; } 上述代碼運行結果是什么呢&#xff1f; 我們來分析一下&#xff1a;其實這題的難點就是sizeof操作后i的結果是否會改變&#xff0c;首先我們創建了一個整型i&a…

LeetCode刷題小記 六、【棧與隊列】

1.棧與隊列 文章目錄 1.棧與隊列寫在前面1.1棧與隊列理論基礎1.2用棧實現隊列1.3用隊列實現棧1.4有效的括號1.5刪除字符串中的所有相鄰重復項1.6逆波蘭表達式求值1.7滑動窗口最大值1.8前K個高頻元素 Reference 寫在前面 本系列筆記主要作為筆者刷題的題解&#xff0c;所用的語…

分布式基礎 --- Leader election

分布式基礎 --- Leader election 為什么需要leader electionRing electionBully Algorithm 為什么需要leader election 在一組集群中, 需要選出一個leader來承擔一些特別的任務, 比如 協調和控制系統操作&#xff1a;領導者負責協調和控制整個分布式系統的操作。它可以接收和處…

one4all 排坑記錄

one4all 排坑記錄 任務踩坑回顧動作踩坑動作踩坑動作新一步測試Habitat-sim 測試habitat-lab繼續ONE4ALL 任務 看了《One-4-All: Neural Potential Fields for Embodied Navigation》這篇論文&#xff0c;感覺挺有意思&#xff0c;他也開源了代碼。視覺語言導航是我一直想做的…

windows上elasticsearch的ik分詞器的安裝

下載 下載地址 在elasticsearch下的plugins文件夾下創建ik的文件夾 下載的ik壓縮包解壓到plugins/ik 重啟elasticsearch 驗證 http://ip:9200/_cat/plugins

python筆記_運算符優先級

運算符描述算術運算符&#xff08;x&#xff09;括號內優先級最高**乘方 * / // % 乘 矩陣乘 除 整除 取余 _ 加 減 位運算符 >> << 右移 左移 &按位與^按位異或|按位或比較運算符 in not in is is not < < > > ! 判斷兩個變量是否相同 判…