Closed Warvito closed 1 year ago
Beyond the baseline anomaly detection approach, i.e. resampling and reconstruction to create a residual based anomaly map there are some supplementary things to add to this, i.e. use of the resampling mask to 0 the residual map where no resampling has taken place. Depending on IP issues we can also use the methods using Z-scores/KDE through multiple resampling and dropout in the autoencoder to create Z-score or KDE anomaly maps Something similar can be done with the diffusion models as well I believe.
I think as a first step we should be looking to implement all our methods, IP issues permitting - I don't think the code is openly available for any of them, yet.
So that would include all of @Ashayp31's work for segmentation mentioned above with transformers, @Warvito's segmentation work both with transformers and diffusion models, and my full image OOD work, both transformer and diffusion based. I think starting with our work makes sense because a) we know it best b) it will create a clear template others can use to contribute their methods.
But a related question is how we implement our methods? Once the core building blocks are available, should the anomaly detection methods be implemented as new inferer classes? Or are some of the bits we need too specialised to be included in the core repo - perhaps we should be providing tutorials that implement the methods, including any extra bits that are too specialised in the tutorials themselves?
Some other methods are:
[1] AnoDDPM: Anomaly Detection With Denoising Diffusion Probabilistic Models Using Simplex Noise. link [2] What is Healthy? Generative Counterfactual Diffusion for Lesion Localization link [3] Diffusion Models for Medical Anomaly Detection. link
Beyond the baseline anomaly detection approach, i.e. resampling and reconstruction to create a residual based anomaly map there are some supplementary things to add to this
I think as a first step we should be looking to implement all our methods, IP issues permitting
@Ashayp31 @marksgraham I talked with Jorge a while ago, the implementation of the get likelihoods and simply using it to perform the anomaly detection at image level would be OK, with no issues with IP. Implementing anomaly segmentation using all the resampling parts would be a little trickier. =/
I will check with him again in our next meeting
But a related question is how we implement our methods? Once the core building blocks are available, should the anomaly detection methods be implemented as new inferer classes? Or are some of the bits we need too specialised to be included in the core repo - perhaps we should be providing tutorials that implement the methods, including any extra bits that are too specialised in the tutorials themselves?
@marksgraham I think we can start implementing the tutorials with specialized components in the tutorials. After we have a few methods done, we can evaluate what general components could be moved from the tutorials to the package code (for example , to the inferer class). what do you think?
Maybe in the future we could have several inferer classes for each method (so it would be easy to apply the methods using bundles)
Creating this issue so we can discuss which other methods of anomaly detection (or anomaly segmentation) should we also support in this repository.