一种基于三维重建的绝缘子爬电距离测量系统及方法
技术领域
本发明涉及一种绝缘子爬电距离测量系统及方法,具体涉及一种基于三维重建的绝缘子爬电距离测量系统及方法,通过Kinect对绝缘子进行扫描并建立具有体素网格形式的三维模型,然后对体素网格做切割处理,截取正确的二维截面,并在二维图像上计算爬距,实现对爬电距离的测量。搭建了一套完整的由电动水平转台,深度传感器Kinect v2以及华硕笔记本电脑组成的系统来实现基于三维重建的绝缘子爬电距离的测量。
背景技术
绝缘子是一种特殊的绝缘控件,能够在架空输电线路中起到重要作用,它是为了增加爬电距离的,通常由玻璃或陶瓷制成。绝缘子不应该由于环境和电负荷条件发生变化导致的各种机电应力而失效,否则绝缘子就不会产生重大的作用,就会损害整条线路的使用和运行寿命。绝缘子的爬距是在绝缘子正常施加运行电压的导电部位之间沿其伞裙表面的最短距离或最短距离之和,见图1。
目前爬电距离测量工作均在设备停电情况下进行,需人工测量,测量数据误差大,数据核查周期长,不能满足电网设备管理要求。由于绝缘子的伞裙是由很多圆弧和直线组合而成的复杂的几何形状,难以直接对爬电距离进行数学计算,目前测量外绝缘爬电距离的方法是:结合设备停电检修,工作人员采用不会伸长的胶布带(或金属丝),在试品两电极间,沿绝缘件表面(包括瓷件表面的半导体釉层部分),但不包括导电性胶合剂,如水泥胶合剂)进行近似测量,费时费力并且不准确。
绝缘子外轮廓形状复杂,人工测量时因测量工具精度、测量方法、人为偏差等,会对测量结果造成较大偏差,测试数据往往不精准。
发明内容
本发明的目的在于针对目前人工测量绝缘子爬电距离带来测量偏差较大的问题,提供了一种基于三维重建的绝缘子爬电距离测量系统及方法,搭建一套完整的由水平电动转台、Kinect v2、笔记本电脑组成的测量系统,提高电力公司测量绝缘子爬电距离的工作效率。
为达到上述目的,本发明的构思是:
1.深度图像采集,用Kinect v2对待测绝缘子进行360°扫描并采集其深度图像及彩色图像数据。
2.重建三维模型,采用KinectFusion算法将采集到的图像数据进行基于体素数据的三维模型重建。
3.寻找合适的切割面,鉴于绝缘子复杂结构,不能简单直接地进行切割,需要将其切割成包含了爬电距离的二维截面。这里采用在重建的三维模型中沿着经过绝缘子伞裙裙面直径的平面进行切割的切割方式。
4.爬电距离的计算,在得到的二维截面上提取表示爬距的有效轮廓点,遍历这些有效点,根据有效轮廓点,将爬电距离的计算转化为两体素之间沿物体轮廓距离的计算。
一种基于三维重建的绝缘子爬电距离测量系统,根据上述发明构思,本发明采用下述技术方案:包括水平电动转台(孜敏电动转盘NA350,转速约为20秒/圈)(1)、深度传感器Kinect v2(2)、华硕(ASUS)笔记本电脑(3),将待测的绝缘子按照图2方式摆放在匀速转动的水平转台上,水平转台的转速为0.314rad/s,水平转台带动其上的绝缘子一起匀速转动,距转台0.4-4m处的支撑物上放置Kinect v2对绝缘子进行360°扫描获取绝缘子的深度图像及彩色图像,Kinect v2通过数据传输线连接到笔记本电脑中,在笔记本电脑中采用KinectFusion算法进行基于体素数据的三维重建,然后依赖体素网格的数据类型,截取正确的二维截面,并在二维图像上计算爬距。一种基于三维重建的绝缘子爬电距离测量方法,采用上述测量系统进行操作,其特征在于具体操作步骤如下:
①深度图像采集:将待测绝缘子按照伞柄朝下伞裙朝上的方式摆放在匀速转动的水平转台(1)上,水平转台的转速为0.314rad/s,水平转台(1)带动其上的绝缘子一起匀速转动。Kinect v2匀速对绝缘子进行360°扫描,其每秒采集30帧深度图像及彩色图像,共采集600幅图像分辨率为512×424的深度图像以及600幅图像分辨率为640×480的彩色图像,通过数据传输线连接到笔记本电脑中。
②重建三维模型:获取的绝缘子图像数据传输到笔记本电脑后,在笔记本电脑中采用KinectFusion算法进行基于体素数据的三维重建。该算法主要包括四部分:双边滤波、迭代最近点(ICP)、截断有向距离函数(TSDF)、光线投射(Ray-cast)。
③寻找切割面:要准确计算绝缘子的爬电距离,需要找到正确的切割面来切割出包含爬电距离的二维截面,但由于绝缘子结构的复杂性,不能简单直接地进行切割,需要寻找合适的切割面,以深度摄像机的坐标系为全局坐标系,在重建出的三维模型中沿着经过绝缘子伞裙裙面直径的平面进行切割。
④网格体素切割:将体素切割之后,得到的是一幅整齐排列的二维图像数据,相比离散的点云数据,无需复杂的曲线方程拟合,只需要简单地二值化,利用截断有向距离函数(TSDF)在截面中找出表示轮廓的点。
⑤爬电距离计算:遍历所有的有效轮廓点,在遍历过程中累加相邻体素之间的欧式距离来计算爬电距离,将爬电距离的计算转化为两体素之间沿物体轮廓的距离的计算。
所述步骤(2)中使用KinectFusion算法框架进行三维重建,先使用OPENNI SDK2自动对齐深度相机与彩色相机的坐标系,并以深度摄像机的坐标系为全局坐标系来建立体素网格,示意图见图16,为了方面后续对模型体素网格的切割,选取绝缘子正对深度摄像机坐标系的图像为第一帧图像,并在第一帧的场景下建立体素网格。
如何选定绝缘子正对深度摄像机坐标系的图像为第一帧图像的具体过程如下:因为定义绝缘子正对坐标系的图像为第一帧图像,所以该帧图像具有的特点为伞裙关于中轴左右对称以及伞裙面最大。前面已经使用OPENNI SDK2自动对齐深度相机与彩色相机的坐标系,在获取的600幅彩色图像上进行人机交互操作,根据伞裙对称性可以找到候选的10张左右彩色图像,在彩色图像上手动确定中心点,再在深度图像上利用深度不连续性获取经过中心点的左右两侧轮廓边缘点分别记为P,Q,最后在平面上计算的PQ间相差的像素点个数记为S,该值代表伞裙面大小。所有的候选彩色图像中选定S值最大的图像为第一帧图像,即是我们所需的绝缘子正对坐标系的图像,并以此为起点进行图像重新排序,假设该被选定的图像原序号为100,将这600幅图像按原序号{100,101,102….600.1.2….99}排列并重新定义序号{1.2.3….600},在第一帧的场景下建立体素网格。
所述步骤(2)中使用KinectFusion算法框架进行三维重建,该算法是基于体素网格数据的重建,主要包括四部分:双边滤波、迭代最近点(ICP)、截断有向距离函数(TSDF)、光线投射(Ray-cast),工作流程如图5所示。为了将各个视点下获取的深度数据融合在一起,利用迭代最近点方法配准当前深度帧与全局模型(frame-model),用于实时估计相机的位姿,计算出从本地到全局转移矩阵,并结合有向距离函数在三维体素网格上融合各个视点下的三维数据,更新全局模型。此外,用双边滤波将Kinect获得的原始数据去噪,为ICP步骤中的寻找最近点奠定基础;用光线投射获取当前视点下观察到的模型点云,与下一帧的深度帧进行新一轮的配准,图6为从三个角度下观察到的三维重建模型结果。
所述步骤(3)是在采用KinectFusion算法建立好基于体素数据的三维重建之后得到带有有向距离函数的体素网格后,再对该体素网格进行对称切割,得到包含爬电距离的二维截面。这里以深度摄像机的坐标系为全局坐标系,,坐标系示意图见图16,由于绝缘子自身复杂的结构,若需正确地切割体素,其关键是找到切割面的平面方程,一般选择平行于坐标面的平面来切割体素,一共有三种情况:n⊥XOY、n⊥YOZ、n⊥XOZ,n⊥XOY和n⊥YOZ这两种情况无法稳定放置绝缘子,而n⊥XOZ是把绝缘子伞裙朝下扣放在电动转台上,这样采集到的图像缺少伞裙内部细节,由于切割的法向量不垂直于任何一个坐标平面,直接求切割面方程比较困难,所以为了减少计算复杂度,绝缘子按照图7稳定放置,选择平行于YOZ面且经过伞裙裙面直径的平面来作为切割面,建立的坐标系见图7。
通过采用上述技术方案,针对自身结构复杂的绝缘子,可以确定合适的切割面及其切割面的平面方程,运用Kinect切割算法对体素网格进行对称切割,保证了对绝缘子的重建模型体素网格的有效切割,得到含爬电距离信息的二维截面。
所述步骤(4)在体素网格中提取有效点时以体元为单位筛选轮廓点,三维网格如图8,因为计算过程中,网格分辨率有限,体素上的SDF值很难恰好为0,所以为了防止漏选轮廓点,这里采用以体元为单位筛选轮廓点的方式。定义体元是三维网格中由相邻的八个体素点组成的小立方体,属于物体内部的体素点被称为实点,反之落在物体外部的被称为虚点;大多数的体元的8个体素都是虚点或者都是实点,这些体元被称作虚体元和实体元,如图9(a)和图9(c)所示,而我们感兴趣的体元是既含有实点和虚点,它们被称为边界体元,如图9(b)所示。
通过采用上述技术方案,可以提高提取有效轮廓点的准确性,因为单个点的TSDF可能产生误差,为了防止漏选轮廓点,以体元为单位可以大大提高获取轮廓点的有效性,从而提高系统整体的测量精度。
所述步骤(5)中遍历有效轮廓点,我们将起点赋给当前像素点,在该点的八邻域范围内寻找候选点,若找不到这样的候选点,则扩大邻域范围直至寻找到候选点。找到候选点之后计算当前点与候选点之间的欧式距离,然后将候选点赋给当前点。重复上述过程,将当前点与候选点之间的距离累加起来,循环到遍历的最后点时结束,累加的距离之和即为爬电距离。算法流程见图10。
通过采用上述技术方案,实现了将爬电距离的计算转化为两体素之间沿物体轮廓的欧式距离的累积和。
本发明与现有技术相比较,具有如下显而易见的突出实质性特点和显著技术进步:
1.本系统使用Kinect v2对绝缘子进行数据采集并采用KinectFusion算法进行三维重建得到带有有向距离函数的体素网格;再对该体素网格进行对称切割,得到包含爬电距离的二维截面;之后在截面上提取有效轮廓点并对其进行欧式距离的累加从而计算出爬电距离。该系统操作简便,计算结果较精确,节省了制作人员和测量人员手动用绳子测量爬电距离的测量时间,同时避免了由于结果不准确而进行的反复测量。
2.由于绝缘子的结构较复杂,一般的选择平行与坐标面的切割面的切割方式不太适用,又要结合计算复杂度不能太大便于后续计算的特点,这里选择的是平行于YOZ面且经过伞裙裙面直径的平面作为切割面的切割方式,保证了对绝缘子的体素网格进行有效对称切割,得到含爬电距离信息的二维截面。
3.因为计算过程中,网格分辨率有限,体素上的SDF值很难恰好为0,所以为了防止漏选轮廓点,这里采用以体元为单位筛选轮廓点的方式,可以提高提取有效轮廓点的准确性,从而提高系统整体的测量精度。
附图说明
图1是绝缘子爬电距离示意图。
图2是绝缘子爬电距离测量系统实际搭建示意图。
图3是绝缘子爬电距离测量系统搭建框图。
图4是绝缘子爬电距离测量系统的结构框图。
图5是KinectFusion算法程序框图。
图6是不同角度下的绝缘子三维重建模型图。
图7是体素切割方向示意图。
图8是三维网格示意图。
图9是体元结构示意图,(a)为虚体元,(b)为边界体元,(c)为实体元。
图10是遍历有效轮廓点计算爬电距离算法示意图。
图11是不同参数下的切割效果图,(a)为错误切割结果图,(b)为正确切割结果图。
图12是体素截面示意图。
图13是截面轮廓点示意图。
图14是二维TSDF示意图。
图15是爬距的有效轮廓点示意图。
图16是全局坐标系示意图。
具体实施方式
本发明的优选实施例结合附图详述如下:
实施例一:
参见图2~图4,本基于三维重建的绝缘子爬电距离测量系统,包括水平电动转台(1)、深度传感器Kinect v2(2)、华硕笔记本电脑(3),其特征在于:所述待测绝缘子按照伞柄朝下伞裙朝上的方式摆放在匀速转动的水平电动转台(1)上,距水平电动转台0.4-4m处的支撑物上放置深度传感器Kinect v2(2)对绝缘子(4)进行360°扫描,获取绝缘子的深度图像及彩色图像,Kinect v2(2)的输出连接到笔记本电脑(3),在笔记本电脑(3)中采用KinectFusion算法进行基于体素数据的三维重建,然后依赖体素网格的数据类型,选择合适的切割面进行切割,截取正确的二维截面,并在二维图像上根据有效轮廓点进行遍历,在遍历过程中累加相邻体素之间的欧式距离来计算爬电距离,将爬电距离的计算转化为两体素之间沿物体轮廓的距离的计算。
实施例二:
本基于三维重建的绝缘子爬电距离测量方法,采用上述系统进行操作,其特征在于具体操作步骤如下:
①深度图像采集:用Kinect v2(2)对绝缘子(4)进行360°扫描,采集其深度图像;
②重建三维模型:通过KinectFusion算法将采集到的图像融合成一个完整的具有体素网格形式三维模型;
③寻找切割面:对体素网格做切割处理的关键是找到正确的切割面,由于绝缘子(4)结构的复杂性,不能简单直接地进行切割,需要将其切割成包含了爬电距离的二维截面;
④网格体素切割:针对绝缘子自身结构,在得到的三维模型中沿着经过绝缘子伞裙裙面直径的平面进行切割,将绝缘子分成互相对称的两部分,并得到包含爬电距离的二维截面;
⑤爬电距离计算:在得到的二维截面上提取表示爬距的有效轮廓点,遍历这些有效点,根据有效轮廓点,将爬电距离的计算转化为两体素之间沿物体轮廓的距离的计算。
实施例三:
本实施例与实施例二基本相同,特别之处如下:
1.所述的基于三维重建的绝缘子爬电距离测量方法,步骤(2)中使用KinectFusion算法框架进行三维重建得到带有有向距离函数的体素网格;
2.所述的基于三维重建的绝缘子爬电距离测量方法,步骤(2)中使用KinectFusion算法前,先使用OPENNI SDK2自动对齐深度相机与彩色相机的坐标系,并以深度摄像机的坐标系为全局坐标系来建立体素网格。
3.所述的基于三维重建的绝缘子爬电距离测量方法,步骤(2)中为了方面后续对模型体素网格的切割,选取绝缘子(4)正对深度摄像机坐标系的图像为第一帧图像,并在第一帧的场景下建立体素网格。
4.所述的基于三维重建的绝缘子爬电距离测量方法,选定绝缘子(4)正对深度摄像机坐标系的图像为第一帧图像的方法是根据该帧图像具有的特点即伞裙关于中轴左右对称以及伞裙面最大来选定的;在获取的600幅彩色图像上进行人机交互操作,根据伞裙对称性可找到候选的10张左右彩色图像,在彩色图像上手动确定中心点,再在深度图像上利用深度不连续性获取经过中心点的左右两侧轮廓边缘点分别记为P,Q,最后在平面上计算的PQ间相差的像素点个数记为S,该值代表伞裙面大小;所有的候选彩色图像中选定S值最大的图像为第一帧图像,即是我们所需的绝缘子正对坐标系的图像。
5.所述的基于三维重建的绝缘子爬电距离测量方法,步骤(3)将建立好的绝缘子的三维重建模型进行切割成包含爬电距离信息的二维截面,由于绝缘子自身复杂的结构,一般的选择平行与坐标面的切割面的切割方式不太适用,又要结合计算复杂度不能太大便于后续计算的特点,这里选择的是平行于YOZ面且经过伞裙裙面直径的平面作为切割面的切割方式,保证了对绝缘子的体素网格进行有效对称切割,得到含爬电距离信息的二维截面。
6.所述的基于三维重建的绝缘子爬电距离测量方法,步骤(4)中,在采集计算过程中,网格分辨率有限,体素上的SDF值很难恰好为0,单个点的TSDF可能产生误差,为了防止漏选轮廓点,所以这里采用以体元为单位筛选轮廓点的方式,可提高提取有效轮廓点的准确性,从而提高系统整体的测量精度。
实施例四:
参见图1,图2,图3,基本于三维重建的绝缘子爬电距离测量系统,包括水平电动转台(孜敏电动转盘NA350,转速约为20秒/圈)(1)深度传感器Kinect v2(2)、华硕笔记本电脑(3),将待测的绝缘子按照图2方式摆放在匀速转动的水平电动转台上,水平转台的转速为0.314rad/s,水平转台带动其上的绝缘子一起匀速转动,距转台0.4-4m处的支撑物上放置Kinect v2,Kinect v2匀速对绝缘子进行360°扫描,其每秒采集30帧深度图像及彩色图像,共采集600幅图像分辨率为512×424的深度图像以及600幅图像分辨率为640×480的彩色图像,通过数据传输线连接到笔记本电脑中,实际环境下的系统具体搭建如图2所示。
如图4所示,系统的整体流程为,首先Kinect v2对绝缘子进行360°扫描采集600幅图像分辨率为512×424的深度图像以及600幅图像分辨率为640×480的彩色图像,获取的这些数据通过传输线连接到笔记本电脑后,在笔记本电脑中采用KinectFusion算法进行基于体素数据的三维重建,先使用OPENNI SDK2自动对齐深度相机与彩色相机的坐标系,并以深度摄像机的坐标系为全局坐标系来建立体素网格,示意图见图16,为了方面后续对模型体素网格的切割,选取绝缘子正对深度摄像机坐标系的图像为第一帧图像,并在第一帧的场景下建立体素网格,最终得到带有有向距离函数的体素网格;再对该体素网格进行对称切割,得到包含爬电距离的二维截面;之后在截面上提取有效轮廓点并对其进行欧式距离的累加,从而得到最终的爬电距离。
如何选定第一帧图像的具体过程如下:因为定义绝缘子正对坐标系的图像为第一帧图像,所以该帧图像具有的特点为伞裙关于中轴左右对称以及伞裙面最大。前面已经使用OPENNI SDK2自动对齐深度相机与彩色相机的坐标系,在获取的600幅彩色图像上进行人机交互操作,根据伞裙对称性可以找到候选的10张左右彩色图像,在彩色图像上手动确定中心点,再在深度图像上利用深度不连续性获取经过中心点的左右两侧轮廓边缘点分别记为P,Q,最后在平面上计算的PQ间相差的像素点个数记为S,该值代表伞裙面大小。所有的候选彩色图像中选定S值最大的图像为第一帧图像,即是我们所需的绝缘子正对坐标系的图像,并以此为起点进行图像重新排序,假设该被选定的图像原序号为100,将这600幅图像按原序号{100,101,102….600.1.2….99}排列并重新定义序号{1.2.3….600},在第一帧场景下建立体素网格。
三维重建是基于Richard A.Newcombe等人提出的KinectFusion算法框架进行。该算法是基于体素网格数据的重建,主要包括四部分:双边滤波、迭代最近点(ICP)、截断有向距离函数(TSDF)、光线投射(Ray-cast),工作流程如图5所示。为了将各个视点下获取的深度数据融合在一起,利用了迭代最近点方法配准当前深度帧与全局模型(frame-model),用于实时估计相机的位姿,计算出从本地到全局转移矩阵,并结合有向距离函数在三维体素网格上融合各个视点下的三维数据,更新全局模型。此外,用双边滤波将Kinect获得的原始数据去噪,为ICP步骤中的寻找最近点奠定基础;用光线投射获取当前视点下观察到的模型点云,与下一帧的深度帧进行新一轮的配准。其中TSDF是用一个数值来表示该点到最近的物体表面的远近程度,物体内部和外部的点用数值的正负来表征(图14)。如果物体表面以内的点的有向距离函数值是正值,那么物体表面以外的点的有向距离函数值就是负值,因此,有向距离函数值为0的点(过零点)即为物体表面上的点。
具体重建过程为:将Kinect v2获取的600幅深度图像读入,对于每一帧新进入的深度数据,首先在深度图上进行双边滤波。遍历深度图像上的所有具有有效深度的像素,访问该像素的邻域像素,做加权平均,结果代替原有的中心像素。所谓双边滤波,就是求平均时权重由两个变量决定,一个是邻域像素在位置上到中心像素的欧式距离,一个是邻域像素和中心像素的深度值之间的差值,这两个值越大,权重越小。这样在做图像平滑的时候,可以有效保留物体的边缘信息。除了第一帧图像,其余的经过滤波的图像都和保存在全局体素网格中的数据做帧与模型之间的ICP配准。模型中的点云通过光线投影法进行渲染得到,具体是从上一帧的视点下,从图像平面分别投射光线到全局体素网格,当遇到TSDF的过零点才停止,返回顶点图和法线图。然后与帧的顶点图和法线图按照欧氏距离寻找最近点,即配准时的对应点。由于处理的是连续帧的数据,相邻视点的位姿旋转可以用小角度的线性模型表示,然后用最小二乘法求解位姿变化量使对应点之间点到平面距离最小。得到最小二乘解(位姿变化量)后,更新位姿,按照上面的方法重新寻找最近点,重复最小二乘求解,直至收敛。完成ICP配准后,利用估计得到的位姿,将当前深度帧的点云数据加权平均到TSDF数据中,更新得到新的模型。每一帧都按照这样的操作,估计位姿和更新模型。模型与帧之间的配准,因为模型是经过多个深度数据加权平均得到的结果,要比单帧的数据更可靠,而且可以克服轻微的位姿估计的漂移,能有效减少累积误差。经过这个密集同时定位并制图过程(dense SLAM),我们最终得到绝缘子的完整三维模型,图6为从三个角度下观察到的三维重建模型示意图。
如图7所示,要准确计算绝缘子的爬电距离,需要找到正确的切割面来切割出包含爬电距离的二维截面,但由于绝缘子结构的复杂性,不能简单直接地进行切割,需要寻找合适的切割面,以深度摄像机的坐标系为全局坐标系,一般在体素网格中正对绝缘子伞裙的某条直径切割出一个截面,然后在二维空间计算感兴趣曲线的弧长。下面将说明如何正确地切割体素,体素切割的关键是找到切割面的平面方程,切割平面可用三元一次方程表示:
Ax+By+Cz+D=0 (1)
其中A、B、C为平面方程的系数,D表示原点到平面的距离,
设绝缘子伞裙裙面为α,其法向量为n=(A,B,C),三维坐标系如图7右下角所示。首先考虑面α垂直或者平行于坐标平面的情况,易于选择平行于坐标面的平面来切割体素,减少切割面方程的未知量,即:
XOY、YOZ及XOZ分别代表垂直于Z轴、X轴、Y轴的平面,由于n⊥XOY平面和n⊥YOZ平面这两种情况无法稳定放置绝缘子,n⊥XOZ平面是把绝缘子伞裙朝下倒放在电动转台上,但这样采集到的图像缺少伞裙内部细节,所以采集时绝缘子只能如图7稳定放置。因此,法向量n不垂直于任何一个坐标平面,直接求切割面方程有一定难度。为了减少计算复杂度,本算法中选择的切割面是平行于YOZ面并经过伞裙裙面直径的平面,如图7所示。
由于三维坐标是根据第一帧数据建立的,所以在采集的深度数据中,我们将切割面与像平面垂直的时刻作为第一帧,以此建立三维坐标。由于切割面平行于YOZ面,所以B=C=0,切割面的平面方程可以化简为:
调整-D/A(常数)直到切割面将绝缘子分成互相对称的两部分为止,切割之后得到二维截面。实际操作中,切割面方程设为D/A=-36.5,若该常数设置得过大或者过小,切割面不会经过伞裙裙面直径,无法得到准确的爬电距离,如图11(a)所示,准确的切割效果如图11(b)所示。
体素切割之后,我们得到的是一幅整齐排列的二维图像数据,相比离散的点云数据,无需复杂的曲线方程拟合,只需要简单地二值化。得到二维截面之后,需要在截面中找出表示轮廓的点,如图13所示,并将这些点连接起来计算其中的爬距。首先将截面点二值化,KinectFusion中是采用TSDF模型进行深度数据的融合,设某点x的TSDF值为f(x),若f(x)大于或小于0,说明点x属于被重建物体内部或者背景部分;若f(x)的值为0,说明点x是物体轮廓点。如图14所示,过零点的连线表示物体的轮廓。
因为计算过程中,网格分辨率有限,体素上的TSDF值很难恰好为0。所以为了防止漏选轮廓点,这里采用以体元为单位筛选轮廓点的方式。体元是三维网格中由相邻的八个体素点组成的小立方体,属于物体内部的体素点被称为实点,反之落在物体外部的被称为虚点;大多数的体元的8个体素都是虚点或者都是实点,这些体元被称作虚体元和实体元,如图9(a)和图9(c)所示,而我们感兴趣的体元是既含有实点和虚点,它们被称为边界体元,如图9(b)所示。
不妨设某个体元为Xj,它是一个包含8个体素的集合:
Xj={X0,X1,…,X7},x∈R3 (4)
其中R3为实数集,表示x的取值范围,边界体元集合C理论上可以表示为:
C={Xj|0<g(Xj)<8} (5)
其表示二值化操作:
f(xi)代表某个体素的截断有向距离函数。设感兴趣区域为I,则感兴趣的边界体元为:
从而得到感兴趣体素边界集合V为:
切割之后得到的体素截面如图12所示,图中A、B两体素之间沿轮廓的距离即为爬电距离。
由前面得到所有V中的边界体素vi后,遍历V中的边界体素,在遍历过程中累加相邻体素之间的欧式距离来计算爬电距离:
其中p(vi)是寻找到的候选点,p(vi-1)是当前像素点,‖p(vi)-p(vi-1)‖2代表该两点之间的欧式距离,累加的距离和L即是爬电距离。
算法过程为:我们将起点赋给当前像素点,在该点的八邻域范围内寻找候选点pi,若找不到这样的候选点,则扩大邻域范围直至寻找到候选点。找到候选点之后计算当前点与候选点之间的欧式距离,然后将候选点赋给当前点。重复上述过程,将当前点与候选点之间的距离I累加起来,循环到设定的终点p1时结束,累加的距离之和即为爬电距离。算法流程见图10。
该系统测量精度的评价采用相对误差标准,该系统的测量精度记为Q1:
Q1=(A-B)/B*100% (11)
其中A表示该系统测量出的绝缘子爬电距离值,B表示实际绝缘子爬电距离值,
若使用手工测量的方法进行测量(用绳子与尺进行测量),其测量精度记为Q2:
Q2=(C-B)/B*100% (12)
其中C表示手工绳尺测量出的绝缘子爬电距离。比较Q1和Q2大小即用相对误差标准来评价测量方法的精度。