Project Icon

anomalib

视觉异常检测算法开发与部署工具库

Anomalib是一个专注于视觉异常检测的开源深度学习库。它提供多种先进算法实现,支持模型训练、推理、基准测试和超参数优化。该库基于Lightning框架开发,简化了代码结构,并支持模型导出为OpenVINO格式以加速推理。Anomalib还包含便捷的推理工具,方便用户快速部署异常检测模型。其模块化设计和完善的文档使其成为研究和应用视觉异常检测的理想工具。

Anomalib标志

用于基准测试、开发和部署深度学习异常检测算法的库


主要特点文档笔记本许可证

python pytorch openvino

合并前检查 文档状态 codecov 下载量 Discord


👋 简介

Anomalib是一个深度学习库,旨在收集最先进的异常检测算法,以便在公共和私有数据集上进行基准测试。Anomalib提供了几种最新文献中描述的异常检测算法的现成实现,以及一套便于开发和实现自定义模型的工具。该库重点关注视觉异常检测,其目标是检测和/或定位数据集中图像或视频内的异常。Anomalib不断更新新的算法和训练/推理扩展,所以请持续关注!

Anomalib的预测结果

主要特点

  • 简单且模块化的API和CLI,用于训练、推理、基准测试和超参数优化。
  • 最大的公开深度学习异常检测算法和基准数据集集合。
  • 基于Lightning的模型实现,减少样板代码,将实现工作限制在最基本的内容上。
  • 大多数模型可以导出为OpenVINO中间表示(IR),以在Intel硬件上加速推理。
  • 一套推理工具,用于快速轻松地部署标准或自定义异常检测模型。

📦 安装

Anomalib提供两种安装库的方法。第一种是通过PyPI,第二种是通过本地安装。如果你想使用库而不对源代码进行任何更改,建议使用PyPI安装。如果你想对库进行更改,则建议进行本地安装。

从PyPI安装 使用pip安装库是开始使用anomalib最简单的方法。
pip install anomalib

这将使用pyproject.toml文件中的依赖项安装Anomalib CLI。Anomalib CLI是用于训练、推理、基准测试和超参数优化的命令行界面。如果你想将库作为Python包使用,可以使用以下命令安装:

# 获取安装参数的帮助
anomalib install -h

# 安装完整包
anomalib install

# 详细输出安装过程
anomalib install -v

# 仅安装核心包选项,用于通过Torch和Lightning训练和评估模型
anomalib install --option core

# 仅安装OpenVINO选项。这对于边缘部署很有用,因为wheel包大小较小。
anomalib install --option openvino
从源代码安装 要从源代码安装,你需要克隆仓库并使用pip以可编辑模式安装库。
# 强烈建议使用虚拟环境
# 使用conda
yes | conda create -n anomalib_env python=3.10
conda activate anomalib_env

# 或使用你喜欢的虚拟环境
# ...

# 克隆仓库并以可编辑模式安装
git clone https://github.com/openvinotoolkit/anomalib.git
cd anomalib
pip install -e .

这将使用pyproject.toml文件中的依赖项安装Anomalib CLI。Anomalib CLI是用于训练、推理、基准测试和超参数优化的命令行界面。如果你想将库作为Python包使用,可以使用以下命令安装:

# 获取安装参数的帮助
anomalib install -h

# 安装完整包
anomalib install

# 详细输出安装过程
anomalib install -v

# 仅安装核心包选项,用于通过Torch和Lightning训练和评估模型
anomalib install --option core

# 仅安装OpenVINO选项。这对于边缘部署很有用,因为wheel包大小较小。
anomalib install --option openvino

🧠 训练

Anomalib支持基于API和CLI的训练。API更灵活,允许更多自定义,而CLI训练使用命令行界面,对于那些希望开箱即用的人来说可能更容易。

通过API训练
# 导入所需模块
from anomalib.data import MVTec
from anomalib.models import Patchcore
from anomalib.engine import Engine

# 初始化数据模块、模型和引擎
datamodule = MVTec()
model = Patchcore()
engine = Engine()

# 训练模型
engine.fit(datamodule=datamodule, model=model)
通过CLI训练
# 获取训练参数的帮助,运行:
anomalib train -h

# 使用默认值进行训练
anomalib train --model Patchcore --data anomalib.data.MVTec

# 通过覆盖参数进行训练
anomalib train --model Patchcore --data anomalib.data.MVTec --data.category transistor

# 使用配置文件进行训练
anomalib train --config <path/to/config>

🤖 推理

Anomalib包含多个推理脚本,包括Torch、Lightning、Gradio和OpenVINO推理器,用于使用训练/导出的模型进行推理。这里我们展示一个使用Lightning推理器的推理示例。对于其他推理器,请参阅推理文档

通过API进行推理

以下示例演示了如何通过加载检查点文件来执行Lightning推理。

# 假设已从前面的步骤初始化了datamodule、model和engine,
# 可以通过检查点文件进行预测,如下所示:
predictions = engine.predict(
    datamodule=datamodule,
    model=model,
    ckpt_path="path/to/checkpoint.ckpt",
)
通过CLI进行推理
# 要获取参数帮助,请运行:
anomalib predict -h

# 使用默认值进行预测。
anomalib predict --model anomalib.models.Patchcore \
                 --data anomalib.data.MVTec \
                 --ckpt_path <path/to/model.ckpt>

# 覆盖参数进行预测。
anomalib predict --model anomalib.models.Patchcore \
                 --data anomalib.data.MVTec \
                 --ckpt_path <path/to/model.ckpt>
                 --return_predictions

# 使用配置文件进行预测。
anomalib predict --config <path/to/config> --return_predictions

⚙️ 超参数优化

Anomalib支持使用wandbcomet.ml进行超参数优化(HPO)。更多详情请参阅HPO文档

通过API进行HPO
# 将在v1.1版本中启用
通过CLI进行HPO

以下示例演示了如何对Patchcore模型执行HPO。

anomalib hpo --backend WANDB  --sweep_config tools/hpo/configs/wandb.yaml

🧪 实验管理

Anomalib通过pytorch lightning loggers集成了各种实验跟踪库,如Comet、tensorboard和wandb。更多信息请参阅日志记录文档

通过API进行实验管理
# 将在v1.1版本中启用
通过CLI进行实验管理

以下是如何启用超参数、指标、模型图和测试数据集图像预测的日志记录示例。

首先需要修改config.yaml文件以启用日志记录。以下示例展示了如何启用日志记录:

# 在此处放置实验管理配置。
# 在此处放置实验管理CLI命令。

📊 基准测试

Anomalib提供了一个基准测试工具,用于评估给定数据集上异常检测模型的性能。基准测试工具可用于评估模型在给定数据集上的性能,或比较多个模型在给定数据集上的性能。

Anomalib中的每个模型都在一组数据集上进行了基准测试,结果可在src/anomalib/models/<type>/<model_name>/README.md中找到。例如,Patchcore模型的MVTec AD结果可在相应的README.md文件中找到。

通过API进行基准测试
# 将在v1.1版本中启用
通过CLI进行基准测试

要运行基准测试工具,请执行以下命令:

anomalib benchmark --config tools/benchmarking/benchmark_params.yaml

✍️ 引用

如果您使用并喜欢这个库,请使用以下方式引用它 🤗

@inproceedings{akcay2022anomalib,
  title={Anomalib: A deep learning library for anomaly detection},
  author={Akcay, Samet and Ameln, Dick and Vaidya, Ashwin and Lakshmanan, Barath and Ahuja, Nilesh and Genc, Utku},
  booktitle={2022 IEEE International Conference on Image Processing (ICIP)},
  pages={1706--1710},
  year={2022},
  organization={IEEE}
}

👥 贡献

对于那些想为这个库做出贡献的人,请查看CONTRIBUTING.md了解详情。

感谢所有已经做出贡献的人 - 我们感谢你们的支持!

openvinotoolkit/anomalib的贡献者
项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号