SDG精读与代码复现More Control for Free Image Synthesis with Semantic Diffusion GuidanceSDG

Posted 旋转的油纸伞

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SDG精读与代码复现More Control for Free Image Synthesis with Semantic Diffusion GuidanceSDG相关的知识,希望对你有一定的参考价值。

【SDG精读与代码复现】More Control for Free! Image Synthesis with Semantic Diffusion Guidance【SDG】

一、前言

论文地址:Liu_More_Control_for_Free_Image_Synthesis_With_Semantic_Diffusion_Guidance_WACV_2023_paper
代码地址:https://github.com/xh-liu/SDG_code
文章核心思想:多模态的引导扩散模型进行采样。直接用训练好的非条件的扩散模型,无需重复训练。文字guided是用一个微调的CLIP模型,数据集无需文本注释。数据集是FFHQ和LSUN在这篇文章介绍了。
本文主要分为三个模块:
第一个是论文介绍模块,以更通俗易懂的方式帮助大家理解论文。
第二个是复现模块,代码的复现引导。
第三个是复现过程的代码解决方案模块,复现过程遇到有bug的可以看看。
后续写代码的分析模块,感兴趣的可以收藏一下此文章,后续放上链接。

二、论文介绍

效果:

1、文章主旨思想背景介绍

文章基于DDPM,IDDPM,DDIM和classifier guided diffusion model以及score-base model。
好在大部分的知识都是来自:classifier guided diffusion model

ideal:

  1. 然而,以往的文本-图像合成方法大多需要图像-文本对进行训练,不能推广到没有文本注释的数据集。 我们的文本引导合成方法可以应用于没有相关文本注释的数据集。 例如DALL-E,GLIDE需要成对的图像-文本注释,这将应用限制在特定的数据集上,或者需要大量的数据和计算资源进行训练。 我们提出的框架能够在给出详细文本提示的情况下在多个域上生成图像,既不需要来自这些域的图像-文本配对数据,也不需要大量计算来训练文本引导的图像合成模型。
  2. 多模态的guidance
  3. 当前的图像调节合成技术要么仅将参考图像的“风格”转移到目标图像[21,3],要么被限制在具有明确定义的结构的域,例如人类或动物面部[21,53]。它们不能基于单个参考图像生成具有各种姿势、结构和布局的多样图像。
  4. 我们的方法显示了更好的可控性,因为提出了不同类型的图像引导,用户可以通过使用不同types和scales的引导来决定保留多少语义(semantic)、结构(structural)或风格(style)信息,而不需要重新训练无条件扩散模型。
  • 文本guidance:
    具体地说,我们的语言指导是基于Clip[41]对噪声图像进行精细处理所预测的图像-文本匹配分数。
    我们提出了一种无文本注释的自监督算法来优化CLIP图像编码器,从而以最小的代价获得引导模型。
  • 图像guidance
    至于图像指导,根据我们在图像中寻找的信息,我们定义了两个选项:内容和风格指导。

图像和文本可以单独进行guidance或者一起。

  • Clip[41]是一个在大规模图像和文本上训练的强大的视觉-语言联合嵌入模型。 它的表示已经被证明是鲁棒和通用的,足以在不同的数据集上执行零镜头分类和各种视觉语言任务。 StyleClip[39]和StyleGan-Nada[12]已经证明,Clip能够实现文本引导的图像处理和图像生成的域自适应,而无需特定域的图像-文本对。

算法:

2、方法

  1. Language Guidance
    具体来说,给定图像X和文本提示L,该模型分别使用图像编码器EI和文本编码器EL将它们嵌入到联合嵌入空间中。 将嵌入EI(x)和EL(l)之间的相似度作为余弦距离计算出来,并利用余弦距离构造语言引导函数。
    其中图像编码器EI需要将时间步长t并入作为输入,并且还需要在不同时间步长处对噪声图像进行进一步训练。然后将有时间步t输入的图像编码器记为: E I ′ ( x t , t ) E^\\prime_I(x_t,t) EI(xt,t)

==最后,语言指导功能可以定义为: ==

  1. Image Guidance
    分为Image Content Guidance和Image Style Guidance
    其中:

Image Content Guidance【例如姿势,角度和布局,结构属性】
图像内容引导旨在基于参考来控制所生成图像的内容(具有或不具有结构约束),并且被公式化为图像特征嵌入的余弦相似度。令x′ 0表示无噪声参考图像。我们根据等式2扰动x′ 0以得到x′ t。然后,在时间步长t处的引导信号是:(公式2是扩散过程的前行公式)
使用图像编码器进行引导的一个有趣的特性是,可以控制从参考图像中保持多少结构信息,例如姿态和视点。例如,上述等式中使用的嵌入不具有空间维度,导致样本在姿态和布局上具有很大变化。
然而,通过利用空间特征图并强制对应空间位置中的特征之间的对准,我们可以引导所生成的图像额外地与参考图像共享类似结构,如下所述:

其中E′ I()j ∈ RCj×Hj×Wj表示图像编码器E′ I的第j层的空间特征图。

Image Style Guidance【风格】
图像风格引导允许从参考图像进行风格转移。其被类似地公式化,除了中间特征图的格拉姆矩阵之间的对齐被强制执行:

其中,G′ I()j是图像编码器E′ I的第j层特征图的格拉姆矩阵[22]。

  1. Multimodel Guidance

就是上面两个等式的一个加权求和,用到了缩放因子s。公式如下:

通过调整每个模态的加权因子,用户可以在语言和图像引导之间取得平衡。
4.无文本注释的CLIP自监督微调
CLIP [41]是一个强大的视觉和语言模型,在大规模图像-文本数据上训练。我们利用其语义知识,实现可控的扩散模型的合成。为了充当指导功能,期望CLIP在任何时间步长t处理噪声图像xt。我们对CLIP图像编码器EI进行较小的架构改变,以通过将批归一化层转换为自适应批归一化层来接受附加输入t,其中尺度和偏置项的预测以t为条件。我们将该修改的CLIP图像编码器表示为fEI。fEI的参数由预训练的CLIP模型EI的参数初始化,除了用于自适应批量归一化层的参数之外。

为了微调fEI,我们提出了一种自我监督的方法,在该方法中,我们强制从干净和噪声图像中提取的特征之间的对齐。形式上,给定一批N对干净和有噪声的图像 x 0 i , x t i i i = 1 N \\left \\x^i_0,x^i_t_i\\right \\ ^N_i=1 x0ixtiii=1N,其中ti是针对控制噪声量的第i个图像采样的时间步长,我们分别用EI和fEI对x10和x1 ti进行编码。我们依靠CLIP的对比目标==(contrastive objective),以最大限度地提高余弦相似性的N个积极的对,同时最大限度地减少剩余的负对的相似性。我们确定EI的参数,并使用对比目标(contrastive objective)==来微调fEI的参数。

通过我们的微调CLIP模型,扩散模型可以由用户提供的图像或语言信息指导。此外,CLIP模型以自我监督的方式进行微调,而不需要目标数据集的任何语言数据。

3、实验

数据集是FFHQ和LSUN在这篇文章介绍了。
有趣的是这些基本都是利用openai/guided-diffusion训练好的模型。其模型在下面有讲到。

参数设置:
我们使用[10,8]中的无条件DDPM,并对每个数据集的噪声图像使用微调CLIP [41] RestNet 50×16模型,初始学习率为10−4,权重衰减为 1 0 − 3 10^−3 103,批量为256。当用我们的SDG合成图像时,缩放因子是一个超参数,我们可以针对每个引导手动调整,这将在第4.3.节中讨论。默认缩放因子对于图像引导为100,对于语言引导为120。

  1. 定量评价

评价设置:
由于我们的SDG是第一种将文本指导和图像指导统一起来进行图像合成的方法,因此以前没有关于图像和语言指导的图像合成的工作。因此,我们分别对语言引导的图像合成和图像引导的图像合成进行了评价,以便与以前的工作进行比较.我们评估了FFHQ数据集上的语言引导生成。为此,我们根据CelebAAttributes [32]中的性别和面部属性的组合定义了400条文本指令。例如,“一张戴眼镜的微笑男子的照片”。我们为每个文本查询生成25个图像,总共生成10,000个图像。我们将我们的语言引导生成与StyleGAN+CLIP进行比较,后者使用CLIP [41]损失来优化StyleGAN [24]的随机初始化潜在代码,以用于文本引导图像合成。StyleGAN+CLIP删除了StyleCLIP [24]的GAN反转模块,因此它可以应用于基于语言的图像合成。由于我们的模型不需要文本注释进行训练,因此我们的文本引导图像合成实验在没有配对文本注释的仅图像数据集上进行。因此,我们的方法不能直接与其他基于文本的图像合成方法进行比较,这些方法必须在文本图像配对数据集上进行训练。

评价图像引导图像合成:
我们从每个数据集中随机选择10,000幅图像作为引导,并基于引导图像合成新图像。我们将我们的图像引导结果与ILVR [8]进行比较。

结果:

可见提升还是比较大的。
评价指标放最后介绍,感兴趣的可以翻下去。
2. 消融研究
如3.1节和算法1所示,比例因子S是一个用户可控的超参数,它控制制导的强度。 我们在表2和表3中探索缩放因子的影响。 附录中显示了不同缩放因子的效果的可视化示例。 我们观察生成图像的语义正确性和多样性之间的权衡。 随着缩放因子的增大,引导信号对生成结果有更多的控制,与引导的语义一致性增加。 而较大的比例因子也会导致生成图像的多样性较低。 用户可以调整缩放因子来控制他们期望生成的图像的多样性。

3. 定性结果
文本引导和图像引导合成结果 :

我们的模型将语言和图像引导结合在一个统一的框架中,易于适应各种应用。 在图3中,我们展示了带有图像内容指导的合成结果(公式7)。 通过图像导引扩散,该模型能够合成具有不同结构的新图像,并与导引图像的语义相匹配。

图4显示了语言引导的扩散区域,其中我们的模型能够处理复杂而精细的描述,例如“一个微笑的棕色卷发和口红的女人”,或者“一个有木质壁橱和墙上画的卧室”。

我们还可以将语言和图像引导联合起来,如图5所示。 图像和语言指导提供了互补的信息,我们的语义扩散指导能够生成与两者一致的图像。 例如,我们可以生成一个类似于指导卧室图像但带有窗户的卧室,或者根据指导图像生成一个女人,但带有定义语言指导的新属性(例如,“微笑”或“短发”或“太阳镜”)。

与先前工作的比较 :
由于之前还没有将文本和图像引导结合在同一统一框架中的工作,我们将我们的方法与以前的文本引导和图像引导合成工作进行了比较。 在图像引导合成中,与我们的工作最相关的是ILVR[8]。如图所示 6(a),我们的模型可以生成不同姿态和结构的图像,而ILVR只能生成相同姿态和结构的图像。 我们将我们的语言引导图像合成与图的StyleGan+Clip进行了比较 6(b). 虽然StyleGan+Clip能够生成高质量的图像,但其结果缺乏多样性,而我们的模型能够基于语言指令生成高质量和多样性的结果。

其他应用 :
在图 7(a,b),我们证明了风格(方程9)和结构保持(方程8)图像制导的结果。 有了风格指导,在LSUN卧室训练的模特能够以看不见的风格合成卧室。 通过保留结构的内容指导,合成的图像保留了参考图像的结构、姿态和布局。 图 7©表明,该模型能够以域外图像作为引导,合成出与引导卡通图像语义相似的真实感图像。

三、复现模块:

1、复现指引

  1. 在这里面https://github.com/xh-liu/SDG_code下载好代码。
  2. 安装环境:
git clone https://github.com/xh-liu/SDG_code
cd SDG
pip install -r requirements.txt
pip install -e .

requirements.txt其中的:

pip install git+https://github.com/openai/CLIP.git

可能需要魔法。
3. 下载预训练模型到models/
其中models文件夹是需要新建的。一般下载两个,我是下载了ffhq_baseline.pt和clip_ffhq.pt。
DDPM的预训练模型是来自https://github.com/openai/guided-diffusionhttps://github.com/jychoi118/ilvr_adm也就是说拿来用即可,不需要自己训练。
为了语义引导,作者微调了CLIP在噪声图像的图片编码器。
4.最后是用语义扩散指导进行采样

要从这些模型中采样,您可以使用脚本/sample.py。
对于Lsun Cat,Lsun马和Lsun卧室,模型旗被定义为:

MODEL_FLAGS="--attention_resolutions 32,16,8 --class_cond False --diffusion_steps 1000 --dropout 0.1 --image_size 256 --learn_sigma True --noise_schedule linear --num_channels 256 --num_head_channels 64 --num_res_blocks 2 --resblock_updown True --use_fp16 False --use_scale_shift_norm True --model_path models/lsun_bedroom.pt"

对于FFHQ数据集,模型标志定义为:

MODEL_FLAGS="--attention_resolutions 16 --class_cond False --diffusion_steps 1000 --dropout 0.0 --image_size 256 --learn_sigma True --noise_schedule linear --num_channels 128 --num_head_channels 64 --num_res_blocks 1 --resblock_updown True --use_fp16 False --use_scale_shift_norm True --model_path models/ffhq_10m.pt"

采样标志:

SAMPLE_FLAGS="--batch_size 8 --timestep_respacing 100"

使用图像内容(语义)进行采样指南:

GUIDANCE_FLAGS="--data_dir ref/ref_bedroom --text_weight 0 --image_weight 100 --image_loss semantic --clip_path models/CLIP_bedroom.pt"
CUDA_VISIBLE_DEVICES=0 python -u scripts/sample.py --exp_name bedroom_image_guidance --single_gpu $MODEL_FLAGS $SAMPLE_FLAGS $GUIDANCE_FLAGS

使用图像样式指导进行抽样:

GUIDANCE_FLAGS="--data_dir ref/ref_bedroom --text_weight 0 --image_weight 100 --image_loss style --clip_path models/CLIP_bedroom.pt"
CUDA_VISIBLE_DEVICES=0 python -u scripts/sample.py --exp_name bedroom_image_style_guidance --single_gpu $MODEL_FLAGS $SAMPLE_FLAGS $GUIDANCE_FLAGS

使用语言和图像指导进行抽样:

GUIDANCE_FLAGS="--data_dir ref/ref_bedroom --text_weight 160 --image_weight 100 --image_loss semantic --text_instruction_file ref/bedroom_instructions.txt --clip_path models/CLIP_bedroom.pt"
CUDA_VISIBLE_DEVICES=0 python -u scripts/sample.py --exp_name bedroom_image_language_guidance --single_gpu $MODEL_FLAGS $SAMPLE_FLAGS $GUIDANCE_FLAGS

附上我的脚本,我用的预训练的model在上面说了。
其中MODEL_FLAGS是我们用的扩散模型的预训练模型,一般确定了就不需要改。
SAMPLE_FLAGS也同样如此,
一般需要改的是GUIDANCE_FLAGS的–text_instruction_file ref/gold.txt即指导的文字,还有–exp_name ffhqhat(即输出文件夹的名字)您可能需要调整 text_weight 和 image_weight 以获得更好的生成样本的视觉质量。

MODEL_FLAGS="--attention_resolutions 16 --class_cond False --diffusion_steps 1000 --dropout 0.0 --image_size 256 --learn_sigma True --noise_schedule linear --num_channels 128 --num_head_channels 64 --num_res_blocks 1 --resblock_updown True --use_fp16 False --use_scale_shift_norm True --model_path models/ffhq_baseline.pt"
SAMPLE_FLAGS="--batch_size 8 --timestep_respacing 100"
# GUIDANCE_FLAGS="--data_dir ref/ref_ffhq --text_weight 160 --image_weight 100 --image_loss semantic --text_instruction_file ref/ffhq.txt --clip_path models/clip_ffhq.pt"
# CUDA_VISIBLE_DEVICES=0 python -u scripts/sample.py --exp_name ffhq_image_language_guidance --single_gpu $MODEL_FLAGS $SAMPLE_FLAGS $GUIDANCE_FLAGS

# GUIDANCE_FLAGS="--data_dir ref/ref_ffhq --text_weight 160 --image_weight 0 --text_instruction_file ref/lanffhq.txt --clip_path models/clip_ffhq.pt"
# CUDA_VISIBLE_DEVICES=0 python -u scripts/sample.py --exp_name ffhqridehorse --single_gpu $MODEL_FLAGS $SAMPLE_FLAGS $GUIDANCE_FLAGS

# GUIDANCE_FLAGS="--data_dir ref/ref_ffhq --text_weight 160 --image_weight 0 --text_instruction_file ref/sunglass.txt --clip_path models/clip_ffhq.pt"
# CUDA_VISIBLE_DEVICES=0 python -u scripts/sample.py --exp_name ffhqsunglass --single_gpu $MODEL_FLAGS $SAMPLE_FLAGS $GUIDANCE_FLAGS

GUIDANCE_FLAGS="--data_dir ref/ref_ffhq --text_weight 160 --image_weight 0 --text_instruction_file ref/gold.txt --clip_path models/clip_ffhq.pt"
CUDA_VISIBLE_DEVICES=0 python -u scripts/sample.py --exp_name ffhqhat --single_gpu $MODEL_FLAGS $SAMPLE_FLAGS $GUIDANCE_FLAGS

2、复现结果

我这里只试验了ffhq的文字和图像guidance的效果。用到的模型是:ffhq_baseline.pt和clip_ffhq.pt。
为了更好的展示,我将图片裁剪为128x128,并且只展示3张效果图。(大家快去试试吧!)

  1. 文字guidance:A photo of a woman with curly hair
    图片guidance:
    效果:

  2. 文字guidance:A photo of a woman with a big gold chain
    效果:

  3. 文字guidance:A photo of a woman wearing a hat
    效果:

  4. 文字guidance:A photo of a woman riding a horse
    效果:

  5. 文字guidance:A photo of a woman wearing a sunglass
    效果:

总结:

局限性:

  1. 显然ffhq的文字guidance仅限于头发,眼镜,帽子,表情等。如果加上其他一些难的词语生成效果就不好,例如骑马…
  2. 生成效果在多样性和准确性之间进行了一个trade-off

优点:

  1. 多模态的guidance
  2. 文字guidance无需图片-文本配对的数据集
  3. 直接使用DDPM的训练模型,只是在采样阶段进行guidance

目前只想到这么多,有错误恳请批评斧正,后续会补充修改,欢迎收藏评论!

四、Reference:

https://github.com/xh-liu/SDG_code/blob/main/scripts/sample.py
https://arxiv.org/abs/2112.05744

五、bug解决模块

遇到的bug1

Traceback (most recent call last):
  File "/mnt/SSD_1T/zhouzikang/project/SDG/scripts/sample.py", line 5, in <module>
    import blobfile as bf
ModuleNotFoundError: No module named 'blobfile'

解决方案:

pip install blobfile

遇到的bug2

Traceback (most recent call last):
  File "/mnt/SSD_1T/zhouzikang/project/SDG/scripts/sample.py", line 12, in <module>
    from sdg.parser import create_argparser
ModuleNotFoundError: No module named 'sdg'

解决方案:在scripts/sample.py中加入:
其中是你项目的绝对地址,即sdg的上级目录。

import sys
sys.path.append('/mnt/SSD_1T/-----/project/SDG/')

查看绝对地址的命令:

pwd -P

遇到的bug3

Traceback (most recent call last):
  File "/mnt/SSD_1T/zhouzikang/project/SDG/scripts/sample.py", line 31, in <module>
    from tools.get_text import get_ffhq_text
ModuleNotFoundError: No module named 'tools'

解决方案:

pip install tools

遇到的bug4

Traceback (most recent call last):
Traceback (most recent call last):
  File "/mnt/SSD_1T/zhouzikang/project/SDG/scripts/sample.py", line 31, in <module>
    from tools.get_text import get_ffhq_text
ModuleNotFoundError: No module named 'tools.get_text'

解决方案:
提交Issues,然后作者直接删掉了这一行代码…

from tools.get_text import get_ffhq_text

也就是说这个问题修复了以后的同学应该不会遇到了。

六、评价指标

有三个:

  1. 用于图像质量评价的FID。

我们报告了对每个数据集的10,000张图像计算的FID评分[18],以评估生成图像的质量。较低的FID指示较好的生成质量。我们的SDG在图像引导合成和语言引导合成方面都优于同类方法。

  1. 用于多样性评估的LPIPS。

如表1所示,我们计算了从相同图像引导或相同文本引导生成的配对图像之间的LPIPS评分[58]。较高的LPIPS指示更多的多样性。与以前的工作ILVR [8]和StyleGAN+CLIP相比,我们的模型生成了更多样化的图像。ILVR生成的图像遵循相同的结构和布局,但在细节上有所变化。虽然我们的方法能够生成具有不同姿势、结构和布局的各种图像,如图6(a)所示。由StyleGAN+CLIP生成的图像也遭受低多样性,如图6(b)所示。StyleGAN+CLIP的高FID分数也是因为生成的图像多样性低。

3.检索准确性,以评价与指南的一致性。Retrieval accuracy to evaluate consistency with guid-
ance.

我们使用文本到图像检索或通过原始CLIP ResNet50×16模型进行图像检索,而不进行精细调整来评估生成的图像与指导的匹配程度。 对于一幅文本引导生成的图像,我们从训练集中随机选取99幅真实图像作为负向图像,并对文本到图像的检索性能进行评价。
类似地,对于与参考图像合成的图像,我们使用参考图像从随机选择的99幅真实图像中检索生成的图像1。 StyleGan+Clip具有非常高的检索性能,因为StyleGan模型的潜在代码被直接优化,以使用于检索的Clip模型计算的Clip得分最小化。 因此,StyleGan+Clip的高检索性能是以低生成多样性为代价的,高FID和低LPIPS得分表明了这一点。

至此结束,感谢阅读^ - ^!
如果觉得有帮助的话,希望点赞收藏评论加关注支持一下吧。
你的支持是我创作的最大动力!!!


  1. 所选择的负片图像与我们用于合成图像的指导图像是不相交的。 ↩︎

2022/11/14-11/19周报

周报内容:

1.《工业缺陷检测深度学习方法综述》精读

2.复现《ChangChip》

3.复现《Gaussian Anomaly Detection》

4.下周工作计划


学习产出:

一、《工业缺陷检测深度学习方法综述》精读并结合前面复现内容

工业缺陷检测更关注像素层面的检出任务。

在像素层面上, 异常与正常模式的差别更加细微, 检测难度也大幅增加, 工业缺陷往往出现在图像中的小部分区域, 显著程度更低, 且语义概念模糊. 因而, 工业缺陷检测更关注于检测图像中的异常像素.

工业视觉缺陷检测任务一般包括分类和定位

对于一个待测图像实例, 分类任务首先将其二分类为正常样本或缺陷样本; 当缺陷类型已知时, 还可进一步对缺陷类型进行判别。

定位任务的目标是找到缺陷在图像中的具体区域, 根据缺陷区域的描述方式可分为检测 (检测框) 分割 (像素级).

在实际的工业缺陷定位任务中, 研究者们更关注缺陷分割方法.。

1.有监督方法:如YOLOE+

对模型的调整主要在于两个思路引入轻量化网络提升检测速度; 利用多尺度融合数据增强等方法来提升检测精度

但在实际情况中, 含有缺陷的样本极难获取. 面对缺陷的未知性与无规则性, 基于缺陷先验知识的方法存在较大的局限性. 因此, 无监督的设置已经引起了广泛重视.

2.无监督方法

缺陷被定义为正常范围之外的模式.

此时定位结果的输出一般是像素级的分割结果

(1)基于图像重建的方法: 

仅在正常样本上训练模型, 使其学习到足以用来重建出正常样本的分布特征. 如:Draem

但重建图像的像素可能未与输入图像对齐, 重建过程还可能同时改变图像的风格, 这些偏

差都会导致检测错误, 限制了检测的性能.

(2)基于特征相似度的方法: 

借助深度神经网络的特征提取能力, 此类方法的核心目的是找到具有区分性的特征嵌入, 并减少无关特征的干扰。.如:ChangChip

 但ChangChip对参照图和测试图要求较高,对于可活动范围区域容易产生误检

(3)基于特征距离度量的方法

该方法使用参 数相同的具有区分力的特征提取网络将多个输入图像映射到特征空间, 它们的特征仅在缺陷区域差别明显.

如:《Gaussian Anomaly Detection by Modeling the Distribution of Normal Data in Pretrained Deep Features》和《Modeling the distribution of normal data in pre-trained deep features for anomaly detection.》(下周可以看看这篇论文)

二、复现《ChangChip》

测试图(有缺陷):

参考图(无缺陷):

 

差异图:

 

mse:

 

 使用我们的数据集:

测试图和参考图: 

 

差异图:

 

 

 结果分析:可以判断出四个缺陷的位置,但同时,也会因为光照和元器件摆放位置而造成误检

 三、复现《Gaussian Anomaly Detection》

调试代码,使用MvTec AD数据集进行实验:

 性能良好。

由于测试集需要异常样本,及其缺陷位置的掩膜。

利用labelimg标注生成的.xml文件,生成相应的掩膜图(虽然要求的是生成像素级别的掩膜图--有缺陷轮廓的,但是整了半天还是不会弄,只好利用现成的标注文件了,先试试效果怎么样):

 四、下周工作计划

1.将制作好的数据集加入多元高斯模型查看效果

2.多尝试数据集分类方法,提升聚类质量

在工业场景中,元器件的位置会有微小的变动,而我们的缺陷对于整个图像来说,也只是微小的变化,那么特征点是否能从中分离出来呢?

尤其是可活动范围区域,对多元高斯和Changechip两者方法都影响较大。

初步想法:

1.Changechip:人工打标,遮蔽住可活动范围区域,对其他区域进行对比检测

2.多元高斯:想一种分块方法,对可活动区域进行额外分析。 (先对其组件识别? --但是元器件种类会不会一直迭代,后续要添加新类别)

以上是关于SDG精读与代码复现More Control for Free Image Synthesis with Semantic Diffusion GuidanceSDG的主要内容,如果未能解决你的问题,请参考以下文章

SENet代码复现+超详细注释(PyTorch)

ORA-01207: file is more recent than control file -

《代码整洁之道》精读与演绎之四 优秀代码的格式准则

新手学Python之学习官网教程(四: More Control Flow Tools)

《代码整洁之道》精读与演绎之五 整洁类的书写准则

重新精读《Java 编程思想》系列之组合与继承