IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> CFA【异常检测:Embedding_based】 -> 正文阅读

[人工智能]CFA【异常检测:Embedding_based】

前言

博文来自2022年CVPR的一篇论文,目前排名第二(截止博文发出时间,这是papers with code统计的发表在MVTec数据集的论文排名。)

模型原理

思想:以往采用的记忆库的方式做异常检测都采用预训练网络,CFA也是,但同时也会有针对正常数据集的训练,这样可以避免预训练网络范化性太强带来的偏差。还提出了一种记忆库的制作方法,可拓展到任意大小的记忆库。

耦合超球体的含义可以从这篇论文中理解到,相当于那种电子原子结构,原子是记忆库,电子是训练集或测试集。

迁移学习:ResNet是在大的自然数据集上训练出来的,具备了先验知识,可以提取得到图像的先验特征。就是个预训练网络提取特征,叫迁移学习是做个包装罢了。

文中出现的量按官方给的取,比如张量,CNN的选择等,这样想着能好理解一些。

Patch descriptor及之前的操作

之前的操作

正常图像数据集经ResNet网络提取特征,形成三个张量[4,64,56,56],[4,128,28,28],[4,256,14,14],每个张量经平均池化,后两个张量再经上采样,三个张量合并后形成张量[4,448,56,56]。

Patch descriptor

构建两个张量xx/yy:[4,1,56,56],内部数值(0~55)如下,yy张量相当于xx的转置。再将内部的每个数值除55乘2减1,合并到张量[4,448,56,56]形成[4,450,56,56]。经卷积形成张量[4,448,56,56],取名为A1

Compression-->Memory bank

一个batch为4,可以形成A1,将所有的A1求平均形成张量[1,448,56,56],再转化为张量[448,3136],取名为B1

上面是源码中的一个方法,原论文还介绍了一种数据库更新方法,也在源码中有体现,但默认没使用。

NN Search

A1张量转化形状[4,3136,448]后,其中每个值求平方再在维度层面相加形成张量A2[4,3136,1];B1张量每个值求平方再在维度层面相加形成张量B2[1,3136]。A2与B2相乘再乘2(可以想象一下两个矩阵的相乘,相当于每张图的像素值与总体图的像素值乘了一下。)形成张量C1[4,3136,3136],A2与B2相加(以矩阵相乘的形式相加)形成张量C2。

C2-C1形成D1,D1求根号以行为方向每个像素位置处返回最小的K(3)个值(形成超球),通过softmin为这三个值加权,再取第一个值形成张量D2[4,3136,1],形成分数图S[4,1,56,56]。

损失函数

上面的操作返回6个,选前3个 使用损失函数(Euclidean distance)\pounds_{att},选后3个使用损失函数(Hard negative features)\pounds_{rep}

用两个损失函数,一个从圈(超参数r)外让超球逼近r,一个从圈内让超球逼近r,两者结合再利用超参数\alpha限制一下,达到训练效果。

在一个像素位置会产生许多超球,这里只是选择最小的三个值构成超球,在这三个值中,任何一个都可能在后三个超球里,这样不就在检测异常区域时使得该区域检测不稳定了,所以加入后三个值的训练使这个模糊的值也限制住(理解的,不一定对...)。

实验

对比实验:在MVTec和RD-MVTec(数据增强后的)数据集上用不同模型做实验。

消融实验:使用不同损失函数/不同的记忆库大小/不同的backbone。

补充

PatchCore/PaDiM/SPADE(采用类似的记忆库的方法。)

问题(请教请教啊,搞不懂--_--)

Patch descriptor 里的维度增加了两个由448到500,那个操作是为了什么呢?

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-07-04 22:54:12  更:2022-07-04 22:54:59 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 0:56:07-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码