科技匠|怎样用 Python 控制图片人物动起来?一文就能 Get
作者 | 李秋键
责编 | 李雪敬
头图 | CSDN 下载自视觉中国
出品 | AI科技大本营(ID:rgznai100)
近段时间 , 一个让蒙娜丽莎图像动起来的项目火遍了朋友圈 。 而今天我们就将实现让图片中的人物随着视频人物一起产生动作 。 其中通过在静止图像中动画对象产生视频有无数的应用跨越的领域兴趣 , 包括电影制作、摄影和电子商务 。 更准确地说 , 是图像动画指将提取的视频外观结合起来自动合成视频的任务一种源图像与运动模式派生的视频 。
近年来 , 深度生成模型作为一种有效的图像动画技术出现了视频重定向 。 特别是 , 可生成的对抗网络(GANS)和变分自动编码器(VAES)已被用于在视频中人类受试者之间转换面部表情或运动模式 。
根据论文FirstOrder Motion Model for Image Animation可知 , 在姿态迁移的大任务当中 , Monkey-Net首先尝试了通过自监督范式预测关键点来表征姿态信息 , 测试阶段估计驱动视频的姿态关键点完成迁移工作 。 在此基础上 , FOMM使用了相邻关键点的局部仿射变换来模拟物体运动 , 还额外考虑了遮挡的部分 , 遮挡的部分可以使用image inpainting生成 。
而今天我们就将借助论文所分享的源代码 , 构建模型创建自己需要的人物运动 。 具体流程如下 。
实验前的准备首先我们使用的python版本是3.6.5所用到的模块如下:
- imageio模块用来控制图像的输入输出等 。
- Matplotlib模块用来绘图 。
- numpy模块用来处理矩阵运算 。
- Pillow库用来加载数据处理 。
- pytorch模块用来创建模型和模型训练等 。
- 完整模块需求参见requirements.txt文件 。
(1)首先是训练模型的读取 , 包括模型加载方式:
def load_checkpoints(config_path, checkpoint_path, cpu=False):
with open(config_path) as f:
config = yaml.load(f)
generator = OcclusionAwareGenerator(**config['model_params']['generator_params'],
**config['model_params']['common_params'])
if not cpu:
generator.cuda
kp_detector = KPDetector(**config['model_params']['kp_detector_params'],
**config['model_params']['common_params'])
if not cpu:
kp_detector.cuda
if cpu:
checkpoint = torch.load(checkpoint_path, map_location=torch.device('cpu'))
else:
checkpoint = torch.load(checkpoint_path)
generator.load_state_dict(checkpoint['generator'])
推荐阅读
- 下个10年,Go能取代Python成为开发者的首选语言吗?
- 怎样不秃顶|期中温习: 二年级上册数学加法、减法和乘法应用题, 附谜底
- 科技日报|塑料微粒影响几何?人类认知仍不足
- 七号人称说科技|华为始料未及?台积电又成了“炮灰”?新风暴说来就来
- 大众新闻|众安科技荣获“今日·保险中介榜”年度Insurtech独角兽
- 雷科技|朋友圈都在秀的“互联网勋章”到底是什么?
- 快科技|小米10至尊纪念版妙享功能升级:手机与Windows电脑合体
- 七号人称说科技|再给华为一颗糖?美国到底在打什么“算盘”?,先给华为一巴掌
- 量子科技,爆发!有项关键技术中国已领先世界
- 暖日科技盈如|这到底是为什么?,俄罗斯华人给出劝告:最好别跟俄罗斯女孩结婚
