关于视觉特征与CapsNet的图像大数据分类研究

2022-03-01 01:11马军生
计算机仿真 2022年1期
关键词:灰度胶囊矩阵

罗 丹,马军生

(1. 电子科技大学成都学院,四川 成都 610000;2. 国防科技大学信息通信学院,陕西 西安 710106)

1 引言

随着移动云时代的不断发展,图像大数据越来越引起人们的重视,对于图像数据的收集与处理是学术界研究的热点话题[1]。为了对图像数据信息进行提取,需要采用多种技术,如数据库、数据挖掘等。但随着数据种类的增多、数据结构的多元化,一般的数据挖掘技术已经满足不了特殊的应用需求,因此需要新的方法对大量数据的存储以及处理分析等问题进行解决,这便诞生了“大数据”[2]。在大数据时代,图像的分类不再基于经验,而是通过海量数据的比较分析,利用图像大数据的处理平台以及算法来实现。文献[3]提出模糊聚类的胶囊网络思想,为了对同一胶囊层特征进行区分,引入信息熵对激活值度量,将不同胶囊层特征采样为同一尺度,并进行独立训练。实验结果表明,该方法极大地提升了图像特征的表达能力,但在图像较为复杂时,会加剧网络负担。文献[4]提出大数据分析技术的激光图像分类与识别方法,通过对图像粗糙度、纹理特征等的确定构建特征数据场,结合Spark向量机算法建立图像分类器,实验结果表明,该方法的图像分类与识别准确度有所提高,但泛性较差。文献[5]采用在线极端学习理论,建立隐层输出矩阵,为了减少矩阵累乘计算,依据MapReduce计算框架对矩阵进行分割,并在不同工作点上对分割矩阵进行计算,得出分类器,实验结果表明,该方法能对图像大数据进行准确的分类,但识别速度有待提高,不适用于海量图像数据的处理场合。

结合现有的研究成果,本文提出基于视觉特征与CapsNet的图像大数据分类方法。根据图像特征信息的不同,对视觉数据的低层特征进行提取,并通过胶囊结构表达图像特征信息,对Map和Reduce函数进行设计,完成对图像大数据的分类。

2 视觉特征描述方法

特征提取[6-8]是图像识别与处理的基本操作,是使用计算机视觉技术对图像信息进行描述所构成的特征向量。特征提取的关键是特征描述对象以及描述算法。在高中低三层特征中,由于低层特征描述具有普遍性,因此本文主要对视觉数据的低层图像特征进行研究。

共生矩阵是一种描述图像中存在位置与灰度关系的联合分布描述方法。假设图像的灰度级为A,共生矩阵B的大小为A×A,B(m,n)表示灰度值为m和n在图像中按照一定规律与关系同时出现的概率,两个像素点的相对距离与角度分别为D和φ。为了降低大量数据造成的计算量问题,将图像的灰度压缩到等级尽可能低的程度。利用共生矩阵对视觉特征进行提取时,一般采用以下特征进行描述。

1)均值:用来描述视觉特征中图像的纹理规则程度。如果纹理没有规律可循,那么均值会很小;如果纹理较为有规律,那么均值较大

(1)

2)方差:用来描述矩阵元素值与均值相差的程度。如果图像灰度值与均值相差越大,图像灰度变化越大;反之,图像灰度变化越小

(2)

3)同质度:用来描述图像局部灰度的均匀程度。如果图像的灰度分布越均匀,同质度值越大;反之,同质度值越小

(3)

4)对比度:用来描述图像局部灰度变化的总量。如果图像的局部灰度差异性越大,对比度值越大;反之,对比度值越小,图像视觉效果越好

(4)

5)熵:用来描述图像所包含信息量的多少。如果图像越复杂,熵值越大;反之,熵值越小

(5)

6)角二阶矩:用来描述图像的能量。如果共生矩阵中元素主要分布在主对角线上,那么图像灰度分布较均匀,角二阶矩值越大;反之,角二阶矩值越小

(6)

7)相关性:用来描述共生矩阵中各行与各列元素之间的相似程度。如果图像中某个灰度值的延伸长度越长,则图像的相关性越大;反之,图像的相关性越小

(7)

(8)

通过对不同边长的小块进行拟合便可以求出最终的维度。假定对于任意的i都存在一个映射函数

H(K(i))⊆rg(i)

(9)

其中,K(i)表示以i为中心、以r为半径的球体;g(i)表示Holder指数,用来反映分形谱测度H的图像局部幂律关系。g(i)可以用图像局部密度函数的估计进行表示

(10)

3 胶囊网络模型

胶囊网络中的一个胶囊包含一组神经元,神经元的输出反映图像中所包含的各种属性信息。CapsNet通过胶囊结构表达图像特征信息,胶囊的输入可通过各层预测矢量加权总和表示

(11)

(12)

其中,Hchan_wv表示变换矩阵;uw表示前一个胶囊;ewv表示两个向量方向的相似度,在不同层中lwv的总和为1。为了更新CapsNet的耦合系数,采用动态路由算法表示胶囊与子胶囊间的关系。在动态路由计算过程中,每个数据节点的耦合系数均为0,在训练和测试操作中都需要对动态路由进行重新计算得出CapsNet的输出。

CapsNet将图像转换为像素点矩阵作为输入,实体存在的概率用胶囊输出向量的长度表示。假定w表示capsl的一个胶囊,那么v则表示capsl+1的一个胶囊,用损失函数将输出向量中短向量限制为0或趋近于0的长度,将长向量限制为小于1的长度。用公式表示为

(13)

其中,Coutput_v表示胶囊的输出;向量的长度表示输入是v类概率。初级胶囊的输出表示最后输出的数字胶囊,每个胶囊都有多维空间,每一维都表示图像的属性:形变、纹理、色调等。CapsNet损失函数由间隔损失和重构损失两部分组成。间隔损失是一种指示函数,表示CapsNet预测输入图像的某类概率。用公式可表示为

(14)

其中,k表示分类类别;Hmar_k表示分类指示函数;B+和B-分别表示上边界和下边界。重构损失是一种数字胶囊层对输入矩阵编码的优化过程。将数字胶囊层输出的废弃胶囊初始化为0,并将图像的输入与输出向量进行平法差求和,得出重构损失

(15)

其中,Tinput_i表示图像的输入向量;Toutput_i表示图像的输出向量。系数是通过对iROADSDataset数据进行训练得出的,这不仅提高了图像分类的准确性,还可以提高相应图像数据的准确性。

4 图像大数据分类设计

Hadoop是一种非常重要的大数据开源框架,使用者可以很便利地把图像大数据分类部署到云计算节点上。并且Hadoop中所涉及的调度、容错处理等均由MapReduce完成。MapReduce用来处理大规模数据集的并行运算,为使用者提供了编程接口。

在Hadoop环境下,若要实现图像大数据的分类,关键是对Map和Reduce进行设计。Map函数的设计过程:首先计算出所有图像训练集样本点Yi与CondenseSet存储图像数据集各个样例之间的距离,并计算出最近距离minDis与其对应的最近样本minIns。然后判断最近样本minIns与Yi的类别是否一致,若不一致,将Yi加入到CondenseSet存储图像数据集中,输出压缩的图像样本。在Map函数中表示<起始偏移量,训练样本>,表示<压缩样本,NullWritable>。Map函数的设计代码如图1所示。

图1 Map函数的设计代码

Reduce函数的设计过程:首先计算出所有图像压缩后得到的样本点,然后将所有压缩样本点进行输出。在Reduce函数中表示<压缩样本,NullWritable>,表示<压缩样本,NullWritable>。Reduce函数的设计代码如图2所示。

图2 Reduce函数的设计代码

CapsNet的计算是一种典型的串行计算,需要经过不断的训练,每一轮训练可分为三步:图像样本数据的向前传播、网络数据的调整和敏感度数据的向后传播。每次经过训练后,CapsNet的数据参数都会发生改变,导致前一次的训练结果会对后一次的训练结果产生影响,无法使CapsNet的训练结果划分为样例互相独立的情况,因此本文采用批量更新的数据模型。将图像的训练集划分为众多数据块,并在Map上对不同的数据块进行并行训练,每个训练样本经过前、后传播后均可得出一个权值梯度。然后采用Reduce计算出所有训练样本权值梯度的平均值,并对权值进行更新。其中,Map和Reduce之间需要传输每两组样本之间的权值和偏置。一个CapsNet中包含了各个核参数、偏置参数和连接权值,这些都需要封装起来进行传输,以减小图像数据的碎片化。

1)模型输入:DataSet中包含M个图像样本训练集,其中CapsNetin表示初始的胶囊网络模型,N表示训练次数。

2)模型输出:CapsNetout表示训练后的胶囊网络模型。

3)预处理:将DataSet与CapsNetin存入到HDFS中。

Map过程代码如图3所示。其中输入为图像样本的偏移量,输出为迭代后的CapsNet对象。

图3 Map过程代码

Reduce过程代码如图4所示。其中输入为Map过程迭代后的CapsNet对象,输出为经过Reduce对所有参数进行算数平均值得出的CapsNetout。最终将CapsNetout存入到HDFS中,作为下一次训练的Map初值。

图4 Reduce过程代码

5 实验结果与分析

为了验证本文提出方法对图像大数据分类的准确性与有效性,本文选择ImageNet数据库在Hadoop平台上进行训练。ImageNet数据库包含2万多种图像类型,共有1400多万幅图片。为了方便图片直接存入到HDFS中,将所有图片进行预处理,文件中的每一行代表一幅图片。

本文在ImageNet数据库上对基于视觉特征与CapsNet预测出来的图像与真实图像的像素点进行平方差求和处理,为了更直观的验证本文算法的性能,把预测结果解码成图像,重构误差结果如图5所示。

图5 重构误差

从图中可以看出,训练初重构误差较大为0.232%,在前500次迭代训练过程中,模型不断地进行拟合,学习图像的特征并进行参数更新,重构图像与真实图像的误差不断降低,模型优化效果非常明显。在后期的迭代训练中误差趋于稳定为0.023%左右,模型的拟合效果处于最佳状态。通过重构误差的分析结果,有利于观察CapsNet的拟合情况,可以有效地防止图像过拟合、提高图像的分类精度。

为了进一步对视觉特征与CapsNet模型性能进行评价,对图像采取5轮实验,结合Map和Reduce过程对输出结果进行算数平均值的求取,并将本文提出的方法与原始方法进行准确率与图像分类效率的对比,对比结果分别如表1和表2所示。

表1 两种方法的准确率对比

表2 两种方法的分类效率对比

从表中可以看出,基于视觉特征与CapsNet的图像大数据分类算法在准确率与图像分类效率上明显优于原始算法,具体有以下原因:原始并行模型中的权值更新较慢,需要大量的训练轮数才能达到较好的图像分类结果,并且在分类过程中产生大量的中间变量,远远超过原始数据集的大小,影响了图像的训练效率。而基于视觉特征与CapsNet的图像大数据分类模型将数据分配在不同节点下,不仅可以保证权值在内部进行更新,还可以独立运行,节省了大量运行时间。其次,原始并行模型只生成一个CapsNet分类器,过拟合几率随着迭代次数的增加不断增加。而基于视觉特征与CapsNet的图像大数据分类模型在每个节点处均生成一个分类器,使图像的分类结果更加准确。

6 结束语

本文针对图像的分类提出了一种基于视觉特征与CapsNet的大数据分类方法。在Hadoop环境下,结合MapReduce并行框架的优势,在大量图片数据中从样本集里选出分类有效的样本,不仅减少了样本的存储空间,还提高了计算效率。在图片大数据环境下,针对原始算法的不足,本文算法可以使图像大数据分类结果更加准确,当样例个数为110万个时,采用本文方法图像分类准确率可达到88.2%,分类时间仅为793.6s,较传统算法具有显著的性能提升。

猜你喜欢
灰度胶囊矩阵
基于二值化灰度图像的大豆蛋白液喷雾相对雾化程度的研究
天津港智慧工作平台灰度发布系统和流程设计
Arduino小车巡线程序的灰度阈值优化方案
胶囊要用凉开水服
多项式理论在矩阵求逆中的应用
矩阵
矩阵
矩阵
一种基于灰度分割的调焦评价函数
我有一颗神奇胶囊