Watermark-Removal 是一个基于机器学习的图像修复工具,专注于移除图片中的水印。该项目基于TensorFlow 1.x实现,强烈推荐使用Docker方式部署,以规避复杂的版本依赖问题。

以下是一份详细的部署教程。


📋 部署前准备

  1. 核心依赖:
    • Docker (强烈推荐): 官方推荐方式,可完美隔离环境。
    • 或 Python 环境 (备选): 需要 Python 3.x,但必须解决 TensorFlow 1.15.0 与新版环境的兼容性问题。
  2. 必要文件:
    • 预训练模型: 这是运行的关键。你需要从项目README中提供的链接(在“Run”部分)下载 model 目录。
    • 输入图像: 准备一张包含水印的待处理图片。

🐳 第一步:使用 Docker 部署 (推荐)

这是最可靠、成功率最高的方法。

  1. 克隆仓库

    1
    2
    git clone https://github.com/zuruoke/watermark-removal.git
    cd watermark-removal
  2. 构建Docker镜像
    在项目根目录下执行:

    1
    docker build -t watermark-removal .

    这将根据 Dockerfile 创建一个包含所有必要依赖的镜像。

  3. 下载并准备模型

    • 从README提供的链接下载模型文件的压缩包。
    • 将其解压到项目根目录下的 model/ 文件夹中。关键步骤:确保 model/ 目录内包含权重文件和一个名为 checkpoint 的文本文件(如果下载的是 checkpoint.txt必须重命名checkpoint)。
  4. 准备输入和输出目录

    • 创建一个存放输入图片的目录,例如 input_images,并将你的图片放入其中。
    • 创建一个存放处理结果的目录,例如 output_images
  5. 运行容器
    使用以下命令,将本地目录挂载到容器中并执行处理:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    docker run --rm \
    -v "$(pwd)/model:/repo/model" \
    -v "$(pwd)/input_images:/input" \
    -v "$(pwd)/output_images:/output" \
    watermark-removal \
    --checkpoint_dir /repo/model \
    --image '/input/你的图片文件名.jpg' \
    --output '/output/输出文件名.png' \
    --watermark_type istock
    • 参数说明:
      • --checkpoint_dir: 容器内模型路径。
      • --image: 容器内输入图片路径。
      • --output: 容器内输出图片路径。
      • --watermark_type: 水印类型,示例为 istock,具体支持类型需查阅项目文档。

🐍 第二步:本地 Python 环境运行 (备选/开发)

如果你熟悉Python环境管理且愿意处理兼容性问题,可以尝试本地运行。

  1. 克隆仓库

    1
    2
    git clone https://github.com/zuruoke/watermark-removal.git
    cd watermark-removal
  2. 创建虚拟环境 (强烈推荐)

    1
    2
    3
    python -m venv .venv
    source .venv/bin/activate # Linux/macOS
    # .\.venv\Scripts\activate # Windows
  3. 安装依赖 (关键且困难)

    • 项目需要 TensorFlow 1.15.0。由于该版本过旧,直接 pip install 可能失败。你可以尝试指定版本安装:

      1
      pip install tensorflow==1.15.0
    • 安装 neuralgym 工具包:

      1
      pip install git+https://github.com/JiahuiYu/neuralgym
    • 安装其他依赖:

      1
      pip install -r requirements.txt
  4. 准备模型文件
    同Docker方式,下载 model 目录并放置在项目根目录下,确保 checkpoint 文件命名正确

  5. 运行处理

    1
    2
    3
    4
    5
    python main.py \
    --image path-to-input-image \
    --output path-to-output-image \
    --checkpoint_dir model/ \
    --watermark_type istock

❗ 重要注意事项

  1. TensorFlow版本: 这是最大的挑战。项目严格依赖于TensorFlow 1.15,与TensorFlow 2.x完全不兼容。使用Docker是规避此问题的最佳选择。
  2. 模型文件: 确保正确下载并放置了预训练模型,且 checkpoint 文件名无误。模型缺失是导致运行失败的常见原因。
  3. Google Colab (已不可用): 项目README中明确标注Google Colab方式为 “broken” (已损坏),请勿使用。
  4. 项目状态: 项目较旧(最后活跃提交在2022-2024年),依赖环境较老。Docker是成功率最高的运行方式

🧪 第三步:测试与验证

运行完成后,检查你的 output_images 目录,查看生成的图片,验证水印是否被有效移除。如果效果不理想,可以尝试检查 --watermark_type 参数是否正确。


至此,您已经完成了Watermark-Removal的部署。强烈建议您从Docker方式开始,这是最直接、最可靠的路径。如果遇到问题,可以查看Docker容器的输出日志以获取错误信息。