成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

當(dāng)GAN生成圖像可以卡音效,這個Python包只需幾行代碼

新聞 前端
Lucid Sonic Dreams 包可以實現(xiàn) GAN 生成圖像的「音畫同步」效果,且支持自定義。

  GAN 生成圖像奇幻詭譎,對此我們早已不陌生。如果它們還可以卡音效呢?最近,有人就創(chuàng)建了一個實現(xiàn)類似效果的 Python 包——Lucid Sonic Dreams,只用幾行代碼就可以實現(xiàn) AI 生成畫作與音樂的同步。

  • GitHub 地址:https://github.com/mikaelalafriz/lucid-sonic-dreams
  • Colab 教程地址:https://colab.research.google.com/drive/1Y5i50xSFIuN3V4Md8TB30_GOAtts7RQD?usp=sharing

在該項目提供的 demo 視頻中,伴隨著 Saje 的歌「Raspberry」,GAN 生成的圖像不斷變換且呈現(xiàn)出了對應(yīng)的節(jié)奏。

[[389391]]

工作原理

生成藝術(shù)品通常是由 GAN 網(wǎng)絡(luò)來完成的。Lucid Sonic Dreams 包默認(rèn)使用 StyleGAN2-ADA 架構(gòu),不過 GAN 架構(gòu)也可以自定義。將這些模型在特定「風(fēng)格」的圖像數(shù)據(jù)集上進行訓(xùn)練,使之能夠輸出與訓(xùn)練圖像風(fēng)格一致的無窮多張圖像。此外,Lucid Sonic Dreams 使用 Justin Pinkney 創(chuàng)建庫中的 StyleGAN2 預(yù)訓(xùn)練模型(地址:
https://github.com/justinpinkney/awesome-pretrained-stylegan2) 。

那么這些圖像到底是如何生成的呢?

將輸入饋送至 StyleGAN2 模型(輸入為有 512 個數(shù)字的向量),輸入決定了模型的輸出圖像,因此對輸入向量進行微小更改也將帶來輸出圖像的微小變化。

現(xiàn)在,有趣的部分到了:如果我們從音樂中獲取聲波,從聲波中提取數(shù)值(如振幅)并添加至輸入向量,會發(fā)生什么?

Lucid Sonic Dreams 對視頻每一幀執(zhí)行這些操作,生成脈沖與變換與音樂一致的圖像。

具體而言,利用 Lucid Sonic Dreams 包,音樂控制了 3 個主要視覺組件:脈沖(Pulse)、運動(Motion)和類別(Class)

  • 脈沖指視覺畫面隨著音樂的敲擊性節(jié)奏而「跳動」。從數(shù)學(xué)角度來看,「脈沖」是向輸入向量暫時添加聲波振幅的結(jié)果(即在下一幀中該向量仍是初始向量);
  • 運動指視覺畫面變換的速度。從數(shù)學(xué)上看,它是向輸入向量累積添加振幅(即添加的振幅后續(xù)不會被清零);
  • 類別指生成圖像中物體的標(biāo)簽,例如基于 WikiArt 圖像訓(xùn)練的風(fēng)格中就有 167 個類別(包括梵高、達芬奇、抽象派等)。而這些由音調(diào)進行控制,具體而言,12 個音高分別對應(yīng) 12 個不同類別。這些音高的振幅對傳輸至第二個輸入向量(類別向量)的數(shù)字造成影響,而這由模型生成的對象來決定。

項目作者表示,這個想法受到 Matt Siegelman 的 Deep Music Visualizer 項目的啟發(fā)。目前網(wǎng)上也有一些類似的項目,但 Lucid Sonic Dreams 的獨特之處在于以 Python 包形式實現(xiàn),且允許自定義。

使用 Lucid Sonic Dreams 包,你可以做到這些

Lucid Sonic Dreams 具備極強的易用性和靈活性。用戶可以使用 pip 進行安裝:

然后只需輸入幾行 Python 代碼即可:

  1. from lucidsonicdreams import LucidSonicDream 
  2.  
  3.  
  4. L = LucidSonicDream(song = 'chemical_love.mp3', style = 'abstract photos'
  5. L.hallucinate(file_name = 'chemical_love.mp4'

改變風(fēng)格

運行以下代碼,我們可以查看默認(rèn)可用的風(fēng)格:

  1. from lucidsonicdreams import show_styles 
  2.  
  3.  
  4. show_styles() 

這樣就可以得到一組風(fēng)格名稱,這些風(fēng)格來自 Justin Pinkney 創(chuàng)建的庫。你還可以輸入自己的 StyleGAN 權(quán)重,或者使用其他 GAN 架構(gòu)。

調(diào)整參數(shù)

Lucid Sonic Dreams 包的默認(rèn)設(shè)置很好用,但它實際上有很多參數(shù)——30 多個,不過這些參數(shù)是可以調(diào)整的(參數(shù)詳細(xì)信息參見 Colab 教程)。

哪些參數(shù)最重要呢?我們來看整個視頻生成 pipeline:

首先,對輸入向量進行初始化和插值,作為視頻的「基礎(chǔ)運動」(base motion)。參數(shù) speed_fpm 控制運動的速度,fpm 表示「每分鐘幀數(shù)」,即每分鐘初始化的向量數(shù)。對于每個后續(xù)幀而言,參數(shù) pulse_react, motion_react, and class_react 控制音頻操縱每個對應(yīng)組件的程度。

模型基于這些向量生成圖像后,圖像被傳輸經(jīng)過一系列特效(也對音樂產(chǎn)生反應(yīng))。默認(rèn)情況下,Lucid Sonic Dreams 包具備「contrast」和「flash」特效,可以與音頻的敲擊性節(jié)奏同步。通過設(shè)置 contrast_strength 和 flash_strength 參數(shù),即可進行調(diào)整。使用者還可以創(chuàng)建自定義特效。

以下代碼展示了調(diào)參過程:

  1. L = LucidSonicDream('pancake_feet.mp3', style = 'modern art'
  2. L.hallucinate(file_name = 'pancake_feet.mp4',  
  3.               speed_fpm = 0,  
  4.               motion_react = 0.8,  
  5.               contrast_strength = 0.5,  
  6.               flash_strength = 0.7

使用自己的 StyleGAN 權(quán)重

如果你自己訓(xùn)練過 StyleGAN,或者在網(wǎng)上獲得了一些模型權(quán)重,你可以選擇將文件路徑傳輸至這些權(quán)重,作為風(fēng)格參數(shù)的值。

例如,文章開頭的視頻使用的是 Jeremy Torman 訓(xùn)練的模型。生成視頻所用代碼如下所示:

  1. L = LucidSonicDream(song = 'raspberry.mp3', style = 'VisionaryArt.pkl'
  2. L.hallucinate(file_name = 'raspberry.mp4',  
  3.               pulse_react = 1.2,  
  4.               motion_react = 0.7,  
  5.               contrast_strength = 0.5,  
  6.               flash_strength = 0.5

使用單獨的音軌

這個包還可以用作音樂可視化工具,使用者可以上傳單獨的音軌,進而控制 Pulse、Motion、Class、Contrast 和 Flash。如果你想使這些視覺組件與特定的樂器同步,使用這個包是不錯的選擇。你還可以利用這些單獨的音軌自定義特效。

以下是示例代碼:

  1. L = LucidSonicDream(song = 'lucidsonicdreams_main.mp3'
  2.                     pulse_audio = 'lucidsonicdreams_pulse.mp3'
  3.                     class_audio = 'lucidsonicdreams_class.mp3'
  4.                     style = 'wikiart'
  5.  
  6.  
  7. L.hallucinate('lucidsonicdreams.mp4',  
  8.               pulse_react = 0.25
  9.               motion_react = 0
  10.               classes = [1,5,9,16,23,27,28,30,50,68,71,89], 
  11.               dominant_classes_first = True, 
  12.               class_shuffle_seconds = 8
  13.               class_smooth_seconds = 4
  14.               class_pitch_react = 0.2
  15.               contrast_strength = 0.3

自定義特效

除了內(nèi)置的「Contrast」和「Flash」特效外,Lucid Sonic Dreams 包還允許用戶自定義創(chuàng)建特效。用戶只需創(chuàng)建一個包含至少以下 3 個參數(shù)的函數(shù)即可:array,表示應(yīng)用特效的圖像;strength,決定對音樂的反應(yīng)強度;amplitude 表示在任意給定時間點的音量。之后,將該自定義函數(shù)傳輸至 EffectsGenerator 對象。

作者用以下代碼進行了試驗,其使用的是 scikit-image 的 swirl 特效:

  1. import numpy as np  
  2. from skimage.transform import swirl 
  3. from lucidsonicdreams import EffectsGenerator 
  4.  
  5.  
  6.  
  7.  
  8. def swirl_func(array, strength, amplitude): 
  9.   swirled_image = swirl(array,  
  10.                         rotation = 0,  
  11.                         strength = 100 * strength * amplitude, 
  12.                         radius=650
  13.   return (swirled_image*255).astype(np.uint8) 
  14.  
  15.  
  16. swirl_effect = EffectsGenerator(swirl_func, 
  17.                                 audio = 'unfaith.mp3',  
  18.                                 strength = 0.2,  
  19.                                 percussive = False) 
  20.  
  21.  
  22. L = LucidSonicDream('unfaith.mp3'
  23.                     style = 'textures'
  24.  
  25.  
  26. L.hallucinate('unfaith.mp4'
  27.               motion_react = 0.15
  28.               speed_fpm = 2
  29.               pulse_react = 1.5
  30.               contrast_strength = 1
  31.               flash_strength = 1,  
  32.               custom_effects = [swirl_effect]) 
  33.  
  34.  
  35. files.download("unfaith.mp4"

使用其他 GAN 架構(gòu)

你還可以使用其他 GAN 架構(gòu)。只需定義一個函數(shù),該函數(shù)以一組噪聲向量和類別向量(NumPy 數(shù)組)作為輸入,輸出一組 Pillow 圖像。事實上,該函數(shù)甚至不需要使用 GAN,它可以是能夠?qū)⑤斎胂蛄哭D(zhuǎn)換成圖像的任意函數(shù)。

下列代碼使用 BigGAN 的 PyTorch 實現(xiàn)復(fù)現(xiàn)了 Deep Music Visualizer:

  1. from pytorch_pretrained_biggan import BigGAN, convert_to_images 
  2. import torch 
  3.  
  4.  
  5. biggan = BigGAN.from_pretrained('biggan-deep-512'
  6. biggan.to('cuda:0'
  7.  
  8.  
  9. def biggan_func(noise_batch, class_batch): 
  10.   noise_tensor = torch.from_numpy(noise_batch).cuda() 
  11.   class_tensor = torch.from_numpy(class_batch).cuda() 
  12.   with torch.no_grad(): 
  13.     output_tensor = biggan(noise_tensor.float(), class_tensor.float(), truncation = 1
  14.   return convert_to_images(output_tensor.cpu()) 
  15.  
  16.  
  17. L = LucidSonicDream('sea_of_voices_inst.mp3'
  18.                     style = biggan_func,  
  19.                     input_shape = 128,  
  20.                     num_possible_classes = 1000
  21.  
  22.  
  23. L.hallucinate('sea_of_voices.mp4'
  24.               output_audio = 'sea_of_voices.mp3'
  25.               speed_fpm = 3
  26.               classes = [131422243018499100134143393394], 
  27.               class_shuffle_seconds = 10,  
  28.               class_shuffle_strength = 0.1
  29.               class_complexity = 0.5
  30.               class_smooth_seconds = 4
  31.               motion_react = 0.35
  32.               flash_strength = 1
  33.               contrast_strength = 1

 【編輯推薦】

 

責(zé)任編輯:張燕妮 來源: 機器之心Pro
相關(guān)推薦

2021-03-01 14:05:50

機器學(xué)習(xí)人工智能計算機

2023-11-01 10:36:19

2020-03-30 16:00:46

開源技術(shù) 趨勢

2024-09-03 08:26:59

Spring格式模板

2023-12-18 08:57:22

GAN網(wǎng)絡(luò)

2023-04-02 14:13:52

2021-11-02 09:25:00

AI 數(shù)據(jù)人工智能

2022-01-07 10:13:07

Tkinter代碼Kivy

2012-01-04 09:50:07

程序員

2020-08-03 09:48:04

Python 機器學(xué)習(xí)代碼

2022-04-19 07:45:40

代碼Python美圖秀秀

2019-08-07 15:11:27

iPad電腦集線器

2021-07-23 08:00:00

深度學(xué)習(xí)框架模型

2022-08-14 16:15:52

Python機器學(xué)習(xí)大數(shù)據(jù)

2021-02-23 07:01:24

js小游戲技術(shù)

2021-08-31 23:09:50

微信功能技巧

2021-12-30 10:11:38

模型人工智能深度學(xué)習(xí)

2019-11-08 09:20:57

代碼開發(fā)工具

2021-07-20 10:16:24

人工智能自然語言技術(shù)

2024-02-20 21:49:29

AI前端代碼
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 久久久久久久久久久久久9999 | 无码一区二区三区视频 | 亚洲精品久久久一区二区三区 | 国产精品一码二码三码在线 | 午夜不卡福利视频 | 亚洲成人一区二区 | 国产精品久久久久久久久 | 久久久91精品国产一区二区精品 | 日韩在线看片 | 特级黄一级播放 | 中文字幕亚洲精品 | 一二三在线视频 | 欧美日韩精品一区二区三区视频 | 久久国产精品久久久久久久久久 | 一区二区av在线 | 亚洲精选久久 | 日韩一区二区黄色片 | 亚洲中午字幕 | 天堂综合 | 九九伊人sl水蜜桃色推荐 | 欧美在线资源 | a级大片| 国产最新精品视频 | 久久精品网 | 久久久网 | 欧美精品久久一区 | 91超碰在线 | 成人二区三区 | 久久在视频 | 国产精品亚洲一区二区三区在线观看 | 神马影院一区二区三区 | 综合久久av| chinese中国真实乱对白 | 一区二区三区成人 | 在线成人一区 | 99在线播放 | 亚洲国产精品一区在线观看 | 欧美精选一区二区 | 国产一区久久 | 精品欧美乱码久久久久久 | 日韩精品在线一区二区 |