Skip to content

Commit 95115f9

Browse files
samet-akcaydependabot[bot]blaz-rashwinvaidya17jpcbertoldo
authored
Merge main the feature branch. (#2376)
* Update timm requirement from <=1.0.7,>=1.0.7 to >=1.0.7,<=1.0.9 (#2274) * Update timm requirement from <=1.0.7,>=1.0.7 to >=1.0.7,<=1.0.9 Updates the requirements on [timm](https://github.com/huggingface/pytorch-image-models) to permit the latest version. - [Release notes](https://github.com/huggingface/pytorch-image-models/releases) - [Commits](huggingface/pytorch-image-models@v1.0.7...v1.0.9) --- updated-dependencies: - dependency-name: timm dependency-type: direct:production ... Signed-off-by: dependabot[bot] <[email protected]> * Update pyproject.toml --------- Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Samet Akcay <[email protected]> * 🐞Update `setuptools` requirement for PEP 660 support (#2320) Update setup tools Signed-off-by: Samet Akcay <[email protected]> * Fix transforms for draem, dsr and rkde (#2324) Signed-off-by: Blaz Rolih <[email protected]> * Add check before loading metrics data from checkpoint (#2323) Add check before loading from checkpoint Signed-off-by: Blaz Rolih <[email protected]> Co-authored-by: Samet Akcay <[email protected]> * Add PIMO (#2329) * PIMO (#1726) * update Signed-off-by: jpcbertoldo <[email protected]> * test binclf curves numpy and numba and fixes Signed-off-by: jpcbertoldo <[email protected]> * correct som docstrings Signed-off-by: jpcbertoldo <[email protected]> * torch interface and tests Signed-off-by: jpcbertoldo <[email protected]> * torch interface and tests Signed-off-by: jpcbertoldo <[email protected]> * constants regrouped in dataclass as class vars Signed-off-by: jpcbertoldo <[email protected]> * result class was unneccesary for per_image_binclf_curve Signed-off-by: jpcbertoldo <[email protected]> * factorize function _get_threshs_minmax_linspace Signed-off-by: jpcbertoldo <[email protected]> * small docs fixes Signed-off-by: jpcbertoldo <[email protected]> * add pimo numpy version and test Signed-off-by: jpcbertoldo <[email protected]> * move validation Signed-off-by: jpcbertoldo <[email protected]> * add `shared_fpr_metric` option Signed-off-by: jpcbertoldo <[email protected]> * add pimo torch functional version and test Signed-off-by: jpcbertoldo <[email protected]> * add torchmetrics interface and test Signed-off-by: jpcbertoldo <[email protected]> * renames and put things in init Signed-off-by: jpcbertoldo <[email protected]> * validate inputs in result objects Signed-off-by: jpcbertoldo <[email protected]> * result objects to from dict and tests Signed-off-by: jpcbertoldo <[email protected]> * add save and load methods to result objects and test Signed-off-by: jpcbertoldo <[email protected]> * refactor validations and minor changes Signed-off-by: jpcbertoldo <[email protected]> * test result objects' properties Signed-off-by: jpcbertoldo <[email protected]> * minor refactors Signed-off-by: jpcbertoldo <[email protected]> * add missing docstrings Signed-off-by: jpcbertoldo <[email protected]> * minore vocabulary fix for consistency Signed-off-by: jpcbertoldo <[email protected]> * add per image scores statistics and test it Signed-off-by: jpcbertoldo <[email protected]> * refactor constants notation Signed-off-by: jpcbertoldo <[email protected]> * add stats tests and test it Signed-off-by: jpcbertoldo <[email protected]> * change the meaning of AUPIMO.num_thresh Signed-off-by: jpcbertoldo <[email protected]> * interface to format pairwise test results Signed-off-by: jpcbertoldo <[email protected]> * improve doc Signed-off-by: jpcbertoldo <[email protected]> * add optional `paths` to result objects and some minor fixes and refactors Signed-off-by: jpcbertoldo <[email protected]> * remove frozen from dataclasses and some done todos Signed-off-by: jpcbertoldo <[email protected]> * review headers Signed-off-by: jpcbertoldo <[email protected]> * doc modifs Signed-off-by: jpcbertoldo <[email protected]> * refactor `score_less_than_thresh` in `_binclf_one_curve_python` Signed-off-by: jpcbertoldo <[email protected]> * correct license comments Signed-off-by: jpcbertoldo <[email protected]> * fix doc Signed-off-by: jpcbertoldo <[email protected]> * numba as extra requirement Signed-off-by: jpcbertoldo <[email protected]> * refactor copyrights from jpcbertoldo Signed-off-by: jpcbertoldo <[email protected]> * remove from __future__ import annotations Signed-off-by: jpcbertoldo <[email protected]> * refactor validations names Signed-off-by: jpcbertoldo <[email protected]> * dedupe file path validation Signed-off-by: jpcbertoldo <[email protected]> * fix tests Signed-off-by: jpcbertoldo <[email protected]> * Add todo Signed-off-by: jpcbertoldo <[email protected]> * refactor enums Signed-off-by: jpcbertoldo <[email protected]> * only logger.warning Signed-off-by: jpcbertoldo <[email protected]> * refactor test imports Signed-off-by: jpcbertoldo <[email protected]> * refactor docs Signed-off-by: jpcbertoldo <[email protected]> * refactor some docs Signed-off-by: jpcbertoldo <[email protected]> * correct pre commit errors Signed-off-by: jpcbertoldo <[email protected]> * remove author tag Signed-off-by: jpcbertoldo <[email protected]> * add thrid party program Signed-off-by: jpcbertoldo <[email protected]> * Update src/anomalib/metrics/per_image/pimo.py * move HAS_NUMBA Signed-off-by: jpcbertoldo <[email protected]> * remove PIMOSharedFPRMetric Signed-off-by: jpcbertoldo <[email protected]> * make torchmetrics compute avg by dft Signed-off-by: jpcbertoldo <[email protected]> * pre-commit hooks corrections Signed-off-by: jpcbertoldo <[email protected]> * correct numpy.trapezoid Signed-off-by: jpcbertoldo <[email protected]> --------- Signed-off-by: jpcbertoldo <[email protected]> Co-authored-by: Samet Akcay <[email protected]> * 🗑️ Remove numba (#2313) * remove numba Signed-off-by: Ashwin Vaidya <[email protected]> * fix pre-commit checks Signed-off-by: Ashwin Vaidya <[email protected]> * add third-party-programs.txt Signed-off-by: Ashwin Vaidya <[email protected]> --------- Signed-off-by: Ashwin Vaidya <[email protected]> * 🗑️ Remove unused methods (#2315) * remove numba Signed-off-by: Ashwin Vaidya <[email protected]> * fix pre-commit checks Signed-off-by: Ashwin Vaidya <[email protected]> * remove all unused methods Signed-off-by: Ashwin Vaidya <[email protected]> --------- Signed-off-by: Ashwin Vaidya <[email protected]> * PIMO: Port Numpy → Torch (#2316) * remove numba Signed-off-by: Ashwin Vaidya <[email protected]> * fix pre-commit checks Signed-off-by: Ashwin Vaidya <[email protected]> * remove all unused methods Signed-off-by: Ashwin Vaidya <[email protected]> * replace numpy with torch Signed-off-by: Ashwin Vaidya <[email protected]> --------- Signed-off-by: Ashwin Vaidya <[email protected]> * 🔨Refactor methods across files (#2321) * remove numba Signed-off-by: Ashwin Vaidya <[email protected]> * fix pre-commit checks Signed-off-by: Ashwin Vaidya <[email protected]> * remove all unused methods Signed-off-by: Ashwin Vaidya <[email protected]> * replace numpy with torch Signed-off-by: Ashwin Vaidya <[email protected]> * refactor code Signed-off-by: Ashwin Vaidya <[email protected]> * refactor move functional inside update remove path from the metric * Add changes from comments Signed-off-by: Ashwin Vaidya <[email protected]> --------- Signed-off-by: Ashwin Vaidya <[email protected]> * Remove model to model comparison (#2325) * rename to pimo Signed-off-by: Ashwin Vaidya <[email protected]> * minor refactor Signed-off-by: Ashwin Vaidya <[email protected]> * remove model to model comparison Signed-off-by: Ashwin Vaidya <[email protected]> * fix test Signed-off-by: Ashwin Vaidya <[email protected]> * PR comments Signed-off-by: Ashwin Vaidya <[email protected]> * Minor refactor Signed-off-by: Ashwin Vaidya <[email protected]> --------- Signed-off-by: Ashwin Vaidya <[email protected]> * PR comments Signed-off-by: Ashwin Vaidya <[email protected]> * Remove unused enums Signed-off-by: Ashwin Vaidya <[email protected]> * update doc strings Signed-off-by: Ashwin Vaidya <[email protected]> * update param names Signed-off-by: Ashwin Vaidya <[email protected]> * add aupimo basic usage tutorial notebook (#2330) * add aupimo basic usage tutorial notebook Signed-off-by: jpcbertoldo <[email protected]> * update scipy import Signed-off-by: jpcbertoldo <[email protected]> * add cite us Signed-off-by: jpcbertoldo <[email protected]> * minor Signed-off-by: jpcbertoldo <[email protected]> * modify texts and add illustration Signed-off-by: jpcbertoldo <[email protected]> * udpate working dir Signed-off-by: jpcbertoldo <[email protected]> --------- Signed-off-by: jpcbertoldo <[email protected]> --------- Signed-off-by: jpcbertoldo <[email protected]> Signed-off-by: Ashwin Vaidya <[email protected]> Co-authored-by: Joao P C Bertoldo <[email protected]> Co-authored-by: Samet Akcay <[email protected]> * Makes batch size dynamic (#2339) Made batch dimension of ONNX export dynamic when specifying input shape. * Add pimo tutorial advanced i (fixed) (#2336) * uset all padim features to make it deterministic Signed-off-by: jpcbertoldo <[email protected]> * add aupimo notebook advanced i Signed-off-by: jpcbertoldo <[email protected]> * update readme Signed-off-by: jpcbertoldo <[email protected]> * modify changelog Signed-off-by: jpcbertoldo <[email protected]> * correct readme Signed-off-by: jpcbertoldo <[email protected]> * correct again Signed-off-by: jpcbertoldo <[email protected]> * minor corrections Signed-off-by: jpcbertoldo <[email protected]> --------- Signed-off-by: jpcbertoldo <[email protected]> * Pimo tutorials/02 advanced ii (#2347) * uset all padim features to make it deterministic Signed-off-by: jpcbertoldo <[email protected]> * add aupimo notebook advanced i Signed-off-by: jpcbertoldo <[email protected]> * update readme Signed-off-by: jpcbertoldo <[email protected]> * modify changelog Signed-off-by: jpcbertoldo <[email protected]> * correct readme Signed-off-by: jpcbertoldo <[email protected]> * correct again Signed-off-by: jpcbertoldo <[email protected]> * minor corrections Signed-off-by: jpcbertoldo <[email protected]> * add aupimo notebook advanced ii (pimo curve and integration bounds) Signed-off-by: jpcbertoldo <[email protected]> * fix links Signed-off-by: jpcbertoldo <[email protected]> * correct change log Signed-off-by: jpcbertoldo <[email protected]> --------- Signed-off-by: jpcbertoldo <[email protected]> * Create epic.yaml * 🔨 Update the issue templates (#2363) * Update epic.yaml * Update epic.yaml * Update epic.yaml * Update epic.yaml * Update task.yaml * Create user_story.yaml * Update epic.yaml * Pimo tutorials/03 advanced iii (#2348) * add aupimo notebook advanced iii (aupimo score of a random model) Signed-off-by: jpcbertoldo <[email protected]> * add cite us Signed-off-by: jpcbertoldo <[email protected]> * update notebooks readme Signed-off-by: jpcbertoldo <[email protected]> --------- Signed-off-by: jpcbertoldo <[email protected]> Co-authored-by: Samet Akcay <[email protected]> * 🔨 Deprecate try import and replace it with Lightning's package_available (#2373) Replace try_import with lightnings package_available function Signed-off-by: Samet Akcay <[email protected]> * Refactor folder3d to avoid complex-structure (C901) issue (#2185) * Refactored-make_folder3d_dataset-ruff-error-C901 (#1926) Signed-off-by: sahusiddharth <[email protected]> * Simplify folder 3d dataset (#2184) --------- Signed-off-by: sahusiddharth <[email protected]> Co-authored-by: Siddharth Sahu <[email protected]> --------- Signed-off-by: dependabot[bot] <[email protected]> Signed-off-by: Samet Akcay <[email protected]> Signed-off-by: Blaz Rolih <[email protected]> Signed-off-by: jpcbertoldo <[email protected]> Signed-off-by: Ashwin Vaidya <[email protected]> Signed-off-by: sahusiddharth <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Blaž Rolih <[email protected]> Co-authored-by: Ashwin Vaidya <[email protected]> Co-authored-by: Joao P C Bertoldo <[email protected]> Co-authored-by: Marcus Pertlwieser <[email protected]> Co-authored-by: Siddharth Sahu <[email protected]>
1 parent 06daad9 commit 95115f9

35 files changed

+7349
-70
lines changed

.github/ISSUE_TEMPLATE/epic.yaml

+39
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
name: 🎯 Epic
2+
description: A large body of work that can be broken down into smaller stories
3+
title: "🎯 [EPIC] "
4+
labels: ["epic"]
5+
assignees: []
6+
body:
7+
- type: markdown
8+
attributes:
9+
value: "## 🎯 Epic Description"
10+
- type: textarea
11+
id: description
12+
attributes:
13+
label: Describe the epic
14+
description: Provide a clear and concise description of what this epic encompasses
15+
validations:
16+
required: true
17+
- type: textarea
18+
id: goals
19+
attributes:
20+
label: Goals
21+
description: What are the main goals of this epic?
22+
validations:
23+
required: true
24+
- type: textarea
25+
id: tasks
26+
attributes:
27+
label: Tasks
28+
description: Break down the epic into smaller tasks. Add or remove tasks as needed.
29+
value: |
30+
- [ ] Task 1:
31+
- [ ] Task 2:
32+
- [ ] Task 3:
33+
- [ ] Task 4:
34+
- [ ] Task 5:
35+
validations:
36+
required: true
37+
- type: markdown
38+
attributes:
39+
value: "Remember to create separate issues for each task and link them to this epic."

.github/ISSUE_TEMPLATE/task.yaml

+52-22
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,65 @@
1-
name: Tasks
2-
description: This is used to capture tasks being implemented/to implement such as features, maintenance, refactor, etc.
3-
title: "[Task]: "
4-
labels: ["Task"]
1+
name: 📋 Task
2+
description: A specific piece of work to be completed
3+
title: "📋 [TASK] "
4+
labels: ["task"]
5+
assignees: []
56
body:
67
- type: markdown
78
attributes:
8-
value: |
9-
We encourage our users to submit feature requests in our [Discussion forum](https://github.com/openvinotoolkit/anomalib/discussions/categories/ideas-feature-requests). You can use this template for consistency.
10-
9+
value: "## 📋 Task Description"
1110
- type: textarea
12-
id: motivation
11+
id: description
1312
attributes:
14-
label: What is the motivation for this task?
15-
description: A clear and concise description of what the problem is.
16-
placeholder: |
17-
1. I'm always frustrated when [...]. It would be better if we could [...]
18-
2. I would like to have [...] model/dataset to be supported in Anomalib.
13+
label: Describe the task
14+
description: Provide a clear and concise description of the task to be completed
1915
validations:
2016
required: true
2117
- type: textarea
22-
id: solution
18+
id: acceptance-criteria
2319
attributes:
24-
label: Describe the solution you'd like
25-
description: A clear and concise description of what you want to happen. Add screenshots or code-blocks if necessary.
26-
placeholder: |
27-
I would like to have [...] to do this we would need to [...]
28-
Here is what I would like to see [...]
20+
label: Acceptance Criteria
21+
description: List the specific criteria that must be met for this task to be considered complete
22+
validations:
23+
required: true
24+
- type: dropdown
25+
id: priority
26+
attributes:
27+
label: Priority
28+
options:
29+
- Low
30+
- Medium
31+
- High
32+
validations:
33+
required: true
34+
- type: input
35+
id: epic-link
36+
attributes:
37+
label: Related Epic
38+
description: If this task is part of an epic, provide the epic's issue number (e.g., #123)
39+
validations:
40+
required: false
41+
- type: input
42+
id: estimated-time
43+
attributes:
44+
label: Estimated Time
45+
description: Provide an estimate of how long this task will take (e.g., 2h, 1d)
46+
validations:
47+
required: false
48+
- type: dropdown
49+
id: status
50+
attributes:
51+
label: Current Status
52+
options:
53+
- Not Started
54+
- In Progress
55+
- Blocked
56+
- Ready for Review
2957
validations:
3058
required: true
3159
- type: textarea
32-
id: additional-context
60+
id: additional-info
3361
attributes:
34-
label: Additional context
35-
description: Add any other context or screenshots about the feature request here.
62+
label: Additional Information
63+
description: Any other relevant details or context for this task
64+
validations:
65+
required: false
+69
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
name: 📖 User Story
2+
description: A small, self-contained unit of development work describing a feature from an end-user perspective
3+
title: "📖 [STORY] "
4+
labels: ["user-story"]
5+
assignees: []
6+
body:
7+
- type: markdown
8+
attributes:
9+
value: "## 📖 User Story Description"
10+
- type: textarea
11+
id: user-story
12+
attributes:
13+
label: User Story
14+
description: As a [type of user], I want [an action] so that [a benefit/a value]
15+
placeholder: As a computer vision researcher, I want to implement a new anomaly detection algorithm so that I can improve detection accuracy for industrial defect scenarios.
16+
validations:
17+
required: true
18+
- type: textarea
19+
id: acceptance-criteria
20+
attributes:
21+
label: Acceptance Criteria
22+
description: List the acceptance criteria for this user story
23+
placeholder: |
24+
1. The new algorithm is implemented and integrated into the anomalib framework
25+
2. Unit tests are written and pass for the new implementation
26+
3. Performance benchmarks show improvement over existing methods on specified datasets
27+
4. Documentation is updated to include usage instructions and theory behind the new algorithm
28+
5. An example notebook is provided demonstrating the algorithm's application
29+
validations:
30+
required: true
31+
- type: input
32+
id: story-points
33+
attributes:
34+
label: Story Points
35+
description: Estimate the complexity of this story (e.g., 1, 2, 3, 5, 8, 13)
36+
validations:
37+
required: true
38+
- type: input
39+
id: epic-link
40+
attributes:
41+
label: Related Epic
42+
description: If this story is part of an epic, provide the epic's issue number (e.g., #123)
43+
validations:
44+
required: false
45+
- type: dropdown
46+
id: model-category
47+
attributes:
48+
label: Category
49+
description: Select the category this story primarily relates to
50+
options:
51+
- Data
52+
- Anomaly Detection Algorithms
53+
- Pre-processing
54+
- Post-processing
55+
- Evaluation Metrics
56+
- Visualization
57+
- Performance Optimization
58+
- API/Interface
59+
- Documentation
60+
- Others
61+
validations:
62+
required: true
63+
- type: textarea
64+
id: additional-context
65+
attributes:
66+
label: Additional Context
67+
description: Add any other context, background, or relevant research papers about the user story here
68+
validations:
69+
required: false

CHANGELOG.md

+3
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,9 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
88

99
### Added
1010

11+
- Add `AUPIMO` tutorials notebooks in https://github.com/openvinotoolkit/anomalib/pull/2330 and https://github.com/openvinotoolkit/anomalib/pull/2336
12+
- Add `AUPIMO` metric by [jpcbertoldo](https://github.com/jpcbertoldo) in https://github.com/openvinotoolkit/anomalib/pull/1726 and refactored by [ashwinvaidya17](https://github.com/ashwinvaidya17) in https://github.com/openvinotoolkit/anomalib/pull/2329
13+
1114
### Changed
1215

1316
### Deprecated

0 commit comments

Comments
 (0)