赵启雯,徐 琨,徐 源
(长安大学信息工程学院,陕西 西安 710064)
在桌面级增强现实交互系统中,用户在纸张上书写或绘画进行交互,纸张是重要的交互介质。然而,由于纸张缺乏足够的纹理、色彩信息,对其进行快速、准确的检测是桌面级交互系统首先要解决的一个难点问题。本文提出一种基于整体嵌套边缘检测(Holistically-nested Edge Detection, HED[1])的快速纸张边缘检测方法,以实现对A4纸张这类无纹理或信纸等弱纹理目标的检测。
早期的边缘检测方法大多依据图像边缘梯度的变化确定边界,如Sobel算子[2-3]、Canny算子[4-5]。这类方法在简单场景中可以得到较好的效果,但当实际场景中存在背景、光照、其他非纸张边缘等干扰因素时,纸张边缘检测效果难以保证,鲁棒性不高。直线检测[6-7](Line Segment Detector, LSD)是一种局部检测区域自增长算法,利用合并像素来检测直线,无需参数调节,可以自动调节错检率,但在检测信纸时会受到纸张内部横线的干扰。
卷积神经网络(Convolutional Neural Networks, CNN)具有很强的特征学习能力,可以学习图像的高阶特征[8-10],对纸张边缘能够进行更鲁棒的检测。近年来涌现了很多基于卷积神经网络的边缘检测方法,如DeepContour[11]、HED[1]和更丰富卷积特征的边缘检测(Richer Convolution Features for edge detection, RCF)[12]。DeepContour网络利用深度卷积神经网络(Deep Convolutional Neural Network, DCNN)学习轮廓检测的判别特征,采用结构化森林作为深度特征的轮廓与非轮廓分类器。HED利用全卷积神经网络和深度监督网络,添加侧边深度监督层与融合层,实现了端到端的边缘检测[1]。Liu等人[12]提出了RCF网络,在侧边深度监督模块中融合了网络各层特征,充分利用了目标边缘的位置细节特征和空间语义特征。目前,HED和RCF是边缘检测中性能较好的2种模型,但由于这2种网络的主干网均基于VGG16,模型参数量在14.7 MB左右,检测速度较慢。在桌面增强交互系统中测试,纸张边缘检测的帧速率仅为20 FPS左右,难以满足实时性要求。同时在复杂桌面环境中,纸张边缘检测结果鲁棒性较差。
本文结合复杂桌面场景下纸张检测问题的精度和速度要求,提出一种基于HED网络的快速纸张边缘检测模型。本文主要工作如下:
1)将HED网络的主干网替换为一种轻量级网络MobileNetV2[13],加快边缘检测速度。
2)去除MobileNetV2结构中的后2个bottleneck模块、输出通道数较大的卷积层,减少模型参数数量,提高检测速度。
3)去除网络中的池化层,避免边缘细节信息过度丢失,以保留边缘位置信息,进一步提高检测精度。
4)在Stage0阶段添加一个步长为1的5×5卷积层,一方面获得原图尺寸的特征信息,另一方面增大感受野,加强网络初始阶段的特征提取能力。
5)制作了桌面应用场景的纸张数据集MPDS(Multi-sample Paper Data Set)。该数据集共有1500个样本,包括简单和复杂背景、正常光照和不均匀光照、平行拍摄和倾斜拍摄角度拍摄的多种类型纸张样本。
HED网络在VGG16各层的最后一个卷积输出端插入侧边输出层,在侧边输出层上进行深度监督,并将各侧边输出层的输出连接起来,实现高层边缘轮廓语义信息和低层边缘位置细节信息的融合,从而得到更加准确的边缘检测结果。为了进一步提高检测精度和加快检测速度,HED网络去掉了VGG16最后一个池化层和所有全连接层。此外,HED网络还定义了类平衡交叉熵损失函数,部分抵消了边缘和非边缘之间的不平衡。
HED网络在BSDS500数据集[14]上得到了0.782的ODS F-score,检测速度相较之前的DeepContour等CNN边缘检测算法快几个数量级。HED网络结构如图1所示。
图1 HED网络结构
MobileNetV2是一种面向便携移动应用的轻量级卷积神经网络,线性瓶颈、深度可分离卷积和逆残差块结构是其关键结构。
图2 逆残差块和残差块
由于深度可分离卷积并不能改变通道数,所以引入逆残差块结构扩展输入样本的维度,使得深度卷积可以在高维度特征层中提取特征。如图2所示,逆残差块结构与残差块结构[15]相反,先通过1×1逐点卷积的扩展层将输入样本转换成高维度数据后,通过深度卷积层提取特征,最后经过1×1逐点卷积的投影卷积层压缩通道维度。
为了避免在低维子空间使用Relu激活函数容易造成信息丢失或破坏的问题,MobileNetV2将逆残差结构中第二个逐点卷积层的ReLu6替换为线性激活函数,并将其称为线性瓶颈(Linear Bottleneck)。
MobileNetV2网络结构及参数如表1所示。一个bottleneck模块包含1×1逐点卷积的扩展层、深度卷积层和投影卷积层这3个部分,每阶段中的bottleneck模块重复n次,重复时保持输出通道数相同,且重复的模块中只有第一个模块卷积步长为2,其余均为1。除第一个bottleneck模块外,整个网络中使用相同的扩展因子6,即将中间扩展层的通道数扩展为输入通道的6倍。
表1 MobileNetV2的网络结构及参数
由于MobileNetV2模型参数量仅为3.5 MB,远远低于VGG16模型,因此,本文将MobileNetV2作为HED网络中的主干网进行特征提取。为了在保证检测精度的同时进一步加快检测速度,本文对主干网MobileNetV2进行了进一步改进。具体方法如下:
纸张边缘特征较少,随着卷积神经网络层数加深,一方面会消耗更多的计算资源,另一方面也会使纸张特征图分辨率降低,纸张边缘位置细节信息过度丢失,造成边缘模糊。因此,本文去除原有MobileNetV2中参数量较大的最后2个bottleneck模块;通道数越多,也会消耗越多的计算资源,本文去除原有MobileNetV2输出通道数较大的最后2个卷积层;另外,池化层易导致边缘的退化,所以本文去掉MobileNetV2网络中的池化层,得到更精细的边缘;最后为了获得原图尺寸的边缘特征信息,同时增强感受野,在网络初始阶段添加步长为1的5×5卷积层。
本文将改进后的MobileNetV2作为HED网络的主干网络,并将MobileNetV2作为HED主干网和改进后的MobileNetV2作为HED网络主干网分别标记为M-HED网络和MM-HED网络。本文提出的MM-HED网络结构如图3所示。
图3 MM-HED网络结构
边缘检测是一个像素级的二分类问题,HED网络为了抵消正、负样本的不平衡,提出了类平衡交叉熵损失函数。但在纸张边缘检测问题中,正、负样本在数量上存在更加明显的不均衡,因此本文使用一种新的损失函数[12],通过参数λ进一步平衡正、负样本。首先使用加权交叉熵作为每个像素的损失函数:
(1)
其中,P(X)是一个标准的Sigmoid激活函数,Xi表示神经网络的激活值,W表示网络中的所有学习参数,yi表示真值图中像素点是边缘点的概率,η是该点为争议点的临界阈值,α和β按照式(2)计算。
(2)
其中,|Y+|和|Y-|分别表示正、负样本的数量,λ是用来平衡正、负样本数量的参数。
然后对图像中每个像素以及每个阶段的损失进行累加,得到图像损失函数,表示为:
(3)
现有的如BSDS500等[14,16-18]公开边缘检测数据集都针对通用目标,应用于纸张检测上的效果并不理想,截至目前还没有合适的公开纸张数据集。所以,本文制作包含多种情况的纸张数据集MPDS,数据集中包括空白、有手写文字、有印刷体文字的A4纸和带横线的信纸等6种纸张类型,分别在简单桌面背景、复杂桌面背景、类直线物体干扰和不均匀光照等多种桌面环境下拍摄纸张样本。
目前MPDS共有1500份样本,每份样本包含分辨率为256×256的彩色纸张图和对应的5个纸张边缘真值。分别让5个标记者通过鼠标左键点击图像中纸张的4个顶点,调用OpenCV中鼠标事件的鼠标状态获取函数,结合纸张边缘的结构约束特性,依据手工标注的纸张边缘的4个顶点,确定纸张边缘的四边形,得到256×256的纸张边缘二值图。纸张边缘数据集MPDS中部分纸张样本如图4所示。
图4 MPDS样本示例
本文以Pytorch作为开发框架,使用NVIDIA GeForce GTX1660 GPU。训练过程的初始学习率为0.0005,epoch为300,动量momentum为0.9,衰减权重weight decay为0.0008,损失参数η和λ分别设置为0.6和1.1。网络模型的训练使用自适应矩估计(Adaptive moment estimation, Adam)优化器。使用MPDS数据集中1100张纸张图像作为训练集,400张纸张图像作为测试集进行实验。图5给出了HED、RCF、M-HED、MM-HED训练过程的目标损失函数随epoch的变化情况。可以看出,本文提出的MM-HED模型收敛速度最快,且损失小于HED、RCF和M-HED的损失值。
图5 各模型随epoch的损失变化
本文从主观观察和客观指标2个方面来评估模型性能,使用模型计算量、模型参数量[19]、固定轮廓阈值(Optimal Dataset Scale, ODS)、单图像最佳阈值(Optimal Image Scale, OIS)[20-21]和每秒传输帧数(Frames Per Second, FPS)[22]等多个评价标准作为评价边缘检测模型性能的客观评估指标[23]。
使用Canny算子、LSD算法、HED网络、RCF网络、M-HED网络和MM-HED网络分别检测复杂桌面背景的信纸、不均匀光照和类直线及文字干扰等不同桌面场景中的纸张,边缘检测结果如图6所示。可以看出,Canny算子、LSD等传统方法的检测结果易受背景、光照等因素的干扰。HED和RCF模型较传统方法有较好的检测效果,可以较大程度地排除信纸内部直线、类直线等干扰物的干扰,但输出的边缘图线条粗糙且模糊,在不均匀光照条件下纸张边缘丢失严重。MM-HED网络检测出的纸张线条最清晰,能够排除背景、非纸张物品等干扰因素,同时在光照较弱且不均匀的情况下,可以得到清晰的纸张边缘。
(a) 原图
(b) 真值图
(c) Canny
(d) LSD
(e) HED
(f) RCF
(g) M-HED
(h) MM-HED图6 边缘检测结果对比
表2给出了Canny算子、LSD直线检测、RCF网络、HED网络、M-HED网络和MM-HED这6种方法的参数量及在纸张数据集MPDS上的评估结果。由表2数据可以看出,RCF和HED各指标相差不大,RCF模型相比HED模型,参数量较大且FPS较低,所以本文选用HED网络作为研究的基本模型。以MobileNetV2为主干网的M-HED与HED网络相比,参数量和模型计算量分别降低了97.7%和71.4%,ODS和OIS分别提高了4.1和2.9个百分点。相较M-HED,MM-HED的计算量减小了0.12 GFLOPS、参数量减小为M-HED的1/4,帧速率由35.73 FPS提高到42.68 FPS,在显著减少计算量和参数量的同时,检测精度也有了进一步的提高。
表2 各种方法性能指标
本文提出了一种基于HED网络的快速纸张边缘检测模型。该模型采用MobileNetV2作为主干网,并对主干网进行进一步改进,包括去除池化层、减少线性瓶颈块、去除输出通道数较大的卷积层,在初始阶段增大卷积感受野等。使用自采的纸张数据集MPDS中对各种复杂场景的纸张图像进行主观和客观评估。实验结果表明,本文提出的MM-HED网络模型检测精度指标ODS和OIS分别比HED网络提高了4.6和3.3个百分点,能够有效提取完整和准确的纸张边缘,模型大小仅为1 MB,检测速度达到42.68 FPS,可以满足桌面增强现实交互系统的实时性和准确性要求。