法律状态公告日
法律状态信息
法律状态
2016-08-03
未缴年费专利权终止 IPC(主分类):G06K9/00 授权公告日:20140226 终止日期:20150619 申请日:20120619
专利权的终止
2014-02-26
授权
授权
2013-01-02
实质审查的生效 IPC(主分类):B65B57/20 申请日:20120619
实质审查的生效
2012-11-14
公开
公开
技术领域
本发明属于棒材在线自动计数技术领域。尤其涉及一种基于改进梯度Hough圆变换的棒 材在线自动计数方法。
背景技术
轧钢厂棒材产品生产要求将成品按规定的支数进行标准化打捆包装。但目前我国轧钢厂 生产的棒材均采用人工计数,不但容易出错、效率低、包装数量不能确保要求,而且与自动 化轧钢不相配套,影响生产效率和装备水平的提高;另一方面,由于包装不能保证准确支数, 市场销售只有按照重量计量,不能从国际上流行的负公差轧制方式获得应有经济效益,导致 轧钢厂在经济上蒙受损失,故棒材准确计数具有十分重要的意义。
传统的机电法棒材在线自动计数设计方案存在机械磨损严重,维护成本高和对小规格棒 材计数精度不高等缺点。为了克服机电法的确定,本领域技术人员相继提出了多种基于棒材 端面的图像处理方法来实现棒材在线自动计数。目前比较有代表性的方法有以下几种:
①中心聚集
如“棒材生产在线视觉计数系统研究”(罗三定,沙莎,沈德耀等.小型微型计算机系统, 2004.25(4):671-675.)提出的“cheer”集聚方法具有速度高和容错性好的优点,配合 分类算法,成功地解决紧密排列和部分边缘遮挡情况,但是容易出现误计数及多计数的问题。
②图像距离
如“基于图象处理的棒材自动计数技术”(王金华,孙浩,徐金梧等.钢铁,2004.39(5): 34-37.)引入了“图像距离”概念,通过计算并比较棒材区域各象素点的图像距离,来识 别边缘点和中心点。这种方法严重依赖于图像分割的效果,容易产生误计数。
③模板匹配
如“棒材在线计数中断面定位方法研究”(张达,谢植等.仪器仪表学 报.2010.5,31(5):1173-1178.)技术,通过模板匹配和变阈值分割混合方法实现棒材断面中心定位, 进而提取棒材位置信息,实现棒材实时跟踪计数。此法虽然对阈值分割进行了改进,但是存在 模板匹配的先天不足,容易漏计数,很难对变形严重的棒材图像进行准确计数。
棒材在线自动计数系统的难点在于棒材在运输链上传输时,容易出现重叠交叉现象,这 给计数和分离带来了很大困难。采用光电技术和图像处理技术进行精确计数,现已取得了一 些成效。光电技术适用于棒材没有重叠交叉或重叠交叉不严重的情况,而随着棒材直径的减 小,重叠交叉的情况越来越严重,此时仅用光电技术很难解决自动计数问题。采用数字图像 处理技术能够较好地解决重叠交叉情况下的棒材识别计数,但图像处理技术受到背景噪声、 光照影响以及处理方法的局限性,现有的棒材在线自动计数方法还不能完全适用于各种棒材 生产现场。
发明内容
本发明旨在克服上述技术缺陷,目的是提供一种实时性强、计数精度高、能有效地实现 双向计数和符合工业现场需求的基于改进梯度Hough圆变换的棒材在线自动计数方法。
为了实现上述的目的,本发明采用的棒材在线自动计数方法的步骤是:
第一步、棒材阈值参数确定
该步骤是对不同规格棒材所对应的标准半径Rnom、最小半径Rmin、最大半径Rmax和 合并半径Rcmb阈值参数的确定,具体步骤是:
1)设置矩形区域ROI的四个参数:ROI.X代表ROI区域左上角点x轴坐标,ROI.Y代 表ROI区域左上角点y轴坐标,ROI.Width代表ROI区域宽度,ROI.Height代表ROI区域高 度。
2)采集某一规格棒材的第1帧棒材端面图像。
3)将所采集的棒材端面图像记为当前帧参数确定图像,在当前帧参数确定图像中选定的 ROI区域图像为当前帧ROI图像,再二值化当前帧ROI图像。
4)对二值化的当前帧ROI图像进行距离变换和高斯模糊处理,生成当前帧ROI增强图 像;然后对当前帧ROI增强图像进行RegionalMax检测和参数确定阶段的距离检测,最后确 定当前帧棒材端面实际观测中心点,所确定的当前帧棒材端面实际观测中心点在当前帧ROI 增强图像中的像素值为对应棒材的半径。
5)统计当前帧ROI图像中每种半径值所对应的棒材数目,将其中概率最大的半径值保 存到R数组的一行中。
6)采集该种规格的第2至第f_thres帧图像,其中f_thes取[50~200]中的任意一个值,分 别对每帧图像按照步骤3)~5)处理。
7)求取R数组中的平均值,将该平均值设置为该种规格棒材的标准半径Rnom,然后分 别得到该种规格棒材的Rmin=(0.3~0.6)×Rnom、Rmax=(12~1.8)×Rnom和Rcmb=(1.5~2.5) ×Rnom,最后将以上参数保存到阈值参数文件ParameterSet.txt中。
8)对每种规格棒材均分别按照步骤2)~7)进行阈值参数的确定。
第二步、棒材在线自动计数
根据选择的待计数棒材的规格,读取阈值参数文件ParameterSet.txt中相应的标准半径 Rnom、最小半径Rmin、最大半径Rmax和合并半径Rcmb阈值参数,采集在线的第1帧棒 材端面原始图像,将其记为当前帧在线棒材端面原始图像,然后按照以下步骤进行棒材在线 自动计数,将计数结果存储到计数变量barCount中,计数变量barCount的初始值设置为0。
1)对当前帧在线棒材端面原始图像先后进行ROI区域设置、二值化、腐蚀和高斯模糊 预处理,生成当前帧ROI预处理图像,获取和保存当前帧ROI预处理图像的垂直投影。
2)采用改进梯度Hough圆变换方法获得当前帧ROI增强图像,再对当前帧ROI增强图 像进行RegionalMax检测和计数阶段的距离检测,最后确定当前帧棒材端面实际观测中心点。
3)将当前帧在线棒材端面原始图像记为前一帧在线棒材端面原始图像,当前帧ROI预 处理图像记为前一帧ROI预处理图像,当前帧棒材端面实际观测中心点记为前一帧棒材端面 实际观测中心点;之后采集在线的下一帧棒材端面原始图像,将其记为当前帧在线棒材端面 原始图像。
4)同第二步的步骤1)。
5)同第二步的步骤2)。
6)基于前一帧和当前帧ROI预处理图像的垂直投影,估算棒材整体水平运动速度 G_Speed。
7)先利用所述棒材整体水平运动速度G_Speed,基于最短距离准则建立前一帧和当前帧 棒材端面实际观测中心点的关联匹配对关系;再结合前一帧和当前帧中各个棒材端面实际观 测中心点匹配对在棒材计数中心基准线水平方向上的分布情况,按照如下计数规则进行棒材 在线自动计数:
此规则假定棒材整体移动方向是自右向左,若棒材整体移动方向自左向右,可将摄像头 颠倒过来采集图像,计数规则保持不变,另外选择ROI区域的垂直中心线为棒材计数中心基 准线。
(1)如果前一帧中的某棒材端面实际观测中心点的x轴坐标在棒材计数中心基准线的右 边,在当前帧中与之关联匹配的实际观测中心点的x轴坐标在棒材计数中心基准线的左边, 则对计数变量barCount值加1。
(2)如果前一帧中的某棒材端面实际观测中心点的x轴坐标在棒材计数中心基准线的左 边,在当前帧中与之关联匹配的实际观测中心点的x轴坐标在棒材计数中心基准线的右边, 则对计数变量barCount值减1。
当前帧的棒材在线自动计数结束。
8)按照步骤3)~7)依次对每帧的棒材进行在线自动计数,直到本批次待计数棒材全部 计数完毕,最后的计数变量batCount值即为本批次待计数棒材的总数。
本技术方案所述的采用改进梯度Hough圆变换方法获得当前帧ROI增强图像,步骤是:
1)定义和初始化ROI累计矩阵accum,ROI预处理图像中任意一个像素p(xi,yi)所对应 的累计变量为accum(xi,yi),其初始值为0。
2)采用Sobel算子计算当前帧ROI预处理图像中所有像素点的水平和垂直方向梯度,求 取当前帧ROI预处理图像的边缘。
3)取出当前帧ROI预处理图像中的某一边缘点p(xi,yi),并设置R=Rmin。
4)如果R≤Rmax,则先以点p(xi,yi)为起点,沿点p(xi,yi)法线方向偏移R距离后定位到 疑似圆心点p(xc,yc),设置accum(xc,yc)=accum(xc,yc)+1,然后以疑似圆心点p(xc,yc)为起点, 沿点p(xi,yi)法线方向继续偏移Rmin距离后定位到点p(xr,yr)。
5)如果点p(xr,yr)在ROI预处理图像中对应像素值不为255,则执行步骤6),否则R=R+1, 返回步骤4)。
6)按照步骤3)~5)处理当前帧ROI预处理图像中的另一边缘点;直至当前帧ROI预 处理图像中所有边缘点处理完。
7)将ROI累计矩阵accum另存为当前帧ROI增强图像。
本技术方案所述的RegionalMax检测的步骤是:
二维数组tmpCtr[2][100]用于保存当前帧疑似观测中心点的x轴和y轴坐标值,设置疑似 观测中心点计数变量tmpNum初始值为0。
1)当前帧ROI增强图像中的各个像素点均按下述方法进行RegionalMax检测:
如果当前帧ROI增强图像中的某一像素点p(xi,yi)的像素值小于thres,thres取[2~10]中任 意一个值,同时该像素点p(xi,yi)的像素值是其8邻域内最大值;
则
认定该像素点p(xi,yi)为当前帧棒材端面疑似观测中心点;
设置tmpCtr[0][tmpNum]=yi;tmpCtr[1][tmpNum]=xi;tmpNum=tmpNum+1。
2)对二维数组tmpCtr中存储的所有棒材端面疑似观测中心点均按下述方法进行 RegionalMax检测:
如果某一棒材端面疑似观测中心点t满足下述关系中任一个:
tmpCtr[0][t]=ROI.width-1;
tmpCtr[0][t]=0;
tmpCtr[1][t]=ROI.Height-1;
tmpCtr[1][t]=0。
则
tmpCtr[0][t]=0;
tmpCtr[1][t]=0;
tmpNum=tmpNum-1。
否则,以该棒材端面疑似观测中心点t为起点,在当前帧ROI增强图像中寻找和该疑似 观测中心点t像素值相同且相互连通的像素点集。
然后取出像素点集中的任一像素q,如果任一像素q的8邻域内存在某像素的像素值大 于该疑似观测中心点t的像素值,则
tmpCtr[1][t]=0;
tmpCtr[0][t]=0;
tmpNum=tmpNum-1。
像素点集中的其余像素的判断同所述任一像素q。
本技术方案所述的参数确定阶段的距离检测的步骤是:
取二维数组tmpCtr中第i和第j两个疑似观测中心点,则所述两个疑似观测中心点在当 前帧ROI增强图像中的对应像素值分别为:
P(tmpCtr[1][i],tmpCtr[0][i]),P(tmpCtr[1][j],tmpCtr[0][j])。
所述两个疑似观测中心点的距离为R,参数确定阶段的距离检测的步骤是:
如果R满足下述关系中任一个:
R<P(tmpCtr[1][i],tmpCtr[0][i])、R<P(tmpCtr[1][j],tmpCtr[0][j])时
若P(tmpCtr[1][i],tmpCtr[0][i])≤P(tmpCtr[1][j],tmpCtr[0][j])则
tmpCtr[1][i]=0;tmpCtr[0][i]=0;tmpNum=tmpNum-1。
否则
tmpCtr[1][j]=0;tmpCtr[0][j]=0;tmpNum=tmpNum-1。
二维数组tmpCtr中任意两个疑似观测中心点的参数确定阶段的距离检测同上。
本技术方案所述的计数阶段的距离检测的步骤是:
取二维数组tmpCtr中任意的第i和第j两个疑似观测中心点,则所述两个疑似观测中心 点在当前帧ROI增强图像中的对应像素值分别为:
P(tmpCtr[1][i],tmpCtr[0][i]);P(tmpCtr[1][j],tmpCtr[0][j])。
所述两个疑似观测中心点的距离为R,计数阶段的距离检测的步骤是:
①如果R<Rcmb时
若P(tmpCtr[1][i],tmpCtr[0][i])≤P(tmpCtr[1][j],tmpCtr[0][j]),则
tmpCtr[1][i]=0;tmpCtr[0][i]=0;tmpNum=tmpNum-1。
若P(tmpCtr[1][i],tmpCtr[0][i])>P(tmpCtr[1][j],tmpCtr[0][j]),则
tmpCtr[1][j]=0;tmpCtr[0][j]=0;tmpNum=tmpNum-1。
②如果当前帧不是第1帧,R>Rcmb且R<1.5×Rcmb时,建立前一帧棒材端面实际观测 中心点和当前帧棒材端面疑似观测中心点之间的关联匹配对关系;如果当前帧中第i和第j 两个疑似观测中心点与前一帧中同一实际观测中心点匹配,则
若P(tmpCtr[1][i],tmpCtr[0][i])≤P(tmpCtr[1][j],tmpCtr[0][j]),则
tmpCtr[1][i]=0;tmpCtr[0][i]=0;tmpNum=tmpNum-1。
若P(tmpCtr[1][i],tmpCtr[0][i])>P(tmpCtr[1][j],tmpCtr[0][j]),则
tmpCtr[1][j]=0;tmpCtr[0][j]=0;tmpNum=tmpNum-1。
二维数组tmpCtr中任意两个疑似观测中心点的计数阶段的距离检测同上。
本术方案所述的确定当前帧棒材端面实际观测中心点是:
取二维数组tmpCtr中第r列元素,若tmpCtr[0][r]和tmpCtr[1][r]同时不等于0,则
当前帧ROI增强图像中像素点p(tmpCtr[1][r],tmpCtr[0][r])为当前帧中的一个棒材端面实 际观测中心点。
二维数组tmpCtr中其余各列元素,均按上述方法确定当前帧中的其余棒材端面实际观测 中心点。
本技术方案所述的估算棒材整体水平运动速度G_Speed的步骤是:
1)设置水平运动速度试探范围为[-MaxSpeed,MaxSpeed],MaxSpeed为(1/6~1/4)× ROI.Width。
2)设置前一帧ROI预处理图像垂直投影中从MaxSpeed处开始,宽度为 ROI.Width-2×MaxSpeed的一部份投影结果记为前一帧观测垂直投影。
3)基于前一帧观测垂直投影,按顺序取试探范围[-MaxSpeed,MaxSpeed]中的每个整数值, 依次将其赋值给速度变量i_speed,每赋值一次则估算一个对应的当前帧估计垂直投影,该估 计垂直投影是当前帧ROI预处理垂直投影中从MaxSpeed-i_speed处开始的宽度为 ROI.Width-2×MaxSpeed的一部份投影。
4)分别计算每个估算的当前帧估计垂直投影和前一帧观测垂直投影之间的距离,当速度 变量i_speed取某一值时,对应估算的当前帧估计垂直投影与前一帧观测垂直投影之间的距离 最小,则所述某一值为棒材整体水平运动速度G_Speed。
本技术方案所述关联匹配对关系的建立步骤是:
将前一帧棒材端面实际观测中心点记为前一帧待匹配中心点,当前帧棒材端面实际观测 中心点或疑似观测中心点记为当前帧待匹配中心点。
1)将前一帧中所有待匹配中心点的x轴坐标均水平向左偏移G_Speed像素,分别得到 前一帧待匹配中心点在当前帧的估计位置,该位置记为当前帧估计中心点位置。
2)求取当前帧中各个估计中心点位置分别和各个待匹配中心点位置的距离,再按照如下 方法建立关联匹配对:若前一帧某待匹配中心点Pipos在当前帧中的估计中心点为Pipos_pre, 该估计中心点Pipos_pre与当前帧中某待匹配中心点Ptemp_pos距离最小,则认为前一帧中所 述某待匹配中心点Pipos与当前帧中所述某待匹配中心点Ptemp_pos之间建立关联匹配对关 系。
由于采用上述技术方案,本发明具有如下优点:
首先,考虑到系统运行实时性要求高的特点,本发明在传统梯度Hough变换圆检测方法 的基础上,采用改进梯度Hough圆变换方法获得当前帧ROI增强图像,,进一步缩小了算法 的搜索空间,保证了算法运行的实时性:
①摒弃采用Canny算子求取边缘梯度,采用Sobel算子计算图像中所有像素点水平和垂 直方向梯度,使算法运行时间提高10ms左右。
②所有图像边缘像素点沿边缘法线来增强棒材端面中心点时,不再从Rmin到Rmax依次 搜索不同半径的疑似圆心点,而是基于圆对称性原理将每次已搜索到的疑似圆心点沿搜索方 向再推进Rmin像素。若检测到该像素点已不是棒材端面上的点时,即可终止沿该法线方向 上的疑似圆心点搜索。
其次,本发明采用了RegionalMax检测和距离检测的多重过滤检测手段,有效保证了计 数精度。
最后,本发明采用了棒材计数中心基准线方法有效地实现了双向计数,解决了因棒材前 后惯性运动引起的在线计数不准确的问题。
因此,本发明具有实时性强、计数精度高,能有效实现双向计数等特点,符合工业现场 需求。
附图说明
图1为本发明某一规格棒材的第1帧棒材端面图像;
图2为图1的棒材半径统计结果图;
图3为在线自动计数阶段的当前帧ROI预处理图像;
图4为在线自动计数阶段的当前帧ROI增强图像;
图5为在线自动计数阶段确定的当前帧棒材端面实际观测中心点;
图6为本发明的一种在线自动计数示意图;
图7为当本发明的另一种在线自动计数示意图。
具体实施方式
下面结合具体实施方式对本发明做进一步的描述,并不是对本发明保护范围的限制。
实施例1
一种基于改进梯度Hough圆变换的棒材在线自动计数方法。
某棒材厂生产的棒材规格有12mm、14mm、16mm三种,对其中规格为16mm的棒材进 行在线自动计数,计数方法的步骤是:
第一步、棒材阈值参数确定
该步骤是对不同规格棒材所对应的标准半径Rnom、最小半径Rmin、最大半径Rmax和 合并半径Rcmb阈值参数的确定,具体步骤是:
1)设置矩形区域ROI的四个参数:ROI.X代表ROI区域左上角点x轴坐标,ROI.Y代 表ROI区域左上角点y轴坐标,ROI.Width代表ROI区域宽度,ROI.Height代表ROI区域高 度。本实施例中,设:ROI.X=322,ROI.Y=250,ROI.Height=250,ROI.Width=313。
2)采集16mm规格棒材的第1帧棒材端面图像。
3)将所采集的如图1所示的第1帧棒材端面图像记为当前帧参数确定图像,在当前帧参 数确定图像中选定的ROI区域图像为当前帧ROI图像,图1中矩形区域图像为当前帧ROI 图像。再二值化当前帧ROI图像。
4)对二值化的当前帧ROI图像进行距离变换和高斯模糊处理,生成当前帧ROI增强图像; 然后对当前帧ROI增强图像进行RegionalMax检测和参数确定阶段的距离检测。RegionalMax 检测的步骤是:
二维数组tmpCtr[2][100]用于保存当前帧疑似观测中心点的x轴和y轴坐标值,设置疑似 观测中心点计数变量tmpNum初始值为0。
①当前帧ROI增强图像中的各个像素点均按下述方法进行RegionalMax检测:
如果当前帧ROI增强图像中的某一像素点p(xi,yi)的像素值小于thres,取thres=3,同时 该像素点p(xi,yi)的像素值是其8邻域内最大值;
则
认定该像素点p(xi,yi)为当前帧棒材端面疑似观测中心点;
设置tmpCtr[0][tmpNum]=yi;tmpCtr[1][tmpNum]=xi;tmpNum=tmpNum+1。
②对二维数组tmpCtr中存储的所有棒材端面疑似观测中心点均按下述方法进行 RegionalMax检测:
如果某一棒材端面疑似观测中心点t满足下述关系中任一个:
tmpCtr[0][t]=ROI.width-1;
tmpCtr[0][t]=0;
tmpCtr[1][t]=ROI.Height-1;
tmpCtr[1][t]=0。
则
tmpCtr[0][t]=0;
tmpCtr[1][t]=0;
tmpNum=tmpNum-1。
否则,以该棒材端面疑似观测中心点t为起点,在当前帧ROI增强图像中寻找和该疑似 观测中心点t像素值相同且相互连通的像素点集。
然后取出像素点集中的任一像素q,如果任一像素q的8邻域内存在某像素的像素值大 于该疑似观测中心点t的像素值,则
tmpCtr[1][t]=0;
tmpCtr[0][t]=0;
tmpNum=tmpNum-1。
像素点集中的其余像素的判断同所述任一像素q。
参数确定阶段的RegionalMax检测后的二维数组tmpCtr的值如表1所述。
表1
所述的参数确定阶段的距离检测的步骤是:
取二维数组tmpCtr中第i和第j两个疑似观测中心点,则所述两个疑似观测中心点在当 前帧ROI增强图像中的对应像素值分别为:
P(tmpCtr[1][i],tmpCtr[0][i]),P(tmpCtr[1][j],tmpCtr[0][j])。
所述两个疑似观测中心点的距离为R,参数确定阶段的距离检测的步骤是:
如果R满足下述关系中任一个:
R<P(tmpCtr[1][i],tmpCtr[0][i])、R<P(tmpCtr[1][j],tmpCtr[0][j])时
若P(tmpCtr[1][i],tmpCtr[0][i])≤P(tmpCtr[1][j],tmpCtr[0][j]),则
tmpCtr[1][i]=0;tmpCtr[0][i]=0;tmpNum=tmpNum-1。
否则
tmpCtr[1][j]=0;tmpCtr[0][j]=0;tmpNum=tmpNum-1。
二维数组tmpCtr中任意两个疑似观测中心点的参数确定阶段的距离检测同上。
参数确定阶段的距离检测后的二维数组tmpCtr的值如表2所述。
表2
最后确定当前帧棒材端面实际观测中心点是:
取二维数组tmpCtr中第r列元素,若tmpCtr[0][r]和tmpCtr[1][r]同时不等于0,则
当前帧ROI增强图像中像素点p(tmpCtr[1][r],tmpCtr[0][r])为当前帧中的一个棒材端面实 际观测中心点。
二维数组tmpCtr中其余各列元素,均按上述方法确定当前帧中的其余棒材端面实际观测 中心点。
所确定的当前帧棒材端面实际观测中心点在当前帧ROI增强图像中的像素值为对应棒材 的半径。图1的ROI区域图像中黑色实心点为当前帧ROI图像中各个棒材端面实际观测中心 点,图1中共有29个黑色实心点,代表检测到当前帧中有29根棒材。
5)统计当前帧ROI图像中每种半径值所对应的棒材数目,将其中概率最大的半径值保 存到R数组的一行中。
图2为当前帧的棒材半径统计结果图。图2给出了当前帧ROI图像中每种半径值的统计 信息,其中:半径为6个像素的棒材3根;半径为7个像素的棒材有2根;半径为8个像素 的棒材有7根;半径为9个像素的棒材有11根;半径为10个像素的棒材有5根;半径为11 个像素的棒材有1根;其余半径值棒材数均为0。从图2的统计结果可知:半径为9个像素 的棒材最多,将半径值9存储到R数组的一行中。
6)采集该种规格的第2至第50帧图像,其中f_thes取[50~200]中的50,分别对每帧图 像按照步骤3)~5)处理,处理后保存到R数组中的概率最大的半径值分别如表3所述:
表3
7)求取R数组中的平均值为8,将8设置为该种规格的棒材标准半径Rnom,然后分别 得到该种规格棒材的Rmin=3、Rmax=10和Rcmb=12,最后将以上参数保存到阈值参数文件 ParameterSet.txt中。
8)对14mm和12mm规格棒材均按照步骤2)~7)进行阈值参数确定,其结果是:
16mm:Rmin=3,Rnom=8,Rmax=10,Rcmb=12;
14mm:Rmin=3,Rnom=6,Rmax=9,Rcmb=12;
12mm:Rmin=2,Rnom=4,Rmax=7,Rcmb=10。
第二步、棒材在线自动计数
根据选择的待计数棒材的规格为16mm,读取阈值参数文件ParameterSet.txt中相应的标 准半径Rnom=8、最小半径Rmin=3、最大半径Rmax=10和合并半径Rcmb=12,采集在线的 第1帧棒材端面原始图像,将其记为当前帧在线棒材端面原始图像,然后按照以下步骤进行 棒材在线自动计数,将计数结果存储到计数变量barCount中,计数变量barCount的初始值设 置为0。
1)对当前帧在线棒材端面原始图像先后进行ROI区域设置、二值化、腐蚀和高斯模糊 预处理,生成如图3所示的当前帧ROI预处理图像,获取和保存当前帧ROI预处理图像的垂 直投影。
2)采用改进梯度Hough圆变换方法获得当前帧ROI增强图像,步骤是:
①定义和初始化ROI累计矩阵accum,ROI预处理图像中任意一个像素p(xi,yi)所对应的 累计变量为accum(xi,yi),其初始值为0。
②采用Sobel算子计算当前帧ROI预处理图像中所有像素点的水平和垂直方向梯度,求 取当前帧ROI预处理图像的边缘。
③取出当前帧ROI预处理图像中的某一边缘点p(xi,yi),并设置R=Rmin。
④如果R≤Rmax,则先以点p(xi,yi)为起点,沿点p(xi,yi)法线方向偏移R距离后定位到 疑似圆心点p(xc,yc),设置accum(xc,yc)=accum(xc,yc)+1,然后以疑似圆心点p(xc,yc)为起点, 沿点p(xi,yi)法线方向继续偏移Rmin距离后定位到点p(xr,yr)。
⑤如果点p(xr,yr)在ROI预处理图像中对应像素值不为255,则执行步骤⑥,否则R=R+1, 返回步骤④。
⑥按照步骤③~⑤处理当前帧ROI预处理图像中的另一边缘点;直至当前帧ROI预处理 图像中所有边缘点处理完。
⑦将ROI累计矩阵accum另存为如图4所示的当前帧ROI增强图像。
再对当前帧ROI增强图像进行RegionalMax检测和计数阶段的距离检测。
RegionalMax检测同第一步的RegionalMax检测。
RegionalMax检测后的二维数组tmpCtr的值如表4所述。
表4
本实施例所述的计数阶段的距离检测的步骤是:
取二维数组tmpCtr中任意的第i和第j两个疑似观测中心点,则所述两个疑似观测中心 点在当前帧ROI增强图像中的对应像素值分别为:
P(tmpCtr[1][i],tmpCtr[0][i]);P(tmpCtr[1][j],tmpCtr[0][j])。
所述两个疑似观测中心点的距离为R,计数阶段的距离检测的步骤是:
①如果R<Rcmb时
若P(tmpCtr[1][i],tmpCtr[0][i])≤P(tmpCtr[1][j],tmpCtr[0][j]),则
tmpCtr[1][i]=0;tmpCtr[0][i]=0;tmpNum=tmpNum-1。
若P(tmpCtr[1][i],tmpCtr[0][i])>P(tmpCtr[1][j],tmpCtr[0][j]),则
tmpCtr[1][j]=0;tmpCtr[0][j]=0;tmpNum=tmpNum-1。
②如果当前帧不是第1帧,R>Rcmb且R<1.5×Rcmb时,建立前一帧棒材端面实际观测 中心点和当前帧棒材端面疑似观测中心点之间的关联匹配对关系,建立步骤是:
将前一帧棒材端面实际观测中心点记为前一帧待匹配中心点,当前帧棒材端面疑似观测 中心点记为当前帧待匹配中心点。
●将前一帧中所有待匹配中心点的x轴坐标均水平向左偏移G_Speed像素,分别得到 前一帧待匹配中心点在当前帧的估计位置,该位置记为当前帧估计中心点位置。
●求取当前帧中各个估计中心点位置分别和各个待匹配中心点位置的距离,再按照如下 方法建立关联匹配对:若前一帧某待匹配中心点Pipos在当前帧中的估计中心点为Pipos_pre, 该估计中心点Pipos_pre与当前帧中某待匹配中心点Ptemp_pos距离最小,则认为前一帧中所 述某待匹配中心点Pipos与当前帧中所述某待匹配中心点Ptemp_pos之间建立关联匹配对关 系。
如果当前帧中第i和第j两个疑似观测中心点与前一帧中同一实际观测中心点匹配,则
若P(tmpCtr[1][i],tmpCtr[0][i])≤P(tmpCtr[1][j],tmpCtr[0][j]),则
tmpCtr[1][i]=0;tmpCtr[0][i]=0;tmpNum=tmpNum-1。
若P(tmpCtr[1][i],tmpCtr[0][i])>P(tmpCtr[1][j],tmpCtr[0][j]),则
tmpCtr[1][j]=0;tmpCtr[0][j]=0;tmpNum=tmpNum-1。
二维数组tmpCtr中任意两个疑似观测中心点的计数阶段的距离检测同上。
计数阶段的距离检测后,二维数组tmpCtr的值如表5所述。
表5
最后确定当前帧棒材端面实际观测中心点,图5中的黑色实心点为确定的当前帧棒材端 面实际观测中心点。
3)将当前帧在线棒材端面原始图像记为前一帧在线棒材端面原始图像,当前帧ROI预处 理图像记为前一帧ROI预处理图像,当前帧棒材端面实际观测中心点记为前一帧棒材端面实 际观测中心点,之后采集在线的下一帧棒材端面原始图像,将其记为当前帧在线棒材端面原 始图像。
4)同第二步的步骤1)。
5)同第二步的步骤2)。
RegionalMax检测后的二维数组tmpCtr的值如表6所述。
表6
计数阶段的距离检测后,二维数组tmpCtr的值如表7所述。
表7
6)基于前一帧和当前帧ROI预处理图像的垂直投影,估算棒材整体水平运动速度 G_Speed,步骤是:
①设置水平运动速度试探范围为[-MaxSpeed,MaxSpeed],MaxSpeed为1/6×ROI.Width。
②设置前一帧ROI预处理图像垂直投影中从MaxSpeed处开始,宽度为ROI.Width-2× MaxSpeed的一部份投影结果记为前一帧观测垂直投影。
③基于前一帧观测垂直投影,按顺序取试探范围[-MaxSpeed,MaxSpeed]中的每个整数值, 依次将其赋值给速度变量i_speed,每赋值一次则估算一个对应的当前帧估计垂直投影,该估 计垂直投影是当前帧ROI预处理垂直投影中从MaxSpeed-i_speed处开始的宽度为 ROI.Width-2×MaxSpeed的一部份投影。
④分别计算每个估算的当前帧估计垂直投影和前一帧观测垂直投影之间的距离,当速度 变量i_speed取14时,对应估算的当前帧估计垂直投影与前一帧观测垂直投影之间的距离最 小,则14为棒材整体水平运动速度G_Speed。
7)先利用所述棒材整体水平运动速度G_Speed,基于最短距离准则建立前一帧和当前帧 棒材端面实际观测中心点的关联匹配对关系,建立步骤是:
将前一帧棒材端面实际观测中心点记为前一帧待匹配中心点,当前帧棒材端面实际观测 中心点记为当前帧待匹配中心点。
①将前一帧中所有待匹配中心点的x轴坐标均水平向左偏移G_Speed像素,分别得到前 一帧待匹配中心点在当前帧的估计位置,该位置记为当前帧估计中心点位置。
②求取当前帧中各个估计中心点位置分别和各个待匹配中心点位置的距离,再按照如下 方法建立关联匹配对:若前一帧某待匹配中心点Pipos在当前帧中的估计中心点为Pipos_pre, 该估计中心点Pipos_pre与当前帧中某待匹配中心点Ptemp_pos距离最小,则认为前一帧中所 述某待匹配中心点Pipos与当前帧中所述某待匹配中心点Ptemp_pos之间建立关联匹配对关 系。图6中给出了0.25×ROI.X至0.75×ROI.X水平区域内所建立的关联匹配对关系,其中 的黑色实心点为当前帧实际观测中心点,黑色圆圈为前一帧实际观测中心点,每个关联匹配 对用直线连接。
再结合前一帧和当前帧中各个棒材端面实际观测中心点匹配对在棒材计数中心基准线水 平方向上的分布情况,按照如下计数规则进行棒材在线自动计数:
此规则假定棒材整体移动方向是自右向左,若棒材整体移动方向自左向右,可将摄像头 颠倒过来采集图像,计数规则保持不变,另外选择ROI区域的垂直中心线为棒材计数中心基 准线。
①如果前一帧中的某棒材端面实际观测中心点的x轴坐标在棒材计数中心基准线的右 边,在当前帧中与之关联匹配的实际观测中心点的x轴坐标在棒材计数中心基准线的左边, 则对计数变量barCount值加1。图6中,ROI区域中间的垂直线为棒材计数中心基准线,有 1个关联匹配对穿过棒材计数中心基准线,且该关联匹配对中,前一帧的某棒材端面实际观 测中心点的x轴坐标在棒材计数中心基准线的右边,在当前帧中与之关联匹配的实际观测中 心点的x轴坐标在棒材计数中心基准线的左边,所以barCount计数变量累加1,计数变量 barCount的当前值为1。
②如果前一帧中的某棒材端面实际观测中心点的x轴坐标在棒材计数中心基准线的左 边,在当前帧中与之关联匹配的实际观测中心点的x轴坐标在棒材计数中心基准线的右边, 则对计数变量barCount值减1,图6中不存在这种情况,故计数变量barCount值不变。
当前帧的棒材在线自动计数结束。
8)按照步骤3)~7)依次对每帧的棒材进行在线自动计数,直到本批次待计数棒材全部 计数完毕,最后的计数变量batCount值为858,即本批次待计数棒材在线自动计数的总数为 858根。
实施例2
一种基于改进梯度Hough圆变换的棒材在线自动计数方法。
某棒材厂生产的棒材规格同实施例1,计数方法的步骤是:
第一步、棒材阈值参数确定
除无附图外,其余同实施例1。
第二步、棒材在线自动计数
根据选择的待计数棒材的规格为14mm,读取阈值参数文件ParameterSet.txt中相应的标 准半径Rnom=6、最小半径Rmin=3、最大半径Rmax=9和合并半径Rcmb=12,采集在线的 第1帧棒材端面原始图像,将其记为当前帧在线棒材端面原始图像,然后按照以下步骤进行 棒材在线自动计数,将计数结果存储到计数变量barCount中,计数变量barCount的初始值设 置为0。
1)除无附图外,其余同实施例1中第二步的步骤1)。
2)除下述检测结果和无附图外,其余同实施例1中第二步的步骤2):
RegionalMax检测后的二维数组tmpCtr的值如表8所述。
表8
计数阶段的距离检测后,二维数组tmpCtr的值如表9所述。
表9
3)~5)除下述检测结果外,同实施例1中第二步的步骤3)~5):
RegionalMax检测后的二维数组tmpCtr的值如表10所述。
表10
计数阶段的距离检测后,二维数组tmpCtr的值如表11所述。
表11
6)除下述步骤④外,其余同实施例1中第二步的步骤6):
④分别计算每个估算的当前帧估计垂直投影和前一帧观测垂直投影之间的距离,当速度 变量i_speed取﹣13时,对应估算的当前帧估计垂直投影与前一帧观测垂直投影之间的距离 最小,则﹣13为棒材整体水平运动速度G_Speed。
7)先利用所述棒材整体水平运动速度G_Speed,基于最短距离准则建立前一帧和当前帧 棒材端面实际观测中心点的关联匹配对关系,建立步骤是:
将前一帧棒材端面实际观测中心点记为前一帧待匹配中心点,当前帧棒材端面实际观测 中心点记为当前帧待匹配中心点。
①将前一帧中所有待匹配中心点的x轴坐标均水平向左偏移G_Speed像素,分别得到前 一帧待匹配中心点在当前帧的估计位置,该位置记为当前帧估计中心点位置。
②求取当前帧中各个估计中心点位置分别和各个待匹配中心点位置的距离,再按照如下 方法建立关联匹配对:若前一帧待匹配中心点Pipos在当前帧中的估计中心点为Pipos_pre, 该估计中心点Pipos_pre与当前帧中某待匹配中心点Ptemp_pos距离最小,则认为前一帧中所 述某待匹配中心点Pipos与当前帧中所述某待匹配中心点Ptemp_pos之间建立关联匹配对关 系。图7中给出了0.25×ROI.X至0.75×ROI.X水平区域内所建立的关联匹配对关系,其中 的黑色实心点为当前帧实际观测中心点,黑色圆圈为前一帧实际观测中心点,每个关联匹配 对用直线连接。
再结合前一帧和当前帧中各个棒材端面实际观测中心点匹配对在棒材计数中心基准线水 平方向上的分布情况,按照如下计数规则进行棒材在线自动计数:
此规则假定棒材整体移动方向是自右向左,若棒材整体移动方向自左向右,可将摄像头 颠倒过来采集图像,计数规则保持不变,另外选择ROI区域的垂直中心线为棒材计数中心基 准线。
①如果前一帧中的某棒材端面实际观测中心点的x轴坐标在棒材计数中心基准线的右 边,在当前帧中与之关联匹配的实际观测中心点的x轴坐标在棒材计数中心基准线的左边, 则对计数变量barCount值加1。图7中不存在这种情况,故计数变量barCount值不变。
②如果前一帧中的某棒材端面实际观测中心点的x轴坐标在棒材计数中心基准线的左 边,在当前帧中与之关联匹配的实际观测中心点的x轴坐标在棒材计数中心基准线的右边, 则对计数变量barCount值减1。图7中,ROI区域中间的垂直线为棒材计数中心基准线,有 2个关联匹配对穿过棒材计数中心基准线,且该关联匹配对中,前一帧的某棒材端面实际观 测中心点的x轴坐标在棒材计数中心基准线的左边,在当前帧中与之关联匹配的实际观测中 心点的x轴坐标在棒材计数中心基准线的右边,所以计数变量barCount减2,计数变量 barCount的当前值为﹣2。
当前帧的棒材在线自动计数结束。
8)按照步骤3)~7)依次对每帧的棒材进行在线自动计数,直到本批次待计数棒材全部 计数完毕,最后的计数变量batCount值为756,即本批次待计数棒材在线自动计数的总数为 756根。
本具体实施方式在传统梯度Hough变换圆检测方法的基础上,采用改进梯度Hough圆变 换方法获得当前帧ROI增强图像,,进一步缩小了算法的搜索空间,保证了算法运行的实时 性:
①摒弃采用Canny算子求取边缘梯度,采用Sobel算子计算图像中所有像素点水平和垂 直方向梯度,使算法运行时间提高10ms左右。
②所有图像边缘像素点沿边缘法线来增强棒材端面中心点时,不再从Rmin到Rmax依次 搜索不同半径的疑似圆心点,而是基于圆对称性原理将每次已搜索到的疑似圆心点沿搜索方 向再推进Rmin像素。若检测到该像素点已不是棒材端面上的点时,即可终止沿该法线方向 上的疑似圆心点搜索。
其次,本具体实施方式采用了RegionalMax检测和距离检测的多重过滤检测手段,有效 保证了计数精度。
最后,本具体实施方式采用了棒材计数中心基准线方法有效地实现了双向计数,解决了 因棒材前后惯性运动引起的在线计数不准确的问题。
因此,本具体实施方式具有实时性强、计数精度高,能有效实现双向计数等特点,符合 工业现场需求。
机译: 圆棒数计数装置,圆棒数计数方法和圆棒数计数程序
机译: 基于Hough变换和分块分离的DNA微阵列高速自动分析
机译: 具有模糊梯度的Hough变换及其的选择。