jacobgil/pytorch-grad-cam

Advanced AI Explainability for computer vision. Support for CNNs, Vision Transformers, Classification, Object detection, Segmentation, Image similarity and more.

What it solves

该库提供了一套完整的计算机视觉像素归因(Pixel Attribution)方法集合,允许开发者和研究人员通过可视化 AI 模型关注的图像部分,来诊断模型预测。它通过强调对特定预测贡献最大的区域,帮助将“黑盒”视觉模型转变为可解释人工智能(XAI)。

How it works

该包实现了各种类激活映射(Class Activation Mapping, CAM)方法,用于分析 PyTorch 模型目标层的激活值和梯度。它支持广泛的技术,包括基于梯度的技术(如 GradCAM 和 GradCAM++)、无梯度技术(如 AblationCAM 和 ScoreCAM)以及基于 PCA 的技术(如 EigenCAM)。为了处理不同的架构,它使用“重塑转换”(reshape transforms)将激活值转换为空间图像,将“模型目标”(model targets)来精确定义模型输出应被解释的内容。

Who it’s for

  • AI 研究人员:正在开发新的可解释性方法或对现有方法进行基准测试的人士。
  • ML 工程师:需要在生产或开发过程中诊断模型行为的开发者。
  • 计算机视觉从业者:任何从事 CNN 或 Vision Transformers (ViT) 相关的任务(如分类、目标检测和语义分割)的人士。

Highlights

  • 广泛的方法支持:包括大量最先进的技术,例如 GradCAM、HiResCAM、FullGrad 和 ShapleyCAM。
  • 架构无关性:适用于常见的 CNN 和 Vision Transformers(例如 ResNet、ViT、Swin Transformer)。
  • 任务多样性:支持分类、目标检测、语义分割和嵌入相似度(embedding similarity)。
  • 评估指标:包括内置指标(如 ROAD 和 ARCC)以定量地检查解释的可信度。
  • SESS Wrapper:一种元方法(meta-method),使用滑动窗口和多尺度技术,使解释在面对尺度变化和干扰物时更具鲁棒性。
  • 平滑化工具:提供测试时增强(test-time augmentation)和特征值平滑化(eigen-smoothing)以减少可视化中的噪声。"},

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目