DINOv2 图像分类实战:特征提取、SVM 训练与样本检索
DINOv2 图像分类实战特征提取、SVM 训练与样本检索这篇教程根据我复现 DINOv2 图像分类流程时整理重点演示如何提取 DINOv2 特征、用 SVM 做分类器、并对单张图片进行分类验证。DINOv2 本身更像强特征骨干实际落地时常配合传统分类器或检索方法使用。本文适合把 DINOv2 当作特征提取器来理解。本文会重点跑通以下流程安装依赖并获取分类数据集加载 DINOv2 预训练骨干提取图像 embedding 并训练 SVM对单张样本进行分类预测保存或复用特征用于后续任务如果你正在系统学习目标检测、实例分割、OCR、多目标跟踪或视觉大模型建议收藏本文配套 notebook、示例图片和运行环境说明后续会继续整理。如果环境配置卡住可以在评论区说明具体报错。 文章目录DINOv2 图像分类实战特征提取、SVM 训练与样本检索⚙️ 环境准备 安装依赖 从数据集后台获取分类数据集 加载 DINOv2 模型 提取特征与构建索引️ 训练分类器 单图分类验证 小结 同系列教程汇总⚙️ 环境准备先检查运行环境并安装依赖。建议优先使用带 NVIDIA GPU 的环境避免推理和训练阶段显存不足。importnumpyasnpimporttorchimporttorchvision.transformsasTfromPILimportImageimportosimportcv2importjsonimportglobfromtqdm.notebookimporttqdm 安装依赖YOLOv8 的检测训练直接使用 Ultralytics依赖很轻。!pip install supervision-q 从数据集后台获取分类数据集从数据集后台导出文件夹格式分类数据直接按目录读取即可。importsupervisionassv# 从数据集后台下载分类数据集后使用文件夹结构直接读取。DATASET_DIR/content/dataset# 修改为数据集后台导出的数据集目录projectNonedatasetNonecwdos.getcwd()ROOT_DIRos.path.join(cwd,MIT-Indoor-Scene-Recognition-5/train)labels{}forfolderinos.listdir(ROOT_DIR):forfileinos.listdir(os.path.join(ROOT_DIR,folder)):iffile.endswith(.jpg):full_nameos.path.join(ROOT_DIR,folder,file)labels[full_name]folder fileslabels.keys() 加载 DINOv2 模型DINOv2 作为特征提取器使用不需要额外微调也能得到不错的 embedding。dinov2_vits14torch.hub.load(facebookresearch/dinov2,dinov2_vits14)devicetorch.device(cudaiftorch.cuda.is_available()elsecpu)dinov2_vits14.to(device)transform_imageT.Compose([T.ToTensor(),T.Resize(244),T.CenterCrop(224),T.Normalize([0.5],[0.5])]) 提取特征与构建索引先把所有训练图片转成 embedding再用于后续分类器训练。defload_image(img:str)-torch.Tensor: Load an image and return a tensor that can be used as an input to DINOv2. imgImage.open(img)transformed_imgtransform_image(img)[:3].unsqueeze(0)returntransformed_imgdefcompute_embeddings(files:list)-dict: Create an index that contains all of the images in the specified list of files. all_embeddings{}withtorch.no_grad():fori,fileinenumerate(tqdm(files)):embeddingsdinov2_vits14(load_image(file).to(device))all_embeddings[file]np.array(embeddings[0].cpu().numpy()).reshape(1,-1).tolist()withopen(all_embeddings.json,w)asf:f.write(json.dumps(all_embeddings))returnall_embeddingsembeddingscompute_embeddings(files)️ 训练分类器这里用一个简单的 SVM快速验证 DINOv2 特征的可分性。fromsklearnimportsvm clfsvm.SVC(gammascale)y[labels[file]forfileinfiles]embedding_listlist(embeddings.values())clf.fit(np.array(embedding_list).reshape(-1,384),y) 单图分类验证最后拿一张测试图片检查分类结果是否符合预期。input_fileMIT-Indoor-Scene-Recognition-5/test/elevator/elevator_google_0053_jpg.rf.41487c3b9c1690a5de26ee0218452627.jpgnew_imageload_image(input_file)%matplotlib inline sv.plot_image(imagecv2.imread(input_file),size(8,8))withtorch.no_grad():embeddingdinov2_vits14(new_image.to(device))predictionclf.predict(np.array(embedding[0].cpu()).reshape(1,-1))print()print(Predicted class: prediction[0]) 小结DINOv2 这类特征模型的关键不是复杂训练而是把特征提取得稳定、再搭配一个足够简单且可解释的分类器。这一类 notebook 建议按“先环境、再数据、再单样例、最后批量推理”的顺序复现。遇到报错时优先检查 GPU、依赖版本、数据集目录和模型权重路径。后续我会继续按源项目顺序整理同系列中的目标检测、实例分割、OCR、多目标跟踪和视觉大模型教程。 同系列教程汇总Google Gemini 3.5 Flash 零样本目标检测教程从提示词到可视化结果GLM-OCR 文档识别实战教程从验证码、公式到车牌 OCRRF-DETR ByteTrack 多目标跟踪实战教程从命令行到 Python 视频轨迹可视化SAM 3 图像分割实战教程文本、框和点提示的多种分割方式DINOv2 图像分类实战特征提取、SVM 训练与样本检索-本文

相关新闻

AI Agent 里的 Skill 到底是什么?看完这篇终于懂了

AI Agent 里的 Skill 到底是什么?看完这篇终于懂了

你有没有这种感觉—— 明明用的是同一个顶级大模型,有时候它答得特漂亮,一让它"按我们团队规范写代码 / 按公众号格式排版 / 严格走审稿流程",它就开始自由发挥,你得反复纠正。 问题通常不是模型不够聪明,…

2026/7/16 0:20:40阅读更多 →
解锁AMD Ryzen隐藏潜能:SMUDebugTool深度探索指南

解锁AMD Ryzen隐藏潜能:SMUDebugTool深度探索指南

解锁AMD Ryzen隐藏潜能:SMUDebugTool深度探索指南 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地址: https://gitcod…

2026/7/16 0:20:40阅读更多 →
【AI大模型应用开发】【项目实战】22.RAG智慧问答项目-(十)RAG系统评估

【AI大模型应用开发】【项目实战】22.RAG智慧问答项目-(十)RAG系统评估

一.RAG系统评估工具 目标 了解RAG系统评估的指标 掌握RAGAS框架的原理和使用方式 1.概述 当为某个真实线上系统开发了检索增强生成 (RAG) 应用,那么在此应用正式上线提供服务前,需要评估 RAG 的表现到底是怎样的,如果发现现有的 RAG 效果不够理想,可能需要一些新的 RAG 算法…

2026/7/16 0:20:40阅读更多 →
独立站建设与外贸GEO:海外流量渠道演变中的两个基础模块

独立站建设与外贸GEO:海外流量渠道演变中的两个基础模块

外贸企业在拓展海外市场时,线上营销渠道的选择日益多样。独立站建设和外贸GEO作为当前被较多讨论的两个方向,分别对应着不同的流量场景。乐云SEO在服务出海企业的过程中注意到,理解这两个模块各自的作用以及它们之间的关联,有助于…

2026/7/16 1:20:50阅读更多 →
从官方到自研:MateBook X Pro 2020 升级 1T 固态的决策、拆解与兼容性验证

从官方到自研:MateBook X Pro 2020 升级 1T 固态的决策、拆解与兼容性验证

1. 官方服务 vs 自行动手:升级决策的关键考量刚拿到MateBook X Pro 2020时,512GB的存储空间对于日常办公看似够用,但当我开始安装专业软件、存放项目文件后,存储焦虑就来了。这时候面临两个选择:走官方渠道花3000元升级…

2026/7/16 1:20:50阅读更多 →
炉石传说脚本:7倍效率提升的智能自动化游戏助手

炉石传说脚本:7倍效率提升的智能自动化游戏助手

炉石传说脚本:7倍效率提升的智能自动化游戏助手 【免费下载链接】Hearthstone-Script Hearthstone script(炉石传说脚本) 项目地址: https://gitcode.com/gh_mirrors/he/Hearthstone-Script Hearthstone-Script是一款基于Java和Kotlin…

2026/7/16 1:20:50阅读更多 →
现代C++学习指南:从核心概念到实战项目开发

现代C++学习指南:从核心概念到实战项目开发

1. 为什么是C?一个老兵的视角如果你点开这篇文章,大概率是想知道“C到底值不值得学”,或者“从零开始学C,会不会太难”。作为一个写了十几年C,从单片机驱动写到大型游戏引擎的老兵,我的答案是:值…

2026/7/16 1:20:50阅读更多 →
ECS架构深度解析:从数据局部性到高性能游戏场景管理

ECS架构深度解析:从数据局部性到高性能游戏场景管理

1. 项目概述与核心价值最近在和朋友聊起游戏引擎架构时,总是绕不开ECS这个话题。无论是Unity的DOTS,还是Unreal Engine 5在底层做的各种数据导向优化,ECS似乎成了现代高性能游戏开发的“标配”。但说实话,很多资料要么讲得太理论&…

2026/7/16 1:20:50阅读更多 →
多Agent协同系统设计:从单模型到可调度数字产线

多Agent协同系统设计:从单模型到可调度数字产线

1. 项目概述:这不是“调用API”,而是构建一个能自主协同的数字工人班组你有没有试过让一个AI助手帮你查资料、写周报、整理会议纪要——结果它卡在“把Excel里第三列数据按日期倒序排列”这一步,反复确认格式,最后还漏掉了两行&am…

2026/7/16 1:15:49阅读更多 →
VSCode TypeScript 环境配置对比:全局安装 vs 项目本地安装的4个关键差异

VSCode TypeScript 环境配置对比:全局安装 vs 项目本地安装的4个关键差异

VSCode TypeScript 环境配置对比:全局安装 vs 项目本地安装的4个关键差异当你在VSCode中启动一个新的TypeScript项目时,第一个技术决策往往从安装方式开始。这个看似简单的选择——全局安装还是项目本地安装——实际上会深刻影响你的开发流程、团队协作和…

2026/7/15 6:42:19阅读更多 →
智慧树刷课插件:5分钟实现自动化学习的智能助手

智慧树刷课插件:5分钟实现自动化学习的智能助手

智慧树刷课插件:5分钟实现自动化学习的智能助手 【免费下载链接】zhihuishu 智慧树刷课插件,自动播放下一集、1.5倍速度、无声 项目地址: https://gitcode.com/gh_mirrors/zh/zhihuishu 智慧树刷课插件是一款专为智慧树在线教育平台设计的Chrome浏…

2026/7/15 6:12:45阅读更多 →
Steam创意工坊下载器WorkshopDL:跨平台游戏模组获取的终极解决方案

Steam创意工坊下载器WorkshopDL:跨平台游戏模组获取的终极解决方案

Steam创意工坊下载器WorkshopDL:跨平台游戏模组获取的终极解决方案 【免费下载链接】WorkshopDL WorkshopDL - The Best Steam Workshop Downloader 项目地址: https://gitcode.com/gh_mirrors/wo/WorkshopDL 你是否在GOG或Epic Games Store购买了心仪的游戏…

2026/7/15 10:54:00阅读更多 →
A--10 Codex Review与GitHub PR工作流实战指南:从代码审查到安全合并

A--10 Codex Review与GitHub PR工作流实战指南:从代码审查到安全合并

摘要:本文系统讲解如何利用Codex App的Review功能与GitHub PR工作流,实现从代码修改到安全合并的完整流程。涵盖Review面板深度使用、/review命令实战、GitHub Connector配置、PR描述撰写技巧,以及常见问题排查方法。通过多个实战案例和流程图,帮助开发者建立高效的AI辅助代…

2026/7/16 0:00:38阅读更多 →
遗传算法解5皇后问题:从Hello World到工业优化的进化实验室

遗传算法解5皇后问题:从Hello World到工业优化的进化实验室

1. 项目概述:为什么用遗传算法解5皇后问题,而不是直接回溯?我带过十几届算法课,也给不少初创团队做过AI架构咨询。每次讲到组合优化问题,学生和工程师的第一反应永远是“写个回溯试试”。这没错——55棋盘上找所有合法…

2026/7/16 0:00:38阅读更多 →
5.1V稳压管输出为何只有4.7V?工作电流与负载影响分析

5.1V稳压管输出为何只有4.7V?工作电流与负载影响分析

前几天调试一个简单的电源模块,用到了5.1V稳压管。电路接好,上电测试,万用表一量——输出居然只有4.7V。第一反应是稳压管坏了,换了一个新的,结果还是4.7V。这让我想起很多初学者都会遇到的困惑:明明标称5.…

2026/7/16 0:00:38阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/15 15:50:47阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/15 8:52:38阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/15 14:06:23阅读更多 →