ARTICLE DETAIL

资讯详情

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

LaMa 图像修复:3 分钟出图,256 分辨率训练为何能修 2K 大图?

LaMa 图像修复:3 分钟出图,256 分辨率训练为何能修 2K 大图? LaMa 图像修复3 分钟出图256 分辨率训练为何能修 2K 大图【免费下载链接】lama LaMa Image Inpainting, Resolution-robust Large Mask Inpainting with Fourier Convolutions, WACV 2022项目地址: https://gitcode.com/GitHub_Trending/la/lamaLaMa 是 WACV 2022 的开源 inpainting 项目核心是傅里叶卷积只用 256×256 训练就能修复 2K 大图。这篇带你从 clone 到第一张修复结果只要 3 分钟再讲清原理、部署姿势和训练自己模型的路径。3 分钟跑通第一个修复 先看到效果再谈原理。最短路径就三步克隆仓库并装环境固定版本很关键别用最新 torch 硬上git clone https://gitcode.com/GitHub_Trending/la/lama cd lama pip install torch1.8.0 torchvision0.9.0 pip install -r requirements.txt准备素材一个文件夹里放原图image1.png旁边放同名掩码image1_mask001.png白色是要填的洞。掩码可以用项目自带的随机掩码生成器批量造配置在 configs/data_gen/ 里分 thick / medium / thin 三档想模拟大面积删减就选 thick。仓库里有一张示例原图感受一下输入长什么样下载好预训练模型 big-lamaREADME 里有下载地址解压到项目根目录然后一键推理export TORCH_HOME$(pwd) export PYTHONPATH$(pwd) python3 bin/predict.py model.path$(pwd)/big-lama \ indir$(pwd)/LaMa_test_images outdir$(pwd)/output几分钟后去output/看结果洞被填上了纹理方向、重复图案基本对得上。注意第 0 行的export别忘了它决定了感知损失权重的查找路径。傅里叶卷积凭什么修大图 先说普通卷积的尴尬一个 3×3 卷积核每次只盯着身边几像素想看清整幅图得叠十几层。修复大掩码时模型经常只盯着洞口边缘打转洞里的重复纹理地板条纹、栅栏、布料花纹接不上。LaMa 的做法是让网络先给模型戴上一副全局眼镜。传统卷积是从盯局部像素切换到细节放大而傅里叶卷积直接感受整体节奏先做 FFT 把图像从空间域搬到频率域——在那里一整幅图被压缩成一组频率成分高频是边缘纹理低频是大块布局在频率域做一次 1×1 卷积相当于同时操作全图再做逆变换回到空间域。核心代码其实就三行ffc.py 实现 里的FourierUnitffted torch.fft.rfftn(x, dim(-2, -1), normortho) # 空间域 → 频域 ffted self.conv_layer(ffted) # 频域里一次卷积全局生效 output torch.fft.irfftn(ffted, sx.shape[-2:], dim(-2, -1), normortho)这就是大规模掩码修复能泛化的关键频率表示天然不关心图像是 256×256 还是 2048×2048条纹的疏密在不同分辨率下是同一组频率系数只是变长了。模型在 256×256 上学到怎么按频率续写纹理放大到 2K 依然成立——这就是 README 里那句 resolution-robust 的底气。大掩码长这样黑色全是要填的实现上它没有全盘替换卷积而是让 75% 通道走傅里叶分支、25% 走普通卷积看 big-lama 训练配置 里ratio_gin: 0.75就懂兼顾了全局感和局部细节。损失函数在暗中打分 ⚖️你训练时只盯着一个 loss 数字背后其实是几位裁判同时给分各管一摊L1 像素裁判权重 10只算未遮挡区域要求没遮的地方不许动防止模型顺手把你保留的像素也改了。对抗裁判r1 型 GAN权重 10判别器专门挑刺修复区假就扣它分逼生成器出像真拍的而不是平均脸。特征匹配裁判权重 100全场最高不看最终像素对比生成器和判别器中间层特征是否对得上管的是整体结构一致性。分割感知裁判resnet_pl权重 30拿 ADE20k 语义分割特征当尺子确保草地位置填出来的还是草地。语义图大概长这样不同颜色是一类区域四位裁判的权重写在 lama-fourier.yaml 的losses段里想偏重哪类质量就调哪个权重。这套多损失组合解决了 inpainting 的老问题单看 L1 会糊单看 GAN 会飘合在一起才又稳又像。本地到云端选对部署姿势 三种环境方案对比都来自 README 和 docker 脚本维度pip venvCondaDocker搭建步骤手动装两个包 requirements按 conda_env.yml 一条命令零配置镜像拉下来就能跑GPU 支持自己装对 CUDA 版 torch 才行要额外指定 cudatoolkit镜像自带--gpus all直接用可复现性最容易被版本坑中等最强团队/线上首选适合快速验证、改代码调试长期开发机生产环境、批量跑图选择建议个人尝鲜用 venv 最快要上服务直接用 DockerGPU 推理一行bash docker/2_predict_with_gpu.sh $(pwd)/big-lama $(pwd)/LaMa_test_images $(pwd)/output脚本本质就是帮你docker run挂上模型目录、输入目录、输出目录再把参数透传给predict.py你以后加refineTrue、dataset.img_suffix.jpg之类参数直接跟在后面就行。进阶训练你自己的修复模型 ️想在自己的领域比如商品图、老照片上训一个专用模型流程是备图 → 造掩码 → 写位置配置 → 开训四步按这个目录结构整理图片数量有最低要求my_dataset/ ├── train/ # 训练原图掩码运行时自动生成 ├── val_source/ # 2000 张以上 ├── visual_test_source/ # 100 张以上 └── eval_source/ # 2000 张以上对 val / visual_test / eval 各跑一次掩码生成thick、thin、medium 三档建议都生成python3 bin/gen_mask_dataset.py \ configs/data_gen/random_thick_512.yaml \ my_dataset/val_source/ \ my_dataset/val/random_thick_512/ --ext jpg写一个三行的位置配置放进 configs/training/location/指明data_root_dir、out_root_dir、tb_dir。开训python3 bin/train.py -cn lama-fourier locationmy_dataset data.batch_size10。训练过程会按 val 集表现自动挑最好的几个 checkpoint最后拿没见过的eval/跑bin/evaluate_predicts.py出 FID / SSIM / LPIPS 指标。避坑清单 ⚠️显存爆了推理时refineTrue是显存大头默认还想占 2 张卡见 default.yaml 的refiner段单卡不够就先关掉训练时把data.batch_size从 10 往下砍到 4 或 2。版本对不上项目钉死的是 torch 1.8.0 / 1.8.1 pytorch-lightning 1.2.9 hydra-core 1.1.0.dev6新 torch 大概率报奇怪的张量错误别省这个时间。CUDA 不匹配Docker 镜像基于 cuda 10.2 构建宿主机驱动太老就跑不起升驱动或换 Dockerfile-cuda111 那条线。掩码没被识别文件名必须严格是原图名_maskXXX后缀图片后缀记得在configs/prediction/default.yaml的img_suffix里同步jpg 图漏改.png是最常见的跑通了但没修复。忘了 export 环境变量TORCH_HOME/PYTHONPATH没设轻则感知损失权重找不到重则 import 直接失败。内存占用心里有数下面这张内存 profile 是掩码生成子模块的实测曲线稳定在 150MB 上下、峰值 240MB 出头说明预处理环节不吃资源瓶颈基本都在模型推理LaMa 适合谁用 一句话选型你的场景是大面积挖洞 分辨率不固定LaMa 就是首选如果洞都很小轻量模型更快如果你要懂内容的语义擦除LaMa 可以接在分割模型SAM 之类后面当执行层。下一步建议今天先 clone 下来把bin/predict.py跑通明天把 Docker 版走一遍确认自己机器上 8GB 显存够用再决定要不要按第 5 节的流程训一个领域模型。【免费下载链接】lama LaMa Image Inpainting, Resolution-robust Large Mask Inpainting with Fourier Convolutions, WACV 2022项目地址: https://gitcode.com/GitHub_Trending/la/lama创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表