基于改进Canny 边缘检测的堆叠货箱分割定位方法
2024-04-08徐志祥孙文博邢立东
徐志祥,孙文博,邢立东,高 东,赵 炎
(大连理工大学机械工程学院,辽宁大连 116024)
随着我国经济的高速发展,冷链进口量也大幅增长,目前冷链集装箱到港后多由人工或者人工操作机器搬卸堆叠的货箱,工作量大且效率不高,自动化程度较低,为了提高冷链运输的自动化水平,实现卸货机器人的全自动化卸货工作,需要通过机器视觉技术来获取堆叠货箱的位置坐标。随着智能化技术的发展,机器视觉已经在识别检测和定位引导上得到广泛应用,在实现工业智能化、自动化过程中有着巨大的发展前景[1]。
20 世纪60 年代以来,图像分割定位技术一直是国内外学者研究的热点。图像分割算法主要有基于阈值、基于区域、基于边缘、基于特征匹配和基于深度学习的分割方法[2]。周文静等[3]基于颜色特征和Otsu最大阈值分割结合的方法实现了对葡萄果穗图像的完整准确分割,为葡萄果穗的识别和定位抓取提供了研究基础。李颖等[4]基于深度学习方法提出了一种端到端的分割模型,采用Mask-CNN 分割算法对煤粉颗粒CT图像进行了准确分割。王祥等[5]提出了一种基于区域分离与聚合的分水岭变换分割算法,该方法可以有效抑制图像的过分割和分割边缘不明显的现象。刘丽霞等[6]针对目前遥感图像分割鲁棒性差和边缘易缺失的缺点,提出了一种基于改进Canny边缘检测的遥感影像分割算法,并取得了不错的分割效果。
本文以堆叠货箱为研究对象,针对堆叠货箱的灰度特征和边缘信息,提出了一种基于改进Canny 边缘检测的堆叠货箱分割定位算法。实验结果表明,该算法对堆叠货箱有着较好的分割的效果,定位精度也满足要求,可以为卸货机器人提供准确的货箱位置坐标,对实现自动化卸货有一定的实用价值。
1 堆叠货箱分割定位算法
1.1 堆叠货箱特征分析
相机采集到的原始灰度图像如图1 所示。堆叠货箱由规格相同的货箱一层一层较为整齐地堆叠在集装箱内,图像灰度直方图如图2 所示,货箱灰度值较为相近且与集装箱有明显的灰度差,可以通过阈值分割将堆叠货箱提取出来,且货箱边缘较为清晰,可以通过边缘轮廓将堆叠货箱分割成一个个独立的矩形区域,然后获得每一个货箱的位置坐标。
图1 原始图像
图2 图像灰度直方图
1.2 分割定位算法
针对冷链集装箱内堆叠货箱的特点,采用Haclon视觉函数库对堆叠货箱进行图像处理,并设计了一套堆叠货箱识别分割和定位的方法。首先通过阈值分割和形态学操作等图像预处理过程将堆叠货箱区域提取出来,消除背景干扰,然后基于改进Canny边缘检测算法对堆叠货箱的边缘轮廓信息进行提取,接着基于最小二乘法对货箱边缘轮廓进行直线拟合,然后基于边缘区域将每一个货箱独立分割出来,对分割出来的独立货箱区域进行最小外接矩形包络处理即可得到每一个货箱的位置信息。图像处理流程如图3 所示。
图3 图像处理流程
2 图像预处理
图像预处理的主要目的是消除图像中无关的信息,去除集装箱背景区域,只保留堆叠货箱区域,从而提高堆叠货箱图像分割和定位的准确性[7]。
2.1 阈值分割
由于货箱与集装箱环境存在灰度差,可以通过阈值分割将堆叠货箱与集装箱背景快速分割。设原始图像灰度值为f(x,y),分割后的输出图像灰度值为g(x,y)。找到堆叠货箱的灰度范围T,灰度值处于灰度范围T时赋值1,背灰度值不处于灰度范围T时赋值0,灰度阈值分割过程如式(1)所示。
阈值分割后的效果如图4 所示。
图4 阈值分割效果
2.2 形态学操作
从阈值分割后的效果可以看出堆叠货箱区域并没有与集装箱背景完全分割,仍然存在部分背景干扰,需要进行形态学操作消除干扰,只保留货箱区域。图像中常见的形态学操作有腐蚀、膨胀、开运算、闭运算、梯度运算等[8]。形态学操作中膨胀和腐蚀是基本操作,其他形态学操作都是在膨胀和腐蚀的基础上延伸而来。开运算是将图像先腐蚀再膨胀,实现去除细小散点、断开连接桥的效果。闭运算是将图像先膨胀再腐蚀,实现消除两者微小间隙的效果。
通过腐蚀、膨胀、开运算、闭运算等一系列形态学操作之后得到如图5 所示效果,可以看出经过形态学操作之后背景干扰已经被完全消除,货箱之间的缝隙以及空洞也被填满,堆叠货箱成为一个整体。
图5 形态学操作效果
2.3 堆叠货箱提取
虽然货箱区域与集装箱背景已经完全分割开,但是部分货箱区域也被当作背景去除了,为了完全保留货箱区域,提取全部货箱的位置信息,通过最小外接矩形处理得到完整的货箱区域。最小外接矩形处理效果如图6(a)所示。得到的货箱区域与原始图像的交集即是堆叠货箱图像,如图6(b)所示。通过图像预处理后,完成了对集装箱背景干扰的消除,得到了完整的货箱区域图像。
图6 堆叠货箱图像提取
3 改进Canny边缘检测算法
3.1 传统Canny算法
Canny是一种边缘检测算子,其具有易于运行,抗干扰能力强和边缘定位准确等优点[9]。Canny 边缘检测主要有4 个步骤,分别是高斯滤波、计算梯度、非极大值抑制和双阈值连接[10],具体如下。
(1)用高斯滤波平滑图像。
根据待滤波的像素点及其邻域点的灰度值按照一定的参数规则进行加权平均计算。本文使用二维高斯函数作为权值的平滑滤波器。二维高斯函数如式(2)所示。
(2)计算图像梯度。
使用2 ×2 大小的卷积核,从水平方向和垂直方向计算高斯平滑滤波后的图像的梯度幅值和方向。
(3)非极大值抑制。
将当前像素梯度幅值与沿梯度方向上的相邻像素的梯度幅值进行对比,若其是最大值,则认为该像素为边缘点,进行保留操作;若不是极大值,则认为该像素不是边缘点,进行舍弃操作[11]。
(4)双阈值算法检测连接边缘。
通过设定高低阈值来确定强弱边缘,若该像素点灰度值大于高阈值,则将该点灰度设为255,认为是强边缘;若大于低阈值小于高阈值,则认为是弱边缘;若小于低阈值,则认为不是边缘,舍去。
传统Canny边缘检测效果如图7 所示。虽然经典Canny算法计算简单,适用性较强,但存在图像的平滑去噪效果不好和货箱的边缘线条不连续等问题,容易出现漏识别、错误识别和无法识别等情况。因此,需要针对堆叠货箱的特点对Canny 算法进行改进,确保识别的准确性。
图7 传统Canny边缘检测效果
3.2 改进后Canny边缘检测算法
本文在原有Canny边缘检测算法的基础上进行改进,通过将高斯滤波替换为中值滤波、使用改进的Sobel算子计算梯度,以及基于最小二乘法进行直线拟合等方法,解决去噪效果不好导致的将噪声像素识别为虚假边缘和识别的边缘不连续和部分丢失的问题。具体改进如下。
(1)用中值滤波代替高斯滤波平滑图像。
相比于高斯滤波,中值滤波在抑制噪点的同时能有效保护图像的边界信息,避免对图片产生剧烈模糊[12]。二维中值滤波输出为
式中:f(x,y)、g(x,y)分别为原始图像和处理后图像;k、l为二维模板。
(2)用Sobel算子计算图像梯度。
Sobel算子的4 个梯度方向模板如式(4)所示,分别用0°、45°、90°和135°这4 个方向模板和图像进行卷积操作并计算一阶偏导数[13],得到4 个方向梯度值。梯度变化越大,说明相邻像素间差值越大,可能是边缘所在位置。
(3)基于最小二乘法进行直线拟合。
由于堆叠货箱的轮廓为水平和竖直方向,基于这一特征对获得的边缘斜率进行筛选,去除虚假边缘。边缘线条两点式如式(5)所示。
式中:(x1,y1)、(x2,y2)为边缘线条的起、终点坐标;k为边缘线条的斜率。
由于货箱的边缘为直线,可以对筛选后的边缘线条进行分类,对处在同一条直线附近的多个线条的起点和终点基于最小二乘法拟合出一条新的边缘,以此增加边缘线条的连续性。其线性回归方程为y ^=a +bx,其中:
式中:(xi,yi)为位于同一直线上边缘线条的起点或端点坐标。
改进后Canny算法检测效果如图8 所示,可以看出改进后Canny边缘检测相比传统Canny边缘检测算法去噪效果好,虚假边缘较少,改进前边缘线条个数为232,改进后线条个数为31,边缘线条连续效果得到了大幅提升。
图8 改进后Canny边缘检测效果
4 堆叠货箱分割定位及精度测试
4.1 堆叠货箱分割定位
首先对改进后的Canny边缘检测提取的边缘线条进行区域化处理,接着进行腐蚀、膨胀等一系列形态学操作将边缘变成一个完整的连通域,边缘连通域如图9 所示。由图9 可以看出边缘连通域已经将每一个货箱区域分割开来,然后再进行一些形态学操作即可得到独立分割出的货箱,堆叠货箱分割效果如图10 所示。
图9 边缘区域连通
图10 堆叠货箱分割效果
提取每一个独立分割出来货箱区域的最小外接矩形,即可得到图中29 个堆叠货箱的中心点位置坐标与倾斜角度。货箱定位效果如图11 所示。
图11 货箱定位效果
4.2 精度测试
货箱抓取误差主要由图像定位误差、坐标转化误差和机器人各轴定位误差组成。其中图像分割定位像素误差曲线如图12 所示。可以看出货箱中心点最大像素位置误差为0.6,像素当量转换关系式为[14]
图12 像素误差曲线
式中:lδ为理论误差;k为像素当量;p 为像素误差。已知当前像素当量为0.811 4 mm/px,只考虑图像分割定位误差时,代入即可求出最大理论定位误差为0.65 mm,满足定位精度±15 mm的要求。
为了验证堆叠货箱分割定位的精度,采用精度为1 mm的卸货机器人对堆叠货箱进行抓取作业,货箱抓取过程如图13 所示。抓取每个货箱时使用精度为0.05 mm的游标卡尺进行误差测量,抓取误差曲线如图14 所示。由两次抓取误差曲线可以得到最大定位误差为2.85 mm,验证了堆叠货箱分割定位的可行性与准确性,满足卸货机器人抓取精度±15 mm的要求。
图13 货箱抓取过程
图14 抓取误差曲线
不同场景下堆叠货箱分割定位效果如图15 所示,可以看出其分割效果较好,适用性较强,目前该套基于改进Canny边缘检测的堆叠货箱分割定位算法已经成功应用到卸货机器人中,并于2022 年11 月在大连辽渔集团有限公司投入使用,实现了冷链集装箱内堆叠货箱的全自动化卸货工作,取得了不错的效果,为冷链运输自动化提供了一种可行的解决方案。
图15 不同场景下的分割定位效果
5 结束语
本文基于改进Canny边缘检测提出了一种堆叠货箱图像分割定位的方法,通过图像预处理去除集装箱背景干扰,只保留完整的堆叠货箱图像,使用中值滤波、改进Sobel算子计算梯度,以及基于最小二乘法的直线拟合等方法对Canny 算法进行改进,使得提取的边缘连续性较好且虚假边缘较少,从而获得较好的分割效果,通过对分割好的独立货箱进行最小外接矩形处理,以此得到每一个堆叠货箱的位置坐标。精度测试表明:本文提出的方法对堆叠货箱有着很好的分割定位效果,图像处理时间约为2 ms,抓取精度高于5 mm,满足卸货机器人抓取精度要求。据此研发的集装箱机器人卸货系统已经用于冷链运输自动化作业线。