尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

HiDT 增强网络 RRDBNet 解析:4 倍超分辨率如何保住高分辨率细节(新手完整指南)

HiDT 增强网络 RRDBNet 解析:4 倍超分辨率如何保住高分辨率细节(新手完整指南) HiDT 增强网络 RRDBNet 解析4 倍超分辨率如何保住高分辨率细节新手完整指南【免费下载链接】HiDTOfficial repository for the paper High-Resolution Daytime Translation Without Domain Labels (CVPR2020, Oral)项目地址: https://gitcode.com/gh_mirrors/hi/HiDTHiDT 是 CVPR 2020 Oral 论文《High-Resolution Daytime Translation Without Domain Labels》的官方实现其增强网络 RRDBNet 负责把 256px 的低分辨率风格迁移结果做 4 倍超分辨率4x SR放大输出高分辨率细节完整的最终图像。本文将用通俗的方式讲透这套 RRDBNet 增强网络它解决什么问题、4 倍放大怎么做到的、48 通道输入从何而来以及如何快速上手运行。为什么 HiDT 需要一个超分辨率增强网络HiDT 的生成器Generator在256×256 像素的推理分辨率下训练得最稳定——官方示例代码中特意注明inference_size 256 # 网络在 256px 下推理最佳更高分辨率可能产生伪影但风格迁移的产物往往需要打印级的高清输出。直接上采样放大 4 倍只会得到模糊的涂抹感图像。HiDT 的解决方案是两阶段流水线第一阶段生成器在 256px 完成日间光照风格迁移比如把正午风景变成日落第二阶段增强网络G_enh即 RRDBNet做4 倍超分辨率把 256px 结果变成 1024px 的精细高清图这套方案来自经典的 ESRGAN 架构在 HiDT 中被巧妙改造为裁剪块合并器。预训练权重已随项目提供enhancer.pth高分辨率流水线网格裁剪 G_enh 合并网络核心流程由 GridCrop 和 enhancement_preprocessing 两个工具完成步骤做什么关键点① 网格裁剪GridCrop(4, 1, hires_size1024)把原图切成4×4 16 块裁剪时带 4 像素重叠 padding防止拼接出缝② 批量迁移16 块 256px 裁剪块逐一送入 HiDT 生成器做风格迁移每块独立迁移风格一致共享同一个风格向量③ 预处理堆叠enhancement_preprocessing把每块先 4 倍放大再放回网格生成 4×4 的全图视野④ 合并超分RRDBNet 一次前向同时完成4x 放大 无缝拼接输出的就是最终高清图为什么让 RRDBNet 兼职拼接传统做法是先超分再拼接接缝处会露馅。HiDT 把 16 个裁剪块叠成48 通道输入16 块 × 3 通道网络在放大时能看到所有相邻区域从而学会在边界处自然融合——一个网络同时解决超分和拼接两个问题。RRDBNet 内部结构残差密集块与 PixelShuffle 上采样RRDBNet 的完整实现只有 100 来行代码位于 RRDBNet_arch.py。它由四类构件组成1️⃣ 残差密集块ResidualDenseBlock_5C5 个 3×3 卷积前一个卷积的输出密集连接concat到后一个卷积的输入特征逐层累积、逐层复用最后以0.2 × 残差 输入的形式稳定回传——这是细节保得住的第一道防线。2️⃣ 残差中的残差块RRDB3 个密集块串联外层再套一次0.2 × 残差 输入。残差套残差让梯度传播路径更短深层网络也不容易丢失高频细节纹理、边缘。HiDT 使用nb5个 RRDB 堆叠成主干。3️⃣ 4 倍上采样的秘密双 PixelShuffle主干特征(64ch) → upconv1 → PixelShuffle(2) → upconv2 → PixelShuffle(2) → HRconv → 输出两个nn.PixelShuffle(2)不是插值猜像素而是可学习的像素重排网络自己学习把通道维的信息翻译成空间维的新像素所以放大后边缘锐利、纹理真实这是保住高分辨率细节的关键机制。4️⃣ 整体配置一览参数值含义in_nc4816 个裁剪块 × 3 通道out_nc3RGB 输出nf64主干特征通道数nb5RRDB 堆叠数量gc32密集块内部增长通道 48 通道输入就是前文16 块堆叠的具体体现每块裁剪的 4 倍放大图带 4 像素 padding 后对齐放入 4×4 网格在通道维上拼接成一个 48 通道张量。快速上手5 行代码加载 HiDT 增强网络完整可运行示例见官方示例笔记本 HighResolutionDaytimeTranslation.ipynb核心调用非常简洁from hidt.networks.enhancement.RRDBNet_arch import RRDBNet enhancer RRDBNet(in_nc48, out_nc3, nf64, nb5, gc32).to(device) enhancer.load_state_dict(torch.load(trained_models/enhancer/enhancer.pth)) # 传入 48 通道的裁剪块堆叠一步得到 4x 高清结果 out enhancer(padded_stack)以这张 2048px 的日间风景原图为例经过整条流水线后即可得到 1024px 的日落风格高清图命令行批量推理只需一条命令在 README.md 中有完整说明python ./bin/infer_on_folders.py \ --content-dir ./images/daytime/content/ \ --style-dir ./images/daytime/styles/ \ --cfg-path ./configs/daytime.yaml \ --chk-path ./trained_models/generator/daytime.pt \ --enh-path ./trained_models/enhancer/enhancer.pth \ --enhancement generator常见问题与实用建议Q1为什么推理分辨率不能超过 256px生成器只在 256px 上训练过直接喂更大的裁剪块会产生伪影。正确姿势始终是256px 迁移 → RRDBNet 放大这正是 GridCrop 默认hires_size inference_size * 4的由来。Q2--enhancement generator和fullconv有什么区别generator模式 生成器迁移 RRDBNet 超分合并推荐画质最佳fullconv模式 跳过增强网络直接全卷积推理速度快但分辨率低、细节弱。Q3显存不够跑 16 块批量裁剪块数量由GridCrop的pad参数控制调小 pad 可减少一次性推理的块数风格向量对所有块共享所以分批推理也不会产生风格不一致的问题。Q4能换成自己训练好的超分模型吗可以。只要输入输出匹配48 通道进、3 通道 RGB 出任何 ESRGAN 类网络都可以替换 enhancer.pth预处理逻辑保持不变。总结HiDT 的 RRDBNet 增强网络是小模型出大图的典范设计✅256px 稳定迁移4 倍可学习上采样兼顾质量与稳定性✅残差密集结构层层保细节纹理边缘不涂抹✅48 通道 16 块堆叠设计让 RRDBNet 一次前向同时完成超分和无缝拼接✅ 全部权重随项目提供一条命令即可批量生产高清图理解这套裁剪 → 迁移 → 合并超分的流水线后你也能把它迁移到自己的风格转换项目中——毕竟高分辨率才是细节的终极考验。【免费下载链接】HiDTOfficial repository for the paper High-Resolution Daytime Translation Without Domain Labels (CVPR2020, Oral)项目地址: https://gitcode.com/gh_mirrors/hi/HiDT创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表