本发明涉及属于计算机视觉及机器视觉领域,尤其涉及一种蒸汽发生器检查机器人检查目标的位置获取方法。
背景技术:
核电蒸汽发生器是核电站最为关键的主要设备之一,第九支撑板(以下简称tsp9板)是核电蒸汽发生器上重要部分,其运行安全对于蒸发器的运行及核电站的安全至关重要,由于传统的人工检查过于不便,成本高、影响大、效率低,所以人们研制了核电蒸汽发生器的第九支撑板检查机器人,当机器人进入第九支撑板进行传热管缺陷检查时,由于环境空间密闭,操作者只能通过视觉设备加环境空间中的少量特征点大概判断当前机器人处于空间内哪个位置。目前针对这种密闭空间的水下核电检查人的空间定位也有一定的研究,有通过slam构建三维地图实现机器人在蒸发器中的三维位置判断,也有通过超声波以及辅助摄像头视频定位等方法实现机器人的空间定位。但是由于核电蒸发器中特征点较少,空间密闭等原因,这些方法也只能大致对机器进行一个空间定位。因此,目前的核电蒸汽发生器tsp9板的检查机器人难以获取自身的精确空间定位。该机器人在检查传热管缺陷及传热管之间的缺陷时,难以判别当前检查到的缺陷对应的是核电蒸发器tsp9板中哪个实际位置,故难以记录该缺陷位置。目前主要是通过人工识别ts9板中的个别特征点,然后从该点附近开始按顺序一个个传热管间检查,并人工记忆再记录的方式实现缺陷位置的定位,该方式效率低下,出错率较高,对于操作者人员的要求较高。
综上所述,目前对于核电蒸汽发生器的第九支撑板,检查机器人没有专门的检查位置获取方法,无法在检查到缺陷时有效定位缺陷位置。
技术实现要素:
鉴于以上内容,本发明提供了一种蒸汽发生器检查机器人检查目标的位置获取方法,所述位置获取方法是一种在密闭环境内获取机器人所检查位置的方法,也是一种可以用来作为统计目标数量的方法。技术方案如下:
本发明提供了一种蒸汽发生器检查机器人检查目标的位置获取方法,包括以下步骤:
s101.利用预设的网络模型,对检查机器人获取的视频逐帧进行检测,识别传热管在当前帧图像中的位置,得到传热管的坐标参数;
s102.根据所述坐标参数,确定当前帧图像中每根传热管的中心点坐标,根据所述中心点坐标在当前帧图像中对传热管依次编号;
s103.若当前帧图像为视频的第一帧图像,则维持步骤s2中的编号,否则,使用编号更新算法对当前帧中的至少一个传热管进行编号更新,所述编号更新算法如下
其中,l_x为上一帧图像中的第n传热管的中心点坐标,x为当前帧图像中的第n传热管的中心点坐标,num为上一帧图像中检测到的传热管数量,β为调节系数,col表示像素长度,last_num为上一帧图像的第n传热管的编号,pre_num为当前帧图像的第n传热管的编号。
进一步地,步骤s103之后还包括以下步骤:
s104.若当前帧中存在未更新编号的传热管,则根据已经更新编号的传热管的编号,对其它传热管进行编号更新。
进一步地,在步骤s102中,将当前帧图像中左起第一传热管的编号作为当前帧的起始点编号,或者,将当前帧图像中右起第一传热管的编号作为当前帧的起始点编号;
步骤s103中,若当前帧图像为视频的第一帧图像,则维持步骤s2中的编号,否则,使用所述的编号更新算法对当前帧中的起始点编号进行编号更新,并根据更新后的起始点编号,对当前帧图像中的传热管重新编号。
可选地,所述预设的网络模型为:以yolov3-tiny网络结构搭建模型,使用测试样本进行训练,获取到能够对样本中传热管进行有效检测的网络模型,其中包括如下所示的损失函数loss
式中,xy表示目标中心点,wh表示目标框高宽,class表示类别,confidence表示置信度。
可选地,所述测试样本经过以下步骤得到:
s201.对于检查机器人获取的视频,选取一帧图像作为样本图像,将所述样本图像的边缘部分去除,得到样本图片;
s202.重复步骤s201得到大量样本图片,所有样本图片的集合为样本图片集,将所述样本图片集作为测试样本。
可选地,步骤s202之后,还包括以下步骤:
s203.将样本图片中的每个目标物(传热管)分别用矩形框住,生成该目标物的标签,全部所述标签的集合形成样本图片集合对应的标签文件,所述标签文件包含样本图片集合中每个目标物的起点和矩形的长度与宽度,将所述样本图片集与所述标签文件作为测试样本。
进一步地,步骤s203之后,还包括以下步骤:
s204.使用k-means聚类算法对所述标签文件的内容进行聚类,得到至少一个anchor;
在步骤s101中获取所述坐标参数时应用所述anchor。
可选地,采用以下方法得到所述样本图片:选取所述样本图像的居中部分作为样本图片,其中,所述样本图片的长度为对应的样本图像的5/7,所述样本图片的宽度为对应的样本图像的2/3,所述样本图片中的像素一一对应于所述样本图像中的像素。
进一步地,在步骤s101中,对原当前帧图像进行更新,得到新当前帧图像,将新当前帧图像作为当前帧图像进行识别,所述对原当前帧图像进行更新的方法为:选取所述原当前帧图像的居中部分作为新当前帧图像,其中,所述新当前帧图像的长度为对应的原当前帧图像长度的5/7,所述新当前帧图像的宽度为对应的原当前帧图像宽度的2/3,所述新当前帧图像中的像素一一对应于所述原当前帧图像中的像素。
进一步地,所述位置获取方法还包括:对全部的传热管的编号进行更新后,在视频中对每个传热管标注更新后的编号。
本发明具有下列优点:
a.有效帮助操作者实时确定当前检查目标位置,获得检查目标位置信息,便于对结果的有效保存,避免检查完之后不知道检查结果是在实际哪个位置,有利于检查之后的后期维护等工作;
b.能够避免重复检查的发生;
c.同时提高检查便捷性,提高检查效率。
附图说明
图1是本发明的算法结构的框图;
图2是本发明的算法效果的抽象示意图。
附图标记:1-第一帧图像中左起第一传热管,2-第十传热管,3-第二十传热管,4-机器人摄像头。
具体实施方式
以下结合说明书附图及具体实施例进一步说明本发明的技术方案。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
在本发明的一个实施例中,提供了一种蒸汽发生器检查机器人检查目标的位置获取方法,如图1所示,包括以下步骤:
s101.利用预设的网络模型,对检查机器人获取的视频逐帧进行检测,识别传热管在当前帧图像中的位置,得到传热管的坐标参数;
s102.根据所述坐标参数,确定当前帧图像中每根传热管的中心点坐标,根据所述中心点坐标在当前帧图像中对传热管依次编号;
s103.若当前帧图像为视频的第一帧图像,则维持步骤s2中的编号,否则,使用编号更新算法对当前帧中的至少一个传热管进行编号更新,所述编号更新算法如下
其中,l_x为上一帧图像中的第n传热管的中心点坐标,x为当前帧图像中的第n传热管的中心点坐标,num为上一帧图像中检测到的传热管数量,β为调节系数,col表示像素长度,last_num为上一帧图像的第n传热管的编号,pre_num为当前帧图像的第n传热管的编号。
编号更新之后,用户或机器人可以根据更新后的编号,准确、快速的识别目标传热管的具体位置。
在本发明的一个实施例中,步骤s103之后还包括以下步骤:
s104.若当前帧中存在未更新编号的传热管,则根据已经更新编号的传热管的编号,对其它传热管进行编号更新,以提高之后检查时的识别效率。
在本发明的一个实施例中,所述位置获取方法还包括:对全部的传热管的编号进行更新后,在视频中对每个传热管标注更新后的编号,以提高之后检查时的识别效率。
在本发明的一个具体实施例中,在步骤s102中,将当前帧图像中左起第一传热管的编号作为当前帧的起始点编号;
步骤s103中,若当前帧图像为视频的第一帧图像,则维持步骤s2中的编号,否则,使用所述的编号更新算法对当前帧中的起始点编号进行编号更新,并根据更新后的起始点编号,对当前帧图像中的传热管重新编号。
或者,在步骤s102中,将当前帧图像中右起第一传热管的编号作为当前帧的起始点编号,并将其应用于s103中。
如图2所示,整个传热管序列中的第一传热管也是第一帧图像中左起第一传热管1,第十传热管2可能是某一帧或几帧图像中的第一传热管,第二十传热管3可能是某一帧或几帧图像中的第一传热管,但是重新标号后,在上位机显示的整个视频中,各个传热管显示的序号是其在整个传热管序列中的编号。
在本发明的一个可选实施例中,所述预设的网络模型为:以yolov3-tiny网络结构搭建模型,使用测试样本进行训练,获取到能够对样本中传热管进行有效检测的网络模型,其中包括如下所示的损失函数loss
式中,xy表示目标中心点,wh表示目标框高宽,class表示类别,confidence表示置信度。损失函数用来计算预测模型给出数据和样本真实值之间的损失值loss,再用这个值反过来去更新预测模型的参数,使得计算值尽可能接近真实值,这个不断计算的过程就是训练的过程。
在本发明的一个实施例中,所述测试样本经过以下步骤得到:
s201.对于检查机器人获取的视频,选取一帧图像作为样本图像,将所述样本图像的边缘部分去除,得到样本图片;
s202.重复步骤s201得到大量样本图片,所有样本图片的集合为样本图片集,将所述样本图片集作为测试样本。此方法较为简单、快速。
可选地,步骤s202之后,还包括以下步骤:
s203.将样本图片中的每个目标物(传热管)分别用矩形框住,生成该目标物的标签,全部所述标签的集合形成样本图片集合对应的标签文件,所述标签文件包含样本图片集合中每个目标物的起点和矩形的长度与宽度,将所述样本图片集与所述标签文件作为测试样本,此方法得到的测试样本可以进一步提高识别的准确度。
在本发明的一个实施例中,步骤s203之后,还包括以下步骤:
s204.使用k-means聚类算法对所述标签文件的内容进行聚类,得到至少一个anchor;
在步骤s101中获取所述坐标参数时应用所述anchor。
聚类所产生的anchor再用于目标检测过程中,为目标框提供基准,相当于求出来的目标矩形框实际上是该anchor的偏移(比如算出a点有一个目标物,其框为anchor 长宽偏移量),所以anchor实际是我们为了检测目标提前设定好的基准框。其数量并非限制条件,不同任务可以选择不同数量的anchor(就像如果只检测一个固定尺寸的目标只需要一个基准,设定一个anchor即可,设定多个anchor主要是便于不同尺寸框目标的检测)。获取anchor的这个算法就是为了使获得的anchor能够更加的接近目标物的尺寸,其实凭借经验也可以直接设置,但是通过k-means聚类算法获取更加符合目标物尺寸的anchor能使目标检测效果更好。
在本发明的一个实施例中,采用以下方法得到所述样本图片:选取所述样本图像的居中部分作为样本图片,其中,所述样本图片的长度为对应的样本图像的5/7,所述样本图片的宽度为对应的样本图像的2/3,所述样本图片中的像素一一对应于所述样本图像中的像素。
在本发明的一个实施例中,在步骤s101中,对原当前帧图像进行更新,得到新当前帧图像,将新当前帧图像作为当前帧图像进行识别,所述对原当前帧图像进行更新的方法为:选取所述原当前帧图像的居中部分作为新当前帧图像,其中,所述新当前帧图像的长度为对应的原当前帧图像长度的5/7,所述新当前帧图像的宽度为对应的原当前帧图像宽度的2/3,所述新当前帧图像中的像素一一对应于所述原当前帧图像中的像素。
对图像进行裁剪,是因为机器人摄像头4采集的图像会受到视角影响,即图像中的传热管遵循“近大远小”的规律,在图像边缘处,传热管的图像小且密集,因此将边缘处的传热管图像裁剪掉,留下较为居中的传热管图像,图片中部的传热管图像较大且较清晰,便于算法训练识别。
使用聚类算法得到多个anchor的原因也类似,anchor为多个即是因为视角使得传热管图像大小不一,因此相应的需要多个anchor。
下面提供本发明的一个具体实施例作为参考,需要注意的是,这只是本发明实施方式的一种,不代表本发明的全部内容与实施方式:
通过yolov3-tiny这种深度学习算法和人眼视觉逻辑实现检查位置实时获取。通过检查机器人前端视频采集装置获取场景视频,使用yolov3-tiny算法对视频中每一帧部分区域进行检测,然后由视觉逻辑方法判断视频中目标物位置变化,从而获取机器人当前的检查位置。算法运行硬件环境为windows7系统,i5-4210ucpu、gtx750显卡。算法主要由样本采集、样本标记、参数训练、目标检测、目标标序、目标位置变化判断、目标位置更新这些步骤组成,算法流程图如图1所示,实现的效果抽象示意图如图2所示。
具体实施步骤为:
第一步,获取样本。即采集在检查情景下的蒸发器管图像,并分割以图像左上角为原点,起始点为1/7,1/6,长宽分别为5/7,2/3的矩形作为样本图片。通过这种方法处理消除图像两端由于目标物分布密集不易检测的区域。
通过此方法对样本视频处理,获得大量样本图片。
第二步,制造样本标签。通过对样本中的目标物(传热管)用矩形框住,生成该样本目标物的标签,形成样本集对应的标签文件,包含样本中每个目
标物的起点,长宽包围矩形信息,及所属类别,类别全为一类(传热管类)。.第三步,anchor参数获取。使用k-means聚类算法对标记样本集中的目标物进行聚类,得到9个anchor,通过这种方法使检测模型对于目标的检测更加准确。
第四步,参数训练。以yolov3-tiny网络结构搭建模型,损失函数loss如下所示,使用样本进行训练,获取到能够对样本中传热管进行有效检测的模型参数。
式中,xy表示目标中心点,wh表示目标框高宽,class表示类别,confidence表示置信度。
第五步,目标检测。使用模型及参数对视频中对应样本位置的部分图像进行检测,得到当前部分图像中目标的传热管位置(此处部分图像即为第一步制造样本中选取的图像部分区域,起始点为1/7,1/6,长宽分别为5/7,1/3的矩形)。
第六步,目标排序。由第五步获得当前帧图像传热管位置坐标,包括起始点和长宽。然后由此参数及该部分图像在视频中一帧图像中的相对位置求取所有传热管在视频完整帧图像中的实际中心点。如果该帧图像为算法开始第一帧,则通过x坐标对所有传热管进行从左到右排序,并设定序号起始点,否则转第七步。
第七步,序号更新。通过第六步获取当前帧图像既定区域位置传热管中心点位置,并排序。此时,通过如下算法实现对起始点序号的更新,每帧执行一次如下算法。起始序号更新算法如下式所示
式中,l_x,l_y为上一帧左第一传热管的中心点设,x,y为当前帧设为左1传热管中心点设,num为上一帧图像中目标检测区域传热管数量,β为调节系数,这里取10,该值表示单帧之间目标物最大移动距离系数,帧率越高该值可以越小,col目标检测区域图像的像素长度,pre_num和last_num为当前帧与上一帧的起始传热管序号,第一次运行该算法时last_num设为1或其他特定初始值。
第八步,返回第五步检测下一帧。
由上述过程所述,基于yolov3-tiny算法及人眼视觉逻辑实现了机器人检查位置获取。
针对现有的通过人工记忆再记录检查位置的操作模式,尤其是对于现有技术的缺点:
1、增加了检查过程的复杂性,不方便,效率低下;
2、人工记忆容易出错;
以及导致这些缺点的原因:
(1)一边记录检查位置,一边进行检查,使操作步骤繁琐,效率不高。
(2)人的记忆总是短暂性的,这种边检查边记忆记录的人工方法容易出错,容易使检查位置跟检查结果不吻合;
由于想要提高机器人操作便捷性及提高检查效率,降低人力成本,特进行本发明,并且,通过yolov3-tiny算法的引入和基于人眼视觉逻辑的目标位置判断方法的序号更新算法的设置,与现有的方法相比,由人工记忆的方法转为一种智能的检查目标位置自动获取方法,本发明实现了解决现有技术缺点的目的。
通过使用yolov3-tiny神经网络目标检测算法和人眼视觉逻辑的方法实现核电蒸汽发生器中检查目标位置的获取,及类似情形下使用该方法进行目标位置获取,或者使用到数量统计等应用中的情况,均在本发明的保护范围之内。
以上所述仅为本发明的优选实施例,并非因此限制其专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
1.一种蒸汽发生器检查机器人检查目标的位置获取方法,其特征在于,包括以下步骤:
s101.利用预设的网络模型,对检查机器人获取的视频逐帧进行检测,识别传热管在当前帧图像中的位置,得到传热管的坐标参数;
s102.根据所述坐标参数,确定当前帧图像中每根传热管的中心点坐标,根据所述中心点坐标在当前帧图像中对传热管依次编号;
s103.若当前帧图像为视频的第一帧图像,则维持步骤s2中的编号,否则,使用编号更新算法对当前帧中的至少一个传热管进行编号更新,所述编号更新算法如下
其中,l_x为上一帧图像中的第n传热管的中心点坐标,x为当前帧图像中的第n传热管的中心点坐标,num为上一帧图像中检测到的传热管数量,β为调节系数,col表示像素长度,last_num为上一帧图像的第n传热管的编号,pre_num为当前帧图像的第n传热管的编号。
2.如权利要求1所述的位置获取方法,其特征在于,步骤s103之后还包括以下步骤:
s104.若当前帧中存在未更新编号的传热管,则根据已经更新编号的传热管的编号,对其它传热管进行编号更新。
3.如权利要求1和2中任一项所述的位置获取方法,其特征在于
步骤s102中,将当前帧图像中左起第一传热管的编号作为当前帧的起始点编号,或者,将当前帧图像中右起第一传热管的编号作为当前帧的起始点编号;
步骤s103中,若当前帧图像为视频的第一帧图像,则维持步骤s2中的编号,否则,使用所述的编号更新算法对当前帧中的起始点编号进行编号更新,并根据更新后的起始点编号,对当前帧图像中的传热管重新编号。
4.如权利要求1所述的位置获取方法,其特征在于,所述预设的网络模型为:以yolov3-tiny网络结构搭建模型,使用测试样本进行训练,获取到能够对样本中传热管进行有效检测的网络模型,其中包括如下所示的损失函数loss
式中,xy表示目标中心点,wh表示目标框高宽,class表示类别,confidence表示置信度。
5.如权利要求4所述的位置获取方法,其特征在于,所述测试样本经过以下步骤得到:
s201.对于检查机器人获取的视频,选取一帧图像作为样本图像,将所述样本图像的边缘部分去除,得到样本图片;
s202.重复步骤s201得到大量样本图片,所有样本图片的集合为样本图片集,将所述样本图片集作为测试样本。
6.如权利要求5所述的位置获取方法,其特征在于,步骤s202之后,还包括以下步骤:
s203.将样本图片中的每个目标物(传热管)分别用矩形框住,生成该目标物的标签,全部所述标签的集合形成样本图片集合对应的标签文件,所述标签文件包含样本图片集合中每个目标物的起点和矩形的长度与宽度,将所述样本图片集与所述标签文件作为测试样本。
7.如权利要求6所述的位置获取方法,其特征在于,步骤s203之后,还包括以下步骤:
s204.使用k-means聚类算法对所述标签文件的内容进行聚类,得到至少一个anchor;
在步骤s101中获取所述坐标参数时应用所述anchor。
8.如权利要求5所述的位置获取方法,其特征在于,采用以下方法得到所述样本图片:选取所述样本图像的居中部分作为样本图片,其中,所述样本图片的长度为对应的样本图像的5/7,所述样本图片的宽度为对应的样本图像的2/3,所述样本图片中的像素一一对应于所述样本图像中的像素。
9.如权利要求1所述的位置获取方法,其特征在于,在步骤s101中,对原当前帧图像进行更新,得到新当前帧图像,将新当前帧图像作为当前帧图像进行识别,所述对原当前帧图像进行更新的方法为:选取所述原当前帧图像的居中部分作为新当前帧图像,其中,所述新当前帧图像的长度为对应的原当前帧图像长度的5/7,所述新当前帧图像的宽度为对应的原当前帧图像宽度的2/3,所述新当前帧图像中的像素一一对应于所述原当前帧图像中的像素。
10.如权利要求1所述的位置获取方法,其特征在于,所述位置获取方法还包括:对全部的传热管的编号进行更新后,在视频中对每个传热管标注更新后的编号。
技术总结