IMDLBenCo 文档IMDLBenCo 文档
  • 基本信息

    • 简介
    • 框架设计
  • 快速上手

    • 安装
    • 数据集准备
    • 案例一:使用Model Zoo训练复现SoTA论文
    • 案例二:使用Model Zoo配合checkpoint快速测试
    • 案例三:使用benco init实现你自己的模型
    • 案例四:推理并保存一个数据集的mask和label
    • 获得模型的参数量和FLOPs
  • API文档
  • 数据集

    • # 篡改检测数据集索引
    • AIGC生成内容数据集索引
  • 模型和论文

    • BenCo内实现的模型
    • 其他模型,算法,论文
  • English
  • 简体中文
GitHub
  • 基本信息

    • 简介
    • 框架设计
  • 快速上手

    • 安装
    • 数据集准备
    • 案例一:使用Model Zoo训练复现SoTA论文
    • 案例二:使用Model Zoo配合checkpoint快速测试
    • 案例三:使用benco init实现你自己的模型
    • 案例四:推理并保存一个数据集的mask和label
    • 获得模型的参数量和FLOPs
  • API文档
  • 数据集

    • # 篡改检测数据集索引
    • AIGC生成内容数据集索引
  • 模型和论文

    • BenCo内实现的模型
    • 其他模型,算法,论文
  • English
  • 简体中文
GitHub
  • 指南

    • 简介
    • 框架设计
  • 快速上手

    • 安装
    • 数据集准备
    • 案例一:使用Model Zoo训练复现SoTA论文
    • 案例二:使用Model Zoo配合checkpoint快速测试
    • 案例三:使用benco init实现你自己的模型
    • 案例四:推理并保存一个数据集的mask和label
    • 获得模型的参数量和FLOPs

案例二:使用Model Zoo配合checkpoint快速测试

我们认为学习最快的方式就是“Learn by Doing”(边做边学),所以通过几个案例来帮助使用者快速上手。

总的来说IMDL-BenCo通过类似git、conda这样的命令行调用方式帮助你快速完成图像篡改检测科研项目的开发。如果你学过vue等前端技术,那按照vue-cli来理解IMDLBenCo的设计范式会非常轻松。

无论如何,请先参考安装完成IMDL-BenCo的安装。

本章动机

本章提供了按照IMDL-BenCo论文中大部分实验中用到的checkpoint,可以根据本案例完成推理和指标测试,无需训练。

Checkpoint 链接

我们在百度网盘公开了一些我们论文中report的指标所使用的模型权重以供参考。根据模型名称以及训练时使用的数据集命名,在百度网盘的下载链接如下:

  • 百度网盘:imdlbenco_ckpt
    • 链接: https://pan.baidu.com/s/1DtkOwLCTunvI3d_GAAj2Dg?pwd=bchm 、
    • 提取码: bchm
  • Google Drive: IMDLBenCo_ckpt
    • Link:https://drive.google.com/drive/folders/1DCqc016-N4YvoMKKA87bFtrCdPVIDxAp?usp=sharing

需要注意的格式问题

因为train.py得到的checkpoint-xx.pth需要同时保存模型权重,优化器参数,以及scaler参数,所以当使用torch.load("checkpoint-xx.pth")后可以看到它按照字典形式组织,包括了model,optimizer等等很多参数,会导致整个checkpoint是三倍于单纯的模型权重的大小。其形式大致如下:

{
    "model": <state_dict of model>,
    "optimizer": <state_dict of model>,
    ......
}

为了节省网盘空间,所以本工作release的checkpoint只保留了“model"字段,丢弃了其余字段进行上传。但不影响正常复现和Evaluation。如下所示。

ckpt_name = "iml_vit_casiav2.pth"
path_ckpt = "/mnt/data0/public_datasets/IML/IMDLBenCo_ckpt"

import torch
import os
full_path = os.path.join(path_ckpt, ckpt_name)
obj = torch.load(full_path)
print(obj.keys())

# 结果为:
# dict_keys(['model'])

如何使用下载的checkpoint完成推理

  1. 我们建议首先通过benco init model_zoo在一个路径下,比如/mnt/data0/xiaochen/workspace/test_benco/imlvit_inference,生成model_zoo的所有代码文件。(如果不清楚请参考上一章)
  2. 而后,下载对应的checkpoint后,模仿train.py输出checkpoint的格式将其拷贝并修改文件名到一个路径下。比如你可以将iml_vit_casiav2.pth修改为checkpoint-0.pth,然后将其放在一个空文件夹/mnt/data0/xiaochen/workspace/test_benco/imlvit_inference/ckpts/下。
  3. 这样,你修改对应的demo_test_iml_vit.sh中的--checkpoint_path字段为这个文件夹路径即可。只要配置好相应的数据集路径,即可通过执行如下指令自动执行推理过程并观察结果。
sh ./runs/demo_test_iml_vit.sh
在 GitHub 上编辑此页
上次更新: 2025/5/5 09:14
贡献者: Ma Xiaochen (马晓晨), Sunnyhaze
Prev
案例一:使用Model Zoo训练复现SoTA论文
Next
案例三:使用benco init实现你自己的模型