• 图像检索的图排序模型_2015_10_22


    图像检索的图排序模型_2015_10_22

    最近看了"EMR: A scalable graph-based ranking model for CBIR".在这里记述一下
    图像检索中的经典模型BoW,HE,LSH等,在提取好特征,建好模型之后,在得到检索图像的candidates后,一般都基于其定义的向量(一张图被一个向量代表)间的距离来对返回的结果进行排序。
    这篇文章则是在图排序模型的基础上,提出了可扩展,时空消耗小的排序模型。

    基本的“manifold ranking”

    以向量代表一张图像
    
    1. 基本定义与kNN图的构建
      对n个m维向量(x_{i}).kNN图是说,如果(x_{j})是距离(x_{i})最近的k个中的1个。那么(x_{j})(x_{i})之间有无向连接,连接的边的权值为(w_{ij}=exp[-d^{2}(x_{i},x_{j})/2sigma^{2}])
      定义(r_{i})(x_{i})对应的score值,(r)值越高,则排序越靠前。
      定义(y_{i}),if (x_{i})是query图像的向量,则(y_{i})为1,否则为0.
      考虑图像的category,同query图像是同一category的(x_{i})对应的(y_{i})应置为1.(基本算法不包括这个)
    2. 优化目标

    ![公式](file:///home/hedes/Pictures/shot/EMR/EMR_1.png)
    3. 优化步骤

    ![优化步骤](file:///home/hedes/Pictures/shot/EMR/EMR_2.png)
    4. 缺陷与复杂度
    矩阵的逆,计算复杂度很大。如果query图像不在原始的n张图片中,那么knn图需要重新构建。计算复杂度更大了

    改进的“Efficient manifold ranking”

    1.锚点(anchors)和它的构建
    一共n个向量,我们寻找d个锚点来作为这n个向量的代表。假设每个向量都可以由锚点线性表出。

    • 锚点:一般通过k-means聚类,将聚类中心作为锚点。
    • 每个向量在这些锚点中的线性表出:

    ![线性表出](file:///home/hedes/Pictures/shot/EMR/EMR_3.png)

    • 计算表出系数:

    ![线性表出系数](file:///home/hedes/Pictures/shot/EMR/EMR_4.png)

    • 两种作者提出的计算方式

    ![线性表出系数](file:///home/hedes/Pictures/shot/EMR/EMR_5.png)


    ![线性表出系数](file:///home/hedes/Pictures/shot/EMR/EMR_6.png)

    2.从锚点图到近邻矩阵

    ![近邻矩阵](file:///home/hedes/Pictures/shot/EMR/EMR_7.png)

    3.计算r值的新方式,降低了求逆的复杂度

    • 计算r值

    ![计算r值](file:///home/hedes/Pictures/shot/EMR/EMR_8.png)

    • 利用z计算D

    ![计算Z值的新方式](file:///home/hedes/Pictures/shot/EMR/EMR_9.png)

    4.out-of-sample的检索

    • 对query图片,获取代表其的向量(x),然后将其用锚点的线性表出系数(z_{t})表示。

    ![out-of-sample检索](file:///home/hedes/Pictures/shot/EMR/EMR_10.png)

    • 降低计算量的方式

    ![降低计算量](file:///home/hedes/Pictures/shot/EMR/EMR_11.png)

  • 相关阅读:
    [npm]npm audit fix
    [javascript]中央定时器控制
    [javascript]并发模型与事件循环(Concurrency model and Event loop)
    [翻译][JavaScript] JavaScript 是不是一定是单线程的?
    [DOM][穿梭框][js]运用document.adoptNode方法,写出基础的穿梭框效果
    [document][DOM]document.importNode 与 document.adoptNode
    [DOM][document][进阶]DocumentFragment, document.createDocumentFragment()
    [Object][进阶]Object.defineProperty(),Object.defineProperties(),Object.getOwnPropertyDescriptor()
    [js][字符串]给字符串去空格(全角和半角)
    [vue]mixins在项目中的应用
  • 原文地址:https://www.cnblogs.com/lightninghzw/p/4902964.html
Copyright © 2020-2023  润新知