LaMa 图像修复实战教程:推理、掩码生成与指标评测全流程完整指南
LaMa 图像修复实战教程推理、掩码生成与指标评测全流程完整指南【免费下载链接】lama LaMa Image Inpainting, Resolution-robust Large Mask Inpainting with Fourier Convolutions, WACV 2022项目地址: https://gitcode.com/GitHub_Trending/la/lamaLaMaLarge Mask Inpainting是 WACV 2022 提出的高分辨率鲁棒图像修复模型训练时只用 256x256却能修复到约 2k 分辨率。如果你不清楚如何填补图像缺失区域、如何批量生成掩码、如何量化修复质量本文可以带你从零搭建一套本地可用的图像修复流水线。 概念铺垫一张表看懂 LaMa 的目录结构与配置项在动手之前先搞清楚每个目录管什么后面排错时才知道去哪里找。核心入口是四个命令行脚本bin/predict.py、bin/gen_mask_dataset.py、bin/train.py、bin/evaluate_predicts.py其余目录按下表理解路径类型职责configs/prediction/default.yaml配置推理默认参数indir/outdir、模型路径、图片后缀、refine 开关configs/data_gen/配置thin / medium / thick × 256 / 512 共 6 套随机掩码生成参数configs/training/配置模型结构lama-fourier、big-lama 等与数据路径定义docker/脚本生成掩码、GPU 推理、指标评测三个一键脚本fetch_data/脚本Places、CelebA-HQ 数据集的下载与准备流程saicinpainting/training/modules/源码FFC 傅里叶卷积、多空洞卷积等核心网络层saicinpainting/evaluation/源码FID / SSIM / LPIPS 指标实现与掩码工具models/lpips_models/权重感知评测所需的 alex / squeeze / vgg 权重命名约定是后面所有流程的前提原图与掩码放在同一目录掩码命名为image1_mask001.png与image1.png配对若图片后缀不是.png记得在推理配置里同步dataset.img_suffix。 快速上手四步跑出第一次大掩码图像修复这一节解决最快看到效果的问题装环境、下模型、准备数据、跑推理全程不需要改动任何源码。1. 准备环境与依赖git clone https://gitcode.com/GitHub_Trending/la/lama cd lama export TORCH_HOME$(pwd) export PYTHONPATH$(pwd) pip install -r requirements.txt注意TORCH_HOME和PYTHONPATH这两个变量要在同一终端会话中导出后再运行任何脚本否则权重查找与模块导入都会出问题。2. 下载预训练模型推荐先拿效果最好的big-lama.zip入口见 README.md 中的说明解压到仓库根目录即可如果还需要 CelebA-HQ 版本再下载完整模型包。3. 准备图片与掩码文件说明image1.png待修复的原图image1_mask001.png掩码白色区域即需要修复的位置4. 执行推理python3 bin/predict.py \ model.path$(pwd)/big-lama \ indir$(pwd)/LaMa_test_images \ outdir$(pwd)/output效果outdir中会输出与原图同名的修复结果由配置中out_key: inpainted决定默认加载best.ckpt检查点。️ 进阶定制三个典型场景的完整配置跑通之后多数人会遇到三类需求不想装环境想用 Docker、掩码想自己生成、想给质量打个数。下面分别给出对应做法。场景一用 Docker 做 GPU 批量推理问题宿主机不想装 PyTorch 全家桶或者想直接把卡拉满加速。做法docker/ 下提供了现成脚本三个位置参数依次是模型目录、图片目录、输出目录bash docker/2_predict_with_gpu.sh $(pwd)/big-lama $(pwd)/LaMa_test_images $(pwd)/output脚本内部会挂载这三个目录进容器并带--gpus all执行predict.py镜像定义见 docker/Dockerfile。宿主机无卡时也可以在命令里追加devicecpu覆盖默认配置先在本地把流程验证通。效果宿机零依赖批量任务直接产出修复图容器跑完即销毁。场景二从自己的图片批量生成不同厚度的掩码问题掩码从哪里来不同粗细的掩码怎么批量造出来做法用随机掩码生成脚本第一个参数选掩码风格后两个参数分别是输入图片目录与输出目录bash docker/1_generate_masks_from_raw_images.sh \ configs/data_gen/random_medium_512.yaml \ /directory_with_input_images \ /directory_where_to_store_images_and_masks \ --ext png掩码风格按厚度 × 数据集选择与论文测试集一致随机种子不固定每次结果会略有差异厚度Places 512x512CelebA 256x256窄Narrowrandom_thin_512.yamlrandom_thin_256.yaml中Mediumrandom_medium_512.yamlrandom_medium_256.yaml宽Widerandom_thick_512.yamlrandom_thick_256.yaml效果输出目录中生成裁剪原图 配对掩码格式与推理入口要求完全一致可以直接丢进bin/predict.py处理。场景三用 refine 精修大图并用指标量化质量问题大图想再精修一轮另外需要数字而不是肉眼看着还行。做法推理时追加refineTrue即python3 bin/predict.py refineTrue ...即可启用多尺度精修相关参数在 configs/prediction/default.yaml 的refiner段n_iters: 15每个尺度的迭代数、max_scales: 3、px_budget: 1800000。评测则跑python3 bin/evaluate_predicts.py \ configs/eval2_gpu.yaml \ my_dataset/eval/random_thick_512 \ inference/my_dataset/random_thick_512 \ inference/my_dataset/random_thick_512_metrics.csv效果输出包含 FID、SSIM、LPIPS 三项指标的 CSV / metrics 文件无卡环境可换configs/eval2_cpu.yaml。 排错与验证常见现象快速定位与本地验证方法遇到问题时建议先按下表的现象 → 原因 → 解法对照大多数卡壳都能在三分钟内定位。现象模型下载入口失效、找不到 big-lama 文件。原因README 中旧的网盘链接已陆续过期。解法按 README 指引从 HuggingFacebig-lama.zip或 Google Drive 重新下载解压到仓库根目录。现象首次运行报模块找不到或权重加载失败。原因没有导出TORCH_HOME与PYTHONPATH两个环境变量。解法在仓库根目录先执行export TORCH_HOME$(pwd) export PYTHONPATH$(pwd)再运行脚本。现象部分图片没有输出结果。原因图片与掩码文件名不配对或后缀声明不符。解法核对掩码是否遵循image_maskXXX.ext规则并检查dataset.img_suffix是否与实际后缀一致。现象开 refine 后特别慢甚至显存不足。原因精修默认对最多 3 个尺度各做 15 次迭代开销很大。解法先用refineFalse验证流程确需精修时调小n_iters或px_budget。现象Docker 推理报 GPU 相关错误。原因宿主机缺少 NVIDIA 驱动或 nvidia-container-runtime。解法先以devicecpu跑通流程再补装 GPU 运行环境。本地验证方法挑 2~3 张带掩码的样例图先用 CPU 小批量跑一次推理确认outdir中出现同名的 inpainted 结果再执行一次评测看到 FID / SSIM / LPIPS 均为有限数值即可认为整条流水线已正常工作。 资源索引README.md环境搭建、推理、训练与评测的完整说明configs/prediction/default.yaml推理配置默认字段configs/data_gen/六套随机掩码生成参数docker/掩码生成、GPU 推理与评测的一键脚本saicinpainting/training/modules/FFC 傅里叶卷积等核心模块源码【免费下载链接】lama LaMa Image Inpainting, Resolution-robust Large Mask Inpainting with Fourier Convolutions, WACV 2022项目地址: https://gitcode.com/GitHub_Trending/la/lama创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考