1.一种检测工业品不规则缺陷的方法,包括如下步骤:步骤一,图像增强处理;
图像灰度直方图描述的是图像中具有该灰度级的像素点的个数;通常以横轴表示灰度级,以纵轴表示每一灰度级的像元数个数或该像元数占总像元数的比例值,以此做出的条形统计图即为灰度直方图;
每幅图像都可以做出灰度直方图,并且可以根据图像的直方图分布来确定图像质量,因此,选择采用直方图均衡化和直方图匹配的方法,通过改变图像的灰度直方图来改变图像的显示效果,从而使图像中的缺陷更加明显,减少干扰因素的影响;
1.1)直方图均衡化;
图像的直方图表现了图像的灰度分布情况,当直方图的灰度集中分布在低值区域时,图像的亮度较低;当直方图的灰度集中在高值区域时,图像亮度较高;当直方图集中在中值区域时,得到的是低对比度的图像;当直方图分布较为均匀且分布较广时,得到的是高对比度的图像;因此,可以采用使图像灰度级均匀分布的方法,来提高图像的对比度,使图像变得清晰;
直方图均衡化的具体操作步骤如下所示:(1)统计直方图各灰度级;
首先,设变量r表示图像中像素灰度级,对灰度级进行归一化处理,若图像的灰度级为{0,1,2,…,L‑1},则其中,0≤r≤1,L为灰度级层次数,k为灰度级数;
(2)计算出对应的概率密度;
因为图像的像素灰度级是在[0,1]之间随机分布的,所以可用概率密度函数来表示图k k k
像灰度级的分布;而在离散形式下,用r代表离散灰度,用Pr(r)代表灰度r出现的概率:k
其中,nk为图像中出现r 这种灰度的像素数,n是图像中的像素总数,而nk/n就是概率论中的频数;
(3)求累计分布函数;
图像进行直方图均衡化的函数表达式为:其中,k为灰度级数;
(4)求出每个灰度级对应的输出灰度级;
经过下式的反变换过程得到输出灰度级:‑1
ri=T (Si) (4)
(5)映射到新的图像,得到均衡化处理后的直方图;
1.2)直方图匹配;
直方图匹配就是通过指定直方图形状,将一幅图像的直方图变成指定形状直方图的图像增强方法;该方法需要首先选定直方图形状,即选择一张图像的直方图作为匹配参考对象,然后通过映射函数,将目标图像与指定的参考对象匹配在一起,得到与参考对象直方图形状一致的直方图;
直方图匹配的需要对两个图像的直方图都做均衡化处理,使其变成归一化的均匀直方图;以此均匀直方图起到媒介作用,再对参考图像做均衡化的逆运算即可;可以说,直方图均衡化是直方图匹配的桥梁,需要先做直方图均衡化才可以做直方图匹配;
直方图匹配的具体操作步骤如下所示:(1)按照步骤1.1)将原始图像进行均衡化处理;
(2)规定希望的灰度概率密度函数,计算它的累计分布函数G(z);
其中,z是匹配处理后的图像灰度级,Pz(z)表示希望得到的处理后的图像的概率密度函数;
(3)目标图像和参考图像具有相同的密度函数,因此,可以计算得到直方图匹配处理后的图像灰度值z;
‑1 ‑1
z=G [T(r)]=G [s] (6)其中,r是匹配处理前的图像灰度级,s是输入的图像做均衡化处理的结果;
将原始图像经过图像增强处理后,作为图像样本,用作以下步骤的输入;
步骤二,构建网络模型;
使用以VGGNet‑16为基础网络的SSD网络结构,网络框架主要分为两部分:基础网络、附加网络;基础网络为截断的VGGNet‑16网络,附加层由Conv6、Conv7卷积层以及Conv8、Conv9、Conv10、Conv11这几组卷积层构成,目标物体的检测是在这些不同尺度的特征图上同时进行的,不同尺度的特征图用于预测不同尺度大小的目标物体;
SSD网络结构具体参数如下所示:(1)输入层:分辨率为300×300像素大小的RGB三通道图像;
(2)基础网络:基础网络是以VGG16为基础的CNN网络结构,用于提取特征图,共5组13个卷积层,包括第一组:Conv1_1、Conv1_2;第二组:Conv2_1、Conv2_2;第三组:Conv3_1、Conv3_2、Conv3_3;第四组:Conv4_1、Conv4_2、Conv4_3;第5组:Conv5_1、Conv5_2、Conv5_3;
其中,Conv4_3是特征提取层;
对于每一层网络具体的参数设置,从卷积层和池化层两方面入手;
卷积层的主要参数包括卷积核大小、卷积核个数、滑动步长以及存在的网络层数4个方面;5层卷积层的卷积核大小都是3×3,以1为滑动步长,卷积核的个数逐层增加,分别是64、
128、256、512、512;前两组卷积层有2个卷积层,后三组卷积层则有3个卷积层;
池化层的主要参数包括池化方式、池化核尺寸、滑动步长以及池化类型数4个方面;池化方式选择最大池化方式;池化核的大小关系到提取的特征图尺寸,将前4个池化层Pool1、Pool2、Pool3、Pool4的池化核尺寸均设为2×2,又因为在经过第5层池化层Pool5池化操作后得到的特征图需要作为附加网络的输入数据,因此,将Pool5的池化核大小设置为3×3;
最后,5层池化层的滑动步长均为1,池化类型为valid,valid类型的池化方式不提取特征矩阵的边界信息;
(3)附加网络:附加网络包括6组卷积层、1层平均池化层和1层输出层,共计12层网络;
在附加网络中,第2层卷积层Conv7、第三组卷积层的Conv8_2、第四组卷积层的Conv9_2、第五组卷积层的Conv10_2、第六组卷积层的Conv11_2作为特征提取层,分别提取不同尺寸大小的特征图;
附加网络也是从卷积核大小、卷积核个数、滑动步长以及存在的网络层数4个方面来设置卷积层的网络参数;第6、7组卷积层均只有一层,第8、9、10、11组卷积层则存在两层卷积层;另外,附加网络只在最后输出结果的时候设置了一层池化层,也就是说整个附加网络只存在一层池化层;而且,作为最后一层池化层,该层选择采用了平均池化作为池化方式,降低特征图的维度,将结果输送到输出层;与基础网络不同的是,附加网络的卷积核大小不仅限于3×3,在网络层Conv7、Conv8_1、Conv9_1、Conv10_1、Conv11_1这五个卷积层中,采用了
1×1大小的卷积核,而且滑动步长也不再为1,将Conv8_1、Conv8_2、Conv9_1、Conv9_2网络层的滑动步长设置为2;
步骤三,设置网络模型相关参数;
3.1)默认框的设置;
在SSD网络中,默认框的大小直接决定了它能检测到的目标大小;假设网络中有m个特征层参与检测,则每一个特征图中默认框的尺寸计算公式为其中Smin为预测特征层中最低层的默认框尺度,Smax为最高层默认框尺度,对于SSD300而言,m=6,设置最底层的feature map的scale值为Smin=0.2,最高层的为Smax=0.9;
每个特征图单元有多个默认框,使用宽高比来约束默认框的大小,默认宽高比ratio为ar={1,2,3,1/2,1/3},则每一个默认框的宽w和高h为:当宽高比为1时,额外增加:
那么,当m=6,Smin=0.2,Smax=0.9时,第4层卷积层中,Conv4_3作为特征提取层,得到的默认框大小计算为
第7层卷积层中,Conv7作为特征提取层,得到的默认框大小计算为后续Conv8_2、Conv9_2、Conv10_2、Conv11_2层默认框的尺寸计算同上述方法一致;
3.2)默认框匹配方式;
(1)找到与真实目标框有最大重叠面积的默认框,保证每一个真实目标框都有一个默认框与之对应;
(2)设定IOU的阈值,将剩余未匹配的默认框再次与真实框匹配,只要两者都IOU超过设定的阈值,则同样认为匹配成功;这样,每一个真实框就可能存在多个默认框与之匹配;匹配成功的默认框负责预测与之对应的真实目标框;
(3)匹配到目标框的默认框被认为是positive,反之,未匹配到目标框的默认框则是匹配到背景,被认为negative;
3.3)损失函数的构成;
SSD的损失函数分为两部分:目标类别的confidence loss、目标default box的位置回归,总的损失函数可以表示为:
其中,N是与真实框真实框匹配的默认框个数;α是权重参数,用于调整分类损失和位置损失之间的比例,通常设定α=1;c是每一个类别的置信度;l和g则分别表示默认框和真实框的参数,包括坐标以及宽高,可表示为(cx,cy,w,h);
(1)位置回归采用Smooth L1 loss,目标函数为:其中:
(2)目标分类的损失函数采用典型的softmax loss,目标函数为其中: