简介
概览
IMDLBenCo 是一个模块化的,针对图像篡改检测和定位任务设计的深度学习工具包,基于的PyTorch框架设计。可以用于:
- 复现篡改检测领域SoTA模型
- 创建自己的篡改检测模型
- 批量比较多种视觉Backbone和篡改检测特征提取器的性能
设计理念与优势
IMDL-BenCo的设计理念为:尽最大可能平衡 科研代码对于自定义的需求 与 深度学习框架对于标准化的要求 二者的矛盾,并力求提高实验速度与代码开发效率。
在这个理念下,IMDL-BenCo代码框架上具有如下特点和优势:
- 易于上手
- 相比于传统框架(比如OpenMMLab和Detectron2),IMDL-BenCo不依赖于注册机制
- 方便配合IDE跳转查看类与函数的定义,而无需在文档的海洋中焦头烂额。
- 代码风格与PyTorch原生框架高度相似,非常利于深度学习的初学者无缝上手使用。
- 相比于传统框架(比如OpenMMLab和Detectron2),IMDL-BenCo不依赖于注册机制
- 速度很快:
- 基于CLI(命令行界面,Command Line Interface)的代码生成机制。
- 如果了解Vue等Web前端框架的CLI会非常熟悉这种模式,可以减少花费在框架代码上的时间,专注于模型设计与实验。
- 同时满足灵活的自定义需求,直接在生成的代码修改即可,而不无需对框架源码hack。
- GPU加速的评价指标计算,远超Sklearn等机器学习库原生方法的速度。
- 熟练者仍可以使用注册机制实现大批量实验管理,高效完成消融实验。
- 基于CLI(命令行界面,Command Line Interface)的代码生成机制。
- 功能全面:
- 集成常见篡改检测数据集的下载和管理(TODO)
- 集成丰富的预处理算法,包括MVSS-Net提出的多种“Naive Transform”,并支持根据Albumentations库的接口自定义新的预处理接口。
- 集成多种SoTA模型,可以直接用于实验和测试。
- 集成了多种视觉任务优秀的Backbone,比如ResNet,Swin和SegFormer等等,可以用于基准进行实验。
- 集成了多种篡改检测特征提取器,包含Sobel,BayarConv等等。
- 可以配合Backbone进行测试。
- 也可以在框架之外通过import直接使用于其他不依赖于IMDL-BenCo的模型代码构建。
- 集成多种常见篡改检测领域常见评价指标,包含Image-level和Pixel-level的F1、AUC等等。
- 集成Tensorboard等可视化工具,只需要向指定接口传入图像,标量即可。
- 集成复杂度分析(参数量,FLOPs),Grad-CAM等分析工具,方便快捷完成论文图表。
动机
篡改检测任务长久以来都面临着预处理不统一,训练数据集不统一,评价指标不统一,模型不开源,训练代码不开源等等问题,严重影响了模型之间的公平比较。
因此,我们希望通过一套规范而统一的代码框架,减轻开源工作所需的代码压力,鼓励更多的开源工作。并正确且准确地完成对于现有模型性能的评估与比较。推进整个图像篡改检测领域更加健康、公平的可持续发展。