魔幻換天視頻:
代碼實現魔幻換天特效
特效前后對比圖
實現魔幻換天特效,特效前,特效后對比視頻
視頻前后特效對比圖
前幾期的視頻用代碼做視頻,我們分享了代碼實現的魔幻換天的視頻特效,如何使用代碼實現?本期文章我們簡單介紹一下工作原理。
視頻特效對比前后
首先,需要到如下鏈接下載整個項目的源碼:
github.com/jiupinjia/SkyAR
下載完成后,解壓后的文件目錄如下:
源代碼目錄文件
然后到如下地址下載預訓練模型:
drive.google.com/file/d/1COMROzwR4R_7mym6DL9LXhHQlJmJaV0J/view?usp=sharing
模型名稱:checkpoints_G_coord_resnet50.zip
下載完成后,解壓到skyAR的當前目錄中,項目中多一個文件夾,目錄如下:
需要加載預訓練模型
然后,需要安裝里面要求的第三方工具包:
如下第三方包是項目需要的包,需要安裝到自己的電腦里面,否則代碼無法運行

matplotlib
scikit-image
scikit-learn
scipy
numpy
torch
torchvision
opencv-python
opencv-contrib-python
特效前后對比圖
待以上準備工作完成后,便可以簡單修改一下源碼進行運行代碼,這里需要要求你已經安裝好了cuda版本的或者CPU版本的,若電腦里面沒有GPU可以使用,可以直接使用CPU進行代碼的運行,代碼修改如下:
首先打開.py文件,更改前代碼如下:
import numpy as np
import matplotlib.pyplot as plt
import cv2
import os
import glob
import argparse
from networks import *
from skyboxengine import *
import utils

import torch
device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")
parser = argparse.ArgumentParser(description='SKYAR')
parser.add_argument('--path', type=str, default='./config/config-canyon-jupiter.json', metavar='str',
help='configurations')
代碼截圖
更改后代碼如下:我們注銷了2,12,16-18行的代碼,并修改13行代碼為 = torch.( "cpu"),這里修改的意思是使用CPU運行代碼,若你電腦上面已經安裝好了cuda,可以忽略此處的修改
import numpy as np
import matplotlib.pyplot as plt
import cv2
import os
import glob
#import argparse
from networks import *
from skyboxengine import *
import utils
import torch
device = torch.device( "cpu")

#parser = argparse.ArgumentParser(description='SKYAR')
#parser.add_argument('--path', type=str, default='./config/config-canyon-jupiter.json', metavar='str',
# help='configurations')
代碼截圖
修改完成后,需要修改一下main 函數里面的代碼
修改前代碼的第188行使用來進行配置文件的讀取
if __name__ == '__main__':
config_path = parser.parse_args().path
args = utils.parse_config(config_path)
sf = SkyFilter(args)
sf.run()
代碼截圖
修改后,我們可以直接配置配置文件下的配置文件
if __name__ == '__main__':
config_path = 'config/config-canyon-sunset.json'
args = utils.parse_config(config_path)
sf = SkyFilter(args)

sf.run()
代碼截圖
配置文件如下:
{
"net_G": "coord_resnet50",
"ckptdir": "./checkpoints_G_coord_resnet50",
"input_mode": "video",
"datadir": "./test_videos/canyon.mp4",
"skybox": "rainy.jpg",
"in_size_w": 384,
"in_size_h": 384,
"out_size_w": 845,
"out_size_h": 480,
"skybox_cernter_crop": 0.5,
"auto_light_matching": false,
"relighting_factor": 0.6,
"recoloring_factor": 0.5,
"halo_effect": true,

"output_dir": "./eval_output",
"save_jpgs": false
}
"": "./這里是預訓練好的模型
"": "video",這里是輸入的格式用代碼做視頻,當然也可以輸入一張照片,照片設置為seq
"": ".//.mp4",這里是需要處理的視頻地址
"": "rainy.jpg",這里是添加特效的圖片或者視頻
代碼截圖
其他參數可以默認設置
最后,直接在本目錄文件夾下cmd對話框中輸入:
python skymagic.py
便可以看到模型實時渲染的特效視頻,代碼運行完成,會在當前目錄生成合成后的視頻
視頻特效對比
當然,你也可以使用自己的數據,進行模型的訓練,模型的訓練使用train.py代碼,詳細步驟可以參考文章中的鏈接進行學習,本文只是簡單介紹一下代碼的基本使用,其中涉及的人工智能神經網絡的搭建,模型的訓練等知識,也可以參考往期關于等方面的知識,后期我們也會分享此方面的知識,關于不同版本的安裝說明,官網有詳細的介紹可以參考
特效視頻截圖
最后展示幾張特效后的照片,有關視頻可以查看文章開頭的2個視頻鏈接,進行視頻的觀看
視頻特效
視頻特效