基于胶囊网络在复杂场景下的行人识别
2021-03-08程换新刘文翰郭占广张志浩
程换新,刘文翰,郭占广,张志浩
(青岛科技大学 自动化与电子工程学院,山东 青岛 266061)
0 引 言
随着国家的各项城市工程建设,视频监控摄像头的数量也在不断增长,随之带来的就是视频信息的大数据化。因此,现如今开发视频数据中的重要价值越来越受到人们的重视。比如公安部门可以通过视频信息实现对目标人物的跟踪、搜寻,亦可用来分析行人的种种行为是否存在异常[1],这无疑是保障社会安全的又一有力手段。
“深度学习”这一概念是在2006年被提出的,在这短短的十几年间已经发展出了大量算法,但是将深度学习这一技术实际应用于图片分析依然以卷积神经网络(CNN)为主。然而因为卷积神经网络的一些结构缺陷,例如无法充分地表明下层各对象之间的空间关系,而且在池化的过程中会将一些位置信息丢失[2],这使得卷积神经网络在某些场景下的图片识别并不能达到令人满意的效果。
胶囊(capsule)[3]的概念是由Sabour S等人首次提出的,他们在文中创建了一个结构简单的三层胶囊网络(capsule network),并且利用该网络实现对Mnist手写数字识别,识别的准确率达到了97.5%,直接超越了LeNet-5模型[4]。Hinton等人在2018年发表的论文中对胶囊网络中的动态路由迭代算法进行了介绍,并提出了一种新的EM路由算法,对胶囊网络核心路由算法进行改进[5]。改进的胶囊网络通过使用动态路由算法替代了CNN的池化操作[6-7],从而使得特征损失有所减小,能够在一定程度上提高图像识别的准确率。但是在目前复杂环境的应用场景下的识别研究还是少数。该文在原有Hinton提出的胶囊网络的基础上,对网络的结构进行一定的改进,提出了基于改进胶囊网络的行人识别算法PRM-ICN。并使用三个公开通用的数据集CUHK01[8]、CUHK03[9]和Market-1501[10]对该模型进行训练及验证。
1 改进胶囊网络模型
经过改进后的胶囊网络模型如图1所示,共包含三层卷积层,一层多维Primary Capsule Layer,一层Intermediate Capsule Layer以及一层Advanced Capsule Layer。
图1 改进的胶囊网络模型结构
1.1 增加卷积层
在复杂场景下的图片所包含的信息量是巨大的,然而在图片中存在着过多的干扰信息。为了能够减少无用信息的干扰,充分联系图片中各特征的关系,并且可以在进入Primary Capsule Layer之前过滤一部分噪声。该网络在Conv 1层之后又额外增加了两层卷积层Conv 2和Conv 3,从而可以减少复杂背景中多余信息对网络产生的干扰。
1.2 胶囊维度扩展
经过三层的卷积网络后,输入图片的大量有用特征被提取,经过Primary Capsule Layer和Intermediate Capsule Layer对信息进行处理后将其压缩至胶囊中。该网络中的典型结构是胶囊结构,胶囊是存储信息的单元,胶囊结构的维度越大,就有充足的存储单元对网络中的有效信息进行保存。因此,在该网络将其维度扩展至16D。
1.3 Intermediate Capsule Layer
在胶囊层的内部,底层的特征胶囊利用姿态关系来对高层特征进行预测,之后利用动态路由算法以及筛分决策机制对高层胶囊进行选择性的激活,这就等同于筛选出了部分低层胶囊网络的预测结果,并且使高层胶囊选择性激活。
经过上述的改动之后,该网络的运行情况如下:
Conv 1:先将输入的彩色图片用256个5×5大小的卷积核进行卷积操作,其卷积步长为1。并且在卷积操作过程中使用ReLu激活函数。
Conv 2:对Conv 1经过卷积得到的初步特征使用512个5×5的卷积核进行卷积操作,其卷积步长为1,进而得到Conv 2层的输出结果。
Conv 3:进一步地将Conv 2层卷积得到的特征进行卷积操作,使用512个5×5大小的卷积核。
Primary Capsule Layer:对Conv 3层的输出结果进行向量化操作。采用16组不同的卷积核,而每一组卷积核中又包含64个不同的15×15的卷积核,卷积的步长设置为1,该卷积操作的激活函数使用ReLu。经过该步操作后,得到低级特征Ui,该特征为1×16的向量。其过程如图2所示。
图2 Primary Capsule Layer结构
Intermediate Capsule Layer:通过上一层得所到的低级特征Ui以及各胶囊层之间的姿态关系Wij来对高级特征Uj|i进行预测。即Uj|i=Ui·Wij。
Advanced Capsule Layer:利用得到的底层特征对高层特征进行预测,并利用动态路由算法以及筛分决策机制对高层特征胶囊进行选择性激活,最终实现分类功能。
2 关键算法
2.1 向量神经元
在胶囊网络中,每个胶囊包含着众多神经元,每一个神经元存储了从图片中获取的特征。与CNN不同,在胶囊网络中采用向量神经元而非标量神经元,这就使得神经元可以表达的信息更丰富,从而能够提高网络的识别率。每一个向量神经元都有其自身的属性,各种各样的实例化参数都可以包含于其属性当中,比如姿态、变形、速度等。除此之外,胶囊还存在一个特殊属性,该属性描述的是图像中某一类别实例的存在与否。该属性的值为概率,其大小又取决于该向量神经元的模长,模长越大则概率越大,反之亦然。向量神经元通过Squash()函数进行激活,该函数能够对该向量的长度进行放大或缩小,而向量的长度又代表某一时间发生的可能性。经过该函数的激活后,能够将特征显著的向量进行放大,将特征不够明显的向量进行缩小,从而提高识别率。
2.2 姿态关系转换
胶囊层中物体各部分之间的分层姿态关系通过姿态矩阵表现出来[11-12]。为了正确地识别物体,首先应当保持分层姿态关系。而姿态无非包括旋转(rotation)、平移(translation)和缩放(scale)三种。若将某个物体姿态先逆时针旋转60°,再将其向右平移3个单位,之后再缩放至原来的50%,那么可以通过以下矩阵连乘的方式得到。其中等式右边前三个矩阵分别为R、T、S,而该三个矩阵相乘即为姿态矩阵M。
2.3 动态路由迭代算法
图3 动态路由迭代算法
2.4 Squash函数
该函数能够对该向量的长度进行放大或缩小,并且保证每个胶囊的长度都介于0到1之间。因此,每个事件发生的概率大小都可以使用每个胶囊的长度所替代,这就能提高大概率事件的可能性,而降低小概率事件的发生几率,从而提高识别的准确度。该函数的表达式为:
其中,Vi是该函数的输出,也就是长度在0到1之间的一个向量;Sj是输入该函数的一个胶囊,而该胶囊是经过前述三层卷积运算后的结果。对于等式右边的第一项,该项的作用仅为放缩胶囊的长度,使得长度大的胶囊更长、长度小的胶囊进一步缩小。对于等式右边的第二项,该项的作用是保持原有的胶囊方向不变,也就是保持事件除概率外的各项特征不发生变化。
3 实验与分析
为了验证提出的基于胶囊网络的复杂场景下行人识别模型(PRM-ICN)的性能,在三个流行的公开数据集CUHK01、CUHK03和Market-1501上进行了实验,实验的结果及分析见下文。
3.1 实验设置
在本次实验中,整个网络的实现是在TensorFlow框架下完成的,编程语言使用的是Python,GPU型号为GTX 1080Ti。对于实验结果的评价,采用常用的两个指标,即累计匹配曲线(cumulative match curve,CMC)和平均精度均值(Mmean average precision,MAP)。在行人识别领域中,一个必不可少的对模型的重要评价指标就是CMC曲线,该指标能够充分反映分类器的性能。MAP曲线即为平均AP值,是对多次查询结果求平均AP值。
此外,为了验证本网络的有效性,还与另外两个在该领域性能不错的模型进行了对比,这两个模型分别为基于AlexNet的行人识别方法(PRM-AlexNet)[14]和基于VGG-16的行人识别方法(PRM-VGG-16)[15]。其中AlexNet包含5个激活函数为ReLu的卷积层和3层全连接层。VGG-16网络包含13个激活函数为ReLu的卷积层和3层全连接层。
3.2 数据集
本实验采用了三个公开通用的数据集CUHK01、CUHK03和Market-1501对该模型进行训练及验证。数据集CUHK01中包括971人,其中每人都有包含正面、背面以及两侧的四张图片,在实验中选取前750人作为训练集,剩余作为测试集;数据集CUHK03包含13 164张行人图片,涵盖了1 360个人,在实验中选取前1 100人作为训练集,剩余作为测试集;数据集Market-1501包括1 501个行人共32 668张图片,在本次实验中选取前1 300个人的图片作为训练集,剩余作为测试集。数据集中的部分图片如图4所示。
图4 数据集中的部分图片
3.3 实验结果分析
在三个数据集上的实验结果如表1所示。从表中可以看出,因为CUHK01中的图片数据相对较少,而PRM-AlexNet和PRM-VGG-16网络结构过于复杂超参数也较多,使得在训练过程中极容易发生过拟合的现象,很难利用到其深层网络的作用,从而导致两者的CMC较低。在三个数据集上,提出的基于胶囊网络的行人识别模型的CMC曲线值均高于上述两种方法。
表1 不同方法的CMC比较
该文创建的模型PRM-ICN在三个数据集上的MAP值如图5所示。从图中可以看出,在三个数据集下,所提模型在MAP值上的表现都优于其他两种网络。在CUHK01数据集上,所提模型较其他两种方法的MAP值分别提高了0.18和0.16;在CUHK03数据集上,所提模型较其他两种方法的MAP值分别提高了0.22和0.20;在Market-1501数据集上,所提模型较其他两种方法的MAP值分别提高了0.17和0.10。
图5 不同模型的MAP值
通过上述实验表明,提出的基于胶囊网络的复杂场景下行人识别模型的性能较好。因为其在对不同姿态和空间关系的识别对象进行处理时,可以通过姿态转换来对图像进行变换,提高了识别准确率。
4 结束语
针对复杂场景下行人识别难度大的问题,为了让胶囊网络能够在复杂场景下对行人图像进行更高准确度的识别,在原始的胶囊网络基础之上对网络结构进行了优化,使之提高了在处理复杂场景中消除无用信息的能力,提出了基于改进胶囊网络的行人识别模型,并与在该领域识别效果不错的模型PRM-AlexNet和PRM-VGG-16进行了对比。所提出的模型在CMC曲线及MAP值上都优于前两者。但是该模型的识别率还未达到预期,并且还存在一定的局限性,比如并未详细考量光线变化较大的情况。未来会将更多的环境因素考虑在内,不断地修改网络结构、完善模型,使之识别准确率进一步提高。