图像检索2:KSH(Supervised Hashing with Kernels)

Supervised Hashing with Kernels

 

简单的介绍了KSH(基于核函数的监督哈希),文章还是挺不错的,PPT里面有很详细的介绍和推导,下载浏览PPT就可以对这篇 CVPR 2012 的文章有很好的了解了。我没有直接跑原作者的代码。我一般是提取作者的代码,整合放进自己的框架里面调试,调试效果还行,所以原作者 release 的代码应该没有什么问题。在我后续的博文中会有专门讲解代码的内容,到时候会有不同哈希方法的的对比实验。

 

PPT主要分以下几部分内容:

 


      1.Kernel-Based Supervised Hashing
      2.Hash Functions with Kernels
      3.Supervised Infromation
      4.Code Inner Products
      5.Greedy Optimization
      6.Spectral Relaxation
      7.Sigmoid Smoothing

 

资源获取链接:

 

1.http://download.csdn.net/detail/lilai619/8865229(PPT)

2.http://wenku.baidu.com/view/bf3f1b19daef5ef7bb0d3c53(PPT)

3.http://download.csdn.net/detail/lilai619/8920121(论文)

4.http://download.csdn.net/detail/lilai619/8920135matlab代码

 

部分文档预览:

 

2016/4/13更新

Tips:

之前有网友邮件咨询代码相关问题,在这里贴上当时的邮件回复内容。水平有限,欢迎大家给予指导。

 

(1)监督信息的生成

 

作者的论文中使用的数据库是由相片分割成patches组成,每个patch的label是这个patch属于那个相片。对于文章中定义的相似度矩阵S(或者其他叫法),文章中有详细的介绍,不过代码实现的时候,忽略了s=0的场景,主要是这个数据库不是多标签数据库(比如NUS-WIDE),当然,也可以理解为距离上处在近邻和非近邻分解点上的一些数据。更深层次的原因是,能让代码实现起来更加简单。。。。

 

% pairwise label matrix

trngnd = traingnd(label_index');

temp = repmat(trngnd,1,trn)-repmat(trngnd',trn,1);

S0 = -ones(trn,trn);

tep = find(temp == 0);

S0(tep) = 1;

 

这部分代码,应该没什么问题吧,很简单,如果训练样本的groundtruth相同,则置1,否则置0,结合我PPT里面的那个图,很好理解。

 

(2)traingnd数据和标记的2000个数据的index之间有什么关联呢

 

a.先介绍代码中的一些数据:

9119:论文中对应为n;

300:论文中对应为m;

2000:论文中对应为l;

48:论文中对应为r.

b.为什么选2000而不是9119:

b1:这个也是机器学习中常采用的策略,针对大数据时代,不可能所有的样本都丢进去训练模型,选择适量的数据训练,可以减少时间和空间复杂度,作者这里仅仅是示例性质罢了,当然你全部丢进去,也是可行的。。。

b2:作者在论文中没有证明KSH的鲁棒性:针对训练数据之外的数据的延展性,这个模型还能不能适应?

不过你可以发现,在paper中cifar10数据库,作者是每个类都有挑选训练数据构建L,所以实质上挑选的数据已经能很好的“表示”对应类中没有使用的样本。也就是说,KSH还是鲁棒性不错的(至少从PR曲线,mAP等方面)。

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

微风❤水墨

你的鼓励是我最大的动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值