图像情感识别

来源:互联网 发布:window.open php 编辑:程序博客网 时间:2024/05/18 09:10

今天组会讲了一个情感图片识别的例子,其实也是一个比较普通的机器学习的过程,但是总体来说涉及到的东西还是很广的,在此再次总结分享一下。问题简单来说就是对图片情感进行分类,分别是Amusement, Anger, Awe, Contentment, Disgust, Excitement, Fear, Sadness八个类。先上整个的流程图:



首先我们必须有一个有label的图片数据集,有两中方法获取带label的数据集,最简单的当然是利用公开的数据集,图像情感方面可以参考IAPS;第二种自然是自己建立,通过人工的标注,最后统计结果作为ground truth。

第一步是进行一些预处理的操作,把图片的尺寸变成一致并且进行裁剪,最好保持图片的长宽比和原来的一致,不至于让图片失真;

第二步特征提取;根据相应的研究和论文提取出最有用的特征,组合成最后的特征;这一步决定了后面分类器分类的质量;

第三步是对提取的特征进行选择,因为提取的特征当中可能会有冗余的特征,并且特征过多容易造成维数灾难,比较常用的方法是作主成分分析(PCA),或者是直接利用现有特征,根据启发式、完全搜索式等等方法抽取特征子集;

第四步时选择分类器,对不同的分类器进行测试,比如SVM,RF,GBDT等等各种算法进行分类,测试效果,得到最终的分类模型;

得到模型之后,我们就可以进行预测了。


数据库


数据库各个情感图片实例以及各类情感图片的数量,图片总数是797。


特征提取

颜色特征,比如色调亮度相关,冷暖色相关的一些特征;

纹理特征,比如小波特征,Tamura特征等等;

内容特征,如果有人脸提取人脸特征;

最后得到47维的特征


在讲特征选择之前,先说明下面所有的结果的分类器都是朴素贝叶斯

特征选择

特征选择的方法有很多,可以直接做PCA,也可以穷举、启发式搜索或者随机搜索,比如顺序向前搜索、定向搜索、模拟退火算法等。这边采用了三种方式:(1)Sequential Forward Selection; (2)Beam Search; (3)PCA;

(1)SFS

就是特征顺序从一个变成lenth(features)个,看在第几个特征时能取得最好的分类效果;以下是两个类别的识别率的变化情况:


这是SFS的结果,NOF表示Number of Feature;



(2)Beam Search

采用的是贪心算法的思想,首先利用一个特征去进行分类,然后每次取最优效果的特征加入子特征进行训练,最后看哪些特征的效果最好;

这是BS的结果,NOF表示Number of Feature;


(3) PCA

这是PCA的结果,95%的保存率降维到21维,NOF表示Number of Feature;



最后来上一张三种方法下分类正确率的对比图,可以看到分类效果总体来说 BS>SFS>PCA.


多看论文,多写代码,少睡懒觉,少闲扯淡。


0 0
原创粉丝点击