AI老照片上色-DeOldify

 🏡 个人主页:IT贫道-CSDN博客

 🚩 私聊博主:私聊博主加WX好友,获取更多资料哦~

 🔔 博主个人B栈地址:豹哥教你学编程的个人空间-豹哥教你学编程个人主页-哔哩哔哩视频


目录

1. 老照片上色原理

2. 老照片上色环境准备

2.1 下载DeOldify项目

2.2 下载权重文件

2.3 安装依赖的python包

3. 给图片上色

4. 给视频上色


1. 老照片上色原理

老照片上色原理就是使用GAN生成式对抗网络,对于一些原始黑白图片及对应的彩色图像,使用GAN生成式对抗网络来实现上色。

2. 老照片上色环境准备

2.1 下载DeOldify项目

项目下载地址:https://github.com/jantic/DeOldify,下载之后解压到对应的非中文路径下,这里解压到“J:\DeOldify-master”路径。可以处理图片上色,也可以处理视频上色。DeOldfy的核心网络框架是GAN,可以对图片和视频呈现更详细、真实的渲染效果。

2.2 下载权重文件

DeOldify 是基于深度学习开发的,需要用到预训练权重,这里项目开发者已经把训练好的权重上传到网上,我们可以直接拿来使用,不需要我们再训练,本项目中用到的权重文件比较多,一共三个:

  • Artistic 权重,会使图片上色效果 更大胆一些,下载地址:

https://data.deepai.org/deoldify/ColorizeArtistic_gen.pth

  • Stable 权重,相对于 Artistic 上色效果更保守一些,下载地址:

https://www.dropbox.com/s/usf7uifrctqw9rl/ColorizeStable_gen.pth

  • Video 权重,此权重文件用来给视频上色,下载地址

https://data.deepai.org/deoldify/ColorizeVideo_gen.pth

权重文件下载完毕后,在项目根目录下创建一个models文件夹,把下载好的三个权重文件放入models文件夹内。

2.3 安装依赖的python包

首先需要安装pytorch,这里在“修复照片”中已经处理,所以不再安装,此外还需安装如下:

从https://www.lfd.uci.edu/~gohlke/pythonlibs/ 网站中下载“Bottleneck-1.3.2-cp36-cp36m-win_amd64.whl”手动安装,不然后面自动下载不下来。

​
pip install -i Simple Index fastai==1.0.51pip install -i Simple Index wandbpip install -i Simple Index tensorboardX==1.6pip install -i Simple Index ffmpegpip install -i Simple Index ffmpeg-python==0.1.17pip install -i Simple Index youtube-dl>=2019.4.17pip install -i Simple Index jupyterlabpip install -i Simple Index opencv-python>=3.3.0.10pip install -i Simple Index pillow==8.2.0​

可以直接 使用如下命令指定文件进行批量安装python依赖包:

D:\ProgramData\Anaconda3\envs\python36_oldimage\Scripts>pip install -r J:\DeOldify-master\requirements.txt

指定文件安装,这里还是手动每个安装吧,指定文件下载太慢。

​​​​​​​3. 给图片上色

from deoldify import device
from deoldify.device_id import DeviceId# choices:  CPU, GPU0...GPU7
device.set(device=DeviceId.GPU0)
from deoldify.visualize import *
import gcplt.style.use('dark_background')
# 加速训练
torch.backends.cudnn.benchmark=Trueimport warnings
warnings.filterwarnings("ignore", category=UserWarning, message=".*?Your .*? set is empty.*?")#Artistic 为布尔值, True 表示启用 Artistic 模式 ( False 启用 Stable 模式);
colorizer = get_image_colorizer(artistic=True)#render_factor 表示渲染因子,值越大效果越好,但同时需要更大的显存;
#我的电脑设置1就承受不住了
render_factor=10#source_path 表示输入图片路径
source_path = 'J:\\s8.jpg'# result_path = 'J:\\finished\\'colorizer.plot_transformed_image(path=source_path, render_factor=render_factor, compare=True)
gc.collect()

前面提到过 Artistic 与 Stable 是有区别的(因为用到的权重文件是不一样的), Artistic 上色效果会更加激进一些。

运行代码前如果使用Artistic模式那么下载resnet101-63fe2227.pt文件存在“C:\Users\wubai/.cache\torch\hub\checkpoints\”路径下;

如果使用Stable模式那么下载https://download.pytorch.org/models/resnet101-63fe2227.pth放在“C:\Users\wubai/.cache\torch\hub\checkpoints\”路径下。

目前Stable模式老是内存不够,我们就记住一个模式是Artistic即可。

问题解决:pip uninstall numpy pip uninstall pandas

4. 给视频上色

给视频上色需要两个步骤:

1) 在window中安装ffmpeg

ffmpeg主要用户合成视频。ffmpeg下载地址:Download FFmpeg

登录后,选择windows:

下载完成之后,解压到某一路径下,这里解压到“J:\ffmpeg-4.4-essentials_build”,配置window环境变量:

2) 编写代码,转换视频

准备视频:old_video.mp4与old_video.mp4 ,编写下面代码:

from deoldify import device
from deoldify.device_id import DeviceId#choices:  CPU, GPU0...GPU7
device.set(device=DeviceId.GPU0)from deoldify.visualize import *
plt.style.use('dark_background')
import warnings
warnings.filterwarnings("ignore", category=UserWarning, message=".*?Your .*? set is empty.*?")colorizer = get_video_colorizer()#NOTE:  Max is 44 with 11GB video cards.  21 is a good default
render_factor=21#"D:\ProgramData\Anaconda3\envs\python36_oldimage\lib\subprocess.py" 文件中 611行 shell=False 改成shell=True,不然读取不到文件
file_name_ext = "J:\\old_video2.mp4"
# file_name_ext = file_name + ".mp4"
result_path = Nonecolorizer.colorize_from_file_name(file_name_ext, render_factor=render_factor)

转换之后的视频在目录:“J:\DeOldify-master\video\result”中,在转换过程中使用的显卡非常大,内存也比较多。


​​​​​​​

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/610519.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2024年江苏省职业院校技能大赛高职学生组软件测试—任务五接口测试题目

2024年江苏省职业院校技能大赛高职学生组软件测试任务五 接口测试 任务要求 题目1:登录接口脚本编写和执行测试。 1、登录接口描述如下: 接口功能:提供用户登录功能处理,根据传入的用户名和密码判断登录状态。 接口地址&…

windows10+ubuntu20.04双系统中,ubuntu系统显示home空间不足的扩容方法

实际上网上有两种扩容方法,除了本文的方法外,另一种是在使用启动U盘打开试用ubuntu,应该涉及到nvidia显卡驱动问题故未采用。另一种即本文。 最开始安装双系统时内存分配没有分配好,给ubuntu系统分配的空间较小,导致了后来的的问…

Multimodal Segmentation of Medical Images with Heavily Missing Data

F是mapping function 吐槽 图3太简单了吧。作者未提供代码

iOS14 Widget 小组件调研

桌面小组件是iOS14推出的一种新的桌面内容展现形式。 根据苹果的统计数据,“一般用户每天进入主屏幕的次数超过90次”,如果有一个我们应用的小组件在桌面,每天都有超过90次曝光在用户眼前的机会,这绝对是一个顶级的流量入口。 “…

Vue3+ts获取props的值并且定义props值的类型的方法。

1.引入withDefaults模块&#xff0c;给defineProps绑定默认值。 import { withDefaults } from vue2.定义Props传输值的类型。 interface Props {// 类型type: string;name: string;id: number; }3.给props的值设置默认值。 const props withDefaults(defineProps<Prop…

Go语言中使用工作区模式解决私有包不方便调试的问题

工作区模式 1 &#xff09;概述 导入内部开发包&#xff0c;之前有两种处理方式 一种是使用Go Modules的 replace 语句&#xff0c;将远程包替换成本地包的路径 这种注意&#xff0c;在开发完成之后还需将replace去掉再提交到仓库如果有多个这种内部包&#xff0c;这种操作还是…

Oracle之 第1篇 Oracle 11g 简介

目录 Oracle之 第1篇 Oracle 11g 简介 1.1 Oracle概述 1.2 Oracle 11g 系统的体系结构★ 1.1 Oracle物理结构 1.1物理结构--数据文件 1.1.2 物理结构---日志文件 1.1.3 物理结构---控制文件 1.2.4 配置文件 Oracle之 第1篇 Oracle 11g 简介 1.1 Oracle概述 常用…

无线与局域网技术期末划题自制答案

简答题 1.描述5G的三大应用场景&#xff1f; 5G的三大应用场景包括增强型移动宽带&#xff08;eMBB&#xff09;、超可靠低延迟通信&#xff08;URLLC&#xff09;和大规模机器类型通信&#xff08;mMTC&#xff09;。增强型移动宽带&#xff08;eMBB&#xff09;主要用于支持…

vue路由及参数router

目录 vue项目版本1、创建一个vue项目步骤 &#xff08;windows环境下&#xff09;。创建vue项目前&#xff0c;检查系统是否具备创建项目的条件&#xff08;是否已经安装好了node.js、webpack、vue-cli&#xff09;。cmd打开终端。三级目录 vue项目版本 1、创建一个vue项目步骤…

android自定义时间选择

自定义时间选择器&#xff0c;可以更改到年月日&#xff0c;时分秒 一、自定义DatePicker public class CustomDatePicker {/*** 定义结果回调接口*/public interface ResultHandler {void handle(String time);}public enum SCROLL_TYPE {HOUR(1),MINUTE(2);SCROLL_TYPE(int …

[情商-9] :聊天中的主动性问题

目录 前言&#xff1a; 一、性别差异对女生主动性的制约&#xff1f; 二、中国传统文化对女生主动性的制约&#xff1f; 三、男生如何在交往和聊天中发挥自己的主动性 四、交往中如何让心仪的女生提升她们的主动性 前言&#xff1a; 聊天中谁主动&#xff1f;如何让心仪的…

【Web】CTFSHOW命令执行刷题记录1

目录 web29 web30 web31 web32 web33 web34 web35 web36 web37-39 web40 web41 &#xff08;y4✌脚本&#xff09; web42 -44 web45 web46 -49 web50 web51 web52 web53 web54 期末复习不了一点&#xff0c;不如做点旧题醒一醒手感。每一题都尽量用不同payl…

@FunctionalSpringBootTest 和@SpringBootTest注解的区别

FunctionalSpringBootTest 和 SpringBootTest 是Spring框架中用于测试的两个不同注解。下面是它们之间的主要区别&#xff1a; 用途和范围&#xff1a; SpringBootTest&#xff1a;这个注解用于需要测试Spring应用程序上下文的场合。它会加载完整的应用程序上下文&#xff0c;适…

C#,C++实现:华为经典笔试题_菜单组合种类题目

题目&#xff1a; 菜单组合种类。为了科学饮食&#xff0c;控制每天摄入的卡路里数。最低值应不低于kcal_low, 最高值应不高于kcal_high。现在给出n个菜品的卡路里数&#xff0c;菜品可以重复选择。为满足总共摄入的卡路里数在规定的区间&#xff0c;可以有多少种菜品选择方式&…

插件和工具汇总

插件和工具汇总 【一】MyBatis Log插件【二】热部署【三】一些快捷键 【一】MyBatis Log插件 能够自动拼接参数生成执行的SQL语句&#xff0c;可以更清晰看到执行本次接口调用的所有sql执行条数。在我们执行myabtis的时候&#xff0c;有的时候报错知道哪里错了&#xff0c;但是…

亚马逊,速卖通,美客多卖家怎么才能安全及有效的积累产品的评论

测评补单对于亚马逊、速卖通等平台卖家来说&#xff0c;是一种重要的运营手段之一&#xff0c;通过测评补单快速增加产品的销量、评论数量&#xff0c;提升排名&#xff0c;从而打造爆款产品。 测评养号的好处包括&#xff1a; 1. 提升店铺信誉&#xff0c;制造爆款&#xff…

【大模型】大型模型飞跃升级—文档图像识别领域迎来技术巨变

写在前面 2023年12月31日&#xff0c;第十九届中国图象图形学学会青年科学家会议在广州举行&#xff0c;由中国图象图形学学会主办。 该会议的目标是促进青年科学家之间的交流与合作&#xff0c;以提升我国在图像图形领域的科研水平和创新能力。 由中国图象图形学学会和上海合合…

Centos 7 安装 ffmpeg

文件无法下载时 可以从这里下载需要的插件 安装插件下载地址:ffmpeg安装依赖插件包 压缩包中将opus-1.3.1.tar.tar 改为opus-1.3.1.tar.gz 即可 用到的命令: tar xzvf fileName.tar.gz 解压.tar.gz格式文件 unzip fileName.zip 解压 zip格式文件1.安装Gcc编译依赖 yum insta…

我在考 pmp,想知道如何去学习 pmbok?

PMP新版大纲加入了ACP敏捷管理的内容&#xff0c;而且还不少&#xff0c;敏捷混合题型占到了 50%&#xff0c;很多人都觉得考试难度提升了&#xff0c;我最开始备考的时候也被折磨过一段时间&#xff0c;但是后面还是找到了方法&#xff0c;3A通过了考试&#xff0c;也算有点经…

【EAI 005】EmbodiedGPT:通过具身思维链进行视觉语言预训练的具身智能大模型

论文描述&#xff1a;EmbodiedGPT: Vision-Language Pre-Training via Embodied Chain of Thought 论文作者&#xff1a;Yao Mu, Qinglong Zhang, Mengkang Hu, Wenhai Wang, Mingyu Ding, Jun Jin, Bin Wang, Jifeng Dai, Yu Qiao, Ping Luo 作者单位&#xff1a;The Universi…