sjtuplayer / anomalydiffusion

[AAAI 2024] AnomalyDiffusion: Few-Shot Anomaly Image Generation with Diffusion Model
MIT License
114 stars 14 forks source link

论文中的1000样本对/类异常 #60

Open duanyuanyi opened 3 weeks ago

duanyuanyi commented 3 weeks ago

使用您开源的504样本对/类异常在异常检测任务上没有达到论文中的效果,您能否提供论文中的生成数据集呢,我们将在论文中引用您的工作。

boxbox2 commented 3 weeks ago

我也遇到这个问题,请问您解决了嘛

boxbox2 commented 3 weeks ago

我在carpet类别的thread异常中发现绝大多数的图片的异常都不明显,就比如下图110与125 image image image image 以至于在验证时在thread类别出现结果很差的情况,相比之下生成数据集下的carpet类别的其他异常却有较好的结果。请问作者是如何解决这个问题的呢?

sjtuplayer commented 3 weeks ago

常在异常检测任务上没有达到论文中的效果

请问是否能提供下测试出来的指标数据,这504个数据是能够大致获得最终的指标的,可能具体某些类会有1-2个点的浮动

sjtuplayer commented 3 weeks ago

我在carpet类别的thread异常中发现绝大多数的图片的异常都不明显,就比如下图110与125 image image image image 以至于在验证时在thread类别出现结果很差的情况,相比之下生成数据集下的carpet类别的其他异常却有较好的结果。请问作者是如何解决这个问题的呢?

问题可能是这个类别的生成效果本身就不佳,因为他的缺陷太细、太小,模型不太好捕捉,同样的问题还会出现在screw、grid两个类别中,这也是导致他们整体指标比其他类别低的原因。

duanyuanyi commented 3 weeks ago

QQ截图20240702165553 上面是500的复现,我感觉可能是生成的mask的真实度的问题,而不是anomalydiffusion本身的问题,因为我生成了1000样本用于复现实验,量化结果甚至更差,并且我自己的方法也出现了类似的结果,所以筛选是必要的,希望您能提供您论文中的数据集,不胜感激!

sjtuplayer commented 3 weeks ago

QQ截图20240702165553 上面是500的复现,我感觉可能是生成的mask的真实度的问题,而不是anomalydiffusion本身的问题,因为我生成了1000样本用于复现实验,量化结果甚至更差,并且我自己的方法也出现了类似的结果,所以筛选是必要的,希望您能提供您论文中的数据集,不胜感激!

你好,论文中的结果应该大部分是用的开源这一版筛选后的数据实现的,你可以再跑一次localization的训练和测试,看看AP差异是否较大,因为里面会有比较大的随机性(尤其是screw、carpet、grid、capsule这几个指标本身就比较低的类别)。然后hazelnut类别我更新了数据,能稳定到95+的AP。如果其他类别两次实验的最佳AP与论文中超过3个点的话,我再检查一下数据。实验过程中数据有多个版本,1000张的效果很可能反而不如筛选版的500,所以建议就用这500张进行实验

boxbox2 commented 3 weeks ago

QQ截图20240702165553 上面是500的复现,我感觉可能是生成的mask的真实度的问题,而不是anomalydiffusion本身的问题,因为我生成了1000样本用于复现实验,量化结果甚至更差,并且我自己的方法也出现了类似的结果,所以筛选是必要的,希望您能提供您论文中的数据集,不胜感激!

你好,论文中的结果应该大部分是用的开源这一版筛选后的数据实现的,你可以再跑一次localization的训练和测试,看看AP差异是否较大,因为里面会有比较大的随机性(尤其是screw、carpet、grid、capsule这几个指标本身就比较低的类别)。然后hazelnut类别我更新了数据,能稳定到95+的AP。如果其他类别两次实验的最佳AP与论文中超过3个点的话,我再检查一下数据。实验过程中数据有多个版本,1000张的效果很可能反而不如筛选版的500,所以建议就用这500张进行实验

能问下您是如何筛查数据的吗?人工吗?

boxbox2 commented 3 weeks ago

QQ截图20240702165553 上面是500的复现,我感觉可能是生成的mask的真实度的问题,而不是anomalydiffusion本身的问题,因为我生成了1000样本用于复现实验,量化结果甚至更差,并且我自己的方法也出现了类似的结果,所以筛选是必要的,希望您能提供您论文中的数据集,不胜感激!

你好,论文中的结果应该大部分是用的开源这一版筛选后的数据实现的,你可以再跑一次localization的训练和测试,看看AP差异是否较大,因为里面会有比较大的随机性(尤其是screw、carpet、grid、capsule这几个指标本身就比较低的类别)。然后hazelnut类别我更新了数据,能稳定到95+的AP。如果其他类别两次实验的最佳AP与论文中超过3个点的话,我再检查一下数据。实验过程中数据有多个版本,1000张的效果很可能反而不如筛选版的500,所以建议就用这500张进行实验

作者您好,我在6月初下载过一次您的数据集,在昨天您说您又更新数据集后我又重新下了一次,发现hazelnut类下的ori全是带异常的图片,依我看ori应该是无异常的图片吧?是否是新上传的数据集仍有问题?其他数据集还没有发现其他类ori有这种情况 image

urv-cpu commented 3 weeks ago

@duanyuanyi 我在 MVTec 课程中得到了类似的数字。另外,@sjtuplayer 你能告诉我为什么上一代的图像和当前几代的图像有巨大的差异吗?此外,您在论文中说您使用了 1000 张图像来进行下游分类、定位和拘留任务。这与你的主张相矛盾。

urv-cpu commented 3 weeks ago

@sjtuplayer 看来您还执行了两次推理,查看榛子文件夹,因为从技术上讲,“ori”文件夹中应该有好的图像,但我们观察到缺陷图像的可见性较低。我不明白为什么你不断更改生成的数据集并且你说有多个版本的数据。这意味着您不知道您根据哪些数据计算结果。太棒了!

sjtuplayer commented 3 weeks ago

QQ截图20240702165553 上面是500的复现,我感觉可能是生成的mask的真实度的问题,而不是anomalydiffusion本身的问题,因为我生成了1000样本用于复现实验,量化结果甚至更差,并且我自己的方法也出现了类似的结果,所以筛选是必要的,希望您能提供您论文中的数据集,不胜感激!

你好,论文中的结果应该大部分是用的开源这一版筛选后的数据实现的,你可以再跑一次localization的训练和测试,看看AP差异是否较大,因为里面会有比较大的随机性(尤其是screw、carpet、grid、capsule这几个指标本身就比较低的类别)。然后hazelnut类别我更新了数据,能稳定到95+的AP。如果其他类别两次实验的最佳AP与论文中超过3个点的话,我再检查一下数据。实验过程中数据有多个版本,1000张的效果很可能反而不如筛选版的500,所以建议就用这500张进行实验

作者您好,我在6月初下载过一次您的数据集,在昨天您说您又更新数据集后我又重新下了一次,发现hazelnut类下的ori全是带异常的图片,依我看ori应该是无异常的图片吧?是否是新上传的数据集仍有问题?其他数据集还没有发现其他类ori有这种情况 image

我再检查一下,因为一般是不需要用ori数据的,所以不会影响检测的结果。筛选的话,有多个维度可供参考,1. 基于inception score对图像质量的衡量去筛选一些质量不佳的图;2. 在特征空间筛选离群点(可以筛选出一些很奇怪的图);3. 用1000张图训练好缺陷分类网络,然后去筛选掉一些检测不出缺陷的图(因为生成过程中存在一定的生成失败的图像,这些图像看起来是没有缺陷的,但是却有对应的缺陷mask,这会影响正常样本的检测效果)

sjtuplayer commented 3 weeks ago

@sjtuplayer 看来您还执行了两次推理,查看榛子文件夹,因为从技术上讲,“ori”文件夹中应该有好的图像,但我们观察到缺陷图像的可见性较低。我不明白为什么你不断更改生成的数据集并且你说有多个版本的数据。这意味着您不知道您根据哪些数据计算结果。太棒了!

Hi. When generating the data, there are multiple hyperparameters we can modify (e.g., cfg, employing mask generation models in different training steps), and each may have an influence on the results. So, there are different versions of data. But they are all generated by the same anomaly generation model. Previous data for hazelnuts is mistakenly placed, So, I replaced them which can better reproduce the reported AP score. But the data in the 'ori' directory still have some problems. I will fix it soon.

boxbox2 commented 3 weeks ago

QQ截图20240702165553 上面是500的复现,我感觉可能是生成的mask的真实度的问题,而不是anomalydiffusion本身的问题,因为我生成了1000样本用于复现实验,量化结果甚至更差,并且我自己的方法也出现了类似的结果,所以筛选是必要的,希望您能提供您论文中的数据集,不胜感激!

你好,论文中的结果应该大部分是用的开源这一版筛选后的数据实现的,你可以再跑一次localization的训练和测试,看看AP差异是否较大,因为里面会有比较大的随机性(尤其是screw、carpet、grid、capsule这几个指标本身就比较低的类别)。然后hazelnut类别我更新了数据,能稳定到95+的AP。如果其他类别两次实验的最佳AP与论文中超过3个点的话,我再检查一下数据。实验过程中数据有多个版本,1000张的效果很可能反而不如筛选版的500,所以建议就用这500张进行实验

作者您好,我在6月初下载过一次您的数据集,在昨天您说您又更新数据集后我又重新下了一次,发现hazelnut类下的ori全是带异常的图片,依我看ori应该是无异常的图片吧?是否是新上传的数据集仍有问题?其他数据集还没有发现其他类ori有这种情况 image

我再检查一下,因为一般是不需要用ori数据的,所以不会影响检测的结果。筛选的话,有多个维度可供参考,1. 基于inception score对图像质量的衡量去筛选一些质量不佳的图;2. 在特征空间筛选离群点(可以筛选出一些很奇怪的图);3. 用1000张图训练好缺陷分类网络,然后去筛选掉一些检测不出缺陷的图(因为生成过程中存在一定的生成失败的图像,这些图像看起来是没有缺陷的,但是却有对应的缺陷mask,这会影响正常样本的检测效果)

谢谢您的耐心回复,对于我的模型而言它需要将原图片与生成异常的图片进行对比,使模型学习到异常的分布。为了使用您的数据集我需要ori数据与img数据进行对应,否则img偏左,ori偏右不利于模型的训练,如下图所示(这是钉子数据集的0与1。仅用于解释并非代表钉子数据集有误)。 0 1 再次感谢您耐心的回复,期待您更新后的数据集。