毕业设计-基于深度学习的焊缝图像边缘识别相似度检测系统

本文主要是介绍毕业设计-基于深度学习的焊缝图像边缘识别相似度检测系统,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

前言

课题背景和意义

实现技术思路

一、相关工作

二、系统总体功能图

三、预处理和图像增强

四、相似度辨识

五、实验

六、总结

实现效果图样例

最后


前言


    📅大四是整个大学期间最忙碌的时光,一边要忙着备考或实习为毕业后面临的就业升学做准备,一边要为毕业设计耗费大量精力。近几年各个学校要求的毕设项目越来越难,有不少课题是研究生级别难度的,对本科同学来说是充满挑战。为帮助大家顺利通过和节省时间与精力投入到更重要的就业和考试中去,学长分享优质的选题经验和毕设项目与技术思路。

🚀对毕设有任何疑问都可以问学长哦!

选题指导: https://blog.csdn.net/qq_37340229/article/details/128243277

大家好,这里是海浪学长毕设专题,本次分享的课题是

🎯毕业设计-基于深度学习的焊缝图像边缘识别相似度检测系统

课题背景和意义

高压天然气输送管线和压力容器在施工制造过程中会 因为焊接形成大量焊缝,焊接施工的质量好坏对工程质量非 常关键。在施工过程中,通过对焊缝的质量检测和缺陷评定 来判断焊接效果。由于X射线具有较强的穿透能力,有助于 检查焊接部位的内部问题,在焊缝缺陷检验中使用很普遍。 出于追赶工期或者掩饰质量问题等目的,有些施工单位会对 同一组无缺陷的焊缝图像多次利用,生成多组重复图片,再 通过重复检测,来冒充未实际送检的焊缝图像,或者掩盖有 质量问题的焊缝图像。 在油气行业,一般工程 施工都要好几年,设备大修也会持续数个月,过程中会产生 数万张甚至数十万张焊缝图像,工程高峰期间甚至需要上百 名无损探伤检测及评定人员同时参与。在这种情况下,一个 缺陷评定人员只能接触到很小的一部分焊缝图像,更不可能 记住数月前或几年前评定过的图片。传统人工方法就难以辨别 重复图片,不能有效保证施工和产品质量。近年来,基于计 算机视觉的工业自动化缺陷检测方法也呈现出爆发式的增 长,计算机视觉领域的分类 、目标检测、分割等方法都 可用于工业缺陷检测。

实现技术思路

一、相关工作

对于焊缝图像查重问题,目前相关研究尚处于理论阶 段。深度学习是一种基于对数据进行表征学习的算法,相较 于传统浅层学习方式,可以对所学到的特征信息进行非线性 转换,从而计算出更为抽象的特性信息。卷积神经网络的网 络构架更为简单清晰,在目标检测等许多领域有着相当好的 应用效果 。DEEPAK等试图找出各种无损检测技术检 测焊接缺陷的敏感性。ZHANG等提出了焊缝指纹的概 念,基于改进的SPP-net深度学习模型提取焊缝特征,焊缝 的这些深度学习特征被称为焊缝指纹。

利用计算机视觉技术对焊接部位图像进行检测分类,并 使用背景差分法将没有缺陷的焊缝图像作为背景图像,与输 入图像的所有像素点进行对比,从而确定焊缝缺陷图像的特 征区域,再以缺陷的面积大小、亮度及形状等特征作为依据, 对焊缝缺陷图像进行分类。在针对图像纹理特征计算 时,可以运用散度来评价两处纹理特征相似度。

基于Kull- back-Leibler(KL)散度和类分离策略的特征选择算法,可以 度量类别与特征间的相关性以及特征之间的冗余性。 Jensen-Shannon(JS)散度是基于KL散度的变体,度量了两 个概率分布的相似度,解决了KL散度非对称的问题。 Wasserstein距离不仅给出了两个分布之间的距离,而且能 够告诉我们它们具体如何不一样,即如何从一个分布转化为 另一个分布。

二、系统总体功能图

企业级用户希望根据焊缝影像数据开发出一种焊缝图 像相似性自动比较的算法软件,自动识别绝大部分焊缝重复 图像,希望预期查重准确率达到90%以上,运行和检测高效 稳定。同时希望算法和程序兼容性好,方便与已有系统对 接,交互界面直观。鉴于此,重点研究直线焊缝以及大管径 管道焊缝的影像比对,算法和产品需实现如图所示的 功能。

在整个系统中,待鉴别的焊缝图片在导入系统后,将先 对其进行内置的预处理算法,使其符合系统的输入标准。而 后进行特征提取,并将提取所得的特征与数据库中的图像特 征进行比对识别,判定是否为原有焊缝图库中的重复影像。

三、预处理和图像增强

图像预处理

由于输入的焊缝图像存在图片明暗不均匀、对比度较 小、边缘过曝等质量问题,且对于潜在的重复焊缝图片,造假 者可能故意调整焊缝图像的拍摄角度或拍摄时的稳定度,输 入的图片一般都无法直接进行有效地图像处理。

如图是 一张典型的未经过预处理的焊缝图像,可以看到该图像本身 无明显噪点,而存在对比度较小,焊缝主体部分未得到明显 的显示等问题。

通过直接对图像进行直方图均衡化, 得到的处理结果如图所示。

图显示了该图像处理前与处理后在灰度值统计直方 图上的变化。可以清晰地看出,图片在经直方图均衡化后大 大提高了对比度,且从灰度直方图的角度来看也获得了较好 的均匀化。

图像增强

经过均衡化处理后,焊缝区域灰度值在两侧边界值已有 了较明显的突变。此时,为了突出焊缝区域,需对图像进行 二值化,通过这个阈值设定,将图像分为焊缝与背景。为了 保证程序的运行效率,使用算法优化较好的最大类间方差法 图像二值化阈值,对一组图库组图像运行结果如图所示。

从图可以看出,使用该算法在根据图像亮度自适应调节阈 值的同时,获得了较好的焊缝边界,便于后续的处理。

 此外,对于焊缝射线图像的拍摄,时常因为仪器位置受 限、拍摄手法不佳或造假者故意为之等原因,无法得到接近 水平的焊缝图像。霍夫变换是一种常用的直线检测方法,利 用霍夫变换能够检测出二值化图片上的潜在直线,并以最长 直线代表焊缝整体走向,以此做倾斜角度的校正。实际优化 效果如图所示。

经过水平校正后的图片仍然不能用于特征提取,原因是 其中与焊缝特征无关的信息过多,大部分为两侧的金属材 料,因此需要准确地提取出焊缝区域用于后续的纹理特征。 此时需要借助拉东变换对焊缝进行水平方向的投影,才 能定位焊缝区域大致的上下边界。

四、相似度辨识

算法选择

图像预处理和增强之后,采用在计算图像局部熵的基础 上进行散度计算的识别方法来评价两处纹理特征相似度,常 用算法包括KL散度计算、JS散度计算和Wasserstein距离 等。如果计算结果的散度值在阈值以下,即2个分布的差异 较小,则认为该输入图片与当前图库中的某张图片重复。为 了选出本工程场景下最适用的散度算法,对上述3种常用算 法运用加权决策矩阵法进行评价,如表所示。

KL散度算法

KL散度是计算2个概率分布P和Q差异的一种常用 方法。二者之间差异越小,散度计算值越小。KL散度的离 散及连续定义分别如下:

 式中,P(x)为目标分布,Q(x)为匹配分布,若两个分布完全 相同,则D(P Q)=0,反之意味着D(P Q)≠D(Q P)。

通过上述处理后可得到一系列的纹理特征增强图像的 统计分布,由于为离散分布,则可对任取两个分布P、Q进行 KL散度的计算。由于该相对熵的不对称性,仅凭一次计算 来描述一对图片是片面的,本文采用散度和作为一组图片的 描述方法,表达式如式:

功能实现

在构建焊缝影像数据库时,需要对每张图片的纹理特征 结果进行保存,并按顺序每两张进行一次KL散度计算,作 为文件阈值评判的标准。

对于后续测试组的图片,将所得的纹理统计分布与保存 的增强图片统计分布逐一进行KL散度值的计算,如果计算 结果的散度值在阈值以下,即2个分布的差异较小,则认为 该输入图片与当前图库中的某张图片重复,输出该张图片的 序号,并程序初步判断为造假图片,提交至人工二次审定;如 果计算结果散度值超过阈值,即2个分布的差异较大,则认 为该图片与当前图库中的所有图片均不重复,并且保留该次 图像的增强结果,重新编号并保存进图库中。

五、实验

数据集和设置

本项目的检测系统搭建需要两部分,分别是焊缝图库的 建立与焊缝图片的检测。其中程序运行所使用的图片均由 企业方提供,接收到的所有焊缝图片已提前对图像拍摄时 间、焊工工号、焊缝管线号等敏感标记信息做了遮盖处理,共 接收成对的重复焊缝图片总计300组。

实验结果

图为某组焊缝图片组内KL散度计算结果,可以看出 特征提取效果较好的图片在与非重片计算时得到的KL散 度值结果较大,进一步筛去这类图片,关注底部数据以确定 重复图像判别的阈值,重新获得散点如图所示。

焊缝图片组内KL散度计算结果

筛选后焊缝图片组内KL散度计算结果

六、总结

为了解决焊缝射线探伤图像查重问题,通过算法优化和 工程现场实际图像数据分析,采用滤波、二值化、边缘识别、 倾斜校正、焊缝提取等大量预处理操作,构建了焊缝图像金 字塔,通过相同窗口大小局部熵运算增强纹理,提取焊缝图 像特征点,设计并开发出了一套基于深度学习技术的焊缝图 像相似度比较的算法模块,利用该算法模块,能自动识别绝 大部分焊缝重复图像,最终准确率为92.3%,能够在很大程 度上减轻图像评定工作的压力,使工作人员将更多精力放在 提升工程质量等方面,而不必在焊缝图像造假检测上消耗太 多时间。

实现效果图样例

焊缝图像边缘识别相似度检测系统:

我是海浪学长,创作不易,欢迎点赞、关注、收藏、留言。

毕设帮助,疑难解答,欢迎打扰!

最后

这篇关于毕业设计-基于深度学习的焊缝图像边缘识别相似度检测系统的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/270512

相关文章

深度解析Python yfinance的核心功能和高级用法

《深度解析Pythonyfinance的核心功能和高级用法》yfinance是一个功能强大且易于使用的Python库,用于从YahooFinance获取金融数据,本教程将深入探讨yfinance的核... 目录yfinance 深度解析教程 (python)1. 简介与安装1.1 什么是 yfinance?

Python脚本轻松实现检测麦克风功能

《Python脚本轻松实现检测麦克风功能》在进行音频处理或开发需要使用麦克风的应用程序时,确保麦克风功能正常是非常重要的,本文将介绍一个简单的Python脚本,能够帮助我们检测本地麦克风的功能,需要的... 目录轻松检测麦克风功能脚本介绍一、python环境准备二、代码解析三、使用方法四、知识扩展轻松检测麦

Python学习笔记之getattr和hasattr用法示例详解

《Python学习笔记之getattr和hasattr用法示例详解》在Python中,hasattr()、getattr()和setattr()是一组内置函数,用于对对象的属性进行操作和查询,这篇文章... 目录1.getattr用法详解1.1 基本作用1.2 示例1.3 原理2.hasattr用法详解2.

Linux查询服务器系统版本号的多种方法

《Linux查询服务器系统版本号的多种方法》在Linux系统管理和维护工作中,了解当前操作系统的版本信息是最基础也是最重要的操作之一,系统版本不仅关系到软件兼容性、安全更新策略,还直接影响到故障排查和... 目录一、引言:系统版本查询的重要性二、基础命令解析:cat /etc/Centos-release详

更改linux系统的默认Python版本方式

《更改linux系统的默认Python版本方式》通过删除原Python软链接并创建指向python3.6的新链接,可切换系统默认Python版本,需注意版本冲突、环境混乱及维护问题,建议使用pyenv... 目录更改系统的默认python版本软链接软链接的特点创建软链接的命令使用场景注意事项总结更改系统的默

在Linux系统上连接GitHub的方法步骤(适用2025年)

《在Linux系统上连接GitHub的方法步骤(适用2025年)》在2025年,使用Linux系统连接GitHub的推荐方式是通过SSH(SecureShell)协议进行身份验证,这种方式不仅安全,还... 目录步骤一:检查并安装 Git步骤二:生成 SSH 密钥步骤三:将 SSH 公钥添加到 github

深度解析Spring Security 中的 SecurityFilterChain核心功能

《深度解析SpringSecurity中的SecurityFilterChain核心功能》SecurityFilterChain通过组件化配置、类型安全路径匹配、多链协同三大特性,重构了Spri... 目录Spring Security 中的SecurityFilterChain深度解析一、Security

深度解析Nginx日志分析与499状态码问题解决

《深度解析Nginx日志分析与499状态码问题解决》在Web服务器运维和性能优化过程中,Nginx日志是排查问题的重要依据,本文将围绕Nginx日志分析、499状态码的成因、排查方法及解决方案展开讨论... 目录前言1. Nginx日志基础1.1 Nginx日志存放位置1.2 Nginx日志格式2. 499

Linux系统中查询JDK安装目录的几种常用方法

《Linux系统中查询JDK安装目录的几种常用方法》:本文主要介绍Linux系统中查询JDK安装目录的几种常用方法,方法分别是通过update-alternatives、Java命令、环境变量及目... 目录方法 1:通过update-alternatives查询(推荐)方法 2:检查所有已安装的 JDK方

Linux系统之lvcreate命令使用解读

《Linux系统之lvcreate命令使用解读》lvcreate是LVM中创建逻辑卷的核心命令,支持线性、条带化、RAID、镜像、快照、瘦池和缓存池等多种类型,实现灵活存储资源管理,需注意空间分配、R... 目录lvcreate命令详解一、命令概述二、语法格式三、核心功能四、选项详解五、使用示例1. 创建逻