CN102774539B - 基于改进梯度Hough圆变换的棒材在线自动计数方法 - Google Patents
基于改进梯度Hough圆变换的棒材在线自动计数方法 Download PDFInfo
- Publication number
- CN102774539B CN102774539B CN201210203505.9A CN201210203505A CN102774539B CN 102774539 B CN102774539 B CN 102774539B CN 201210203505 A CN201210203505 A CN 201210203505A CN 102774539 B CN102774539 B CN 102774539B
- Authority
- CN
- China
- Prior art keywords
- tmpctr
- bar
- present frame
- roi
- counting
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Image Analysis (AREA)
Abstract
本发明涉及一种基于改进梯度Hough圆变换的棒材在线自动计数方法。该方法确定各种规格棒材标准半径、最小半径、最大半径和合并半径阈值参数后,对实时采集的每帧棒材端面图像按如下步骤处理:首先基于改进梯度Hough圆变换方法增强当前帧棒材端面图像,然后结合对应阈值参数进行RegionalMax检测和距离检测,确定当前帧棒材端面实际观测中心点;最后,结合棒材整体水平运动速度建立当前帧和前一帧棒材端面实际观测中心点的关联匹配对关系,在每个关联匹配对中,若当前帧和前一帧实际观测中心点分别分布在棒材计数中心基准线左右两侧,则计数变量加1,反之,计数变量减1。本发明具有实时性强、计数精度高、能双向计数等特点。
Description
技术领域
本发明属于棒材在线自动计数技术领域。尤其涉及一种基于改进梯度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
334 | 351 | 358 | 360 | 367 | 380 | 387 | 397 | 402 | 422 | 430 | 454 | 455 | 459 | 467 | 477 | 480 | 486 |
358 | 334 | 335 | 356 | 311 | 350 | 351 | 305 | 327 | 348 | 314 | 387 | 338 | 339 | 312 | 376 | 376 | 342 |
498 | 509 | 511 | 531 | 535 | 550 | 554 | 557 | 575 | 582 | 589 | 600 | 607 | 624 | 634 | 634 |
364 | 339 | 340 | 368 | 340 | 386 | 357 | 358 | 334 | 378 | 314 | 339 | 372 | 351 | 319 | 378 |
所述的参数确定阶段的距离检测的步骤是:
取二维数组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
334 | 351 | 358 | 360 | 367 | 380 | 0 | 397 | 402 | 422 | 430 | 454 | 455 | 0 | 467 | 0 | 480 | 486 |
358 | 334 | 335 | 356 | 311 | 350 | 0 | 305 | 327 | 348 | 314 | 387 | 338 | 0 | 312 | 0 | 376 | 342 |
498 | 0 | 511 | 531 | 535 | 550 | 0 | 557 | 575 | 582 | 589 | 600 | 607 | 624 | 634 | 634 |
364 | 0 | 340 | 368 | 340 | 386 | 0 | 358 | 334 | 378 | 314 | 339 | 372 | 351 | 319 | 378 |
最后确定当前帧棒材端面实际观测中心点是:
取二维数组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
9 | 9 | 7 | 8 | 8 | 8 | 9 | 8 | 7 | 9 | 8 | 8 | 8 | 7 | 7 | 8 | 8 | 8 |
9 | 9 | 9 | 9 | 9 | 9 | 9 | 8 | 7 | 8 | 8 | 8 | 8 | 9 | 9 | 7 | 8 | 7 |
9 | 8 | 7 | 8 | 8 | 7 | 9 | 9 | 9 | 8 | 9 | 7 | 7 | 9 |
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
11 | 34 | 36 | 37 | 43 | 43 | 48 | 64 | 75 | 78 | 99 | 107 | 130 | 135 | 144 | 155 | 157 | 164 | 175 | 188 | 209 |
107 | 84 | 84 | 104 | 60 | 104 | 104 | 99 | 53 | 76 | 98 | 63 | 136 | 88 | 61 | 125 | 125 | 90 | 113 | 89 | 117 |
212 | 213 | 228 | 233 | 252 | 259 | 266 | 276 | 285 | 301 | 306 |
102 | 89 | 133 | 106 | 83 | 127 | 63 | 88 | 121 | 99 | 128 |
本实施例所述的计数阶段的距离检测的步骤是:
取二维数组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
11 | 34 | 0 | 37 | 43 | 0 | 0 | 64 | 75 | 78 | 99 | 107 | 130 | 135 | 144 | 155 | 0 | 164 | 175 | 188 | 209 |
107 | 84 | 0 | 104 | 60 | 0 | 0 | 99 | 53 | 76 | 98 | 63 | 136 | 88 | 61 | 125 | 0 | 90 | 113 | 89 | 117 |
0 | 213 | 228 | 233 | 252 | 259 | 266 | 276 | 285 | 301 | 306 |
0 | 89 | 133 | 106 | 83 | 127 | 63 | 88 | 121 | 99 | 128 |
最后确定当前帧棒材端面实际观测中心点,图5中的黑色实心点为确定的当前帧棒材端面实际观测中心点。
3)将当前帧在线棒材端面原始图像记为前一帧在线棒材端面原始图像,当前帧ROI预处理图像记为前一帧ROI预处理图像,当前帧棒材端面实际观测中心点记为前一帧棒材端面实际观测中心点,之后采集在线的下一帧棒材端面原始图像,将其记为当前帧在线棒材端面原始图像。
4)同第二步的步骤1)。
5)同第二步的步骤2)。
RegionalMax检测后的二维数组tmpCtr的值如表6所述。
表6
20 | 21 | 23 | 29 | 30 | 31 | 33 | 50 | 61 | 65 | 85 | 93 | 117 | 120 | 130 | 144 | 149 | 161 | 175 | 196 | 200 |
81 | 102 | 102 | 101 | 57 | 101 | 101 | 97 | 51 | 74 | 95 | 61 | 134 | 85 | 58 | 122 | 88 | 111 | 87 | 114 | 87 |
214 | 220 | 238 | 246 | 252 | 263 | 272 | 289 | 295 | 302 |
130 | 104 | 82 | 124 | 59 | 85 | 119 | 97 | 124 | 64 |
计数阶段的距离检测后,二维数组tmpCtr的值如表7所述。
表7
20 | 21 | 0 | 0 | 30 | 0 | 0 | 50 | 61 | 65 | 85 | 93 | 117 | 120 | 130 | 144 | 149 | 161 | 175 | 196 | 200 |
81 | 102 | 0 | 0 | 57 | 0 | 0 | 97 | 51 | 74 | 95 | 61 | 134 | 85 | 58 | 122 | 88 | 111 | 87 | 114 | 87 |
214 | 220 | 238 | 246 | 252 | 263 | 272 | 289 | 295 | 302 |
130 | 104 | 82 | 124 | 59 | 85 | 119 | 97 | 124 | 64 |
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
26 | 50 | 66 | 86 | 91 | 122 | 128 | 131 | 147 | 154 | 178 | 180 | 185 | 203 | 210 | 212 |
207 | 196 | 154 | 170 | 201 | 209 | 179 | 155 | 207 | 163 | 175 | 149 | 196 | 140 | 182 | 183 |
215 | 221 | 226 | 246 | 256 | 285 |
202 | 165 | 166 | 170 | 216 | 199 |
计数阶段的距离检测后,二维数组tmpCtr的值如表9所述。
表9
26 | 50 | 66 | 86 | 91 | 122 | 128 | 131 | 147 | 154 | 178 | 180 | 185 | 203 | 210 | 0 |
207 | 196 | 154 | 170 | 201 | 209 | 179 | 155 | 207 | 163 | 175 | 149 | 196 | 140 | 182 | 0 |
215 | 221 | 0 | 246 | 256 | 285 |
202 | 165 | 0 | 170 | 216 | 199 |
3)~5)除下述检测结果外,同实施例1中第二步的步骤3)~5):
RegionalMax检测后的二维数组tmpCtr的值如表10所述。
表10
9 | 40 | 63 | 76 | 98 | 104 | 135 | 139 | 144 | 161 | 167 | 192 | 193 | 198 | 216 | 217 |
183 | 208 | 197 | 153 | 171 | 202 | 210 | 180 | 156 | 208 | 164 | 175 | 151 | 198 | 141 | 181 |
223 | 225 | 235 | 259 | 268 | 296 |
184 | 184 | 166 | 170 | 217 | 198 |
计数阶段的距离检测后,二维数组tmpCtr的值如表11所述。
表11
9 | 40 | 63 | 76 | 98 | 104 | 135 | 139 | 144 | 161 | 167 | 192 | 193 | 198 | 216 | 0 |
183 | 208 | 197 | 153 | 171 | 202 | 210 | 180 | 156 | 208 | 164 | 175 | 151 | 198 | 141 | 0 |
223 | 0 | 235 | 259 | 268 | 296 |
184 | 0 | 166 | 170 | 217 | 198 |
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检测和距离检测的多重过滤检测手段,有效保证了计数精度。
最后,本具体实施方式采用了棒材计数中心基准线方法有效地实现了双向计数,解决了因棒材前后惯性运动引起的在线计数不准确的问题。
因此,本具体实施方式具有实时性强、计数精度高,能有效实现双向计数等特点,符合工业现场需求。
Claims (7)
1.一种基于改进梯度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_thres取50~200中的任意一个值,分别对每帧图像按照步骤3)~5)处理;
7)求取R数组中的平均值,将该平均值设置为该种规格棒材的标准半径Rnom,然后分别得到该种规格棒材的Rmin=(0.3~0.6)×Rnom、Rmax=(1.2~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累计矩阵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另存为当前帧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值即为本批次待计数棒材的总数。
2.根据权利要求1所述的基于改进梯度Hough圆变换的棒材在线自动计数方法,其特征在于所述的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。
3.根据权利要求1所述的基于改进梯度Hough圆变换的棒材在线自动计数方法,其特征在于所述的参数确定阶段的距离检测的步骤是:
取二维数组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中任意两个疑似观测中心点的参数确定阶段的距离检测同上。
4.根据权利要求1所述的基于改进梯度Hough圆变换的棒材在线自动计数方法,其特征在于所述的计数阶段的距离检测的步骤是:
取二维数组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][j],tmpCtr[0][j])>P(tmpCtr[1][j],tmpCtr[0][j]),则
tmpCtr[1][j]=0,tmpCtr[0][j]=0,tmpNum=tmpNum-1;
二维数组tmpCtr中任意两个疑似观测中心点的计数阶段的距离检测同上。
5.根据权利要求1所述的基于改进梯度Hough圆变换的棒材在线自动计数方法,其特征在于所述的确定当前帧棒材端面实际观测中心点是:
取二维数组tmpCtr中第r列元素,若tmpCtr[0][r]和tmpCtr[1][r]同时不等于0,则
当前帧ROI增强图像中像素点p(tmpCtr[1][r] ,tmpCtr[0][r])为当前帧中的一个棒材端面实际观测中心点;
二维数组tmpCtr中其余各列元素,均按上述方法确定当前帧中的其余棒材端面实际观测中心点。
6.根据权利要求1所述的基于改进梯度Hough圆变换的棒材在线自动计数方法,其特征在于所述的估算棒材整体水平运动速度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。
7.根据权利要求1或4所述的基于改进梯度Hough圆变换的棒材在线自动计数方法,其特征在于所述关联匹配对关系的建立步骤是:
将前一帧棒材端面实际观测中心点记为前一帧待匹配中心点,当前帧棒材端面实际观测中心点或疑似观测中心点记为当前帧待匹配中心点;
1)将前一帧中所有待匹配中心点的x轴坐标均水平向左偏移G_Speed像素,分别得到前一帧待匹配中心点在当前帧的估计位置,该位置记为当前帧估计中心点位置;
2)求取当前帧中各个估计中心点位置分别和各个待匹配中心点位置的距离,再按照如下方法建立关联匹配对:若前一帧某待匹配中心点Pipos在当前帧中的估计中心点为Pipos_pre,该估计中心点Pipos_pre与当前帧中某待匹配中心点Ptemp_pos距离最小,则认为前一帧中所述某待匹配中心点Pipos与当前帧中所述某待匹配中心点Ptemp_pos之间建立关联匹配对关系。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210203505.9A CN102774539B (zh) | 2012-06-19 | 2012-06-19 | 基于改进梯度Hough圆变换的棒材在线自动计数方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210203505.9A CN102774539B (zh) | 2012-06-19 | 2012-06-19 | 基于改进梯度Hough圆变换的棒材在线自动计数方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102774539A CN102774539A (zh) | 2012-11-14 |
CN102774539B true CN102774539B (zh) | 2014-02-26 |
Family
ID=47119692
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210203505.9A Expired - Fee Related CN102774539B (zh) | 2012-06-19 | 2012-06-19 | 基于改进梯度Hough圆变换的棒材在线自动计数方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102774539B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106529551B (zh) * | 2016-11-02 | 2020-01-17 | 南通大学 | 面向包装行业的类圆对象智能识别计数检测方法 |
CN108010076B (zh) * | 2017-11-23 | 2020-03-31 | 南通大学 | 一种面向密集工业棒材图像检测的端面外观建模方法 |
CN108734260B (zh) * | 2018-05-17 | 2022-07-05 | 自贡中兴耐磨新材料有限公司 | 零件计数装置及*** |
CN116823820B (zh) * | 2023-08-29 | 2023-11-07 | 青岛东冶耐火材料有限公司 | 一种铝碳质整体塞棒轮廓弯曲检测方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3208657B2 (ja) * | 1997-03-24 | 2001-09-17 | 三菱電機株式会社 | 電波源位置標定装置 |
CN101912899A (zh) * | 2010-06-21 | 2010-12-15 | 中冶京诚工程技术有限公司 | 棒材计数方法及装置 |
CN102254222A (zh) * | 2011-07-07 | 2011-11-23 | 合肥市百胜科技发展股份有限公司 | 棒材进行计数的方法及装置 |
CN202174129U (zh) * | 2011-07-07 | 2012-03-28 | 合肥市百胜科技发展股份有限公司 | 棒材计数装置 |
-
2012
- 2012-06-19 CN CN201210203505.9A patent/CN102774539B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3208657B2 (ja) * | 1997-03-24 | 2001-09-17 | 三菱電機株式会社 | 電波源位置標定装置 |
CN101912899A (zh) * | 2010-06-21 | 2010-12-15 | 中冶京诚工程技术有限公司 | 棒材计数方法及装置 |
CN102254222A (zh) * | 2011-07-07 | 2011-11-23 | 合肥市百胜科技发展股份有限公司 | 棒材进行计数的方法及装置 |
CN202174129U (zh) * | 2011-07-07 | 2012-03-28 | 合肥市百胜科技发展股份有限公司 | 棒材计数装置 |
Non-Patent Citations (3)
Title |
---|
基于数字图像处理技术的棒材计数问题的研究与分析;高民等;《河南冶金》;20070615;第15卷(第3期);第28-29页,第32页 * |
苏志祁,尉宇,王涛.《改进hough变换的算法实现》.《现代电子技术》.2009,(第10期),第42-44页. * |
高民等.基于数字图像处理技术的棒材计数问题的研究与分析.《河南冶金》.2007,第15卷(第3期),第28-29页,32页--------------------------------------. |
Also Published As
Publication number | Publication date |
---|---|
CN102774539A (zh) | 2012-11-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105300316B (zh) | 基于灰度重心法的光条中心快速提取方法 | |
CN102774539B (zh) | 基于改进梯度Hough圆变换的棒材在线自动计数方法 | |
CN100513997C (zh) | 一种多视角运动目标检测、定位与对应方法 | |
CN104200212B (zh) | 一种基于机载LiDAR数据的建筑物外边界线提取方法 | |
CN109272523B (zh) | 基于改进cvfh和crh特征的随机堆放活塞位姿估计方法 | |
CN102829735B (zh) | 基于机器视觉的e型磁材背面几何形状缺陷检测方法 | |
CN107798326A (zh) | 一种轮廓视觉检测算法 | |
CN105654097A (zh) | 图像中四边形标记物的检测方法 | |
CN102779345A (zh) | 一种基于重心欧氏距离的点云精确配准方法 | |
CN105004274B (zh) | 一种基于三维视觉的圆柱面半径测量方法 | |
CN105865344A (zh) | 一种基于机器视觉的工件尺寸测量方法和装置 | |
CN102441581A (zh) | 基于机器视觉的型钢断面尺寸在线检测的装置及方法 | |
CN101930594A (zh) | 一种扫描文档图像的快速纠偏方法 | |
CN107742289A (zh) | 一种基于机器视觉回转体工件检测方法 | |
CN105096299A (zh) | 多边形检测方法和多边形检测装置 | |
CN102034254B (zh) | 一种识别几何图形的方法 | |
CN105096298A (zh) | 一种基于快速直线提取的网格特征点提取方法 | |
CN104537342B (zh) | 一种结合山脊边界检测及霍夫变换的快速车道线检测方法 | |
CN104819754A (zh) | 一种基于图像处理的药瓶液位检测方法 | |
CN100520811C (zh) | 一种数字图像轮廓形态的识别方法 | |
CN104408772A (zh) | 一种基于网格投影的自由曲面三维重建方法 | |
CN111353985A (zh) | 一种基于深度相机的机场自助托运行李的检测方法 | |
CN102254222A (zh) | 棒材进行计数的方法及装置 | |
CN103714547A (zh) | 一种结合边缘区域和互相关的图像配准方法 | |
CN102842039A (zh) | 一种基于Sobel算子的道路图像检测方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20140226 Termination date: 20150619 |
|
EXPY | Termination of patent right or utility model |