大牛就是大牛,很容易就想出一些可行的解决方法,虽然这些方法并不复杂,但是很有指导意义。
我们在比较时,上传一个新图片,source,然后,与数据库里的target来进行比较。
也就是说,这个比较与数据库里target的数目有关,很有关系。在线搜索的时间。
虽然,可以对target进行预处理,如将其先离线转为xml文件,提取了相关的特征值。
但,仍然需要与每个xml对比,这样子,搜索的时间还是很长。
我们之前的一个想法是,单纯地提高这个比较获得相似度的算法,进而减少检索时间。
但是,大牛就提出了一个不同的想法,我们将这个比较相似读的算法,也转为离线。
怎么转呢?
一个,首先,对数据库的target进行分类。如先选取20个具有代表性的图,然后将所有target与这些代表比较,离线算出它们的相似度,将他们分为20组。
这样子,以后我们对新上传的source,只需也将其归类到某一个组里,搜索的量级变成了1/20,这是很很可观的。
事实上,可以进行进一步的子类的划分,这就是索引的思想。
这里需要对图的划分,怎么分类,怎么建索引具有较深理解和专业知识。可以进一步看看是怎么建立索引的。
另一个,我们一样离线处理相似度的求解,也是首先选取如5个具有代表性的图,拿这5个作为量度的标准。
然后,对数据库里的文件,分别与这5个标准图进行比较,则可以得出5个值,拿这5个值组成的向量代表这个图。
这样子,在接下来的比较中,我们就用向量的比较,来代表相似度的比较。
向量的比较就一个数学公式,而相似读比较是一个搜索算法。节省居多时间。
选取标准,离线处理,转成向量的比较。
再者,还是可以继续提高的,我们对于这样的向量,也采取规格化处理的方式,如采用lucene,重载它的比较函数为向量比较形式。进一步利用已有的工具,这也是软工教育的思想。
可能我太孤陋寡闻了吧。。。
觉得好牛啊。。
另,对于我自己的那部分,就单纯的图相似度比较算法,他也提出了,一幅图与文章相关联,图具有的信息量较少,可以搜索它相关的文章,比较文章有关段落的相似度,来获得。
总算感觉到,能有一些起码我觉得牛叉的思想了。sigh~为昨天苦逼写了一天java代码而哭叹下
惊叹一下,这些这么raw的想法,放上去,不会被人抄袭吧。。因为,后来听说,这些方法,其实很多文章都有说。。的确好孤陋寡闻。。