All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog.
- 🚀 Add ensembling methods for tiling to Anomalib by @blaz-r in #1226
- 📚 optimization/quantization added into 500 series by @paularamo in #2197
- 🚀 Add PIMO by @ashwinvaidya17 in #2329
- 📚 Add PIMO tutorial advanced i (fixed) by @jpcbertoldo in #2336
- 🚀 Add VLM based Anomaly Model by @ashwinvaidya17 in #2344
- 📚 Add PIMO tutorials/02 advanced ii by @jpcbertoldo in #2347
- 📚 Add PIMO tutorials/03 advanced iii by @jpcbertoldo in #2348
- 📚 Add PIMO tutorials/04 advanced iv by @jpcbertoldo in #2352
- 🚀 Add datumaro annotation dataloader by @ashwinvaidya17 in #2377
- 📚 Add training from a checkpoint example by @samet-akcay in #2389
- 🔨 Refactor folder3d to avoid complex-structure (C901) issue by @samet-akcay in #2185
- Update open-clip-torch requirement from <2.26.1,>=2.23.0 to >=2.23.0,<2.26.2 by @dependabot in #2189
- Update sphinx requirement by @dependabot in #2235
- Refactor Lightning's
trainer.model
totrainer.lightning_module
by @samet-akcay in #2255 - Revert "Update open-clip-torch requirement from <2.26.1,>=2.23.0 to >=2.23.0,<2.26.2" by @samet-akcay in #2270
- Update ruff configuration by @samet-akcay in #2269
- Update timm requirement by @dependabot in #2274
- Refactor BaseThreshold to Threshold by @samet-akcay in #2278
- 🔨 Lint: Update Ruff Config - Add Missing Copyright Headers by @samet-akcay in #2281
- Reduce rich methods by @ashwinvaidya17 in #2283
- Enable Ruff Rules: PLW1514 and PLR6201 by @samet-akcay in #2284
- Update nncf export by @ashwinvaidya17 in #2286
- Linting: Enable
PLR6301
, # could be a function, class method or static method by @samet-akcay in #2288 - 🐞 Update
setuptools
requirement for PEP 660 support by @samet-akcay in #2320 - 🔨 Update the issue templates by @samet-akcay in #2363
- 🐞 Defer OpenVINO import to avoid unnecessary warnings by @samet-akcay in #2385
- 🔨 Make single GPU benchmarking 5x more efficient by @mzweilin in #2390
- 🐞 Export the flattened config in benchmark CSV. by @mzweilin in #2391
- 🔨 Export experiment duration in seconds in CSV. by @mzweilin in #2392
- 🐞 Fix installation package issues by @samet-akcay in #2395
- 🔨 Deprecate try import and replace it with Lightning's package_available by @samet-akcay in #2373
- Add check before loading metrics data from checkpoint by @blaz-r in #2323
- Fix transforms for draem, dsr and rkde by @blaz-r in #2324
- Makes batch size dynamic by @Marcus1506 in #2339
- @Marcus1506 made their first contribution in #2339
Full Changelog: https://github.com/openvinotoolkit/anomalib/compare/v1.1.1...v1.2.0
Full Changelog:
- 📚Ppipelines how-to guide by @ashwinvaidya17 in #2109
- Set permissions for github workflows by @djdameln in #2127
- Update timm requirement from <=1.0.3,>=0.5.4 to >=0.5.4,<=1.0.7 by @dependabot in #2151
- 🚀 Use gh actions runners for pre-commit checks by @ashwinvaidya17 in #2160
- Bump AlexanderDokuchaev/md-dead-link-check from 0.8 to 0.9 by @dependabot in #2162
- Added accuracy control quantization by @adrianboguszewski in #2070
- 🔨Remove device postfix by @ashwinvaidya17 in #2233
- Fix: get MLFLOW_TRACKING_UTI from env variables as default by @CarlosNacher in #2107
- Fix normalization by @alexriedel1 in #2130
- Fix image-level heatmap normalization by @djdameln in #2131
- Fix: efficient ad model_size str fixes by @Gornoka in #2159
- Fix the CI by @samet-akcay in #2178
- Fix BTech Dataset by @samet-akcay in #2180
- @CarlosNacher made their first contribution in #2107
Full Changelog: https://github.com/openvinotoolkit/anomalib/compare/v1.1.0...v1.1.1
- 🚀 Add support for MLFlow logger by @DoMaLi94 in #1847
- 📚 Add Transform behaviour+documentation by @djdameln in #1953
- 📚 Add documentation on how to use the tiler by @blaz-r in #1960
- 💬 Add Discord badge to
README.md
by @samet-akcay in #2012 - 🚀 Add Auto-Encoder based FRE by @nahuja-intel in #2025
- 🚀 Add compression and quantization for OpenVINO export by @adrianboguszewski in #2052
- 🚀 Add Anomalib Pipelines by @ashwinvaidya17 in #2060
- 🚀 Add
from_config
API: Create a path between API & configuration file (CLI) by @harimkang in #2065 - 🚀 Add data filter in tar extract by @ashwinvaidya17 in #2084
- 🔨 Move all export functionalities to AnomalyModule as base methods by @thinhngo-x in (#1803)
- ⬆️ Update torch and lightning package versions by @samet-akcay in #1949
- 🔨 Use default model-specific eval transform when only train_transform specified by @djdameln(https://github.com/djdameln) in (#1953)
- 🔨 Replace
@abstractproperty
since it is deprecated by @samet-akcay in #1964 - 🛠️ Update OptimalF1 Score by @ashwinvaidya17 in #1972
- 🔨 Rename OptimalF1 to F1Max for consistency with the literature, by @samet-akcay in #1980
- 🔨 WinCLIP: set device in text embedding collection and apply forward pass with no grad, by @djdameln in #1984
- 🔨 WinCLIP improvements by @djdameln in #1985
- 🚀 Update OpenVINO and ONNX export to support fixed input shape by @adrianboguszewski in #2006
- 🔨 Update lightning inference by @djdameln in #2018
- ⬆️ Upgrade wandb by @ashwinvaidya17 in #2040
- 🔨 Refactor Export by @ashwinvaidya17 in #2057
- ⬆️ Update
pyproject.toml
soliccheck
can pick the license by @samet-akcay in #2074 - ⬆️ Update timm requirement from <=0.9.16,>=0.5.4 to >=0.5.4,<=1.0.3 by @dependabot in #2075
- 🔨 Update model
README.md
files by @samet-akcay in #2076
- 🗑️ Remove labeler and update codeowners by @samet-akcay in #1946
- 🗑️ Remove requirements directory by @samet-akcay in #1945
- 🗑️ Remove Docker related files by @ashwinvaidya17 in #2039
- 🗑️ Remove references to nightly tests by @ashwinvaidya17 in #2048
- 🗑️ Remove unnecessary jsonargparse dependencies by @davnn in #2046
- Fix image-level heatmap normalization in visualizer by @djdameln in #2131
- 🐞 Fix dimensionality mismatch issue caused by the new kornia version by @samet-akcay in #1944
- 🐞 Fix DFM PyTorch inference by @adrianboguszewski in #1952
- 🐞 Fix anomaly map shape to also work with tiling by @blaz-r in #1959
- 🐞 Fix EfficientAD's pretrained weigths load path by @seyeon923 in #1966
- 🐞 fixbug: use BinaryPrecisionRecallCurve instead of PrecisionRecallCurve by @rglkt in #1956
- 🚨 Hotfix: compute precision recall on raw scores by @ashwinvaidya17 in #1973
- 🐞 Minor fix to remove input_size from Padim config by @ashwinvaidya17 in #1988
- 🐞 Fix Reverse Distillation export to ONNX by @adrianboguszewski in #1990
- 🐞 Fix DSR training when no GPU by @adrianboguszewski in #2004
- 🐞 Fix efficient ad by @abc-125 in #2015
- 🐞 Fix keys in data configs to fit AnomalibDataModule parameters by @abc-125 in #2032
- 🐞 Fix Export docstring in CLI by @ashwinvaidya17 in #2058
- 🐞 Fix UFlow links by @ashwinvaidya17 in #2059
- @seyeon923 made their first contribution in #1966
- @rglkt made their first contribution in #1956
- @DoMaLi94 made their first contribution in #1847
Full Changelog: https://github.com/openvinotoolkit/anomalib/compare/v1.0.1...v1.1.0
- Add requirements into
pyproject.toml
& Refactor anomalib installget_requirements
by @harimkang in #1808
- 📚 Update the getting started notebook by @samet-akcay in #1800
- 🔨Refactored-assert-statements-with-explicit-error-handling by @sahusiddharth in #1825
- 🔨Made-imagenette-path-configurable-in-config by @sahusiddharth in #1833
- 🛠️ Update changelog by @ashwinvaidya17 in #1842
- Remove input_size argument from models #1827 by @Shakib-IO in #1856
- 🚀 Allow validation splits from training data by @davnn in #1865
- 🛠️ Ensure images are loaded in RGB format by @davnn in #1866
- 🔨 Update OpenVINO predict to handle normalization inside the method. by @samet-akcay in #1875
- ✨ Upgrade TorchMetrics by @ashwinvaidya17 in #1879
- Address minor WinCLIP issues by @djdameln in #1889
- 🐞 Fix single-frame video input size by @djdameln (#1910)
- 🐞 Fix dobot notebook by @djdameln in #1852
- 🐞 Fix CLI config and update the docs. by @samet-akcay in #1886
- 🐞 Fix the error if the device in masks_to_boxes is not both CPU and CUDA by @danylo-boiko in #1839
- 🐞 Hot-fix wrong requirement for setup.py by @harimkang in #1823
- 🐞 Use right interpolation method in WinCLIP resize (#1889)
- 🐞 Fix the error if the device in masks_to_boxes is not both CPU and CUDA by @danylo-boiko in #1839
- @sahusiddharth made their first contribution in #1825
- @Shakib-IO made their first contribution in #1856
- @davnn made their first contribution in #1866
Full Changelog: https://github.com/openvinotoolkit/anomalib/compare/v1.0.0...v1.0.1
- 🚀 Add KMeans PyTorch Implementation to cfa model by @aadhamm in #998
- 🚀 Add DSR model by @phcarval in #1142
- ⚙️ Add
setuptools
as a requirement (viapkg_resources
) by @murilo-cunha in #1168 - 🚀 Add support to backbone URI in config. by @mzweilin in #1343
- ⚙️ Add extra checks to
TorchInferencer
model and metadata loading by @samet-akcay in #1350 - ⚙️ Handle
dict
objects inTorchInferencer
by @samet-akcay in #1354 - ⚙️ Add tag to workflow by @ashwinvaidya17 in #1382
- 🚀 Adding U-Flow method by @mtailanian in #1415
- 🚀 V1 by @ashwinvaidya17 in #1663
- 📚 Announce anomalib v1 on the main
README.md
by @samet-akcay in #1542 - 📚 Add docs for the depth data by @willyfh in #1694
- 📚 Add docs for the U-Flow model by @willyfh in #1695
- 📚 Add docs for the DSR model by @willyfh in #1700
- 📚 Add news section to docs by @samet-akcay in #1689
- 📚 Add test documentation to the readme file by @samet-akcay in #1734
- 🔨 Allow string types in CLI enums by @ashwinvaidya17 in #1741
- 🚀 Remove pl dependency from Anomalib CLI & Add install subcommand by @harimkang in #1748
- 📚 Add Secure development knowledge section to
SECURE.md
file by @samet-akcay in #1751 - 🔨 Add default metrics to Engine by @samet-akcay in #1769
- Enable image-level normalization flag by @ashwinvaidya17 in #1771
- Add explicit requirements to docs build workflow by @ashwinvaidya17 in #1787
- Add test case to model transform tests by @djdameln in #1795
- 📚 Add
GOVERNANCE.md
file by @samet-akcay in #1716 - 🔒 Add bandit checks to pre-commit by @samet-akcay in #1710
- 📚 Add sdd and contributing guidelines to the documentation by @samet-akcay in #1708
- Fix scheduler num_steps for EfficientAD by @blaz-r in #1705
- 🔒 Add GPG keys to sign the python wheel to publish on pypi by @samet-akcay in #1687
- 🔨 Version bump by @ashwinvaidya17 in #1305
- 🔨 Modify README custom dataset by @Kiminjo in #1314
- 🔨 Change the documentation URL in
README.md
and add commands to run each inferencer by @samet-akcay in #1326 - 🔨 Allow dynamic batch-sizes when exporting to ONNX, instead if fixed input shapes by @BeeAlarmed in #1347
- 🔨 README: Synchronize OV version with requirements by @sovrasov in #1358
- 🔨 update timm to 0.6.13 by @Gornoka in #1373
- 🔨 Refactor Reverse Distillation to match official code by @abc-125 in #1389
- 🔨 Address tiler issues by @djdameln in #1411
- 🔨 preexisting OpenCV version check added to
setup.py
, ran formatting pre-commit hooks on previous contribution. by @abdullamatar in #1424 - 🔨 Improved speed and memory usage of mean+std calculation by @belfner in #1457
- 🔨 Changed default inference device to AUTO in #1534
- 🔨 Refactor/extensions custom dataset by @abc-125 in #1562
- 📚 Modify the PR template by @samet-akcay in #1611
- 📚 Remove github pages by @samet-akcay in #1667
- 🔒 Validate path before processing by @samet-akcay in #1668
- 📚 Update RKDE lighting model file header (hence docs) with paper URL by @tobybreckon in #1671
- 🔒 Address checkmarx issues. by @samet-akcay in #1672
- 📚 Update contribution guidelines by @samet-akcay in #1677
- 🔒 Replace
md5
withsha-256
by @samet-akcay in #1680 - 🔨 Refactor Visualisation by @ashwinvaidya17 in #1693
- 🚀 Replace
albumentations
withtorchvision
transforms by @djdameln in #1706 - 💥 Create a script to upgrade v0.- configuration format to v1 by @samet-akcay in #1738
- 🔨 Refactor type alias by @ashwinvaidya17 in #1742
- 🔨 Remove Lightning dependencies from the CLI and Add
anomalib install
subcommand by @harimkang in #1748 - 🔨 Refactor
Engine.predict
method by @ashwinvaidya17 in #1772 - 🔨 Rename DynamicBufferModule to DynamicBufferMixin by @danylo-boiko in #1776
- 🔨 Refactor Engine args: Create workspace directory from API by @samet-akcay in #1773
- Change Dockerfile to fix #1775 by @thinhngo-x in #1781
- 🔨 📄 Change config location 2 by @ashwinvaidya17 in #1789
- Update setup logic in model and datamodule by @djdameln in #1794
- Cleanup notebooks by @djdameln in #1796
- 🔨 Remove access denied error by @samet-akcay in #1797
- 📚 Update the installation instructions by @samet-akcay in #1790
- Support only Python 3.10 and greater in #1299
- 🗑️ Remove HPO and Benchmarking from CLI by @ashwinvaidya17 in #1743
- 🔨 Remove CDF normalization and temporarily remove pipelines. by @samet-akcay in #1761
- 🐞 Fix unexpected key pixel_metrics.AUPRO.fpr_limit by @WenjingKangIntel in #1055
- 📚 Fix docs build by @ashwinvaidya17 in #1307
- 🐞 Fix tiling for Reverse Distillation and STFPM by @blaz-r in #1319
- 📚 Fix the readthedocs config by @samet-akcay in #1322
- 🐞 Fix PRO metric calculation on GPU by @blaz-r in #1317
- 🐞 Fix dockerfile cuda version by @phcarval in #1330
- 🐞 Fix patchcore interpolation by @jpcbertoldo in #1335
- 🔨 Efficient ad reduced memory footprint by @MG109 in #1340
- 📚 Fix(docs): typo by @pirnerjonas in #1353
- 🐞 Fix EfficientAD to use width and height of the input by @abc-125 in #1355
- 📚 Fix the broken link in training.rst by @samet-akcay in #1363
- 📚 Missing indentation in metrics.rst docs by @caiolang in #1379
- 🐞 Patch for the WinError183 on the OpenVino export mode by @ggiret-thinkdeep in #1386
- 🐞 Fix DRAEM by @blaz-r in #1431
- 🐞 Fix/efficient ad normalize before every validation by @abc-125 in #1441
- 🐞 Hotfix: Limit Gradio Version by @samet-akcay in #1458
- 🔨 Fixed DSR by @phcarval in #1486
- 📚 Fix result image URLs by @f0k in #1510
- 🐞 Fix broken 501 notebooks by @adrianboguszewski in #1630
- 🐞 Fixed shape error, allowing arbitary image sizes for EfficientAD by @holzweber in #1537
- 📚 Fix the broken images on
README.md
by @samet-akcay in #1666 - Fixed OpenVINO notebooks by @adrianboguszewski in #1678
- 🐞 Fix GMM test by @ashwinvaidya17 in #1696
- 📚 Fix indentation and add license for the ShanghaiTech Campus Dataset by @willyfh in #1701
- 🚨Fix predict_step in AnomalyModule by @ashwinvaidya17 in #1746
- Fix the imports to fit in OpenVINO 2023.3 by @prob1995 in #1756
- 📚 Documentation update: fix a typo of README by @youngquan in #1753
- 🐞Fix visualization by @ashwinvaidya17 in #1766
- 🩹Minor fixes by @ashwinvaidya17 in #1788
- ⏳ Restore Images by @ashwinvaidya17 in #1791
- @Kiminjo made their first contribution in #1314
- @murilo-cunha made their first contribution in #1168
- @aadhamm made their first contribution in #998
- @MG109 made their first contribution in #1340
- @BeeAlarmed made their first contribution in #1347
- @pirnerjonas made their first contribution in #1353
- @sovrasov made their first contribution in #1358
- @abc-125 made their first contribution in #1355
- @Gornoka made their first contribution in #1373
- @caiolang made their first contribution in #1379
- @ggiret-thinkdeep made their first contribution in #1386
- @belfner made their first contribution in #1457
- @abdullamatar made their first contribution in #1424
- @mtailanian made their first contribution in #1415
- @f0k made their first contribution in #1510
- @holzweber made their first contribution in #1537
- @tobybreckon made their first contribution in #1671
- @prob1995 made their first contribution in #1756
- @danylo-boiko made their first contribution in #1776
- @thinhngo-x made their first contribution in #1781
Full Changelog: https://github.com/openvinotoolkit/anomalib/compare/v0.7.0...v1.0.0
- AUPRO binning capability by @yann-cv in #1145
- Add support for receiving dataset paths as a list by @harimkang in #1265
- Add modelAPI compatible OpenVINO export by @ashwinvaidya17 in #1219
- Enable training with only normal images for MVTec by @djdameln in #1241
- Improve default settings of EfficientAD in #1143
- Added the tracer_kwargs to the TorchFXFeatureExtractor class by @JoaoGuibs in #1214
- Replace cdist in Patchcore by @blaz-r in #1267
- Ignore hidden directories when creating Folder dataset by @samet-akcay in #1268
- Fix typechecking error for toch.onnx.export by @ORippler in #1159
- Fix benchmarking type error by @blaz-r in #1155
- Fix incorrect shape mismatch between anomaly map and ground truth mask by @alexriedel1 in #1182
- Fix dataset keys in benchmarking notebook by @samet-akcay in #1242
- Remove config from argparse in OpenVINO inference script by @samet-akcay in #1257
- Fix EfficientAD number of steps for optimizer lr change by @samet-akcay in #1266
- Fix unable to read the mas image by @samet-akcay in #1277
- EfficientAD by @alexriedel1 in #1073
- AI-VAD bbox post-processing by @djdameln in #1103
- Add dataset categories to data modules by @samet-akcay in #1105
- Pass codedov token from environment by @ashwinvaidya17 in #1102
- OV API2.0 by @paularamo in #1098
- OV API1.0 by @paularamo in #1098
- Fix Fastflow ONNX export. by @jasonvanzelm in #1108
- Fix tile import typo by @xbkaishui in #1106
- Fix
pre-commit
issues caused by the EfficientAD PR by @samet-akcay in #1114 - Bump requests from 2.26.0 to 2.31.0 in /requirements by @dependabot in #1100
- @xbkaishui made their first contribution in #1106
- @jasonvanzelm made their first contribution in #1108
Full Changelog: https://github.com/openvinotoolkit/anomalib/compare/v0.5.1...v0.6.0
- Rename
metadata_path
tometadata
inOpenvinoInferencer
in #1101 - 📝 [Notebooks] - Simplify the dobot notebooks. by @samet-akcay in #1084
- Upgrade python to 3.10 by @samet-akcay in #1035
- 📝 [Notebooks] - Install anomalib via pip in the Jupyter Notebooks by @samet-akcay in #1091
- Update code-scan workflow to use Trivy by @yunchu in #1097
- Fix
init_state_dict
bug inwrap_nncf_model
in #1101 - Fix mypy pep561 by @WenjingKangIntel in #1088
- 📝 [Notebooks] Fix the broken formatting by @samet-akcay in #1090
- 📚 Add OpenVINO Inference to getting started notebook. by @samet-akcay in #897
- Mvtec 3d by @alexriedel1 in #907
- MVTec 3D and Folder3D by @alexriedel1 in #942
- add reorder=True argument in aupro by @triet1102 in #944
- always reorder inputs when computing AUROC by @djdameln in #945
- always reorder for aupr metric by @triet1102 in #975
- Add
README.md
files tonotebooks
directories and its subdirectories (#993) - Set transformations from the config file by @alexriedel1 in #990
- Add contributors to
README.md
by @samet-akcay in #995 - Add codeowners file by @samet-akcay in #1019
- Configure reference frame for multi-frame video clips by @djdameln in #1023
- [Algo] Attribute-based Representations for Accurate and Interpretable Video Anomaly Detection by @djdameln in #1040
- Switch to src layout by @samet-akcay in #921
- Remove
config
flag fromOpenVINOInferencer
(#939) - Add ruff as the main linter by @samet-akcay in #936
- Add a new workflow for code scanning by @yunchu in #940
- Enable bandit scanning by @yunchu in #954
- 🐳 Update Containers and Readme by @ashwinvaidya17 in #952
- Refactor AUPRO metric by @triet1102 in #991
- enable auto-fixing for ruff in pre-commit by @djdameln in #1004
- Refactor strings and ints into enum.Enum by @WenjingKangIntel in #1044
- Modify codecov upload by @ashwinvaidya17 in #1080
- Remove torchvision and torchtext by @samet-akcay in #903
- Remove codacy from ci docs by @ashwinvaidya17 in #924
- Remove config dependency from
OpenVINOInferencer
by @samet-akcay in #939 - Remove config from torch inferencer by @samet-akcay in #1001
- Bugfix code logic to allow for passing of
nn.Module
toTorchFXFeatureExtractor
by @ORippler in #935 - fix broken links to tutorials (ex guides) by @sergiev in #957
- Fixed outdated info in readme by @blaz-r in #969
- Fix ruff isort integration by @samet-akcay in #976
- Fix/samples dataframe annotation by @samet-akcay in #981
- Fixed openvino_inferencer in gradio_inference by @blaz-r in #972
- Fix issue in tutorial by @Ravindu987 in #997
- Fix tarfile vulnerability by @djdameln in #1003
- Cuda 11.4 dockerfile fix by @phcarval in #1021
- Make anomalib PEP 561 compliant for mypy by @WenjingKangIntel in #1038
- [Bug: 839] Crop in SSPCAB implementation by @isaacncz in #1057
- [Bug: 865] datamodule.setup() assertion failed by @isaacncz in #1058
- Fix logger message for test_split_ratio by @ugotsoul in #1071
- Fix notebook readme formatting by @samet-akcay in #1075
- @triet1102 made their first contribution in #944
- @sergiev made their first contribution in #957
- @blaz-r made their first contribution in #969
- @ineiti made their first contribution in #987
- @Ravindu987 made their first contribution in #997
- @phcarval made their first contribution in #1021
- @WenjingKangIntel made their first contribution in #1038
- @isaacncz made their first contribution in #1057
- @ugotsoul made their first contribution in #1071
Full Changelog: https://github.com/openvinotoolkit/anomalib/compare/v0.4.0...v0.5.0
- Add Dobot notebook (#928)
- Add ShanghaiTech Campus video anomaly detection dataset (#869)
- Add
pyupgrade
topre-commit
configs, and refactor based onpyupgrade
andrefurb
(#845) - Add CFA model implementation (#783)
- Add RKDE model implementation (#821)
- Add Visual Anomaly (VisA) dataset adapter (#824)
- Add Synthetic anomalous dataset for validation and testing (#822)
- Add Detection task type support (#822)
- Add UCSDped and Avenue dataset implementation (#822)
- Add base classes for video dataset and video datamodule (#822)
- Add base classes for image dataset and image dataModule (#822)
- ✨ Add CSFlow model (#657)
- Log loss for existing trainable models (#804)
- Add section for community project (#768)
- ✨ Add torchfx feature extractor (#675)
- Add tiling notebook (#712)
- Add posargs to tox to enable testing a single file (#695)
- Add option to load metrics with kwargs (#688)
- 🐞 Add device flag to TorchInferencer (#601)
- Configure reference frame for multi-frame video clips (#1023)
- Bump OpenVINO version to
2022.3.0
(#932) - Remove the dependecy on a specific
torchvision
andtorchmetrics
packages. - Bump PyTorch Lightning version to v.1.9.- (#870)
- Make input image normalization and center cropping configurable from config (#822)
- Improve flexibility and configurability of subset splitting (#822)
- Switch to new datamodules design (#822)
- Make normalization and center cropping configurable through config (#795)
- Switch to new changelog format. (#777)
- Rename feature to task (#769)
- make device configurable in OpenVINO inference (#755)
- 🚨 Fix torchmetrics version (#754)
- Improve NNCF initilization (#740)
- Migrate markdownlint + issue templates (#738)
- 🐞 Patch Timm Feature Extractor (#714)
- Padim arguments improvements (#664)
- 📊 Update DFM results (#674)
- Optimize anomaly score calculation for PatchCore (#633)
- Deprecated PreProcessor class (#795)
- Deprecate OptimalF1 metric in favor of AnomalyScoreThreshold and F1Score (#796)
- Fix bug in
anomalib/data/utils/image.py
to check if the path is directory (#919) - Fix bug in MVTec dataset download (#842)
- Add early stopping to CS-Flow model (#817)
- Fix remote container by removing version pinning in Docker files (#797)
- Fix PatchCore performance deterioration by reverting changes to Average Pooling layer (#791)
- Fix zero seed (#766)
- Fix #699 (#700)
- 🐞 Fix folder dataset for classification tasks (#708)
- Update torchmetrics to fix compute_on_cpu issue (#711)
- Correct folder mask path (#660)
- Fix >100% confidence issue for OpenVINO inference (#667)
- Update pre-commit links and some other minor fixes (#672)
- Fix black formatting issues. (#674)
- Feature/comet logging by @sherpan in #517
- 🐞 Fix linting issues by @ashwinvaidya17 in #535
- 🐞 Bug Fix: Solve NaN values of anomaly scores for PatchCore model by @bsl546 in #549
- 🐞 Bug Fix: Help description for argument task by @youngquan in #547
- reutrn results of load_state_dict func by @zywvvd in #546
- 🔨 Pass
pre-trained
from config toModelLightning
by @samet-akcay in #529 - Benchmarking tool with Comet by @sherpan in #545
- Add map_location when loading the weights by @samet-akcay in #562
- Add patchcore to openvino export test + upgrade lightning by @ashwinvaidya17 in #565
- 🐞 Fix category check for folder dataset in anomalib CLI by @samet-akcay in #567
- Refactor
PreProcessor
and fixVisualizer
denormalization issue. by @samet-akcay in #570 - 🔨 Check for successful openvino conversion by @ashwinvaidya17 in #571
- Comet HPO by @sherpan in #563
- Fix patchcore image-level score computation by @djdameln in #580
- Fix anomaly map computation in CFlow when batch size is 1. by @samet-akcay in #589
- Documentation refactor by @samet-akcay in #576
- ✨ Add notebook for hpo by @ashwinvaidya17 in #592
- 🐞 Fix comet HPO by @ashwinvaidya17 in #597
- ✨ Replace keys from benchmarking script by @ashwinvaidya17 in #595
- Update README.md by @Owaiskhan9654 in #623
- 🐳 Containerize CI by @ashwinvaidya17 in #616
- add deprecation warning to denormalize class by @djdameln in #629
- Anomalib CLI Improvements - Update metrics and create post_processing section in the config file by @samet-akcay in #607
- Convert adaptive_threshold to Enum in configs by @samet-akcay in #637
- Create meta_data.json with ONNX export as well as OpenVINO export by @calebmm in #636
- 🖌 refactor export callback by @ashwinvaidya17 in #640
- 🐞 Address docs build by @ashwinvaidya17 in #639
- Optimized inference with onnx for patchcore. by @acai66 in #652
New Contributors
- @sherpan made their first contribution in #517
- @bsl546 made their first contribution in #549
- @youngquan made their first contribution in #547
- @zywvvd made their first contribution in #546
- @Owaiskhan9654 made their first contribution in #623
- @calebmm made their first contribution in #636
- @acai66 made their first contribution in #652
Full Changelog: https://github.com/openvinotoolkit/anomalib/compare/v0.3.6...v0.3.7
- Add publish workflow + update references to main by @ashwinvaidya17 in #480
- Fix Dockerfile by @ORippler in #478
- Fix onnx export by rewriting GaussianBlur by @ORippler in #476
- DFKDE refactor to accept any layer name like other models by @ashishbdatta in #482
- 🐞 Log benchmarking results in sub folder by @ashwinvaidya17 in #483
- 🐞 Fix Visualization keys in new CLI by @ashwinvaidya17 in #487
- fix Perlin augmenter for non divisible image sizes by @djdameln in #490
- 📝 Update the license headers by @samet-akcay in #491
- change default parameter values for DRAEM by @djdameln in #495
- Add reset methods to metrics by @ashwinvaidya17 in #488
- Feature Extractor Refactor by @ashishbdatta in #451
- Convert
AnomalyMapGenerator
tonn.Module
by @samet-akcay in #497 - Add github pr labeler to automatically label PRs by @samet-akcay in #498
- Add coverage by @ashwinvaidya17 in #499
- 🐞 Change if check by @ashwinvaidya17 in #501
- SSPCAB implementation by @djdameln in #500
- 🛠 Refactor Normalization by @ashwinvaidya17 in #496
- Enable generic exporting of a trained model to ONNX or OpenVINO IR by @ashishbdatta in #509
- Updated documentation to add examples for exporting model by @ashishbdatta in #515
- Ignore pixel metrics in classification task by @djdameln in #516
- Update export documentation by @djdameln in #521
- FIX: PaDiM didn't use config.model.pre_trained. by @jingt2ch in #514
- Reset adaptive threshold between epochs by @djdameln in #527
- Add PRO metric by @djdameln in #508
- Set full_state_update attribute in custom metrics by @djdameln in #531
- 🐞 Set normalization method from anomaly module by @ashwinvaidya17 in #530
New Contributors
Full Changelog: https://github.com/openvinotoolkit/anomalib/compare/v0.3.5...v0.3.6
- 🐞 Fix inference for draem by @djdameln in #470
- 🐞 🛠 Bug fix in the inferencer by @samet-akcay in #475
Full Changelog: https://github.com/openvinotoolkit/anomalib/compare/v0.3.4...v0.3.5
- Add encoding to LONG_DESCRIPTION in setup.py by @samet-akcay in #419
- Fix visualization by @ORippler in #417
- Fix openvino circular import issue by @samet-akcay in #416
- Fix inferener arg names and weight path issue. by @samet-akcay in #422
- Remove the redundant
loss_val
by @samet-akcay in #425 - 📃 Add documentation for gradio inference by @ashwinvaidya17 in #427
- Add
pre_train
as a configurable parameter by @samet-akcay in #431 - 🛠 Fix config files and refactor dfkde by @samet-akcay in #435
- Add metric visualizations by @ORippler in #429
- Fix: data split issue by @jeongHwarr in #404
- 🚚 Move perlin noise to common folder by @ashwinvaidya17 in #424
- Support null seed by @ashwinvaidya17 in #437
- 🐞 Change if statement by @ashwinvaidya17 in #439
- Fix visualizer for
classification
,mode=simple
by @ORippler in #442 - Feature/aupro test by @ORippler in #444
- Replace PyTorchLightning extras dependency by @ashwinvaidya17 in #455
- 🛠 Fix
tox
configuration by @samet-akcay in #446 - Ignore ipynb files to detect the repo language by @samet-akcay in #456
- Move configuration from tox to pyproject by @samet-akcay in #458
- Add Torch Inferencer and Update Openvino and Gradio Inferencers. by @samet-akcay in #453
- Address markdownlint issues by @samet-akcay in #460
- 🐞 Fix HPO by @ashwinvaidya17 in #462
- Remove docs requirements by @ashwinvaidya17 in #467
- Add codacy badge to readme by @samet-akcay in #468
New Contributors
Full Changelog: https://github.com/openvinotoolkit/anomalib/compare/0.3.3...0.3.4
- 🚚 Move initialization log message to base class by @djdameln in #363
- 🚚 Move logging from train.py to the getter functions by @samet-akcay in #365
- 🚜 Refactor loss computation by @djdameln in #364
- 📝 Add a technical blog post to explain how to run anomalib. by @ashwinvaidya17 in #359
- 📚 Add datamodule jupyter notebooks. by @samet-akcay in #357
- 📝 Add benchmarking notebook by @ashwinvaidya17 in #353
- ➕ Add PyPI downloads badge to the readme. by @samet-akcay in #370
- 📃 Update README.md by @innat in #382
- 💻 Create Anomalib CLI by @samet-akcay in #378
- 🐞 Fix configs to remove logging heatmaps from classification models. by @samet-akcay in #387
- ✨ Add FastFlow model training testing inference via Anomalib API by @samet-akcay in #386
- 🐞 PaDim occasionally NaNs in anomaly map by @VdLMV in #392
- 🖼 Inference + Visualization by @djdameln in #390
New Contributors
Full Changelog: https://github.com/openvinotoolkit/anomalib/compare/v.0.3.2...v.0.3.3
- Refactor
AnomalyModule
andLightningModules
to explicitly define class arguments. by @samet-akcay in #315 - 🐞 Fix inferencer in Gradio by @ashwinvaidya17 in #332
- fix too many open images warning by @djdameln in #334
- Upgrade wandb version by @ashwinvaidya17 in #340
- Minor fix: Update folder dataset + notebooks link by @ashwinvaidya17 in #338
- Upgrade TorchMetrics version by @djdameln in #342
- 🚀 Set pylint version in tox.ini by @ashwinvaidya17 in #345
- Add metrics configuration callback to benchmarking by @ashwinvaidya17 in #346
- ➕ Add FastFlow Model by @samet-akcay in #336
- ✨ Add toy dataset to the repository by @ashwinvaidya17 in #350
- Add DRAEM Model by @djdameln in #344
- 📃Update documentation by @ashwinvaidya17 in #280
- 🏷️ Refactor Datamodule names by @samet-akcay in #354
- ✨ Add Reverse Distillation by @ashwinvaidya17 in #343
Full Changelog: https://github.com/openvinotoolkit/anomalib/compare/v.0.3.1...v.0.3.2
- 🔧 Properly assign values to dataframe in folder dataset. by @samet-akcay in #272
- ➕ Add warnings
⚠️ for inproper task setting in config files. by @samet-akcay in #274 - Updated CHANGELOG.md by @samet-akcay in #276
- ➕ Add long description to
setup.py
to makeREADME.md
PyPI friendly. by @samet-akcay in #279 - ✨ Add hash check to data download by @ashwinvaidya17 in #284
- ➕ Add Gradio by @julien-blanchon in #283
- 🔨 Fix nncf key issue in nightly job by @ashwinvaidya17 in #238
- Visualizer improvements pt1 by @djdameln in #293
- 🧪 Fix nightly by @ashwinvaidya17 in #299
- 🧪 Add tests for benchmarking script by @ashwinvaidya17 in #297
- ➕ add input_info to nncf config when not defined by user by @djdameln in #307
- 🐞 Increase tolerance + nightly path fix by @ashwinvaidya17 in #318
- ➕ Add jupyter notebooks directory and first tutorial for
getting-started
by @samet-akcay in #292
New Contributors
- @julien-blanchon made their first contribution in #283
Full Changelog: https://github.com/openvinotoolkit/anomalib/compare/v0.3.0...v.0.3.1
- 🛠
⚠️ Fix configs to properly use pytorch-lightning==1.6 with GPU by @samet-akcay in #234 - 🛠 Fix
get_version
insetup.py
to avoid hard-coding version. by @samet-akcay in #229 - 🐞 Fix image loggers by @ashwinvaidya17 in #233
- Configurable metrics by @djdameln in #230
- Make OpenVINO throughput optional in benchmarking by @ashwinvaidya17 in #239
- 🔨 Minor fix: Ensure docs build runs only on isea-server by @ashwinvaidya17 in #245
- 🏷 Rename
--model_config_path
toconfig
by @samet-akcay in #246 - Revert "🏷 Rename
--model_config_path
toconfig
" by @samet-akcay in #247 - ➕ Add
--model_config_path
deprecation warning toinference.py
by @samet-akcay in #248 - Add console logger by @samet-akcay in #241
- Add segmentation mask to inference output by @ashwinvaidya17 in #242
- 🛠 Fix broken mvtec link, and split url to fit to 120 by @samet-akcay in #264
- 🛠 Fix mask filenames in folder dataset by @samet-akcay in #249
Full Changelog: https://github.com/openvinotoolkit/anomalib/compare/v0.2.6...v0.3.0
- ✏️ Add
torchtext==0.9.1
to support Kaggle environments. by @samet-akcay in #165 - 🛠 Fix
KeyError:'label'
in classification folder dataset by @samet-akcay in #175 - 📝 Added MVTec license to the repo by @samet-akcay in #177
- load best model from checkpoint by @djdameln in #195
- Replace
SaveToCSVCallback
with PLCSVLogger
by @samet-akcay in #198 - WIP Refactor test by @ashwinvaidya17 in #197
- 🔧 Dockerfile enhancements by @LukasBommes in #172
- 🛠 Fix visualization issue for fully defected images by @djdameln in #194
- ✨ Add hpo search using
wandb
by @ashwinvaidya17 in #82 - Separate train and validation transformations by @alexriedel1 in #168
- 🛠 Fix docs workflow by @ashwinvaidya17 in #200
- 🔄 CFlow: Switch soft permutation to false by default to speed up training. by @samet-akcay in #201
- Return only
image
,path
andlabel
for classification tasks inMvtec
andBtech
datasets. by @samet-akcay in #196 - 🗑 Remove
freia
as dependency and include it inanomalib/models/components
by @samet-akcay in #174 - Visualizer show classification and segmentation by @alexriedel1 in #178
↗️ Bump uppytorch-lightning
version to1.6.0
or higher by @samet-akcay in #193- 🛠 Refactor DFKDE model by @ashwinvaidya17 in #207
- 🛠 Minor fixes: Update callbacks to AnomalyModule by @ashwinvaidya17 in #208
- 🛠 Minor update: Update pre-commit docs by @ashwinvaidya17 in #206
- ✨ Directory streaming by @ashwinvaidya17 in #210
- ✏️ Updated documentation for development on Docker by @LukasBommes in #217
- 🏷 Fix Mac M1 dependency conflicts by @dreaquil in #158
- 🐞 Set tiling off in pathcore to correctly reproduce the stats. by @samet-akcay in #222
- 🐞fix support for non-square images by @ashwinvaidya17 in #204
- Allow specifying feature layer and pool factor in DFM by @nahuja-intel in #215
- 📝 Add GANomaly metrics to readme by @ashwinvaidya17 in #224
↗️ Bump the version to 0.2.6 by @samet-akcay in #223- 📝 🛠 Fix inconsistent benchmarking throughput/time by @ashwinvaidya17 in #221
- assign test split for folder dataset by @alexriedel1 in #220
- 🛠 Refactor model implementations by @djdameln in #225
New Contributors
- @LukasBommes made their first contribution in #172
- @dreaquil made their first contribution in #158
- @nahuja-intel made their first contribution in #215
Full Changelog: https://github.com/openvinotoolkit/anomalib/compare/v.0.2.5...v0.2.6
- Bugfix: fix random val/test split issue by @djdameln in #48
- Fix Readmes by @ashwinvaidya17 in #46
- Updated changelog by @samet-akcay in #49
- add distinction between image and pixel threshold in postprocessor by @djdameln in #50
- Fix docstrings by @ashwinvaidya17 in #22
- Fix networkx requirement by @LeonidBeynenson in #52
- Add min-max normalization by @djdameln in #53
- Change hardcoded dataset path to environ variable by @ashwinvaidya17 in #51
- Added cflow algorithm by @blakshma in #47
- perform metric computation on cpu by @djdameln in #64
- Fix Inferencer by @ashwinvaidya17 in #60
- Updated readme for cflow and change default config to reflect results by @blakshma in #68
- Fixed issue with model loading by @blakshma in #69
- Docs/sa/fix readme by @samet-akcay in #71
- Updated coreset subsampling method to improve accuracy by @blakshma in #73
- Revert "Updated coreset subsampling method to improve accuracy" by @samet-akcay in #79
- Replace
SupportIndex
withint
by @samet-akcay in #76 - Added reference to official CFLOW repo by @blakshma in #81
- Fixed issue with k_greedy method by @blakshma in #80
- Fix Mix Data type issue on inferencer by @samet-akcay in #77
- Create CODE_OF_CONDUCT.md by @samet-akcay in #86
- ✨ Add GANomaly by @ashwinvaidya17 in #70
- Reorder auc only when needed by @djdameln in #91
- Bump up the pytorch lightning to master branch due to vulnurability issues by @samet-akcay in #55
- 🚀 CI: Nightly Build by @ashwinvaidya17 in #66
- Refactor by @ashwinvaidya17 in #87
- Benchmarking Script by @ashwinvaidya17 in #17
- 🐞 Fix tensor detach and gpu count issues in benchmarking script by @ashwinvaidya17 in #100
- Return predicted masks in predict step by @djdameln in #103
- Add Citation to the Readme by @samet-akcay in #106
- Nightly build by @ashwinvaidya17 in #104
- c_idx cast to LongTensor in random sparse projection by @alexriedel1 in #113
- Update Nightly by @ashwinvaidya17 in #126
- Updated logos by @samet-akcay in #131
- Add third-party-programs.txt file and update license by @LeonidBeynenson in #132
- 🔨 Increase inference + openvino support by @ashwinvaidya17 in #122
- Fix/da/image size bug by @djdameln in #135
- Fix/da/image size bug by @djdameln in #140
- optimize compute_anomaly_score by using torch native funcrtions by @alexriedel1 in #141
- Fix IndexError in adaptive threshold computation by @djdameln in #146
- Feature/data/btad by @samet-akcay in #120
- Update for nncf_task by @AlexanderDokuchaev in #145
- fix non-adaptive thresholding bug by @djdameln in #152
- Calculate feature map shape patchcore by @alexriedel1 in #148
- Add
transform_config
to the mainconfig.yaml
file. by @samet-akcay in #156 - Add Custom Dataset Training Support by @samet-akcay in #154
- Added extension as an option when saving the result images. by @samet-akcay in #162
- Update
anomalib
version and requirements by @samet-akcay in #163
New Contributors
- @LeonidBeynenson made their first contribution in #52
- @blakshma made their first contribution in #47
- @alexriedel1 made their first contribution in #113
- @AlexanderDokuchaev made their first contribution in #145
Full Changelog: https://github.com/openvinotoolkit/anomalib/compare/v.0.2.4...v.0.2.5
Full Changelog: https://github.com/openvinotoolkit/anomalib/compare/v.0.2.3...v.0.2.4
- Address docs build failing issue by @ashwinvaidya17 in #39
- Fix docs pipeline 📄 by @ashwinvaidya17 in #41
- Feature/dick/anomaly score normalization by @djdameln in #35
- Shuffle train dataloader by @samet-akcay in #42
Full Changelog: https://github.com/openvinotoolkit/anomalib/compare/v0.2.2...v.0.2.3
- Address compatibility issues with OTE, that are caused by the legacy code. by @samet-akcay in #24
- Initial docs string by @ashwinvaidya17 in #9
- Load model did not work correctly as DFMModel did not inherit by @ashwinvaidya17 in #5
- Refactor/samet/data by @samet-akcay in #8
- Delete make.bat by @samet-akcay in #11
- TorchMetrics by @djdameln in #7
- ONNX node naming by @djdameln in #13
- Add FPS counter to
TimerCallback
by @ashwinvaidya17 in #12
Contributors
- @ashwinvaidya17
- @djdameln
- @samet-akcay
Full Changelog: https://github.com/openvinotoolkit/anomalib/commits/v0.2.0