ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

LaMa 图像修复完整指南:从安装到出图的大掩码修复实践

LaMa 图像修复完整指南:从安装到出图的大掩码修复实践 LaMa 图像修复完整指南从安装到出图的大掩码修复实践【免费下载链接】lama LaMa Image Inpainting, Resolution-robust Large Mask Inpainting with Fourier Convolutions, WACV 2022项目地址: https://gitcode.com/GitHub_Trending/la/lamaLaMa 图像修复是一个开源项目专门处理图片中大面积缺损的自动补全你只需给一张原图和一张掩码白色标出要消除区域、其余为黑色的同尺寸图它就能把缺口自然地填上。做水印去除、路人消除、素材修复的工程师都能直接拿它上手。LaMa 是什么大掩码图像修复的一句话定位LaMa 是一个只训练在 256×256 上、却能稳定修复约 2K 分辨率图像的开源模型发表于 WACV 2022。大掩码指的是被消除的区域可以非常大。官方 thick 掩码配置里单张图的掩码面积上限就是整张图的 50%max_tamper_area: 0.5。普通修复模型处理这种大洞会糊掉LaMa 的核心卖点就是这类场景。上图是项目仓库自带的一张高分辨率示例图。LaMa 对这类远超训练分辨率的输入仍然能正常修复这是 README 里明确标注的特性。⚡ LaMa 快速上手指南从安装到出图的最短路径整个流程四步克隆仓库、装依赖、放模型、跑推理。第 1 步克隆仓库git clone https://gitcode.com/GitHub_Trending/la/lama第 2 步装依赖以 Python 虚拟环境为例# 先装指定版本 PyTorch再装项目其余依赖 pip install torch1.8.0 torchvision0.9.0 pip install -r requirements.txt也可以用 Condaconda env create -f conda_env.yml。更省事的方式是用官方 Docker 镜像见 docker/ 目录。第 3 步下载模型按 README.md 里的说明下载 big-lama 预训练模型官方最强权重基于 Places2 Places Challenge 训练解压到项目根目录得到big-lama文件夹。第 4 步准备数据并出图把原图和掩码放在同一文件夹掩码文件命名成[图片名]_mask[编号][后缀]例如cat.png配cat_mask001.png。后缀名要在 configs/prediction/default.yaml 里改img_suffix。然后运行# 运行推理模型路径 输入目录 输出目录 export TORCH_HOME$(pwd) export PYTHONPATH$(pwd) python3 bin/predict.py model.path$(pwd)/big-lama indir$(pwd)/input outdir$(pwd)/output输出目录里会生成修复后的图片。想要更平滑的高清结果在命令后追加refineTrue开启二次精修。原理一句话讲透傅里叶卷积如何看懂整张图一句话普通卷积像只看得见手边一小块的修补匠傅里叶卷积像能听全曲谱的调音师它先看图的全局再修局部。把一张图想成一首歌。普通卷积一次只能听相邻几个音窟窿一大它手里没有足够的旋律信息只能瞎补。傅里叶卷积先把图拆解成频率域的和弦低频是和弦走向整体布局、明暗分布高频是吉他泛音纹理、边缘细节。它在频率域上直接改写这些音符再还原回图片所以即使半个图都空了它依然握着全局上下文。实现可以看 ffc.py 里的 FFC 模块。在 big-lama.yaml 中生成器的残差块把 75% 的通道ratio_gin: 0.75放在全局频率域里运算这就是它对大掩码稳定的来源。损失函数也值得知道一句感知损失是拿人眼看着像不像来衡量、而不是逐像素比数字的损失。LaMa 同时用了 L1只约束已知区域权重 10、特征匹配权重 100、ResNet 感知损失权重 30和 GAN 对抗损失r1权重 10分别管保真、结构、观感和真实感。上图展示了仓库中分割掩码的生成效果颜色越丰富的区域说明掩码生成器对图内结构识别得越细。训练时的随机掩码就是按这类方式批量造出来的。 实用调参技巧分辨率、掩码大小与 batch size 具体数值建议先跑通默认配置再按下面三处微调。分辨率怎么定训练分辨率固定 256×256推理不限。默认推理会自动把图像边长补到 8 的倍数pad_out_to_modulo: 8。开启精修时default.yaml 里px_budget: 1800000表示精修会把图像缩放到高×宽 ≤ 180 万像素约 1342×1342最多 3 个尺度、每尺度 15 次迭代。你的图小于这个值就保持原尺寸超过 2K 的图建议先缩到 2K 再送进去显存和耗时都更友好。掩码大小怎么选掩码有三档预设在 configs/data_gen/ 下random_thin_*细窄、random_medium_*中等、random_thick_*大块各有 256/512 两种尺寸。粗看差别thick 的块状掩码最大边长 300px、面积可占到 50%适合消除大物体thin 更细碎适合去线、去水印。生成掩码用# 训练时用命令行覆盖配置把 batch size 调成 4 python3 bin/train.py -cn lama-fourier locationmy_dataset data.batch_size4batch size 与显存官方训练配置默认batch_size: 10对应 256 分辨率。如果你换 512 分辨率训练或显存只有 8GB建议从 2~4 起步再逐步上调。总训练轮数默认 40 个 epoch自动保留 val 指标最好的 5 个 checkpoint见 trainer 配置。默认精度是 32 位显存紧张时可以把配置里的precision改成 16 开混合精度。上图是仓库中掩码生成流程的内存占用曲线峰值约 250MB。也就是说造掩码这一步本身不吃内存瓶颈在后面的训练和推理。 生态与周边工具基于 LaMa 图像修复的第三方项目LaMa 是模型层社区在它上面长出了不少开箱即用的工具。挑 4 个常见的项目用途适用场景lama-cleaner自带 Web 界面的图片消除服务可自建团队内部上线一个消除工具CoreMLaMa把 LaMa 转成 Apple Core ML 格式iPhone、Mac 上端侧推理simple-lama-inpainting一个 pip 包几行代码调用 LaMa在自己的 Python 业务里快速集成Inpaint-AnythingSAM 分割 LaMa 修复用一句话框出目标再消除免手画掩码手画掩码嫌麻烦的话Inpaint-Anything 这类先分割、后修复的组合最省事。小结下一步建议建议你先下载 big-lama 权重用自己的 3~5 张图把上面的推理命令跑通这是成本最低的体验方式。效果不满意时优先加refineTrue开精修再调掩码大小。如果你的业务集中在人脸或某一类场景可以用 CelebA-HQ 数据按lama-fourier-celeba配置微调一个专用模型。【免费下载链接】lama LaMa Image Inpainting, Resolution-robust Large Mask Inpainting with Fourier Convolutions, WACV 2022项目地址: https://gitcode.com/GitHub_Trending/la/lama创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表