正式开始了实验室生涯,尽可能有时间就记录一下!

day 1

下午进组,完成单张图片对比找不同实现mask策略,效果很不错

day 2

完成与多张图片对比得到不同,发现当初步找出的不同块过多时,得到的重建图像会出错,模糊不清,减少用于对比度正常样本后,效果变好,要进一步调整参数

day 3

找像素点方法出错,对于有旋转等变换的样本出错几率大,修改初检方法

day 4

进度很小,修改初检方法都只能单独针对某一种或者少数几种类别样本完成初检
直接用数据集中的ground_truth进行mask指导,发现对于小的异常更能检测到,但对于大的异常由于mask较多,而且mask块过大,直接使用MAE原模型用于重建会出现过于模糊甚至重建出错的问题。patch块过大,重建之后纹理不清晰
使用MAE微调重新构建参数模型,但是自己的电脑显存不够。

day 5

mask策略遇到问题,先实现了异常定位msgms, 得到的结果比较准确

day 6

继续学习MAE源码,用MVTec完成模型的微调。
1、MVTec数据集的均值和方差计算
2、修改forward_loss

使用vit_base模型进行微调,未超出显存,可以使用
遇到警告:
UserWarning: Argument ‘interpolation’ of type int is deprecated since 0.13 and will be removed in 0.15

timm的helpers.py中由from torch._six import container_abcs->import collections.abc as container_abcs

微调之后效果反而更差,准备直接预训练

day 7

用3090服务器跑代码时发现算力与cuda版本不匹配,重新更新环境。
使用自己的电脑跑模型,迭代50个epoch后L2损失为0.16,还需要继续迭代。

day 8

继续跑代码,在Autodl服务器上跑代码:
预训练:
迭代500次,loss为0.3061060717812291
微调:
无论迭代多少次,可视化效果极差

day 9

22.9.28
继续读MAE源代码:找到了下载模型的链接如下:

https://dl.fbaipublicfiles.com/mae/visualize/mae_visualize_vit_base.pth
https://dl.fbaipublicfiles.com/mae/pretrain/mae_pretrain_vit_base.pth
https://dl.fbaipublicfiles.com/mae/finetune/mae_finetuned_vit_base.pth

使用visualize模型效果特别好,但使用pretrainfinetuned模型效果很差
读源码时发现,有的参数必须要用终端运行程序才有效,所以:

python main_finetune.py --mixup 0.8 --cutmix 1.0 --pin_mem --blr 5e-4 --layer_decay 0.65 --dist_eval
python main_finetune.py --eval --resume G:/MAE/output_dir_fine1/checkpoint-6.pth
python main_pretrain.py --norm_pix_loss --blr 1.5e-4

预训练迭代800次,loss为:0.05635738572864621,似乎还没收敛,但可视化效果已经开始变好。
python submitit_pretrain.py —norm_pix_loss —blr 5e-2

day 10

22.10.3
MVTec数据集太卷了,准备自己制造数据集,完成了insulator数据集的制造
问题:找不到什么样的叫做有异常。

day 11

22.10.4
在实验室服务器上安装cuda、cudnn、anoconda等,上传数据集和代码,开始跑代码。
遇到报错:
MatplotlibDeprecationWarning: Auto-removal of overlapping axes is deprecated since 3.6 and will be removed two minor releases later; explicitly call ax.remove() as needed.
解决:将matplotlib退回到3.5.2版本

服务器连接本地使用jupyter完成,之后继续学习指定卡和多卡代码运行。

day 12

22.10.5
在服务器上继续预训练模型
将所有数据集进行可视化并裁剪,制作需要的数据集
完成可视化以及裁剪操作,数据集制作完成
但是找不到缺陷,不了解什么情况是异常!!!

day 13

22.10.7
高铁接触网存在缺陷的地方:
1、绝缘子:表面掉漆、缺损、脏污、有异物
2、防风线、吊弦、刚性吊弦:断裂、弯曲、破损等
3、开合销(多种):缺失、安装不到位
4、紧固件:缺失、潜在缺失(安装不到位)

吊弦——霍夫变换得到异常候选区域(Multialgorithm Fusion Image Processing for High Speed Railway Dropper Failure–Defect Detection)
可重点参考:A Generic Anomaly Detection of Catenary Support Components Based on Generative Adversarial Networks

SPs:split pins——开口销
CSDs:catenary support devices——接触网支撑装置

day 14

22.10.8
图片的size由224->512,训练量大大增加,训练800epoch,loss还降不下去,但得到的效果比224清晰

day 15

22.10.10
将样本分类,找出能用于训练的正常数据集

day 16

22.10.11
继续使用MVTec数据集进行input-size为512的预训练,发现效果显著提高,只是训练时间会大大增加
TITAN XP训练:python main_pretrain.py --norm_pix_loss --blr 0.15,会出现学习率过大导致Loss is nan, stopping training ,使用的batch-size=6*8=48

3090训练:python main_pretrain.py --norm_pix_loss --blr 5e-3,正常训练,使用的batch-size=32*1=32,迭代2000次,loss还没降下去。

day 17

22.10.12
调整学习率继续进行训练
继续完成数据集的制作

day 18

22.10.13
数据集制作基本完成,发现使用input_size为224的模型在新数据集上可行,所以之后在不改变input_size情况下直接微调得到训练模型

day 19

22.11.9
近段时间都在调整数据集,挑选出正常样本。
由于没有服务器可用,重新开始读论文,寻找初检的方法,先大致确定使用显著性检测(Saliency Detection)

day 20

22.11.11
完成正常数据集的裁剪,挑选之后即可用于训练
开始挑选可用于训练的正常样本。

day 21

22.11.14
挑选正常样本,开始进行预训练。
TITAN XP:
prebase-32(500):python main_pretrain.py —norm_pix_loss —blr 1.5e-2 出现Loss is nan, stopping training,所以降低学习率,改为:
prebase-32(500-1):python main_pretrain.py —norm_pix_loss —blr 5e-3 运行成功:用于推理,有些部分重建很差,加大迭代次数,使用2000次迭代:
prebase-32(500):python main_pretrain.py —norm_pix_loss —blr 5e-3 运行成功:用于推理,对于背景部分的重建依旧很差。

prebase-64(500-3):python main_pretrain.py —norm_pix_loss —blr 1e-2 出现Loss is nan, stopping training,所以降低学习率,改为:
prebase-64(500-2):python main_pretrain.py —norm_pix_loss —blr 5e-3 运行成功:用于推理,有些部分重建很差,加大迭代次数,2000次迭代:
prebase-64(500-3):python main_pretrain.py —norm_pix_loss —blr 5e-3 运行成功:用于推理,对于背景白色部分的重建依旧很差。

prelarge-32(500):python main_pretrain.py —norm_pix_loss —blr 1.5e-2 出现Loss is nan, stopping training,所以降低学习率,改为:
prelarge-32(800):python main_pretrain.py —norm_pix_loss —blr 5e-3 运行成功:用于推理,有些部分重建很差,暂时放弃large模型。

day 22

22.11.15
运行结果如上。
继续调试,推理过程中发现,背景部分重建效果极差,所以尝试将白色背景换成黑色,且保持原尺寸比例,重新进行训练
prebase-32(800):python main_pretrain.py —norm_pix_loss —blr 5e-3 运行成功:用于推理,对于背景部分的重建依旧很差。

prebase-32(2000):python main_pretrain.py —norm_pix_loss —blr 5e-3 运行成功:用于推理,对于背景部分的重建依旧很差。

prebase-32(800-1):python main_pretrain.py —norm_pix_loss —blr 8e-3 运行成功:用于推理,对于背景部分的重建依旧很差。

day 23

22.11.16
预训练出来之后重建效果很差,重新阅读源码,理解含义。

day 24

22.11.20
在3090上在运行白色背景的样本进行预训练。
运行4个base、2个large,同样背景重建很差,但对于绝缘子而言重建较好,只要异常处被mask,则重建出来即是正常样本

day 25

22.11.22
修改训练过程中数据集的均值和方差,在3090上重新进行训练
重建效果依旧不理想,而且loss收敛更慢。

命名规则:32—b—5—bb -> batch size=32 — model=base — epoch=500 — 数据集为black_b
32b5bb:python main_pretrain.py —norm_pix_loss —blr 5e-3
32b5bs:python main_pretrain.py —norm_pix_loss —blr 5e-3
32b5ws:python main_pretrain.py —norm_pix_loss —blr 5e-3
32b5wb:python main_pretrain.py —norm_pix_loss —blr 5e-3

64b20bs:python main_pretrain.py —norm_pix_loss —blr 5e-3 出现Loss is nan, stopping training
64b20ws:python main_pretrain.py —norm_pix_loss —blr 5e-3
32b20ws:python main_pretrain.py —norm_pix_loss —blr 5e-3
32b20bs:python main_pretrain.py —norm_pix_loss —blr 5e-3

day 26

22.11.23
重新调试代码,寻找重建颜色错误的原因

day 27

22.11.24
单步调试,读懂代码,发现输入图像无需padding成$224 \times 224$,代码数据增强部分有操作
重新计算未padding样本的均值和方差参与计算
16b20:样本均值方差 Training time 14:57:35
32b20:样本均值方差 Training time 10:40:26
16b20-1:Imagenet均值方差 Training time 14:31:22
32b20-1:Imagenet均值方差 Training time 10:45:05
效果都比较差

day 28

22.11.25
不用padding时,重建时样本没有$224 \times 224$,若用padding的话,背景重建会出错,所以还是使用带padding的样本进行训练,并使用各自的均值方差
64b5b:$160 \times 64$ 黑色背景
64b5b-1:$176 \times 64$ 黑色背景
64b5w-1:$176 \times 64$ 白色背景
32b5w:$160 \times 64$ 白色背景
效果依然较差
使用Imagenet均值方差再试试,并调小学习率
32b20b:$160 \times 64$ 黑色背景 Imagenet均值方差 python main_pretrain.py —norm_pix_loss —blr 1.5e-4 Training time 10:13:49
32b20w:$160 \times 64$ 白色背景 Imagenet均值方差 python main_pretrain.py —norm_pix_loss —blr 1.5e-4 Training time 10:34:15
32b20b-1:$160 \times 64$ 黑色背景 Imagenet均值方差 python main_pretrain.py —norm_pix_loss —blr 5e-4 Training time 10:39:15
32b20w-1:$160 \times 64$ 白色背景 Imagenet均值方差 python main_pretrain.py —norm_pix_loss —blr 5e-4 Training time 10:44:33
效果不好
在训练时计算loss时不做归一化:
32b20b-2:$160 \times 64$ 黑色背景 Imagenet均值方差 python main_pretrain.py —blr 5e-4 Training time 14:01:42
32b20w-2:$160 \times 64$ 白色背景 Imagenet均值方差 python main_pretrain.py —blr 5e-4 Training time 13:59:18
效果很好

day 29

22.11.26
在训练时计算loss时不做归一化得到了很好的效果。继续探索影响因素
32b10w2:不改变原始样本比例填充,白色背景 Imagenet均值方差 python main_pretrain.py —blr 5e-3 Training time 4:59:20
32b10w2-1:不改变原始样本比例填充,白色背景 样本数据集均值方差 python main_pretrain.py —blr 5e-3 Training time 5:10:51
32b10b2:不改变原始样本比例填充,黑色背景 Imagenet均值方差 python main_pretrain.py —blr 5e-3 Training time 5:15:37
32b10b2-1:不改变原始样本比例填充,黑色背景 样本数据集均值方差 python main_pretrain.py —blr 5e-3 Training time 5:13:13
32b10w1:$176 \times 64$ 白色背景 Imagenet均值方差 python main_pretrain.py —blr 5e-3 Training time 6:58:29
32b10b1:$176 \times 64$ 黑色背景 Imagenet均值方差 python main_pretrain.py —blr 5e-3 Training time 6:59:24
TITAN
16b10w:$160 \times 64$ 白色背景 样本数据集均值方差 python main_pretrain.py —blr 5e-3
32b10b:$160 \times 64$ 黑色背景 样本数据集均值方差 python main_pretrain.py —blr 5e-3
32b10w1:$176 \times 64$ 白色背景 样本数据集均值方差 python main_pretrain.py —blr 5e-3
32b10b1:$176 \times 64$ 黑色背景 样本数据集均值方差 python main_pretrain.py —blr 5e-3

报错:NVIDIA-SMI has failed because it couldn’t communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.
3090
32b10w1-1:$176 \times 64$ 白色背景 样本数据集均值方差 python main_pretrain.py —blr 5e-3
32b10b1-1:$176 \times 64$ 黑色背景 样本数据集均值方差 python main_pretrain.py —blr 5e-3
32b10w:$160 \times 64$ 白色背景 Imagenet均值方差 python main_pretrain.py —blr 5e-3
32b10b:$160 \times 64$ 黑色背景 Imagenet均值方差 python main_pretrain.py —blr 5e-3
32b10w-1:$160 \times 64$ 白色背景 样本数据集均值方差 python main_pretrain.py —blr 5e-3
32b10b-1:$160 \times 64$ 黑色背景 样本数据集均值方差 python main_pretrain.py —blr 5e-3

综合一下,影响因素有样本内容大小、背景颜色、均值方差
32b10w2:不改变原始样本比例填充,白色背景 Imagenet均值方差 python main_pretrain.py —blr 5e-3 Training time 4:59:20
32b10b2:不改变原始样本比例填充,黑色背景 Imagenet均值方差 python main_pretrain.py —blr 5e-3 Training time 5:15:37
32b10w2-1:不改变原始样本比例填充,白色背景 样本数据集均值方差 python main_pretrain.py —blr 5e-3 Training time 5:10:51
32b10b2-1:不改变原始样本比例填充,黑色背景 样本数据集均值方差 python main_pretrain.py —blr 5e-3 Training time 5:13:13
32b10w1:$176 \times 64$ 白色背景 Imagenet均值方差 python main_pretrain.py —blr 5e-3 Training time 6:58:29
32b10b1:$176 \times 64$ 黑色背景 Imagenet均值方差 python main_pretrain.py —blr 5e-3 Training time 6:59:24
32b10w1-1:$176 \times 64$ 白色背景 样本数据集均值方差 python main_pretrain.py —blr 5e-3 Training time 4:59:07
32b10b1-1:$176 \times 64$ 黑色背景 样本数据集均值方差 python main_pretrain.py —blr 5e-3 Training time 5:10:20
32b10w:$160 \times 64$ 白色背景 Imagenet均值方差 python main_pretrain.py —blr 5e-3 Training time 5:12:49
32b10b:$160 \times 64$ 黑色背景 Imagenet均值方差 python main_pretrain.py —blr 5e-3 Training time 5:17:03
32b10w-1:$160 \times 64$ 白色背景 样本数据集均值方差 python main_pretrain.py —blr 5e-3 Training time 6:58:47
32b10b-1:$160 \times 64$ 黑色背景 样本数据集均值方差 python main_pretrain.py —blr 5e-3 Training time 6:57:04

day 30

22.11.27
尝试一下input size=256,便于之后多尺度mask
16b10w1_256:$176 \times 64$ 白色背景 Imagenet均值方差 python main_pretrain.py —blr 5e-3 Training time 8:34:17
16b10w1-1_256:$176 \times 64$ 白色背景 样本数据集均值方差 python main_pretrain.py —blr 5e-3 Training time 8:28:51
16b10w2_256:不改变原始样本比例填充,白色背景 Imagenet均值方差 python main_pretrain.py —blr 5e-3 Training time 7:58:46
16b10w2-1_256:不改变原始样本比例填充,白色背景 样本数据集均值方差 python main_pretrain.py —blr 5e-3 Training time 8:29:40
32_MVTec_256:Imagenet均值方差 input size=256 python main_pretrain.py —blr 5e-3 Training time 9:45:46
MVTec_512:Imagenet均值方差 input size=512 python main_pretrain.py —blr 5e-3 Training time 2 days, 4:58:58

day 31

22.11.28
分析效果好坏,所有效果都是好的
对于Imagenet均值方差,write-1、write-2、black-1效果更好,其中write-1效果最好
对于样本数据集均值方差,重建效果都差不多,write-2效果更好,但比Imagenet均值方差效果差
Imagenet效果更好,所以之后实验选择使用Imagenet均值方差
大多数情况下白色背景比黑色背景效果要好,但有的样本在黑色背景下重建效果更好
32b10b_256:$160 \times 64$ 黑色背景 Imagenet均值方差 python main_pretrain.py —blr 5e-3 Training time 6:27:09
32b10w_256:$160 \times 64$ 白色背景 Imagenet均值方差 python main_pretrain.py —blr 5e-3 Training time 6:48:06
32b10b_288:$160 \times 64$ 黑色背景 Imagenet均值方差 python main_pretrain.py —blr 5e-3 Training time 8:10:41
32b10w_288:$160 \times 64$ 白色背景 Imagenet均值方差 python main_pretrain.py —blr 5e-3 Training time 8:16:07
32b10b1_288:$176 \times 64$ 黑色背景 Imagenet均值方差 python main_pretrain.py —blr 5e-3 Training time 10:33:22
32b10w1_288:$176 \times 64$ 白色背景 Imagenet均值方差 python main_pretrain.py —blr 5e-3 Training time 10:01:13
32b10w2_288:不改变原始样本比例填充 白色背景 Imagenet均值方差 python main_pretrain.py —blr 5e-3 Training time 9:06:56

day 32

22.11.29
继续把还没有跑完的模型跑完
32b10b1_256:$176 \times 64$ 黑色背景 Imagenet均值方差 python main_pretrain.py —blr 5e-3
32b10w1_256:$176 \times 64$ 白色背景 Imagenet均值方差 python main_pretrain.py —blr 5e-3
32b10b2_256:不改变原始样本比例填充,黑色背景 Imagenet均值方差 python main_pretrain.py —blr 5e-3
32b10w2_256:不改变原始样本比例填充,白色背景 Imagenet均值方差 python main_pretrain.py —blr 5e-3
32b10b2_288:不改变原始样本比例填充 黑色背景 Imagenet均值方差 python main_pretrain.py —blr 5e-3

综合已经训练完成的模型:
imagenet224:(已完成所有)
32b10w: $160 \times 64$ 白色背景 Imagenet均值方差 Training time 5:12:49
32b10b: $160 \times 64$ 黑色背景 Imagenet均值方差 Training time 5:17:03
32b10w1:$176 \times 64$ 白色背景 Imagenet均值方差 Training time 6:58:29
32b10b1:$176 \times 64$ 黑色背景 Imagenet均值方差 Training time 6:59:24
32b10w2:不改变原始样本比例 白色背景 Imagenet均值方差 Training time 4:59:20
32b10b2:不改变原始样本比例 黑色背景 Imagenet均值方差 Training time 5:15:37
yangben224:(已完成所有)
32b10w-1: $160 \times 64$ 白色背景 样本数据集均值方差 Training time 6:58:47
32b10b-1: $160 \times 64$ 黑色背景 样本数据集均值方差 Training time 6:57:04
32b10w1-1:$176 \times 64$ 白色背景 样本数据集均值方差 Training time 4:59:07
32b10b1-1:$176 \times 64$ 黑色背景 样本数据集均值方差 Training time 5:10:20
32b10w2-1:不改变原始样本比例 白色背景 样本数据集均值方差 Training time 5:10:51
32b10b2-1:不改变原始样本比例 黑色背景 样本数据集均值方差 Training time 5:13:13
imagenet256:(差一个32b10w2_256)
32b10w_256: $160 \times 64$ 白色背景 Imagenet均值方差 Training time 6:48:06
32b10b_256: $160 \times 64$ 黑色背景 Imagenet均值方差 Training time 6:27:09
32b10w1_256:$176 \times 64$ 白色背景 Imagenet均值方差 Training time 6:41:08
32b10b1_256:$176 \times 64$ 黑色背景 Imagenet均值方差 Training time 6:39:57
32b10w2_256:不改变原始样本比例 白色背景 Imagenet均值方差 Training time 6:21:19
32b10b2_256:不改变原始样本比例 黑色背景 Imagenet均值方差 Training time 6:44:29

16b10w1_256: $176 \times 64$ 白色背景 Imagenet均值方差 Training time 8:34:17
16b10w2_256:不改变原始样本比例 白色背景 Imagenet均值方差 Training time 7:58:46
yangben256:(暂时不需要)
16b10w1-1_256: $176 \times 64$ 白色背景 样本数据集均值方差 Training time 8:28:51
16b10w2-1_256:不改变原始样本比例 白色背景 样本数据集均值方差 Training time 8:29:40
imagenet288:
32b10w_288: $160 \times 64$ 白色背景 Imagenet均值方差 Training time 8:16:07
32b10b_288: $160 \times 64$ 黑色背景 Imagenet均值方差 Training time 8:10:41
32b10w1_288:$176 \times 64$ 白色背景 Imagenet均值方差 Training time 10:01:13
32b10b1_288:$176 \times 64$ 黑色背景 Imagenet均值方差 Training time 10:33:22
32b10w2_288:不改变原始样本比例 白色背景 Imagenet均值方差 Training time 9:06:56
32b10b2_288:不改变原始样本比例 黑色背景 Imagenet均值方差 Training time 9:01:53

day 33

22.11.30
推理过程很慢,需要优化.
尝试使用ssim和gmsd进行异常定位,发现边缘处存在误检,破损和脏污检测效果不好,需继续找更好的方法。

day 34

22.11.31
完成热力图的生成,对于大脏污的检测有所改进,但对于破损效果不行。
经过实验发现使用write-1和imagenet256效果更好,之后只考虑对此进行实验。

day 35

22.12.3
32b20w1_288:Training time 14:34:41
32b20w1_256:Training time 11:33:41

day 36

22.12.4
制作test数据集,微调train数据集。

day 37

22.12.5
完成所有数据集的制作,开始进行实验,采用:$176 \times 64$ 白色背景 Imagenet均值方差。

day 38

22.12.6
继续训练large模型,并将迭代次数增加到2000次。

day 39

22.12.7
将测试集进行推理可视化,发现异常过大会导致重建效果差、异常过小异常定位失败,继续调试GMSD,并进行异常检测和定位的评价指标计算。

day 40

22.12.8
继续读论文,找到更好的异常定位方法,计算异常检测和异常定位的ROCAUC,需要异常图像的GT
暂时只做异常检测,异常定位只做可视化,不做性能评估

day 41-46

22.12.9-22.12.14
2000次迭代实验,由于服务器出现了问题,实验跑一半重新跑。
b20w1_224:python main_pretrain.py —blr 5e-3 Training time 13:50:53
b20w1_256:python main_pretrain.py —blr 5e-3 Training time 19:53:49
b20w1_288:python main_pretrain.py —blr 5e-3 Training time 1 day, 1:49:44

l20w1_224:python main_pretrain.py —blr 1e-3 Training time 1 day, 7:06:46
l20w1_256:python main_pretrain.py —blr 1e-3 Training time 1 day, 11:12:55
l20w1_288:python main_pretrain.py —blr 1e-3 Training time 21:09:09

b20b1_224:python main_pretrain.py —blr 5e-3 Training time 15:01:15
b20b1_256:python main_pretrain.py —blr 5e-3 Training time 19:19:19
b20b1_288:python main_pretrain.py —blr 5e-3 Training time 19:33:09

l20b1_224:python main_pretrain.py —blr 1e-3 Training time 14:37:35
l20b1_256:python main_pretrain.py —blr 1e-3 Training time 17:57:53
l20b1_288:python main_pretrain.py —blr 1e-3 Training time 1 day, 2:29:33

b20b1_224-1:样本均值方差 python main_pretrain.py —blr 5e-3 Training time 15:11:01
b20b1_256-1:样本均值方差 python main_pretrain.py —blr 5e-3 Training time 19:18:43
b20b1_288-1:样本均值方差 python main_pretrain.py —blr 5e-3 Training time 19:24:40

l20w1_224-1:样本均值方差 python main_pretrain.py —blr 1e-3 Training time 1 day, 3:45:02
l20w1_256-1:样本均值方差 python main_pretrain.py —blr 1e-3 Training time 1 day, 11:13:57
l20w1_288-1:样本均值方差 python main_pretrain.py —blr 1e-3 Training time 21:00:13

b20w1_224-1:样本均值方差 python main_pretrain.py —blr 5e-3 Training time 15:18:03
b20w1_256-1:样本均值方差 python main_pretrain.py —blr 5e-3 Training time 19:44:19
b20w1_288-1:样本均值方差 python main_pretrain.py —blr 5e-3 Training time 19:38:44

l20b1_224-1:样本均值方差 python main_pretrain.py —blr 1e-3 Training time 1 day, 3:45:42
l20b1_256-1:样本均值方差 python main_pretrain.py —blr 1e-3 Training time 1 day, 1:04:46
l20b1_288-1:样本均值方差 python main_pretrain.py —blr 1e-3 Training time 21:00:59

day 47

23.2.27
完成abstract和introduction

day 48-51

23.2.28-23.3.3
完成数据集分析,完成datset模块的修改

day 52

23.3.6
修改检测算法,由GMSD改为SSIM

day 53

23.3.7
继续修改SSIM,主要解决大缺陷下误检过多的问题
训练未进行分类的数据集:
fbno->未分类
insfb->分类

day 54

23.3.8
比较SSIM中不同检测方法的优劣
result_no1:没有填充的图像,无高斯加权,未进行阈值去噪
result_no2:没有填充的图像,高斯加权,未进行阈值去噪
result_no3:没有填充的图像,无高斯加权,进行阈值去噪
result_no4:没有填充的图像,高斯加权,进行阈值去噪

result_fb1:按宽边填充的图像,无高斯加权,未进行阈值去噪
result_fb2:按宽边填充的图像,高斯加权,未进行阈值去噪
result_fb3:按宽边填充的图像,无高斯加权,进行阈值去噪
result_fb4:按宽边填充的图像,高斯加权,进行阈值去噪

day 55

23.3.9
发现找差异最小的mask_size效果比找差异最大的好
将数据放到GPU上运行,速度提升小
使用的模型为所有数据集训练得到的,包括异常数据集。
result_fbno1:按宽边填充的图像,无高斯加权,未进行阈值去噪
result_fbno2:按宽边填充的图像,高斯加权,未进行阈值去噪
result_fbno3:按宽边填充的图像,无高斯加权,进行阈值去噪
result_fbno4:按宽边填充的图像,高斯加权,进行阈值去噪

MAE学习能力太强,当训练集中有异常数据时,重建时异常仍会被重建

day 56

23.3.10
重建效果最好:result_fb1、差异最小的
检测效果最好:
似乎不需要多尺度,以16为mask_size的效果更好
未进行填充的数据集对于遮挡的效果差

day 57

23.3.13
检测时,多尺度相似图的累积计算,或多inputsize累计计算
修改损失函数为SSIM进行实验
继续找无监督算法
开始将自己的算法用于MVTec上
开始比较其他算法:
US-Uninformed Students: Student–Teacher Anomaly Detection with Discriminative Latent Embeddings
KDAD-Multiresolution Knowledge Distillation for Anomaly Detection
STFPM-Student-Teacher Feature Pyramid Matching for Unsupervised Anomaly Detection
RIAD-Reconstruction by Inpainting for Visual Anomaly Detection
RD4AD-Anomaly Detection via Reverse Distillation from One-Class Embedding
RegAD-Registration based Few-Shot Anomaly Detection
UniAD-A Unified Model for Multi-class Anomaly Detection

day 58

23.3.14
解决无监督问题——直接放进讨论中(余弦相似度)
多尺度问题——先不考虑多尺度,也可放进讨论中
只考虑图像级的评价指标,使用斜框IOU计算
和先前的方法对比:选择RIAD、STFPM

day 59

23.3.15
重新整理标注数据集,在正方形框内标注

day 60

23.3.16
图像级ROCAUC:
有缺陷为1,无缺陷为0
异常图找最大值组成list求ROCAUC
直接像素级求ROCAUC:
制作ground truth

day 61

23.3.17
制作GT

day 62

23.3.18
完成图像级和像素级ROCAUC等指标的计算,效果挺好的。

day 63

23.3.19
重新完成了新数据集的训练、测试工作,评价指标依旧挺高的,说明的我们等方法效果确实挺好的

day 64

23.3.20
调RIAD、STFPM两个代码
STFPM的检测效果比我们的效果差,但指标很高,原因:没进行裁剪直接计算像素级的指标,填充部分肯定都检测正常
修改后,像素级仍比我们的方法高,图像级要低
RIAD代码需要另找

day 65

23.3.21
原代码集成指标计算
修改论文

day 66

23.3.22
继续修改论文结构,基本确定标题框架,之后只差部分图片、实验和分析
对于RIAD论文代码调不通,选择新的方法,一篇同样基于transformer重建的论文方法(InTra),代码已调通,只是训练很慢,调参麻烦

day 67-69

23.3.23-3.25
不局限于重建方法,改用其他异常检测代码
继续挑选可以实现对代码,写论文

day 70

23.3.26
基本完成比较实验,梳理还需要的内容:

  • 1、FastFlow图?暂时可不用
  • 2、多尺度每一项指标(完成)
  • 3、多尺度图
  • 4、MVTec实验
  • 5、讨论部分两种完全无监督方法的指标和图,先只采用224(完成all)
  • 6、多阶段序列重建指标和图
  • 7、修改检测代码

    day 71

    23.3.27
    多尺度完成

    day 72SAC

    23.3.28
    代码修改完成,大大提升了速度
    讨论部分完成两种完全无监督方法的指标和图,先只采用224
    对前面文字进行了修改

    day 73

    23.3.29
    完成所有实验
    完成论文初稿

    day 74

    23.3.30
    修改论文
    开始在MVTec上测试

    day 75

    23.3.31
    完成测试
    论文中增加MVTec的分析

    day 76-79

    23.4.10-23.4.13
    修改润色论文

    day 80

    23.4.14
    已投稿