基于卷积神经网络的街景环境评价∗

2021-06-29 08:42
计算机与数字工程 2021年6期
关键词:子集街景卷积

李 渊

(华中科技大学 武汉 430074)

1 引言

传统的城市环境评价研究通常采用基于现场调研的方法,这类方法难以在大范围、精细化的尺度上对城市环境进行有效的评估。随着信息技术的发展,街景图像成为城市环境评价研究中新的重要数据源,街景图像具有覆盖面广、信息量涵盖丰富、采集成本低等优势,基于街景图像理解的城市环境评价方法逐渐成为城市环境评价的重要手段[1]。早在1990年,Jack L等就提出用计算机视觉的方法来量化街景的质量[2]。2001年,Oliva A等通过区域生长的方法分割出街景图像“街道”、“天空”等区域,并人为设定规则,实现对街景图像的评价[3]。2012年,Goel A等综合了Geometric Texton、GIST和Color Histograms等特征[4],改进了Kmeans聚类,实现了不同城市街景图像风格的分类。这类街景图像评价方法基于人工设定规则,利用人对街景图像评价时会考虑的因素如“绿化率”、“整洁度”等,通过对街景图像内容进行相应的分析得出评价。然而这类方法评价规则上带有规则设计者的主观色彩,评价方法不客观且效果不理想。2014年,MIT Media Lab的Nikhil Naik等提出“streetscore”项目[5],Naik等人收集了1万多张美国的街景图像,以0到10为安全感的打分范围,进行了人工标签,首次通过监督学习的方法实现了对街景图像的评价。带有数据监督的方法能从数据中学习到潜在的联系,相较于传统方法而言较为客观,也更有说服力[6~8],使用评分来量化对街景图像的评价会更加直观,让人们更容易接受。

卷积神经网络在图像领域的发展带来了更好的图像全局特征提取方法,相比传统的特征提取方法,深度卷积神经网络提取的特征具有信息损失更少、鲁棒性高和泛化性等优点[11]。2015年,Lorenzo Porzi等人使用改进的Alexnet提取特征[7],有效地提高了模型的“打分”能力。在应用层面上,2016年,Edward Glaeser等人通过学习谷歌街景来预测纽约的地区收入水平。随后,Dubey A,Naik N,Parikh D合作将训练集规模提升到110,988幅街景图像,标签上从安全感变为安全、活泼与无聊等多个属性,算法上采用了Resnet卷积神经网络[6],进一步提高了精确度[8,12]。

街景环境评价方法在近些年来取得了长足的进步,主要体现在两个方面:基于人工设定规则的分类方法逐渐被基于监督学习的分类算法取代[9];传统的特征提取方法逐渐被卷积神经网络取代,卷积神经网络提取的特征具有信息损失更少、鲁棒性高和泛化性等优点[10~11]。尽管如此,基于卷积神经网络的街景评价方法仍存在以下缺陷:用于街景评价的卷积神经网络结构多借鉴分类任务,而分类任务和街景评价是两种不同得任务;现阶段常用的损失函数能有效地度量错分类导致的损失,然而难以度量街景错评价带来的损失;传统的街景评价方法将数据集的标签视作可靠的、有效地,然而街景评价标签具有标注者较强的主观性,标签并不能一定准确地表达街景图像的实际得分。基于以上缺点,论文从网络结构的改进、损失函数的修正、训练方法的优化这三个方向着手,提出了更好的街景评价方法。

2 街景环境评价方法

基于卷积神经网络的街景环境评价方法实质上是训练一个卷积神经网络,网络输入为街景图像,网络输出为对街景图像的环境评分。因此,设计出一个好的街景评价网络和如何训练好网络是基于卷积神经网络的街景评价方法的两大核心问题。

2.1 网络结构设计

2.1.1 Stem-Block结构

对于街景评价问题而言,起主要作用的是网络深层提取的语义特征,而浅层网络提取的像素级特征是深层网络的基础。

Stem Block先对输入图像做32通道3×3步长为2的卷积,随后对这32通道特征图做两个方向的处理:一方面对其做2×2的Max pooling,使其保留大部分响应较强的特征信息;另一方面先对其做1×1的卷积,后再做32通道3×3步长为2的卷积,获得更深层的特征信息。最后对获得的特征图融合,Stem Block结构使用较少的计算有效地获得不同感受野的图像底层级特征,并将输入的尺寸降低了16倍。

图1 Stem Block结构简图

2.1.2 双通道特征整合

对于denselayer,采用所示的双通道结构,双通道结构借鉴了Inception的优点,使用不同大小的卷积核有利于多尺度特征的学习,相较于传统的单通道结构,双通道的特征提取结构具有更好的感受野。另外为了避免计算量的大幅提升,将每个通道的通道数缩减为之前的一半,在降低计算量的同时,损失的信息量也相对较少。

图2 Two-way Denselayers结构简图

2.1.3 网络结构

本文采用的网络结构如图3所示:输入图像尺寸为224×224,经过Stem Block结构后,提取了32通道尺寸为56×56的低层次特征图,后经过4个Dense Block结构不断地提取更高层级的特征图,最后为704通道尺寸为7×7的语义特征图,通过均值操作提取了704维的特征向量。

图3 网络结构简图

2.2 基于类间距离的交叉熵损失函数

对于分类问题,损失函数只需要衡量网络错分类导致的损失,如公式1,使用交叉熵损失函数度量错分类导致的损失是适用的。其中J(θ)表示损失值,m表示一次梯度下降训练中所参与的样本数量,xi,yi分别表示第i个样本的输入与标签的独热编码值(one-hot encode),则=1,其他为0,hθk(xi)表示第i个样本的分数为k的神经元的概率输出。

公式1交叉熵损失函数

而对于街景评分而言,错误的评分造成损失值不同,损失Jk(θ)应与模型输出分数和标签分数差k-si的绝对值成正相关,si表示第i个样本标签分数,因此在交叉熵的基础上修正损失函数为

公式2基于类间距离修正的交叉熵损失函数

2.3 基于课程学习策略的网络训练

传统的监督学习方法在学习这些不可靠样本时,会让模型向有偏差甚至错误的方向优化,效果将会大打折扣[12~14]。在含有大量不可靠标签的数据集里,可以把整个数据集分成一系列子集,将子集按标签可靠性进行排序,在网络的训练过程中,依据样本子集标签的可靠性顺序,由可靠到不可靠依次对网络进行训练,这种学习方法称为课程学习[15,17~18]。

对于训练集中的某一样本,如果它与标签为同一类别的大部分样本具有较高的相似度,那么则认为标签是相对可靠的,如果它与标签为同一类别的大部分样本具有较低的相似度,那么则认为标签是相对不可靠的。

步骤1 使用2.1.3小节的卷积神经网络提取所有训练样本的街景评分特征。

步骤2 对于标签同为L的m个训练样本,计算它们街景评分特征的相似度矩阵

步骤4 αi为第i个样本与同类别样本集相似度的衡量,随后以等分取阈值讲训练样本分为n类,αi越大则认为其越可靠,由此将训练样本划分为n个不同可靠性的训练子集。

3 准备工作

3.1 样本收集与评分体系建立

传统的街景环境评价方法主要使用了Naik提供的数据集[5],其中包涵了来自于美国各大城市的3214张街景图像;为了丰富街景图像来源,本文的street-score数据集图像还收集了来自国内不同城市的街景图像,包涵了来自中国5大城市的18672张街景图像。其评分含义为标注者对街景图像的综合感官评价,包括整洁度、舒适度、美感和安全感等主观感受。标签为0~10的11个等级的综合感官评价,其中0代表最低评价,10代表着最高评价。

回归算法中,常用指标MAE(Mean Absolutely Error)反映了模型评分与标签评分的平均绝对误差,MSE(Mean Squared Error)表达模型评分与标签评分的平均平方误差。对于街景评分,当网络输出评分与标签评分差不大于1,其输出可以视为正确,评分正确的概率记作ACC(Accuracy)。在下文的实验中,将ACC、MAE、MSE作为反映模型性能的指标。

3.2 街景图像评分流程

基于卷积神经网络的街景评分流程如下。

步骤1 使用Place365数据集[12]对2.1.3小节的卷积神经网络进行预训练,使用街景评分数据集训练网络,直至损失基本不变。

步骤2 使用2.3小节的方法将街景评分数据集划分为若干个训练子集。

步骤3 使用标签最可靠的训练子集对网络精调至损失基本不变。向训练集逐步加入相对不可靠的训练子集对网络进行训练,直至所有的训练子集均使用为止。

步骤4 对于任意街景图像,将其归一化后作为网络的输入,即可输出街景图像的评分。

图4 street-score数据集街景图像展示

4 实验分析

4.1 损失函数的对比实验

为验证基于类间距离的交叉熵损失函数有利于网络的街景评分性能,使用交叉熵损失函数对初始化的卷积神经训练30个epoch,学习率设为0.01,优化器为Adam。再用SGD对分类器训练20个ep⁃och,学习率设为0.0002,分类器的损失值基本保持不变。分别使用最大间隔交叉熵损失函数[12,16]、修正的损失函数重复上述步骤。

表1 两种损失函数的对比

表1为验证集各指标交叉验证5次的均值,实验表明,合适的损失度量将有利于模型拟合性能的提升,本文提出的损失函数使网络性能提升的幅度较为明显,street-score数据集上相较于交叉熵损失准确率提升了2.8%,相较于最大间隔交叉熵损失准确率提升了2.0%,平均绝对误差相较于交叉熵损失下降了11.8%,相较于最大间隔交叉熵损失下降了8.76%。

4.2 训练方法的对比实验

为了验证基于课程学习策略的网络训练方法使得网络能有更好的评分效果,论文作出如下对比实验。

1)监督学习方法,使用基于类间距离的交叉熵损失函数对初始化的卷积神经训练30个epoch,学习率设为0.01,优化器为Adam。再用SGD对分类器训练20个epoch,学习率设为0.0002,分类器的损失值基本保持不变。

2)课程学习方法,使用2.3小节的方法将训练集分为3个训练子集:“相对可靠”的训练子集、“一般可靠”的训练子集、“不可靠”的训练子集。使用“相对可靠”的训练子集对初始化的卷积神经训练20个epoch,学习率设为0.01,优化器为Adam。向训练集加入“一般可靠”的训练子集,用SGD对网络训练20个epoch,学习率设为0.0002。向训练集加入“不可靠”的训练子集,用SGD对网络训练20个epoch,学习率设为0.0002。

表2表明,基于课程学习的训练方法有利于网络街景评分性能的提升,提升的幅度较为明显,street-score数据集上准确率提升了6.4%,平均绝对误差下降了7.76%。

表2 两种训练方式的对比

4.3 方法对比

本文将与前人在街景评价的工作进行对比实验,参与对比有方法如下。

2014年,Naik N等提出,将Geometric Texton、GIST和Color Histograms等多特征融合,最后使用SVM做分类[5]。

2015年,Lorenzo Porzi等使用改进的Alexnet实现街景图像评分[7]。

2016年,Dubey A等使用Resnet结合Large-Margin Softmax loss实现街景图像评分[8]。

表3 街景评分方法对比

如表3所示,论文提出的方法相较于前人的方法具有最好的街景评分效果。相较于效果较好Dubey A的方法,准确率提升了9.7%,平均绝对误差下降了25.8%,本文的方法具有明显的提升。

图5 街景评分方法效果示意图

如图5所示,论文的街景评分方法相对于前人的方法有着更准确的评分效果,评分结果基本与标注者一致。

5 结语

本文在网络浅层使用Stem Block结构,优化了低层次特征提取效果;对于稠密层,采用双通道denselayer结构,相较于传统的单通道结构,双通道的特征提取结构具有更好的感受野[19~20]。论文还在交叉熵的基础上提出了基于类间距离度量的交叉熵损失函数,更加准确地衡量街景评分与标签分差带来的损失,从而使模型向更优的方向优化,使得平均绝对误差、均方误差均有下降。论文引用了课程学习的方法有效地解决了训练样本标签不可靠带来的模型训练偏离最优化方向问题。在模型训练过程中,让模型从可靠的数据集开始学习,再逐渐增加相对不可靠的数据集,使得模型的性能逐步提高。

猜你喜欢
子集街景卷积
基于全卷积神经网络的猪背膘厚快速准确测定
基于图像处理与卷积神经网络的零件识别
高一上学年期末综合演练
一种基于卷积神经网络的地磁基准图构建方法
基于3D-Winograd的快速卷积算法设计及FPGA实现
美术作品《青岛街景系列一》《漂泊》
“咔嚓”,定格的街景
城市街景
3D街景
集合的运算