内蒙古网站建设信息wordpress官网登录

web/2025/9/28 11:25:41/文章来源:
内蒙古网站建设信息,wordpress官网登录,建设网站建设什么挣钱,免费一键生成logo网站概述 在人工智能领域#xff0c;CLIP和DINOv2是计算机视觉领域的两大巨头。CLIP彻底改变了图像理解#xff0c;而DINOv2为自监督学习带来了新的方法。 在本文中#xff0c;我们将踏上一段旅程#xff0c;揭示定义CLIP和DINOv2的优势和微妙之处。我们的目标是发现这些模型…概述 在人工智能领域CLIP和DINOv2是计算机视觉领域的两大巨头。CLIP彻底改变了图像理解而DINOv2为自监督学习带来了新的方法。 在本文中我们将踏上一段旅程揭示定义CLIP和DINOv2的优势和微妙之处。我们的目标是发现这些模型中哪一个在图像相似性任务的世界中真正表现出色。让我们见证巨头的碰撞看看哪个模型会脱颖而出。 1 使用CLIP计算图像相似性 使用CLIP计算两张图像之间的相似性是一个简单的过程只需两步首先提取两张图像的特征然后计算它们的余弦相似度。 首先确保安装了必要的软件包。建议设置并使用虚拟环境 # 首先设置虚拟环境 virtualenv venv-similarity source venv-similarity/bin/activate # 安装所需软件包 pip install transformers Pillow torch接下来计算图像相似性 import torch from PIL import Image from transformers import AutoProcessor, CLIPModel import torch.nn as nndevice torch.device(cuda if torch.cuda.is_available() else cpu) processor AutoProcessor.from_pretrained(openai/clip-vit-base-patch32) model CLIPModel.from_pretrained(openai/clip-vit-base-patch32).to(device)# 从image1中提取特征 image1 Image.open(img1.jpg) with torch.no_grad():inputs1 processor(imagesimage1, return_tensorspt).to(device)image_features1 model.get_image_features(**inputs1)# 从image2中提取特征 image2 Image.open(img2.jpg) with torch.no_grad():inputs2 processor(imagesimage2, return_tensorspt).to(device)image_features2 model.get_image_features(**inputs2)# 计算它们的余弦相似度并将其转换为0到1之间的分数 cos nn.CosineSimilarity(dim0) sim cos(image_features1[0],image_features2[0]).item() sim (sim 1) / 2 print(Similarity:, sim)使用提供的两张相似图像的示例获得的相似度分数令人印象深刻达到了96.4%。 2 使用DINOv2计算图像相似性 使用DINOv2计算两张图像之间的相似性过程与CLIP类似。用DINOv2需要与前面提到的相同的软件包集无需额外安装 from transformers import AutoImageProcessor, AutoModel from PIL import Image import torch.nn as nndevice torch.device(cuda if torch.cuda.is_available() else cpu) processor AutoImageProcessor.from_pretrained(facebook/dinov2-base) model AutoModel.from_pretrained(facebook/dinov2-base).to(device)image1 Image.open(img1.jpg) with torch.no_grad():inputs1 processor(imagesimage1, return_tensorspt).to(device)outputs1 model(**inputs1)image_features1 outputs1.last_hidden_stateimage_features1 image_features1.mean(dim1)image2 Image.open(img2.jpg) with torch.no_grad():inputs2 processor(imagesimage2, return_tensorspt).to(device)outputs2 model(**inputs2)image_features2 outputs2.last_hidden_stateimage_features2 image_features2.mean(dim1)cos nn.CosineSimilarity(dim0) sim cos(image_features1[0],image_features2[0]).item() sim (sim 1) / 2 print(Similarity:, sim)使用与CLIP示例中相同的一对图像DINOv2获得的相似度分数为96.4%: 3. 使用COCO数据集进行测试 在深入评估它们的性能之前使用COCO数据集中的图像比较CLIP和DINOv2产生的结果。 实现流程 遍历数据集以提取所有图像的特征。将嵌入存储在FAISS索引中。提取输入图像的特征。检索最相似的三张图像。 3.1 特征提取和创建 import torch from PIL import Image from transformers import AutoProcessor, CLIPModel, AutoImageProcessor, AutoModel import faiss import os import numpy as npdevice torch.device(cuda if torch.cuda.is_available() else cpu)# 加载CLIP模型和处理器 processor_clip AutoProcessor.from_pretrained(openai/clip-vit-base-patch32) model_clip CLIPModel.from_pretrained(openai/clip-vit-base-patch32).to(device)# 加载DINOv2模型和处理器 processor_dino AutoImageProcessor.from_pretrained(facebook/dinov2-base) model_dino AutoModel.from_pretrained(facebook/dinov2-base).to(device)# 获取所有文件名 images [] for root, dirs, files in os.walk(./val2017/):for file in files:if file.endswith(jpg):images.append(root / file)# 定义一个函数用于归一化嵌入并将其添加到索引中 def add_vector_to_index(embedding, index):# 将嵌入转换为numpy数组vector embedding.detach().cpu().numpy()# 转换为float32 numpy数组vector np.float32(vector)# 归一化向量在搜索时避免错误结果很重要faiss.normalize_L2(vector)# 添加到索引中index.add(vector)def extract_features_clip(image):with torch.no_grad():inputs processor_clip(imagesimage, return_tensorspt).to(device)image_features model_clip.get_image_features(**inputs)return image_featuresdef extract_features_dino(image):with torch.no_grad():inputs processor_dino(imagesimage, return_tensorspt).to(device)outputs model_dino(**inputs)image_features outputs.last_hidden_statereturn image_features.mean(dim1)# 创建两个索引 index_clip faiss.IndexFlatL2(512) index_dino faiss.IndexFlatL2(768)# 遍历数据集以提取特征X2并将特征存储在索引中 for image_path in images:img Image.open(image_path).convert(RGB)clip_features extract_features_clip(img)add_vector_to_index(clip_features, index_clip)dino_features extract_features_dino(img)add_vector_to_index(dino_features, index_dino)# 将索引本地存储 faiss.write_index(index_clip, clip.index) faiss.write_index(index_dino, dino.index)3.2 图像相似性搜索 import faiss import numpy as np import torch from transformers import AutoImageProcessor, AutoModel, AutoProcessor, CLIPModel from PIL import Image import os# 输入图像 source laptop.jpg image Image.open(source) device torch.device(cuda if torch.cuda.is_available() else cpu)# 加载DINOv2和CLIP的模型和处理器 processor_clip AutoProcessor.from_pretrained(openai/clip-vit-base-patch32) model_clip CLIPModel.from_pretrained(openai/clip-vit-base-patch32).to(device) processor_dino AutoImageProcessor.from_pretrained(facebook/dinov2-base) model_dino AutoModel.from_pretrained(facebook/dinov2-base).to(device)# 为CLIP提取特征 with torch.no_grad():inputs_clip processor_clip(imagesimage, return_tensorspt).to(device)image_features_clip model_clip.get_image_features(**inputs_clip)# 为DINOv2提取特征 with torch.no_grad():inputs_dino processor_dino(imagesimage, return_tensorspt).to(device)outputs_dino model_dino(**inputs_dino)image_features_dino outputs_dino.last_hidden_stateimage_features_dino image_features_dino.mean(dim1)def normalizeL2(embeddings):vector embeddings.detach().cpu().numpy()vector np.float32(vector)faiss.normalize_L2(vector)return vectorimage_features_dino normalizeL2(image_features_dino) image_features_clip normalizeL2(image_features_clip)# 搜索最相似的5张图像 index_clip faiss.read_index(clip.index) index_dino faiss.read_index(dino.index)# 获取图像的距离和相关索引 d_dino, i_dino index_dino.search(image_features_dino, 5) d_clip, i_clip index_clip.search(image_features_clip, 5)结果 使用四张不同的图像作为输入搜索产生了以下结果 4. 在DISC21数据集上进行基准测试 为了比较它们的性能我们将遵循这篇文章中描述的相同方法。我们还将重用上面的脚本提取特征然后计算图像相似性。 4.1 数据集 为了对CLIP和DINOv2进行基准测试我们选择了DISC21数据集该数据集是专门为图像相似性搜索创建的。由于其大小为350GB我们将使用其中150,000张图像的子集。 4.2 使用的指标 在指标方面我们将计算 准确率正确预测的图像与图像总数的比率。前3准确率在前三张最相似图像中找到正确图像的次数与图像总数的比率。计算时间处理整个数据集所需的时间。 4.3 基准测试结果 特征提取 CLIP每秒70.7张图像DINOv2每秒69.7张图像 准确率和前3准确率 检查结果 两个模型都正确预测图像 所有模型都未找到正确图像 只有CLIP预测正确图像DINOv2在其前3中预测到 只有DINOv2预测正确图像 5. 分析 DINOv2显然是领先者在极具挑战性的数据集上实现了令人印象深刻的64%的准确率。相比之下CLIP的准确率较为适中达到28.45%。 关于计算效率两个模型的特征提取时间非常相似。这种相似性使得在这方面没有一个模型具有明显优势。 5.1 局限性 虽然这个基准测试提供了有价值的见解但认识到其局限性很重要。评估是在1448张图像的子集上进行的而与之对比的是150,000张图像的池。考虑到整个数据集有210万张图像这种缩小的范围是为了节省资源。 值得注意的是MetaAI使用DISC21数据集作为其模型的基准这可能使DINOv2具有有利优势。然而我们在COCO数据集上的测试揭示了有趣的细微差别DINOv2显示出更强的识别图像主要元素的能力而CLIP则擅长关注输入图像中的特定细节如公交车图像所示。 最后必须考虑CLIP和DINOv2之间嵌入维度的差异。CLIP使用的嵌入维度为512而DINOv2使用的是768。虽然可以选择使用具有匹配嵌入维度的更大的CLIP模型但值得注意的是这是以速度为代价的。在一个小子集上的快速测试显示性能略有提升但没有达到DINOv2所展示的水平。 5.2 结论 DINOv2在图像相似性任务中表现出更高的准确率展示了其在实际应用中的潜力。CLIP虽然值得称赞但相比之下有所不足。值得注意的是CLIP在需要关注小细节的场景中可能特别有用。两个模型的计算效率相似因此选择取决于具体任务。 原文地址https://medium.com/aimonks/clip-vs-dinov2-in-image-similarity-6fa5aa7ed8c6

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/83303.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

企业互联网网站定位wordpress php.ini在

1 工效组合展示 2 方案规划设计 3 数字挛生建模 基础建模、动画设计、模型导出 4 软件体系架构 5 Web交互设计 5.1 页面架构 5.2 初始构造 5.3 模型运用 5.4 WS通信 5.5 运行展现 6 服务支撑编码 6.1 整体调度 6.2 WS服务 6.3 C/S通信 7 系统级调试完善

高端服装产品网站建设做图片的软件app

文章目录1. 题目2. 解题2.1 记忆化递归2.2 动态规划1. 题目 给定一个字符串 s1,我们可以把它递归地分割成两个非空子字符串,从而将其表示为二叉树。 下图是字符串 s1 “great” 的一种可能的表示形式。 great/ \gr eat/ \ / \ g r e a…

网站做的最好的网站有哪些学动漫制作需要什么基础

课程目录 章节1:编程课前说明试看 课时1 编程课前说明07:49可试看 章节2:第一章 Python基础-认识环境试看 课时2 1、什么是计算机程序和编程?08:48可试看 课时3 2、为什么学习编程?03:10可试看 课时4 3、Python的安装11:48可试看 课时5 4、用Python编写第…

网站 被攻击主业篡改 被黑了 织梦做的站网站开发视频教程百度云

线程模型 纯内存操作/非阻塞io多路复用/单线程避免多线程频繁上下文切换 基于Reactor模式开发了网络事件处理器:文件事件处理器,单线程的 io多路监听多个socket,据socket事件类型选择对应的处理器,高性能网络通信模型&#xff0c…

单位建设网站硬件公司网站代码

1 伤害性极大(素材来源网络,侵删)▼2 相亲还要看体检报告?(素材来源网络,侵删)▼3 难以启齿的地名(素材来源网络,侵删)▼4 当知道你不回家之后&#xff08…

做网站分pc端和移动端的吗车身做网站宣传图

目录 ## 语言分类 ## c语言编译器 ## VScode相关配置 ## 语言分类 编译型语言:C,C解释型语言:python,JS ## c语言编译器 分类GCC 系列MinGWCygwinMSVC系列一套编程语言编译器将GCC编译器和GNU Binutils移植到Win32平台下的产物…

中山英文网站建设手表商城网站建设方案

SpringBoot用来简化Spring应用开发,约定大于配置,去繁从简,是由Pivotal团队提供的全新框架。其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置(有特殊需求可以添加自己的配置覆盖默认配…

泰州外贸网站建设国家商标局商标查询网

目录 1 软件架构设计导论2 HR角度看架构师3 软件架构设计概述4 顶级大师眼中的架构5 建筑中的架构师6 软件架构的发展阶段7 软件架构的意义8 架构是项目干系人进行交流的手段9 架构有助于循序渐进的原型设计10 架构是设计决策的体现11 架构明确系统设计约束条件12 架构与组织结…

制作网站设计的总结wordpress无法连接app

本专栏主要是提供一种国产化图像识别的解决方案,专栏中实现了YOLOv5/v8在国产化芯片上的使用部署,并可以实现网页端实时查看。根据自己的具体需求可以直接产品化部署使用。 B站配套视频:https://www.bilibili.com/video/BV1or421T74f 背景…

电子商务网站建设 考卷在线制作图网站

直接使用lowpass, highpass, bandpass等函数时会自动对filtering带来的时延给予补偿.但是对于自己设计的filter, 利用filt来进行滤波的话就会带来时延. 可以使用函数 grpdelay(filter,N,Fs) 来查看.对于FIR filter, 造成的时延对于不同的频率相应是一致的, 那么直接移动滤波后的…

淄博服装网站建设十大互联网装修平台

SLF4J是一个非常流行的日志记录外观,但是,就像我们使用的所有库一样,我们有可能以错误的方式或至少以非最佳方式使用它。 在本教程中,我们将列出常见的日志记录错误以及如何使用FindBugs检测到它们。 我们还将在相关时提及PMD和S…

珠海网站建设网站品质好的四字词语

目录 一、弧度转角度1、计算公式2、主要函数3、示例代码4、结果展示二、角度转弧度1、计算公式2、主要函数3、示例代码4、结果展示三、归一化到(-PI,PI)1、主要函数<

绵阳网站关键字优化微信视频号怎么推广引流

2024年4月9号PMP每日三题含答案 1.在执行一个潜艇现代化项目期间&#xff0c;客户要求安装新的潜望镜。项目经理必须怎么做&#xff1f; A.检查可行性&#xff0c;准备预算&#xff0c;并获得变更请求批准 B.执行实施整体变更控制过程&#xff0c;获得预算批准&#xff0c;并执…

检察院网站建设情况成都网站建设设计公司排名

Google Guava项目是每个Java开发人员都应该熟悉的库的集合。 Guava库涵盖I / O&#xff0c;集合&#xff0c;字符串操作和并发性。 在这篇文章中&#xff0c;我将介绍Monitor类。 Monitor是一种同步构造&#xff0c;可以在使用ReentrantLock的任何地方使用。 在任何时候&#x…

单页面网站入侵wordpress一直维护

一&#xff1a;问题 有两个规模相同的数组&#xff0c;两个数组相同位置的元素一一对应&#xff0c;现在要将两数组的元素同时打乱顺序&#xff0c;并且乱序后的两数组对应位置元素要保持乱序前的对应关系。 二&#xff1a;方法 采用randperm&#xff08;&#xff09;函数&a…

外贸平台哪个网站最好发布程序后网站有很多

理论知识&#xff1a; &#xff08;1&#xff09;状态机简写为FSM&#xff08;Finite State Machine&#xff09;&#xff0c;也称为同步有限状态机。同步是指状态的变化都是在时钟的边沿发送变化&#xff0c;有限值得是状态的个数是可数的。 &#xff08;2&#xff09;分类&…

有赞微商城是什么seo推广和百度推广的区别

摘要&#xff1a; 昇思MindSpore支持checkpoint和MindIR两种形式的模型保存和加载。 保存和加载模型&#xff0c;便于微调fine-tune和后续的模型推理与部署。 一、环境准备 安装minspore模块 !pip uninstall mindspore -y !pip install -i https://pypi.mirrors.ustc.edu.c…

南京网络推广平台seo顾问张智伟

Acme.sh 是一个开源的脚本&#xff0c;能够从 ZeroSSL、Let’s Encrypt 等证书颁发机构&#xff08;CA&#xff09;获取免费的 HTTPS 证书。该脚本特别简单易用&#xff0c;并且支持多种验证方式。下面将详细介绍使用 Acme.sh 生成、安装和更新证书的各个步骤。 Github地址 使用…

网站开发用框架开发的优缺点淘客网站如何做能加快收录

IE trident Firefox Gecko Google chrome Webkit/blink Safar i Webkit Opera presto转载于:https://www.cnblogs.com/codezhao/p/10451030.html

企业网站建设多少钱网站和软件有什么区别

本文介绍在CentOS 7操作系统上安装Semaphore的方法&#xff0c;安装完后就可以使用Semaphore来管理Ansible Web UI了。一、安装MariaDB数据库和git 2.x参考文章1、安装MariaDB数据库参考文章2、安装git 2.x确认git版本&#xff1a;$ git --versiongit version 2.16.5二、安装An…