题记:2012年4月1日回到家,南大计算机研究僧复试以后,等待着的就是独坐家中无聊的潇洒。不知哪日,无意中和未来的同学潘潘聊到了图像处理,聊到了她的论文《基于LDA的行人检测》,出于有一年半工作经验的IT男人的本能,就一起开始学习研究这篇“论文”了。众所周知,老师给学生设置论文题目的,起初都是很扯淡的——自己没有思考清楚实践上的可行性和具体思路,仅从理论了解上就给学生设置一些“不可实现”的论文任务。几经修改和商讨,最后的论文实际上就是“基于SIFT+Kmeans+LDA的图片分类器的实现”了。至此,代码已经编写完毕,图片分类的效果满意率达到80%以上(主观上你觉得一堆图片应该分为K个类别,程序就能让你80%满意它分出的K个类别)。
——copyright:由于是一起学习研究的结果,相关所有内容潘潘童鞋可以以第一作者身份使用!
一、实现思路
分类器的功能是:输入一组图片,给定需要分类的类别数lda_k(>1);输出lda_k个文件夹,每个文件夹内的图片为一类图片。
第一步是SIFT特征提取:输入图片,输出图片的特征点集,即feature列表,每个feature代表一个图片的某个局部特征,每个feature的数据结构由一个128维浮点数组表示。至此,可以将一幅图片转换成一个feature集。
第二步是Kmeans聚类:输入是所有图片的feature集的综合,给定参数km_k代表需要聚类的类别数;输出是km_k个feature,在LDA的视角看来就是“单词表”,用“单词表”中的一个“单词”(类中的质心feature)代表kmeans聚类里面一类的所有feature。
第三步是统计词频:(对每个图片)输入是图片的feature集和“单词表”,分别计算该图片feature集中每个feature对应的“单词”,并统计每个“单词”在该feature集中出现的次数即词频;输出是词频统计数据。
最后一步是LDA训练潜在主题:输入是所有图片文件的词频统计数据,以及给定的需要训练出来的主题类别数lda_k;LDA输出参数较多,其中最有用的就是文档-主题条件概率矩阵(theta矩阵),即举证中每个元素表示P(主题k|文档m)——在文档m中,主题是k的概率——通过该概率即可判断当前文档最可能的主题,实现了将所有文档分类为lda_k个主题。
根据以上思路,即实现了图片的分类功能。
二、…….(未完待续)
本文转载自:博客园精华区
欢迎加入我爱机器学习QQ14群:336582044
微信扫一扫,关注我爱机器学习公众号