1.本发明属于烟草物流技术领域,具体涉及一种基于图像识别的烟箱高效进出库检测方法。
背景技术:
2.成品卷烟物流园区的烟箱进出库环节因自动化水平较低,常常会产生条码漏检、箱体破损及错牌混装等问题出现,现有的烟箱进出库系统中烟箱条码识别与烟箱外观缺陷识别分别由不同设备完成,烟箱图像采集通过不同的摄像头及扫码设备,摄像头及扫码设备间无法直接连通,识别结果需要上传至云端服务器,通过云端服务器匹配烟箱条码及烟箱外观缺陷,实际生产过程中若出现网络传输延时、云端数据处理易拥堵的特殊情况,会影响烟箱正常进出库。
技术实现要素:
3.本发明的目的在于通过烟箱三侧表面图像,识别烟箱条形码,判断烟箱外观缺陷,烟箱外观检测结果光联对应条形码信息,输出烟箱进出库信息。
4.为了实现上述目的,本发明是通过以下装置实现的:一种基于图像识别的烟箱高效进出库检测方法,所述的方法包括:步骤1,获取烟箱三侧表面图像;步骤2,处理烟箱表面图像并识别烟箱条形码;步骤3,处理烟箱表面图像并判断烟箱外观缺陷;步骤4,烟箱外观缺陷检测结果关联对应条形码信息,输出烟箱进出库信息。
5.进一步的,所述的步骤2包括:步骤2-1,获取烟箱表面图像,进行灰度处理,将烟箱表面图像转换为灰度图;步骤2-2,对灰度图使用scharr算子得到灰度图在水平和竖直方向上的梯度幅值表示;步骤2-3,x梯度减去y梯度,得到高水平梯度和低竖直梯度的图像;步骤2-4,使用9*9的内核对梯度图进行平均模糊,平均模糊后的图像进行二值化处理,将灰度值小于等于255的像素点的灰度值设置为0,将灰度值大于255的像素点的灰度值设置为255;步骤2-5,对二值化图像进行形态学操作,消除间隙;步骤2-6,查找最大轮廓,拟合轮廓矩形,确定条形码区域并进行识别,将识别的三侧条形码数据进行对比判断烟箱牌号是否错牌,步骤2-7,若条形码区域无法识别,对运动模糊图像进行复原后再次进行识别。
6.进一步的,所述的步骤2-5具体步骤为构建长方形内核,内核的宽度大于长度,进行4次腐蚀后进行4次膨胀,移除图像内小斑点。
7.进一步的,所述的步骤2-7具体步骤为获取输送皮带输送速度,根据输送速度确定模糊长度l及模糊角度θ,得出点扩散函数,复原运动模糊图像,对复原图像进行识别。
8.进一步的,在所述的步骤2-2中,所述的scharr算子,x方向和y方向卷积核公式为:
9.进一步的,所述的步骤3包括:步骤3-1,读取烟箱表面图像,将rgb图像转化为
ycbcr格式,输出ycbcr图像的y分量,将图片转化为灰度图;步骤3-2,对灰度图像进行高斯滤波处理;步骤3-3,对灰度图像利用sobel算子进行图像梯度检测;步骤3-4,判断烟箱的3方向图像检测结果是否均为矩形,同时将图像特征与标准完整的烟箱图像特征作对比,如果都是矩形且对比结果合格,则表示烟箱完整,否则判断烟箱存在外观缺陷。
10.进一步的,在所述的步骤3-3中,所述的sobel算子,x方向和y方向卷积核公式为:
11.进一步的,所述的步骤3-4包括,3-4-1,计算深度测量误差值δi,3-4-2,以深度测量误差值δi建立补偿值序列表根据补偿值序列表构建测量距离序列表3-4-3对补偿值进行加权平均计算,得出基于像素加权补偿值δd(u,v),步骤3-4-4,对轮廓初图顶点进行深度测量误差补偿:z
补偿后
(u,v)=z(u,v) δd(u,v),步骤3-4-5,根据补偿后顶点坐标生成烟箱轮廓图。
12.本发明有益效果:将一次采集到的烟箱三侧表面图像,分别将表面图像转化为传统灰度图及ycbcr格式y分量灰度图,处理传统灰度图后识别烟箱条码,判断烟箱条码是否错牌。处理ycbcr格式y分量灰度图生成边缘检测的二值图像,判断烟箱外观缺陷,烟箱外观缺陷检测结果关联对应条形码信息,通过一套图像采集模块及图像处理模块便能统合烟箱条码信息及烟箱外观缺陷信息,规避网络传输延时和云端计算易拥堵的问题,提高烟箱进出库检测效率,提高烟箱进出库检测精准度。
附图说明
13.图1为本发明步骤流程图;
14.图2为深度误差补偿补偿示意图。
具体实施方式
15.为了使本发明的目的、技术方案和有益效果更加清楚,下面将结合附图,对本发明的优选实施例进行详细的说明,以方便技术人员理解。
16.一种基于图像识别的烟箱高效进出库检测方法包括:
17.步骤1,获取烟箱三侧表面图像;具体的,通过设置于烟箱输送带上侧、左侧、右侧的摄像头图像采集模块获取烟箱三侧表面图像,并将表面图像发送至图像处理模块。
18.步骤2,处理烟箱表面图像并识别烟箱条形码;
19.进一步的,所述的步骤2包括:步骤2-1,获取烟箱表面图像,进行灰度处理,将烟箱表面图像转换为灰度图;具体的,烟箱表面图像为彩色图像,根据rgb转灰度公式:gray=r*0.299 g*0.587 b*0.114,将烟箱表面图像转换为灰度图。
20.步骤2-2,对灰度图使用scharr算子得到灰度图在水平和竖直方向上的梯度幅值表示;具体的,将步骤2-1得到灰度图与x方向卷积核g
1x
进行卷积,得到水平方向梯度图,公
式表述如下:
[0021][0022]
将步骤2-1得到的灰度图与y方向卷积核g
1y
进行卷积,得到竖直方向梯度图,公式表述如下:
[0023][0024]
步骤2-3,x梯度减去y梯度,得到高水平梯度和低竖直梯度的图像。采用scharr具体的:从水平方向梯度图x-gradient中减去竖直方向梯度图y-gradient相减后的梯度图gradient为高水平梯度和低竖直梯度的图像,使图像中条形码区域更加明显。
[0025]
步骤2-4,使用9*9的内核对梯度图进行平均模糊,平均模糊后的图像进行二值化处理,将灰度值小于等于255的像素点的灰度值设置为0,将灰度值大于255的像素点的灰度值设置为255。
[0026]
步骤2-5,对二值化图像进行形态学操作,消除间隙;作为优选的,所述的步骤2-5具体步骤为构建长方形内核,内核的宽度大于长度,进行4次腐蚀后进行4次膨胀,移除图像内小斑点。具体的,使用cv2.getstructuringelement构造一个长方形内核,这个内核的宽度大于长度,因此可以消除条形码中垂直条之间的缝隙,这里进行形态学操作,将上一步得到的内核应用到二值图中,以此来消除竖杠间的缝隙。
[0027]
步骤2-6,查找最大轮廓,拟合轮廓矩形,确定条形码区域并进行识别,将识别的三侧条形码数据进行对比判断烟箱牌号是否错牌。
[0028]
步骤2-7,若条形码区域无法识别,对运动模糊图像进行复原后再次进行识别。在烟箱输送过程中移动速度较快,会产生运动模糊图像,运动模糊图像中条形码间隔改变,导致无法识别。输送皮带输送速度为高中低不同档次,不同档次的模糊长度l及模糊角度θ均为定值,通过实验得出高中低档图像光斑长度及角度,光斑长度对应模糊长度l,光斑角度对应模糊角度θ,得出点扩散函数h(x,y):
[0029][0030]
通过点扩散函数得出原图像:
[0031]
g(x,y)=f(x,y)*h(x,y)
[0032]
g(x,y)为原条形码图像,f(x,y)为采集图像,h(x,y)为点扩散函数,*为卷积。
[0033]
步骤3,处理烟箱表面图像并判断烟箱外观缺陷。
[0034]
步骤3-1,读取烟箱表面图像,将rgb图像转化为ycbcr格式,输出ycbcr图像的y分量,将图片转化为灰度图。具体的,ycbcr是彩色空间的一种,它由三元y、cb和cr组成,rgb转ycbcr图像计算公式为:
[0035][0036]
其中y表示图像的明亮度和浓度,ycbcr图像y分量变换可以检测到比传统灰度图转换更微小的细节,提高烟箱外观缺陷判断准确性。
[0037]
步骤3-2,对灰度图像进行高斯滤波处理。ycbcr图像y分量变换后图像微小细节均会显示,导致图像中噪声较大,需要通过滤波的方法对图像噪声进一步消除。高斯滤波算法的原理是,首先使用遮模模板对图像中所有的像素点进行扫描,然后对掩模内的像素值进行加权平均运算,并将运算结果替代掩模中心像素点的灰度值,本发明选用掩模模板为3*3模板,其数学计算式为:
[0038][0039]
式中,g(x,y)表示(x,y)点的原始像素灰度值,f(x,y)表示(x,y)点经过高斯滤波处理后的灰度值。
[0040]
步骤3-3,对灰度图像利用sobel算子进行图像梯度检测,具体的,将步骤3-2得到的灰度图与sobel算子g
2x
进行卷积,得到水平梯度图,公式如下所示:
[0041][0042]
步骤3-2得到的灰度图与sobel算子g
2y
进行卷积,得到竖直梯度图,公式如下所示:
[0043][0044]
梯度值
[0045]
阈值比较,通过设置门限的方法来曲风梯度值的大小,凡是梯度值g大于门限t的像素点就是灰度变化明显的点,梯度较大,设置这些点的灰度值为0,使其显示为黑色,从而把这些点标记出来,而梯度值小于阈值的像素点灰度值设置为255,显示为白色,从而形成边缘检测的二值图像,公式如下所示:
[0046][0047]
此二值图像为烟箱三面矩形轮廓。
[0048]
步骤3-4,对轮廓初图顶点进行深度测量误差补偿,根据补偿后顶点坐标生成烟箱轮廓图。因设置于烟箱三侧的摄像头与烟箱距离不同,在不同测量距离下获得的深度数据误差明显不同,深度测量的误差随距离的增大而增大。最终导致三侧轮廓尺寸存在明显差异,无法匹配。
[0049]
所述的步骤3-4包括,3-4-1,计算深度测量误差值δi,设空间中某一平面距离摄像头的真实深度值为ri使用摄像头测量该平面的深度值为zi,则深度测量误差值δi可以表示为:
[0050]
δi=r
i-zi(i=1,2,
…
,k)
[0051]
3-4-2,以深度测量误差值δi建立补偿值序列表在摄像头测量距离范围内,平均等距的选取k个标注空间平面,以上式得到的深度测量误差值δi为基础,建立用于深度误差补偿的补偿值序列表根据补偿值序列表构建测量距离序列表
[0052]
步骤3-4-3对补偿值进行加权平均计算,得出基于像素加权补偿值δd(u,v)。图2为深度误差补偿示意图,对补偿值进行加权平均计算,以实现有序空间中摄像头深度测量误差值的补偿。设补偿之前深度图像中某一像素的深度值为z(u,v),其处于测量距离的序列表中z(u,v)和z
i 1
(u,v)的一个邻域之中,设阈值为s(s=1,2,3,
…
),通过下式计算得到查找表中zi和z
i 1
的s
×
s邻域内所有点到z的欧式距离:
[0053][0054][0055]
式中u-s≤m≤u s,v-s≤n≤v s,xi(m,n)与yi(m,n)是zi(m,n)所在点的横纵坐标,x
i 1
(m,n)与y
i 1
(m,n)是z
i 1
(m,n)所在点的横纵坐标,x(u,v)与y(u,v)是z(u,v)所在点的横纵坐标。
[0056]
推导出基于像素加权补偿值的计算公式为:
[0057][0058]
其中,
[0059][0060]
步骤3-4-4,对轮廓初图顶点进行深度测量误差补偿:z
补偿后
(u,v)=z(u,v) δd(u,v)
[0061]
步骤3-4-5,根据补偿后顶点坐标生成烟箱轮廓图。经过补偿的顶点坐标不受摄像头安装距离影响,避免三侧轮廓尺寸存在差异,减少烟箱外观缺陷检测误报。
[0062]
步骤3-5,判断烟箱三侧烟箱轮廓图是否均为矩形,同时将图像特征与标准完整的
烟箱图像特征作对比,如果都是矩形且对比结果合格,则表示烟箱完整,否则判断烟箱存在外观缺陷。
[0063]
步骤4,烟箱外观缺陷检测结果关联对应条形码信息,输出烟箱进出库信息,记录并输送合格烟箱,剔除外观缺陷、错牌烟箱。
[0064]
具体的,将步骤3得到的烟箱外观缺陷检测结果关联对应条形码信息,输出烟箱进出库信息至进出库管理系统及分拣剔除设备,记录并输送合格烟箱,剔除外观缺陷、错牌烟箱。
[0065]
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何不经过创造性劳动想到的变化或替换,都应涵盖在本发明的保护范围之内。
转载请注明原文地址:https://tc.8miu.com/read-1686.html