当前位置: 首页 > news >正文

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

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培训,特别是焊接检查的模拟。

相关文章:

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

Title 题目 A review of synthetic and augmented training data for machine learning in ultrasonic non-destructive evaluation 机器学习在超声无损检测中合成与增强训练数据的综述 01 文献速递介绍 注:原文篇幅较长,这里分多次进行分享。近年来&…...

gitlab高级功能之mirroring - push mirroring(一)

今天给大家介绍一个gitlab很高级也是非常有用的功能 - gitlab的mirroring,你可以将仓库镜像到外部或从外部镜像仓库过来,从而可以实现分支、标签和提交的自动同步。 文章目录 1. mirroring的实现方式2. push mirroring2.1 简介2.2 说明 3. 配置推送镜像3…...

【PUSDN】WebStorm中报错Switch language version to React JSX

简述 WebStorm中报错Switch language version to React JSX 可能本页面的写法是其他语法。所以可以不用管。 测试项目:ant design vue pro 前情提示 系统: 一说 同步更新最新版、完整版请移步PUSDN Powered By PUSDN - 平行宇宙软件开发者网www.pusdn…...

【算法思考记录】力扣1094.拼车 C++【树状数组】

拼车问题(LeetCode 1094)的解析与C实现 Problem: 1094. 拼车 题目背景 在本题中,我们需要处理一个拼车的问题。假设一辆车有固定的座位容量,我们需要根据乘客的上车和下车地点,判断车辆是否能够在整个行程中满足不超过…...

业务场景中Hive解析Json常用案例

业务场景中Hive解析Json常用案例 json在线工具 json格式转换在线工具 https://tool.lu/json/format格式互转: // 格式化可以合并整行显示 {"name":"John Doe","age":35,"email":"johnexample.com"}// 格式化…...

垃圾回收与内存泄漏

前端面试大全JavaScript垃圾回收与内存泄漏 🌟经典真题 🌟什么是内存泄露 🌟JavaScript 中的垃圾回收 🌟标记清除 🌟引用计数 🌟真题解答 🌟总结 🌟经典真题 请介绍一下 Jav…...

SQL Server 2016(创建数据表)

1、需求描述。 在名为“class”的数据库中创建表,表名称为“course”,其中要包含序号、课程、课程编号、学分、任课教师、上课地点、开始时间、结束时间、备注等列。 设置各个字段的数据类型。其中,"序号"列为标识列,从…...

mysql配置文件低于8.0版本慎用(头部声明的路径请自行替换或删减)(干货)

[mysqld] character-set-server utf8mb4 collation-server utf8mb4_general_ci init_connectSET NAMES utf8mb4datadir/data/mysql/data socket/data/mysql/mysql.socklog-error/data/mysql/log/mysql_error.log pid-file/data/mysql/mysqld.pidserver_id1 #如果做集群不同my…...

给WordPress文章添加广告位

/* * WordPress 在文章内容中间插入广告//由www.wwttl.com提供学习 */ //在文章内容的第二段后面插入广告 add_filter( the_content, prefix_insert_post_ads ); function prefix_insert_post_ads( $content ) { $ad_code <div>广告代码放这里</div>;if ( is_sing…...

[GPT-1]论文实现:Improving Language Understanding by Generative Pre-Training

Efficient Graph-Based Image Segmentation 一、完整代码二、论文解读2.1 GPT架构2.2 GPT的训练方式Unsupervised pre_trainingSupervised fine_training 三、过程实现3.1 导包3.2 数据处理3.3 模型构建3.4 模型配置 四、整体总结 论文&#xff1a;Improving Language Understa…...

23种设计模式之C++实践(一)

23种设计模式之C++实践 1. 简介2. 基础知识3. 设计模式(一)创建型模式1. 单例模式——确保对象的唯一性1.2 饿汉式单例模式1.3 懒汉式单例模式比较IoDH单例模式总结2. 简单工厂模式——集中式工厂的实现简单工厂模式总结3. 工厂方法模式——多态工厂的实现工厂方法模式总结4.…...

华为OD机试 - 园区参观路径(Java JS Python C)

题目描述 园区某部门举办了Family Day,邀请员工及其家属参加; 将公司园区视为一个矩形,起始园区设置在左上角,终点园区设置在右下角; 家属参观园区时,只能向右和向下园区前进,求从起始园区到终点园区会有多少条不同的参观路径。 输入描述 第一行为园区的长和宽; 后…...

【ARM Trace32(劳特巴赫) 使用介绍 12 -- Trace32 常用命令之 d.dump | data.dump 介绍】

文章目录 Trace32 常用命令之 d.dump | data.dump 介绍1 字节显示 (Byte)4 字节显示&#xff08;word&#xff09;8 字节显示&#xff08;通常long&#xff09;十进制显示显示指定列数显示地址范围内的值 Trace32 常用命令之 d.dump | data.dump 介绍 在 TRACE32 调试环境中&a…...

【Git】Git撤销操作

记录一下&#xff0c;方便后续查找&#xff0c;不全&#xff0c;后续再做补充。 丢弃当前工作区未提交的修改 # 丢弃所有修改 git checkout .# 丢弃某个文件修改 git checkout 文件名丢弃本地已经提交的代码 &#xff08;1&#xff09;撤销最近一次提交 如果我们在最近一次提…...

改造python3中的http.server为简单的文件上传下载服务

改造 修改python3中的http.server.SimpleHTTPRequestHandler&#xff0c;实现简单的文件上传下载服务 simple_http_file_server.py&#xff1a; # !/usr/bin/env python3import datetime import email import html import http.server import io import mimetypes import os …...

Fiddler抓包工具之fiddler的composer可以简单发送http协议的请求

一&#xff0c;composer的详解 右侧Composer区域&#xff0c;是测试接口的界面&#xff1a; 相关说明&#xff1a; 1.请求方式&#xff1a;点开可以勾选请求协议是get、post等 2.url地址栏&#xff1a;输入请求的url地址 3.请求头&#xff1a;第三块区域可以输入请求头信息…...

14、pytest像用参数一样使用fixture

官方实例 # content of test_fruit.py import pytestclass Fruit:def __init__(self, name):self.name nameself.cubed Falsedef cube(self):self.cubed Trueclass FruitSalad:def __init__(self, *fruit_bowl):self.fruit fruit_bowlself._cube_fruit()def _cube_fruit(s…...

C++ Primer Plus第十三章笔记

目录 基类 构造函数&#xff1a;访问权限的考虑 1.2 派生类和基类之间的特殊关系 继承&#xff1a;is-a关系 多态公有继承 静态联编和动态联编 指针和引用类型的兼容性 虚成员函数和动态联编 虚函数的注意事项 构造函数 析构函数 友元 没有重新定义 重新定义将隐…...

【JavaEE】单例模式

作者主页&#xff1a;paper jie_博客 本文作者&#xff1a;大家好&#xff0c;我是paper jie&#xff0c;感谢你阅读本文&#xff0c;欢迎一建三连哦。 本文于《JavaEE》专栏&#xff0c;本专栏是针对于大学生&#xff0c;编程小白精心打造的。笔者用重金(时间和精力)打造&…...

第十五届蓝桥杯模拟赛(第二期 C++)

俺自己做的噢&#xff0c;还未核实答案&#xff0c;若有差错&#xff0c;望斧正。 第一题 小蓝要在屏幕上放置一行文字&#xff0c;每个字的宽度相同。小蓝发现&#xff0c;如果每个字的宽为 36 像素&#xff0c;一行正好放下 30 个字&#xff0c;字符之间和前后都没有任何空隙…...

Lombok 的 @Data 注解失效,未生成 getter/setter 方法引发的HTTP 406 错误

HTTP 状态码 406 (Not Acceptable) 和 500 (Internal Server Error) 是两类完全不同的错误&#xff0c;它们的含义、原因和解决方法都有显著区别。以下是详细对比&#xff1a; 1. HTTP 406 (Not Acceptable) 含义&#xff1a; 客户端请求的内容类型与服务器支持的内容类型不匹…...

基于距离变化能量开销动态调整的WSN低功耗拓扑控制开销算法matlab仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.算法仿真参数 5.算法理论概述 6.参考文献 7.完整程序 1.程序功能描述 通过动态调整节点通信的能量开销&#xff0c;平衡网络负载&#xff0c;延长WSN生命周期。具体通过建立基于距离的能量消耗模型&am…...

【位运算】消失的两个数字(hard)

消失的两个数字&#xff08;hard&#xff09; 题⽬描述&#xff1a;解法&#xff08;位运算&#xff09;&#xff1a;Java 算法代码&#xff1a;更简便代码 题⽬链接&#xff1a;⾯试题 17.19. 消失的两个数字 题⽬描述&#xff1a; 给定⼀个数组&#xff0c;包含从 1 到 N 所有…...

抖音增长新引擎:品融电商,一站式全案代运营领跑者

抖音增长新引擎&#xff1a;品融电商&#xff0c;一站式全案代运营领跑者 在抖音这个日活超7亿的流量汪洋中&#xff0c;品牌如何破浪前行&#xff1f;自建团队成本高、效果难控&#xff1b;碎片化运营又难成合力——这正是许多企业面临的增长困局。品融电商以「抖音全案代运营…...

家政维修平台实战20:权限设计

目录 1 获取工人信息2 搭建工人入口3 权限判断总结 目前我们已经搭建好了基础的用户体系&#xff0c;主要是分成几个表&#xff0c;用户表我们是记录用户的基础信息&#xff0c;包括手机、昵称、头像。而工人和员工各有各的表。那么就有一个问题&#xff0c;不同的角色&#xf…...

苍穹外卖--缓存菜品

1.问题说明 用户端小程序展示的菜品数据都是通过查询数据库获得&#xff0c;如果用户端访问量比较大&#xff0c;数据库访问压力随之增大 2.实现思路 通过Redis来缓存菜品数据&#xff0c;减少数据库查询操作。 缓存逻辑分析&#xff1a; ①每个分类下的菜品保持一份缓存数据…...

LRU 缓存机制详解与实现(Java版) + 力扣解决

&#x1f4cc; LRU 缓存机制详解与实现&#xff08;Java版&#xff09; 一、&#x1f4d6; 问题背景 在日常开发中&#xff0c;我们经常会使用 缓存&#xff08;Cache&#xff09; 来提升性能。但由于内存有限&#xff0c;缓存不可能无限增长&#xff0c;于是需要策略决定&am…...

关于uniapp展示PDF的解决方案

在 UniApp 的 H5 环境中使用 pdf-vue3 组件可以实现完整的 PDF 预览功能。以下是详细实现步骤和注意事项&#xff1a; 一、安装依赖 安装 pdf-vue3 和 PDF.js 核心库&#xff1a; npm install pdf-vue3 pdfjs-dist二、基本使用示例 <template><view class"con…...

Unity UGUI Button事件流程

场景结构 测试代码 public class TestBtn : MonoBehaviour {void Start(){var btn GetComponent<Button>();btn.onClick.AddListener(OnClick);}private void OnClick(){Debug.Log("666");}}当添加事件时 // 实例化一个ButtonClickedEvent的事件 [Formerl…...

k8s从入门到放弃之HPA控制器

k8s从入门到放弃之HPA控制器 Kubernetes中的Horizontal Pod Autoscaler (HPA)控制器是一种用于自动扩展部署、副本集或复制控制器中Pod数量的机制。它可以根据观察到的CPU利用率&#xff08;或其他自定义指标&#xff09;来调整这些对象的规模&#xff0c;从而帮助应用程序在负…...