义乌婚介网站建设义乌企业网站
义乌婚介网站建设,义乌企业网站,网站建设项目背景,wordpress 手机端挂马一、说明 数据太多了。数据湖和数据仓库;广阔的像素牧场和充满文字的海洋。找到正确的数据就像大海捞针一样#xff01;如果你喜欢开源机器学习库 FiftyOne#xff0c;矢量搜索引擎通过将复杂数据#xff08;图像的原始像素值、文本文档中的字符#xff09;转换为称为嵌入矢… 一、说明 数据太多了。数据湖和数据仓库;广阔的像素牧场和充满文字的海洋。找到正确的数据就像大海捞针一样如果你喜欢开源机器学习库 FiftyOne矢量搜索引擎通过将复杂数据图像的原始像素值、文本文档中的字符转换为称为嵌入矢量的实体来解决此问题。 矢量搜索引擎通过将复杂数据图像的原始像素值、文本文档中的字符转换为称为嵌入矢量的实体来解决此问题。然后对这些数值向量编制索引以便您可以有效地搜索原始数据。毫不奇怪像QdrantPineconeLanceDB和Milvus这样的矢量搜索引擎已经成为几乎所有新AI应用程序的重要组成部分。 如果您正在处理图像或视频数据并且希望将矢量搜索合并到工作流程中则可能会产生相当多的开销
您如何实现跨模式检索例如搜索带有文本的图像如何整合置信度阈值或类标签等传统搜索筛选器在图像中搜索物体人、猫、狗、汽车、自行车等怎么样 这些只是您将遇到的众多挑战中的一小部分。等。停。别急。有更好的方法...
FiftyOne是用于矢量搜索的计算机视觉接口。FiftyOne开源工具包现在具有与QdrantPineconeLanceDB和Milvus的本机集成因此您可以使用首选的矢量搜索引擎在一行代码中有效地搜索视觉数据。 想要一键找到与数据集中第二个样本最相似的 25 张图像想要通过点击查找至少包含一个人和一辆自行车的交通图片您可以
二、FiftyOne它是如何工作的
1. 加载数据集。
为了便于说明我们将加载 MS COCO 验证拆分的子集。
import fiftyone as fo
import fiftyone.brain as fob
import fiftyone.zoo as foz
from fiftyone import ViewField as Fdataset foz.load_zoo_dataset(coco-2017, splitvalidation, max_samples 1000
)
session fo.launch_app(dataset)
2. 生成相似度指数。
为了搜索我们的媒体我们需要索引数据。在 FiftyOne 中我们可以通过函数执行此操作。指定要用于生成嵌入向量的模型以及要在后端使用的向量搜索引擎。您还可以为相似性索引指定一个名称如果要针对多个索引运行向量搜索这将非常有用。compute_similarity()
## setup lancedb
pip install lancedb
## generate a similarity index
## with default model embeddings
## using LanceDB backend
fob.compute_similarity(dataset,brain_keylancedb_index,backendlancedb,
)## setup milvus
## download and start docker container
pip install pymilvus
## generate a similarity index
## with CLIP model embeddings
## using Milvus backend
fob.compute_similarity(dataset,brain_keymilvus_clip_index,backendmilvus,metricdotproduct
)
3. 搜索索引。
现在您可以使用该方法使用一行代码对整个数据集运行图像搜索。要找到与数据集中第二张图像最相似的 25 张图像我们可以传入样本的 ID、我们想要返回的结果数以及我们要搜索的索引的名称sort_by_similarity()
## get ID of first sample
query dataset.skip(1).first().id
## find 25 most similar images with LanceDB backend
sim_view dataset.sort_by_similarity(query,k25,brain_keylancedb_index
)## display results
session fo.launch_app(sim_view)
您也可以完全通过 FiftyOne 应用程序中的 UI 执行此操作 三、语义搜索变得简单 处理多模式数据的麻烦已经一去不复返了。如果你想使用自然语言在语义上搜索你的图像你可以使用完全相同的语法使用 CLIP 等多模式模型创建索引嵌入然后传入文本查询而不是示例 ID
## semantic query
query kites flying in the sky## find 30 most similar images with Milvus backend
kites_view dataset.sort_by_similarity(query,k30,brain_keymilvus_clip_index
)## display results
session fo.launch_app(kites_view)
这在非结构化数据探索中特别有用并且比现有标签允许的更深入地挖掘数据。
这也可以完全在 FiftyOne 应用程序中执行 四、传递预过滤器 对数据的特定子集运行矢量搜索通常涉及编写复杂的预过滤器在矢量搜索之前传递到矢量搜索引擎以应用于数据集的过滤器。 FiftyOne的矢量搜索集成为您处理这些细节 如果要查找看起来像“交通”的图像但只希望将此搜索应用于包含人和自行车的图像可以通过调用筛选视图来实现此目的sort_by_similarity()
## create filtered view
view dataset.match_labels(F(label).is_in([person, bicycle]))## search against this view
traffic_view view.sort_by_similarity(traffic,k25,brain_keymilvus_clip_index
)
session fo.launch_app(traffic_view) 五、把你的东西整理好 上述所有功能也可以与对象检测补丁一起开箱即用 生成相似性索引时您需要做的就是传入参数 - 命名可以找到“对象”的标签字段 - 并将为所有图像中的每个对象生成嵌入向量。矢量数据库为这些修补程序嵌入编制索引以便您可以按与引用对象或自然语言查询的相似性对这些检测进行排序patches_fieldcompute_similarity()
## setup qdrant
# pull and start docker container
pip install qdrant-client## create a similarity index for ground truth patches
## with CLIP model, indexed with Qdrant vector database
fob.compute_similarity(dataset,patches_fieldground_truth,modelclip-vit-base32-torch,brain_keyqdrant_gt_index,backendqdrant
)## Search for the object that looks most like a tennis racket
tennis_view dataset.to_patches(ground_truth).sort_by_similarity(tennis racket,k 25,brain_key qdrant_gt_index
)session fo.launch_app(tennis_view) 六、结论 无论您有多少图像或视频您都需要使用矢量搜索。FiftyOne的原生矢量搜索集成将使您的生活更轻松。使用 FiftyOne相似性搜索与应用更传统的筛选和查询操作一样简单。将矢量搜索查询与元数据查询混合搭配以满足您的喜好。 有关 FiftyOne 中矢量搜索的一般信息请查看 FiftyOne App 中的按相似性排序以及有关相似性的 FiftyOne Brain 用户指南。 如果你喜欢开源机器学习库 FiftyOne请在 GitHub 上给这个项目⭐一个3900 颗星而且还在增加来表示您的支持。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/88865.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!