骨刻文-众包算法

众包算法

1.简言

在收集完用户的手绘数据之后,我们就要想办法得出最后的分类。在之前的文章中我们已经提出一种解决方法,即通过em算法,迭代,得到我们的分类结果,为了防止算法的效果不好,我们采用了第二套算法,划分等价类。

2.算法简介

众包算法中包含的思想就是混合人和机器的工作流程。首先用机器去做一个预处理,可以用前面的某个相似度函数,如Jaccard ;但这次我们不去寻找那些相似度较高的图片,而是排除那些相似度太低,也就是小于一定的阈值,我们认为已经不可能是同一类的这样的图片。
然后将剩下的部分交给人去进行识别。相应的,也可以使用前面提到的基于对的HIT 和基于簇的HIT。基于对的HIT 可能没有太多的问题,但是基于簇的HIT 还是有很多方面的东西需要考虑。

3.算法实现

首先基于上篇文章的图片相似度算法,先用程序进行简单初步的分类,然后将任务下分给用户,最后得出等价类
我们将分类问题转化为图的划分。收集用户对于图中两点之间的相似度,超过某个阈值则认为他们属于一个连通分量。

def runAllImageSimilaryFun(para1, para2):
    # 均值、差值、感知哈希算法三种算法值越小,则越相似,相同图片值为0
    # 三直方图算法和单通道的直方图 0-1之间,值越大,越相似。 相同图片为1
    # 通过imread方法直接读取物理路径
    img1 = cv2.imread(para1)
    img2 = cv2.imread(para2)

    hash1 = aHash(img1)
    hash2 = aHash(img2)
    n1 = cmpHash(hash1, hash2)

    hash1 = dHash(img1)
    hash2 = dHash(img2)
    n2 = cmpHash(hash1, hash2)

    hash1 = pHash(img1)
    hash2 = pHash(img2)
    n3 = cmpHash(hash1, hash2)

    n4 = classify_hist_with_split(img1, img2)

    n5 = calculate(img1, img2)

    return float((n1 + n2 + n3 + n4 + n5) / 5)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值