python人工智能实例代码_人工智能python代码实现魔幻换天视频特效

魔幻换天视频:

python实现魔幻换天特效,特效前,特效后对比视频

d40444eac1995595d39de10547a00fa4.gif

视频前后特效对比图

前几期的视频,我们分享了python代码实现的魔幻换天的视频特效,如何使用python代码实现?本期文章我们简单介绍一下工作原理。

225b200153257b0c1821bf9e7c36fef2.png

视频特效对比前后

首先,需要到如下链接下载整个项目的源码:

github.com/jiupinjia/SkyAR

下载完成后,解压后的文件目录如下:

fc43c824690f9d2324ba8cf702702e3e.png

源代码目录文件

然后到如下地址下载预训练模型:

drive.google.com/file/d/1COMROzwR4R_7mym6DL9LXhHQlJmJaV0J/view?usp=sharing
模型名称:checkpoints_G_coord_resnet50.zip

下载完成后,解压到skyAR的当前目录中,项目中多一个文件夹checkpoints_G_coord_resnet50,目录如下:

ba25bfd8e140f689413cbab613f23c0a.png

需要加载预训练模型

然后,需要安装requirement里面要求的第三方工具包:

如下第三方包是项目需要的包,需要安装到自己的电脑里面,否则代码无法运行
matplotlib
scikit-image
scikit-learn
scipy
numpy
torch
torchvision
opencv-python
opencv-contrib-python

4917a83c2657ca9a06dffb0a25017cbe.png

特效前后对比图

待以上准备工作完成后,便可以简单修改一下源码进行运行代码,这里需要要求你已经安装好了cuda版本的pytorch或者CPU版本的pytorch,若电脑里面没有GPU可以使用,可以直接使用CPU进行代码的运行,代码修改如下:

首先打开skymagic.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')

05702739d6b0c80f99fac10c66c2ab43.png

代码截图

更改后代码如下:我们注销了2,12,16-18行的代码,并修改13行代码为device = torch.device( "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')

07d584301ef38a140ca9d33fcfb0db47.png

代码截图

修改完成后,需要修改一下main 函数里面的代码

修改前代码的第188行使用parser来进行配置文件的读取

if __name__ == '__main__':

config_path = parser.parse_args().path
args = utils.parse_config(config_path)
sf = SkyFilter(args)
sf.run()

8b2161530ac3f3bae504c203c891ee64.png

代码截图

修改后,我们可以直接配置config配置文件下的配置文件

if __name__ == '__main__':

config_path = 'config/config-canyon-sunset.json'
args = utils.parse_config(config_path)
sf = SkyFilter(args)
sf.run()

b4bdb942d99de995508f37d1b1c620c2.png

代码截图

配置文件如下:
{
"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
}

"ckptdir": "./checkpoints_G_coord_resnet50这里是预训练好的模型

"input_mode": "video",这里是输入的格式,当然也可以输入一张照片,照片设置为seq

"datadir": "./test_videos/canyon.mp4",这里是需要处理的视频地址

"skybox": "rainy.jpg",这里是添加特效的图片或者视频

0b1603c579d85f401b89b8b16e0493f4.png

代码截图

其他参数可以默认设置

最后,直接在本目录文件夹下cmd对话框中输入:

python skymagic.py

便可以看到模型实时渲染的特效视频,代码运行完成,会在当前目录生成合成后的视频

fc21863bc5101b26d4f132e27cb810ff.png

视频特效对比

当然,你也可以使用自己的数据,进行模型的训练,模型的训练使用train.py代码,详细步骤可以参考文章中的链接进行学习,本文只是简单介绍一下代码的基本使用,其中涉及的pytorch人工智能神经网络的搭建,模型的训练等知识,也可以参考往期关于pytorch等方面的知识,后期我们也会分享此方面的知识,关于pytorch不同版本的安装说明,pytorch官网有详细的介绍可以参考

045eb25a90f94cefbc357b1726665701.png

特效视频截图

最后展示几张特效后的照片,有关视频可以查看文章开头的2个视频链接,进行视频的观看

e5a47a724aea978a30a2b95face7ef68.png

视频特效

06ce05f3eb6a2d067ec6c0eccb803770.png

视频特效

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值