APP下载

基于C#的水下结构物表面裂缝测量系统设计与实现

2023-06-12郝真张晓峰王善民王随

电脑知识与技术 2023年11期
关键词:软件设计裂缝

郝真 张晓峰 王善民 王随

关键词:裂缝;双目视觉;C#;软件设计

0 引言

水下结构物因长期受到水体腐蚀和水力冲刷会产生结构性损伤,当损伤积累到一定程度会严重影响到水下结构物的使用,最后导致灾害的发生。

随着计算机视觉和图像处理等相关技术的发展,双目视觉技术被广泛应用于各种领域。白创等[1]利用双目视觉技术测量车身尺寸,取得了良好的实验效果;万至达等[2]以水坝表面缺陷为研究对象,对双目视觉测量进行了相关算法研究。

本文在双目视觉算法研究的基础上,设计并实现了基于C#的水下结构物表面裂缝测量系统。经过实验测试,该软件可以实现相机标定、图像采集、图像预处理、立体匹配、测量和记录等功能,符合软件设计的要求。

1 双目视觉技术简介

采用双目视觉技术完成测量是计算机视觉领域研究的重点课题,该技术通过两台不同位置的相机拍摄同一场景下的物体,并计算双目相机中同一点的视差图,通过点的三维还原,即可得到该点在某一相机为原点的三维空间中的世界坐标。双目视觉技术主要由相机标定和立体匹配组成,原理如图1所示。

1.1 相机标定

通常相机在生产或者安装中,不可避免地引入非线性畸变,该畸变会导致立体匹配误差被放大,严重影响后续测量的准确性,因此相机标定通常是双目视觉技术的第一步。

双目相机标定是根据像素坐标系与世界坐标系的关系,利用一定的约束条件,求解双目相机内外参数的过程。传统的相机标定技术中,张正友[3]提出了一种基于二维棋盘格的相机标定方法,该方法灵活且使用方便,是目前最常用的相機标定方法,但是在水中易受到光的折射影响,导致相机标定精度较低。乔金鹤[4]通过引入高阶径向畸变和不能忽略切向畸变的方法,成功计算出双目相机的内外参数,且重投影误差符合预期。

1.2 立体匹配技术

1) 立体校正

双目相机拍摄的图像并不能完全达到共面且平行,因此在立体匹配前需要对非共面且行对准的两幅图像进行立体校正:首先通过相机标定得到的内参数消除畸变,然后使用外参数进行校正。该流程如图2所示:

通过立体校正使用Bouguet算法,该算法依赖于相机的外参数旋转矩阵R及平移矩阵T。双目相机采集的图像经过立体校正可以大大提高立体匹配的精度,并减少测量误差。

1.3 半全局立体匹配

立体匹配算法是双目视觉的核心内容,根据约束的作用范围不同,通常分为局部立体匹配和全局立体匹配。本文测量对象为水下结构物,容易受到光线折射的影响,因此本文选择对光线不敏感且鲁棒性更好的半全局立体匹配。

半全局立体匹配算法是基于一种逐像素匹配的方法,该方法使用互信息来评价匹配代价,并通过组合很多一维的约束来近似一个全局的二维平滑约束,主要有预处理、代价计算、动态规划、后处理四个步骤[5-6]。通常半全局立体匹配可以得到的稠密的视差图,如图3(c)所示,为了更直观反映该像素点距离相机的深度信息,本文将视差图中不同的深度信息转化为彩色视差图,如图3(d)所示。

通过选择视差图中任意一点,即可得到该点在空间坐标系中的三维坐标,最终实现两点之间的尺度测量。

2 裂缝测量系统设计与实现

本文在双目视觉技术研究的基础上,设计和实现了裂缝测量系统软件。该软件交互界面由C#搭建完成,算法由VS软件安装OpenCV机器视觉库开发完成,算法实现后转为dll动态库供人机交互界面调用,最终实现人机交互界面与算法的统一。

2.1 软件模块设计

本文设计的裂缝测量系统软件模块共分为登录模块、相机标定模块、图像预处理模块及裂缝测量模块四个模块,如图4所示。

1) 登录模块需要主要由用户名数据库验证及结果保存,用户通过安全登录用户名和密码才可以进入该系统。

2) 相机标定模块,主要完成水下相机标定。通常相机的标定结果只受环境的影响,因此只需一次标定即可长期使用,并且可以实时查看相机标定效果。

3) 水下图像预处理模块,主要针对水下图像进行处理,其中测量之前需选图像去噪,匀光处理和图像增强根据采集图像的质量人工选择。

4) 裂缝测量模块,该部分是系统的核心内容,预处理后的图像进行立体校正,其次使用改进后的半全局立体匹配得到视差图,在视差图可以使用自动测量或者手动选择实现尺度测量。

2.2 人机交互界面设计

本软件设计的界面共有登录界面、相机标定界面、水下结构物表面裂缝测量界面组成。

登录界面包括登录名、密码和账户类型组成,并可以登录或者注销登录账号,如图5所示。

相机标定可以实时采集棋盘格图像或者从本地读取,并输入角点个数和方格大小;标定方法可以选择张正友标定法或改进张氏标定法;最后可以根据标定结果立即显示立体校正效果。

测量界面如图6所示,该界面共有包括立体校正功能、测量功能、图像预处理功能、日志查询功能和裂缝测量显示区五个功能。立体校正主要有读取标定结果和立体校正功能;测量功能包括手动测量和自动测量;图像预处理包括图像去噪、匀光处理及图像增强;日志查询功能可以按时间查询时间范围内数据库中保存的内容;裂缝测量显示区显示当前原始左、右图像,二值化图像及立体匹配后的视差图。

3 软件测试与仿真

3.1 相机标定测试

相机标定可以选择从相机实时读取棋盘格图像或者从本地路径中直接读取,计算得到的相机内外参数可保存供直接使用。相机标定现场实验如图7所示。

相机标定实验中,通过双目相机实时拍摄棋盘格图像统计、计算,并根据双目相机内外参数实现立体校正,如图8所示。

3.2 水下结构物表面裂缝测量系统测试

本文系统测试环境选择在实验室条件下进行,其中水流为静止状态,水温20°,水下结构物由水泥制成,裂缝为不规则的曲线,并加入一定的杂质,如图9所示。

本软件提供两种测量方法,手动测量或者自动测量。自动测量通过二值化图像中自动寻找裂缝最大宽度处的二维坐标实现自动测量,但是一些极端情况,图像处理不能得到二维坐标,因此需要通过手动选择视差图中的任意两个二维点实现手动测量,测量实验如图10所示。

本软件可以自动设置匹配窗口大小、阈值、搜索范围等实现立体匹配。得到的测量结果如图11所示。

根据实验结果,本软件可以实现水下结构物表面裂缝测量,且测量误差小于5%,测量结果满足要求。根据国内水利水电标准,及时有效分类防治,可以减少事故的发生。

4 结束语

本文通过C#开发工具设计并实现了水下结构物表面裂缝测量系统。该软件由登录功能、相机标定功能、水下图像预处理功能和测量功能组成,能实现水下结构物表面的裂缝测量,满足实际工程需要。

猜你喜欢

软件设计裂缝
碳酸盐岩裂缝描述七大难点
完美“切割”,裂缝之谜
地球的裂缝
基于单片机SPCE061A的字幕机点阵式字母电子显示屏的设计制作
生命必须有裂缝,阳光才能照进来