Watermark-Removal:基于机器学习图像修复的水印去除开源项目
Watermark-Removal 是 Chimzuruoke Okafor(zuruoke)开源的项目,采用机器学习图像修复(image inpainting)方法从图片中去除水印,目标是让修复结果与原图(ground truth)难以区分。项目灵感来自 Contextual Attention(CVPR 2018)与 Gated Convolution(ICCV 2019 Oral)两篇图像修复论文,基于 TensorFlow 1.15.0 与 neuralgym 实现,支持 Docker 运行,并提供了 Google Colab 流程(README 标注为 broken)。
社区作者 · zZz
它解决什么问题
项目定位:一个开源的、基于机器学习的图像修复(inpainting)项目,用于从图片中去除水印,作者称其结果与 ground truth 版本“完全无法区分”。
技术来源:作者说明项目受 Contextual Attention(CVPR 2018,Generative Image Inpainting with Contextual Attention)和 Gated Convolution(ICCV 2019 Oral,Free-Form Image Inpainting with Gated Convolution)启发,并致谢 Chu-Tak Li 的 Medium 系列文章,称该系列让其深入理解了上述图像修复论文。
运行环境:项目使用 TensorFlow 1.15.0,并依赖 neuralgym(来自 JiahuiYu/neuralgym)。README 提供两条运行路径:
Docker 与 Google Colab(Colab 路径被作者明确标注为 broken)。运行前都需要额外下载作者提供的 model 目录(README 中以 “this link” 指代,具体地址在来源正文中未给出)。
调用方式
Docker 运行时通过挂载模型目录、输入目录与输出目录,并指定 --checkpoint_dir、--image、--output、--watermark_type 参数执行;Colab 中则通过运行 main.py 并传入 --image、--output、--checkpoint_dir、--watermark_type 参数完成去水印。示例中 --watermark_type 取值为 istock。引用信息:作者给出引用格式 “Zuruoke (2021). Watermark Removal: a machine learning image inpainting task. GitHub Repository. https://doi.org/10.5281/zenodo.20551267”,并在 README 中列出 Contextual Attention 与 Free-Form Image Inpainting with Gated Convolution 两条 BibTeX 引用。
许可与模型细节:来源正文未给出开源许可证、具体模型名称、参数规模、权重文件大小与最低硬件配置,这些信息需以仓库实际内容核验。
适用对象:对图像修复/水印去除感兴趣的研究者与开发者、需要复现 Contextual Attention 与 Gated Convolution 相关工作的学习者,以及希望通过
Docker或 Colab 快速试用去水印流程的用户。
— 本文由 AI 根据公开来源辅助整理,命令、版本与许可证请在使用前到原始页面复核。
安装 / 开始使用
准备:需要 Git、Docker(Docker 路径);或使用 Google Colab(Colab 路径,README 标注为 broken)。项目依赖 TensorFlow 1.15.0 与 neuralgym,且需额外下载作者提供的 model 目录。
一、Docker 方式
步骤 1 · 克隆仓库到本地:
git clone https://github.com/zuruoke/watermark-removal步骤 2 · 在仓库根目录构建 Docker 镜像:
docker build -t watermark-removal .- 使用 README 中给出的链接下载 model 目录(来源正文只写为 “using this link”,未给出具体下载地址,需到原页面获取并核验)。
- 创建并运行容器执行去水印:
docker run --rm -v '<path_to_model_dir>:/repo/model' -v '<path_to_input_dir>:/input' -v '<path_to_output_dir>:/output' watermark-removal --checkpoint_dir /repo/model --image '/input/<input_image_file>' --output '/output/<output_image_file>' --watermark_type istock其中需把 <path_to_model_dir>、<path_to_input_dir>、<path_to_output_dir>、<input_image_file>、<output_image_file> 替换为实际路径与文件名;--watermark_type 示例值为 istock。
二、Google Colab 方式(README 明确标注为 broken)
- 打开并使用 Google Colab。
- 克隆本仓库:!git clone https://github.com/zuruoke/watermark-removal
- 切换目录到仓库:!cd watermark-removal
- 降级 TensorFlow:Google Colab 使用较新的 TensorFlow 2.x,而本项目使用 1.15.0,因此执行 !pip install tensorflow==1.15.0,然后重启运行时(README 说明较新版本的 Google Colab 可能不需要重启运行时)。
- 安装 tensorflow 工具包 neuralgym:!pip install git+https://github.com/JiahuiYu/neuralgym
- 使用 README 给出的链接下载 model 目录并放到 model/ 下;注意下载后 Google Drive 有时会自动追加 .txt,需要把 checkpoint.txt 重命名为 checkpoint。
!python main.py --image path-to-input-image --output path-to-output-image --checkpoint_dir model/ --watermark_type istock
- 完成以上准备后运行主脚本去水印:
常见问题与注意点
- Colab 流程本身被作者标注为 broken,优先考虑 Docker 方式。
- TensorFlow 版本冲突:本项目需要 1.15.0,与 Colab 默认的 2.x 不兼容,降级后可能需要重启运行时。
- 缺少 neuralgym 会导致运行失败,需单独安装。
- checkpoint 文件名问题:model 目录中 checkpoint.txt 必须重命名为 checkpoint。
- model 目录必须下载齐全,并在运行时通过 --checkpoint_dir 指向正确位置。
