当前位置: 首页 > news >正文

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&#xff0…...

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__&#xff1…...

【前端设计模式】之解释器模式

解释器模式是一种行为设计模式,它用于解释特定语言或规则的表达式。在前端开发中,解释器模式可以用于处理复杂的逻辑或规则,并将其转化为可执行的代码。 解释器模式特性 定义语言规则:解释器模式通过定义语言规则来解析和执行表…...

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 命令…...

字符串_哈希

参考文章&#xff1a; E. Compress Words(字符串hash)_z听歌的小孩z的博客-CSDN博客 字符串哈希 - OI Wiki (oi-wiki.org) 板子&#xff1a; #include<bits/stdc.h> using namespace std; const int N2e450; typedef long long ll; const int mod1e97; typedef unsig…...

python 之enumerate()函数

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

【LeetCode刷题(数据结构与算法)】:用队列实现栈

请你仅使用两个队列实现一个后入先出&#xff08;LIFO&#xff09;的栈&#xff0c;并支持普通栈的全部四种操作&#xff08;push、top、pop 和 empty&#xff09; 实现 MyStack 类&#xff1a; void push(int x) 将元素 x 压入栈顶 int pop() 移除并返回栈顶元素 int top() 返…...

“客户端到服务器的数据传递”和“服务器上的数据传递”这两种数据传递的方式的区别

“客户端到服务器的数据传递”和“服务器上的数据传递”这两种数据传递方式的主要区别如下&#xff1a; 数据的流动方向&#xff1a; 在“客户端到服务器的数据传递”中&#xff0c;数据是从客户端&#xff08;如浏览器&#xff09;流向服务器。在“服务器上的数据传递”中&…...

LCR 181 字符串中的单词反转

​​题目来源&#xff1a; leetcode题目&#xff0c;网址&#xff1a;LCR 181. 字符串中的单词反转 - 力扣&#xff08;LeetCode&#xff09; 解题思路&#xff1a; 倒叙遍历&#xff0c;获得每个单词的起始位置与终止位置&#xff0c;然后将每次遇到的单词插入结果中。 解题…...

百度OCR识别图片文本字符串——物联网上位机软件

一、开发背景 根据项目需求&#xff0c;我们需要完成LED显示屏实时显示歌词的效果。最优的方法是调用歌曲播放器的API获取歌词&#xff0c;但是由于这个开发资格不是很好申请&#xff0c;因此我们采用其他方案&#xff0c;即通过OCR识别获取歌词&#xff0c;并投射到LED显示屏上…...

JAVA学习(6)-全网最详细~

&#x1f308;write in front&#x1f308; &#x1f9f8;大家好&#xff0c;我是Aileen&#x1f9f8;.希望你看完之后&#xff0c;能对你有所帮助&#xff0c;不足请指正&#xff01;共同学习交流. &#x1f194;本文由Aileen_0v0&#x1f9f8; 原创 CSDN首发&#x1f412; 如…...

网络编程(Modbus进阶)

思维导图 Modbus RTU&#xff08;先学一点理论&#xff09; 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议&#xff0c;由 Modicon 公司&#xff08;现施耐德电气&#xff09;于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…...

逻辑回归:给不确定性划界的分类大师

想象你是一名医生。面对患者的检查报告&#xff08;肿瘤大小、血液指标&#xff09;&#xff0c;你需要做出一个**决定性判断**&#xff1a;恶性还是良性&#xff1f;这种“非黑即白”的抉择&#xff0c;正是**逻辑回归&#xff08;Logistic Regression&#xff09;** 的战场&a…...

(二)TensorRT-LLM | 模型导出(v0.20.0rc3)

0. 概述 上一节 对安装和使用有个基本介绍。根据这个 issue 的描述&#xff0c;后续 TensorRT-LLM 团队可能更专注于更新和维护 pytorch backend。但 tensorrt backend 作为先前一直开发的工作&#xff0c;其中包含了大量可以学习的地方。本文主要看看它导出模型的部分&#x…...

Python实现prophet 理论及参数优化

文章目录 Prophet理论及模型参数介绍Python代码完整实现prophet 添加外部数据进行模型优化 之前初步学习prophet的时候&#xff0c;写过一篇简单实现&#xff0c;后期随着对该模型的深入研究&#xff0c;本次记录涉及到prophet 的公式以及参数调优&#xff0c;从公式可以更直观…...

【Go】3、Go语言进阶与依赖管理

前言 本系列文章参考自稀土掘金上的 【字节内部课】公开课&#xff0c;做自我学习总结整理。 Go语言并发编程 Go语言原生支持并发编程&#xff0c;它的核心机制是 Goroutine 协程、Channel 通道&#xff0c;并基于CSP&#xff08;Communicating Sequential Processes&#xff0…...

Map相关知识

数据结构 二叉树 二叉树&#xff0c;顾名思义&#xff0c;每个节点最多有两个“叉”&#xff0c;也就是两个子节点&#xff0c;分别是左子 节点和右子节点。不过&#xff0c;二叉树并不要求每个节点都有两个子节点&#xff0c;有的节点只 有左子节点&#xff0c;有的节点只有…...

USB Over IP专用硬件的5个特点

USB over IP技术通过将USB协议数据封装在标准TCP/IP网络数据包中&#xff0c;从根本上改变了USB连接。这允许客户端通过局域网或广域网远程访问和控制物理连接到服务器的USB设备&#xff08;如专用硬件设备&#xff09;&#xff0c;从而消除了直接物理连接的需要。USB over IP的…...

Java求职者面试指南:Spring、Spring Boot、MyBatis框架与计算机基础问题解析

Java求职者面试指南&#xff1a;Spring、Spring Boot、MyBatis框架与计算机基础问题解析 一、第一轮提问&#xff08;基础概念问题&#xff09; 1. 请解释Spring框架的核心容器是什么&#xff1f;它在Spring中起到什么作用&#xff1f; Spring框架的核心容器是IoC容器&#…...

Caliper 配置文件解析:fisco-bcos.json

config.yaml 文件 config.yaml 是 Caliper 的主配置文件,通常包含以下内容: test:name: fisco-bcos-test # 测试名称description: Performance test of FISCO-BCOS # 测试描述workers:type: local # 工作进程类型number: 5 # 工作进程数量monitor:type: - docker- pro…...

协议转换利器,profinet转ethercat网关的两大派系,各有千秋

随着工业以太网的发展&#xff0c;其高效、便捷、协议开放、易于冗余等诸多优点&#xff0c;被越来越多的工业现场所采用。西门子SIMATIC S7-1200/1500系列PLC集成有Profinet接口&#xff0c;具有实时性、开放性&#xff0c;使用TCP/IP和IT标准&#xff0c;符合基于工业以太网的…...