本发明涉及工业检测,尤其是涉及一种基于机器视觉的轮廓检测方法。
背景技术:
1、在工业应用当中,通常并不需要连续的轮廓线,只需要关于外在轮廓的离散点即可。通过离散点可以获取当前产品的位置姿态以及外在轮廓特征。例如在快递分拣中,通过快递件轮廓点坐标以及摄像机姿态,可以得到快递件的三维信息,再使用机械手实现自动抓取。此外,在产品质检过程中,对产品两侧进行质检时,通过上方摄像机拍摄得到物体图片,提取轮廓点坐标,可以得到物体的位置信息,根据位置信息实时调整物体侧边的摄像机与物体之间的拍摄距离,在拍摄到物体侧边信息的同时,避免与物体相撞毁坏摄像装备。
2、现阶段轮廓的检测主要依赖于光学检测或简单的机械装置检测,其检测效率低、劳动强度大且精度不高,也常受限于作业环境的影响,尤其是光照影响,因此拍摄得到的图片,常出现重影、轮廓线不清晰、不完整的情况。此外,为了加快检测速度,在检测时,常放置多块物体进行拍摄,多块物体的放置需要有一定的间隔。
3、现有的轮廓检测方法均只解决了一块物体的情形,且大都是通过改善外部设备条件以改善检测结果。例如,公开号cn217766147u,公开了一种玻璃表面及外形轮廓检测装置,该方法主要是通过支架设有可移动的第一结构件和第二结构件以及摄像装备和可移动光源来改善轮廓检测效果。公开号cn111415376a,公开了一种汽车玻璃亚像素轮廓提取方法及汽车玻璃检测方法,该方法对汽车玻璃图像进行预处理,预处理包括sigma滤波、中值滤波和图像增强;对预处理后的汽车玻璃图像进行边缘提取,得到汽车玻璃图像的像素级边缘轮廓。但是上述方法,均没有解决轮廓线不完整,轮廓线有重影的问题,且只针对一块物体进行检测。
4、因此,有必要提供一种基于机器视觉的轮廓检测方法,来解决上述问题。
技术实现思路
1、本发明的目的是提供一种基于机器视觉的轮廓检测方法,解决了轮廓线不完整,轮廓线有重影且只针对一块物体进行检测的问题。
2、为实现上述目的,本发明提供了一种基于机器视觉的轮廓检测方法,包括以下步骤:
3、s1:图片拼接,通过线阵相机获取图片,将左侧相机和右侧相机获取到的所有图片进行纵向拼接,得到的图消除偏差后再次拼接得到大图;
4、s2:图像增强,得到完整的大图后,使用伽马变换增强图像;
5、s3:得到增强后的图片后,进行亚边缘提取,获取所有轮廓边缘点坐标;
6、s4:根据轮廓边缘点坐标,去除噪声;
7、s5:完善边缘点坐标;
8、s6:完整遍历一个周期后,得到一系列轮廓点坐标,根据离散点坐标获取当前物体的位置和姿态以及尺寸信息。
9、优选的,在步骤s1中,针对左侧长图,选定右侧边缘的轮廓点坐标(x1,y1),右侧长图找左侧边缘的轮廓点坐标(x2,y2),对获取到的两组轮廓点坐标做差,得到δy=y2-y1,得到左右两侧图片的偏差,根据偏差δy,修正图片拼接,使左右两侧的轮廓线吻合连接。
10、优选的,在步骤s2中,变换原则如下:
11、
12、其中,g为原始图像灰度值,g′为gamma变换后的图像灰度值,m为最大灰度值,o为补偿系数,γ表示伽马变换的系数,s为灰度缩放系数,通常取1,t表示原始图像灰度值经过归一化处理后的值,γ值小于1时,图像的整体亮度值增加,低灰度处的对比度增加。
13、优选的,在步骤s3中,使用canny边缘检测算子提取,阈值分割时设置两个阈值一一高阈值和低阈值,使用滞后阈值分割算法进行亚像素边缘提取,获取所有轮廓线上的点坐标。
14、优选的,在步骤s4中,根据轮廓线上的点坐标,消除噪声点,具体包括以下步骤:
15、s41:以左上角的点记为第一个点;
16、s42:以第一个点为基础,取20~50pix作为边长画正方形区域,第一个点作为正方形区域左侧边长的中点,正方形区域与获取的所有轮廓点坐标取交集,得到正方形区域内所有轮廓点坐标;
17、s43:正方形区域内的点坐标拟合直线,求出拟合直线与坐标轴的夹角,该角度记为第一个角度;
18、s44:以第一个点为圆心,第一个角度为方向,r为半径,θ为弧度,画一个扇形区域;
19、s45:取扇形区域与所有轮廓点坐标的交集,得到扇形区域内所有轮廓点的坐标,对行坐标和列坐标分别取平均,得到一个新的点,记为第二个点;
20、s46:以第一个点和第二点拟合直线并得到与坐标轴的夹角,记为第二个角度;
21、s47:通过第二个点和第二个角度重复上述操作,完成对轮廓的顺时针遍历。
22、优选的,遍历使用的扇形区域内没有任何轮廓点坐标时,进行补点,补点坐标为:
23、
24、其中,a值的选取范围为3~8pix,其中(xi,yi)表示第i个点坐标,(xi-1,yi-1)为上一时刻得到的点坐标,θi-1为上一时刻的方向信息;
25、得到新的点(xi,yi),与上一个点(xi-1,yi-1)连接成直线并得到与坐标轴的夹角θi,再以(xi,yi)为圆心,以θi为方向,取扇形区域;
26、扇形区域内没有任何轮廓点坐标时,继续执行上述补点操作;操作超过b次时,在点(xi+b,yi+b)取圆形区域,进行遍历,圆形区域半径小于(xi+b,yi+b)与(xi,yi)之间的距离。
27、因此,本发明采用上述一种基于机器视觉的轮廓检测方法,解决了轮廓线不完整,轮廓线有重影且只针对一块物体进行检测的问题。
28、下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
1.一种基于机器视觉的轮廓检测方法,其特征在于:包括以下步骤:
2.根据权利要求1所述的一种基于机器视觉的轮廓检测方法,其特征在于:在步骤s1中,针对左侧长图,选定右侧边缘的轮廓点坐标(x1,y1),右侧长图找左侧边缘的轮廓点坐标(x2,y2),对获取到的两组轮廓点坐标做差,得到δy=y2-y1,得到左右两侧图片的偏差,根据偏差δy,修正图片拼接,使左右两侧的轮廓线吻合连接。
3.根据权利要求2所述的一种基于机器视觉的轮廓检测方法,其特征在于:在步骤s2中,变换原则如下:
4.根据权利要求3所述的一种基于机器视觉的轮廓检测方法,其特征在于:在步骤s3中,使用canny边缘检测算子提取,阈值分割时设置两个阈值——高阈值和低阈值,使用滞后阈值分割算法进行亚像素边缘提取,并获得所有轮廓边缘点坐标。
5.根据权利要求4所述的一种基于机器视觉的轮廓检测方法,其特征在于:在步骤s4中,根据所有轮廓点坐标,去除噪声,具体包括以下步骤:
6.根据权利要求5所述的一种基于机器视觉的轮廓检测方法,其特征在于:遍历使用的扇形区域内没有任何轮廓点坐标时,进行补点,补点坐标为: