open-edge-platform/anomalib
An anomaly detection library comprising state-of-the-art algorithms and features such as experiment management, hyper-parameter optimization, and edge inference.
📚 Anomalib 는 무엇인가요?
Anomalib 는 시각적 이상 탐지(이미지 및 비디오에서 결함 또는 분포 외 객체 탐지)를 위한 오픈소스 파이썬 라이브러리입니다. 다음과 같은 기능을 제공합니다:
- 모듈식 API 와 명령줄 인터페이스(CLI)를 통한 학습, 추론, 벤치마킹.
- PyTorch Lightning 기반으로 구축된 연구 논문(예: PatchCore, PaDiM, STFPM 등)의 바로 사용 가능한 구현.
- OpenVINO 로의 내보내기 파이프라인을 통해 Intel CPU/GPU에서 빠르게 실행 가능한 모델 생성.
- 실험 추적(W&B, Comet, TensorBoard) 및 비프로그래머를 위한 저코드 웹 UI인 Anomalib Studio 와 같은 옵션 도구.
주로 이미지 기반 이상 탐지에 초점을 맞추고 있지만, Tabular 헬퍼를 통해 표 형식 데이터도 지원합니다.
🚀 시작하기
설치
- 기본 –
pip install anomalib(또는uv pip install anomalib). - 하드웨어 전용 확장 –
[cu126],[cu130],[rocm],[xpu]등을 추가하여 적절한 PyTorch 빌드를 가져옵니다. - 옵션 기능 –
[openvino],[clip],[vlm],[loggers],[notebooks], 또는[full](모든 기능). - 소스에서 – 리포지토리 복제 후
uv sync --extra <backend>또는pip install -e "[dev,<backend>]"사용.
빠른 학습 (Python API)
from anomalib.data import MVTecAD
from anomalib.models import Patchcore
from anomalib.engine import Engine
dm = MVTecAD()
model = Patchcore()
engine = Engine()
engine.fit(datamodule=dm, model=model)
빠른 학습 (CLI)
anomalib train --model Patchcore --data anomalib.data.MVTecAD
추론
- API –
engine.predict(datamodule=dm, model=model, ckpt_path='…') - CLI –
anomalib predict --model Patchcore --data MVTecAD --ckpt_path model.ckpt - Torch, Lightning, Gradio UI, OpenVINO 가속 추론을 지원합니다.
🛠️ 주요 기능
| 기능 | 중요성 |
|---|---|
| 모듈식 API 및 CLI | 모델, 데이터셋, 설정을 변경해도 코드 재작성 없이 가능. |
| 다양한 모델 모음 | 하나의 장소에서 많은 공개된 이상 탐지 방법에 접근 가능. |
| Lightning 기반 | 학습 루프, 체크포인트, 미스드 프리시전, 멀티 GPU를 최소한의 코드로 처리. |
| OpenVINO 내보내기 | PyTorch 체크포인트를 Intel 최적화 IR로 변환해 낮은 지연 시간의 에지 배포 가능. |
| 추론 도구 | 배치 예측, Gradio 데모, ROS/MQTT 통합용 미리 준비된 스크립트. |
| Anomalib Studio | 사전 릴리스된 노코드 웹 앱(Docker 또는 독립형)으로 UI를 통해 모델 학습 및 배포 가능. |
| 실험 로깅 | Lightning 로거를 통해 W&B, Comet, TensorBoard 등에 연결 가능. |
| 하드웨어 인식 확장 | CPU, CUDA, ROCm, Intel XPU 백엔드에 맞게 필요한 것만 설치 가능. |
📊 벤치마킹 및 평가
하나의 명령어로 전체 벤치마킹 실행:
anomalib benchmark --config tools/experimental/benchmarking/sample.yaml
이 명령어는 표준 데이터셋(MVTec-AD 등)에서 선택된 모델을 평가하고 AUROC, 픽셀 수준 AUC, 추론 속도 등의 메트릭을 출력합니다.
🤖 Anomalib Studio (저코드 UI)
- 웹 기반 – FastAPI 백엔드와 React 프론트엔드를 사용.
- USB/IP 카메라, 이미지 폴더, 스트림에 연결 가능.
- 산업용 파이프라인을 위해 ROS 메시지, MQTT 등으로 출력 가능.
- Docker 이미지 또는 독립형 UI로 배포.
- 여전히 사전 릴리스 상태이며, API 변경이 예상됩니다.
📚 문서 및 커뮤니티
- 전체 문서: https://anomalib.readthedocs.io
- 예제 노트북은
examples/notebooks에 있음. - 지원은 디스커션 포럼과 GitHub Issues에서.
CONTRIBUTING.md의 가이드에 따라 기여하세요.
🎓 누구에게 적합한가요?
- 시각적 이상 탐지 논문의 재현 가능한 베이스라인을 필요로 하는 연구자.
- 에지 장치(Intel CPU/GPU, NVIDIA GPU, AMD ROCm)에서 결함 탐지 파이프라인을 구축하는 산업 엔지니어.
- 저수준 학습 루프를 작성하지 않고 다양한 이상 탐지 아키텍처를 실험하고 싶은 데이터 사이언티스트.
📦 빠른 참조
- 파이썬 버전: 3.10+
- 핵심 종속성: PyTorch 2.6+, Lightning 2.2+, OpenVINO 2024.0 (옵션)
- 라이선스: Apache-2.0 (see
LICENSE) - 최신 릴리스: v2.6.2 (
Tabular.from_file보안 강화).
- 리포지토리 탐색, CLI 사용, 노트북 탐험을 통해 이상 탐지의 실제 작동을 경험해 보세요!*
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트