MVTec AD样本测试流程
针对 MVTec AD 数据集运行 DINOv3 的测试代码核心思路是利用DINOv3 提取预训练特征然后通过K-Nearest Neighbors (KNN)或Mahalanobis 距离来衡量测试样本与正常样本之间的差异。以下是一个基于 Python 和 PyTorch 的完整实操流程一、 数据集准备确保你的 MVTec AD 目录结构如下以bottle为例mvtec_ad/└── bottle/├── train/ # 仅包含正常样本 (用于构建特征库)│ └── good/├── test/ # 包含正常和各类缺陷样本 (用于验证)│ ├── good/│ ├── broken_large/│ └── ...└── ground_truth/ # 缺陷的标注掩码 (用于计算像素级精度)二、 核心测试代码实现你可以参考以下 Python 脚本实现一个简单的少样本/零样本检测器import torchimport torch.nn.functional as Ffrom torch.utils.data import DataLoaderfrom torchvision import transforms, datasetsfrom PIL import Imageimport numpy as np# 1. 加载 DINOv3 模型 (ViT-B/14)device cuda if torch.cuda.is_available() else cpumodel torch.hub.load(facebookresearch/dinov3, dinov3_vitb14).to(device)model.eval()# 2. 预处理 (注意 DINOv3 推荐 518x518 分辨率)transform transforms.Compose([transforms.Resize((518, 518)),transforms.ToTensor(),transforms.Normalize(mean(0.485, 0.456, 0.406), std(0.229, 0.224, 0.225)),])# 3. 提取特征函数def extract_features(img_path):img Image.open(img_path).convert(RGB)img_t transform(img).unsqueeze(0).to(device)with torch.no_grad():# 获取中间层特征用于空间定位features model.get_intermediate_layers(img_t, n1)[0]return features # Shape: [1, 1369, 768] (1369 是 37x37 的 patch 数量)# 4. 构建正常特征库 (Memory Bank)# 这里假设你选取 5 张正常样本 (Few-shot)train_paths [path/to/bottle/train/good/000.png, ...]memory_bank []for p in train_paths:feat extract_features(p)memory_bank.append(feat.squeeze(0)) # 存入 patch 级别特征memory_bank torch.cat(memory_bank, dim0) # [5*1369, 768]# 5. 测试单张图片test_img_path path/to/bottle/test/broken_large/000.pngtest_feat extract_features(test_img_path).squeeze(0) # [1369, 768]# 计算测试图每个 patch 与正常库中所有 patch 的最小距离# 使用余弦相似度或欧氏距离dist torch.cdist(test_feat, memory_bank) # 计算距离矩阵min_dist, _ torch.min(dist, dim1) # 寻找最接近的正常特征距离# 6. 生成异常热力图anomaly_map min_dist.reshape(37, 37).cpu().numpy()# 使用线性插值将 37x37 放大回原图尺寸三、 评估与可视化对于 MVTec AD你需要关注两个核心指标Image-level AUROC: 区分“整张图”是否有缺陷的能力。Pixel-level AUROC: 区分“哪个像素”是缺陷的能力定位精度。运行建议距离度量如果内存允许使用Mahalanobis 距离通常比欧氏距离效果更好因为它考虑了特征分布的协方差。层选择DINOv3 的深层特征语义更强但浅层特征对纹理细节更敏感。对于 MVTec 中的划痕scratches建议提取倒数第 2 层或第 3 层的特征。量化如果你打算在生产环境运行可以使用Faiss库来加速torch.cdist的检索过程。

相关新闻

AI影像创作新体验:幻境·流金一键生成艺术大片

AI影像创作新体验:幻境·流金一键生成艺术大片

AI影像创作新体验:幻境流金一键生成艺术大片 1. 开启艺术创作新纪元 你是否曾经梦想过,只需轻轻一点,就能将脑海中的画面变成精美的艺术作品?现在,这个梦想已经成真。「幻境流金」影像创作平台带来了革命性的AI艺术生…

2026/7/4 22:38:33 阅读更多 →
ccmusic-database音乐流派分类Web应用一键部署教程:基于Python爬虫技术

ccmusic-database音乐流派分类Web应用一键部署教程:基于Python爬虫技术

ccmusic-database音乐流派分类Web应用一键部署教程:基于Python爬虫技术 想快速搭建一个能自动识别音乐流派的Web应用?本教程将手把手教你如何用Python爬虫技术获取音乐样本,并通过ccmusic-database/music_genre镜像快速部署一个功能完整的音乐…

2026/7/4 20:01:29 阅读更多 →
FLUX.1文生图全攻略:SDXL风格创作技巧分享

FLUX.1文生图全攻略:SDXL风格创作技巧分享

FLUX.1文生图全攻略:SDXL风格创作技巧分享 1. 快速上手FLUX.1文生图 如果你正在寻找一款既能生成高质量图像,又能精准理解中文提示词的AI绘画工具,FLUX.1绝对值得尝试。这个基于最新MMDiT架构的模型,不仅在图像质量上表现出色&a…

2026/6/18 9:16:28 阅读更多 →

最新新闻

基于YOLO的计算机视觉项目实战:从数据标注到边缘部署全流程解析

基于YOLO的计算机视觉项目实战:从数据标注到边缘部署全流程解析

🚀 30款热门AI模型一站整合,DeepSeek/GLM/Qwen 随心用,限时 5 折。 👉 点击领海量免费额度 这类项目最值得关注的不是“智能麻将机器人”这个听起来很酷的标题,而是它背后完整的 计算机视觉项目从开发到落地的全流…

2026/7/5 20:28:20 阅读更多 →
如何在无网络环境下快速提取图片文字?Umi-OCR离线文字识别终极指南

如何在无网络环境下快速提取图片文字?Umi-OCR离线文字识别终极指南

如何在无网络环境下快速提取图片文字?Umi-OCR离线文字识别终极指南 【免费下载链接】Umi-OCR OCR software, free and offline. 开源、免费的离线OCR软件。支持截屏/批量导入图片,PDF文档识别,排除水印/页眉页脚,扫描/生成二维码。…

2026/7/5 20:28:20 阅读更多 →
如何让2008年的老款MacBook Pro也能流畅运行macOS Sonoma:OpenCore Legacy Patcher实战指南

如何让2008年的老款MacBook Pro也能流畅运行macOS Sonoma:OpenCore Legacy Patcher实战指南

如何让2008年的老款MacBook Pro也能流畅运行macOS Sonoma:OpenCore Legacy Patcher实战指南 【免费下载链接】OpenCore-Legacy-Patcher Experience macOS just like before 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher 还记得…

2026/7/5 20:28:20 阅读更多 →
重塑音频创作边界:Audacity 开源音频编辑器的技术革新与实践指南

重塑音频创作边界:Audacity 开源音频编辑器的技术革新与实践指南

重塑音频创作边界:Audacity 开源音频编辑器的技术革新与实践指南 【免费下载链接】audacity Audio Editor 项目地址: https://gitcode.com/GitHub_Trending/au/audacity 你是否曾为音频编辑软件的复杂操作界面和昂贵许可费用而却步?是否渴望拥有…

2026/7/5 20:26:20 阅读更多 →
3种方法解放Windows任务栏:RBTray系统托盘最小化终极指南

3种方法解放Windows任务栏:RBTray系统托盘最小化终极指南

3种方法解放Windows任务栏:RBTray系统托盘最小化终极指南 【免费下载链接】rbtray A fork of RBTray from http://sourceforge.net/p/rbtray/code/. 项目地址: https://gitcode.com/gh_mirrors/rb/rbtray 你是否曾为Windows任务栏上堆积如山的窗口图标而烦恼…

2026/7/5 20:26:20 阅读更多 →
企业级AI对话前端部署指南:5步构建安全高效的SillyTavern系统

企业级AI对话前端部署指南:5步构建安全高效的SillyTavern系统

企业级AI对话前端部署指南:5步构建安全高效的SillyTavern系统 【免费下载链接】SillyTavern LLM Frontend for Power Users. 项目地址: https://gitcode.com/GitHub_Trending/si/SillyTavern SillyTavern是一款专为高级用户设计的LLM前端界面,提供…

2026/7/5 20:26:20 阅读更多 →

日新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

月新闻