Hash-retrieval复现之旅(1)------------------------------malti-label 多标签图像的检索代码复现

本文参考论文是arxiv2015的关于多标签检索的论文Deep Semantic Ranking Based Hashing for Multi-Label Image Retrieval,作者 Fang Zhao   Yongzhen Huang    Liang Wang   Tieniu Tan。

1)对于数据集的描述,使用的nus-wide数据集,nus-wide 是一个带有网络标签标注的图像数据,包含来自网站的 269648张 图像,5018类 不同的标签,该数据集是多标签数据集,可以通过对应的retrieval-label.txt文件打开查看label标签属性,太细节的东西不准备说了,直接贴图。

2)使用的框架是基本的CNN框架五层卷积加上2层全连接即基本Alexnet网络,用于深度特征提取,

最后的全连接可以看出来,hash编码对应的是两层全连接深度特征的信息融合的结果,具体的公式为h(x; w) = sign(wT[fa(x); fb(x)]), 后来改进为h(x; w) = 2σ(wT[fa(x); fb(x)]) − 1。

3)正篇文章采用的基本思想及基本算法流程图:

            a,首先我们从数据集中找到一张图片定义为q,做标签的ground truth 的处理,比如每张图片对应的n种类别(总共20 种                    类别),和搜索的图像q对应的类别进行比较,看看有多少一样的类别标签,然后对每张图片进行等级评定,比如和q                   有3张相同照片的定义为3等,等级越高,说明和q越接近,如果没有一样的标签那么只能定义成0等级

           b, 损失函数设计,大体的损失函数设计还是遵循三元组损失(TripNet),其实很好思考的是,对于等级越高的,最后神                   经网络学的hash值和q的hash值的humming距离肯定是越小的,这样定义出来的损失函数设计出的最终效果大概可以                   对q形成一个个圈,等级越高的圈越在里面,反之则靠近外面。损失函数设计如图所示。

               [.]+ = max(0, .),δdH(h, h1, h2) = dH(h, h1) − dH(h, h2),整体损失函数如下。

4)关于细节方面希望还是去看看原文论文,很好找的,不贴链接了,

猜你喜欢

转载自blog.csdn.net/qq_33824968/article/details/84819704