ImgPlus:基于CodeFormer的图片增强
背景
最近参与了华为云开发者大会AI赛道,做了一个AI图片增强作品,本片文章来简单介绍一下。
正文
作品名称:ImgPlus
赛题技术领域选择: AI,图片增强
使用技术名称: CodeFormer,ECS,OBS,Pytorch,CUDA,conda
作品关键字: AI,图片修复,图片增强,人脸修复,face-restoration,face-enhancement
应用领域:图片增强,图片修复,图片清晰,脸部修复
作品简介:
ImgPlus在多个领域都具有广泛的应用场景。从专业领域如摄影后期制作、广告设计,到个人应用如社交媒体分享、个人收藏,ImgPlus都能为图像增添更多的生动色彩。无论是改进照片的清晰度、增强色彩,还是去除噪点、调整亮度,ImgPlus都能在不损失图像细节的情况下完成任务。
解决的主要问题和需求痛点:
在日常图像处理中,人们常常面临图像质量不佳、细节不够清晰、色彩失真等问题。传统的图像处理方法可能需要复杂的操作流程,而且可能会导致图像失真。ImgPlus解决了这些问题,为用户提供了一个简单、高效的解决方案。用户不再需要深入了解复杂的图像处理技术,ImgPlus的智能算法能够自动识别图像中的问题并进行精准增强,让用户能够快速获得高质量的图像结果。
产品的创新点:
智能增强算法:ImgPlus采用了先进的图像处理算法,能够智能识别图像中的问题并针对性地进行增强。
用户友好界面:ImgPlus注重用户体验,提供直观友好的界面设计,使用户能够轻松上手,完成图像增强操作。
实时预览:ImgPlus为用户提供实时预览功能,在用户调整参数时能够立即看到效果变化。
高效处理速度:ImgPlus的优化算法保证了图像处理的高效速度,即使是处理大尺寸的高分辨率图像,也能在短时间内完成。
作品简介
项目背景:图像在现代社会中扮演着重要角色,从社交媒体分享到广告设计,人们对于图像质量的要求越来越高。然而,许多人缺乏专业的图像处理技能,因此存在一个市场需求,需要一款简单易用、能够自动增强图像质量的工具。基于开源项目CodeFormer进行开发,可以充分利用已有的技术和资源,从而加快产品开发周期。这样的开源基础可以为项目提供一个坚实的起点,使开发过程更加高效。
作品特点:智能增强算法,用户友好界面,实时预览,高效处理速度
应用场景:摄影后期制作、证件照,广告设计,到个人应用如社交媒体分享、个人收藏,无论是改进照片的清晰度、增强色彩,还是去除噪点、调整亮度,ImgPlus都能在不损失图像细节的情况下完成任务。
作品访问地址:http://124.70.106.200/
由于资源有限,如果无法访问,请使用
https://huggingface.co/spaces/sczhou/CodeFormer)
技术架构
本作品部署在华为云弹性云服务器,GPU加速型,GPU显卡: 1* NVIDIA V100-SMX2 * 16G。
支持Docker镜像部署和源码部署,使用华为云OBS作为图片存储。
以下是ImgPlus(CodeFormer)的技术原理
技术架构
ImgPlus图片增强应用主要使用华为云的基础设施来完成,具体流程如下:
1:使用前后端分离的结构,前端使用vue,搭建用户页面,提供上传图片,调整参数,下载图片。
2:后端使用Python语言,配合AI算法及AI框架Pytorch。
3:底座使用华为云的ECS,支持自动扩缩容,降本增效
4:服务器使用GPU型与CPU型相结合
5:用户上传的图片,以及生成的图片都是保存到华为云OBS,优化存储空间
6:使用华为云的虚拟专有云(VPC)来隔离网络,确保应用和数据的安全性。
使用华为云的Web应用防火墙(WAF)保护应用免受网络攻击。
创新价值
- 依托强大的开源社区,不断更新优化算法,产品体验
- 该作品操作足够简单,上传照片,调整参数,生成图片,下载图片。
- 服务依托华为云,动态扩缩容,能够很好地降本增效。
- 针对C端客户可以提供每天限额,并在网站投放广告,赚取受益,购买VIP可以享受更多图片服务。
- 针对B端客户,提供SDK,OpenAPI调用。
- 此外也可以编写一些嵌入式插件,集成到某些系统或应用中,如美图秀秀,视频剪辑软件,证件照
部署安装
docker run --gpus all --ipc=host --ulimit memlock=-1 --ulimit stack=67108864 --name imgplus --rm -d -v /root/imgplus/weights/:/app/CodeFormer/weights -p 80:7860 fizzpmc/imgplus
参考资料
https://github.com/sczhou/CodeFormer
https://blog.csdn.net/soulteary/article/details/132058231?spm=1001.2014.3001.5502
相关文章:

ImgPlus:基于CodeFormer的图片增强
背景 最近参与了华为云开发者大会AI赛道,做了一个AI图片增强作品,本片文章来简单介绍一下。 正文 作品名称:ImgPlus 赛题技术领域选择: AI,图片增强 使用技术名称: CodeFormer,ECS࿰…...
2024华为校招面试真题汇总及其解答(二)
6.【算法题】三步问题 题目: 三步问题。有个小孩正在上楼梯,楼梯有n阶台阶,小孩一次可以上1阶、2阶或3阶。实现一种方法,计算小孩有多少种上楼梯的方式。结果可能很大,你需要对结果模1000000007。 示例1: 输入:n = 3 输出:4说明: 有四种走法示例2: 输入:n = 5输出:1…...

编译链接(Compile Link)
文章目录 前言一、翻译环境1、概念2、翻译环境的组成3、什么是编译链接? 二、编译1、编译的阶段2、预编译3、编译1、什么是语法分析?2、什么是词法分析?3、什么是语义分析?4、什么是符号汇总? 4、汇编1、符号表展示 三…...
14 幂等生产者和事务生产者
kafka消息交付可靠性保障和精确一次语义处理 消息交付可靠性保障,指的kafka对Producer和Consumer要处理的消息提供什么样的承诺。总共就三种:at most once 、at least once、axactly once kafka默认提供的是 at least once。原因是只有Broker提交消息并…...

zabbix部署与监控
目录 一、什么是zabbix? 二、zabbix 监控原理 三、Zabbix 新特性 三、Zabbix 功能组件 四、部署 zabbix zabbix的服务端部署 zabbix的客户端部署 zabbix的服务端部署 一、什么是zabbix? zabbix 是一个基于 Web 界面的提供分布式系统监视以及网络…...
Python 编程基础 | 第五章-类 | 5.8、运算符重载
一、运算符重载 1、Python类内置方法 Python常用内置方法,如下: __init__: 构造函数,在生成对象时调用__del__: 析构函数,释放对象时使用__repr__: 打印,转换__setitem__࿱…...
【前端设计模式】之解释器模式
解释器模式是一种行为设计模式,它用于解释特定语言或规则的表达式。在前端开发中,解释器模式可以用于处理复杂的逻辑或规则,并将其转化为可执行的代码。 解释器模式特性 定义语言规则:解释器模式通过定义语言规则来解析和执行表…...

TiDB 7.4 发版:正式兼容 MySQL 8.0
MySQL 是全球最受欢迎的开源数据库,长期位于 DB-Engines Ranking 排行榜第二名,在世界范围内拥有数量庞大的企业用户和开发者。然而,随着时间的推移,MySQL 用户正面临新挑战。Oracle 官宣将在 2023 年 10 月终止 MySQL 5.7 版本的…...
QT 网络编程 服务端 客户端 QTcpServer
服务端的创建 //创建服务端QTcpServer对象 server new QTcpServer(this);//设置服务端,端口,这里绑定的是主机的所有网卡, server->listen(QHostAddress::Any, 8080);//绑定连接信号与槽 connect(this->server, &QTcpServer::new…...

Stm32_标准库_16_串口蓝牙模块_手机与蓝牙模块通信_手机传入信息能对芯片时间日期进行更改
实现了手机发送信息给蓝牙模块,程序对数据进行分析拆解,并更新自身数据 main.c: #include "stm32f10x.h" // Device header #include "Delay.h" #include "OLED.h" #include "Serial.h" #include "Ti…...

137.【SpringCloud-快速搭建】
微服务框架搭建 (一)、SpringCloud-Parent1.创建一个SpringBoot项目2.导入我们的依赖 (二)、SpringCloud-API (实体类)1.创建一个SpringBoot项目2.导入我们的依赖3.创建我们的实体类 (三)、SpringCloud-dept (业务A)1.创建一个SpringBoot项目2.导入我们的依赖3.配置我们的配置信…...

计算机网络第2章-CDN(4)
视频流和内容分发网 HTTP流和DASH 在HTTP流中,视频只是存储在HTTP服务器中作为一个普通的文件,每个文件有有一个特定的URL。当用户要看视频时,客户与服务器之间创建一个TCP连接并发送HTTP GET请求。 HTTP流具有严重缺陷,即所有…...

Linux常见的指令合集
Linux指令合集 认识linuxlinux基础指令1.pwd 命令2. ls 命令3.cd 命令4. man 命令5. grep 命令6. ps 命令7. kill 命令8. netstat 命令9. date 查看当前系统时间10. echo 打印选项 -e linux文件操作指令1. mkdir 命令2. rmdir 命令3. touch 命令4. rm 命令5. mv 命令6. cp 命令…...
字符串_哈希
参考文章: E. Compress Words(字符串hash)_z听歌的小孩z的博客-CSDN博客 字符串哈希 - OI Wiki (oi-wiki.org) 板子: #include<bits/stdc.h> using namespace std; const int N2e450; typedef long long ll; const int mod1e97; typedef unsig…...

python 之enumerate()函数
文章目录 enumerate() 是 Python 中的一个内置函数,它用于在遍历可迭代对象(如列表、元组、字符串等)时同时获取每个元素的索引和值。这个函数非常有用,因为它允许您在迭代过程中轻松地访问元素的索引,而不需要手动维护…...

【LeetCode刷题(数据结构与算法)】:用队列实现栈
请你仅使用两个队列实现一个后入先出(LIFO)的栈,并支持普通栈的全部四种操作(push、top、pop 和 empty) 实现 MyStack 类: void push(int x) 将元素 x 压入栈顶 int pop() 移除并返回栈顶元素 int top() 返…...
“客户端到服务器的数据传递”和“服务器上的数据传递”这两种数据传递的方式的区别
“客户端到服务器的数据传递”和“服务器上的数据传递”这两种数据传递方式的主要区别如下: 数据的流动方向: 在“客户端到服务器的数据传递”中,数据是从客户端(如浏览器)流向服务器。在“服务器上的数据传递”中&…...
LCR 181 字符串中的单词反转
题目来源: leetcode题目,网址:LCR 181. 字符串中的单词反转 - 力扣(LeetCode) 解题思路: 倒叙遍历,获得每个单词的起始位置与终止位置,然后将每次遇到的单词插入结果中。 解题…...

百度OCR识别图片文本字符串——物联网上位机软件
一、开发背景 根据项目需求,我们需要完成LED显示屏实时显示歌词的效果。最优的方法是调用歌曲播放器的API获取歌词,但是由于这个开发资格不是很好申请,因此我们采用其他方案,即通过OCR识别获取歌词,并投射到LED显示屏上…...

JAVA学习(6)-全网最详细~
🌈write in front🌈 🧸大家好,我是Aileen🧸.希望你看完之后,能对你有所帮助,不足请指正!共同学习交流. 🆔本文由Aileen_0v0🧸 原创 CSDN首发🐒 如…...
渲染学进阶内容——模型
最近在写模组的时候发现渲染器里面离不开模型的定义,在渲染的第二篇文章中简单的讲解了一下关于模型部分的内容,其实不管是方块还是方块实体,都离不开模型的内容 🧱 一、CubeListBuilder 功能解析 CubeListBuilder 是 Minecraft Java 版模型系统的核心构建器,用于动态创…...
基础测试工具使用经验
背景 vtune,perf, nsight system等基础测试工具,都是用过的,但是没有记录,都逐渐忘了。所以写这篇博客总结记录一下,只要以后发现新的用法,就记得来编辑补充一下 perf 比较基础的用法: 先改这…...
linux 错误码总结
1,错误码的概念与作用 在Linux系统中,错误码是系统调用或库函数在执行失败时返回的特定数值,用于指示具体的错误类型。这些错误码通过全局变量errno来存储和传递,errno由操作系统维护,保存最近一次发生的错误信息。值得注意的是,errno的值在每次系统调用或函数调用失败时…...

在WSL2的Ubuntu镜像中安装Docker
Docker官网链接: https://docs.docker.com/engine/install/ubuntu/ 1、运行以下命令卸载所有冲突的软件包: for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done2、设置Docker…...

3-11单元格区域边界定位(End属性)学习笔记
返回一个Range 对象,只读。该对象代表包含源区域的区域上端下端左端右端的最后一个单元格。等同于按键 End 向上键(End(xlUp))、End向下键(End(xlDown))、End向左键(End(xlToLeft)End向右键(End(xlToRight)) 注意:它移动的位置必须是相连的有内容的单元格…...

Unity | AmplifyShaderEditor插件基础(第七集:平面波动shader)
目录 一、👋🏻前言 二、😈sinx波动的基本原理 三、😈波动起来 1.sinx节点介绍 2.vertexPosition 3.集成Vector3 a.节点Append b.连起来 4.波动起来 a.波动的原理 b.时间节点 c.sinx的处理 四、🌊波动优化…...

九天毕昇深度学习平台 | 如何安装库?
pip install 库名 -i https://pypi.tuna.tsinghua.edu.cn/simple --user 举个例子: 报错 ModuleNotFoundError: No module named torch 那么我需要安装 torch pip install torch -i https://pypi.tuna.tsinghua.edu.cn/simple --user pip install 库名&#x…...

Docker 本地安装 mysql 数据库
Docker: Accelerated Container Application Development 下载对应操作系统版本的 docker ;并安装。 基础操作不再赘述。 打开 macOS 终端,开始 docker 安装mysql之旅 第一步 docker search mysql 》〉docker search mysql NAME DE…...
【无标题】路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论
路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论 一、传统路径模型的根本缺陷 在经典正方形路径问题中(图1): mermaid graph LR A((A)) --- B((B)) B --- C((C)) C --- D((D)) D --- A A -.- C[无直接路径] B -…...

LabVIEW双光子成像系统技术
双光子成像技术的核心特性 双光子成像通过双低能量光子协同激发机制,展现出显著的技术优势: 深层组织穿透能力:适用于活体组织深度成像 高分辨率观测性能:满足微观结构的精细研究需求 低光毒性特点:减少对样本的损伤…...