机器视觉:GMM、fisher vector、SIFT与HOG特征资料

GMM与fisher vector理解

查阅fisher vector资料时看到的几篇介绍fisher vector很不错的博文,要了解fisher vector你需要先了解GMM高斯混合模型,这两篇文章对GMM高斯混合模型讲解得很不错GMM高斯混合模型。fisher vector讲解的博文比较多,查阅的时候,我觉得下面几篇博文对fv讲得还比较深入:Fisher VectorFisher Vecotr(1)Fisher Vector(2)Fisher Vector 通俗学习

此外,查阅FV资料的时候还发现原来微信图像技术组也用到的FV:

在图像检索领域,比较常用的技术是提取局部特征(如SIFT,SURF等),量化,建倒排表的架构,微信扫一扫中的封面识别就是采用这种技术。然而在图像云平台服务中,基于局部特征的的图像检索技术存在种种弊端。首先,在图像云平台服务中,每个开发者的图片数据都是相互独立的,若对所有开发者只建一个倒排表,每次开发者修改数据库时都会影响到所有开发者。若为每个开发者建立独享的倒排表,则会对资源造成巨大的浪费。其次,采用倒排结构时,开发者修改图像数据时(如增、删图片),都需要对整个倒排表进行重建。

在图像识别云平台中,微信图像技术组采用了基于全局特征的图像检索方法,通过SIFT+Fisher Vector得到一幅图像的全局描述子,然后通过量化,将全局描述子量化为低比特的码流,每幅图像对应一个图像识别指纹,在微信图像云平台服务中,已无需构建倒排表,开发者增、删图像时,后台只需在数据库对应的增加、删除指纹即可。对开发者的增删操作可以做出实时的响应。识别过程时,只需比对开发者数据库中的指纹即可。

在识别效果上,通过对多个数据集测试,检索效果上均与基于倒排表结构的图像检索技术相当,甚至某些数据集上优于基于倒排表结构的技术。

原文链接:微信图像开放平台:让你的应用看懂世界

FV的Python实现代码pyfishervector与其对应的博文Image Fisher Vector In Python,C++版本的可以参阅这里bLDFV

SIFT和HOG

此外,还发觉了几篇对SIFT、HOG讲解得比较好的博文:SIFT算法,这篇文章讲SIFT讲得不是一般的好;HOG特征(1)HOG特征(3)HOG特征(3),博文3对HOG的生成过程配合着图解说明讲得很赞。

最后,翻看的几篇很简短的总结,都是关于检索的,留着供以后查阅:Spectral HashingProduct quantization for nearest neighbor searchEfficient visual search of videos cast as text retrieval热点技术探索:大规模相似检索

端午节下午所看的,以上。