基于CNN的十字像中心检测

2019-02-21 09:32武华敏杨漠雨黄晓雪吉才全王炜杰张荣福陈楠
光学仪器 2019年5期
关键词:卷积神经网络图像增强

武华敏 杨漠雨 黄晓雪 吉才全 王炜杰 张荣福 陈楠

摘要:十字线中心检测是反射法测量透镜中心偏的重要组成部分,十字中心的检测精度决定了透镜中心偏的测量精度。针对边缘不规则、对比度差、信噪比低的图像,提出了基于深度卷积神经网络的十字线中心检测算法。算法的思想是,卷积神经网络可以在一定程度上解决传统算法局限于提取十字像边缘直线和角点特征的问题,实现对十字像整体特征的识别与定位,这可以相对减小图像噪声对十字像中心定位的影响,从而实现在图像质量比较差的情况下对十字像中心准确定位。实验结果表明,提出的算法能够在图像边缘不规则、对比度差、信噪比低等的条件下比较精确得到十字线中心点。

关键词:十字线中心;卷积神经网络;图像标注;图像增强

中图分类号:TP391 文献标志码:A

引言

随着高精度光学测量设备的快速发展,透镜作为光学系统的主要零部件,对其精度要求也越来越高。但是由于生产条件和工艺的限制,在透镜加工过程中,不可避免的会产生一定缺陷,进而破坏了镜面的共轴性,产生中心偏。中心偏会导致光学测量系统成像质量的下降。

基于反射式测量的透镜中心偏检测仪是将光源产生的光线聚焦在被测镜面曲率半径中心,然后反射到CCD上得到一个清晰的十字像,能否精确检测十字像中心点对透镜中心偏测量仪的测量精度有着重要的影响。目前,偏心仪在测量透镜中心偏时导致测量误差比较大的情况主要有三个方面:一是偏心仪设备采用的测量镜头个数有限,对于曲率半径比较大的被测镜片来说,在测量中心偏时,可能在CCD上只能得到一个比较模糊的十字像;二是在被测镜片直径较大时,CCD上所呈十字像总是比较宽且边缘不规则;三是由于镜片表面质量比较差,CCD上所呈十字像往往信噪比低、对比度差。

针对上述问题,传统的基于十字像的几何结构的检测算法,如直线拟合、形态学腐蚀、模板匹配、霍夫变换等往往有一定的局限性。对于边缘不规则的十字像,采用直线拟合算法得到的结果就会有比较大的偏差;对于信噪比较低的十字像,采用形态学腐蚀的方法就无法检测到精确的中心点。因此,本文提出了一种基于卷积神经网络的十字像中心定位算法。由于目前没有相关的数据集和模型,本文从十字像关键点标注方法的设计、十字像数据集的构建、模型评价标准的设定、模型结构的设计等四个方面来研究,在对数据集进行训练以及模型结构改进后,得到了在边缘不规则、对比度差、信噪比低等成像条件下的十字像中心准确定位模型。

1卷积神经网络理论

神经元是组成一个神经网络的基本结构,一个神经元主要由以下及比分部分构成,如图1所示,假设x1,…,xm是感知器的m个输入信号,6是偏置,W1,W2,…,Wm是感知神经元输入对应的权重,用权值对输入进行加权求和并加上偏置,得到诱导局部域(z),再用激活函数限制诱导局部域输出的振幅。最终得到的输出的数学计算公式可表示为:

式中:A为神经元的输出;f为激活函数,b为偏置。

卷积神经网络在语音识别、人脸识别、通用物体识别等多个方向得到应用,受到越来越多的重视。卷积神经网络,不需要对原始图像进行复杂的前期预处理以及特征提取,原始图像可以直接作为输入,避免了复杂的数据预处理和特征提取过程,由此在图像识别等领域得到了非常广泛的应用。卷积神经网络通过局部感受野、权值共享和池化来识别位移、旋转和缩放不变性。通过局部感受野,神经网络可以提取图像的视觉特征;权值共享相对于全连接神经网络来说只需要很少的参数就能完成对数据的训练;池化层可以大大减少整个网络的计算量,并且在一定程度上可以防止过拟合。卷积神经网络是一种多层的有监督神经网络,包括输入层、隐含层(卷积层、池化层)、全连接层、输出层等,通过反向传播算法来优化网络,更新并求解未知参数。

1.1卷积层

卷积操作如图2所示。在一个卷积层,对于特征图来说,其中每一个神经元与前一层的局部感受野相对应,感受野与一个可学习的卷积核进行卷积运算,经过卷积运算后可以得到局部特征图。卷积层的计算公式如下:

1.3反向传播和参数更新

在神經网络开始训练时,初始的权值都会被赋予较小的随机数。因此,在卷积神经网络训练的初始时期,网络的损失值较大,效果无法体现,通过神经网络的反向传播算法不断更新参数,网络也在不断的优化,最终网络收敛,达到最优的分类或回归目标。网络权值的更新公式如下:

2实验过程及结果分析

2.1构建十字像中心检测数据集

本文数据集包含的图片是从基于反射法搭建的偏心仪测量平台上获取。相机拍摄到的图片分辨率统一为1920×1200。在图像数据集的获取与选择过程中,主要考虑以下几方面的因素。

(1)测量镜头焦点距被测镜面曲率半径中心的远近。在透镜中心偏测量过程中,对于大多数中心偏测量设备来说,设备的测量范围往往是有限的,原因在于测量镜头焦距大小是有限的。根据中心偏测量原理可知,当测量镜头焦点和被测镜面曲率半径中心重合时,才能得到清晰的十字像,进而测量透镜中心偏,所以一般只能测量曲率半径小于测量镜头焦距的镜片。对于曲率半径大于测量镜头焦距的被测镜面来说,测量头焦点只能移动到被测镜面曲率半径中心附近,这种情况下会得到一个模糊十字像。因此,为了实现在模糊十字像下的准确定位,本实验通过采集在各种情况下所呈模糊十字像,加入训练集,通过基于CNN的十字像中心定位模型训练,来精确预测这些十字像的中心点。如图4所示为测量镜头焦点距被测镜面曲率半径中心不同远近情况下采集到的十字像,从左至右表示测量镜头焦点距被测镜面曲率半径中心越来越远。

(2)镜片表面质量差。在进行中心偏测量时,由于镜片表面质量比较差,反射回的光线经十字划线板后在CCD上所呈十字像会非常模糊,图像背景和十字像的对比度也要低很多。在这种条件下,用传统十字像中心定位算法无法有效拟合出十字像边缘,也无法对十字像角点进行有效检测。因此,将此类图片加入到样本集中,经过神经网络模型训练,可以提升针对此类图片的检测精度。采集的部分图片如图5所示。

(3)不同的角度。在实际的测量过程中,偏心仪测量设备的光源和相机的抖动很容易造成十字像的偏转,将各种不同旋转角度的图像采集作为样本,可以显著地提高深度学习算法的鲁棒性,同时也增加了样本集的多样性,图5展示了不同角度的图片。

(4)图片差异性。在对所拍摄图片挑选过程中,充分考虑各个图片之间的差异性。采集了22种不同规格的镜片在不同条件下所呈十字像。在一定程度上,这可以避免数据的重叠,同时降低训练的难度,避免计算资源的浪费,提升深度学习算法的泛化性能。

综合考虑以上各种因素,共拍摄了882张十字像图片。由于图像样本在采集过程中充分考虑了镜片类型、光源、相机抖动、镜面质量、角度等因素,使得整个样本集中包含的图片在宽度、清晰度、倾斜度、颜色、背景等方面都具备了较大的差异性。从总体上看,本章采集的图像样本比较有代表性,能够有效反应中心偏测量过程中十字像各方面的特征。

2.2图像预处理

本实验对采集到的原图像做预处理的目的是突出十字像的特征,即增强十字像与背景的对比度,同时处理一些常见的图像噪声,提升卷积神经网络的泛化性能,减少噪声带来的干扰。如图6所示,十字像十分模糊,相对于背景的对比度比较低,不利于卷积神经网络的识别,可能会被视为异常从而影响卷积神经网络模型的性能,因此,通过预处理来增强十字像的信号。通过观察发现,图像中的十字像都呈现淡蓝色,对于模糊的图像,首先将RGB图像中的蓝色通道的图像提取出来作为初始的灰度图,接着对该灰度图进行滤波、平滑、去噪等操作,进一步得到初步处理后的图像。经过上述预处理后,可以看到中间图片中的十字像相对于背景还是比较模糊。对此,可以采用灰度变换的方法来提升图像的对比度。灰度变换中的幂变换和对数变换都可以实现图像灰度级的扩展和压缩,除此之外,对数变换还有一个性质,它可以压缩图像灰度值变化范围较大的图像的动态范围。对数变换的计算公式如下:

s=c×lg(1+r)(6)式中:c表示一个常数;r表示图像中某个像素的灰度值;s表示图像中某像素经过对数变换后得到的灰度值。从式中可以看出,对数变换可以将原图像中范围较宽的的高灰度值区间映射到范围较窄的灰度区间,同时将范围较窄的低灰度值映射到范围较宽的灰度区间。图6(c)经过灰度变换后的图像相对于图6(a)没有经过灰度变换的图像,十字像变得更加清晰,和背景的对比度也显著提高了。

2.3图像的标注方法

对于十字像中心检测的任务,对十字像的标注有三种方案可选择,如图7所示。

(1)中心点标注。利用halcon软件读取图像的中心点并做亚像素级别的标注。人工找出十字像的中心区域,通常情况下会描绘出一个矩形区域,根据矩形区域的四个顶点坐标,可以求得精确到0.01个像素级的十字像中心坐标及样本的标签,记为[x,y],作为算法的测试和训练数据。

(2)角点标注。利用halcon软件读取图像后,找到十字像的四个角点坐标。在角点标注的过程中,图像放大后十字像的交叉处并不是严格意义上的垂直,而是呈弧形,这给角点标注带来了比较大的困难。通中心点标注相似,在交叉处选取一个小的矩形区域,通过求解矩形区域的中心点得4个角点的坐标来作为样本的标签使用,从左上角第1个角点坐标起,按顺时针方向,可以得到一个样本的标签为4个标点,记为[x1,y1,x2,y2,x3,y3,x4,y4]。

(3)十字交叉线标注。参考骨骼关键点检测的标注方法,对十字线直接进行标注关键点,进而拟合两条通过十字像中心的两条交叉线。此标注方法不仅可以很好地体现十字像的特征,同时标注的关键点位置相对于整幅图像的偏移量也不大,提供给神经网络训练的监督信息也更多,在实际的学习过程中更容易回归,网络的收敛速度也会加快。该方法同样使用halcon软件进行人工标注,每条交叉线上标注四个点加上中心点一共9个点。与前两种标注方法类似,需要实现精确到0.1个像素级的标注,最终通过两条拟合的交叉线求取十字像中心点的精度可达到0.01个像素级的检测精度。

2.4数据集的划分

在对十字像樣本标注完成之后,需要对得到的数据集进行划分。划分主要分为测试集和训练集两类,没有设置验证集。常见的数据集的划分方法主要有交叉验证法和留出法等。在深度学习中,测试集一般从样本集的整个样本空间上独立同分布采样得到,同时测试集在选取的同时要注意与测试集互斥。对于采样,常见的采样方式主要有随机采样、分层采样、等距采样和整群采样等。

在数据集的划分方面,根据以往的经验,将采集到的样本集分为训练集和测试集,按照8:2的比例来划分数据集。在数据划分的过程中,为了避免引入额外的偏差,同时保证测试集和训练集在数据分布上保持一致性,本实验采用分层抽样和等距抽样相结合的采样办法,从原始样本集中采样得到训练集和测试集。

2.5网络结构的设计

本实验中提出的用于检测十字像中心的卷积神经网络结构如图8所示,共包含四组卷积池化层,每组包含两个卷积层和一个最大池化层,除此之外,还包含一组全连接层用于模型的输出。输入层是从经过图像预处理之后的原始图像经过下采样得到的大小为243x243的灰度图。第一组卷积池化层首先采用8个9×9大小的卷积核进行卷积运算,接着是3×3的最大池化之后输出8个不同的特征图进入下一组卷积池化层。前三组卷积池化层都是采用9×9大小的卷积核参与卷积运算,在第4组卷积池化层中使用一组5×5的卷积核,主要是参考了骨骼关键点检测中在最后的卷积层中使用了5×5的卷积核。

本文将十字像中心检测问题转化为十字像关键点的检测问题。同骨骼关键点和人脸关键点检测类似,通过标记图像中的关键点即特征点来构建训练集和测试集。关键点的检测问题归根结底来说就是一个回归问题,关键点的位置用图像坐标系中的对应坐标来表征,而关键点的位置坐标是连续的,不是一个分类问题。对于回归问题来说,常用的评价标准有均方误差、平均绝对误差、解释方差和决定系数。本文采用绝对误差损失作为卷积神经网络模型的损失函数,即模型的评价标准。绝对误差的公式如下:

2.6实验结果及分析

在深度学习模型的调试过程中,为了调整网络结构,提升模型的性能,需要不断对学习率、hum features、卷积核的大小等超参数进行交叉验证,以找到最优的超参数,同时需要不断的优化网络结构来提升模型的整体性能。因此,为了方便调试网络结构以及寻找模型的最优化参数,需要将计算图进行可视化。本实验是基于Tensor-Flow框架实现的卷积神经网络模型,Tensor-Flow框架中提供了一个Tensorboard可视化工具,可以在TensorFlow的Graph中显示各种指标随着迭代步数或者运行时间的变化趋势。

Tensorboard可视化工具可以把程序运行的信息通过图表的形式展现出来,比如标量图可以显示回归损失、分类准确率、学习率、权重和偏置随程序迭代步数的变化情况。通过权重的变化可以了解到是否有梯度消失和梯度爆炸等情况,通过损失值的变化趋势可以了解到模型是否收敛。因此从这些参数的变化情况可以了解到每一层网络的训练情况,从而对相应的参数做出调整和优化网络结构。

如图9所示为本实验的深度学习算法模型在中心点标注、角点标注、直线标注三种不同的标注方式下的模型损失随迭代步数的变化趋势。其中纵坐标表示模型在训练集上的回归损失,横坐标表示模型的训练步数。从图9(a)中可以看出,基于中心点标注的损失值在模型迭代的过程中随机跳动,无法收敛。原因在于在一幅243×243的图片上只标注一个中心点坐标作为样本的标签,即直接将十字像的中心点作为关键点,作为卷积神经网络的回归目标,这种标注方式本质上需要回归的是每一个关键点相对于整个图片的offset,而长距离的offset在实际的模型训练中难以收敛,误差很大,同时在模型训练的过程中提供的监督信息较少,导致整个网络的收敛速度变慢。图9(b)是基于角点标注的损失值随迭代步数的变化情况,可以看出,相对于中心点标注,模型在一定程度上收敛了,原因在于四个角点处于十字交叉线的位置,可以在一定程度上表征十字交叉线的特征点,但是图片中的十字交叉线最终还是处于波动状态,损失值无法继续减小并保持稳定,原因还是相对于整幅图片的offset较大导致模型无法稳定收敛,最终结果误差较大。图9(c)十字交叉线标注相对于前两种标注方式来讲,共標注了9个点的位置信息,这就为模型的训练提供了更多的监督信息,同时也可以比较好的表征十字叉线的特征信息,因此模型在此训练集上训练可以稳定的收敛,得到比较好的预测结果。

实验基于3种标注方式的数据集分别进行了模型训练,最终采用十字交叉线标注的图像作为深度学习算法模型的训练集和测试集。在此基础上不断对模型进行优化,基于深度学习关键点检测收敛相对较难的问题,添加了指数衰减使学习率随着迭代步数的增加逐渐减小,有利于模型收敛。同时在卷积层添加了Dropout正则化和L2正则来避免算法模型的过拟合,以增加模型的泛化性能。

如图10所示,实验采用五折交叉验证来评估模型的性能。将原始数据集D共882张图片分为5个子数据集D1、D2、D3、D4、D5,每次选取4个子数据集进行训练,剩余1个子数据集作为测试数据集使用,上述过程重复5次可以得到5个测试结果,测试结果为对应模型在测试集上的绝对误差损失值,这5个测试结果可以反应模型对十字像关键点预测的有效性和模型的泛化性能。交叉验证测试数据集总共包含176张图片,在模型训练完成之后,对训练集的每张图片分别进行预测,每张图片的预测结果为9个关键点,共18个坐标值,对这9个关键点进行直线拟合可以得到两条直线方程,计算两条直线的交点即可得到各个图片的中心点位置坐标。

经过5次训练和预测,依次得到每一次训练后模型对测试集的预测结果,即绝对误差损失值的大小。如图11所示,横坐标值为第几次训练,纵坐标值为模型在测试集176张图片上的绝对误差损失,根据式(7)计算得出。5次结果的损失平均值为431.995 4,模型对每一张图片中心点坐标(x,y)的预测值和标注值平均相差1.23个像素值。考虑到测试集176张图片中包含各种不同类型的图像,同时模型对清晰十字像的预测误差比较小,那么模型对边缘不规则、模糊、信噪比低的图像的预测误差应在2-3个像素,这在成像质量比较差的情况下对十字像中心进行定位,和传统算法做对比,误差在可接受范围内。

从测试集中选取4张不同类型的图片作为待测图片,包含清晰十字像、边缘不规则十字像、模糊十字像、信噪比低十字像。每张图片经过已建立好的卷积神经网络模型输出后得到9个关键点的18个坐标值,将预测得到的关键点坐标标记在原图像上,得到图12(a)、(c)、(e)、(g)所示的结果。对每张图像上的9个关键点进行直线拟合,得到两条直线方程,然后求两条直线的交点,最终得到该十字线的中心点坐标。将计算的中心点坐标标记在在原图上,得到图12(b)、(d)、(f)、(h)所示的结果。

本文选取了两种传统算法,SUSAN算法和直线拟合算法对图12中4张不同类型的十字像进行中心点定位,并和基于卷积神经网络的十字像定位算法结果做对比分析。

SUSAN算法原理如图13所示,图中的暗区为目标检测区域,SUSAN算法会指定一个圆形模板对图像进行遍历,如果模板中心点的像素值和模板内的像素值小于设定的阈值,就认为该点和模板中心点属于同一类点,由这些点组成的区域就叫USAN区域,USAN区域越大,距离目标区域也越近。此原理可以用来定位十字叉线的中心,即当圆形模板的中心与十字像中心重合时,USAN区域的面积达到最大值,模板中心记为十字像中心坐标。

基于十字线边缘直线拟合求十字像中心点也是一种常用的算法,其原理是首先通过边缘拟合来确定十字像的四条边缘直线方程,得到四条边缘直线方程之后,两两直线求交点可以得到十字像的四个角点坐标,通过四个角点坐标可以求得两条对角线方程,两条对角线的交点即为所求中心点。

表1所示为图12中4张不同类型的图片在不同算法下检测到的十字像中心坐标,从表中可以看出,对于清晰十字像而言,3种不同算法的检测结果误差都在1-2个像素,差异不大;对于边缘不规则的十字像,使用直线拟合得到的中心点横坐标误差比较大;对于模糊的十字像,使用SUSAN算法的误差较大;对于对比度低的十字像,经图像去燥二值化后得不到一个仅仅包含十字像的二值图,无法进行直线拟合或使用SUSAN算法,因此无法给出结果。

相对于传统算法的预测结果,本文中所采用的基于CNN的十字像中心检测算法在边缘不规则、模糊、对比度低的十字像上定位更准确,误差可以控制在1-3个像素以内。

3结论

本文从十字像数据集构建、模型评价标准设定、标注方法设计、模型结构设计等方面来建立可以用于不同成像条件下的十字像中心预测模型,以及在实验过程中通过不断变换参数来优化网络模型。同时介绍了两种常见的十字像中心定位算法边缘直线拟合和SUSAN算法,之后对实验中选取的4张具有代表性的图片进行定位,最后对比并分析实验结果。实验结果表明,本文算法在边缘不规则的十字像、模糊十字像、对比度低的十字像上可以实现更准确定位,相对于传统算法鲁棒性更强,抗干扰能力更好,验证了该算法的有效性。

猜你喜欢
卷积神经网络图像增强
一种基于轻量级深度网络的无参考光学遥感图像增强算法
图像增强技术在超跨声叶栅纹影试验中的应用
水下视觉SLAM图像增强研究
虚拟内窥镜图像增强膝关节镜手术导航系统
基于图像增强的无人机侦察图像去雾方法
基于卷积神经网络温室智能大棚监控系统的研究
基于深度卷积神经网络的物体识别算法
深度学习算法应用于岩石图像处理的可行性研究
基于卷积神经网络的树叶识别的算法的研究
基于梯度信息的多尺度Retinex图像增强方法及应用