立即咨询
您当前的位置:职称驿站 > 论文 > 科技论文 > 智能科学技术论文职称驿站24小时论文发表咨询热线:400-680-0558

基于人工智能算法的图像识别与生成

职称驿站所属分类:智能科学技术论文发布时间:2019-02-23 10:51:50浏览:1

本次报告的工作是利用PCA,SVM以及人工神经网络(ANN)实现对人脸的特征提取、分类和预测。然后利用GAN(生成对抗网络)实现对手写数字的生成,并用SVM做预测,验证生成效果。本次报告采用的数据源自剑桥大学的ORL 人脸数据库,其中包含40个人共400张人脸图像。

   本次报告的工作是利用PCA,SVM以及人工神经网络(ANN)实现对人脸的特征提取、分类和预测。然后利用GAN(生成对抗网络)实现对手写数字的生成,并用SVM做预测,验证生成效果。本次报告采用的数据源自剑桥大学的ORL 人脸数据库,其中包含40个人共400张人脸图像。

智能机器人

  《智能机器人》(月刊)创刊于2004年,由中自传媒和广东省自动化学会主办,国内第一本伺服技术市场的专业期刊,一体化运动控制解决方案,深度报道分析伺服及运动控制领域的技术、市场及应用,智能检测运动控制会议论文选定刊物。

  1 PCA降维

  PCA(principal components analysis)即主成分分析,又称主分量分析。旨在利用降维的思想,把多指标转化为少数几个综合指标。

  首先我们给出了数据库的平均脸的图像,并利用PCA对人脸降维,通过改变降低到的维度研究了保留维度的多少带来的影响。最后给出了每一个维度的特征脸图像,讨论了每一个维度所能够代表的人脸信息。

  1.1 平均脸

  首先,我们将数据库中400张人脸按行存储到一个矩阵中,即每一行为一张人脸(10304像素),每张人脸共10304维特征。我们对每一个维度去平均,构成一个新的行向量,这就是平均脸。

  平均脸反映了数据库中400张人脸的平均特征,可以看清人脸的轮廓,但无法识别人脸的局部细节。

  1.2 降低至不同维度时还原脸的情况

  从左到右从上到下依次是同一张脸降低至10,30,50,100,200,250,300,350,400的图像。可以看到,随着保留维数的增多,图像越清晰,与原图的差异越小。

  1.3 提取单一维度的特征做还原

  为了研究不同维度所代表的人脸的信息,我们把PCA之后的每一个特征向量单独提取出来对人脸做还原,还原的时候不加入平均脸并且做直方图均衡化。

  结果如下:

  每一张图像下方的数字代表了PCA之后按特征值从大到小排序的顺序,比如第一张图代表PCA之后最大特征值所对应的特征向量还原出的人脸。

  特征累积图的纵坐标代表了所保留的特征占总特征的比例。它是这样计算出来的,假设保留k维信息,则纵坐标值为这k个特征值的和除以总的400(400*10304的矩阵,最多有400个非零特征值)个特征值的和。

  从图4可以看出,当保留维数为100维时,即能保留人脸90%的信息,而之后随着保留维数的增多,保留信息的增多变缓。

  同样的结论也可由提取每个维度所代表的特征获得。从前到后观察实验所得的图像,我们可以发现,人脸变得越来越模糊,到100维以后已经分辨不清人脸了。这就说明前面的维度反映了大众脸的特征,而越往后面的维度则反映不同人脸的细节,比如头发长短等等,以及图片噪声。

  2 SVM对人脸分类

  SVM(支持向量机)是Corinna Cortes和Vapnik等于1995年首先提出的,在机器学习中,支持向量机是与相关的学习算法有关的监督学习模型,可以分析数据,识别模式,用于分类和回归分析。

  2.1 制作多分类器

  用PCA对人脸降维以后,我们用SVM将400张人脸进行分类。我们取每个人的前五张照片合并起来共200张作为训练集,每个人后五张照片合并起来共200张作为测试集。40个人即有40个标签,也就是有40类,但SVM只能作二分类器,因此我们利用二分类器生成多分类器,基本思想是制作C(40,2)个一对一分类器(也就是每两个类别一个),每一张照片都分别用所有一对一分类器分类,分类结果存储到投票矩阵中,分类结果就是投票矩阵中数字最大的那个。

  分类前,我们还需对PCA后的数据进行归一化处理,将图像矩阵的每一个元素映射到(-1,1)之间。

  2.2 参数选择及程序结果

  1)分类数据:每人取前五张做训练,后五张做测试(不加入自己的人脸)

  SVM参数设定:k = 75(PCA降至75维)

  Sigma = 30

  c = 15

  预测准确率: accuracy=0.8950

  2)每人取前五张做训练,后五张做测试(加入自己的人脸)

  SVM参数同上,

  预测准确率: accuracy=0.8585

  我们发现,当加入自己拍摄的人脸图像后,预测准确率有一定的下降,这可能是由于拍照时的光线,角度等造成的。

  3 ANN对人脸分类

  人工神经网络(Artificial Neural Networks,简写为ANNs)也简称为神经网络(NNs)或称作连接模型(Connection Model),它是一种模仿动物神经网络行为特征,进行分布式并行信息处理的算法数学模型。这种网络依靠系统的复杂程度,通过调整内部大量节点之间相互连接的关系,从而达到处理信息的目的。

  为了方便与SVM的结果作比对,ANN的训练集和测试集与SVM相同,并且不加入自己人脸。

  3.1 ANN结果及与SVM分类比较

  ANN分类结果:

  ANN参数设定为:1个隐层,含200个神经元

  学习率:1

  dropout fraction:0.5

  激活函数:sigmoid

  L2正则:0.0001

  epoch:200

  batchsize:50

  分类错误率:

  即分类准确率(accuracy)为:93.5%

  實验过程中可以发现,通过对神经网络多个参数的调节,准确率的变化是很复杂的,最终的93.5%的准确率应该还有上升的空间,参数还待进一步调整。

  与SVM比较起来,ANN准确率更高,但分析表明,对于本次报告所采用的数据库,ANN和SVM的准确度不会有太大差异,因此SVM的参数或许还可以进一步优化。

  4 GAN生成手写数字

  生成对抗网络(GAN)是一种深度学习模型,是近年来复杂分布上无监督学习最具前景的方法之一。模型通过框架中(至少)两个模块:生成模型(Generative Model)和判别模型(Discriminative Model)的互相博弈学习产生相当好的输出。原始 GAN 理论中,并不要求 G 和 D 都是神经网络,只需要是能拟合相应生成和判别的函数即可。但实用中一般均使用深度神经网络作为 G 和 D 。

  在下面的工作中,我们利用已有的手写数字(0-9)图片(60000张用于训练,10000张用于测试),对生成对抗网络(GAN)进行训练并生成手写数字,每个数字提取5000个样本作为训练集。最后用SVM对电脑生成的手写数字分类,看是否能“骗过”分类器。

  4.1 参数设定及程序结果

  首先,我们选取一个想要生成的手写字体,将已有数据中所有该字体挑出并取前5000个作为训练集。

  参数设定:生成器(generator):输入层、隐层和输出层分别有100,512,784个神经元。

  识别器(discriminator):输入层、隐层和输出层分别有784,200,1个神经元。

  学习率:0.01

  Batchsize:50

  更新判别器时的迭代次数设为1

  生成训练集:

  load('mnist_uint8');

  classify_num = 9;

  classify_matrix = zeros(1,10);

  classify_matrix(classify_num,1) = 1;

  choose = zeros(size(train_x,1),1);

  for i=1:size(train_x,1)

  if(train_y(i,:)==classify_matrix)

  choose(i) = choose(i),1;

  end

  end

  choose = logical(choose);

  train_x = train_x(choose,:);

  train_x = train_x(1:5000,:);

  train_x = double(reshape(train_x, 5000, 28, 28))/255;

  train_x = permute(train_x,[1,3,2]);

  train_x = reshape(train_x, 5000, 784);

  生成器损失虽然不是很低,但是最终基本稳定。

  4.2 SVM对生成手写数字做分类

  我们用GAN分别生成0到9的手写数字,将生成的图片作为测试集用SVM做分类,看是否能分到正确的类别。

  Result是SVM中的投票矩阵,投票数最多的一个的序号减一即为所分到的类别(数字0-9)。这里的SVM區别于前面所讨论的人脸识别的SVM,它是由45个(C(10,2))一对一分类器生成的多分类器。

  可以看到,每一个由GAN生成的手写数字均被SVM分到了正确的类别,如此可见GAN实在强大。

  5 总结

  运用PCA对原始数据进行降维,不仅能够保留原始的主要信息,而且可以减少算法的执行时间。通过组合SVM的二分类器来生成多分类器实现对人脸的识别,准确率达到89.5%,用人工神经网络ANN进行分类准确率达到93.5%。最后利用GAN生成手写字体,SVM全部正确地进行了分类,这表明GAN生成的手写数字是十分逼真的。

  参考文献:

  [1] 刘振明.基于J2EE新闻门户网站的设计与研究[D].吉林大学,2010(06):65-102.

《基于人工智能算法的图像识别与生成》
  • 课教专著
  • 1
  • 2
  • 3