CV之IA:利用人工智能算法实现图像动画(以让古代皇帝画像以及古代四大美女画像动起来-来模仿偶像胡歌剧中角色表情动作为例-照片嗨起来)案例应用
CV之IA:利用人工智能算法实现图像动画(以让古代皇帝画像以及古代四大美女画像动起来-来模仿偶像胡歌剧中角色表情动作为例-照片嗨起来)案例应用
导读:本论文来自NeurIPS2019,该算法中主要采用一阶运动模型的思想,用一组自学习的关键点和局部仿射变换,建立了复杂运动模型。模型由运动估计模块和图像生成模块两个主要部分组成。首先进行关键点检测,然后根据关键点,进行运动估计,最后使用图像生成模块,生成最终效果。
额,哈哈,不好意思了,又拿我的偶像胡歌下手啦,视频截取来源偶像胡歌在《猎场》中的一角色。
目录
利用人工智能算法让经典图片根据自定义动作嗨起来(将一张静态人像图片转为带表情动作视频)
相关论文
输出结果
利用人工智能算法让古代皇帝画像动起来(模仿偶像胡歌《猎场》剧中角色表情动作)
利用人工智能算法让古代四大美女画像动起来
实现代码
依赖环境
导出当前依赖环境txt文档
作品视频链接
利用人工智能算法,让古代皇帝画像动起来(模仿偶像胡歌《猎场》剧中角色表情动作)
利用人工智能算法让古代美女《西施、王昭君、貂蝉、杨玉环四大美女领衔》画像动起来
利用人工智能算法让经典图片根据自定义动作嗨起来(将一张静态人像图片转为带表情动作视频)
相关论文
Paper:《First Order Motion Model for Image Animation》翻译与解读
输出结果
利用人工智能算法让古代皇帝画像动起来(模仿偶像胡歌《猎场》剧中角色表情动作)
利用人工智能算法让古代四大美女画像动起来
实现代码
import imageio
import torch
from tqdm import tqdm
from animate import normalize_kp
from demo import load_checkpoints
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as animation
from skimage import img_as_ubyte
from skimage.transform import resize
import cv2
import os
import argparseap = argparse.ArgumentParser()
ap.add_argument("-i", "--input_image", required=True,help="Path to image to animate")
ap.add_argument("-c", "--checkpoint", required=True,help="Path to checkpoint")
ap.add_argument("-v","--input_video", required=False, help="Path to video input")args = vars(ap.parse_args())print("[INFO] loading source image and checkpoint...")
source_path = args['input_image']
checkpoint_path = args['checkpoint']
if args['input_video']:video_path = args['input_video']
else:video_path = None
source_image = imageio.imread(source_path)
source_image = resize(source_image,(256,256))[..., :3]generator, kp_detector = load_checkpoints(config_path='config/vox-256.yaml', checkpoint_path=checkpoint_path)if not os.path.exists('output'):os.mkdir('output')relative=True
adapt_movement_scale=True
cpu=Falseif video_path:cap = cv2.VideoCapture(video_path) print("[INFO] Loading video from the given path")
else:cap = cv2.VideoCapture(0)print("[INFO] Initializing front camera...")fourcc = cv2.VideoWriter_fourcc(*'MJPG')
out1 = cv2.VideoWriter('output/Animation_HuGe_02.avi', fourcc, 12, (256*3 , 256), True)cv2_source = cv2.cvtColor(source_image.astype('float32'),cv2.COLOR_BGR2RGB)
with torch.no_grad() :predictions = []source = torch.tensor(source_image[np.newaxis].astype(np.float32)).permute(0, 3, 1, 2)if not cpu:source = source.cuda()kp_source = kp_detector(source)count = 0while(True):ret, frame = cap.read()frame = cv2.flip(frame,1)if ret == True:if not video_path:x = 143y = 87w = 322h = 322 frame = frame[y:y+h,x:x+w]frame1 = resize(frame,(256,256))[..., :3]if count == 0:source_image1 = frame1source1 = torch.tensor(source_image1[np.newaxis].astype(np.float32)).permute(0, 3, 1, 2)kp_driving_initial = kp_detector(source1)frame_test = torch.tensor(frame1[np.newaxis].astype(np.float32)).permute(0, 3, 1, 2)driving_frame = frame_testif not cpu:driving_frame = driving_frame.cuda()kp_driving = kp_detector(driving_frame)kp_norm = normalize_kp(kp_source=kp_source,kp_driving=kp_driving,kp_driving_initial=kp_driving_initial, use_relative_movement=relative,use_relative_jacobian=relative, adapt_movement_scale=adapt_movement_scale)out = generator(source, kp_source=kp_source, kp_driving=kp_norm)predictions.append(np.transpose(out['prediction'].data.cpu().numpy(), [0, 2, 3, 1])[0])im = np.transpose(out['prediction'].data.cpu().numpy(), [0, 2, 3, 1])[0]im = cv2.cvtColor(im,cv2.COLOR_RGB2BGR)joinedFrame = np.concatenate((cv2_source,im,frame1),axis=1)cv2.imshow('Test',joinedFrame)out1.write(img_as_ubyte(joinedFrame))count += 1if cv2.waitKey(20) & 0xFF == ord('q'):breakelse:breakcap.release()out1.release()cv2.destroyAllWindows()
依赖环境
C:\Users\Administrator>conda activate F:\File_Anaconda\project_py37\envs(F:\File_Anaconda\project_py37\envs) C:\Users\Administrator>conda list
# packages in environment at F:\File_Anaconda\project_py37\envs:
#
# Name Version Build Channel
attrs 19.3.0 pypi_0 pypi
backcall 0.1.0 pypi_0 pypi
blas 1.0 mkl https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
bleach 3.1.5 pypi_0 pypi
ca-certificates 2021.10.26 haa95532_2 http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
certifi 2021.10.8 py37haa95532_0 http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
cffi 1.11.5 pypi_0 pypi
cloudpickle 0.5.3 pypi_0 pypi
colorama 0.4.3 pypi_0 pypi
cpuonly 2.0 0 https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch
cudatoolkit 8.0 4 https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
cycler 0.10.0 pypi_0 pypi
dask 0.18.2 pypi_0 pypi
decorator 4.3.0 pypi_0 pypi
defusedxml 0.6.0 pypi_0 pypi
entrypoints 0.3 pypi_0 pypi
freetype 2.10.4 hd328e21_0 https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
imageio 2.3.0 pypi_0 pypi
importlib-metadata 1.6.0 pypi_0 pypi
intel-openmp 2021.4.0 haa95532_3556 https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
ipykernel 5.2.1 pypi_0 pypi
ipython 7.14.0 pypi_0 pypi
ipython-genutils 0.2.0 pypi_0 pypi
jedi 0.17.0 pypi_0 pypi
jinja2 2.11.2 pypi_0 pypi
jpeg 9d h2bbff1b_0 https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
jsonschema 3.2.0 pypi_0 pypi
jupyter-client 6.1.3 pypi_0 pypi
jupyter-core 4.6.3 pypi_0 pypi
kiwisolver 1.0.1 pypi_0 pypi
libpng 1.6.37 h2a8f88b_0 https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
libtiff 4.2.0 hd0e1b90_0 https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
libuv 1.40.0 he774522_0 https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
libwebp 1.2.0 h2bbff1b_0 https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
lz4-c 1.9.3 h2bbff1b_1 https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
markupsafe 1.1.1 pypi_0 pypi
matplotlib 2.2.2 pypi_0 pypi
mistune 0.8.4 pypi_0 pypi
mkl 2021.4.0 haa95532_640 https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
mkl-service 2.4.0 py37h2bbff1b_0 https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
mkl_fft 1.3.1 py37h277e83a_0 https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
mkl_random 1.2.2 py37hf11a4ad_0 https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
nbconvert 5.6.1 pypi_0 pypi
nbformat 5.0.6 pypi_0 pypi
networkx 2.1 pypi_0 pypi
ninja 1.10.2 py37h559b2a2_3 https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
notebook 6.0.3 pypi_0 pypi
numpy 1.15.0 pypi_0 pypi
olefile 0.46 py37_0 https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
opencv-python 4.2.0.34 pypi_0 pypi
openssl 1.1.1l h2bbff1b_0 http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
packaging 20.4 pypi_0 pypi
pandas 0.23.4 pypi_0 pypi
pandocfilters 1.4.2 pypi_0 pypi
parso 0.7.0 pypi_0 pypi
pickleshare 0.7.5 pypi_0 pypi
pillow 5.2.0 pypi_0 pypi
pip 21.2.4 py37haa95532_0 http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
prometheus-client 0.7.1 pypi_0 pypi
prompt-toolkit 3.0.5 pypi_0 pypi
pycparser 2.18 pypi_0 pypi
pygit 0.1 pypi_0 pypi
pygments 2.6.1 pypi_0 pypi
pyparsing 2.2.0 pypi_0 pypi
pyrsistent 0.16.0 pypi_0 pypi
python 3.7.11 h6244533_0 http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
python-dateutil 2.7.3 pypi_0 pypi
pytorch 1.0.1 py3.7_cuda80_cudnn7_1 https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch
pytorch-mutex 1.0 cpu https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch
pytz 2018.5 pypi_0 pypi
pywavelets 0.5.2 pypi_0 pypi
pywin32 227 pypi_0 pypi
pywinpty 0.5.7 pypi_0 pypi
pyyaml 5.1 pypi_0 pypi
pyzmq 19.0.1 pypi_0 pypi
scikit-image 0.14.0 pypi_0 pypi
scikit-learn 0.19.2 pypi_0 pypi
scipy 1.1.0 pypi_0 pypi
send2trash 1.5.0 pypi_0 pypi
setuptools 58.0.4 py37haa95532_0 http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
six 1.11.0 pypi_0 pypi
sqlite 3.36.0 h2bbff1b_0 http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
terminado 0.8.3 pypi_0 pypi
testpath 0.4.4 pypi_0 pypi
tk 8.6.11 h2bbff1b_0 https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
toolz 0.9.0 pypi_0 pypi
torchvision 0.2.2 py_3 https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch
tornado 6.0.4 pypi_0 pypi
tqdm 4.24.0 pypi_0 pypi
traitlets 4.3.3 pypi_0 pypi
typing_extensions 3.10.0.2 pyh06a4308_0 https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
vc 14.2 h21ff451_1 http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
vs2015_runtime 14.27.29016 h5e58377_2 http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
wcwidth 0.1.9 pypi_0 pypi
webencodings 0.5.1 pypi_0 pypi
wheel 0.37.0 pyhd3eb1b0_1 http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
wincertstore 0.2 py37haa95532_2 http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
xz 5.2.5 h62dcd97_0 https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
zipp 3.1.0 pypi_0 pypi
zlib 1.2.11 h62dcd97_4 https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
zstd 1.4.9 h19a0ad4_0 https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
导出当前依赖环境txt文档
F:\File_Anaconda\project_py37\RealTimeImageAnimation>conda activate F:\File_Anaconda\project_py37\envs(F:\File_Anaconda\project_py37\envs) F:\File_Anaconda\project_py37\RealTimeImageAnimation>conda list -e > requirements2020.txt# This file may be used to create an environment using:
# $ conda create --name <env> --file <this file>
# platform: win-64
attrs=19.3.0=pypi_0
backcall=0.1.0=pypi_0
blas=1.0=mkl
bleach=3.1.5=pypi_0
ca-certificates=2021.10.26=haa95532_2
certifi=2021.10.8=py37haa95532_0
cffi=1.11.5=pypi_0
cloudpickle=0.5.3=pypi_0
colorama=0.4.3=pypi_0
cpuonly=2.0=0
cudatoolkit=8.0=4
cycler=0.10.0=pypi_0
dask=0.18.2=pypi_0
decorator=4.3.0=pypi_0
defusedxml=0.6.0=pypi_0
entrypoints=0.3=pypi_0
freetype=2.10.4=hd328e21_0
imageio=2.3.0=pypi_0
importlib-metadata=1.6.0=pypi_0
intel-openmp=2021.4.0=haa95532_3556
ipykernel=5.2.1=pypi_0
ipython=7.14.0=pypi_0
ipython-genutils=0.2.0=pypi_0
jedi=0.17.0=pypi_0
jinja2=2.11.2=pypi_0
jpeg=9d=h2bbff1b_0
jsonschema=3.2.0=pypi_0
jupyter-client=6.1.3=pypi_0
jupyter-core=4.6.3=pypi_0
kiwisolver=1.0.1=pypi_0
libpng=1.6.37=h2a8f88b_0
libtiff=4.2.0=hd0e1b90_0
libuv=1.40.0=he774522_0
libwebp=1.2.0=h2bbff1b_0
lz4-c=1.9.3=h2bbff1b_1
markupsafe=1.1.1=pypi_0
matplotlib=2.2.2=pypi_0
mistune=0.8.4=pypi_0
mkl=2021.4.0=haa95532_640
mkl-service=2.4.0=py37h2bbff1b_0
mkl_fft=1.3.1=py37h277e83a_0
mkl_random=1.2.2=py37hf11a4ad_0
nbconvert=5.6.1=pypi_0
nbformat=5.0.6=pypi_0
networkx=2.1=pypi_0
ninja=1.10.2=py37h559b2a2_3
notebook=6.0.3=pypi_0
numpy=1.15.0=pypi_0
olefile=0.46=py37_0
opencv-python=4.2.0.34=pypi_0
openssl=1.1.1l=h2bbff1b_0
packaging=20.4=pypi_0
pandas=0.23.4=pypi_0
pandocfilters=1.4.2=pypi_0
parso=0.7.0=pypi_0
pickleshare=0.7.5=pypi_0
pillow=5.2.0=pypi_0
pip=21.2.4=py37haa95532_0
prometheus-client=0.7.1=pypi_0
prompt-toolkit=3.0.5=pypi_0
pycparser=2.18=pypi_0
pygit=0.1=pypi_0
pygments=2.6.1=pypi_0
pyparsing=2.2.0=pypi_0
pyrsistent=0.16.0=pypi_0
python=3.7.11=h6244533_0
python-dateutil=2.7.3=pypi_0
pytorch=1.0.1=py3.7_cuda80_cudnn7_1
pytorch-mutex=1.0=cpu
pytz=2018.5=pypi_0
pywavelets=0.5.2=pypi_0
pywin32=227=pypi_0
pywinpty=0.5.7=pypi_0
pyyaml=5.1=pypi_0
pyzmq=19.0.1=pypi_0
scikit-image=0.14.0=pypi_0
scikit-learn=0.19.2=pypi_0
scipy=1.1.0=pypi_0
send2trash=1.5.0=pypi_0
setuptools=58.0.4=py37haa95532_0
six=1.11.0=pypi_0
sqlite=3.36.0=h2bbff1b_0
terminado=0.8.3=pypi_0
testpath=0.4.4=pypi_0
tk=8.6.11=h2bbff1b_0
toolz=0.9.0=pypi_0
torchvision=0.2.2=py_3
tornado=6.0.4=pypi_0
tqdm=4.24.0=pypi_0
traitlets=4.3.3=pypi_0
typing_extensions=3.10.0.2=pyh06a4308_0
vc=14.2=h21ff451_1
vs2015_runtime=14.27.29016=h5e58377_2
wcwidth=0.1.9=pypi_0
webencodings=0.5.1=pypi_0
wheel=0.37.0=pyhd3eb1b0_1
wincertstore=0.2=py37haa95532_2
xz=5.2.5=h62dcd97_0
zipp=3.1.0=pypi_0
zlib=1.2.11=h62dcd97_4
zstd=1.4.9=h19a0ad4_0
CV之IA:利用人工智能算法实现图像动画(以让古代皇帝画像以及古代四大美女画像动起来-来模仿偶像胡歌剧中角色表情动作为例-照片嗨起来)案例应用相关推荐
- 利用MSER算法提取图像区域(车牌区域)的OpenCV代码~
图像处理开发需求.图像处理接私活挣零花钱,请加微信/QQ 2487872782 图像处理开发资料.图像处理技术交流请加QQ群,群号 271891601 我的博客中前面已经写了两种方法来实现车牌区域的提 ...
- 利用k-means算法实现图像自动色彩量化
图像色彩量化 请参考:图像色彩量化讲解及实现 k-means算法 请参考:k-means算法讲解及实现 算法流程: 从图像中随机选取K个RGB分量(K是k-means的类别数) 将图像中的像素分配到颜 ...
- python opencv 利用 GrabCut 算法(opencv已经实现)从图像中分离出前景
# 利用GrabCut算法从图像中分离出前景 import numpy as np import cv2 as cv from matplotlib import pyplot as pltimg = ...
- AIBlockChain:“知名博主独家讲授”人工智能创新应用竞赛【精选实战作品】之《基于计算机视觉、自然语言处理、区块链和爬虫技术的智能会议系统》软件系统案例的界面简介、功能介绍分享之二、会中智能
AI&BlockChain:"知名博主独家讲授"人工智能创新应用竞赛[精选实战作品]之<基于计算机视觉.自然语言处理.区块链和爬虫技术的智能会议系统>软件系统案 ...
- 人工智能算法的可解释性方法研究
来源:数学与人工智能 摘要 以深度学习为代表的人工智能技术在信息领域的应用,极大地提高了信息的利用效率和挖掘价值,深刻的影响了各领域的业务形态,同时也引发了监管部门和用户对这一新技术运用中出现的 &q ...
- 用人工智能算法检测皮肤病变的方式训练医生
十几年来,维也纳医科大学教授的皮肤科医生哈拉尔德·基特勒一直用医学经验教授学生如何诊断皮肤病变,今年下学期开始,他将加入利用人工智能算法诊断皮肤病变的课程.这一算法系统来源于基特勒帮助组织过的一场比赛 ...
- 深思:外卖背后的人工智能算法揭秘
知识积累带来规模递增,规模递增引发市场集中. 当一个行业可以以"流水线"的形式固定下来后,这个行业中,人的价值就被越来越弱化与微不足道,从身体.动作.时间.精力等,都被重复的机器与 ...
- 【图像隐写】基于LSB+DWT+DCT三种算法实现图像和音频水印嵌入提取含Matlab源码
1 简介 基于LSB+DWT+DCT三种算法实现图像和音频水印嵌入提取. 1.1 LSB算法 根据LSB算法简单易实现的特点,结合在图像置乱技术中很好特性的Arnold变换.利用变化产生影子图像.通过 ...
- 识花君:一款利用人工智能识别花草的小程序
识花君是一款利用人工智能识别花草的小程序.6000多种常见花草,拍照上传,立刻识别.识花君还可以把你的照片制作成精美卡片,保存欣赏. 「识花君」微信小程序是由腾讯"识你所见"AI产 ...
最新文章
- 面试造飞机系列:面对Redis持久化连环Call,你还顶得住吗?
- Linux下 memcached安装以及启动
- Github工程师为MySQL高可用性采用了新架构
- mysql 索引 normal_mysql索引类型 normal, unique, full text
- 硬刚一周,3W字总结,一年的经验告诉你如何准备校招,拿大厂offer
- UCMap移动GIS 时空地图GIS
- 红米手机 android 版本,#MIUI#关于红米手机4高配版 Android版本适配的说明【miui9吧】_百度贴吧...
- Hadoop系列之FieldSelectionMapReduce用法
- 死磕算法!35 篇算法设计实例+6 本超赞好书打包送你
- linux v4l2 示例程序,linux驱动由浅入深系列:camera驱动之二(基于高通平台的V4L2结构及代码分析)...
- 转Spring+Hibernate+EHcache配置(二)
- 同步调用、异步调用和回调函数
- Atitit.获取某个服务 网络邻居列表 解决方案
- w ndows7运行命令,如何打开Win7命令提示符cmd.exe窗口
- 德标螺纹规格对照表_德标 国标,国际标准中英文对照表
- C++ 头文件「ctype.h」里的:isalpha、islower、isupper、isalnum等函数
- 解决nginx 503 Service Temporarily Unavailable 方法
- matlab length什么意思,matlab中的length什么意思?如何应用?
- java获取微信token_Java微信公众平台开发(六)--微信开发中的token获取
- 使用OpenWrt创建子网作为二级路由