1.一种管道缺陷检测机器人,其特征在于,包括机械系统、控制系统、图像识别系统以及管道缺陷检测系统;
所述机械系统用于为机器人移动提供动力、保护、结构支撑和拍摄;
所述控制系统实时传输画面,便于操作人员规划路径,通过电缆实现画面的传送以及上位机对机械系统、图像识别系统以及管道缺陷检测系统的远程控制;
所述图像识别系统用于对于机械系统拍摄的图像采集后导入计算机内通过算法进行检测,从而判断管道是否有缺陷;
所述管道缺陷检测系统通过导入图像识别系统识别后的管道内视频图像,然后自动的生成对应的管道缺陷检测报告;
所述机械系统包括支撑装置、驱动装置、拍摄装置;
所述支撑装置用于机器人的保护和结构支撑,支撑装置为方形,包括顶板和底板,顶板和底板通过穿钉用螺栓连接,构造成中空骨架,中间中空骨架放置控制系统,底板底部利用紧定螺钉连接控制系统;
位于支撑装置两侧设置有驱动装置,所述驱动装置包括驱动轮,驱动轮选用麦克纳姆轮作为管道检测机器人驱动轮;
所述支撑装置的底板前方设置拍摄装置,拍摄装置包括摄像头,用于检测管道缺陷信息;
所述控制系统用于对管道机器人的工作情况进行实时控制,各类控制元件放置在所述底板上;所述控制系统分为电机驱动器模块、图像采集模块、光源模块;
所述电机驱动模块通过电机对机器人的驱动装置进行驱动;
所述图像采集模块通过接收拍摄装置拍摄的图片,用于对管道的内部信息进行图像采集,且将采集到的图像信息发送至图像识别系统进行识别分类;
所述光源模块通过上位机分析图像信息,从而向光源模块发出信号,产生光源;
所述图像识别系统包括YOLO-TD的管道缺陷检测算法模块;
图像识别系统通过伪缺陷图像过滤对非管道本身缺陷导致的伪异常帧过滤后,使用YOLO-TD的管道缺陷检测算法模块进行检测;
所述伪缺陷图像过滤是利用改进的Lucas-Kanade算法监测机械系统拍摄装置的摄像头的位姿变化,对偏摆幅度大于一定阈值的视频帧从预测序列中剔除;
对当前视频帧进行特征点检测,而后利用光流原理对检测出的特征点进行特征点跟踪,利用特征点移动的距离和方向来监测摄像头的位姿变化;
所述特征点检测是对于图像采集模块实时传送回来的管道内的图像选择图像上的几个点作为角点,将选用角点作为待跟踪特征点,在假定的角点周围放置一个小窗口,并观察窗口内某个方向上强度值的平均变化;
所述角点为多个方向的平均强度变化值都比较高的像素点;
假定位移向量为(µ,γ),平均强度值变化是:
式中 I (x, y )——管道内图像像素灰度;
W (x, y )——通过管道内部图像确定的窗口内对应像素坐标位置;
将式(1)泰勒展开得到式(2),将式(2)转换为矩阵形式得到式(3):记中间矩阵为M,该矩阵的两个特征值分别表示最大平均强度值变化和其垂直方向的平均强度值变化;
定义角点响应函数S式如下:
式中λ1,λ2 ——矩阵M的两个特征值;
det——矩阵行列式;
trace——矩阵的迹;
将响应函数大于一定阈值δ的窗口中心认定为角点,在算法中加入非极大值抑制,滤除极值相邻的角点,使检测角点较为分散地分布在视角中;
所述特征点跟踪为帕间特征点跟踪,根据视频帧的连续性,利用改进的Lucas-kanade算法跟踪检测到的角点,判断当前帧角点在后续帧中的新位置,根据位置变化幅度来判断摄像头的偏摆程度,相邻帧中的同一特征点强度值是不变的,寻找如下的位移(µ,γ):式中It和It+1分别代表机械装置所获取管道内图像的当前帧和下一个瞬间的帧;
强度值不变的假设适用于相邻图像上的微小位移,将式泰勒展开得到下式,去掉两个表示强度值的项可得到式:所述改进的Lucas-Kanade算法为金字塔L-K算法,先在图像金字塔的最顶层计算光流,用上一层估计到的运动结果作为下一层金字塔的初始值,下一层在上一层基础上计算光流向量,重复这样的估计直到金字塔的最底层,将最底层光流向量作为最终结果;
所述光流的计算采用双向光流法;
所述双向光流法步骤为在当前帧It利用金字塔L-K算法检测出当前帧特征点St,特征点St为之前所述角点,在下一帧It+1中对应的特征点St+1,同时进行反向计算将It+1作为当前帧,将It作为下一帧,计算出St+1在It中对应的特征点Str,若St和Str的偏差小于一定的阈值才认定为跟踪成功,经实际验证,双向光流法有效的提高了本场景特征点的跟踪效果,获取到了相邻帧的特征点位置信息后,根据下式:式中n为当前帧特征点数量,|S(t+1)i-Sti|为特征点i前后帧x,y坐标差之和,δ为所设定的阈值,如果式成立,则认定该帧为伪异常帧并将其从缺陷检测序列中移除。
2.根据权利要求1所述的一种管道缺陷检测机器人的管道检测方法,其特征在于,包括以下步骤;
步骤1:通过机械系统中拍摄装置的摄像头采集信息通过控制系统将实时的画面传送到计算机,确保无误后即可操纵机器人向前进行缺陷检测;
步骤2:进行伪缺陷图像的过滤,通过摄像头将图像采集完成后传输到图像采集模块,通过在假定的角点周围放置一个小窗口,并观察窗口内某个方向上强度值的平均变化,假定位移向量为(µ,γ),那么平均强度值变化就是:式中 I (x, y )——管道内图像像素灰度;
W (x, y )——通过管道内部图像确定的窗口内对应像素坐标位置;
将式(1)泰勒展开得到式(2),将式(2)转换为矩阵形式得到式(3):记中间矩阵为M,该矩阵的两个特征值分别表示最大平均强度值变化和其垂直方向的平均强度值变化;如果两者都很大,那么就是在角点的位置,定义角点响应函数S为式(4):式中λ1,λ2 ——矩阵M的两个特征值;
det——矩阵行列式;
trace——矩阵的迹;
将响应函数大于一定阈值δ的窗口中心认定为角点;由于管道场景整体灰度趋于平滑,将δ设定为0.1,窗口大小WinSize设为15;同时,在算法中加入非极大值抑制,滤除极值相邻的角点,使检测角点较为分散地分布在视角中;
步骤3:根据视频帧的连续性,利用改进的Lucas-kanade算法跟踪检测到的角点,判断当前帧角点在后续帧中的新位置,根据位置变化幅度来判断摄像头的偏摆程度;假定相邻帧中的同一特征点强度值是不变的,这个过程就是寻找如下的位移(µ,γ):式中It和It+1分别代表当前帧和下一个瞬间的帧,强度值不变的假设适用于相邻图像上的微小位移;
将式(1)泰勒展开得到式(2),去掉两个表示强度值的项可得到式(3):所述改进的Lucas-kanade算法为金字塔L-K算法,先在图像金字塔的最顶层计算光流,用上一层估计到的运动结果作为下一层金字塔的初始值,下一层在上一层基础上计算光流向量,重复这样的估计直到金字塔的最底层,将最底层光流向量作为最终结果;
在当前帧It利用金字塔L-K算法检测出当前帧特征点St在下一帧It+1中对应的特征点St+1,同时进行反向计算将It+1作为当前帧,将It作为下一帧,计算出St+1在It中对应的特征点Str,若St和Str的偏差小于一定的阈值才认定为跟踪成功;
如下式所示
式中n为当前帧特征点数量,|S(t+1)i-Sti|为特征点i前后帧x,y坐标差之和,δ为所设定的阈值,如果上式成立,则认定该帧为伪异常帧并将其从缺陷检测序列中移除;
步骤4:在对伪缺陷图像的过滤后对于通过机械系统所提取的照片再利用基于YOLO-TD的管道缺陷检测算法进行检测,首先,将待检测图像输入Swin Transformer进行特征提取,Swin Transformer用移动窗口将自注意力计算限制在非重叠的局部窗口上,同时允许跨窗口连接;
步骤5:当提取到图像特征后将其输入DSPP,与SPP一样经过分别为1×1、5×5、9×9和13×13四个分支来进行不同尺度的最大化池化操作,并且每个分支的最大化池化信息会与其他分支的特征信息一同作为池化操作的输入;
当输入特征信息为X时,DSPP模块的输出信息Y如式(6)所示:其中
Pa为a×a的最大池化操作;“+”为concat操作;
步骤6:经过颈部网络加强特征的鲁棒性,最后通过卷积层组成的检测头进行管道缺陷检测。