【一周总结】PatchCore算法改进


前言

在这里插入图片描述

1、预处理-基于DiAD的过曝区域的去干扰

问题和分析

过曝区域对异常检测具有较大影响:

  1. 对于异常数据来说,但模型检测为异常时,是否是因为其过曝区域的影响
  2. 对于正常数据来说,过曝区域容易使其被检测为异常

之前的方法是在检测后形成patch-score时对其进行加权处理,但是,但过曝影响的区域过大不能进行全部的消除,同时增加加权处理的面积对正常区域和异常区域都是影响。

过曝区域一方面在实际检测和图像增强可以一定程度缓解其影响,同时在实际工业检测要求中,尽量减少漏检的发生,对于过曝等应按照异常处理,进行多次检测。

但是对模型实际性能的检测来说,应该避免过曝的影响。针对之前补偿算法的不足,提出一种基于图像生成及融合的去干扰办法。

思路与结果

对待检图片进行过曝区域的判定与检测,然后输入Diad模型获取重建图片,Diad模型会根据输入图片将与正常分布不同的部分重建,重建图片与原始图片在过曝区域进行加权处理获得去干扰图片。
diad原理之前有述。
结果:
在这里插入图片描述
分别为原图、融合后的图片、异常热力图。
从结果来看,异常热力图以及置信度(0.468,0.507),融合后的效果比原始图像、部分区域加权补偿较好,但是由于融合边界问题,置信度并没有降低到一个较为满意的值。

2、Patchcore-cait

思路

文献fastflow中提出了基于transform和基于cnn网络两种的backbone。
transform 可以提供全局感受野,并更好地利用全局和局部信息,同时保持不同深度的语义信息。现有检测效果中,对于一些较浅的划痕因其与背景纹路较为相似故检测检测较为困难。故尝试transform特征提取网络,希望在特征提取过程中对于背景纹路整体性会利用更好。

实验

Cait and Deit 是典型的 vit 模型,实验选取cait
在这里插入图片描述
从timm下载预训练模型,对于图片进行处理,以tensor形式输入得到预训练网络得到初步的提取特征。冻结网络参数,使其在训练过程中不在更新。之后将位置编码加到特征上,再进行归一化及重塑处理,获取特征。

结果

在这里插入图片描述
上为cnn提取结果,下为cait。结果提升较好。


  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 一种常见的 KNN 算法改进方法是采用加权 KNN 算法。在加权 KNN 算法中,预测的类别不仅取决于最近的 K 个邻居的类别,还取决于它们与测试点的距离。因此,距离测试点较近的邻居会对预测结果产生更大的影响。 另一种改进算法是采用基于核函数的 KNN 算法,其中使用核函数来计算邻居与测试点之间的相似度。核函数可以将原始数据映射到高维空间中,在高维空间中可能更容易分类。 还有一种改进算法是采用降维算法来减少数据的维数,从而加速 KNN 算法的运行。例如,使用主成分分析(PCA)算法可以将高维数据降到低维空间中。 总之,这些改进算法都是为了提高 KNN 算法的准确性和效率。 ### 回答2: 改进的KNN算法可以结合以下几个方面进行优化: 1. 特征选择:选择具有较高重要性的特征可以提高算法的准确性和效率。可以通过特征选择算法或领域知识来确定最相关的特征,减少冗余特征的影响。 2. 距离权重:传统的KNN算法中,所有邻居样本的权重都一样。改进算法可以引入距离权重,根据距离远近来调整样本的权重。可以使用如反距离权重或高斯权重等方法,使得距离较近的样本对分类结果的贡献更大。 3. 近邻数量选择:选择合适的近邻数量可以影响算法的准确性。过少的近邻可能忽略了重要信息,而过多的近邻可能包含了冗余信息。可以通过交叉验证或网格搜索等方法来选择最优的近邻数量。 4. KD树:KD树是一种用于优化KNN算法的数据结构。它通过将数据点递归分割为高维空间中的超矩形,从而减少计算距离的次数。使用KD树可以加速KNN算法,特别是在高维数据集上。 5. 并行计算:KNN算法中的每个测试样本都需要计算其与训练样本的距离,这可以通过并行计算来加速。可以使用并行计算的技术,如多线程或分布式计算,来提高算法的效率。 总结起来,改进的KNN算法可以通过特征选择、距离权重、近邻数量选择、KD树和并行计算等方法来提高算法的准确性和效率,适用于更广泛的应用场景。 ### 回答3: KNN算法是一种常用的分类与回归的机器学习算法。该算法改进主要集中在以下几个方面: 1. 距离度量方法改进:传统的KNN算法中,常用的距离度量方法是欧氏距离。改进算法中,可以采用其他更加适应具体问题的距离度量方法,如曼哈顿距离、切比雪夫距离等,以获得更准确的分类结果。 2. 特征选择和降维:对于高维特征空间的数据集,传统的KNN算法可能会受到特征冗余和维度灾难的困扰。改进算法中,可以借助特征选择或降维方法,选择最具有区分性的特征或通过主成分分析等方法减少特征的维度,提高算法效果和运行效率。 3. K值的选择:KNN算法中的K值是一个重要的参数,它决定了邻居样本的数量。传统的KNN算法中,K通常采用经验法则或交叉验证的方式进行选择。改进算法可以采用自适应的K值选择方法,根据不同的数据集自动选择最优的K值,提高算法的适应性。 4. 加权KNN算法:传统的KNN算法中,对于K个邻居样本,每个样本的权重都是相等的。改进算法中,可以引入加权KNN算法,根据邻居样本与待分类样本之间的距离远近对其进行权重分配,较近的邻居样本具有较大的权重,较远的邻居样本具有较小的权重,从而更加准确地进行分类。 5. 使用KD树或球树:当处理大规模数据集时,传统的KNN算法可能会面临高计算复杂度的问题。改进算法中,可以采用KD树或球树等数据结构来加速最近邻搜索过程,从而提高算法的效率。 综上所述,KNN算法改进可从距离度量方法、特征选择和降维、K值的选择、加权KNN算法和使用KD树或球树等方面进行。这些改进方法能够提高KNN算法的准确性、适应性和效率,使其成为更加强大的机器学习算法

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值