文献速递:机器学习在超声非破坏性评估中的合成和增强训练数据综述(第二部分)— 合成数据生成方法用于超声波测试

本文主要是介绍文献速递:机器学习在超声非破坏性评估中的合成和增强训练数据综述(第二部分)— 合成数据生成方法用于超声波测试,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Title
题目

A review of synthetic and augmented training data for machine learning in ultrasonic non-destructive evaluation

机器学习在超声无损检测中合成与增强训练数据的综述

01
文献速递介绍

 注:原文篇幅较长,这里分多次进行分享。

近年来,超声波检测(UT)在机器学习(ML)的应用不断增加,推动了缺陷检测和分类中更高级别的自动化和决策制定。在非破坏性评估(NDE)中,特别是在UT中应用ML,构建一个通用的训练数据集极其困难,因为需要原始和具有代表性的有缺陷样本的数据。然而,在大多数UT测试案例中,有缺陷的样本数据本质上很少,使得数据覆盖成为应用ML时的主要问题。常见的数据增强(DA)策略提供的解决方案有限,因为它们不增加数据集的变异性,可能导致对训练数据的过拟合。虚拟缺陷方法和最近在UT中应用的生成对抗神经网络(GANs)是旨在解决这一问题的复杂DA方法。另一方面,超声波波动传播建模方面的成熟研究允许生成合成UT训练数据。在这一背景下,我们提出了第一个主题综述,总结了过去几十年在NDE中合成和增强UT训练数据的进展。此外,还介绍了合成UT数据生成和增强的方法概述。介绍并讨论了有限元、有限差分和弹性动力有限积分等数值方法,以及广义点源合成、高斯束叠加和铅笔法等半解析方法以及其他UT建模软件。同样,介绍并讨论了现有的一维和多维UT数据、特征空间增强和用于增强的GANs的DA方法。文章最后详细讨论了现有方法在合成UT训练数据生成和UT数据DA方面的优势和局限性,以帮助读者决定应用于特定测试案例。

Synthetic data generation methods for ultrasonic testing
超声检测的合成数据生成方法(原文第三部分)

数据增强方法

这一部分详细介绍了数据增强方法(Data Augmentation, DA)在超声波检测(Ultrasonic Testing, UT)数据处理中的应用。数据增强是通过对现有数据进行变换,增加数据集的多样性,以防止机器学习模型的过拟合。这些方法可以应用于模型的输入空间或特征空间。

对A扫描(一维数据)进行输入空间数据增强的方法

包括时间位移、添加噪声、噪声减少、信号拉伸或压缩等。这些方法的目的是保持合成A扫描数据与真实数据在信号特性上的一致性。

时间位移技术 通过对A扫描信号进行正负时间位移,模拟换能器与缺陷位置之间距离的变化。

添加噪声的方法 例如添加白噪声或高斯噪声,以模拟超声波换能器和测量系统中的随机过程。

噪声减少技术 如使用滤波器或小波分解等方法去除信号中的噪声。

信号拉伸/压缩技术 改变信号的频谱特性和事件之间的绝对时间。

虚拟缺陷方法 通过将已分离的缺陷信号组件逐点植入另一个有缺陷或无缺陷的信号中,生成包含缺陷的新数据。

节讨论了互易原理在数据增强中的应用 通过模拟线性系统中换能器和传感器位置之间的互易关系,以减少模拟所需的工作量。

对B扫描和C扫描(二维数据)进行输入空间数据增强的方法

这些方法主要借鉴了深度学习中的图像数据增强技术。包括几何变换、噪声注入、颜色空间转换、内核滤波器处理等。

节介绍了特征空间增强技术

这种技术不直接处理输入数据,而是处理模型学习到的特征空间。常见的特征空间增强方法包括添加噪声、外推或内插。

生成对抗神经网络(Generative Adversarial Neural Networks, GANs)在数据增强中的应用

GANs由两个竞争的深度神经网络组成,一个生成器网络生成新数据,另一个鉴别器网络区分真实数据和生成数据。GANs在数据增强中的应用,特别是在提高图像分辨率方面显示出优越性。

本文详细介绍了用于非破坏性检测(NDE)中超声波测试(UT)模拟的各种方法。这些方法包括半解析建模、数值建模和特定的UT建模软件。

模拟方法

与数据增强(DA)不同,模拟方法基于物理和/或统计模型生成新的合成数据集。这些模型旨在量化样品中的波传播和对预期缺陷的响应,以及比较不同测试策略在检测和尺寸能力方面的差异。模拟方法包括数学建模超声波传播和与缺陷的相互作用。为了生成足够多样化的合成UT训练数据,通常需要数千到数十万条数据。这要求脚本自动化来搜索参数空间,例如缺陷或换能器参数,以生成这些数据集。数据集的条目可以从单个A扫描到完整的多通道数据集不等。

半解析建模

半解析方法处理更多现实的检查场景,是纯解析和数值计算方法的混合。例如,它们结合了简化条件下的解析基本解决方案与这些基本解决方案的数值积分或求和。计算时间方面,半解析叠加方法具有优势,因为它通常只涉及模型中的特征表面的波场计算。

本文重点讨论了三种主要的半解析UT模拟方法:广义点源合成(GPSS)、高斯束(GB)叠加和铅笔法(PM),后者是商业CIVA-UT软件的基础。

数值建模

为了在复杂和现实条件下计算波传播,开发了如有限元方法(FEM)、有限差分方法(FDM)或弹性动力有限积分技术(EFIT)等数值计算方法。这些方法通过将空间和时间分解为元素和步骤来离散化和求解基本物理方程,例如波动方程。数值建模技术能够覆盖完整的波物理,包括干涉效应、模式转换、界面波、引导波、多重散射以及振动和驻波等。

UT建模软件

市场上提供了多种UT建模软件,包括CIVA、Pogo、UTman、k-Wave和simSUNDT等。这些软件基于上述基本模拟方法之一。例如,CIVA是基于铅笔法开发的商业软件,用于模拟UT、涡流(ET)、X射线检查。simSUNDT是基于半解析数学核心的Windows前后处理器。Pogo是一种基于GPU的有限元求解器,主要用于非破坏性评估。k-Wave是一个用于模拟和重建光声波场的MATLAB工具箱。UTman主要用于快速UT培训,特别是焊接检查的模拟。

这篇关于文献速递:机器学习在超声非破坏性评估中的合成和增强训练数据综述(第二部分)— 合成数据生成方法用于超声波测试的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

Java中流式并行操作parallelStream的原理和使用方法

《Java中流式并行操作parallelStream的原理和使用方法》本文详细介绍了Java中的并行流(parallelStream)的原理、正确使用方法以及在实际业务中的应用案例,并指出在使用并行流... 目录Java中流式并行操作parallelStream0. 问题的产生1. 什么是parallelS

MySQL数据库双机热备的配置方法详解

《MySQL数据库双机热备的配置方法详解》在企业级应用中,数据库的高可用性和数据的安全性是至关重要的,MySQL作为最流行的开源关系型数据库管理系统之一,提供了多种方式来实现高可用性,其中双机热备(M... 目录1. 环境准备1.1 安装mysql1.2 配置MySQL1.2.1 主服务器配置1.2.2 从

Python版本信息获取方法详解与实战

《Python版本信息获取方法详解与实战》在Python开发中,获取Python版本号是调试、兼容性检查和版本控制的重要基础操作,本文详细介绍了如何使用sys和platform模块获取Python的主... 目录1. python版本号获取基础2. 使用sys模块获取版本信息2.1 sys模块概述2.1.1

Python实现字典转字符串的五种方法

《Python实现字典转字符串的五种方法》本文介绍了在Python中如何将字典数据结构转换为字符串格式的多种方法,首先可以通过内置的str()函数进行简单转换;其次利用ison.dumps()函数能够... 目录1、使用json模块的dumps方法:2、使用str方法:3、使用循环和字符串拼接:4、使用字符

Python版本与package版本兼容性检查方法总结

《Python版本与package版本兼容性检查方法总结》:本文主要介绍Python版本与package版本兼容性检查方法的相关资料,文中提供四种检查方法,分别是pip查询、conda管理、PyP... 目录引言为什么会出现兼容性问题方法一:用 pip 官方命令查询可用版本方法二:conda 管理包环境方法

Linux云服务器手动配置DNS的方法步骤

《Linux云服务器手动配置DNS的方法步骤》在Linux云服务器上手动配置DNS(域名系统)是确保服务器能够正常解析域名的重要步骤,以下是详细的配置方法,包括系统文件的修改和常见问题的解决方案,需要... 目录1. 为什么需要手动配置 DNS?2. 手动配置 DNS 的方法方法 1:修改 /etc/res

Linux下利用select实现串口数据读取过程

《Linux下利用select实现串口数据读取过程》文章介绍Linux中使用select、poll或epoll实现串口数据读取,通过I/O多路复用机制在数据到达时触发读取,避免持续轮询,示例代码展示设... 目录示例代码(使用select实现)代码解释总结在 linux 系统里,我们可以借助 select、

JavaScript对象转数组的三种方法实现

《JavaScript对象转数组的三种方法实现》本文介绍了在JavaScript中将对象转换为数组的三种实用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友... 目录方法1:使用Object.keys()和Array.map()方法2:使用Object.entr

SpringBoot中ResponseEntity的使用方法举例详解

《SpringBoot中ResponseEntity的使用方法举例详解》ResponseEntity是Spring的一个用于表示HTTP响应的全功能对象,它可以包含响应的状态码、头信息及响应体内容,下... 目录一、ResponseEntity概述基本特点:二、ResponseEntity的基本用法1. 创

java中判断json key是否存在的几种方法

《java中判断jsonkey是否存在的几种方法》在使用Java处理JSON数据时,如何判断某一个key是否存在?本文就来介绍三种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的... 目http://www.chinasem.cn录第一种方法是使用 jsONObject 的 has 方法