目录:

  • AI创造营~AnimeGAN一键生成日系动漫Vlog
    • 引子
    • 效果展示图
      • 动漫化结果
  • 一、安装相关的库
  • 二、函数
  • 三、从视频提取图像
  • 四、图像转换为动漫风格并合成新的视频
  • 五、添加原始音频
  • 六、更多内容
  • 七、致谢

AI创造营~AnimeGAN一键生成日系动漫Vlog

引子

作为日本动漫的爱好者,特别是对宫崎骏、新海诚的童鞋们有福了。

本项目基于 PaddleHub 的动漫风格的转换模型,可以一键将视频转动漫哦!——>{日系风Vlog就在这}。

PaddleHub已将定制打造的街景动漫化模型animegan_v2_hayao_99、animegan_v2_shinkai_53、animegan_v2_paprika_98等多个优质模型开源。可以自行切换转换风格!

效果展示图

AI创造营~AnimeGAN一键生成日系动漫Vlog(附代码)

动漫化结果

一、安装相关的库

!pip install paddlehub
!pip install paddlepaddle
!pip install moviepy

二、函数

import cv2
from PIL import Image
import numpy as np
import os
import paddlehub as hub
from moviepy.editor import *
from tqdm import tqdm# Config
# 原始视频地址
original_video_path = './1.mp4'
# 提取视频图像的存放地址
original_video_img_path = './original_video_img/'
# 合成视频存放地址
img2video_path = './2.mp4'
# 添加声音后的视频最终输出地址
output_video_path = './3.mp4'# 从视频提取图片
def video2img(video_path, out_path):cap = cv2.VideoCapture(video_path)i=1while True:ret, frame = cap.read()if frame is None:breakelse:cv2.imwrite(out_path + str(i) + ".jpg", frame)i+=1return# 把图片转动漫并合成视频
def ani2video(img_path, org_video_path, out_path, model):# 获取图片总数file_list = os.listdir(img_path)img_num = len(file_list)# 查看原始视频的参数cap = cv2.VideoCapture(org_video_path)ret, frame = cap.read()# 任选一张图片查看高度和宽度result = model.style_transfer(images=[cv2.imread(os.path.join(img_path,file_list[0]))])height = result[0].shape[0]width = result[0].shape[1]fps = cap.get(cv2.CAP_PROP_FPS)  # 返回视频的fps--帧率# 把参数用到我们要创建的视频上video = cv2.VideoWriter(out_path, cv2.VideoWriter_fourcc('m', 'p', '4', 'v'), fps, (width, height))  # 创建视频流对象"""参数1 即将保存的文件路径参数2 VideoWriter_fourcc为视频编解码器 cv2.VideoWriter_fourcc('m', 'p', '4', 'v') 文件名后缀为.mp4参数3 为帧播放速率参数4 (width,height)为视频帧大小"""for i in tqdm(range(img_num)):f_name = str(i + 1) + '.jpg'item = os.path.join(img_path, f_name)result = model.style_transfer(images=[cv2.imread(item)]) # 转换动漫风格video.write(result[0])  # 把图片写进视频video.release()  # 释放# 从原始视频上提取声音合成到新生成的视频上
def sound2video(org_video_path, new_video_path, out_video_path):# 读取原始视频video_o = VideoFileClip(org_video_path)# 获取原始视频的音频部分audio_o = video_o.audio# 读取新生成视频video_clip = VideoFileClip(new_video_path)# 指向新生成视频的音频部分video_clip2 = video_clip.set_audio(audio_o)# 修改音频部分并输出最终视频video_clip2.write_videofile(out_video_path)

三、从视频提取图像

if not os.path.exists(original_video_img_path):os.mkdir(original_video_img_path)
video2img(video_path=original_video_path, out_path=original_video_img_path)

四、图像转换为动漫风格并合成新的视频

# 根据自己喜好选择风格:
## 今敏:'animegan_v2_paprika_98'
## 新海诚:'animegan_v2_shinkai_53'
## 宫崎骏:'animegan_v2_hayao_99'
model = hub.Module(name='animegan_v2_hayao_99', use_gpu=True)
ani2video(img_path=original_video_img_path, org_video_path=original_video_path, out_path=img2video_path, model=model)

五、添加原始音频

if not os.path.exists(output_video_path):sound2video(org_video_path=original_video_path, new_video_path=img2video_path, out_video_path=output_video_path)
else:print('最终视频已存在,请查看输出路径')

六、更多内容

  • 我的Github:https://github.com/Ryan906k9/AnimeVlog
  • 我的CSDN主页,欢迎关注:https://blog.csdn.net/qq_42067550

七、致谢

  • PaddleHub 官方项目集合:https://aistudio.baidu.com/aistudio/personalcenter/thirdview/79927
  • PaddleHub AnimeGAN动漫化模型一键应用(含动漫化小程序体验)项目:https://aistudio.baidu.com/aistudio/projectdetail/1308514

AI创造营~AnimeGAN一键生成日系动漫Vlog相关推荐

  1. 【AI创造营】鬼畜小视频

    鬼畜小视频 AiStuido地址:[AI创造营]星爷:焦了诶,emmmm GitHub: -AI-emmmm BiliBili视频地址:星爷:焦了.菩提老祖:emmm~ 这里使用的PaddleGan的 ...

  2. 【AI创造营】基于PaddleHub与Jetson Nano的智能宠物看护助手

    基于PaddleHub与Jetson Nano的智能宠物看护助手 一.效果展示 二.实现思路 1.训练一个适用于该需求的模型 2.使用PaddleHub预训练模型 三.数据采集 硬件部分 代码部分 四 ...

  3. AI创造营来了!万元奖金、Switch等你来拿...

    点击下方卡片,关注"CVer"公众号 AI/CV重磅干货,第一时间送达 朋友,看青你和创了吗? 牛年最先牛起来的无疑是这两档选秀节目,100多位小哥哥轮番上阵,每个观众都能pick ...

  4. Metaverse启动机之重构现世,AI创造营创意赛开启

    ibrandup @shadow 听说最近又有好玩的竞赛啦? Metaverse启动机 2021.7.9 AI创造营 创意赛正式发布 近日,由百度大脑AI Studio平台发布,PaddlePaddl ...

  5. [AI创造营]Wechaty实用小工具---九宫图爱心生成器~

    [AI创造营]Wechaty实用小工具-九宫图爱心生成器~ 项目地址: https://aistudio.baidu.com/aistudio/projectdetail/2300569 背景 跟随抖 ...

  6. [AI创造营]Wechaty实用小工具---证件照助手

    [AI创造营]Wechaty实用小工具-证件照助手 项目地址: https://aistudio.baidu.com/aistudio/projectdetail/2253862 你是否苦恼于没有条件 ...

  7. 飞桨AI创造营2期-t3-数据处理

    飞桨AI创造营2期-数据处理 (Datawhale34期组队学习) 文章目录 飞桨AI创造营2期-数据处理 1知识点 2具体内容 2.1AI Studio Notebook命令 2.2Numpy基础 ...

  8. 【AI创造营】决战二仙桥

    参赛作品名 [AI创造营]决战二仙桥(DodgeFace-EXQver) 作品简介 和前作DodgeFace操作方式一样,内部使用的技术换了:之前是ace2p,如果电脑配置不好的话,可能跑起来非常的卡 ...

  9. 【AI创造营】是极客就坚持一百秒?

    因为项目需要用到摄像头和显示效果,所以无法在aistudio上直接运行,Fork项目后可见可运行文件,下面直接上效果 [AI创造营]是极客就坚持100秒 参赛作品名 是男人就坚持100秒(DodgeF ...

最新文章

  1. c语言 mysql_bind,C语言连接SQLSERVER数据库
  2. HDU 3709 Balanced Number
  3. 【PAT乙级】1026 程序运行时间 (15 分)
  4. define 函数定义注意
  5. JavaWeb学习笔记九 过滤器、注解
  6. 控制反转 php,[PHP学习] 控制反转以及依赖注入的日常使用
  7. python函数详解_Python函数详解(转)
  8. mysql计算3000分钟后的日期_MySQL – 计算两个日期时间之间的净时差,同时排除中断?...
  9. hsqldb mysql_HSQLDB的研究与性能测试(与Mysql对比)
  10. javaScript 对象大全 (javascript code al 2)(转转)
  11. 魔兽对战平台服务器更新维护什么,官方对战平台每天5点维护是个什么梗
  12. 这些API接口,随便拿出来一个就能装逼、赚钱
  13. iOS获取当前设备型号等信息总结 包含iPhone7和iPhone7P
  14. 【数据结构与算法】数据结构有哪些?算法有哪些?
  15. 当你的电脑C盘满了怎么办?这两种方法都能解决
  16. 使用cmd命令导入导出数据库
  17. 路由器恢复出厂设置上网方式服务器无响应,路由器恢复出厂设置后不能联网了如何解决...
  18. 利用Hound快速搭建代码搜索引擎
  19. java int 十六进制_java中int使用十六进制
  20. Unity shader 关于卡通渲染阴影闭塞的实现

热门文章

  1. unity深入研究--开发之C#使用Socket与HTTP连接服务器传输数据包
  2. maven生成项目骨架时报错ResourceManager : unable to find res
  3. [windows]mysql忘记密码后怎么办
  4. MATLAB实现矩阵的布尔运算(逻辑运算)
  5. powerpoint取色器有什么用|ppt取色器使用教程
  6. Android——日历
  7. 2006中国软件企业100强
  8. 计算机系统在微博中的应用,什么是微博应用
  9. (超详细)15分钟利用coding搭建你的hexo博客网站
  10. 使用java Steam流进行逻辑分页(内存分页)