☰
首页
/
GFPGAN项目算法详解教程
目录
GFPGAN项目算法详解教程
GFPGAN 项目算法详解教程
目录
第一章 项目概述:GFPGAN 是什么
1.1 问题定义:盲人脸修复 (Blind Face Restoration)
1.2 难点:病态问题与先验的重要性
1.3 为什么不能直接用 GAN 反演(GAN Inversion)?
1.4 模型版本演进
第二章 应用场景
2.1 典型应用场景
2.2 输入形式
2.3 使用方式示例
第三章 系统总体架构
3.1 推理管线(整图输入)
3.2 训练管线
3.3 架构设计的三个关键点
第四章 人脸检测与对齐(推理前处理)
4.1 RetinaFace 人脸检测
4.2 五点对齐与仿射裁剪 (align_warp_face)
4.3 修复后贴回 (paste back)
第五章 StyleGAN2 生成器:GFPGAN 的"生成式人脸先验"
5.1 GAN 基础与隐空间 (Latent Space)
5.2 映射网络 (Mapping Network / Style MLP)
5.3 调制卷积 (Modulated Convolution)——StyleGAN2 最重要的算子
5.4 噪声注入 (Noise Injection)
5.5 常量输入与渐进式生成
5.6 ToRGB 跳跃连接(多分辨率输出)
5.7 截断技巧 (Truncation Trick)
5.8 风格混合 (Style Mixing)
5.9 权重初始化与"均衡学习率" (Equalized Learning Rate)
5.10 三种实现的差异
5.11 GFPGAN 中 StyleGAN2 的三种"新角色"
第六章 U-Net 退化去除模块(编码器)
6.1 结构总览
6.2 下采样路径(编码)
6.3 上采样路径(解码端)与三路输出
6.4 为什么需要 U-Net 而不是直接回归
第七章 SFT / CS-SFT:两个模块之间的"桥梁"
7.1 SFT (Spatial Feature Transform) 定义
7.2 SFT 的注入时机与排列顺序
7.3 CS-SFT (Channel-Split SFT)——论文的核心创新之一
第八章 退化模型:如何模拟真实世界的低质量图像
8.1 为什么要"合成退化"
8.2 退化管线逐步拆解
① 模糊核生成 (`random_mixed_kernels`)
②③④⑤ 下采样、噪声、JPEG
⑥⑦⑧ 颜色退化
⑨ 8-bit 量化
8.3 与"二阶退化"的关系
8.4 人脸组件坐标
第九章 训练目标:损失函数全景解析
9.1 L1 像素损失
9.2 图像金字塔损失 (Pyramid Loss)
9.3 感知损失 (Perceptual Loss) 与风格损失 (Style Loss)
9.4 GAN 损失(WGAN-Softplus)
9.5 R1 正则化(判别器梯度惩罚)
9.6 面部组件判别器 + 组件风格损失(眼、口)
9.7 身份保持损失 (Identity Loss)
9.8 一次训练迭代的完整流程 (optimize_parameters)
第十章 判别器体系:全局判别器 + 面部组件判别器
10.1 全局判别器:StyleGAN2 判别器
10.2 面部组件判别器 (FacialComponentDiscriminator)
10.3 判别器损失细节
第十一章 ArcFace 人脸识别网络与身份保持损失
11.1 ArcFace 本身:加性角间隔损失(Additive Angular Margin)
11.2 网络结构:IRBlock + SEBlock
11.3 完整前向流程
第十二章 RestoreFormer:另一个架构(VQ-VAE + 注意力)
12.1 核心思想
12.2 VQ-VAE 与向量量化 (VectorQuantizer)
12.3 多头自注意力 (MultiHeadAttnBlock)
12.4 编码器-解码器与跨层注意力
12.5 与 GFPGAN 的对比
第十三章 背景增强:Real-ESRGAN(RRDBNet)
第十四章 训练工程细节
14.1 EMA(指数滑动平均)
14.2 优化器与 Lazy Regularization 的配合
14.3 其他工程点
第十五章 推理全流程代码走读
15.1 初始化 GFPGANer ([utils.py:32-99](gfpgan/utils.py#L32-L99))
15.2 enhance() 主流程 ([utils.py:101-148](gfpgan/utils.py#L101-L148))
15.3 网络内部单次前向(GFPGANv1Clean)
15.4 输出文件组织 ([inference_gfpgan.py:126-170](inference_gfpgan.py#L126-L170))
第十六章 代码文件导航与模型版本
16.1 文件导航
16.2 模型版本速查
附录 A 关键超参数速查表
A.1 网络结构(v1.3 推理配置)
A.2 退化模型
A.3 训练超参数
A.4 损失权重
结语:GFPGAN 算法思想一句话总结