机器学习笔记 - 图像搜索的常见网络模型
创始人
2024-04-01 04:13:27
0

一、图像搜索概述

        如何在这些视觉信息丰富的海量图片中快速准确地搜索到用户所需要的图片是计算机视觉领域的研究热点,也极具商业应用价值。图像搜索其应用领域十分广泛,包括电商、医学、公共安全、搜索引擎甚至军事等。

        图像搜索常规分为两类,一类是基于文本的搜索,即TBIR(Text Based Image Retrieval);另一类是基于内容的搜索,即CBIR(Content Based Image Retrieval)。

        TBIR出现较早,主要利用关键字对图像进行描述,然后进行关键字比对,比对成功后将结果返回给用户,其缺点是给图像标关键字需要人力介入,面对海量数据则费时费力,还面临增量的问题,且人为判断干扰因素难以估计。

        CBIR则是利用计算机对图像进行分析,然后使用特征向量(可以简单理解为很多数字)来代表图像,然后对所有的图像都做特征提取并保存在特征库中,最后当要搜索某张图片时,使用同样的特征提取方法提取,再与特征库中的特征作对比,按某种相似指标进行排序并输出相似最好的几张图片,这样达到图像搜索的效果。CBIR将图像的表达以及相似的计算交给计算机处理,克服了TBIR的缺点,可以充分利用计算机的优势,极大地提高了搜索效率,适用于新时代的海量图像搜索场景。

        CBIR工程中主要包括图像描述和海量相似计算与排序,图像描述即特征表达,而海量计算与排序则是另一个广阔的领域。

        计算机描述图像的传统的方法有SIFT、SURF、ORB、BoW、VLAD和FV,但其缺点是这些方法都是人为设定规则,规则的好坏决定了搜索的效果。而深度学习恰好在这方面有着天然的优势,只要给出正确的样本,计算机就可以尽可能好地去学习某种规则来提取图像特征。

二、用于特征提取的神经网络

1、Siamese Network

        Siamese Network的思想也十分简单和朴素,样本表示如下:图像1和图像2相似或图像1和图像3不相似,其中相似和不相似可以分别用1和-1表示。当然不同的论文其具体实现可能不同。

机器学习笔记 - Siamese Neural Network 孪生神经网络孪生神经网络(SNN)是一种神经网络,其中包含相同模型的多个实例,并共享相同的体系结构和权重。当需要使用有限的数据进行学习并且我们没有完整的数据集(例如零/一枪学习任务)时,这种架构就显示了其优势。传统神经网络会学习预测多个类别。 当我们需要向数据添加/删除新类时,这会带来问题。 在这种情况下,我们必须更新神经网络并在整个数据集中对其重新训练。 而且,深度神经网络需大量数据进行训练。 另由于SNN学习相似性函数。 因此我们可以训练它以查看两个图像是否相同。 就可以对新的数据类别进行分类,而无需再次训练。https://skydance.blog.csdn.net/article/details/110326334

2、Triplet Network

        该网络主要源于Google出品的人脸识别论文FaceNet: A Unified Embedding for Face Recognition and Clustering。传统的Siamese Network使用的是二元组数据作为输入,然后进行相似或不相似的2分类判定,而Triplet Network则提出使用三元组作为输入,损失函数则使用Triplet loss,其结构如下图所示。

        输入为三元组,分别为anchor、positive和negative,anchor表示参考图像,positve表示与anchor相同或相似的图像,而negative表示与anchor不相同或不相似的图像。

3、Margin Based Network

        在2018年Chao-Yuan Wu发表了Sampling Matters in Deep Embedding Learning,这里将这篇文章所用的方法称作为Margin Based Network。

        文章主要提出了两个点,一是关于采样方式的重要性,二是改变了损失函数的计算方式。

https://github.com/chaoyuaw/incubator-MXNet/tree/master/example/gluon/embedding_learningicon-default.png?t=M85Bhttps://github.com/chaoyuaw/incubator-MXNet/tree/master/example/gluon/embedding_learning

三、相似度计算排序工具

1、faiss

        Faiss 是一个用于高效相似性搜索和密集向量聚类的库。它包含在任意大小的向量集中搜索的算法,直到那些可能不适合 RAM 的向量。它还包含用于评估和参数调整的支持代码。Faiss 是用 C++ 编写的,带有 Python/numpy 的完整包装器。一些最有用的算法是在 GPU 上实现的。它主要由Facebook AI Research开发。

GitHub - facebookresearch/faiss: A library for efficient similarity search and clustering of dense vectors.A library for efficient similarity search and clustering of dense vectors. - GitHub - facebookresearch/faiss: A library for efficient similarity search and clustering of dense vectors.https://github.com/facebookresearch/faiss

2、elasticsearch

        诸如亚马逊、阿里云都有基于cnn提取特征向量+knn+elasticsearch的向量搜索方案。它允许您在向量空间中搜索点,并通过欧几里得距离或余弦相似度为这些点找到“最近邻”。用例包括推荐(例如,音乐应用程序中的“您可能喜欢的其他歌曲”功能)、图像识别和欺诈检测。

        给定数据点的空间,k-NN 插件会查找距离查询数据点最近的数据点数 (k)。通过 k-NN 的新字段类型,您能够将 k-NN 搜索与 Elasticsearch 的各种功能(如聚合和筛选)无缝集成,以进一步提高搜索结果的精确度。Elasticsearch 的分布式架构使 k-NN 插件能够摄取和处理大型数据集,支持增量更新,从而为您提供具有快速推理功能的高性能相似度搜索引擎。 

相关内容

热门资讯

韩媒:韩检方对尹锡悦、金建希等... 中新网12月29日电 据韩国媒体报道,负责调查韩国前第一夫人金建希案件的特检组29日发布最终调查结果...
着力健全有利于“长钱长投“的制... 12月29日,A 股三大指数开盘后涨跌互现,沪指强势向上,冲击9连阳。截至10:23,A500ETF...
政策性农业保险的角色演变与制度... 本文字数:4989字 阅读时间:10分钟 作者简介:马彪,首都经济贸易大学金融学院副教授。 文章来...
推动楼市政策精准落地丨社评 明年着力稳定房地产市场的大政方针已定,抓好落实是关键。刚刚召开的全国住房城乡建设工作会议,重点列出了...
Adobe 因使用 SlimP... AIPress.com.cn报道 12月29日消息,作为全球创意软件巨头,Adobe 正面临其首起重...
伟星新材:竞争优势明显 保持积... 12月28日,伟星新材(002372)发布公告,伟星新材(002372)于2025年12月25日召开...
健全数据制度 释放乘数效应——... 来源:经济日报 党的二十届四中全会审议通过的《中共中央关于制定国民经济和社会发展第十五个五年规划的建...
海关出口退税律师张严锋:套用其... 2018年3月2日,B稽查局对A公司涉税事项进行检查。经检查,B稽查局认为A公司涉嫌通过套用他人出口...
哈尔滨权威刑事律师服务推荐:谷... 在哈尔滨,当人们遭遇刑事法律问题时,往往会困惑于刑事律师服务哪家权威刑事律师推荐哪些刑事辩护律师哪个...
原创 《... 2025年12月26日,《晋中市平遥牛肉保护和发展条例》新闻发布会在晋中举行。该条例经山西省人大常委...