基于边缘检测的快速纸张检测方法*
2022-10-28赵启雯柳有权
徐 琨,赵启雯,徐 源,柳有权
(长安大学信息工程学院,陕西 西安 710021)
1 引言
笔式交互是Post-WIMP(Post-Window Icon Menu Pointing)时代人机交互的研究重点。早期的笔式交互需要数位板及配套电子笔[1],额外的硬件增加了用户成本,不仅影响了用户体验,也限制了使用场景。目前主流的笔式交互方法是在纸张上设计特定背景图案或者使用特定标签卡片。这种方式降低了硬件成本,改善了用户体验,但强化了对纸张的要求[2]。文献[3]提出了基于普通纸笔的投影交互方法,该方法仅需要普通纸笔就可以与计算机进行交互,交互信息的采集和交互效果的呈现分别由摄像头和投影仪完成,在几乎不增加成本的情况下,能够为用户提供自然、舒适和高效的交互体验[3]。
如何对纸张进行快速、有效的检测是普通纸笔交互方式首先要解决的一个难点问题。在复杂桌面场景中,纸张边缘是相对稳定的显著特征。本文采用边缘检测方法获得A4纸或者信纸等普通纸张的边缘,进而提取仅含有纸张的图像,为普通纸笔交互提供了交互基础。
早期的边缘检测方法大多依据图像边缘梯度的变化确定边界,如Sobel算子[4]和Canny算子[5]。这类方法在简单场景中效果较好,但当实际场景中存在背景、光照和其他非纸张边缘等干扰因素时,难以保证纸张边缘检测的高鲁棒性。直线分割检测LSD(Line Segment Detector)方法[6]在梯度幅值和梯度角度特征基础上采用聚类方法,在线性时间内可以得到亚像素级的边缘检测精度,但在检测信纸时会受到纸张内部横线、纸张上文字等非纸张边缘的干扰。整体嵌套边缘检测HED(Holistically-Nested Edge Detection)网络[7]使用多尺度和多层级特征,在侧边输出层上进行深度监督,融合不同阶段的特征,最终获得边缘图,在BSDS500数据集[8]上测试,固定轮廓阈值ODS(Optimal Dataset Scale)达到了0.782,该方法是目前广泛使用的一种边缘检测方法。
本文在上述工作的基础上,同时考虑普通纸笔交互方式对纸张检测实时性和鲁棒性的要求,提出了一种基于边缘检测的快速纸张检测方法。在边缘检测阶段,提出了跨层多特征融合的快速纸张边缘检测方法,实现了对A4纸张这类无纹理或者信纸等弱纹理目标边缘的快速、准确检测。在纸张提取阶段,提出了基于纸张边缘结构约束的纸张提取方法,在各种复杂桌面背景及遮挡情况下,均可检测出仅包含纸张的图像。
2 跨层特征融合的快速纸张边缘检测
HED网络的主干网基于VGG16,参数量在14.7 MB左右,检测速度较慢。在普通纸笔交互系统中测试,纸张边缘检测的帧速率仅约20 fps,难以满足实时性要求。同时在复杂桌面环境中,纸张边缘检测结果鲁棒性较差。
本文从提高边缘检测速度和增强网络提取特征能力2方面对HED网络的主干网和侧边输出层进行改进,构建了跨层特征融合的快速纸张边缘检测网络。网络分为主干网、多特征深度监督模块MDM(Multi-feature Deeply-supervised Module)、跨层特征融合模块CFM(Cross-layer Fusion Module)3部分,其结构如图1所示。其中,LB(Linear Bottleneck)表示线性瓶颈逆残差块,B-ECA(Bottleneck-Efficient Channel Attention)表示加入高效通道注意力机制的LB。
2.1 网络结构
2.1.1 主干网
主干网共有7个阶段,用于提取桌面纸张图像的显著性特征。Stage1和Stage2分别是一个5×5卷积层和一个3×3卷积层,Stage3~Stage7的第一层均为一个LB块,之后是数量不等的B-ECA块。
(1)LB块。
LB块在深度可分离卷积中加入了逆残差结构和线性瓶颈结构,其结构如图2所示。深度可分离卷积将传统的卷积分解为空间维度的3×3逐层卷积和通道维度的1×1逐点卷积[9]。为了弥补逐层卷积仅能在低维空间提取特征的不足,线性瓶颈逆残差块在逐层卷积前添加1×1逐点卷积即扩展卷积层,将输入样本转换成高维数据;再使用逐层卷积即深度卷积层在高维特征层中提取特征;最后经过1×1逐点卷积的投影卷积层压缩通道维度。此外,线性瓶颈逆残差块还在投影卷积层使用Linear线性激活函数,避免在低维子空间使用ReLU激活函数易产生信息丢失或破坏的不足。逆残差结构使网络可以在更高的维度提取特征,并有效解决深度可分离卷积引起的梯度消失问题。
(2)B-ECA块。
主干网不同通道的特征对于边缘检测的贡献度不尽相同,图3给出了HED网络主干网第1阶段通道3和通道7的特征映射图。可以看出,通道3的特征图排除了背景中圆形边缘的干扰,而在通道7的特征图中纸张区域的区分度降低。本文在主干网络部分加入通道注意力机制,增加了模型对重要通道特征的关注程度,提高了边缘检测的准确率。
SE(Squeeze-and-Excitation)结构是一种常用的通道注意力机制的实现方法。其激励操作使用一个全连接层和Sigmoid激活函数将全局均值池化GAP(Global Average Pooling)的输出结果转换为C个特征通道的特征权值[10]。在增大显著特征权重的同时,也增加了网络参数量,降低了检测速度。高效通道注意力ECA(Efficient Channel Attention)将SE结构中的全连接跨通道的特征权重计算方法改为局部通道一维卷积权重计算方法,并自适应选择一维卷积核尺寸,有效地减少了计算量,降低了复杂度[11]。SE结构和ECA结构如图4所示,其中r表示维度减小比例。
本文将ECA结构添加至LB块中的投影卷积层之前,构成B-ECA块。在不显著增加计算成本和参数量的前提下,在高维空间中加强重要特征通道在模型中的显著度,抑制无效特征。本文提出的B-ECA块结构如图5所示。
2.1.2 多特征深度监督模块
HED网络侧边输出层只对每个阶段的最后一个卷积输出的特征进行融合,忽略了网络各阶段每个中间层获得的丰富特征。本文在主干网Stage4~Stage7的每个层后均添加特征深度监督层,连接卷积核大小为1×1的卷积,然后按阶段加和,再经过卷积核大小为1×1且输出通道为1的卷积进行特征通道降维,获得本阶段的融合特征。多特征深度监督模块可以同时保留主干网各层提取的边缘整体信息和细节信息。
2.1.3 跨层特征融合模块
特征提取的高阶段特征含有更多的语义信息,但丢失了边缘的空间信息,纸张边缘较粗;低阶段特征包含更多的边缘空间细节信息,但包含了桌面及纸张内部的纹理特征以及其他非边缘干扰信息。图6给出了本文主干网Stage2~Stage7多特征深度监督模块的输出特征图。借鉴特征金字塔网络中自上而下逐层融合的思想[12],本文将主干网络高阶段特征经过深度监督融合后,对其进行上采样,并回传给相邻的较低阶段,进行深度监督输出加和。在高阶段的整体边缘信息的监督下,加强低阶段边缘的准确位置信息,避免边缘模糊的问题。
2.2 网络损失函数
本文提出的多样本纸张数据集MPDS(Multi-sample Paper Data Set)中,每个样本对应一幅真值边缘图,不存在边缘争议点。因此,本文使用无争议点的加权交叉熵损失函数作为每个像素的损失函数,如式(1)所示:
(1)
(2)
(3)
其中,P(·)是标准Sigmoid激活函数;Xi表示图像中第i个像素点的激活值;W表示网络中的所有学习参数;yi表示真值图中第i个像素点是边缘点的概率;α和β是权系数;|Y+|和|Y-|分别表示正负样本的数量;λ是用来平衡正负样本数量的参数,这里设为1.5。
对于像素总数为N的图像,总损失函数由阶段输出损失lstage和融合输出损失lfuse组成,如式(4)所示:
(4)
3 基于纸张结构约束的纸张提取
为了在桌面背景下的纸张图像中提取仅含有纸张的图像,本文提出了基于纸张结构约束的纸张提取方法。采用改进的非极大值抑制NMS(Non-Maximum Suppression)细化算法对纸张边缘概率灰度图进行细化;然后进行二值化,并使用累积概率Hough直线检测[13]得到边缘直线表达式;利用纸张边缘长度约束条件保留长度大于30的线段,剔除过短线段;再结合纸张边缘的结构特征,提取纸张顶点,恢复被遮挡的纸张顶点;最后在纸张原图像中进行透视变换,提取仅含有纸张的图像。
3.1 改进的非极大值抑制
边缘检测网络输出的是边缘概率图,还需要进行边缘细化,以获得更加精确的纸张边缘。NMS细化算法由Canny提出,是常用的一种边缘细化算法。为了避免边缘断裂、毛刺和双边缘问题,本文提出了一种改进的NMS边缘细化算法。
NMS细化算法仅在0,π/4,π/2和π3/4共4个梯度方向上比较像素的梯度幅值,在边缘方向发生较大改变的位置,易产生毛刺。本文采用插值方法估计出梯度分量方向上的灰度值。具体描述如下所示:
将像素点C在x和y方向上的梯度分量分别记为Gx和Gy,g1,g2,…,g8为C点的8个邻域点。若|Gy|>|Gx|,且Gx和Gy符号相同,如图7a所示,则梯度方向上非整数点d1和d2点的值由g1、g2、g7和g8点的值通过双线性插值确定;若|Gy|>|Gx|,且Gx和Gy符号不同,如图7b所示,则d1和d2点的值由g2、g3、g6和g7点的值通过双线性插值确定。若|Gx|>|Gy|,也可通过C点的八邻域像素值插值C点像素值。
边缘概率图灰度化后,边缘及邻域灰度值均接近255,真实边缘位置像素点的梯度幅值很小,而边缘外侧像素的梯度幅值较大。使用梯度幅值进行NMS,易产生双边缘现象。为解决这一问题,本文对每一个像素点,将比较像素梯度幅值更改为比较灰度值,确定该点是否为极值点。同时在灰度值比较时保留灰度值大于250的所有像素,避免实际边缘像素的漏检。
3.2 纸张顶点提取
使用一般式表示累计概率Hough直线检测算法得到的线段,设O0(x0,y0)和O1(x1,y1),O2(x2,y2)和O3(x3,y3)分别为直线L1和L2上的2点,A1=y1-y0,B1=x0-x1,C1=x1y0-x0y1,A2=y3-y2,B2=x2-x3,C2=x3y2-x2y3,取m=A1×B2-A2×B1。若m为0,则L1和L2无交点;反之,直线L1和L2的交点P(x,y)的坐标如式(5)所示:
(5)
对于检测出的直线两两进行交点计算,最终获得纸张的4个顶点,并在遮挡情况下恢复出所有顶点。
3.3 纸张提取
本文利用式(6)将纸张原图像投影到只含有纸张的投影图像中,透视变换矩阵A根据纸张图像中的4个顶点Pi(xi,yi)(i=1,2,3,4)和透视变换后对应顶点Mi(x′i,y′i)(i=1,2,3,4)确定。透视变换过程如图8所示。
(6)
4 实验与分析
本文实验均是在CPU为Intel(R)Core(TM)i7-8700,内存为16 GB,显卡为NVIDIA GeForce GTX 1660 6 GB的硬件环境下,使用Python3.7完成的。
训练过程的初始学习率为0.001,epoch为300,动量为0.9,衰减权重为0.000 8。网络模型的训练使用自适应矩估计Adam(Adaptive moment estimation)优化器。
4.1 数据集
边缘检测常用数据集包括BSDS500[8]、Pascal-VOC[14]等,这些数据集都是针对通用目标而构建的,目前还没有公开的纸张边缘数据集。本文面向普通纸笔交互系统,构建了桌面场景下的纸张数据集MPDS。在简单桌面背景、复杂桌面背景、类直线物体干扰、不均匀光照和纸张被遮挡等多种桌面环境下,拍摄A4纸、信纸、彩色纸等多种纸张类型的空白与非空白纸张样本。采用随机翻转、旋转、添加噪声以及亮度、对比度和饱和度调整等方式进行数据集扩展。目前MPDS共有1 500个样本,样本尺寸包括400×300和300×400 2种,以1∶4的比例随机分配组成测试集和训练集。
利用纸张的结构约束特性获得真值,即标记者通过鼠标点击图像中纸张的4个顶点,调用OpenCV中鼠标事件的鼠标状态获取函数,获得纸张边缘的4个顶点位置,最终得到纸张边缘真值图,真值图以.mat文件存储。
4.2 纸张边缘检测方法性能实验
本文从主观观察和客观指标2方面来评估纸张边缘检测方法的性能。图9给出了分别使用Canny算子[5]、Hough直线检测[13]、LSD直线检测[6]、RCF(Richer Convolutional Features for edge detection)[15]、HED[7]和本文方法在复杂桌面背景、类直线物体干扰、不均匀光照、手写文字干扰等多种情况下的边缘检测结果。Canny算子和LSD方法在桌面背景复杂或有类直线干扰物的桌面场景中易发生误检,受噪声干扰较大;Hough直线检测方法相比前2种方法排除了一部分噪声的干扰,但纸张边缘存在漏检;HED和RCF较前3种传统边缘检测方法有更好的检测效果,可以一定程度地排除信纸内部直线、类直线等干扰物的干扰,但输出边缘较粗且模糊,在不均匀光照条件下纸张边缘漏检严重。
本文使用参数量、固定轮廓阈值ODS、单图像最佳阈值OIS(Optimal Image Scale)[16]和帧速率等指标评价边缘检测方法的性能,各方法性能指标如表1所示。传统纸张边缘检测方法的ODS和OIS值较低,准确率过低。相对于HED网络,本文方法的参数量减少了93.1%,ODS和OIS分别提高了8.1%和6.6%,帧速率从22.08 fps提高到了39.02 fps,在显著提高检测速度的同时,检测精度也有了一定程度的提高。
Table 1 Performance indicators of various methods
4.3 纸张边缘检测网络内部结构性能实验
本节进一步验证了本文跨层特征融合的快速纸张边缘检测网络各结构的有效性。将HED主干网中各阶段加入LB块的网络记作HED-1,将在HED-1主干网中添加B-ECA块的网络记作HED-2,将HED-2中的侧边输出改为MDM的网络记作HED-3,在HED-3中加入CFM的网络即为本文方法,各网络的结构参数如表2所示。
图10给出了相关实验结果图,通过对HED主干网和侧边输出层2方面的改进,纸张检测结果逐渐排除了复杂背景、类纸张边缘和光照的干扰,本文网络边缘检测结果最好,排除了各类噪声的干扰,且在光照不均匀的情况下也有着较好的检测结果,纸张边缘清晰、完整。
表3给出了上述各网络的性能指标值。可以看出,与HED网络相比,HED-1将参数量降低至1.00 MB,帧速率则由22.08 fps提高到42.68 fps,同时检测精度也有一定程度的提高;HED-2网络将ODS和OIS指标分别提高至0.874和0.883,相比HED-1仅增加0.01 MB的参数量,检测速度仅降低0.95 fps;HED-3进一步提高了检测精度,与HED-2相比,ODS和OIS分别提高了1.4%和1.9%;本文提出的网络检测效果最好,实现了检测精度和检测速度的平衡。
Table 2 Parameters of each network
Table 3 Performance index comparison of different networks
4.4 纸张提取方法性能实验
图11给出了各种桌面背景下的纸张提取实验结果图。可以看出,改进的NMS算法可以得到完整且光滑的细化边缘。在复杂背景和光照不均匀情况下,本文的纸张提取方法均可以获得完整的纸张图像,如图11e所示。
5 结束语
将HED边缘检测网络应用于普通纸笔交互方式中的纸张检测中,实时性和鲁棒性难以满足要求。针对上述不足,本文在HED网络基础上,提出了一种跨层特征融合的快速纸张边缘检测方法,在减少运算量的同时,提高了边缘检测精度。为了获得只含有纸张的图像,本文还提出了基于纸张结构约束的纸张图像提取方法,该方法可以在复杂桌面背景、不均匀光照及遮挡等情况下,得到完整的纸张图像,为后续基于纸张介质的交互提供交互基础。