匹配objectuse "rootsift= sqrt( sift / sum(sift) )" to improve object retrieval

文章结束给大家来个程序员笑话:[M]

    原文出自Three things everyone should know to improve object retrieval. (CVPR2012)

    其中只应用rootsift= sqrt( sift / sum(sift) )一项就可以有很好的效果,实际处置:

    在descriptor数组输出之前,加上一个处置

    每日一道理
父亲对于儿子来说,是座耸立的高山,而儿子只是颗石子,源于山,却并不了解山。生活中诸多爱的密码,是需用细节来解读的,在亲情的沃土上,要想搞得最美的果实,惟有期待那存在于瞬间的心与心的共鸣,爱与爱的默契。

    
            float sum = 0.0f;
            for (float f : desc)
                sum += f;
            if (sum != 0) {
                for (i = 0; i < desc.length; i++) {
                    if (desc[i] < 0) desc[i] = (float) -Math.sqrt(-desc[i] / sum);
                    else desc[i] = (float) Math.sqrt(desc[i] / sum);

                }
            }

 其实我这里是一个sift的变形,不是真正的sift,是Harris+Surf,所以desc[i]有多是正数,38个图片对12000多个样本原来匹配1125(2张误匹配),

    应用rootsift= sqrt( sift / sum(sift) )后,38个图片对12000多个样本原来匹配1207(3张误匹配),提高9%。而其它原来匹配的图片中匹配点更稳定 。

    如果应用原生的sift相信会有更好的效果。

文章结束给大家分享下程序员的一些笑话语录: 程序员喝酒
  我偶尔采用“木马策略”、“交叉测试”,时间不长就开始“频繁分配释放资源”,“cache”也是免不了的了,
  不过我从不搞“轮巡”,也不会“捕获异常”,更不会“程序异常”,因为我有理性
克制的。  

--------------------------------- 原创文章 By
匹配和object
---------------------------------

posted @ 2013-05-27 20:13  xinyuyuanm  阅读(758)  评论(0编辑  收藏  举报