ubuntu20部署Bringing-Old-Photos-Back-to-Life

                                                            

环境准备:

ubuntu20.04 

Python 3.8.10

首先将微软的「Bringing-Old-Photos-Back-to-Life」库 clone 到本地:

git clone https://github.com/microsoft/Bringing-Old-Photos-Back-to-Life.git

cd Face_Enhancement/models/networks/
git clone https://github.com/vacancy/Synchronized-BatchNorm-PyTorch
cp -rf Synchronized-BatchNorm-PyTorch/sync_batchnorm .
cd ../../../

Global 权重配置 

cd Global/detection_models
git clone https://github.com/vacancy/Synchronized-BatchNorm-PyTorch
cp -rf Synchronized-BatchNorm-PyTorch/sync_batchnorm .
cd ../../

Face_Detection 权重  

人脸识别预训练模型:

cd Face_Detection/
wget http://dlib.net/files/shape_predictor_68_face_landmarks.dat.bz2
bzip2 -d shape_predictor_68_face_landmarks.dat.bz2
cd ../

Face_Enhancement 权重

Face_Enhancement 权重用于人脸部位增强,下载后权重文件解压至 ./Face_Enhancement 

cd Face_Enhancement/
wget https://github.com/microsoft/Bringing-Old-Photos-Back-to-Life/releases/download/v1.0/face_checkpoints.zip
unzip face_checkpoints.zip
cd ../
cd Global/
wget https://github.com/microsoft/Bringing-Old-Photos-Back-to-Life/releases/download/v1.0/global_checkpoints.zip
unzip global_checkpoints.zip
cd ../

 创建 python3 虚拟环境

python3 -m venv .venv

source .venv/bin/activate

安装项目依赖库

pip3 install -r requirements.txt

出现的问题:


Running Stage 4: Blending
Traceback (most recent call last):
File “align_warp_back_multiple_dlib.py”, line 428, in
blended = blur_blending_cv2(warped_back, blended, backward_mask)
File “align_warp_back_multiple_dlib.py”, line 219, in blur_blending_cv2
mask *= 255.0
numpy.core._exceptions.UFuncTypeError: Cannot cast ufunc ‘multiply’ output from dtype(‘float64’) to dtype(‘uint8’) with casting rule ‘same_kind’

找到文件align_warp_back_multiple_dlib.py的219行,将代码 mask *= 255.0 改为:mask = mask * 255.0,再次运行。
 

修复不带折痕的照片

对于不带折痕的照片,终端输入时需要三个参数,

  • --input_folder ,存放需要修复图片的文件路径,不指定时默认为 ./test_images/old;
  • --output_folder,存放修复后图片的文件路径,不指定时默认为 ./output/
  • --GPU,指定用到的 GPU 编号,可设定为 0 、 0,10,1,2 ,没有 GPU 配置时 设为 -1 表示运行时只用 CPU ; 设定 GPU 时需要确保配置的 Pytorch 是 GPU 版本,相对 CPU 的话,GPU 测试时间会更短;

测试时,启动命令如下,这里 --input_folder、--output_folder参数都为默认,所以命令中加这两个参数,电脑比较渣没有 GPU 所以设为 -1;

python3 run.py --GPU -1

 修复带折痕的照片

与不带折痕相比,修复带折痕照片要多加入一个参数 --with_scratch,还有一点不同的是存放原照片默认路径更改为为 ./test_images/old_w_scratch ,其它参数设置见 3.1

终端中输入的测试命令如下:

python3 run.py --GPU -1 --with_scratch

最终的运行结果

export PYTHONPATH=/home/xxx/.local/lib/python3.8/site-packages/

文末福利

整个打包版下载地址,联系我要提取码

百度网盘 请输入提取码百度网盘为您提供文件的网络备份、同步和分享服务。空间大、速度快、安全稳固,支持教育网加速,支持手机端。注册使用百度网盘即可享受免费存储空间icon-default.png?t=N7T8https://pan.baidu.com/s/1oKgBB0gkRIGjwzeTtFYWFw百度网盘 请输入提取码

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C#高级 08Json操作

1.概念 Json是存储和交换文本信息的语法。类似于XML。Json比XML更小、更快、更易解析。Json与XML一样是一种数据格式。Json是一种轻量级的数据交换格式。它基于ECMAScript的一个子集。Json采取完全独立于语言的文本格式, 但是也使用了类似于C语言的习惯。这些特性使…

Python中matplotlib库的使用1

1 matplotlib库简介 matplotlib是一个数学绘图库,可以将数据通过图形的方式显示出来,也就是数据可视化。 2 matplotlib库的安装 2.1 打开cmd窗口 点击键盘的“Win”“R”键,在弹出的“运行”对话框的“打开”栏中输入“cmd”,…

模板 BIEE(二):Web日志从分析出发,在web页查看取数的sql方法

1 说明 1.1 环境 BIEE: Oracle Business Intelligence Enterprise Edition(Oracle商业智能企业版) 版本: OBIEE 12c Server 版本: 基于Oracle Analytics Server 6.4.0 版本 模板: 制造→生产成本→按前 10 个 GL 帐户列出的生产成本 1.2 背景 由《模板 BIEE (一):…

web前端开发网页制作html/css结课作业

效果图展示: 注意事项: 引用JQuery文件地址和图片地址要更换一下。 百度网盘链接: http://链接:https://pan.baidu.com/s/1wYkmLr7csjBwQY6GmlYm4Q?pwd4332 提取码:4332 html界面展示: main.css代码部…

Papers We Love: 计算机科学研究的集结地 | 开源日报 No.131

papers-we-love/papers-we-love Stars: 76.8k License: NOASSERTION Papers We Love 是一个围绕阅读、讨论和学习计算机科学学术论文的社区。该项目作为一个目录,汇集了社区中一些最好的论文,并将分散在网络上的文件整合到一起。用户可以通过链接获取这…

count distinct在spark中的运行机制

文章目录 预备 数据和执行语句Expand第一次HashAggregateShuffle and Second HashAggregate最后结果性能原文 预备 数据和执行语句 SELECT COUNT(*), SUM(items), COUNT(DISTINCT product), COUNT(DISTINCT category) FROM orders;假设源数据分布在两个1核的结点上&#xff0…

[嵌入式专栏](FOC - SVPWM马鞍波)

文章目录 1 . 前言2 . 内容3 . 小结 【极客技术传送门】 : https://blog.csdn.net/Engineer_LU/article/details/135149485 1 . 前言 SVPWM为什么是马鞍波形状,为什么不是正弦波,以下深入浅出探讨这个概念 2 . 内容 根据之前扇区判断,进行…

适用于 Mac 的 10 款顶级数据恢复软件分享

想要免费从Mac恢复永久删除的文件吗?这篇文章给你答案! 在Mac上恢复已永久删除的文件并不难,只需找到合适的工具。今天,我们将为大家评测10款免费的Mac数据恢复软件,让你在拯救Mac数据时无需支付任何费用。这些软件在…

英语打卡分析12

[爱心]长难句分享第十二天解析 [玫瑰]【词汇】: • appropriate [əˈproʊpriət] adj. 恰当的 • in place 准备妥当 • caregiver [ˈkerɡɪvər] n. 看护人 • no more … than… 和……一样不 • newsworthy [ˈnuːzwɜːri] adj. 值得报道的 • capable […

Appium+python自动化(三)- SDK Manager(超详解)

简介 本来宏哥一开始打算用真机做的,所以在前边搭建环境时候就没有下载SDK,但是由于许多小伙伴通过博客发短消息给宏哥留言说是没有真机,所以顺应民意整理一下模拟器,毕竟“得民心者,得天下”。SDK顾名思义&#xff0c…

冒泡排序--------(C每日一题)

冒泡排序&#xff1a; 每次将相邻的两个数比较,将小的调到前头--升序 冒泡排序一个结论&#xff1a; n个数要进行n-1轮比较&#xff0c;第j轮要进行n-j次两两比较 循环体代码&#xff1a; int main() {int i, j,n,a[10],t;//n是几个数比较for(j1;j<n-1;j)//控制轮次for…

omlox定位标准(二)——定位核心

上一篇文章中介绍了关于omlox hub相关内容&#xff0c;可以用于整合多种API接口&#xff0c;便于实现统一的应用&#xff0c;本文中介绍omlox core&#xff0c;介绍了基础设施、定位技术、定位引擎等内容。 2.omlox core zone and air-interface 随着越来越多的业务应用基于室…

Solana主流钱包盘点和评测:Phantom,Bitget钱包,Ledger等

Solana绝对是今年加密货币界的大红人&#xff01;大家都在热烈讨论这个项目&#xff0c;想象它会给加密世界的未来带来怎样的变革。是不是觉得新晋的加密爱好者们都很酷&#xff1f;他们正迈出探索这个领域的第一步&#xff0c;寻找合适的钱包。无论是准备长期持有Solana&#…

Activemq存储KahaDb详解

引言 ActiveMQ在不提供持久化的情况下&#xff0c;数据保存在内存中&#xff0c;一旦应用崩溃或者重启之后&#xff0c;数据都将会丢失&#xff0c;这显然在大部分情况下是我们所不希望的。对此ActiveMQ提供了两种持久化方式以供选择。 kahaDB kahaDB是一个基于文件&#xf…

学习记录——BiFormer

BiFormer Vision Transformer with Bi-Level Routing Attention BiFormer:具有双电平路由注意的视觉变压器 摘要作为视觉转换器的核心组成部分,注意力是捕捉长期依赖关系的有力工具。然而,这样的能力是有代价的:当计算跨所有空间位置的成对令牌交互时,它会产生巨大的计算负…

【c语言】飞机大战(1)

提前准备好游戏要的素材&#xff0c;可以到爱给网去找&#xff0c;飞机大战我们需要的是一个我方战机图片&#xff0c;一个背景图&#xff0c;三个敌方战机的图&#xff0c;我方战机的图片&#xff0c;敌方战机的图片&#xff0c;并且将图片和.cpp放在同一文件夹下. 这里创建.…

【qt】解决qt里编辑qss后失效问题(qt编码问题)

1、先创建qss文本stylesheet.qss 以按钮为例 QPushButton {background-color:rgb(240,255,255);color: rgb(0, 0, 2);border-style: outset;border-color: beige;border-radius: 10px; }/* hover按钮悬浮&#xff0c;鼠标悬浮在按钮上的状态&#xff0c;按钮颜色 */QPushButto…

数据结构之树 --- 二叉树

目录 定义二叉树的结构体 二叉树的遍历 递归遍历 非递归遍历 链式二叉树的实现 二叉树的功能接口 先序遍历创建二叉树 后序遍历销毁二叉树 先序遍历查找树中值为x的节点 层序遍历 上篇我们对二叉树的顺序存储堆进行了讲述&#xff0c;本文我们来看链式二叉树。 定…

高斯泼溅的全面概述

一、说明 高斯泼溅是一种用于表示 3D 场景和渲染新颖视图的方法&#xff0c;在“实时辐射场渲染的 3D 高斯泼溅”中引入。它可以被认为是 NeRF 类模型的替代品&#xff0c;就像当年的 NeRF 一样&#xff0c;高斯分布导致了许多新的研究工作&#xff0c;这些工作选择将其用作各种…

线上隐私保护的未来:分布式身份DID的潜力

在日益数字化的世界中&#xff0c;人们的生活越来越多地依赖于互联网&#xff0c;数字身份也因而变得越来越重要。根据法律规定&#xff0c;互联网应用需要确认用户的真实身份才能提供各种服务&#xff0c;而用户则希望在进行身份认证的同时能够尽量保护他们的个人隐私&#xf…