欢迎各位兄弟 发布技术文章
这里的技术是共享的
使用 Python 和 AI 模型来提升图像清晰度是目前最强大的解决方案之一。以下是详细的实现方法,涵盖 主流 AI 超分辨率模型、API 调用 和 完整代码示例。
Real-ESRGAN
适用:通用图像/照片
特点:开源,支持 4x 超分辨率,能修复模糊、噪声、压缩伪影。
Waifu2x
适用:动漫/插画
特点:针对二次元图像优化,支持噪声消除和放大。
GFPGAN
适用:老照片/人像修复
特点:腾讯开源,专注人脸清晰化。
bash# 克隆仓库 git clone https://github.com/xinntao/Real-ESRGAN.git cd Real-ESRGAN # 安装依赖 pip install -r requirements.txt pip install basicsr # 下载预训练模型 wget https://github.com/xinntao/Real-ESRGAN/releases/download/v0.1.0/RealESRGAN_x4plus.pth -P weights/
pythonfrom basicsr.archs.rrdbnet_arch import RRDBNet from realesrgan import RealESRGANer def enhance_image(input_path, output_path): # 选择模型(默认4倍放大) model = RRDBNet(num_in_ch=3, num_out_ch=3, num_feat=64, num_block=23, num_grow_ch=32) upscaler = RealESRGANer( scale=4, model_path="weights/RealESRGAN_x4plus.pth", model=model, half=True # 使用半精度加速(需CUDA) ) # 处理图像 upscaler.enhance(input_path, output_path=output_path) # 调用 enhance_image("input.jpg", "output.jpg")
input.jpg
(模糊) → output.jpg
(清晰,分辨率提升4倍)
pythonfrom gfpgan import GFPGANer def enhance_face(input_path, output_path): # 加载模型 restorer = GFPGANer( model_path="https://github.com/TencentARC/GFPGAN/releases/download/v1.3.0/GFPGANv1.3.pth", upscale=2, arch="clean", channel_multiplier=2 ) # 处理图像 input_img = cv2.imread(input_path, cv2.IMREAD_COLOR) _, _, output_img = restorer.enhance(input_img, has_aligned=False) cv2.imwrite(output_path, output_img) enhance_face("old_photo.jpg", "restored.jpg")
如果不想本地部署模型,可用 Hugging Face/Replicate 的 API:
pythonimport requests def enhance_with_api(input_path, api_key): url = "https://api.replicate.com/v1/predictions" headers = {"Authorization": f"Token {api_key}"} data = { "version": "db21e45d3f7023abc2a46ee38a23973f6dce16bb082a930b0c49861f96d1e5bf", # Real-ESRGAN模型ID "input": {"image": open(input_path, "rb")} } response = requests.post(url, headers=headers, files=data) result_url = response.json()["urls"]["get"] enhanced_image = requests.get(result_url).content with open("enhanced.png", "wb") as f: f.write(enhanced_image)
如果需要在 PHP 中调用 Python 的 AI 模型:
php// 调用 Python 脚本 $result = shell_exec('python enhance.py input.jpg output.jpg'); if (file_exists('output.jpg')) { echo "<img src='output.jpg'>"; // 显示处理后的图片 }
enhance.py
可以是上述 Real-ESRGAN 或 GFPGAN 的脚本。
硬件:
建议使用 NVIDIA GPU(CUDA加速),否则CPU处理会很慢。
依赖管理:
使用 conda
或 venv
隔离环境,避免包冲突。
Docker 部署(可选):
bashdocker run -it --gpus all -v $(pwd)/input:/input xinntao/realesrgan
最佳效果:Real-ESRGAN(通用) + GFPGAN(人脸)。
最快方案:调用在线 API(如 Replicate)。
PHP 整合:通过 shell_exec
调用 Python 脚本。
如果需要完整代码或某个模型的详细配置,可以进一步说明!
# 克隆仓库
git clone https://github.com/xinntao/Real-ESRGAN.git
cd Real-ESRGAN
# 安装依赖
pip install -r requirements.txt
pip install basicsr
# 下载预训练模型
wget https://github.com/xinntao/Real-ESRGAN/releases/download/v0.1.0/RealESRGAN_x4plus.pth -P weights/
上面几行代码的作用
这几 行代码是 Real-ESRGAN 项目的环境配置流程,每行的具体作用如下:
git clone https://github.com/xinntao/Real-ESRGAN.git
作用:从 GitHub 下载 Real-ESRGAN 的源代码库。
解释:
git clone
:复制整个仓库到本地(包括模型架构、训练代码、推理脚本等)。
目标地址:xinntao/Real-ESRGAN
是项目的官方仓库,由腾讯优图实验室维护。
cd Real-ESRGAN
作用:进入项目根目录。
解释:
后续的依赖安装和模型下载需要在项目目录内操作。
pip install -r requirements.txt
作用:安装 Python 依赖包。
关键依赖:
torch
、torchvision
:PyTorch 深度学习框架。
opencv-python
:图像处理库(用于读取/保存图片)。
basicsr
:图像超分辨率基础库(Real-ESRGAN 的核心依赖)。
其他:numpy
、tqdm
等辅助工具。
pip install basicsr
作用:单独安装 basicsr
库(部分环境需单独安装)。
解释:
basicsr
是 Real-ESRGAN 的底层库,提供超分辨率模型的通用组件。
若 requirements.txt
已包含,此步骤可省略(但双重安装不影响)。
wget ... RealESRGAN_x4plus.pth -P weights/
作用:下载预训练模型文件。
关键点:
模型文件:RealESRGAN_x4plus.pth
是官方提供的 4 倍超分辨率模型权重。
保存路径:-P weights/
指定下载到项目的 weights
目录(需提前创建)。
若下载失败,可手动下载并放入 weights/
:模型下载地址
获取代码 → 克隆仓库。
准备环境 → 安装 Python 依赖。
加载模型 → 下载预训练权重。
后续操作:完成后即可运行 inference_realesrgan.py
处理图像(需 GPU 支持)。
依赖冲突:建议使用 conda
新建虚拟环境。
模型路径:确保 .pth
文件保存在 weights/
目录,否则会报错。
GPU 支持:若用 CPU,需在代码中设置 half=False
。
如果需要测试效果,可运行:
bashpython inference_realesrgan.py -i inputs/ -o outputs/ --model_path weights/RealESRGAN_x4plus.pth