返回模型
说明文档
NAFNet 房地产图像增强
一个经过微调的 NAFNet 模型,用于增强房地产摄影。基于 577 组前后对比图像对进行训练,以改善光照、色彩和整体图像质量。
模型详情
| 指标 | 数值 |
|---|---|
| 架构 | NAFNet (width=32) |
| 参数量 | 2920 万 |
| 模型大小 | 111 MB (FP32) / 56 MB (FP16) |
| 训练时间 | 5 小时 |
| 训练图像 | 577 对 |
| 最终 PSNR | 21.69 dB |
| 最终 SSIM | 0.8968 |
可用格式
| 格式 | 文件 | 大小 | 使用场景 |
|---|---|---|---|
| PyTorch | nafnet_realestate.pth |
117 MB | 训练、微调 |
| ONNX | nafnet_realestate.onnx |
117 MB | 跨平台部署 |
| Core ML | 从 ONNX 转换 | ~56 MB | iOS/macOS 应用 |
性能基准测试
在 100 张高分辨率房地产图像(平均 7.25 兆像素)上测试:
耗时
| 指标 | 数值 |
|---|---|
| 平均每张图像 | 4.0 秒 |
| 吞吐量 | 0.25 张图像/秒 |
| 兆像素/秒 | 1.81 MP/s |
内存使用
| 资源 | 使用量 |
|---|---|
| RAM | 581 MB 总计 |
| GPU 显存 | 8.3 GB 峰值 |
按分辨率扩展
| 分辨率 | RAM | GPU | 时间 |
|---|---|---|---|
| 1080p (2.1 MP) | 150-250 MB | ~2.5 GB | ~1.2s |
| 1440p (3.7 MP) | 250-400 MB | ~4.3 GB | ~2.0s |
| 3K (7.3 MP) | 500-800 MB | ~8.3 GB | ~4.0s |
| 4K (8.3 MP) | 600-900 MB | ~9.5 GB | ~4.6s |
使用方法
PyTorch
import torch
from PIL import Image
import numpy as np
# 加载模型
model = NAFNet(img_channel=3, width=32, middle_blk_num=12,
enc_blk_nums=[2, 2, 4, 8], dec_blk_nums=[2, 2, 2, 2])
checkpoint = torch.load("nafnet_realestate.pth", map_location="cpu")
model.load_state_dict(checkpoint["params"])
model.eval()
# 处理图像
img = Image.open("input.jpg")
img_tensor = torch.from_numpy(np.array(img)).permute(2, 0, 1).unsqueeze(0).float() / 255.0
with torch.no_grad():
output = model(img_tensor)
output_img = (output.squeeze(0).permute(1, 2, 0).numpy() * 255).astype(np.uint8)
Image.fromarray(output_img).save("enhanced.jpg")
ONNX Runtime
import onnxruntime as ort
import numpy as np
from PIL import Image
sess = ort.InferenceSession("nafnet_realestate.onnx")
img = np.array(Image.open("input.jpg")).astype(np.float32) / 255.0
img = img.transpose(2, 0, 1)[np.newaxis, ...]
output = sess.run(None, {"input": img})[0]
output_img = (output[0].transpose(1, 2, 0) * 255).astype(np.uint8)
Image.fromarray(output_img).save("enhanced.jpg")
移动端部署 (iOS)
所有分辨率都适合典型的移动端内存预算(3-4 GB):
- 在 macOS 上将 ONNX 转换为 Core ML:
pip install coremltools
python convert_on_mac.py
- 将
.mlpackage添加到 Xcode 项目 - 使用 Vision 框架进行推理
训练
- 框架:BasicSR + PyTorch
- 基础模型:NAFNet-SIDD-width32(在去噪任务上预训练)
- 损失函数:L1 + 感知损失 (VGG19)
- 优化器:AdamW (lr=1e-3)
- 迭代次数:12,000
许可证
Apache 2.0
引用
@article{chen2022simple,
title={Simple Baselines for Image Restoration},
author={Chen, Liangyu and Chu, Xiaojie and Zhang, Xiangyu and Sun, Jian},
journal={arXiv preprint arXiv:2204.04676},
year={2022}
}
链接
- GitHub: SebRincon/pixel-sorcery
- 原始 NAFNet: megvii-research/NAFNet
SebRincon/nafnet-realestate
作者 SebRincon
image-to-image
pytorch
↓ 0
♥ 0
创建时间: 2025-12-13 20:35:33+00:00
更新时间: 2025-12-14 16:13:09+00:00
在 Hugging Face 上查看文件 (123)
.gitattributes
README.md
eval/colorft_3h_latest_val_triptychs/0000_0000.jpg
eval/colorft_3h_latest_val_triptychs/0001_0001.jpg
eval/colorft_3h_latest_val_triptychs/0002_0002.jpg
eval/colorft_3h_latest_val_triptychs/0003_0003.jpg
eval/colorft_3h_latest_val_triptychs/0004_0004.jpg
eval/colorft_3h_latest_val_triptychs/0005_0005.jpg
eval/colorft_3h_latest_val_triptychs/0006_0006.jpg
eval/colorft_3h_latest_val_triptychs/0007_0007.jpg
eval/colorft_3h_latest_val_triptychs/0008_0008.jpg
eval/colorft_3h_latest_val_triptychs/0009_0009.jpg
eval/colorft_3h_latest_val_triptychs/0010_0010.jpg
eval/colorft_3h_latest_val_triptychs/0011_0011.jpg
eval/colorft_3h_latest_val_triptychs/0012_0012.jpg
eval/colorft_3h_latest_val_triptychs/0013_0013.jpg
eval/colorft_3h_latest_val_triptychs/0014_0014.jpg
eval/colorft_3h_latest_val_triptychs/0015_0015.jpg
eval/colorft_3h_latest_val_triptychs/0016_0016.jpg
eval/colorft_3h_latest_val_triptychs/0017_0017.jpg
eval/colorft_3h_latest_val_triptychs/0018_0018.jpg
eval/colorft_3h_latest_val_triptychs/0019_0019.jpg
eval/colorft_3h_latest_val_triptychs/0020_0020.jpg
eval/colorft_3h_latest_val_triptychs/0021_0021.jpg
eval/colorft_3h_latest_val_triptychs/0022_0022.jpg
eval/colorft_3h_latest_val_triptychs/0023_0023.jpg
eval/colorft_3h_latest_val_triptychs/0024_0024.jpg
eval/colorft_3h_latest_val_triptychs/0025_0025.jpg
eval/colorft_3h_latest_val_triptychs/0026_0026.jpg
eval/colorft_3h_latest_val_triptychs/0027_0027.jpg
eval/colorft_3h_latest_val_triptychs/0028_0028.jpg
eval/colorft_3h_latest_val_triptychs/0029_0029.jpg
eval/colorft_3h_latest_val_triptychs/0030_0030.jpg
eval/colorft_3h_latest_val_triptychs/0031_0031.jpg
eval/colorft_3h_latest_val_triptychs/0032_0032.jpg
eval/colorft_3h_latest_val_triptychs/0033_0033.jpg
eval/colorft_3h_latest_val_triptychs/0034_0034.jpg
eval/colorft_3h_latest_val_triptychs/0035_0035.jpg
eval/colorft_3h_latest_val_triptychs/0036_0036.jpg
eval/colorft_3h_latest_val_triptychs/0037_0037.jpg
eval/colorft_3h_latest_val_triptychs/0038_0038.jpg
eval/colorft_3h_latest_val_triptychs/0039_0039.jpg
eval/colorft_3h_latest_val_triptychs/0040_0040.jpg
eval/colorft_3h_latest_val_triptychs/0041_0041.jpg
eval/colorft_3h_latest_val_triptychs/0042_0042.jpg
eval/colorft_3h_latest_val_triptychs/0043_0043.jpg
eval/colorft_3h_latest_val_triptychs/0044_0044.jpg
eval/colorft_3h_latest_val_triptychs/0045_0045.jpg
eval/colorft_3h_latest_val_triptychs/0046_0046.jpg
eval/colorft_3h_latest_val_triptychs/0047_0047.jpg
eval/colorft_3h_latest_val_triptychs/0048_0048.jpg
eval/colorft_3h_latest_val_triptychs/0049_0049.jpg
eval/colorft_3h_latest_val_triptychs/0050_0050.jpg
eval/colorft_3h_latest_val_triptychs/0051_0051.jpg
eval/colorft_3h_latest_val_triptychs/0052_0052.jpg
eval/colorft_3h_latest_val_triptychs/0053_0053.jpg
eval/colorft_3h_latest_val_triptychs/0054_0054.jpg
eval/colorft_3h_latest_val_triptychs/0055_0055.jpg
eval/colorft_3h_latest_val_triptychs/0056_0056.jpg
eval/quadtych_colorft_3h_latest_vs_baseline_val/0000_0000.jpg
eval/quadtych_colorft_3h_latest_vs_baseline_val/0001_0001.jpg
eval/quadtych_colorft_3h_latest_vs_baseline_val/0002_0002.jpg
eval/quadtych_colorft_3h_latest_vs_baseline_val/0003_0003.jpg
eval/quadtych_colorft_3h_latest_vs_baseline_val/0004_0004.jpg
eval/quadtych_colorft_3h_latest_vs_baseline_val/0005_0005.jpg
eval/quadtych_colorft_3h_latest_vs_baseline_val/0006_0006.jpg
eval/quadtych_colorft_3h_latest_vs_baseline_val/0007_0007.jpg
eval/quadtych_colorft_3h_latest_vs_baseline_val/0008_0008.jpg
eval/quadtych_colorft_3h_latest_vs_baseline_val/0009_0009.jpg
eval/quadtych_colorft_3h_latest_vs_baseline_val/0010_0010.jpg
eval/quadtych_colorft_3h_latest_vs_baseline_val/0011_0011.jpg
eval/quadtych_colorft_3h_latest_vs_baseline_val/0012_0012.jpg
eval/quadtych_colorft_3h_latest_vs_baseline_val/0013_0013.jpg
eval/quadtych_colorft_3h_latest_vs_baseline_val/0014_0014.jpg
eval/quadtych_colorft_3h_latest_vs_baseline_val/0015_0015.jpg
eval/quadtych_colorft_3h_latest_vs_baseline_val/0016_0016.jpg
eval/quadtych_colorft_3h_latest_vs_baseline_val/0017_0017.jpg
eval/quadtych_colorft_3h_latest_vs_baseline_val/0018_0018.jpg
eval/quadtych_colorft_3h_latest_vs_baseline_val/0019_0019.jpg
eval/quadtych_colorft_3h_latest_vs_baseline_val/0020_0020.jpg
eval/quadtych_colorft_3h_latest_vs_baseline_val/0021_0021.jpg
eval/quadtych_colorft_3h_latest_vs_baseline_val/0022_0022.jpg
eval/quadtych_colorft_3h_latest_vs_baseline_val/0023_0023.jpg
eval/quadtych_colorft_3h_latest_vs_baseline_val/0024_0024.jpg
eval/quadtych_colorft_3h_latest_vs_baseline_val/0025_0025.jpg
eval/quadtych_colorft_3h_latest_vs_baseline_val/0026_0026.jpg
eval/quadtych_colorft_3h_latest_vs_baseline_val/0027_0027.jpg
eval/quadtych_colorft_3h_latest_vs_baseline_val/0028_0028.jpg
eval/quadtych_colorft_3h_latest_vs_baseline_val/0029_0029.jpg
eval/quadtych_colorft_3h_latest_vs_baseline_val/0030_0030.jpg
eval/quadtych_colorft_3h_latest_vs_baseline_val/0031_0031.jpg
eval/quadtych_colorft_3h_latest_vs_baseline_val/0032_0032.jpg
eval/quadtych_colorft_3h_latest_vs_baseline_val/0033_0033.jpg
eval/quadtych_colorft_3h_latest_vs_baseline_val/0034_0034.jpg
eval/quadtych_colorft_3h_latest_vs_baseline_val/0035_0035.jpg
eval/quadtych_colorft_3h_latest_vs_baseline_val/0036_0036.jpg
eval/quadtych_colorft_3h_latest_vs_baseline_val/0037_0037.jpg
eval/quadtych_colorft_3h_latest_vs_baseline_val/0038_0038.jpg
eval/quadtych_colorft_3h_latest_vs_baseline_val/0039_0039.jpg
eval/quadtych_colorft_3h_latest_vs_baseline_val/0040_0040.jpg
eval/quadtych_colorft_3h_latest_vs_baseline_val/0041_0041.jpg
eval/quadtych_colorft_3h_latest_vs_baseline_val/0042_0042.jpg
eval/quadtych_colorft_3h_latest_vs_baseline_val/0043_0043.jpg
eval/quadtych_colorft_3h_latest_vs_baseline_val/0044_0044.jpg
eval/quadtych_colorft_3h_latest_vs_baseline_val/0045_0045.jpg
eval/quadtych_colorft_3h_latest_vs_baseline_val/0046_0046.jpg
eval/quadtych_colorft_3h_latest_vs_baseline_val/0047_0047.jpg
eval/quadtych_colorft_3h_latest_vs_baseline_val/0048_0048.jpg
eval/quadtych_colorft_3h_latest_vs_baseline_val/0049_0049.jpg
eval/quadtych_colorft_3h_latest_vs_baseline_val/0050_0050.jpg
eval/quadtych_colorft_3h_latest_vs_baseline_val/0051_0051.jpg
eval/quadtych_colorft_3h_latest_vs_baseline_val/0052_0052.jpg
eval/quadtych_colorft_3h_latest_vs_baseline_val/0053_0053.jpg
eval/quadtych_colorft_3h_latest_vs_baseline_val/0054_0054.jpg
eval/quadtych_colorft_3h_latest_vs_baseline_val/0055_0055.jpg
eval/quadtych_colorft_3h_latest_vs_baseline_val/0056_0056.jpg
nafnet_realestate.onnx
ONNX
nafnet_realestate.pth
nafnet_realestate_colorft_3h.pth
nafnet_realestate_colorft_3h_fp16.onnx
ONNX
nafnet_realestate_colorft_3h_fp16.onnx.data
nafnet_realestate_colorft_3h_fp32.onnx
ONNX
nafnet_realestate_colorft_3h_fp32.onnx.data