如何让利用Python+AI使静态图片动起来

目录
  • 前言:
  • 1. 运行项目
  • 2. Python API

前言:

这种技术一般是基于的GAN(生成对抗网络)来实现,今天我给大家分享一个开源项目,能够复现静态图片动起来效果,可以做些有趣的项目,也可以怀念故人。

大家在刷短视频的时候有没有刷到这样的视频,视频里一张静态的人物图片能动起来,如:歪歪头、眨眨眼。

类似于下面这种效果:

最左侧的人物是原始的动作,上面是静态图片。通过AI技术便可以让最左侧人物的动作运用到上面的静态图片上,从而让张图都可以做出相同的动作。

这种技术一般是基于的GAN(生成对抗网络)来实现,今天我给大家分享一个开源项目,能够复现上面的效果,可以做些有趣的项目,也可以怀念故人。

1. 运行项目

项目地址:https://github.com/AliaksandrSiarohin/first-order-model

首先,git clone将项目下载到本地,进入项目安装依赖。

git clone https://github.com/AliaksandrSiarohin/first-order-model.git
cd first-order-model
pip install -r requirements.txt

然后,在项目首页Pre-trained checkpoint​标题下,找到模型下载链接,下载模型文件,模型有很多,我用的是vox-adv-cpk.pth.tar。

准备好模型文件后,在项目根目录下执行下面命令即可。

python demo.py  \
  --config config/vox-adv-256.yaml \
  --driving_video src_video.mp4 \
  --source_image src_img.jpg \
  --checkpoint weights/vox-adv-cpk.pth.tar

解释下参数:

  • --config:模型配置文件,在源文件中有
  • --driving_video:提供动作的视频
  • --source_image:需要加动效的静态图片
  • --checkpoint:刚刚下载的模型文件

运行完成后,会看到如下输入。

该项目使用PyTorch​搭建神经网络,支持GPU和CPU运行,所以如果你的电脑只有CPU,运行会比较慢。

我是在CPU​下运行的,从上图可以看到,driving_video只有 31 帧。如果你也是CPU​运行,最好控制driving_video视频的时长,不然运行时长会比较长。

有了该项目,可以自己做些比较有意思的尝试。

2. Python API

上面教大家按照官网在命令行运行该项目。

有些朋友可能想在Python项目中调用,所以我在demo.py中抽取了核心代码,封装了一个Pyhton API。

有需要的朋友可以下载这个文件,放到与first-order-model同一级的目录下,按照下面代码调用即可。

fom = FOM()
# 查看驱动视频,驱动视频最好裁剪为480 x 640 大小的视频
driving_video = ''
# 被驱动的画面
source_image = ''
# 输出视频
result_video = ''
# 驱动画面
fom.img_to_video(driving_video, source_image, result_video)

到此这篇关于如何让利用Python+AI使静态图片动起来的文章就介绍到这了,更多相关 Python+AI让图片动起来内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Python 实现图片转字符画的示例(静态图片,gif皆可)

    字符画是一种由字母.标点或其他字符组成的图画,它产生于互联网时代,在聊天软件中使用较多,本文我们看一下如何将自己喜欢的图片转成字符画. 静态图片 首先,我们来演示将静态图片转为字符画,功能实现主要用到的 Python 库为 OpenCV,安装使用 pip install opencv-python 命令即可. 功能实现的基本思路为:利用聚类将像素信息聚为 3 或 5 类,颜色最深的一类用数字密集度表示,阴影的一类用横杠(-)表示,明亮部分用空白表示. 主要代码实现如下: def img2stri

  • 基于python3 OpenCV3实现静态图片人脸识别

    本文采用OpenCV3和Python3 来实现静态图片的人脸识别,采用的是Haar文件级联. 首先需要将OpenCV3源代码中找到data文件夹下面的haarcascades文件夹里面包含了所有的OpenCV的人脸检测的XML文件,这些文件可以用于检测静态,视频文件,摄像头视频流中的人脸,找到haarcascades文件夹后,复制里面的XML文件,在你新建的Python脚本文件目录里面建一个名为cascades的文件夹,并把复制的XML文件粘贴到新建的文件夹中一些有人脸的的图片,这个大家可以自行

  • python抓取网页中链接的静态图片

    本文实例为大家分享了python抓取网页中链接的静态图片的具体代码,供大家参考,具体内容如下 # -*- coding:utf-8 -*- #http://tieba.baidu.com/p/2460150866 #抓取图片地址 from bs4 import BeautifulSoup import urllib.request from time import sleep html_doc = "http://tieba.baidu.com/p/2460150866" def ge

  • 用Python将GIF动图分解成多张静态图片

    需求 有时候你看到一张动态图片,其中的一个画面你觉得很不错,想从中提取出来.例如以下这张由多个漂亮小姐姐组成的 GIF 动态图: 实现 GIF 动态图片是由多张静态图片组合而成,按照一定的顺序和时间进行播放.基于此,能不能将 GIF 图片反向分解成一张张静态图呢?即 GIF 图片有多少帧,就有多少张静态图片.答案是肯定的! 都有现成的工具,有免费的,有付费的,有在线版的:还有些专门处理 GIF 动态图片的强大工具. 不过,作为 IT 人,不试试自己实现吗?初学编程,可以练练手:高手可 DIY 可

  • 如何让利用Python+AI使静态图片动起来

    目录 前言: 1. 运行项目 2. Python API 前言: 这种技术一般是基于的GAN(生成对抗网络)来实现,今天我给大家分享一个开源项目,能够复现静态图片动起来效果,可以做些有趣的项目,也可以怀念故人. 大家在刷短视频的时候有没有刷到这样的视频,视频里一张静态的人物图片能动起来,如:歪歪头.眨眨眼. 类似于下面这种效果: 最左侧的人物是原始的动作,上面是静态图片.通过AI技术便可以让最左侧人物的动作运用到上面的静态图片上,从而让张图都可以做出相同的动作. 这种技术一般是基于的GAN(生成

  • 利用Python自制一个批量图片水印添加器

    前段时间写了个比较简单的批量水印添加的python实现方式,将某个文件夹下面的图片全部添加上水印. 今天正好有时间就做了一个UI应用的封装,这样不需要知道python直接下载exe的应用程序使用即可. 下面主要来介绍一下实现过程. 首先,还是老规矩介绍一下在开发过程中需要用到的python非标准库,由于这些库都是之前使用过的. 所以这里就直接导入到代码块中,如果没有的话直接使用pip的方式进行安装即可. # It imports all the classes, attributes, and 

  • 利用Python实现普通视频变成动漫视频

    目录 容我废话一下 一.思路流程 二.图像转动漫 三.视频帧读取与视频帧写入 容我废话一下 最近几个月,毒教材被曝光引发争议,那些编写度教材的人着实可恶.咱程序员也没有手绘插画能力,但咱可以借助强大的深度学习模型将视频转动漫.所以今天的目标是让任何具有python语言基本能力的程序员,实现短视频转动漫效果. 效果展示 一.思路流程 1.读取视频帧 2.将每一帧图像转为动漫帧 3.将转换后的动漫帧转为视频 难点在于如何将图像转为动漫效果.这里我们使用基于深度学习的动漫效果转换模型,考虑到许多读者对

  • 利用python为PostgreSQL的表自动添加分区

    PostgreSQL引进"分区"表特性,解放了之前采用"表继承"+"触发器"来实现分区表的繁琐.低效.而添加分区,都是手动执行SQL. 演示目的:利用python来为PostgreSQL的表自动添加分区. python版本:python3+ pip3 install psycopg2 一.配置数据源 database.ini 文件:记录数据库连接参数 [adsas] host=192.168.1.201 database=adsas user=a

  • Python+AI实现给老照片上色

    目录 1. 准备工作 2. 编写代码 哈喽,大家好. 今天继续给大家分享有趣的 AI 项目. 上次我们分享了用GAN(生成对抗网络)让静态图片动起来. 今天我们分享用NoGAN的图像增强技术给老照片着色.效果如下: 原图 上色后 NoGAN是一种新型GAN,它能花费最少的时间进行GAN训练. 今天分享的这个项目已在GitHub开源项目,下面我们来运行一下. 1. 准备工作 首先,用git clone命令下载源码 git clone https://github.com/jantic/DeOldi

  • 利用Python批量生成任意尺寸的图片

    实现效果 通过源图片,在当前工作目录的/img目录下生成1000张,分别从1*1到1000*1000像素的图片. 效果如下: 目录结构 实现示例 # -*- coding: utf-8 -*- import threading from PIL import Image image_size = range(1, 1001) def start(): for size in image_size: t = threading.Thread(target=create_image, args=(s

  • 利用Python自带PIL库扩展图片大小给图片加文字描述的方法示例

    前言 最近的一个项目中需要在图片上添加文字,使用了OpenCV,结果发现利用opencv给图像添加文字有局限.可利用的字体类型比较少,需要安装Freetype扩展,比较复杂.而且不能用putText函数输出中文,否则就会出现乱码的情况.只好选择使用Python PIL函数库对照片进行处理,利用Python自带的PIL库扩展图片大小给图片加上文字描述,大多都是库函数调用,只是给定图片宽度后计算文字所需行数的代码需要写. 代码比较丑,but it works. 代码示例 #!/usr/bin/env

  • 利用python将图片转换成excel文档格式

    前言 本文主要介绍了关于利用python将图片转换成excel文档的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 实现步骤 读取图像,获取图像每个像素点的RGB值: 根据每个像素点的RGB值设置excel每个方格的颜色值: 根据像素点的坐标,写入excel文件: 保存退出: 示例代码 from PIL import Image import numpy as np import time import matplotlib.pyplot as plt import

随机推荐